|  |  |  | GtkSourceView 3 Reference Manual |  | 
|---|---|---|---|---|
| Top | Description | Object Hierarchy | Implemented Interfaces | Properties | Signals | ||||
#include <gtksourceview/gtksourceview.h> struct GtkSourceView; enum GtkSourceSmartHomeEndType; enum GtkSourceDrawSpacesFlags; enum GtkSourceViewGutterPosition; GtkWidget * gtk_source_view_new (void); GtkWidget * gtk_source_view_new_with_buffer (GtkSourceBuffer *buffer); void gtk_source_view_set_auto_indent (GtkSourceView *view,gboolean enable); gboolean gtk_source_view_get_auto_indent (GtkSourceView *view); void gtk_source_view_set_indent_on_tab (GtkSourceView *view,gboolean enable); gboolean gtk_source_view_get_indent_on_tab (GtkSourceView *view); void gtk_source_view_set_indent_width (GtkSourceView *view,gint width); gint gtk_source_view_get_indent_width (GtkSourceView *view); void gtk_source_view_set_insert_spaces_instead_of_tabs (GtkSourceView *view,gboolean enable); gboolean gtk_source_view_get_insert_spaces_instead_of_tabs (GtkSourceView *view); void gtk_source_view_set_smart_home_end (GtkSourceView *view,GtkSourceSmartHomeEndType smart_he); GtkSourceSmartHomeEndType gtk_source_view_get_smart_home_end (GtkSourceView *view); void gtk_source_view_set_mark_attributes (GtkSourceView *view,const gchar *category,GtkSourceMarkAttributes *attributes,gint priority); GtkSourceMarkAttributes * gtk_source_view_get_mark_attributes (GtkSourceView *view,const gchar *category,gint *priority); void gtk_source_view_set_highlight_current_line (GtkSourceView *view,gboolean hl); gboolean gtk_source_view_get_highlight_current_line (GtkSourceView *view); void gtk_source_view_set_show_line_marks (GtkSourceView *view,gboolean show); gboolean gtk_source_view_get_show_line_marks (GtkSourceView *view); void gtk_source_view_set_show_line_numbers (GtkSourceView *view,gboolean show); gboolean gtk_source_view_get_show_line_numbers (GtkSourceView *view); void gtk_source_view_set_show_right_margin (GtkSourceView *view,gboolean show); gboolean gtk_source_view_get_show_right_margin (GtkSourceView *view); void gtk_source_view_set_right_margin_position (GtkSourceView *view,guint pos); guint gtk_source_view_get_right_margin_position (GtkSourceView *view); void gtk_source_view_set_tab_width (GtkSourceView *view,guint width); guint gtk_source_view_get_tab_width (GtkSourceView *view); void gtk_source_view_set_draw_spaces (GtkSourceView *view,GtkSourceDrawSpacesFlags flags); GtkSourceDrawSpacesFlags gtk_source_view_get_draw_spaces (GtkSourceView *view); GtkSourceCompletion * gtk_source_view_get_completion (GtkSourceView *view); GtkSourceGutter * gtk_source_view_get_gutter (GtkSourceView *view,GtkTextWindowType window_type);
  GObject
   +----GInitiallyUnowned
         +----GtkWidget
               +----GtkContainer
                     +----GtkTextView
                           +----GtkSourceView
