Class

GtkSourceView

Description [src]

class GtkSource.View : Gtk.TextView {
  parent_instance: GtkTextView
}

Subclass of GtkTextView.

GtkSourceView is the main class of the GtkSourceView library. Use a GtkSourceBuffer 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 GtkBuildable interface exposes the GtkSourceView: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 GtkSourceMap 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 GtkTextTag with the GtkTextTag:family or GtkTextTag:scale set so that the font size may be scaled relative to the default font set in CSS.

Descendants

Constructors

gtk_source_view_new

Creates a new GtkSourceView.

gtk_source_view_new_with_buffer

Creates a new GtkSourceView widget displaying the buffer buffer.

Instance methods

gtk_source_view_get_auto_indent

Returns whether auto-indentation of text is enabled.

gtk_source_view_get_background_pattern

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

gtk_source_view_get_completion

Gets the GtkSourceCompletion associated with view.

gtk_source_view_get_enable_snippets

Gets the GtkSourceView:enable-snippets property.

gtk_source_view_get_gutter

Returns the GtkSourceGutter object associated with window_type for view.

gtk_source_view_get_highlight_current_line

Returns whether the current line is highlighted.

gtk_source_view_get_hover

Gets the GtkSourceHover associated with view.

gtk_source_view_get_indent_on_tab

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

gtk_source_view_get_indent_width

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

gtk_source_view_get_indenter

Gets the GtkSourceView:indenter property.

gtk_source_view_get_insert_spaces_instead_of_tabs

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

gtk_source_view_get_mark_attributes

Gets attributes and priority for the category.

gtk_source_view_get_right_margin_position

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

gtk_source_view_get_show_line_marks

Returns whether line marks are displayed beside the text.

gtk_source_view_get_show_line_numbers

Returns whether line numbers are displayed beside the text.

gtk_source_view_get_show_right_margin

Returns whether a right margin is displayed.

gtk_source_view_get_smart_backspace

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

gtk_source_view_get_smart_home_end

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

gtk_source_view_get_space_drawer

Gets the GtkSourceSpaceDrawer associated with view.

gtk_source_view_get_tab_width

Returns the width of tabulation in characters.

gtk_source_view_get_visual_column

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

gtk_source_view_indent_lines

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

gtk_source_view_push_snippet

Inserts a new snippet at location.

gtk_source_view_set_auto_indent

If TRUE auto-indentation of text is enabled.

gtk_source_view_set_background_pattern

Set if and how the background pattern should be displayed.

gtk_source_view_set_enable_snippets

Sets the GtkSourceView:enable-snippets property.

gtk_source_view_set_highlight_current_line

If highlight is TRUE the current line will be highlighted.

gtk_source_view_set_indent_on_tab

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.

gtk_source_view_set_indent_width

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

gtk_source_view_set_indenter

Sets the indenter for view to indenter.

gtk_source_view_set_insert_spaces_instead_of_tabs

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

gtk_source_view_set_mark_attributes

Sets attributes and priority for the category.

gtk_source_view_set_right_margin_position

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

gtk_source_view_set_show_line_marks

If TRUE line marks will be displayed beside the text.

gtk_source_view_set_show_line_numbers

If TRUE line numbers will be displayed beside the text.

gtk_source_view_set_show_right_margin

If TRUE a right margin is displayed.

gtk_source_view_set_smart_backspace

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

gtk_source_view_set_smart_home_end

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

gtk_source_view_set_tab_width

Sets the width of tabulation in characters.

gtk_source_view_unindent_lines

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

Methods inherited from GtkTextView (71)

Please see GtkTextView for a full list of methods.

Methods inherited from GtkWidget (160)

Please see GtkWidget for a full list of methods.

Methods inherited from GObject (43)

Please see GObject for a full list of methods.

Methods inherited from GtkAccessible (10)
gtk_accessible_get_accessible_role

Retrieves the GtkAccessibleRole for the given GtkAccessible.

gtk_accessible_reset_property

Resets the accessible property to its default value.

