From a2fbc3a949dd64953f5c41b68d4f8a5c31646653 Mon Sep 17 00:00:00 2001 From: Nick Treleaven Date: Tue, 26 Aug 2008 12:43:46 +0000 Subject: [PATCH] Rename HighlightingStyle to GeanyLexerStyle. Add dox for highlighting_get_style(), GeanyLexerStyle, mentioning SCI_STYLEGETFORE. git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2903 ea778897-0a13-0410-b9d1-a72fbfd435f5 --- ChangeLog | 8 +++--- src/highlighting.c | 61 +++++++++++++++++++++++++--------------------- src/highlighting.h | 17 +++++++------ src/plugindata.h | 4 +-- 4 files changed, 50 insertions(+), 40 deletions(-) diff --git a/ChangeLog b/ChangeLog index 40064f77..d3076be1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,9 +3,11 @@ * src/highlighting.c: Add assert statements to check that the StyleSet styling arrays are not exceeded. - (Also make highlighting_get_style() work with all filetypes, but - probably we should remove this from the API; plugins could just use - the SCI_STYLEGET* functions instead). + Make highlighting_get_style() work with all filetypes. + * src/highlighting.c, src/highlighting.h, src/plugindata.h: + Rename HighlightingStyle to GeanyLexerStyle. + Add dox for highlighting_get_style(), GeanyLexerStyle, mentioning + SCI_STYLEGETFORE. 2008-08-25 Nick Treleaven diff --git a/src/highlighting.c b/src/highlighting.c index 77d48ed2..3f68703e 100644 --- a/src/highlighting.c +++ b/src/highlighting.c @@ -21,7 +21,8 @@ * $Id$ */ -/* +/** + * @file highlighting.h * Syntax highlighting for the different filetypes, using the Scintilla lexers. */ @@ -47,7 +48,7 @@ static void styleset_markup(ScintillaObject *sci, gboolean set_keywords); typedef struct { gsize count; /* number of styles */ - HighlightingStyle *styling; /* array of styles, NULL if not used or uninitialised */ + GeanyLexerStyle *styling; /* array of styles, NULL if not used or uninitialised */ gchar **keywords; gchar *wordchars; /* NULL used for style sets with no styles */ } StyleSet; @@ -87,7 +88,7 @@ typedef struct static struct { - HighlightingStyle styling[GCS_MAX]; + GeanyLexerStyle styling[GCS_MAX]; FoldingStyle folding_style; gboolean invert_all; gchar *wordchars; @@ -98,7 +99,7 @@ static struct typedef struct { gchar *name; - HighlightingStyle *style; + GeanyLexerStyle *style; } StyleEntry; @@ -107,7 +108,7 @@ static void new_style_array(gint file_type_id, gint styling_count) StyleSet *set = &style_sets[file_type_id]; set->count = styling_count; - set->styling = g_new0(HighlightingStyle, styling_count); + set->styling = g_new0(GeanyLexerStyle, styling_count); } @@ -168,7 +169,7 @@ static gint rotate_rgb(gint color) static void get_keyfile_style(GKeyFile *config, GKeyFile *configh, - const gchar *key_name, const HighlightingStyle *default_style, HighlightingStyle *style) + const gchar *key_name, const GeanyLexerStyle *default_style, GeanyLexerStyle *style) { gchar **list; gsize len; @@ -202,7 +203,7 @@ static void get_keyfile_style(GKeyFile *config, GKeyFile *configh, static void get_keyfile_hex(GKeyFile *config, GKeyFile *configh, const gchar *section, const gchar *key, const gchar *foreground, const gchar *background, const gchar *bold, - HighlightingStyle *style) + GeanyLexerStyle *style) { gchar **list; gsize len; @@ -234,7 +235,7 @@ static void get_keyfile_hex(GKeyFile *config, GKeyFile *configh, static void get_keyfile_int(GKeyFile *config, GKeyFile *configh, const gchar *section, const gchar *key, gint fdefault_val, gint sdefault_val, - HighlightingStyle *style) + GeanyLexerStyle *style) { gchar **list; gchar *end1, *end2; @@ -273,7 +274,7 @@ static guint invert(guint icolour) } -static HighlightingStyle *get_style(guint ft_id, guint styling_index) +static GeanyLexerStyle *get_style(guint ft_id, guint styling_index) { g_assert(ft_id < GEANY_MAX_BUILT_IN_FILETYPES); @@ -294,7 +295,7 @@ static HighlightingStyle *get_style(guint ft_id, guint styling_index) static void set_sci_style(ScintillaObject *sci, gint style, guint ft_id, guint styling_index) { - HighlightingStyle *style_ptr = get_style(ft_id, styling_index); + GeanyLexerStyle *style_ptr = get_style(ft_id, styling_index); SSM(sci, SCI_STYLESETFORE, style, invert(style_ptr->foreground)); SSM(sci, SCI_STYLESETBACK, style, invert(style_ptr->background)); @@ -392,7 +393,7 @@ static void styleset_common_init(gint ft_id, GKeyFile *config, GKeyFile *config_ "0x000000", "0xB8F4B8", "false", &common_style_set.styling[GCS_MARKER_SEARCH]); { /* hack because get_keyfile_int uses a Style struct */ - HighlightingStyle tmp_style; + GeanyLexerStyle tmp_style; get_keyfile_int(config, config_home, "styling", "folding_style", 1, 1, &tmp_style); common_style_set.folding_style.marker = tmp_style.foreground; @@ -624,26 +625,26 @@ apply_filetype_properties(ScintillaObject *sci, gint lexer, filetype_id ft_id) * Ideally these would be used as common styling for all compilable programming * languages (and perhaps partially used for scripting languages too). * Currently only used as default styling for C-like languages. */ -HighlightingStyle gsd_default = {0x000000, 0xffffff, FALSE, FALSE}; -HighlightingStyle gsd_comment = {0xd00000, 0xffffff, FALSE, FALSE}; -HighlightingStyle gsd_comment_doc = {0x3f5fbf, 0xffffff, TRUE, FALSE}; -HighlightingStyle gsd_number = {0x007f00, 0xffffff, FALSE, FALSE}; -HighlightingStyle gsd_reserved_word = {0x00007f, 0xffffff, TRUE, FALSE}; -HighlightingStyle gsd_system_word = {0x991111, 0xffffff, TRUE, FALSE}; -HighlightingStyle gsd_user_word = {0x0000d0, 0xffffff, TRUE, FALSE}; -HighlightingStyle gsd_string = {0xff901e, 0xffffff, FALSE, FALSE}; -HighlightingStyle gsd_pragma = {0x007f7f, 0xffffff, FALSE, FALSE}; -HighlightingStyle gsd_string_eol = {0x000000, 0xe0c0e0, FALSE, FALSE}; +GeanyLexerStyle gsd_default = {0x000000, 0xffffff, FALSE, FALSE}; +GeanyLexerStyle gsd_comment = {0xd00000, 0xffffff, FALSE, FALSE}; +GeanyLexerStyle gsd_comment_doc = {0x3f5fbf, 0xffffff, TRUE, FALSE}; +GeanyLexerStyle gsd_number = {0x007f00, 0xffffff, FALSE, FALSE}; +GeanyLexerStyle gsd_reserved_word = {0x00007f, 0xffffff, TRUE, FALSE}; +GeanyLexerStyle gsd_system_word = {0x991111, 0xffffff, TRUE, FALSE}; +GeanyLexerStyle gsd_user_word = {0x0000d0, 0xffffff, TRUE, FALSE}; +GeanyLexerStyle gsd_string = {0xff901e, 0xffffff, FALSE, FALSE}; +GeanyLexerStyle gsd_pragma = {0x007f7f, 0xffffff, FALSE, FALSE}; +GeanyLexerStyle gsd_string_eol = {0x000000, 0xe0c0e0, FALSE, FALSE}; /* call new_style_array(filetype_idx, >= 20) before using this. */ static void styleset_c_like_init(GKeyFile *config, GKeyFile *config_home, gint filetype_idx) { - static HighlightingStyle uuid = {0x404080, 0xffffff, FALSE, FALSE}; - static HighlightingStyle operator = {0x301010, 0xffffff, FALSE, FALSE}; - static HighlightingStyle verbatim = {0x301010, 0xffffff, FALSE, FALSE}; - static HighlightingStyle regex = {0x105090, 0xffffff, FALSE, FALSE}; + static GeanyLexerStyle uuid = {0x404080, 0xffffff, FALSE, FALSE}; + static GeanyLexerStyle operator = {0x301010, 0xffffff, FALSE, FALSE}; + static GeanyLexerStyle verbatim = {0x301010, 0xffffff, FALSE, FALSE}; + static GeanyLexerStyle regex = {0x105090, 0xffffff, FALSE, FALSE}; StyleEntry entries[] = { @@ -3056,11 +3057,15 @@ void highlighting_set_styles(ScintillaObject *sci, gint filetype_idx) } -/* Retrieve a style style_id for the filetype ft_id. If the style was not already initialised +/** Retrieve a style @a style_id for the filetype @a 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. - * style_id is a Scintilla lexer style, see scintilla/SciLexer.h */ -const HighlightingStyle *highlighting_get_style(gint ft_id, gint style_id) + * @param ft_id Filetype ID, e.g. @c GEANY_FILETYPES_DIFF. + * @param style_id A Scintilla lexer style, e.g. @c SCE_DIFF_ADDED. See scintilla/include/SciLexer.h. + * @return A pointer to the style struct. + * @see Scintilla messages @c SCI_STYLEGETFORE, etc, for use with ScintillaFuncs::send_message(). */ +const GeanyLexerStyle *highlighting_get_style(gint ft_id, gint style_id) { if (ft_id < 0 || ft_id > GEANY_MAX_BUILT_IN_FILETYPES) return NULL; diff --git a/src/highlighting.h b/src/highlighting.h index c1fe7355..ee4d0dec 100644 --- a/src/highlighting.h +++ b/src/highlighting.h @@ -29,20 +29,23 @@ #include "ScintillaWidget.h" -typedef struct HighlightingStyle +/** Fields representing the different attributes of a Scintilla lexer style. + * @see Scintilla messages @c SCI_STYLEGETFORE, etc, for use with ScintillaFuncs::send_message(). */ +typedef struct GeanyLexerStyle { - gint foreground; - gint background; - gboolean bold; - gboolean italic; -} HighlightingStyle; + gint foreground; /**< Foreground text colour, in @c 0xBBGGRR format. */ + gint background; /**< Background text colour, in @c 0xBBGGRR format. */ + gboolean bold; /**< Bold. */ + gboolean italic; /**< Italic. */ +} +GeanyLexerStyle; void highlighting_init_styles(gint filetype_idx, GKeyFile *config, GKeyFile *configh); void highlighting_set_styles(ScintillaObject *sci, gint filetype_idx); -const HighlightingStyle *highlighting_get_style(gint ft_id, gint style_id); +const GeanyLexerStyle *highlighting_get_style(gint ft_id, gint style_id); void highlighting_free_styles(void); diff --git a/src/plugindata.h b/src/plugindata.h index 8085175b..e799381d 100644 --- a/src/plugindata.h +++ b/src/plugindata.h @@ -41,7 +41,7 @@ enum { /** The Application Programming Interface (API) version, incremented * whenever any plugin data types are modified or appended to. */ - GEANY_API_VERSION = 88, + GEANY_API_VERSION = 89, /** The Application Binary Interface (ABI) version, incremented whenever * existing fields in the plugin data types have to be changed or reordered. */ @@ -400,7 +400,7 @@ KeybindingFuncs; /* See highlighting.h */ typedef struct HighlightingFuncs { - const struct HighlightingStyle* (*get_style) (gint ft_id, gint style_id); + const struct GeanyLexerStyle* (*get_style) (gint ft_id, gint style_id); } HighlightingFuncs;