GtkSourceView implements AtkImplementorIface, GtkBuildable and GtkScrollable.
"auto-indent" gboolean : Read / Write "completion" GtkSourceCompletion* : Read "draw-spaces" GtkSourceDrawSpacesFlags : Read / Write "highlight-current-line" gboolean : Read / Write "indent-on-tab" gboolean : Read / Write "indent-width" gint : Read / Write "insert-spaces-instead-of-tabs" gboolean : Read / Write "right-margin-position" guint : Read / Write "show-line-marks" gboolean : Read / Write "show-line-numbers" gboolean : Read / Write "show-right-margin" gboolean : Read / Write "smart-home-end" GtkSourceSmartHomeEndType : Read / Write "tab-width" guint : Read / Write
"line-mark-activated" :Run Last"move-lines" :Action"move-words" :Action"redo" :Action"show-completion" :Action"smart-home-end" :Run Last"undo" :Action
GtkSourceView is the main object of the GtkSourceView library. It provides a text view which syntax highlighting, undo/redo and text marks. Use a GtkSourceBuffer to display text with a GtkSourceView.
typedef enum {
	GTK_SOURCE_SMART_HOME_END_DISABLED,
	GTK_SOURCE_SMART_HOME_END_BEFORE,
	GTK_SOURCE_SMART_HOME_END_AFTER,
	GTK_SOURCE_SMART_HOME_END_ALWAYS
} GtkSourceSmartHomeEndType;
| smart-home-end disabled. | |
| move to the first/last non-whitespace character on the first press of the HOME/END keys and to the beginning/end of the line on the second press. | |
| move to the beginning/end of the line on the first press of the HOME/END keys and to the first/last non-whitespace character on the second press. | |
| always move to the first/last non-whitespace character when the HOME/END keys are pressed. | 
typedef enum {
	GTK_SOURCE_DRAW_SPACES_SPACE      = 1 << 0,
	GTK_SOURCE_DRAW_SPACES_TAB        = 1 << 1,
	GTK_SOURCE_DRAW_SPACES_NEWLINE    = 1 << 2,
	GTK_SOURCE_DRAW_SPACES_NBSP       = 1 << 3,
	GTK_SOURCE_DRAW_SPACES_LEADING    = 1 << 4,
	GTK_SOURCE_DRAW_SPACES_TEXT       = 1 << 5,
	GTK_SOURCE_DRAW_SPACES_TRAILING   = 1 << 6,
	GTK_SOURCE_DRAW_SPACES_ALL        = (GTK_SOURCE_DRAW_SPACES_SPACE   | \
	                                     GTK_SOURCE_DRAW_SPACES_TAB     | \
	                                     GTK_SOURCE_DRAW_SPACES_NEWLINE | \
	                                     GTK_SOURCE_DRAW_SPACES_NBSP | \
	                                     GTK_SOURCE_DRAW_SPACES_LEADING | \
	                                     GTK_SOURCE_DRAW_SPACES_TEXT | \
	                                     GTK_SOURCE_DRAW_SPACES_TRAILING)
} GtkSourceDrawSpacesFlags;
GtkSourceDrawSpacesFlags determine what kind of spaces whould be drawn. If none of GTK_SOURCE_DRAW_SPACES_LEADING, GTK_SOURCE_DRAW_SPACES_TEXT or GTK_SOURCE_DRAW_SPACES_TRAILING is specified, whitespaces at any position in the line will be drawn (i.e. it has the same effect as specifying all of them).
| whether the space character should be drawn. | |
| whether the tab character should be drawn. | |
| whether the line breaks should be drawn. | |
| whether the non-breaking whitespaces should be drawn. | |
| whether leading whitespaces should be drawn. | |
| whether whitespaces inside text should be drawn. | |
| whether trailing whitespaces should be drawn. | |
| wheter all kind of spaces should be drawn. | 
typedef enum {
	GTK_SOURCE_VIEW_GUTTER_POSITION_LINES = -30,
	GTK_SOURCE_VIEW_GUTTER_POSITION_MARKS = -20
} GtkSourceViewGutterPosition;
GtkWidget *         gtk_source_view_new                 (void);
Creates a new GtkSourceView. An empty default buffer will be
created for you. If you want to specify your own buffer, consider
gtk_source_view_new_with_buffer().
| Returns : | a new GtkSourceView. | 
GtkWidget *         gtk_source_view_new_with_buffer     (GtkSourceBuffer *buffer);
Creates a new GtkSourceView widget displaying the buffer
buffer. One buffer can be shared among many widgets.
| 
 | a GtkSourceBuffer. | 
| Returns : | a new GtkSourceView. | 
void gtk_source_view_set_auto_indent (GtkSourceView *view,gboolean enable);
If TRUE auto indentation of text is enabled.
| 
 | a GtkSourceView. | 
| 
 | whether to enable auto indentation. | 
