geany  1.38
About: Geany is a text editor (using GTK2) with basic features of an integrated development environment (syntax highlighting, code folding, symbol name auto-completion, ...). F: office T: editor programming GTK+ IDE
  Fossies Dox: geany-1.38.tar.bz2  ("unofficial" and yet experimental doxygen-generated source code documentation)  

highlighting.h File Reference

Syntax highlighting for the different filetypes, using the Scintilla lexers. More...

#include "filetypes.h"
#include "gtkcompat.h"
#include "Scintilla.h"
#include "ScintillaWidget.h"
#include <glib.h>
Include dependency graph for highlighting.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  GeanyLexerStyle
 Fields representing the different attributes of a Scintilla lexer style. More...
 

Typedefs

typedef struct GeanyLexerStyle GeanyLexerStyle
 Fields representing the different attributes of a Scintilla lexer style. More...
 

Functions

const GeanyLexerStylehighlighting_get_style (gint ft_id, gint style_id)
 Retrieves a style style_id for the filetype ft_id. More...
 
void highlighting_set_styles (ScintillaObject *sci, GeanyFiletype *ft)
 Sets up highlighting and other visual settings. More...
 
gboolean highlighting_is_string_style (gint lexer, gint style)
 Checks whether the given style is a string for the given lexer. More...
 
gboolean highlighting_is_comment_style (gint lexer, gint style)
 Checks whether the given style is a comment for the given lexer. More...
 
gboolean highlighting_is_code_style (gint lexer, gint style)
 Checks whether the given style is normal code (not string, comment, preprocessor, etc). More...
 

Detailed Description

Syntax highlighting for the different filetypes, using the Scintilla lexers.

Definition in file highlighting.h.

Typedef Documentation

◆ GeanyLexerStyle

Fields representing the different attributes of a Scintilla lexer style.

See also
Scintilla messages SCI_STYLEGETFORE, etc, for use with scintilla_send_message().

Function Documentation

◆ highlighting_get_style()

const GeanyLexerStyle * highlighting_get_style ( gint  ft_id,
gint  style_id 
)

Retrieves a style style_id for the filetype ft_id.

If the style was not already initialised (e.g. by by opening a file of this type), it will be initialised. The returned pointer is owned by Geany and must not be freed.

Parameters
ft_idFiletype ID, e.g. GEANY_FILETYPES_DIFF.
style_idA Scintilla lexer style, e.g. SCE_DIFF_ADDED. See scintilla/include/SciLexer.h.
Returns
A pointer to the style struct.
See also
Scintilla messages SCI_STYLEGETFORE, etc, for use with scintilla_send_message().

Definition at line 1175 of file highlighting.c.

References filetypes_load_config(), get_style(), and NULL.

◆ highlighting_is_code_style()

gboolean highlighting_is_code_style ( gint  lexer,
gint  style 
)

Checks whether the given style is normal code (not string, comment, preprocessor, etc).

Parameters
lexerScintilla lexer type (SCLEX_*).
styleScintilla style (SCE_*).
Returns
TRUE if the style is code, FALSE otherwise.

Definition at line 1871 of file highlighting.c.

References highlighting_is_comment_style(), highlighting_is_string_style(), SCE_C_PREPROCESSOR, SCE_HA_PREPROCESSOR, SCE_V_PREPROCESSOR, SCLEX_CPP, SCLEX_HASKELL, SCLEX_LITERATEHASKELL, and SCLEX_VERILOG.

Referenced by editor_show_calltip(), editor_start_auto_complete(), get_brace_indent(), get_fold_header_after(), and get_sci_line_code_end_position().

◆ highlighting_is_comment_style()

gboolean highlighting_is_comment_style ( gint  lexer,
gint  style 
)

Checks whether the given style is a comment for the given lexer.

Parameters
lexerScintilla lexer type (SCLEX_*).
styleScintilla style (SCE_*).
Returns
TRUE if the style is a comment, FALSE otherwise.

Definition at line 1649 of file highlighting.c.

