gtksourceview2-0.12.0: Binding to the GtkSourceView library.

Portabilityportable (depends on GHC)
Stabilityprovisional
Maintainergtk2hs-users@lists.sourceforge.net

Graphics.UI.Gtk.SourceView.SourceBuffer

Contents

Description

 

Synopsis

Description

The SourceBuffer object is the model for SourceView widgets. It extends the TextBuffer object by adding features useful to display and edit source code as syntax highlighting and bracket matching. It also implements support for undo/redo operations.

To create a SourceBuffer use sourceBufferNew or sourceBufferNewWithLanguage. The second form is just a convenience function which allows you to initially set a SourceLanguage.

By default highlighting is enabled, but you can disable it with sourceBufferSetHighlightSyntax.

Types

Methods

sourceBufferSetHighlightSyntaxSource

Arguments

:: SourceBufferClass buffer 
=> buffer

buffer a SourceBuffer.

-> Bool

highlight True to enable syntax highlighting, False to disable it.

-> IO () 

Controls whether syntax is highlighted in the buffer. If highlight is True, the text will be highlighted according to the syntax patterns specified in the language set with sourceBufferSetLanguage. If highlight is False, syntax highlighting is disabled and all the TextTag objects that have been added by the syntax highlighting engine are removed from the buffer.

sourceBufferGetHighlightSyntaxSource

Arguments

:: SourceBufferClass buffer 
=> buffer 
-> IO Bool

returns True if syntax highlighting is enabled, False otherwise.

Determines whether syntax highlighting is activated in the source buffer.

sourceBufferSetLanguageSource

Arguments

:: SourceBufferClass buffer 
=> buffer 
-> Maybe SourceLanguage

language a SourceLanguage to set, or Nothing.

-> IO () 