gboolean            gtk_source_view_get_auto_indent     (GtkSourceView *view);
Returns whether auto indentation of text is enabled.
| 
 | a GtkSourceView. | 
| Returns : | TRUEif auto indentation is enabled. | 
void gtk_source_view_set_indent_on_tab (GtkSourceView *view,gboolean enable);
If TRUE, when the tab key is pressed and there is a selection, the
selected text is indented of one level instead of being replaced with
the \t characters. Shift+Tab unindents the selection.
| 
 | a GtkSourceView. | 
| 
 | whether to indent a block when tab is pressed. | 
Since 1.8
gboolean            gtk_source_view_get_indent_on_tab   (GtkSourceView *view);
Returns whether when the tab key is pressed the current selection should get indented instead of replaced with the \t character.
| 
 | a GtkSourceView. | 
| Returns : | TRUEif the selection is indented when tab is pressed. | 
Since 1.8
void gtk_source_view_set_indent_width (GtkSourceView *view,gint width);
Sets the number of spaces to use for each step of indent.
If width is -1, the value of the GtkSourceView::tab-width property
will be used.
| 
 | a GtkSourceView. | 
| 
 | indent width in characters. | 
gint                gtk_source_view_get_indent_width    (GtkSourceView *view);
Returns the number of spaces to use for each step of indent.
See gtk_source_view_set_indent_width() for details.
| 
 | a GtkSourceView. | 
| Returns : | indent width. | 
void gtk_source_view_set_insert_spaces_instead_of_tabs (GtkSourceView *view,gboolean enable);
If TRUE any tabulator character inserted is replaced by a group
of space characters.
| 
 | a GtkSourceView. | 
| 
 | whether to insert spaces instead of tabs. | 
gboolean            gtk_source_view_get_insert_spaces_instead_of_tabs
                                                        (GtkSourceView *view);
Returns whether when inserting a tabulator character it should be replaced by a group of space characters.
| 
 | a GtkSourceView. | 
| Returns : | TRUEif spaces are inserted instead of tabs. | 
void gtk_source_view_set_smart_home_end (GtkSourceView *view,GtkSourceSmartHomeEndType smart_he);
Set the desired movement of the cursor when HOME and END keys are pressed.
| 
 | a GtkSourceView. | 
| 
 | the desired behavior among GtkSourceSmartHomeEndType. | 
GtkSourceSmartHomeEndType gtk_source_view_get_smart_home_end
                                                        (GtkSourceView *view);
Returns a GtkSourceSmartHomeEndType end value specifying how the cursor will move when HOME and END keys are pressed.
| 
 | a GtkSourceView. | 
| Returns : | a GtkSourceSmartHomeEndTypeend value. | 
void gtk_source_view_set_mark_attributes (GtkSourceView *view,const gchar *category,GtkSourceMarkAttributes *attributes,gint priority);
Sets attributes and priority for the category.
| 
 | a GtkSourceView. | 
| 
 | the category. | 
| 
 | mark attributes. | 
| 
 | priority of the category. | 
GtkSourceMarkAttributes * gtk_source_view_get_mark_attributes (GtkSourceView *view,const gchar *category,gint *priority);
Gets attributes and priority for the category.
| 
 | a GtkSourceView. | 
| 
 | the category. | 
| 
 | place where priority of the category will be stored. | 
| Returns : | GtkSourceMarkAttributes for the category.
The object belongs toview, so it must not be unreffed. [transfer none] | 
void gtk_source_view_set_highlight_current_line (GtkSourceView *view,gboolean hl);
If hl is TRUE the current line is highlighted.
| 
 | a GtkSourceView. | 
| 
 | whether to highlight the current line. | 
gboolean            gtk_source_view_get_highlight_current_line
                                                        (GtkSourceView *view);
Returns whether the current line is highlighted.
| 
 | a GtkSourceView. | 
| Returns : | TRUEif the current line is highlighted. | 
void gtk_source_view_set_show_line_marks (GtkSourceView *view,gboolean show);
If TRUE line marks will be displayed beside the text.
| 
 | a GtkSourceView. | 