References SCE_ABAQUS_COMMENT, SCE_ABAQUS_COMMENTBLOCK, SCE_ADA_COMMENTLINE, SCE_ASM_COMMENT, SCE_ASM_COMMENTBLOCK, SCE_ASM_COMMENTDIRECTIVE, SCE_B_COMMENT, SCE_B_COMMENTBLOCK, SCE_B_DOCBLOCK, SCE_B_DOCKEYWORD, SCE_B_DOCLINE, SCE_BAT_COMMENT, SCE_C_COMMENT, SCE_C_COMMENTDOC, SCE_C_COMMENTDOCKEYWORD, SCE_C_COMMENTDOCKEYWORDERROR, SCE_C_COMMENTLINE, SCE_C_COMMENTLINEDOC, SCE_C_PREPROCESSORCOMMENT, SCE_C_PREPROCESSORCOMMENTDOC, SCE_C_TASKMARKER, SCE_CAML_COMMENT, SCE_CAML_COMMENT1, SCE_CAML_COMMENT2, SCE_CAML_COMMENT3, SCE_CMAKE_COMMENT, SCE_COFFEESCRIPT_COMMENTBLOCK, SCE_COFFEESCRIPT_COMMENTLINE, SCE_COFFEESCRIPT_VERBOSE_REGEX_COMMENT, SCE_CSS_COMMENT, SCE_D_COMMENT, SCE_D_COMMENTDOC, SCE_D_COMMENTDOCKEYWORD, SCE_D_COMMENTDOCKEYWORDERROR, SCE_D_COMMENTLINE, SCE_D_COMMENTLINEDOC, SCE_D_COMMENTNESTED, SCE_DIFF_COMMENT, SCE_ERLANG_COMMENT, SCE_ERLANG_COMMENT_DOC, SCE_ERLANG_COMMENT_DOC_MACRO, SCE_ERLANG_COMMENT_FUNCTION, SCE_ERLANG_COMMENT_MODULE, SCE_F_COMMENT, SCE_FORTH_COMMENT, SCE_FORTH_COMMENT_ML, SCE_H_COMMENT, SCE_H_SGML_COMMENT, SCE_HA_COMMENTBLOCK, SCE_HA_COMMENTBLOCK2, SCE_HA_COMMENTBLOCK3, SCE_HA_COMMENTLINE, SCE_HA_LITERATE_CODEDELIM, SCE_HA_LITERATE_COMMENT, SCE_HB_COMMENTLINE, SCE_HBA_COMMENTLINE, SCE_HJ_COMMENT, SCE_HJ_COMMENTDOC, SCE_HJ_COMMENTLINE, SCE_HJA_COMMENT, SCE_HJA_COMMENTDOC, SCE_HJA_COMMENTLINE, SCE_HP_COMMENTLINE, SCE_HPA_COMMENTLINE, SCE_HPHP_COMMENT, SCE_HPHP_COMMENTLINE, SCE_JULIA_COMMENT, SCE_L_COMMENT, SCE_L_COMMENT2, SCE_LISP_COMMENT, SCE_LISP_MULTI_COMMENT, SCE_LUA_COMMENT, SCE_LUA_COMMENTDOC, SCE_LUA_COMMENTLINE, SCE_MAKE_COMMENT, SCE_MATLAB_COMMENT, SCE_NSIS_COMMENT, SCE_NSIS_COMMENTBOX, SCE_P_COMMENTBLOCK, SCE_P_COMMENTLINE, SCE_PAS_COMMENT, SCE_PAS_COMMENT2, SCE_PAS_COMMENTLINE, SCE_PL_COMMENTLINE, SCE_PO_COMMENT, SCE_PO_PROGRAMMER_COMMENT, SCE_POWERSHELL_COMMENT, SCE_POWERSHELL_COMMENTDOCKEYWORD, SCE_POWERSHELL_COMMENTSTREAM, SCE_PROPS_COMMENT, SCE_R_COMMENT, SCE_RB_COMMENTLINE, SCE_RUST_COMMENTBLOCK, SCE_RUST_COMMENTBLOCKDOC, SCE_RUST_COMMENTLINE, SCE_RUST_COMMENTLINEDOC, SCE_SH_COMMENTLINE, SCE_SQL_COMMENT, SCE_SQL_COMMENTDOC, SCE_SQL_COMMENTDOCKEYWORD, SCE_SQL_COMMENTDOCKEYWORDERROR, SCE_SQL_COMMENTLINE, SCE_SQL_COMMENTLINEDOC, SCE_TCL_BLOCK_COMMENT, SCE_TCL_COMMENT, SCE_TCL_COMMENT_BOX, SCE_TCL_COMMENTLINE, SCE_TXT2TAGS_COMMENT, SCE_V_COMMENT, SCE_V_COMMENT_WORD, SCE_V_COMMENTLINE, SCE_V_COMMENTLINEBANG, SCE_VHDL_BLOCK_COMMENT, SCE_VHDL_COMMENT, SCE_VHDL_COMMENTLINEBANG, SCE_YAML_COMMENT, SCLEX_ABAQUS, SCLEX_ADA, SCLEX_ASM, SCLEX_BASH, SCLEX_BATCH, SCLEX_CAML, SCLEX_CMAKE, SCLEX_COBOL, SCLEX_COFFEESCRIPT, SCLEX_CPP, SCLEX_CSS, SCLEX_D, SCLEX_DIFF, SCLEX_ERLANG, SCLEX_F77, SCLEX_FORTH, SCLEX_FORTRAN, SCLEX_FREEBASIC, SCLEX_HASKELL, SCLEX_HTML, SCLEX_JULIA, SCLEX_LATEX, SCLEX_LISP, SCLEX_LITERATEHASKELL, SCLEX_LUA, SCLEX_MAKEFILE, SCLEX_MARKDOWN, SCLEX_NSIS, SCLEX_OCTAVE, SCLEX_PASCAL, SCLEX_PERL, SCLEX_PHPSCRIPT, SCLEX_PO, SCLEX_POWERSHELL, SCLEX_PROPERTIES, SCLEX_PYTHON, SCLEX_R, SCLEX_RUBY, SCLEX_RUST, SCLEX_SQL, SCLEX_TCL, SCLEX_TXT2TAGS, SCLEX_VERILOG, SCLEX_VHDL, SCLEX_XML, and SCLEX_YAML.

