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.
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
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
GtkSource.View:indent-on-tab
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:insert-spaces-instead-of-tabs
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
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 |
|
No description available. | |
line_mark_activated |
|
No description available. | |
show_completion |
|
No description available. | |
move_lines |
|
No description available. | |
move_words |
|
No description available. | |
push_snippet |
|
No description available. |
Virtual methods
GtkSource.ViewClass.line_mark_activated
GtkSource.ViewClass.move_lines
GtkSource.ViewClass.move_words
GtkSource.ViewClass.push_snippet
Inserts a new snippet at location
.