Associate a SourceLanguage with the source buffer. If language is not-Nothing and syntax highlighting is enabled (see sourceBufferSetHighlightSyntax, the syntax patterns defined in language will be used to highlight the text contained in the buffer. If language is Nothing, the text contained in the buffer is not highlighted.

sourceBufferGetLanguageSource

Arguments

:: SourceBufferClass buffer 
=> buffer 
-> IO (Maybe SourceLanguage)

returns SourceLanguage associated with the buffer, or Nothing.

Returns the SourceLanguage associated with the buffer, see sourceBufferSetLanguage.

sourceBufferSetHighlightMatchingBracketsSource

Arguments

:: SourceBufferClass buffer 
=> buffer 
-> Bool

highlight True if you want matching brackets highlighted.

-> IO () 

Controls the bracket match highlighting function in the buffer. If activated, when you position your cursor over a bracket character (a parenthesis, a square bracket, etc.) the matching opening or closing bracket character will be highlighted. You can specify the style with the sourceBufferSetBracketMatchStyle function.

sourceBufferGetHighlightMatchingBracketsSource

Arguments

:: SourceBufferClass buffer 
=> buffer 
-> IO Bool

returns True if the source buffer will highlight matching brackets.

Determines whether bracket match highlighting is activated for the source buffer.

sourceBufferSetStyleSchemeSource

Arguments

:: SourceBufferClass buffer 
=> buffer 
-> Maybe SourceStyleScheme

scheme style scheme.

-> IO () 

Sets style scheme used by the buffer. If scheme is Nothing no style scheme is used.

sourceBufferGetStyleSchemeSource

Arguments

:: SourceBufferClass buffer 
=> buffer 
-> IO (Maybe SourceStyleScheme)

returns the SourceStyleScheme set by sourceBufferSetStyleScheme, or Nothing.

Returns the SourceStyleScheme currently used in buffer.

sourceBufferSetMaxUndoLevelsSource

Arguments

:: SourceBufferClass buffer 
=> buffer 
-> Int

maxUndoLevels the desired maximum number of undo levels.

-> IO () 

Sets the number of undo levels for user actions the buffer will track. If the number of user actions exceeds the limit set by this function, older actions will be discarded.

If maxUndoLevels is -1, no limit is set.

A new action is started whenever the function textBufferBeginUserAction is called. In general, this happens whenever the user presses any key which modifies the buffer, but the undo manager will try to merge similar consecutive actions, such as multiple character insertions into one action. But, inserting a newline does start a new action.

sourceBufferGetMaxUndoLevelsSource

Arguments

:: SourceBufferClass buffer 
=> buffer 
-> IO Int

returns the maximum number of possible undo levels or -1 if no limit is set.

Determines the number of undo levels the buffer will track for buffer edits.

sourceBufferGetCanUndoSource

Arguments

:: SourceBufferClass buffer 
=> buffer 
-> IO Bool

returns True if it's possible to undo the last action.

Determines whether a source buffer can undo the last action.

sourceBufferGetCanRedoSource

Arguments

:: SourceBufferClass buffer 
=> buffer 
-> IO Bool

returns True if a redo is possible.

Determines whether a source buffer can redo the last action (i.e. if the last operation was an undo).

sourceBufferUndo :: SourceBufferClass buffer => buffer -> IO ()Source

Undoes the last user action which modified the buffer. Use sourceBufferCanUndo to check whether a call to this function will have any effect.

Actions are defined as groups of operations between a call to textBufferBeginUserAction and textBufferEndUserAction on the same line.

sourceBufferRedo :: SourceBufferClass buffer => buffer -> IO ()Source

Redoes the last undo operation. Use sourceBufferCanRedo to check whether a call to this function will have any effect.

sourceBufferBeginNotUndoableAction :: SourceBufferClass buffer => buffer -> IO ()Source

Marks the beginning of a not undoable action on the buffer, disabling the undo manager. Typically you would call this function before initially setting the contents of the buffer (e.g. when loading a file in a text editor).

You may nest sourceBufferBeginNotUndoableAction / sourceBufferEndNotUndoableAction blocks.

sourceBufferEndNotUndoableAction :: SourceBufferClass buffer => buffer -> IO ()Source

Marks the end of a not undoable action on the buffer. When the last not undoable block is closed through the call to this function, the list of undo actions is cleared and the undo manager is re-enabled.

sourceBufferCreateSourceMark :: SourceBufferClass buffer => buffer -> Maybe String -> String -> TextIter -> IO SourceMarkSource

Creates a marker in the buffer of the given type.

  • A marker is semantically very similar to a Graphics.UI.Gtk.Multiline.TextMark, except it has a type which is used by the SourceView displaying the buffer to show a pixmap on the left margin, at the line the marker is in. Because of this, a marker is generally associated to a line and not a character position. Markers are also accessible through a position or range in the buffer.
  • Markers are implemented using Graphics.UI.Gtk.Multiline.TextMark, so all characteristics and restrictions to marks apply to markers too. These includes life cycle issues and Graphics.UI.Gtk.Multiline.TextMark.onMarkSet and Graphics.UI.Gtk.Multiline.TextMark.onMarkDeleted signal emissions.
  • Like a Graphics.UI.Gtk.Multiline.TextMark, a SourceMarker can be anonymous if the passed name is Nothing. Also, the buffer owns the markers so you shouldn't unreference it.

sourceBufferGetSourceMarksAtLineSource

Arguments

:: SourceBufferClass buffer 
=> buffer

buffer a SourceBuffer.

-> Int

line a line number.

-> String

category category to search for or empty

-> IO [SourceMark] 

Returns the list of marks of the given category at line. If category is empty, all marks at line are returned.

sourceBufferGetSourceMarksAtIterSource

Arguments

:: SourceBufferClass buffer 
=> buffer

buffer a SourceBuffer.

-> TextIter

iter an iterator.

-> String

category category to search for or empty

-> IO [SourceMark] 

Returns the list of marks of the given category at iter. If category is empty it returns all marks at iter.

sourceBufferRemoveSourceMarksSource

Arguments

:: SourceBufferClass buffer 
=> buffer

buffer a SourceBuffer.

-> TextIter

start a TextIter

-> TextIter

end a TextIter

-> String

category category to search for or empty

-> IO () 

Remove all marks of category between start and end from the buffer. If category is empty, all marks in the range will be removed.

sourceBufferForwardIterToSourceMarkSource

Arguments

:: SourceBufferClass buffer 
=> buffer

buffer a SourceBuffer.

-> TextIter

iter an iterator.

-> String

category category to search for or emtpy

-> IO Bool

returns whether iter moved.

Moves iter to the position of the next SourceMark of the given category. Returns True if iter was moved. If category is empty, the next source mark can be of any category.

sourceBufferBackwardIterToSourceMarkSource

Arguments

:: SourceBufferClass buffer 
=> buffer

buffer a SourceBuffer.

-> TextIter

iter an iterator.

-> String

category category to search for or emtpy

-> IO Bool

returns whether iter moved.

Moves iter to the position of the previous SourceMark of the given category. Returns True if iter was moved. If category is empty, the previous source mark can be of any category.

sourceBufferEnsureHighlightSource

Arguments

:: SourceBufferClass buffer 
=> buffer 
-> TextIter

start start of the area to highlight.

-> TextIter

end end of the area to highlight.

-> IO () 

Forces buffer to analyze and highlight the given area synchronously.

Note

This is a potentially slow operation and should be used only when you need to make sure that some text not currently visible is highlighted, for instance before printing.

Attributes

sourceBufferCanRedo :: SourceBufferClass buffer => ReadAttr buffer BoolSource

Whether Redo operation is possible.

Default value: False

sourceBufferCanUndo :: SourceBufferClass buffer => ReadAttr buffer BoolSource

Whether Undo operation is possible.

Default value: False

sourceBufferHighlightMatchingBrackets :: SourceBufferClass buffer => Attr buffer BoolSource

Whether to highlight matching brackets in the buffer.

Default value: True

sourceBufferHighlightSyntax :: SourceBufferClass buffer => Attr buffer BoolSource

Whether to highlight syntax in the buffer.

Default value: True

sourceBufferLanguage :: SourceBufferClass buffer => Attr buffer (Maybe SourceLanguage)Source

Language object to get highlighting patterns from.

sourceBufferSourceStyleScheme :: SourceBufferClass buffer => Attr buffer (Maybe SourceStyleScheme)Source

Style scheme. It contains styles for syntax highlighting, optionally foreground, background, cursor color, current line color, and matching brackets style.

sourceBufferMaxUndoLevels :: SourceBufferClass buffer => Attr buffer IntSource

Number of undo levels for the buffer. -1 means no limit. This property will only affect the default undo manager.

Allowed values: >= GMaxulong

Default value: 1000

sourceBufferUndoManager :: SourceBufferClass buffer => Attr buffer SourceUndoManagerSource

The buffer undo manager.

Signals

sourceBufferSourceMarkUpdated :: SourceBufferClass buffer => Signal buffer (TextMark -> IO ())Source

The sourceBufferMarkUpdated signal is emitted each time a mark is added to, moved or removed from the buffer.