gtk_accessible_reset_relation

Resets the accessible relation to its default value.

gtk_accessible_reset_state

Resets the accessible state to its default value.

gtk_accessible_update_property

Updates a list of accessible properties.

gtk_accessible_update_property_value

Updates an array of accessible properties.

gtk_accessible_update_relation

Updates a list of accessible relations.

gtk_accessible_update_relation_value

Updates an array of accessible relations.

gtk_accessible_update_state

Updates a list of accessible states. See the GtkAccessibleState documentation for the value types of accessible states.

gtk_accessible_update_state_value

Updates an array of accessible states.

Methods inherited from GtkBuildable (1)
gtk_buildable_get_buildable_id

Gets the ID of the buildable object.

Methods inherited from GtkScrollable (9)
gtk_scrollable_get_border

Returns the size of a non-scrolling border around the outside of the scrollable.

gtk_scrollable_get_hadjustment

Retrieves the GtkAdjustment used for horizontal scrolling.

gtk_scrollable_get_hscroll_policy

Gets the horizontal GtkScrollablePolicy.

gtk_scrollable_get_vadjustment

Retrieves the GtkAdjustment used for vertical scrolling.

gtk_scrollable_get_vscroll_policy

Gets the vertical GtkScrollablePolicy.

gtk_scrollable_set_hadjustment

Sets the horizontal adjustment of the GtkScrollable.

gtk_scrollable_set_hscroll_policy

Sets the GtkScrollablePolicy.

gtk_scrollable_set_vadjustment

Sets the vertical adjustment of the GtkScrollable.

gtk_scrollable_set_vscroll_policy

Sets the GtkScrollablePolicy.

Properties

GtkSource.View:auto-indent
No description available.

GtkSource.View:background-pattern

Draw a specific background pattern on the view.

GtkSource.View:completion

The completion object associated with the view.

GtkSource.View:enable-snippets

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

GtkSource.View:highlight-current-line
No description available.

GtkSource.View:indent-on-tab
No description available.

GtkSource.View:indent-width

Width of an indentation step expressed in number of spaces.

GtkSource.View:indenter

The property is a GtkSourceIndenter to use to indent as the user types into the GtkSourceView.

GtkSource.View:right-margin-position

Position of the right margin.

GtkSource.View:show-line-marks

Whether to display line mark pixbufs.

GtkSource.View:show-line-numbers

Whether to display line numbers.

GtkSource.View:show-right-margin

Whether to display the right margin.

GtkSource.View:smart-backspace

Whether smart Backspace should be used.

GtkSource.View:smart-home-end

Set the behavior of the HOME and END keys.

GtkSource.View:space-drawer

The GtkSourceSpaceDrawer object associated with the view.4

GtkSource.View:tab-width

Width of a tab character expressed in number of spaces.

Properties inherited from GtkTextView (21)
Gtk.TextView:accepts-tab

Whether Tab will result in a tab character being entered.

Gtk.TextView:bottom-margin

The bottom margin for text in the text view.

Gtk.TextView:buffer

The buffer which is displayed.

Gtk.TextView:cursor-visible

If the insertion cursor is shown.

Gtk.TextView:editable
No description available.

Gtk.TextView:extra-menu

A menu model whose contents will be appended to the context menu.

Gtk.TextView:im-module

Which IM (input method) module should be used for this text_view.

Gtk.TextView:indent

Amount to indent the paragraph, in pixels.

Gtk.TextView:input-hints

Additional hints (beyond GtkTextView:input-purpose) that allow input methods to fine-tune their behaviour.

Gtk.TextView:input-purpose

The purpose of this text field.

Gtk.TextView:justification
No description available.

Gtk.TextView:left-margin

The default left margin for text in the text view.

Gtk.TextView:monospace

Whether text should be displayed in a monospace font.

Gtk.TextView:overwrite

Whether entered text overwrites existing contents.

Gtk.TextView:pixels-above-lines
No description available.

Gtk.TextView:pixels-below-lines
No description available.

