Add highlighting_set_styles() to API, use for Split Window plugin so
filetypes.common settings get set too. Make highlighting_set_styles() take GeanyFiletype pointer instead of filetype id. git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4322 ea778897-0a13-0410-b9d1-a72fbfd435f5
This commit is contained in:
parent
cf35a8a495
commit
0b8c46a8a8
@ -12,6 +12,13 @@
|
|||||||
src/project.c, src/search.c, src/editor.c, src/ui_utils.c,
|
src/project.c, src/search.c, src/editor.c, src/ui_utils.c,
|
||||||
plugins/classbuilder.c:
|
plugins/classbuilder.c:
|
||||||
Revert r4301 - utils_free_pointers() taking 4 arguments.
|
Revert r4301 - utils_free_pointers() taking 4 arguments.
|
||||||
|
* src/highlighting.c, src/highlighting.h, src/plugindata.h,
|
||||||
|
src/document.c, src/plugins.c, plugins/geanyfunctions.h,
|
||||||
|
plugins/splitwindow.c:
|
||||||
|
Add highlighting_set_styles() to API, use for Split Window plugin so
|
||||||
|
filetypes.common settings get set too.
|
||||||
|
Make highlighting_set_styles() take GeanyFiletype pointer instead of
|
||||||
|
filetype id.
|
||||||
|
|
||||||
|
|
||||||
2009-10-14 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
|
2009-10-14 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
|
||||||
|
|||||||
@ -294,6 +294,8 @@
|
|||||||
geany_functions->p_search->show_find_in_files_dialog
|
geany_functions->p_search->show_find_in_files_dialog
|
||||||
#define highlighting_get_style \
|
#define highlighting_get_style \
|
||||||
geany_functions->p_highlighting->get_style
|
geany_functions->p_highlighting->get_style
|
||||||
|
#define highlighting_set_styles \
|
||||||
|
geany_functions->p_highlighting->set_styles
|
||||||
#define filetypes_detect_from_file \
|
#define filetypes_detect_from_file \
|
||||||
geany_functions->p_filetypes->detect_from_file
|
geany_functions->p_filetypes->detect_from_file
|
||||||
#define filetypes_lookup_by_name \
|
#define filetypes_lookup_by_name \
|
||||||
|
|||||||
@ -86,54 +86,6 @@ static EditWindow edit_window = {NULL, NULL, NULL, NULL};
|
|||||||
static void on_unsplit(GtkMenuItem *menuitem, gpointer user_data);
|
static void on_unsplit(GtkMenuItem *menuitem, gpointer user_data);
|
||||||
|
|
||||||
|
|
||||||
static gint sci_get_value(ScintillaObject *sci, gint message_id, gint param)
|
|
||||||
{
|
|
||||||
return scintilla_send_message(sci, message_id, param, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void set_styles(ScintillaObject *oldsci, ScintillaObject *newsci)
|
|
||||||
{
|
|
||||||
gint style_id;
|
|
||||||
gint val;
|
|
||||||
|
|
||||||
for (style_id = 0; style_id <= 127; style_id++)
|
|
||||||
{
|
|
||||||
val = sci_get_value(oldsci, SCI_STYLEGETFORE, style_id);
|
|
||||||
scintilla_send_message(newsci, SCI_STYLESETFORE, style_id, val);
|
|
||||||
val = sci_get_value(oldsci, SCI_STYLEGETBACK, style_id);
|
|
||||||
scintilla_send_message(newsci, SCI_STYLESETBACK, style_id, val);
|
|
||||||
val = sci_get_value(oldsci, SCI_STYLEGETBOLD, style_id);
|
|
||||||
scintilla_send_message(newsci, SCI_STYLESETBOLD, style_id, val);
|
|
||||||
val = sci_get_value(oldsci, SCI_STYLEGETITALIC, style_id);
|
|
||||||
scintilla_send_message(newsci, SCI_STYLESETITALIC, style_id, val);
|
|
||||||
}
|
|
||||||
val = sci_get_value(oldsci, SCI_GETCARETFORE, 0);
|
|
||||||
scintilla_send_message(newsci, SCI_SETCARETFORE, val, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void update_font(ScintillaObject *current, ScintillaObject *sci)
|
|
||||||
{
|
|
||||||
gint style_id;
|
|
||||||
gint size;
|
|
||||||
gchar font_name[1024]; /* should be big enough */
|
|
||||||
|
|
||||||
scintilla_send_message(current, SCI_STYLEGETFONT, 0, (sptr_t)font_name);
|
|
||||||
size = sci_get_value(current, SCI_STYLEGETSIZE, 0);
|
|
||||||
|
|
||||||
for (style_id = 0; style_id <= 127; style_id++)
|
|
||||||
{
|
|
||||||
sci_set_font(sci, style_id, font_name, size);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* line number and braces */
|
|
||||||
sci_set_font(sci, STYLE_LINENUMBER, font_name, size);
|
|
||||||
sci_set_font(sci, STYLE_BRACELIGHT, font_name, size);
|
|
||||||
sci_set_font(sci, STYLE_BRACEBAD, font_name, size);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* line numbers visibility */
|
/* line numbers visibility */
|
||||||
static void set_line_numbers(ScintillaObject * sci, gboolean set, gint extra_width)
|
static void set_line_numbers(ScintillaObject * sci, gboolean set, gint extra_width)
|
||||||
{
|
{
|
||||||
@ -157,20 +109,12 @@ static void set_line_numbers(ScintillaObject * sci, gboolean set, gint extra_wid
|
|||||||
static void sync_to_current(ScintillaObject *sci, ScintillaObject *current)
|
static void sync_to_current(ScintillaObject *sci, ScintillaObject *current)
|
||||||
{
|
{
|
||||||
gpointer sdoc;
|
gpointer sdoc;
|
||||||
gint lexer;
|
|
||||||
gint pos;
|
|
||||||
|
|
||||||
/* set the new sci widget to view the existing Scintilla document */
|
/* set the new sci widget to view the existing Scintilla document */
|
||||||
sdoc = (gpointer) scintilla_send_message(current, SCI_GETDOCPOINTER, 0, 0);
|
sdoc = (gpointer) scintilla_send_message(current, SCI_GETDOCPOINTER, 0, 0);
|
||||||
scintilla_send_message(sci, SCI_SETDOCPOINTER, 0, (sptr_t) sdoc);
|
scintilla_send_message(sci, SCI_SETDOCPOINTER, 0, (sptr_t) sdoc);
|
||||||
|
|
||||||
update_font(current, sci);
|
highlighting_set_styles(sci, edit_window.editor->document->file_type);
|
||||||
lexer = scintilla_send_message(current, SCI_GETLEXER, 0, 0);
|
|
||||||
scintilla_send_message(sci, SCI_SETLEXER, lexer, 0);
|
|
||||||
set_styles(current, sci);
|
|
||||||
|
|
||||||
pos = sci_get_current_position(current);
|
|
||||||
sci_set_current_position(sci, pos, TRUE);
|
|
||||||
|
|
||||||
/* override some defaults */
|
/* override some defaults */
|
||||||
set_line_numbers(sci, TRUE, 0);
|
set_line_numbers(sci, TRUE, 0);
|
||||||
|
|||||||
@ -2469,7 +2469,7 @@ static void document_load_config(GeanyDocument *doc, GeanyFiletype *type,
|
|||||||
tm_workspace_remove_object(doc->tm_file, TRUE, TRUE);
|
tm_workspace_remove_object(doc->tm_file, TRUE, TRUE);
|
||||||
doc->tm_file = NULL;
|
doc->tm_file = NULL;
|
||||||
}
|
}
|
||||||
highlighting_set_styles(doc->editor->sci, type->id);
|
highlighting_set_styles(doc->editor->sci, type);
|
||||||
editor_set_indentation_guides(doc->editor);
|
editor_set_indentation_guides(doc->editor);
|
||||||
build_menu_update(doc);
|
build_menu_update(doc);
|
||||||
queue_colourise(doc);
|
queue_colourise(doc);
|
||||||
|
|||||||
@ -3233,18 +3233,21 @@ void highlighting_init_styles(gint filetype_idx, GKeyFile *config, GKeyFile *con
|
|||||||
/* lang_name is the name used for the styleset_foo function, e.g. foo. */
|
/* lang_name is the name used for the styleset_foo function, e.g. foo. */
|
||||||
#define styleset_case(ft_id, styleset_func) \
|
#define styleset_case(ft_id, styleset_func) \
|
||||||
case (ft_id): \
|
case (ft_id): \
|
||||||
styleset_func (sci); \
|
styleset_func(sci); \
|
||||||
break
|
break
|
||||||
|
|
||||||
void highlighting_set_styles(ScintillaObject *sci, gint filetype_idx)
|
/** Setup highlighting and other visual settings.
|
||||||
|
* @param sci Scintilla widget.
|
||||||
|
* @param ft Filetype settings to use. */
|
||||||
|
void highlighting_set_styles(ScintillaObject *sci, GeanyFiletype *ft)
|
||||||
{
|
{
|
||||||
filetypes_load_config(filetype_idx, FALSE); /* load filetypes.ext */
|
filetypes_load_config(ft->id, FALSE); /* load filetypes.ext */
|
||||||
|
|
||||||
/* load tags files (some lexers highlight global typenames) */
|
/* load tags files (some lexers highlight global typenames) */
|
||||||
if (filetype_idx != GEANY_FILETYPES_NONE)
|
if (ft->id != GEANY_FILETYPES_NONE)
|
||||||
symbols_global_tags_loaded(filetype_idx);
|
symbols_global_tags_loaded(ft->id);
|
||||||
|
|
||||||
switch (filetype_idx)
|
switch (ft->id)
|
||||||
{
|
{
|
||||||
styleset_case(GEANY_FILETYPES_ADA, styleset_ada);
|
styleset_case(GEANY_FILETYPES_ADA, styleset_ada);
|
||||||
styleset_case(GEANY_FILETYPES_ASM, styleset_asm);
|
styleset_case(GEANY_FILETYPES_ASM, styleset_asm);
|
||||||
@ -3291,7 +3294,7 @@ void highlighting_set_styles(ScintillaObject *sci, gint filetype_idx)
|
|||||||
styleset_case(GEANY_FILETYPES_YAML, styleset_yaml);
|
styleset_case(GEANY_FILETYPES_YAML, styleset_yaml);
|
||||||
case GEANY_FILETYPES_NONE:
|
case GEANY_FILETYPES_NONE:
|
||||||
default:
|
default:
|
||||||
styleset_default(sci, filetype_idx);
|
styleset_default(sci, ft->id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -43,7 +43,7 @@ GeanyLexerStyle;
|
|||||||
|
|
||||||
void highlighting_init_styles(gint filetype_idx, GKeyFile *config, GKeyFile *configh);
|
void highlighting_init_styles(gint filetype_idx, GKeyFile *config, GKeyFile *configh);
|
||||||
|
|
||||||
void highlighting_set_styles(ScintillaObject *sci, gint filetype_idx);
|
void highlighting_set_styles(ScintillaObject *sci, GeanyFiletype *ft);
|
||||||
|
|
||||||
const GeanyLexerStyle *highlighting_get_style(gint ft_id, gint style_id);
|
const GeanyLexerStyle *highlighting_get_style(gint ft_id, gint style_id);
|
||||||
|
|
||||||
|
|||||||
@ -50,7 +50,7 @@
|
|||||||
enum {
|
enum {
|
||||||
/** The Application Programming Interface (API) version, incremented
|
/** The Application Programming Interface (API) version, incremented
|
||||||
* whenever any plugin data types are modified or appended to. */
|
* whenever any plugin data types are modified or appended to. */
|
||||||
GEANY_API_VERSION = 161,
|
GEANY_API_VERSION = 162,
|
||||||
|
|
||||||
/** The Application Binary Interface (ABI) version, incremented whenever
|
/** The Application Binary Interface (ABI) version, incremented whenever
|
||||||
* existing fields in the plugin data types have to be changed or reordered. */
|
* existing fields in the plugin data types have to be changed or reordered. */
|
||||||
@ -493,6 +493,7 @@ KeybindingFuncs;
|
|||||||
typedef struct HighlightingFuncs
|
typedef struct HighlightingFuncs
|
||||||
{
|
{
|
||||||
const struct GeanyLexerStyle* (*get_style) (gint ft_id, gint style_id);
|
const struct GeanyLexerStyle* (*get_style) (gint ft_id, gint style_id);
|
||||||
|
void (*set_styles) (struct _ScintillaObject *sci, struct GeanyFiletype *ft);
|
||||||
}
|
}
|
||||||
HighlightingFuncs;
|
HighlightingFuncs;
|
||||||
|
|
||||||
|
|||||||
@ -272,7 +272,8 @@ static SearchFuncs search_funcs = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static HighlightingFuncs highlighting_funcs = {
|
static HighlightingFuncs highlighting_funcs = {
|
||||||
&highlighting_get_style
|
&highlighting_get_style,
|
||||||
|
&highlighting_set_styles
|
||||||
};
|
};
|
||||||
|
|
||||||
static FiletypeFuncs filetype_funcs = {
|
static FiletypeFuncs filetype_funcs = {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user