Referenced by highlighting_is_code_style().

◆ highlighting_is_string_style()

gboolean highlighting_is_string_style ( gint  lexer,
gint  style 
)

Checks whether the given style is a string for the given lexer.

Parameters
lexerScintilla lexer type (SCLEX_*).
styleScintilla style (SCE_*).
Returns
TRUE if the style is a string, FALSE otherwise.

Definition at line 1398 of file highlighting.c.

References SCE_ABAQUS_STRING, SCE_ADA_CHARACTER, SCE_ADA_CHARACTEREOL, SCE_ADA_STRING, SCE_ADA_STRINGEOL, SCE_B_STRING, SCE_B_STRINGEOL, SCE_C_CHARACTER, SCE_C_ESCAPESEQUENCE, SCE_C_HASHQUOTEDSTRING, SCE_C_REGEX, SCE_C_STRING, SCE_C_STRINGEOL, SCE_C_STRINGRAW, SCE_C_TRIPLEVERBATIM, SCE_C_USERLITERAL, SCE_C_VERBATIM, SCE_CAML_CHAR, SCE_CAML_STRING, SCE_CMAKE_STRINGDQ, SCE_CMAKE_STRINGLQ, SCE_CMAKE_STRINGRQ, SCE_CMAKE_STRINGVAR, SCE_COFFEESCRIPT_CHARACTER, SCE_COFFEESCRIPT_REGEX, SCE_COFFEESCRIPT_STRING, SCE_COFFEESCRIPT_STRINGEOL, SCE_COFFEESCRIPT_VERBOSE_REGEX, SCE_CSS_DOUBLESTRING, SCE_CSS_SINGLESTRING, SCE_D_CHARACTER, SCE_D_STRING, SCE_D_STRINGB, SCE_D_STRINGEOL, SCE_D_STRINGR, SCE_ERLANG_CHARACTER, SCE_ERLANG_STRING, SCE_F_STRING1, SCE_F_STRING2, SCE_F_STRINGEOL, SCE_FORTH_STRING, SCE_H_CDATA, SCE_H_DOUBLESTRING, SCE_H_SGML_DOUBLESTRING, SCE_H_SGML_SIMPLESTRING, SCE_H_SINGLESTRING, SCE_HA_CHARACTER, SCE_HA_STRING, SCE_HA_STRINGEOL, SCE_HB_STRING, SCE_HB_STRINGEOL, SCE_HBA_STRING, SCE_HBA_STRINGEOL, SCE_HJ_DOUBLESTRING, SCE_HJ_REGEX, SCE_HJ_SINGLESTRING, SCE_HJ_STRINGEOL, SCE_HJA_DOUBLESTRING, SCE_HJA_REGEX, SCE_HJA_SINGLESTRING, SCE_HJA_STRINGEOL, SCE_HP_CHARACTER, SCE_HP_STRING, SCE_HP_TRIPLE, SCE_HP_TRIPLEDOUBLE, SCE_HPA_CHARACTER, SCE_HPA_STRING, SCE_HPA_TRIPLE, SCE_HPA_TRIPLEDOUBLE, SCE_HPHP_HSTRING, SCE_HPHP_HSTRING_VARIABLE, SCE_HPHP_SIMPLESTRING, SCE_JULIA_CHAR, SCE_JULIA_COMMAND, SCE_JULIA_DOCSTRING, SCE_JULIA_STRING, SCE_JULIA_STRINGINTERP, SCE_LISP_STRING, SCE_LISP_STRINGEOL, SCE_LUA_CHARACTER, SCE_LUA_LITERALSTRING, SCE_LUA_STRING, SCE_LUA_STRINGEOL, SCE_MATLAB_DOUBLEQUOTESTRING, SCE_MATLAB_STRING, SCE_NSIS_STRINGDQ, SCE_NSIS_STRINGLQ, SCE_NSIS_STRINGRQ, SCE_NSIS_STRINGVAR, SCE_P_CHARACTER, SCE_P_FCHARACTER, SCE_P_FSTRING, SCE_P_FTRIPLE, SCE_P_FTRIPLEDOUBLE, SCE_P_STRING, SCE_P_STRINGEOL, SCE_P_TRIPLE, SCE_P_TRIPLEDOUBLE, SCE_PAS_CHARACTER, SCE_PAS_STRING, SCE_PAS_STRINGEOL, SCE_PL_CHARACTER, SCE_PL_HERE_DELIM, SCE_PL_HERE_Q, SCE_PL_HERE_QQ, SCE_PL_HERE_QX, SCE_PL_POD, SCE_PL_POD_VERB, SCE_PL_REGEX, SCE_PL_REGEX_VAR, SCE_PL_STRING, SCE_PL_STRING_Q, SCE_PL_STRING_QQ, SCE_PL_STRING_QR, SCE_PL_STRING_QW, SCE_PL_STRING_QX, SCE_PL_XLAT, SCE_PO_MSGCTXT_TEXT, SCE_PO_MSGCTXT_TEXT_EOL, SCE_PO_MSGID_TEXT, SCE_PO_MSGID_TEXT_EOL, SCE_PO_MSGSTR_TEXT, SCE_PO_MSGSTR_TEXT_EOL, SCE_POWERSHELL_CHARACTER, SCE_POWERSHELL_STRING, SCE_R_STRING, SCE_RB_CHARACTER, SCE_RB_HERE_DELIM, SCE_RB_HERE_Q, SCE_RB_HERE_QQ, SCE_RB_HERE_QX, SCE_RB_POD, SCE_RB_REGEX, SCE_RB_STRING, SCE_RB_STRING_Q, SCE_RB_STRING_QQ, SCE_RB_STRING_QR, SCE_RB_STRING_QW, SCE_RB_STRING_QX, SCE_RUST_BYTECHARACTER, SCE_RUST_BYTESTRING, SCE_RUST_BYTESTRINGR, SCE_RUST_CHARACTER, SCE_RUST_LEXERROR, SCE_RUST_STRING, SCE_RUST_STRINGR, SCE_SH_STRING, SCE_SQL_STRING, SCE_TCL_IN_QUOTE, SCE_V_STRING, SCE_VHDL_STRING, SCE_VHDL_STRINGEOL, SCLEX_ABAQUS, SCLEX_ADA, SCLEX_BASH, SCLEX_BATCH, SCLEX_CAML, SCLEX_CMAKE, SCLEX_COFFEESCRIPT, SCLEX_CPP, SCLEX_CSS, SCLEX_D, SCLEX_DIFF, SCLEX_ERLANG, SCLEX_F77, SCLEX_FORTH, SCLEX_FORTRAN, SCLEX_FREEBASIC, SCLEX_HASKELL, SCLEX_HTML, SCLEX_JULIA, SCLEX_LATEX, SCLEX_LISP, SCLEX_LITERATEHASKELL, SCLEX_LUA, SCLEX_MAKEFILE, SCLEX_MARKDOWN, SCLEX_NSIS, SCLEX_OCTAVE, SCLEX_PASCAL, SCLEX_PERL, SCLEX_PHPSCRIPT, SCLEX_PO, SCLEX_POWERSHELL, SCLEX_PROPERTIES, SCLEX_PYTHON, SCLEX_R, SCLEX_RUBY, SCLEX_RUST, SCLEX_SQL, SCLEX_TCL, SCLEX_TXT2TAGS, SCLEX_VERILOG, SCLEX_VHDL, SCLEX_XML, and SCLEX_YAML.

Referenced by handle_xml(), and highlighting_is_code_style().

◆ highlighting_set_styles()

void highlighting_set_styles ( ScintillaObject *  sci,
GeanyFiletype ft 
)

Sets up highlighting and other visual settings.

Parameters
sciScintilla widget.
ftFiletype settings to use.

Definition at line 1083 of file highlighting.c.

References filetypes_load_config(), GEANY_FILETYPES_NONE, get_lexer_filetype(), GeanyFiletype::id, StyleSet::property_keys, StyleSet::property_values, sci, sci_set_property(), style_sets, styleset_case, and styleset_default().

Referenced by begin_print(), document_load_config(), and sync_to_current().