View

open class View(pointer: <Error class: unknown class><<Error class: unknown class>>)

Subclass of class@Gtk.TextView.

GtkSourceView is the main class of the GtkSourceView library. Use a class@Buffer to display text with a GtkSourceView.

This class provides:

  • Show the line numbers;

  • Show a right margin;

  • Highlight the current line;

  • Indentation settings;

  • Configuration for the Home and End keyboard keys;

  • Configure and show line marks;

  • And a few other things.

An easy way to test all these features is to use the test-widget mini-program provided in the GtkSourceView repository, in the tests/ directory.

GtkSourceView as GtkBuildable

The GtkSourceView implementation of the iface@Gtk.Buildable interface exposes the property@View:completion object with the internal-child "completion".

An example of a UI definition fragment with GtkSourceView:

<object class="GtkSourceView" id="source_view">
<property name="tab-width">4</property>
<property name="auto-indent">True</property>
<child internal-child="completion">
<object class="GtkSourceCompletion">
<property name="select-on-show">False</property>
</object>
</child>
</object>

Changing the Font

Gtk CSS provides the best way to change the font for a GtkSourceView in a manner that allows for components like class@Map to scale the desired font.

GtkCssProvider *provider = gtk_css_provider_new ();
gtk_css_provider_load_from_data (provider,
"textview { font-family: Monospace; font-size: 8pt; }",
-1,
NULL);
gtk_style_context_add_provider (gtk_widget_get_style_context (view),
GTK_STYLE_PROVIDER (provider),
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
g_object_unref (provider);

If you need to adjust the font or size of font within a portion of the document only, you should use a class@Gtk.TextTag with the property@Gtk.TextTag:family or property@Gtk.TextTag:scale set so that the font size may be scaled relative to the default font set in CSS.

Skipped during bindings generation

  • method get_gutter: C function gtk_source_view_get_gutter is ignored

  • parameter priority: Unsupported pointer to primitive type

  • signal push-snippet: Unsupported parameter location : location: In/Out parameter is not supported

Inheritors

Constructors

Link copied to clipboard
constructor()

Creates a new GtkSourceView.

constructor(buffer: Buffer)

Creates a new #GtkSourceView widget displaying the buffer @buffer.

constructor(pointer: <Error class: unknown class><<Error class: unknown class>>)

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
Link copied to clipboard

Draw a specific background pattern on the view.

Link copied to clipboard

The completion object associated with the view

Link copied to clipboard

The property denotes if snippets should be expanded when the user presses Tab after having typed a word matching the snippets found in class@SnippetManager.

Link copied to clipboard
open val gtkAccessiblePointer: <Error class: unknown class><<Error class: unknown class>>
Link copied to clipboard
open val gtkAccessibleTextPointer: <Error class: unknown class><<Error class: unknown class>>
Link copied to clipboard
open val gtkBuildablePointer: <Error class: unknown class><<Error class: unknown class>>
Link copied to clipboard
open val gtkConstraintTargetPointer: <Error class: unknown class><<Error class: unknown class>>
Link copied to clipboard
open val gtkScrollablePointer: <Error class: unknown class><<Error class: unknown class>>
Link copied to clipboard
val gtksourceViewPointer: <Error class: unknown class><<Error class: unknown class>>
Link copied to clipboard
Link copied to clipboard
open var indenter: Indenter?

The property is a iface@Indenter to use to indent as the user types into the class@View.

Link copied to clipboard
Link copied to clipboard
open var indentWidth: Int

Width of an indentation step expressed in number of spaces.

Link copied to clipboard
Link copied to clipboard
open var rightMarginPosition: <Error class: unknown class>

Position of the right margin.

Link copied to clipboard

Whether to display line mark pixbufs

Link copied to clipboard

Whether to display line numbers

Link copied to clipboard

Whether to display the right margin.

Link copied to clipboard

Whether smart Backspace should be used.

Link copied to clipboard

Set the behavior of the HOME and END keys.

Link copied to clipboard

The class@SpaceDrawer object associated with the view.4

Link copied to clipboard
open var tabWidth: <Error class: unknown class>

Width of a tab character expressed in number of spaces.

Functions

Link copied to clipboard
fun connectChangeCase(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: (caseType: ChangeCaseType) -> Unit): <Error class: unknown class>

Keybinding signal to change case of the text at the current cursor position.

Link copied to clipboard
fun connectChangeNumber(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: (count: Int) -> Unit): <Error class: unknown class>

Keybinding signal to edit a number at the current cursor position.

Link copied to clipboard
fun connectJoinLines(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: () -> Unit): <Error class: unknown class>

Keybinding signal to join the lines currently selected.

Link copied to clipboard
fun connectLineMarkActivated(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: (<Error class: unknown class>, <Error class: unknown class>, <Error class: unknown class>, nPresses: Int) -> Unit): <Error class: unknown class>

Emitted when a line mark has been activated (for instance when there was a button press in the line marks gutter).

Link copied to clipboard
fun connectMoveLines(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: (down: Boolean) -> Unit): <Error class: unknown class>

The signal is a keybinding which gets emitted when the user initiates moving a line.

Link copied to clipboard
fun connectMoveToMatchingBracket(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: (extendSelection: Boolean) -> Unit): <Error class: unknown class>

Keybinding signal to move the cursor to the matching bracket.

Link copied to clipboard
fun connectMoveWords(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: (count: Int) -> Unit): <Error class: unknown class>

The signal is a keybinding which gets emitted when the user initiates moving a word.

Link copied to clipboard
fun connectShowCompletion(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: () -> Unit): <Error class: unknown class>

The signal is a key binding signal which gets emitted when the user requests a completion, by pressing Controlspace.

Link copied to clipboard
fun connectSmartHomeEnd(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: (<Error class: unknown class>, count: Int) -> Unit): <Error class: unknown class>

Emitted when a the cursor was moved according to the smart home end setting.

Link copied to clipboard

Returns whether auto-indentation of text is enabled.

Link copied to clipboard

Returns the #GtkSourceBackgroundPatternType specifying if and how the background pattern should be displayed for this @view.

Link copied to clipboard

Gets the class@Completion associated with @view.

Link copied to clipboard

Gets the property@View:enable-snippets property.

Link copied to clipboard

Returns whether the current line is highlighted.

Link copied to clipboard
open fun getHover(): Hover

Gets the class@Hover associated with @view.

Link copied to clipboard
open fun getIndenter(): Indenter?

Gets the property@View:indenter property.

Link copied to clipboard

Returns whether when the tab key is pressed the current selection should get indented instead of replaced with the \t character.

Link copied to clipboard
open fun getIndentWidth(): Int

Returns the number of spaces to use for each step of indent.

Link copied to clipboard

Returns whether when inserting a tabulator character it should be replaced by a group of space characters.

Link copied to clipboard
open fun getRightMarginPosition(): <Error class: unknown class>

Gets the position of the right margin in the given @view.

Link copied to clipboard

Returns whether line marks are displayed beside the text.

Link copied to clipboard

Returns whether line numbers are displayed beside the text.

Link copied to clipboard

Returns whether a right margin is displayed.

Link copied to clipboard

Returns true if pressing the Backspace key will try to delete spaces up to the previous tab stop.

Link copied to clipboard

Returns a enum@SmartHomeEndType end value specifying how the cursor will move when HOME and END keys are pressed.

Link copied to clipboard

Gets the class@SpaceDrawer associated with @view.

Link copied to clipboard
open fun getTabWidth(): <Error class: unknown class>

Returns the width of tabulation in characters.

Link copied to clipboard
open fun getVisualColumn(iter: <Error class: unknown class>): <Error class: unknown class>

Determines the visual column at @iter taking into consideration the property@View:tab-width of @view.

Link copied to clipboard
open fun indentLines(start: <Error class: unknown class>, end: <Error class: unknown class>)

Inserts one indentation level at the beginning of the specified lines. The empty lines are not indented.

Link copied to clipboard
open fun pushSnippet(snippet: Snippet, location: <Error class: unknown class>? = null)

Inserts a new snippet at @location

Link copied to clipboard
open fun setAutoIndent(enable: Boolean)

If true auto-indentation of text is enabled.

Link copied to clipboard
open fun setBackgroundPattern(backgroundPattern: BackgroundPatternType)

Set if and how the background pattern should be displayed.

Link copied to clipboard
open fun setEnableSnippets(enableSnippets: Boolean)

Sets the property@View:enable-snippets property.

Link copied to clipboard
open fun setHighlightCurrentLine(highlight: Boolean)

If @highlight is true the current line will be highlighted.

Link copied to clipboard
open fun setIndenter(indenter: Indenter? = null)

Sets the indenter for @view to @indenter.

Link copied to clipboard
open fun setIndentOnTab(enable: Boolean)

If true, when the tab key is pressed when several lines are selected, the selected lines are indented of one level instead of being replaced with a \t character. Shift+Tab unindents the selection.

Link copied to clipboard
open fun setIndentWidth(width: Int)

Sets the number of spaces to use for each step of indent when the tab key is pressed.

Link copied to clipboard

If true a tab key pressed is replaced by a group of space characters.

Link copied to clipboard
open fun setMarkAttributes(category: String, attributes: MarkAttributes, priority: Int)

Sets attributes and priority for the @category.

Link copied to clipboard
open fun setRightMarginPosition(pos: <Error class: unknown class>)

Sets the position of the right margin in the given @view.

Link copied to clipboard
open fun setShowLineMarks(show: Boolean)

If true line marks will be displayed beside the text.

Link copied to clipboard
open fun setShowLineNumbers(show: Boolean)

If true line numbers will be displayed beside the text.

Link copied to clipboard
open fun setShowRightMargin(show: Boolean)

If true a right margin is displayed.

Link copied to clipboard
open fun setSmartBackspace(smartBackspace: Boolean)

When set to true, pressing the Backspace key will try to delete spaces up to the previous tab stop.

Link copied to clipboard
open fun setSmartHomeEnd(smartHomeEnd: SmartHomeEndType)

Set the desired movement of the cursor when HOME and END keys are pressed.

Link copied to clipboard
open fun setTabWidth(width: <Error class: unknown class>)

Sets the width of tabulation in characters.

Link copied to clipboard
open fun unindentLines(start: <Error class: unknown class>, end: <Error class: unknown class>)

Removes one indentation level at the beginning of the specified lines.