Gtk.TextView:pixels-inside-wrap
No description available.

Gtk.TextView:right-margin

The default right margin for text in the text view.

Gtk.TextView:tabs
No description available.

Gtk.TextView:top-margin

The top margin for text in the text view.

Gtk.TextView:wrap-mode
No description available.

Properties inherited from GtkWidget (34)
Gtk.Widget:can-focus

Whether the widget or any of its descendents can accept the input focus.

Gtk.Widget:can-target

Whether the widget can receive pointer events.

Gtk.Widget:css-classes

A list of css classes applied to this widget.

Gtk.Widget:css-name

The name of this widget in the CSS tree.

Gtk.Widget:cursor

The cursor used by widget.

Gtk.Widget:focus-on-click

Whether the widget should grab focus when it is clicked with the mouse.

Gtk.Widget:focusable

Whether this widget itself will accept the input focus.

Gtk.Widget:halign

How to distribute horizontal space if widget gets extra space.

Gtk.Widget:has-default

Whether the widget is the default widget.

Gtk.Widget:has-focus

Whether the widget has the input focus.

Gtk.Widget:has-tooltip

Enables or disables the emission of the ::query-tooltip signal on widget.

Gtk.Widget:height-request

Override for height request of the widget.

Gtk.Widget:hexpand

Whether to expand horizontally.

Gtk.Widget:hexpand-set

Whether to use the hexpand property.

Gtk.Widget:layout-manager

The GtkLayoutManager instance to use to compute the preferred size of the widget, and allocate its children.

Gtk.Widget:margin-bottom

Margin on bottom side of widget.

Gtk.Widget:margin-end

Margin on end of widget, horizontally.

Gtk.Widget:margin-start

Margin on start of widget, horizontally.

Gtk.Widget:margin-top

Margin on top side of widget.

Gtk.Widget:name

The name of the widget.

Gtk.Widget:opacity

The requested opacity of the widget.

Gtk.Widget:overflow

How content outside the widget’s content area is treated.

Gtk.Widget:parent

The parent widget of this widget.

Gtk.Widget:receives-default

Whether the widget will receive the default action when it is focused.

Gtk.Widget:root

The GtkRoot widget of the widget tree containing this widget.

Gtk.Widget:scale-factor

The scale factor of the widget.

Gtk.Widget:sensitive

Whether the widget responds to input.

Gtk.Widget:tooltip-markup

Sets the text of tooltip to be the given string, which is marked up with Pango markup.

Gtk.Widget:tooltip-text

Sets the text of tooltip to be the given string.

Gtk.Widget:valign

How to distribute vertical space if widget gets extra space.

Gtk.Widget:vexpand

Whether to expand vertically.

Gtk.Widget:vexpand-set

Whether to use the vexpand property.

Gtk.Widget:visible

Whether the widget is visible.

Gtk.Widget:width-request

Override for width request of the widget.

Properties inherited from GtkAccessible (1)
Gtk-4.0.Accessible:accessible-role

The accessible role of the given GtkAccessible implementation.

Properties inherited from GtkScrollable (4)
Gtk-4.0.Scrollable:hadjustment

Horizontal GtkAdjustment of the scrollable widget.

Gtk-4.0.Scrollable:hscroll-policy

Determines when horizontal scrolling should start.

Gtk-4.0.Scrollable:vadjustment

Vertical GtkAdjustment of the scrollable widget.

Gtk-4.0.Scrollable:vscroll-policy

Determines when vertical scrolling should start.

Signals

GtkSource.View::change-case

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

GtkSource.View::change-number

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

GtkSource.View::join-lines

Keybinding signal to join the lines currently selected.

GtkSource.View::line-mark-activated

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

GtkSource.View::move-lines

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

GtkSource.View::move-to-matching-bracket

Keybinding signal to move the cursor to the matching bracket.

GtkSource.View::move-words

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

GtkSource.View::push-snippet

The signal is emitted to insert a new snippet into the view.

GtkSource.View::show-completion

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

GtkSource.View::smart-home-end

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

