Class

GtkSourceView

Description

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.

Ancestors

  • GtkTextView
  • GtkWidget
  • GInitiallyUnowned
  • GObject

Implements

  • GtkAccessible
  • GtkBuildable
  • GtkConstraintTarget
  • GtkScrollable

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.

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.

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.

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
  );
  
}
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.