| 
 | whether line marks should be displayed. | 
Since 2.2
gboolean            gtk_source_view_get_show_line_marks (GtkSourceView *view);
Returns whether line marks are displayed beside the text.
| 
 | a GtkSourceView. | 
| Returns : | TRUEif the line marks are displayed. | 
Since 2.2
void gtk_source_view_set_show_line_numbers (GtkSourceView *view,gboolean show);
If TRUE line numbers will be displayed beside the text.
| 
 | a GtkSourceView. | 
| 
 | whether line numbers should be displayed. | 
gboolean            gtk_source_view_get_show_line_numbers
                                                        (GtkSourceView *view);
Returns whether line numbers are displayed beside the text.
| 
 | a GtkSourceView. | 
| Returns : | TRUEif the line numbers are displayed. | 
void gtk_source_view_set_show_right_margin (GtkSourceView *view,gboolean show);
If TRUE a right margin is displayed.
| 
 | a GtkSourceView. | 
| 
 | whether to show a right margin. | 
gboolean            gtk_source_view_get_show_right_margin
                                                        (GtkSourceView *view);
Returns whether a right margin is displayed.
| 
 | a GtkSourceView. | 
| Returns : | TRUEif the right margin is shown. | 
void gtk_source_view_set_right_margin_position (GtkSourceView *view,guint pos);
Sets the position of the right margin in the given view.
| 
 | a GtkSourceView. | 
| 
 | the width in characters where to position the right margin. | 
guint               gtk_source_view_get_right_margin_position
                                                        (GtkSourceView *view);
Gets the position of the right margin in the given view.
| 
 | a GtkSourceView. | 
| Returns : | the position of the right margin. | 
void gtk_source_view_set_tab_width (GtkSourceView *view,guint width);
Sets the width of tabulation in characters.
| 
 | a GtkSourceView. | 
| 
 | width of tab in characters. | 
guint               gtk_source_view_get_tab_width       (GtkSourceView *view);
Returns the width of tabulation in characters.
| 
 | a GtkSourceView. | 
| Returns : | width of tab. | 
void gtk_source_view_set_draw_spaces (GtkSourceView *view,GtkSourceDrawSpacesFlags flags);
Set if and how the spaces should be visualized. Specifying flags as 0 will
disable display of spaces.
| 
 | a GtkSourceView. | 
| 
 | GtkSourceDrawSpacesFlags specifing how white spaces should be displayed | 
GtkSourceDrawSpacesFlags gtk_source_view_get_draw_spaces
                                                        (GtkSourceView *view);
Returns the GtkSourceDrawSpacesFlags specifying if and how spaces
should be displayed for this view.
| 
 | a GtkSourceView | 
| Returns : | the GtkSourceDrawSpacesFlags, 0 if no spaces should be drawn. | 
GtkSourceCompletion * gtk_source_view_get_completion    (GtkSourceView *view);
Gets the GtkSourceCompletion associated with view.
| 
 | a GtkSourceView. | 
| Returns : | the GtkSourceCompletion associated with view. [type GtkSource.Completion][transfer none] | 
GtkSourceGutter * gtk_source_view_get_gutter (GtkSourceView *view,GtkTextWindowType window_type);
Returns the GtkSourceGutter object associated with window_type for view.
Only GTK_TEXT_WINDOW_LEFT and GTK_TEXT_WINDOW_RIGHT are supported,
respectively corresponding to the left and right gutter. The line numbers
and mark category icons are rendered in the gutter corresponding to
GTK_TEXT_WINDOW_LEFT.
| 
 | a GtkSourceView. | 
| 
 | the gutter window type. | 