Signals inherited from GtkTextView (15)
GtkTextView::backspace

Gets emitted when the user asks for it.

GtkTextView::copy-clipboard

Gets emitted to copy the selection to the clipboard.

GtkTextView::cut-clipboard

Gets emitted to cut the selection to the clipboard.

GtkTextView::delete-from-cursor

Gets emitted when the user initiates a text deletion.

GtkTextView::extend-selection

Emitted when the selection needs to be extended at location.

GtkTextView::insert-at-cursor

Gets emitted when the user initiates the insertion of a fixed string at the cursor.

GtkTextView::insert-emoji

Gets emitted to present the Emoji chooser for the text_view.

GtkTextView::move-cursor

Gets emitted when the user initiates a cursor movement.

GtkTextView::move-viewport

Gets emitted to move the viewport.

GtkTextView::paste-clipboard

Gets emitted to paste the contents of the clipboard into the text view.

GtkTextView::preedit-changed

Emitted when preedit text of the active IM changes.

GtkTextView::select-all

Gets emitted to select or unselect the complete contents of the text view.

GtkTextView::set-anchor

Gets emitted when the user initiates settings the “anchor” mark.

GtkTextView::toggle-cursor-visible

Gets emitted to toggle the cursor-visible property.

GtkTextView::toggle-overwrite

Gets emitted to toggle the overwrite mode of the text view.

Signals inherited from GtkWidget (13)
GtkWidget::destroy

Signals that all holders of a reference to the widget should release the reference that they hold.

GtkWidget::direction-changed

Emitted when the text direction of a widget changes.

GtkWidget::hide

Emitted when widget is hidden.

GtkWidget::keynav-failed

Emitted if keyboard navigation fails.

GtkWidget::map

Emitted when widget is going to be mapped.

GtkWidget::mnemonic-activate

Emitted when a widget is activated via a mnemonic.

GtkWidget::move-focus

Emitted when the focus is moved.

GtkWidget::query-tooltip

Emitted when the widgets tooltip is about to be shown.

GtkWidget::realize

Emitted when widget is associated with a GdkSurface.

GtkWidget::show

Emitted when widget is shown.

GtkWidget::state-flags-changed

Emitted when the widget state changes.

GtkWidget::unmap

Emitted when widget is going to be unmapped.

GtkWidget::unrealize

Emitted when the GdkSurface associated with widget is destroyed.

Signals inherited from GObject (1)
GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

Class structure

struct GtkSourceViewClass {
  GtkTextViewClass parent_class;
  void (* line_mark_activated) (
    GtkSourceView* view,
    const GtkTextIter* iter,
    guint button,
    GdkModifierType state,
    gint n_presses
  );
  void (* show_completion) (
    GtkSourceView* view
  );
  void (* move_lines) (
    GtkSourceView* view,
    gboolean down
  );
  void (* move_words) (
    GtkSourceView* view,
    gint step
  );
  void (* push_snippet) (
    GtkSourceView* view,
    GtkSourceSnippet* snippet,
    GtkTextIter* location
  );
  
}
No description available.
Class members
parent_class: GtkTextViewClass
No description available.
line_mark_activated: void (* line_mark_activated) ( GtkSourceView* view, const GtkTextIter* iter, guint button, GdkModifierType state, gint n_presses )
No description available.
show_completion: void (* show_completion) ( GtkSourceView* view )
No description available.
move_lines: void (* move_lines) ( GtkSourceView* view, gboolean down )
No description available.
move_words: void (* move_words) ( GtkSourceView* view, gint step )
No description available.
push_snippet: void (* push_snippet) ( GtkSourceView* view, GtkSourceSnippet* snippet, GtkTextIter* location )
No description available.

Virtual methods

GtkSource.ViewClass.line_mark_activated
No description available.

GtkSource.ViewClass.move_lines
No description available.

GtkSource.ViewClass.move_words
No description available.

GtkSource.ViewClass.push_snippet

Inserts a new snippet at location.

GtkSource.ViewClass.show_completion
No description available.