GtkSourceSpaceDrawer

Represent white space characters with symbols.

#GtkSourceSpaceDrawer provides a way to visualize white spaces, by drawing symbols.

Call gtksource.view.View.getSpaceDrawer to get the gtksource.space_drawer.SpaceDrawer instance of a certain class@View.

By default, no white spaces are drawn because the property@SpaceDrawer:enable-matrix is false.

To draw white spaces, gtksource.space_drawer.SpaceDrawer.setTypesForLocations can be called to set the property@SpaceDrawer:matrix property (by default all space types are enabled at all locations). Then call gtksource.space_drawer.SpaceDrawer.setEnableMatrix.

For a finer-grained method, there is also the class@Tag's property@Tag:draw-spaces property.

Example

To draw non-breaking spaces everywhere and draw all types of trailing spaces except newlines:

gtk_source_space_drawer_set_types_for_locations (space_drawer,
                                                 GTK_SOURCE_SPACE_LOCATION_ALL,
                                                 GTK_SOURCE_SPACE_TYPE_NBSP);

gtk_source_space_drawer_set_types_for_locations (space_drawer,
                                                 GTK_SOURCE_SPACE_LOCATION_TRAILING,
                                                 GTK_SOURCE_SPACE_TYPE_ALL &
                                                 ~GTK_SOURCE_SPACE_TYPE_NEWLINE);

gtk_source_space_drawer_set_enable_matrix (space_drawer, TRUE);

Use-case: draw unwanted white spaces

A possible use-case is to draw only unwanted white spaces. Examples:

  • Draw all trailing spaces.
  • If the indentation and alignment must be done with spaces, draw tabs.

And non-breaking spaces can always be drawn, everywhere, to distinguish them from normal spaces.

struct GtkSourceSpaceDrawer