| Returns : | the GtkSourceGutter. [transfer none] | 
Since 2.8
"auto-indent" property  "auto-indent"              gboolean              : Read / Write
Whether to enable auto indentation.
Default value: FALSE
"completion" property"completion" GtkSourceCompletion* : Read
The completion object associated with the view.
"draw-spaces" property"draw-spaces" GtkSourceDrawSpacesFlags : Read / Write
Set if and how the spaces should be visualized.
Since 2.4
"highlight-current-line" property  "highlight-current-line"   gboolean              : Read / Write
Whether to highlight the current line.
Default value: FALSE
"indent-on-tab" property  "indent-on-tab"            gboolean              : Read / Write
Whether to indent the selected text when the tab key is pressed.
Default value: TRUE
"indent-width" property  "indent-width"             gint                  : Read / Write
Width of an indentation step expressed in number of spaces.
Allowed values: [G_MAXULONG,32]
Default value: -1
"insert-spaces-instead-of-tabs" property  "insert-spaces-instead-of-tabs" gboolean              : Read / Write
Whether to insert spaces instead of tabs.
Default value: FALSE
"right-margin-position" property  "right-margin-position"    guint                 : Read / Write
Position of the right margin.
Allowed values: [1,1000]
Default value: 80
"show-line-marks" property  "show-line-marks"          gboolean              : Read / Write
Whether to display line mark pixbufs
Default value: FALSE
"show-line-numbers" property  "show-line-numbers"        gboolean              : Read / Write
Whether to display line numbers
Default value: FALSE
"show-right-margin" property  "show-right-margin"        gboolean              : Read / Write
Whether to display the right margin.
Default value: FALSE
"smart-home-end" property"smart-home-end" GtkSourceSmartHomeEndType : Read / Write
Set the behavior of the HOME and END keys.
Default value: GTK_SOURCE_SMART_HOME_END_DISABLED
Since 2.0
"line-mark-activated" signalvoid                user_function                      (GtkSourceView *view,
                                                        GtkTextIter   *iter,
                                                        GdkEvent      *event,
                                                        gpointer       user_data)      : Run Last
Emitted when a line mark has been activated (for instance when there
was a button press in the line marks gutter). You can use iter to
determine on which line the activation took place.
| 
 | the GtkSourceView | 
| 
 | a GtkTextIter | 
| 
 | the GdkEvent that activated the event | 
| 
 | user data set when the signal handler was connected. | 
"move-lines" signalvoid                user_function                      (GtkSourceView *view,
                                                        gboolean       copy,
                                                        gint           count,
                                                        gpointer       user_data)      : Action
The ::move-lines signal is a keybinding which gets emitted
when the user initiates moving a line. The default binding key
is Alt+Up/Down arrow. And moves the currently selected lines,
or the current line by count. For the moment, only
count of -1 or 1 is valid.
| 
 | the GtkSourceView which received the signal | 
| 
 | TRUEif the line should be copied,FALSEif it should be moved | 
| 
 | the number of lines to move over. | 
| 
 | user data set when the signal handler was connected. | 
Since 2.10
"move-words" signalvoid                user_function                      (GtkSourceView *view,
                                                        gint           count,
                                                        gpointer       user_data)      : Action
The ::move-words signal is a keybinding which gets emitted when the user initiates moving a word. The default binding key is Alt+Left/Right Arrow and moves the current selection, or the current word by one word.
| 
 | the GtkSourceView which received the signal | 
| 
 | the number of words to move over | 
| 
 | user data set when the signal handler was connected. | 
Since 3.0
"show-completion" signalvoid                user_function                      (GtkSourceView *view,
                                                        gpointer       user_data)      : Action
The ::show-completion signal is a keybinding signal which gets emitted when the user initiates a completion in default mode.
Applications should not connect to it, but may emit it with g_signal_emit_by_name if they need to control the default mode completion activation.
| 
 | The GtkSourceView who emits the signal | 
| 
 | user data set when the signal handler was connected. | 
"smart-home-end" signalvoid                user_function                      (GtkSourceView *view,
                                                        GtkTextIter   *iter,
                                                        gint           count,
                                                        gpointer       user_data)      : Run Last
Emitted when a the cursor was moved according to the smart home end setting. The signal is emitted after the cursor is moved, but during the GtkTextView::move-cursor action. This can be used to find out whether the cursor was moved by a normal home/end or by a smart home/end.
| 
 | the GtkSourceView | 
| 
 | a GtkTextIter | 
| 
 | the count | 
| 
 | user data set when the signal handler was connected. | 
Since 3.0