By default, class@View can auto-indent as you type when
property@View:auto-indent is enabled. The indentation simply copies the
previous lines indentation.
This can be changed by implementing gtksource.indenter.Indenter and setting the
property@View:indenter property.
Implementors of this interface should implement both
vfunc@Indenter.is_trigger and vfunc@Indenter.indent.
vfunc@Indenter.indent is called after text has been
inserted into class@Buffer when
vfunc@Indenter.is_trigger returned true. The gtk.text_iter.TextIter
is placed directly after the inserted character or characters.
Auto-indentation interface.
By default, class@View can auto-indent as you type when property@View:auto-indent is enabled. The indentation simply copies the previous lines indentation.
This can be changed by implementing gtksource.indenter.Indenter and setting the property@View:indenter property.
Implementors of this interface should implement both vfunc@Indenter.is_trigger and vfunc@Indenter.indent.
vfunc@Indenter.is_trigger is called upon key-press to determine of the key press should trigger an indentation. The default implementation of the interface checks to see if the key was gdk.types.KEY_Return or gdk.types.KEY_KP_Enter without gdk.types.ModifierType.ShiftMask set.
vfunc@Indenter.indent is called after text has been inserted into class@Buffer when vfunc@Indenter.is_trigger returned true. The gtk.text_iter.TextIter is placed directly after the inserted character or characters.
It may be beneficial to move the insertion mark using gtk.text_buffer.TextBuffer.selectRange depending on how the indenter changes the indentation.
All changes are encapsulated within a single user action so that the user may undo them using standard undo/redo accelerators.