Geany dev
Functions
sciwrappers.h File Reference

Wrapper functions for the Scintilla editor widget SCI_* messages. More...

Functions

void sci_delete_marker_at_line (ScintillaObject *sci, gint line_number, gint marker)
 Deletes a line marker. More...
 
void sci_end_undo_action (ScintillaObject *sci)
 Ends grouping a set of edits together as one Undo action. More...
 
void sci_ensure_line_is_visible (ScintillaObject *sci, gint line)
 Makes line visible (folding may have hidden it). More...
 
gint sci_find_matching_brace (ScintillaObject *sci, gint pos)
 Finds a matching brace at pos. More...
 
gint sci_find_text (ScintillaObject *sci, gint flags, struct Sci_TextToFind *ttf)
 Finds text in the document. More...
 
gchar sci_get_char_at (ScintillaObject *sci, gint pos)
 Gets a character. More...
 
gint sci_get_col_from_position (ScintillaObject *sci, gint position)
 Gets the column number relative to the start of the line that position is on. More...
 
gchar * sci_get_contents (ScintillaObject *sci, gint buffer_len)
 Allocates and fills a buffer with text from the start of the document. More...
 
gchar * sci_get_contents_range (ScintillaObject *sci, gint start, gint end)
 Gets text between start and end. More...
 
gint sci_get_current_line (ScintillaObject *sci)
 Gets current line number. More...
 
gint sci_get_current_position (ScintillaObject *sci)
 Gets the cursor position. More...
 
gint sci_get_length (ScintillaObject *sci)
 Gets the length of all text. More...
 
gint sci_get_lexer (ScintillaObject *sci)
 Gets the currently used lexer. More...
 
gchar * sci_get_line (ScintillaObject *sci, gint line_num)
 Gets line contents. More...
 
gint sci_get_line_count (ScintillaObject *sci)
 Gets the total number of lines. More...
 
gint sci_get_line_end_position (ScintillaObject *sci, gint line)
 Gets the position at the end of a line. More...
 
gint sci_get_line_from_position (ScintillaObject *sci, gint position)
 Gets the line number from position. More...
 
gint sci_get_line_indentation (ScintillaObject *sci, gint line)
 Gets the indentation width of a line. More...
 
gboolean sci_get_line_is_visible (ScintillaObject *sci, gint line)
 Checks if a line is visible (folding may have hidden it). More...
 
gint sci_get_line_length (ScintillaObject *sci, gint line)
 Gets line length. More...
 
gint sci_get_position_from_line (ScintillaObject *sci, gint line)
 Gets the position for the start of line. More...
 
void sci_get_selected_text (ScintillaObject *sci, gchar *text)
 Gets selected text. More...
 
gint sci_get_selected_text_length (ScintillaObject *sci)
 Gets selected text length including the terminating NUL character. More...
 
gint sci_get_selected_text_length2 (ScintillaObject *sci)
 Gets selected text length without the terminating NUL character. More...
 
gchar * sci_get_selection_contents (ScintillaObject *sci)
 Gets selected text. More...
 
gint sci_get_selection_end (ScintillaObject *sci)
 Gets the selection end position. More...
 
gint sci_get_selection_mode (ScintillaObject *sci)
 Gets selection mode. More...
 
gint sci_get_selection_start (ScintillaObject *sci)
 Gets the selection start position. More...
 
gint sci_get_style_at (ScintillaObject *sci, gint position)
 Gets style ID at position. More...
 
gint sci_get_tab_width (ScintillaObject *sci)
 Gets display tab width (this is not indent width, see GeanyIndentPrefs). More...
 
void sci_get_text (ScintillaObject *sci, gint len, gchar *text)
 Gets all text. More...
 
void sci_get_text_range (ScintillaObject *sci, gint start, gint end, gchar *text)
 Gets text between start and end. More...
 
void sci_goto_line (ScintillaObject *sci, gint line, gboolean unfold)
 Jumps to the specified line in the document. More...
 
