Indenter

interface Indenter

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 GtkSourceIndenter 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 const@Gdk.KEY_Return or const@Gdk.KEY_KP_Enter without %GDK_SHIFT_MASK set.

vfunc@Indenter.indent is called after text has been inserted into class@Buffer when vfunc@Indenter.is_trigger returned true. The struct@Gtk.TextIter is placed directly after the inserted character or characters.

It may be beneficial to move the insertion mark using method@Gtk.TextBuffer.select_range 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.

Skipped during bindings generation

  • method indent: In/Out parameter is not supported

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
abstract val gtksourceIndenterPointer: <Error class: unknown class><<Error class: unknown class>>

Functions

Link copied to clipboard
open fun isTrigger(view: View, location: <Error class: unknown class>, state: <Error class: unknown class>, keyval: <Error class: unknown class>): Boolean

This function is used to determine if a key pressed should cause the indenter to automatically indent.