gboolean sci_has_selection (ScintillaObject *sci)
 Checks if there's a selection. More...
 
void sci_indicator_clear (ScintillaObject *sci, gint pos, gint len)
 Clears the currently set indicator from a range of text. More...
 
void sci_indicator_set (ScintillaObject *sci, gint indic)
 Sets the current indicator. More...
 
void sci_insert_text (ScintillaObject *sci, gint pos, const gchar *text)
 Inserts text. More...
 
gboolean sci_is_marker_set_at_line (ScintillaObject *sci, gint line, gint marker)
 Checks if a line has a marker set. More...
 
void sci_replace_sel (ScintillaObject *sci, const gchar *text)
 Replaces selection. More...
 
void sci_scroll_caret (ScintillaObject *sci)
 Scrolls the cursor in view. More...
 
void sci_send_command (ScintillaObject *sci, gint cmd)
 Sends Scintilla commands without any parameters. More...
 
void sci_set_current_position (ScintillaObject *sci, gint position, gboolean scroll_to_caret)
 Sets the cursor position. More...
 
void sci_set_font (ScintillaObject *sci, gint style, const gchar *font, gint size)
 Sets the font for a particular style. More...
 
void sci_set_line_indentation (ScintillaObject *sci, gint line, gint indent)
 Sets the indentation of a line. More...
 
void sci_set_marker_at_line (ScintillaObject *sci, gint line_number, gint marker)
 Sets a line marker. More...
 
void sci_set_selection_end (ScintillaObject *sci, gint position)
 Sets the selection end position. More...
 
void sci_set_selection_mode (ScintillaObject *sci, gint mode)
 Sets selection mode. More...
 
void sci_set_selection_start (ScintillaObject *sci, gint position)
 Sets the selection start position. More...
 
void sci_set_text (ScintillaObject *sci, const gchar *text)
 Sets all text. More...
 
void sci_start_undo_action (ScintillaObject *sci)
 Begins grouping a set of edits together as one Undo action. More...
 

Detailed Description

Wrapper functions for the Scintilla editor widget SCI_* messages.

You should also check the https://scintilla.org documentation, as it is more detailed.

To get Scintilla notifications, use the "editor-notify" signal .

Note
These functions were originally from the cssed project (https://sourceforge.net/projects/cssed/, thanks).
See also
scintilla_send_message().

Function Documentation

◆ sci_delete_marker_at_line()

void sci_delete_marker_at_line ( ScintillaObject *  sci,
gint  line_number,
gint  marker 
)

Deletes a line marker.

Parameters
sciScintilla widget.
line_numberLine number.
markerMarker number.

◆ sci_end_undo_action()

void sci_end_undo_action ( ScintillaObject *  sci)

Ends grouping a set of edits together as one Undo action.

Parameters
sciScintilla GtkWidget.
See also
sci_start_undo_action().

◆ sci_ensure_line_is_visible()

void sci_ensure_line_is_visible ( ScintillaObject *  sci,
gint  line 
)

Makes line visible (folding may have hidden it).

Parameters
sciScintilla widget.
lineLine number.

◆ sci_find_matching_brace()

gint sci_find_matching_brace ( ScintillaObject *  sci,
gint  pos 
)

Finds a matching brace at pos.

Parameters
sciScintilla widget.
posPosition.
Returns
Matching brace position.
Since
0.15

◆ sci_find_text()

gint sci_find_text ( ScintillaObject *  sci,
gint  flags,
struct Sci_TextToFind *  ttf 
)

Finds text in the document.

The ttf argument should be a pointer to a Sci_TextToFind structure which contains the text to find and the range in which the text should be searched.

Please refer to the Scintilla documentation for a more detailed description.

Parameters
sciScintilla widget.
flagsBitmask of Scintilla search flags (SCFIND_*, see Scintilla documentation).
ttfPointer to a TextToFind structure which contains the text to find and the range.
Returns
The position of the start of the found text if it succeeds, otherwise -1. The chrgText.cpMin and chrgText.cpMax members of TextToFind are filled in with the start and end positions of the found text.

◆ sci_get_char_at()

gchar sci_get_char_at ( ScintillaObject *  sci,
gint  pos 
)

Gets a character.

Parameters
sciScintilla widget.
posPosition.
Returns
Char.

◆ sci_get_col_from_position()

gint sci_get_col_from_position ( ScintillaObject *  sci,
gint  position 
)

Gets the column number relative to the start of the line that position is on.

Parameters
sciScintilla widget.
positionPosition.
Returns
The column.

◆ sci_get_contents()

gchar * sci_get_contents ( ScintillaObject *  sci,
gint  buffer_len 
)

Allocates and fills a buffer with text from the start of the document.

Parameters
sciScintilla widget.
buffer_lenBuffer length to allocate, including the terminating null char, e.g. sci_get_length() + 1. Alternatively use -1 to get all text (since Geany 1.23).
Returns
A copy of the text. Should be freed when no longer needed.
Since
1.23 (0.17)

◆ sci_get_contents_range()

gchar * sci_get_contents_range ( ScintillaObject *  sci,
gint  start,
gint  end 
)

Gets text between start and end.

Parameters
sciScintilla widget.
startStart position.
endEnd position.
Returns
The text inside the given range. Should be freed when no longer needed.
Since
0.17

◆ sci_get_current_line()

gint sci_get_current_line ( ScintillaObject *  sci)

Gets current line number.

Parameters
sciScintilla widget.
Returns
Line number.

◆ sci_get_current_position()

gint sci_get_current_position ( ScintillaObject *  sci)

Gets the cursor position.

Parameters
sciScintilla widget.
Returns
Position.

◆ sci_get_length()

gint sci_get_length ( ScintillaObject *  sci)

Gets the length of all text.

Parameters
sciScintilla widget.
Returns
Length.

◆ sci_get_lexer()

gint sci_get_lexer ( ScintillaObject *  sci)

Gets the currently used lexer.

Parameters
sciScintilla widget.
Returns
The lexer ID

◆ sci_get_line()

gchar * sci_get_line ( ScintillaObject *  sci,
gint  line_num 
)

Gets line contents.

Parameters
sciScintilla widget.
line_numLine number.
Returns
A NULL-terminated copy of the line text.

◆ sci_get_line_count()

gint sci_get_line_count ( ScintillaObject *  sci)

Gets the total number of lines.

Parameters
sciScintilla widget.
Returns
The line count.

◆ sci_get_line_end_position()

gint sci_get_line_end_position ( ScintillaObject *  sci,
gint  line 
)

Gets the position at the end of a line.

Parameters
sciScintilla widget.
lineLine.
Returns
The position at the end of the line.

◆ sci_get_line_from_position()

gint sci_get_line_from_position ( ScintillaObject *  sci,
gint  position 
)

Gets the line number from position.

Parameters
sciScintilla widget.
positionPosition.
Returns
The line.

◆ sci_get_line_indentation()

gint sci_get_line_indentation ( ScintillaObject *  sci,
gint  line 
)

Gets the indentation width of a line.

Parameters
sciScintilla widget.
lineLine to get the indentation from.
Returns
Indentation width.
Since
0.19

◆ sci_get_line_is_visible()

gboolean sci_get_line_is_visible ( ScintillaObject *  sci,
gint  line 
)

Checks if a line is visible (folding may have hidden it).

Parameters
sciScintilla widget.
lineLine number.
Returns
Whether line will be drawn on the screen.

◆ sci_get_line_length()

gint sci_get_line_length ( ScintillaObject *  sci,
gint  line 
)

Gets line length.

Parameters
sciScintilla widget.
lineLine number.
Returns
Length.

◆ sci_get_position_from_line()

gint sci_get_position_from_line ( ScintillaObject *  sci,
gint  line 
)

Gets the position for the start of line.

Parameters
sciScintilla widget.
lineLine.
Returns
Position.

◆ sci_get_selected_text()

void sci_get_selected_text ( ScintillaObject *  sci,
gchar *  text 
)

Gets selected text.

Deprecated:
sci_get_selected_text is deprecated and should not be used in newly-written code. Use sci_get_selection_contents() instead.
Note
You must ensure NUL termination yourself, this function does not NUL terminate the buffer itself.
Parameters
sciScintilla widget.
textText buffer; must be allocated sci_get_selected_text_length() + 1 bytes for null-termination.

◆ sci_get_selected_text_length()

gint sci_get_selected_text_length ( ScintillaObject *  sci)

Gets selected text length including the terminating NUL character.

Deprecated:
sci_get_selected_text_length is deprecated and should not be used in newly-written code. Use sci_get_selected_text_length2() instead.
Parameters
sciScintilla widget.
Returns
Length.

◆ sci_get_selected_text_length2()

gint sci_get_selected_text_length2 ( ScintillaObject *  sci)

Gets selected text length without the terminating NUL character.

Parameters
sciScintilla widget.
Returns
Length.

◆ sci_get_selection_contents()

gchar * sci_get_selection_contents ( ScintillaObject *  sci)

Gets selected text.

Parameters
sciScintilla widget.
Returns
The selected text. Should be freed when no longer needed.
Since
0.17

◆ sci_get_selection_end()

gint sci_get_selection_end ( ScintillaObject *  sci)

Gets the selection end position.

Parameters
sciScintilla widget.
Returns
Position.

◆ sci_get_selection_mode()

gint sci_get_selection_mode ( ScintillaObject *  sci)

Gets selection mode.

Parameters
sciScintilla widget.
Returns
Selection mode.

◆ sci_get_selection_start()

gint sci_get_selection_start ( ScintillaObject *  sci)

Gets the selection start position.

Parameters
sciScintilla widget.
Returns
Position.

◆ sci_get_style_at()

gint sci_get_style_at ( ScintillaObject *  sci,
gint  position 
)

Gets style ID at position.

Parameters
sciScintilla widget.
positionPosition.
Returns
Style ID.

◆ sci_get_tab_width()

gint sci_get_tab_width ( ScintillaObject *  sci)

Gets display tab width (this is not indent width, see GeanyIndentPrefs).

Parameters
sciScintilla widget.
Returns
Width.
Since
0.15

◆ sci_get_text()

void sci_get_text ( ScintillaObject *  sci,
gint  len,
gchar *  text 
)

Gets all text.

Deprecated:
sci_get_text is deprecated and should not be used in newly-written code. Use sci_get_contents() instead.
Parameters
sciScintilla widget.
lenLength of text buffer, usually sci_get_length() + 1.
textText buffer; must be allocated len bytes for null-termination.

◆ sci_get_text_range()

void sci_get_text_range ( ScintillaObject *  sci,
gint  start,
gint  end,
gchar *  text 
)

Gets text between start and end.

Deprecated:
sci_get_text_range is deprecated and should not be used in newly-written code. Use sci_get_contents_range() instead.
Parameters
sciScintilla widget.
startStart.
endEnd.
textText will be zero terminated and must be allocated (end - start + 1) bytes.

◆ sci_goto_line()

void sci_goto_line ( ScintillaObject *  sci,
gint  line,
gboolean  unfold 
)

Jumps to the specified line in the document.

If unfold is set and line is hidden by a fold, it is unfolded first to ensure it is visible.

Parameters
sciScintilla widget.
lineLine.
unfoldWhether to unfold first.

◆ sci_has_selection()

gboolean sci_has_selection ( ScintillaObject *  sci)

Checks if there's a selection.

Parameters
sciScintilla widget.
Returns
Whether a selection is present.
Since
0.15

◆ sci_indicator_clear()

void sci_indicator_clear ( ScintillaObject *  sci,
gint  pos,
gint  len 
)

Clears the currently set indicator from a range of text.

Starting at pos, len characters long. In order to make this function properly, you need to set the current indicator before with sci_indicator_set().

Parameters
sciScintilla widget.
posStarting position.
lenLength.
Since
0.16

◆ sci_indicator_set()

void sci_indicator_set ( ScintillaObject *  sci,
gint  indic 
)

Sets the current indicator.

This is necessary to define an indicator for a range of text or clearing indicators for a range of text.

Parameters
sciScintilla widget.
indicThe indicator number to set.
See also
sci_indicator_clear
Since
0.16

◆ sci_insert_text()

void sci_insert_text ( ScintillaObject *  sci,
gint  pos,
const gchar *  text 
)

Inserts text.

Parameters
sciScintilla widget.
posPosition, or -1 for current.
textText.

◆ sci_is_marker_set_at_line()

gboolean sci_is_marker_set_at_line ( ScintillaObject *  sci,
gint  line,
gint  marker 
)

Checks if a line has a marker set.

Parameters
sciScintilla widget.
lineLine number.
markerMarker number.
Returns
Whether it's set.

◆ sci_replace_sel()

void sci_replace_sel ( ScintillaObject *  sci,
const gchar *  text 
)

Replaces selection.

Parameters
sciScintilla widget.
textText.

◆ sci_scroll_caret()

void sci_scroll_caret ( ScintillaObject *  sci)

Scrolls the cursor in view.

Parameters
sciScintilla widget.

◆ sci_send_command()

void sci_send_command ( ScintillaObject *  sci,
gint  cmd 
)

Sends Scintilla commands without any parameters.

Parameters
sciThe Scintilla GtkWidget.
cmdSCI_COMMAND.
See also
https://scintilla.org for the documentation.
Since
0.16

◆ sci_set_current_position()

void sci_set_current_position ( ScintillaObject *  sci,
gint  position,
gboolean  scroll_to_caret 
)

Sets the cursor position.

Parameters
sciScintilla widget.
positionPosition.
scroll_to_caretWhether to scroll the cursor in view.

◆ sci_set_font()

void sci_set_font ( ScintillaObject *  sci,
gint  style,
const gchar *  font,
gint  size 
)

Sets the font for a particular style.

Parameters
sciScintilla widget.
styleThe style.
fontThe font name.
sizeThe font size.

◆ sci_set_line_indentation()

void sci_set_line_indentation ( ScintillaObject *  sci,
gint  line,
gint  indent 
)

Sets the indentation of a line.

Parameters
sciScintilla widget.
lineLine to indent.
indentIndentation width.
Since
0.19

◆ sci_set_marker_at_line()

void sci_set_marker_at_line ( ScintillaObject *  sci,
gint  line_number,
gint  marker 
)

Sets a line marker.

Parameters
sciScintilla widget.
line_numberLine number.
markerMarker number.

◆ sci_set_selection_end()

void sci_set_selection_end ( ScintillaObject *  sci,
gint  position 
)

Sets the selection end position.

Parameters
sciScintilla widget.
positionPosition.

◆ sci_set_selection_mode()

void sci_set_selection_mode ( ScintillaObject *  sci,
gint  mode 
)

Sets selection mode.

Parameters
sciScintilla widget.
modeMode.

◆ sci_set_selection_start()

void sci_set_selection_start ( ScintillaObject *  sci,
gint  position 
)

Sets the selection start position.

Parameters
sciScintilla widget.
positionPosition.

◆ sci_set_text()

void sci_set_text ( ScintillaObject *  sci,
const gchar *  text 
)

Sets all text.

Parameters
sciScintilla widget.
textText.

◆ sci_start_undo_action()

void sci_start_undo_action ( ScintillaObject *  sci)

Begins grouping a set of edits together as one Undo action.

You must call sci_end_undo_action() after making your edits.

Parameters
sciScintilla GtkWidget.