SF.net SVN: geany: [2765] branches/editor-struct
ntrel at users.sourceforge.net
ntrel at xxxxx
Tue Jul 8 13:53:19 UTC 2008
Revision: 2765
http://geany.svn.sourceforge.net/geany/?rev=2765&view=rev
Author: ntrel
Date: 2008-07-08 06:53:08 -0700 (Tue, 08 Jul 2008)
Log Message:
-----------
Fix building editor.c, using GeanyEditor* instead of GeanyDocument*
(most global editor functions still need conversion though).
Modified Paths:
--------------
branches/editor-struct/ChangeLog
branches/editor-struct/src/callbacks.c
branches/editor-struct/src/document.c
branches/editor-struct/src/editor.c
branches/editor-struct/src/editor.h
branches/editor-struct/src/keybindings.c
branches/editor-struct/src/keyfile.c
branches/editor-struct/src/navqueue.c
branches/editor-struct/src/prefs.c
branches/editor-struct/src/search.c
Modified: branches/editor-struct/ChangeLog
===================================================================
--- branches/editor-struct/ChangeLog 2008-07-08 11:26:09 UTC (rev 2764)
+++ branches/editor-struct/ChangeLog 2008-07-08 13:53:08 UTC (rev 2765)
@@ -12,6 +12,11 @@
src/main.c, src/editor.c, src/ui_utils.c, plugins/export.c,
plugins/vcdiff.c, plugins/htmlchars.c, plugins/classbuilder.c:
Update for doc->editor->scintilla.
+ * src/keybindings.c, src/prefs.c, src/navqueue.c, src/callbacks.c,
+ src/keyfile.c, src/search.c, src/document.c, src/editor.c,
+ src/editor.h:
+ Fix building editor.c, using GeanyEditor* instead of GeanyDocument*
+ (most global editor functions still need conversion though).
2008-07-07 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
Modified: branches/editor-struct/src/callbacks.c
===================================================================
--- branches/editor-struct/src/callbacks.c 2008-07-08 11:26:09 UTC (rev 2764)
+++ branches/editor-struct/src/callbacks.c 2008-07-08 13:53:08 UTC (rev 2765)
@@ -969,7 +969,7 @@
{
GeanyDocument *doc = document_get_current();
if (doc != NULL)
- editor_set_line_wrapping(doc, ! doc->line_wrapping);
+ editor_set_line_wrapping(doc->editor, ! doc->editor->line_wrapping);
}
}
@@ -1101,7 +1101,7 @@
change_direction ? forward : !forward, FALSE, NULL);
if (result > -1)
- editor_display_current_line(doc, 0.3F);
+ editor_display_current_line(doc->editor, 0.3F);
set_search_bar_background((result > -1) ? TRUE : FALSE);
}
@@ -1192,7 +1192,7 @@
line--; /* the user counts lines from 1, we begin at 0 so bring the user line to our one */
pos = sci_get_position_from_line(doc->editor->scintilla, line);
- editor_goto_pos(doc, pos, TRUE);
+ editor_goto_pos(doc->editor, pos, TRUE);
}
else
{
@@ -2074,7 +2074,7 @@
if (doc == NULL || ignore_callback)
return;
- editor_set_use_tabs(doc, TRUE);
+ editor_set_use_tabs(doc->editor, TRUE);
ui_update_statusbar(doc, -1);
}
@@ -2088,7 +2088,7 @@
if (doc == NULL || ignore_callback)
return;
- editor_set_use_tabs(doc, FALSE);
+ editor_set_use_tabs(doc->editor, FALSE);
ui_update_statusbar(doc, -1);
}
Modified: branches/editor-struct/src/document.c
===================================================================
--- branches/editor-struct/src/document.c 2008-07-08 11:26:09 UTC (rev 2764)
+++ branches/editor-struct/src/document.c 2008-07-08 13:53:08 UTC (rev 2765)
@@ -569,7 +569,7 @@
if (text != NULL)
sci_convert_eols(doc->editor->scintilla, file_prefs.default_eol_character);
- editor_set_use_tabs(doc, editor_prefs.use_tabs);
+ editor_set_use_tabs(doc->editor, editor_prefs.use_tabs);
sci_set_undo_collection(doc->editor->scintilla, TRUE);
sci_empty_undo_buffer(doc->editor->scintilla);
@@ -917,9 +917,9 @@
{
/* force using tabs for indentation for Makefiles */
if (FILETYPE_ID(doc->file_type) == GEANY_FILETYPES_MAKE)
- editor_set_use_tabs(doc, TRUE);
+ editor_set_use_tabs(doc->editor, TRUE);
else if (! editor_prefs.detect_tab_mode)
- editor_set_use_tabs(doc, editor_prefs.use_tabs);
+ editor_set_use_tabs(doc->editor, editor_prefs.use_tabs);
else
{ /* detect & set tabs/spaces */
gboolean use_tabs = detect_use_tabs(doc->editor->scintilla);
@@ -927,7 +927,7 @@
if (use_tabs != editor_prefs.use_tabs)
ui_set_statusbar(TRUE, _("Setting %s indentation mode."),
(use_tabs) ? _("Tabs") : _("Spaces"));
- editor_set_use_tabs(doc, use_tabs);
+ editor_set_use_tabs(doc->editor, use_tabs);
}
}
@@ -1057,7 +1057,7 @@
/* set indentation settings after setting the filetype */
if (reload)
- editor_set_use_tabs(doc, doc->use_tabs); /* resetup sci */
+ editor_set_use_tabs(doc->editor, doc->use_tabs); /* resetup sci */
else
set_indentation(doc);
Modified: branches/editor-struct/src/editor.c
===================================================================
--- branches/editor-struct/src/editor.c 2008-07-08 11:26:09 UTC (rev 2764)
+++ branches/editor-struct/src/editor.c 2008-07-08 13:53:08 UTC (rev 2765)
@@ -71,13 +71,13 @@
static gchar indent[100];
-static void on_new_line_added(GeanyDocument *doc);
-static gboolean handle_xml(GeanyDocument *doc, gchar ch);
-static void get_indent(GeanyDocument *doc, gint pos, gboolean use_this_line);
-static void auto_multiline(GeanyDocument *doc, gint pos);
+static void on_new_line_added(GeanyEditor *editor);
+static gboolean handle_xml(GeanyEditor *editor, gchar ch);
+static void get_indent(GeanyEditor *editor, gint pos, gboolean use_this_line);
+static void auto_multiline(GeanyEditor *editor, gint pos);
static gboolean is_comment(gint lexer, gint prev_style, gint style);
static void auto_close_bracket(ScintillaObject *sci, gint pos, gchar c);
-static void editor_auto_table(GeanyDocument *doc, gint pos);
+static void auto_table(GeanyEditor *editor, gint pos);
@@ -275,27 +275,27 @@
}
-static void on_update_ui(GeanyDocument *doc, G_GNUC_UNUSED SCNotification *nt)
+static void on_update_ui(GeanyEditor *editor, G_GNUC_UNUSED SCNotification *nt)
{
- ScintillaObject *sci = doc->editor->scintilla;
+ ScintillaObject *sci = editor->scintilla;
gint pos = sci_get_current_position(sci);
/* undo / redo menu update */
- ui_update_popup_reundo_items(doc);
+ ui_update_popup_reundo_items(editor->document);
/* brace highlighting */
editor_highlight_braces(sci, pos);
- ui_update_statusbar(doc, pos);
+ ui_update_statusbar(editor->document, pos);
/* Visible lines are only laid out accurately once [SCN_UPDATEUI] is sent,
* so we need to only call sci_scroll_to_line here, because the document
* may have line wrapping and folding enabled.
* http://scintilla.sourceforge.net/ScintillaDoc.html#LineWrapping */
- if (doc->scroll_percent > 0.0F)
+ if (editor->scroll_percent > 0.0F)
{
- editor_scroll_to_line(sci, -1, doc->scroll_percent);
- doc->scroll_percent = -1.0F; /* disable further scrolling */
+ editor_scroll_to_line(sci, -1, editor->scroll_percent);
+ editor->scroll_percent = -1.0F; /* disable further scrolling */
}
#if 0
/** experimental code for inverting selections */
@@ -314,12 +314,12 @@
}
-static void check_line_breaking(GeanyDocument *doc, gint pos, gchar c)
+static void check_line_breaking(GeanyEditor *editor, gint pos, gchar c)
{
- ScintillaObject *sci = doc->editor->scintilla;
+ ScintillaObject *sci = editor->scintilla;
gint line, lstart;
- if (!doc->line_breaking)
+ if (!editor->line_breaking)
return;
if (c == GDK_space)
@@ -340,7 +340,7 @@
if (c == GDK_space)
{
gint col, len, diff;
- const gchar *eol = editor_get_eol_char(doc);
+ const gchar *eol = editor_get_eol_char(editor->document);
/* break the line after the space */
sci_insert_text(sci, pos + 1, eol);
@@ -357,7 +357,7 @@
pos = sci_get_position_from_line(sci, line);
sci_set_current_position(sci, pos, FALSE);
/* add indentation, comment multilines, etc */
- on_new_line_added(doc);
+ on_new_line_added(editor);
/* correct cursor position (might not be at line end) */
pos = sci_get_position_from_line(sci, line);
@@ -369,9 +369,9 @@
}
-static void on_char_added(GeanyDocument *doc, SCNotification *nt)
+static void on_char_added(GeanyEditor *editor, SCNotification *nt)
{
- ScintillaObject *sci = doc->editor->scintilla;
+ ScintillaObject *sci = editor->scintilla;
gint pos = sci_get_current_position(sci);
switch (nt->ch)
@@ -379,23 +379,23 @@
case '\r':
{ /* simple indentation (only for CR format) */
if (sci_get_eol_mode(sci) == SC_EOL_CR)
- on_new_line_added(doc);
+ on_new_line_added(editor);
break;
}
case '\n':
{ /* simple indentation (for CR/LF and LF format) */
- on_new_line_added(doc);
+ on_new_line_added(editor);
break;
}
case '>':
case '/':
{ /* close xml-tags */
- handle_xml(doc, nt->ch);
+ handle_xml(editor, nt->ch);
break;
}
case '(':
{ /* show calltips */
- editor_show_calltip(doc, --pos);
+ editor_show_calltip(editor->document, --pos);
break;
}
case ')':
@@ -417,19 +417,20 @@
if (sci_get_lexer(sci) == SCLEX_LATEX)
{
auto_close_bracket(sci, pos, nt->ch); /* Tex auto-closing */
- editor_show_calltip(doc, --pos);
+ editor_show_calltip(editor->document, --pos);
}
break;
}
case '}':
{ /* closing bracket handling */
- if (doc->auto_indent)
- editor_close_block(doc, pos - 1);
+ if (editor->auto_indent)
+ editor_close_block(editor->document, pos - 1);
break;
}
- default: editor_start_auto_complete(doc, pos, FALSE);
+ default:
+ editor_start_auto_complete(editor->document, pos, FALSE);
}
- check_line_breaking(doc, pos, nt->ch);
+ check_line_breaking(editor, pos, nt->ch);
}
@@ -566,14 +567,15 @@
/* callback func called by all editors when a signal arises */
-void on_editor_notification(GtkWidget *editor, gint scn, gpointer lscn, gpointer user_data)
+void on_editor_notification(GtkWidget *widget, gint scn, gpointer lscn, gpointer user_data)
{
SCNotification *nt;
ScintillaObject *sci;
- GeanyDocument *doc;
+ GeanyDocument *doc = user_data;
+ GeanyEditor *editor;
- doc = user_data;
- sci = doc->editor->scintilla;
+ editor = doc->editor;
+ sci = editor->scintilla;
nt = lscn;
switch (nt->nmhdr.code)
@@ -598,7 +600,7 @@
break;
case SCN_UPDATEUI:
- on_update_ui(doc, nt);
+ on_update_ui(editor, nt);
break;
case SCN_MODIFIED:
@@ -616,7 +618,7 @@
break;
}
case SCN_CHARADDED:
- on_char_added(doc, nt);
+ on_char_added(editor, nt);
break;
case SCN_USERLISTSELECTION:
@@ -721,53 +723,54 @@
}
-static void check_python_indent(GeanyDocument *doc, gint pos)
+static void check_python_indent(GeanyEditor *editor, gint pos)
{
- gint last_char = pos - editor_get_eol_char_len(doc) - 1;
+ ScintillaObject *sci = editor->scintilla;
+ gint last_char = pos - editor_get_eol_char_len(editor->document) - 1;
/* add extra indentation for Python after colon */
- if (sci_get_char_at(doc->editor->scintilla, last_char) == ':' &&
- sci_get_style_at(doc->editor->scintilla, last_char) == SCE_P_OPERATOR)
+ if (sci_get_char_at(sci, last_char) == ':' &&
+ sci_get_style_at(sci, last_char) == SCE_P_OPERATOR)
{
/* creates and inserts one tabulator sign or
* whitespace of the amount of the tab width */
- gchar *text = get_whitespace(editor_prefs.tab_width, doc->use_tabs);
- sci_add_text(doc->editor->scintilla, text);
+ gchar *text = get_whitespace(editor_prefs.tab_width, editor->use_tabs);
+ sci_add_text(sci, text);
g_free(text);
}
}
-static void on_new_line_added(GeanyDocument *doc)
+static void on_new_line_added(GeanyEditor *editor)
{
- ScintillaObject *sci = doc->editor->scintilla;
+ ScintillaObject *sci = editor->scintilla;
gint pos = sci_get_current_position(sci);
gint line = sci_get_current_line(sci);
/* simple indentation */
- if (doc->auto_indent)
+ if (editor->auto_indent)
{
- get_indent(doc, pos, FALSE);
+ get_indent(editor, pos, FALSE);
sci_add_text(sci, indent);
if (editor_prefs.indent_mode > INDENT_BASIC &&
- FILETYPE_ID(doc->file_type) == GEANY_FILETYPES_PYTHON)
- check_python_indent(doc, pos);
+ FILETYPE_ID(editor->document->file_type) == GEANY_FILETYPES_PYTHON)
+ check_python_indent(editor, pos);
}
if (editor_prefs.auto_continue_multiline)
{ /* " * " auto completion in multiline C/C++/D/Java comments */
- auto_multiline(doc, pos);
+ auto_multiline(editor, pos);
}
if (editor_prefs.complete_snippets)
{
- editor_auto_latex(doc, pos);
+ editor_auto_latex(editor->document, pos);
}
if (editor_prefs.newline_strip)
{ /* strip the trailing spaces on the previous line */
- editor_strip_line_trailing_spaces(doc, line - 1);
+ editor_strip_line_trailing_spaces(editor->document, line - 1);
}
}
@@ -814,9 +817,9 @@
/* "use_this_line" to auto-indent only if it is a real new line
* and ignore the case of editor_close_block */
-static void get_indent(GeanyDocument *doc, gint pos, gboolean use_this_line)
+static void get_indent(GeanyEditor *editor, gint pos, gboolean use_this_line)
{
- ScintillaObject *sci = doc->editor->scintilla;
+ ScintillaObject *sci = editor->scintilla;
guint i, len, j = 0;
gint prev_line;
gchar *linebuf;
@@ -845,7 +848,7 @@
* " { return bless({}, shift); }" (Perl) */
if (linebuf[i] == '{' && i == (len - 1))
{
- do_indent(indent, sizeof(indent), &j, doc->use_tabs);
+ do_indent(indent, sizeof(indent), &j, editor->use_tabs);
break;
}
else
@@ -858,7 +861,7 @@
* e.g. for (...) { */
if (linebuf[k] == '{')
{
- do_indent(indent, sizeof(indent), &j, doc->use_tabs);
+ do_indent(indent, sizeof(indent), &j, editor->use_tabs);
}
break;
}
@@ -971,7 +974,7 @@
{
gint line_start;
- get_indent(doc, start_brace, TRUE);
+ get_indent(doc->editor, start_brace, TRUE);
text = g_strconcat(indent, "}", NULL);
line_start = sci_get_position_from_line(sci, line);
sci_set_anchor(sci, line_start);
@@ -1401,6 +1404,7 @@
if (sci_get_char_at(sci, pos - 2) == '}')
{
+ GeanyEditor *editor = doc->editor;
gchar *eol, *buf, *construct;
gchar env[50];
gint line = sci_get_line_from_position(sci, pos - 2);
@@ -1451,8 +1455,8 @@
}
/* get the indentation */
- if (doc->auto_indent)
- get_indent(doc, pos, TRUE);
+ if (editor->auto_indent)
+ get_indent(editor, pos, TRUE);
eol = g_strconcat(editor_get_eol_char(doc), indent, NULL);
construct = g_strdup_printf("%s\\end%s{%s}", eol, full_cmd, env);
@@ -1518,16 +1522,16 @@
}
-static gboolean snippets_complete_constructs(GeanyDocument *doc, gint pos, const gchar *word)
+static gboolean snippets_complete_constructs(GeanyEditor *editor, gint pos, const gchar *word)
{
gchar *str;
gchar *pattern;
gchar *lindent;
gchar *whitespace;
gint step, str_len;
- gint ft_id = FILETYPE_ID(doc->file_type);
+ gint ft_id = FILETYPE_ID(editor->document->file_type);
GHashTable *specials;
- ScintillaObject *sci = doc->editor->scintilla;
+ ScintillaObject *sci = editor->scintilla;
str = g_strdup(word);
g_strstrip(str);
@@ -1539,9 +1543,9 @@
return FALSE;
}
- get_indent(doc, pos, TRUE);
- lindent = g_strconcat(editor_get_eol_char(doc), indent, NULL);
- whitespace = get_whitespace(editor_prefs.tab_width, doc->use_tabs);
+ get_indent(editor, pos, TRUE);
+ lindent = g_strconcat(editor_get_eol_char(editor->document), indent, NULL);
+ whitespace = get_whitespace(editor_prefs.tab_width, editor->use_tabs);
/* remove the typed word, it will be added again by the used auto completion
* (not really necessary but this makes the auto completion more flexible,
@@ -1630,7 +1634,7 @@
if (! isspace(sci_get_char_at(sci, pos - 1))) /* pos points to the line end char so use pos -1 */
{
sci_start_undo_action(sci); /* needed because we insert a space separately from construct */
- result = snippets_complete_constructs(doc, pos, current_word);
+ result = snippets_complete_constructs(doc->editor, pos, current_word);
sci_end_undo_action(sci);
if (result)
SSM(sci, SCI_CANCEL, 0, 0); /* cancel any autocompletion list, etc */
@@ -1655,9 +1659,9 @@
}
-static void insert_closing_tag(GeanyDocument *doc, gint pos, gchar ch, const gchar *tag_name)
+static void insert_closing_tag(GeanyEditor *editor, gint pos, gchar ch, const gchar *tag_name)
{
- ScintillaObject *sci = doc->editor->scintilla;
+ ScintillaObject *sci = editor->scintilla;
gchar *to_insert = NULL;
if (ch == '/')
@@ -1678,7 +1682,7 @@
{
SSM(sci, SCI_SETSEL, pos, pos);
if (utils_str_equal(tag_name, "table"))
- editor_auto_table(doc, pos);
+ auto_table(editor, pos);
}
sci_end_undo_action(sci);
g_free(to_insert);
@@ -1691,9 +1695,9 @@
* @param ch The character we are dealing with, currently only works with the '>' character
* @return True if handled, false otherwise
*/
-static gboolean handle_xml(GeanyDocument *doc, gchar ch)
+static gboolean handle_xml(GeanyEditor *editor, gchar ch)
{
- ScintillaObject *sci = doc->editor->scintilla;
+ ScintillaObject *sci = editor->scintilla;
gint lexer = SSM(sci, SCI_GETLEXER, 0, 0);
gint pos, min;
gchar *str_found, sel[512];
@@ -1707,7 +1711,7 @@
pos = sci_get_current_position(sci);
/* return if we are in PHP but not in a string or outside of <? ?> tags */
- if (doc->file_type->id == GEANY_FILETYPES_PHP)
+ if (editor->document->file_type->id == GEANY_FILETYPES_PHP)
{
gint style = sci_get_style_at(sci, pos);
if (style != SCE_HPHP_SIMPLESTRING && style != SCE_HPHP_HSTRING &&
@@ -1750,7 +1754,7 @@
}
else if (NZV(str_found))
{
- insert_closing_tag(doc, pos, ch, str_found);
+ insert_closing_tag(editor, pos, ch, str_found);
result = TRUE;
}
g_free(str_found);
@@ -1758,15 +1762,15 @@
}
-static void editor_auto_table(GeanyDocument *doc, gint pos)
+static void auto_table(GeanyEditor *editor, gint pos)
{
- ScintillaObject *sci = doc->editor->scintilla;
+ ScintillaObject *sci = editor->scintilla;
gchar *table;
gint indent_pos;
if (SSM(sci, SCI_GETLEXER, 0, 0) != SCLEX_HTML) return;
- get_indent(doc, pos, TRUE);
+ get_indent(editor, pos, TRUE);
indent_pos = sci_get_line_indent_position(sci, sci_get_line_from_position(sci, pos));
if ((pos - 7) != indent_pos) /* 7 == strlen("<table>") */
{
@@ -2154,7 +2158,7 @@
gint a = (first_line_was_comment) ? - co_len : co_len;
/* don't modify sel_start when the selection starts within indentation */
- get_indent(doc, sel_start, TRUE);
+ get_indent(doc->editor, sel_start, TRUE);
if ((sel_start - first_line_start) <= (gint) strlen(indent))
a = 0;
@@ -2362,10 +2366,11 @@
}
-static void auto_multiline(GeanyDocument *doc, gint pos)
+static void auto_multiline(GeanyEditor *editor, gint pos)
{
- ScintillaObject *sci = doc->editor->scintilla;
- gint style = SSM(sci, SCI_GETSTYLEAT, pos - 1 - editor_get_eol_char_len(doc), 0);
+ ScintillaObject *sci = editor->scintilla;
+ gint eol_len = editor_get_eol_char_len(editor->document);
+ gint style = SSM(sci, SCI_GETSTYLEAT, pos - 1 - eol_len, 0);
gint lexer = SSM(sci, SCI_GETLEXER, 0, 0);
if ((lexer == SCLEX_CPP && (style == SCE_C_COMMENT || style == SCE_C_COMMENTDOC)) ||
@@ -2642,22 +2647,25 @@
gint line;
gint pos;
gboolean have_multiline_comment = FALSE;
+ GeanyEditor *editor;
if (doc == NULL || doc->file_type == NULL || doc->file_type->comment_open == NULL)
return;
+ editor = doc->editor;
if (doc->file_type->comment_close != NULL && strlen(doc->file_type->comment_close) > 0)
have_multiline_comment = TRUE;
/* insert three lines one line above of the current position */
- line = sci_get_line_from_position(doc->editor->scintilla, editor_info.click_pos);
- pos = sci_get_position_from_line(doc->editor->scintilla, line);
+ line = sci_get_line_from_position(editor->scintilla, editor_info.click_pos);
+ pos = sci_get_position_from_line(editor->scintilla, line);
/* use the indent on the current line but only when comment indentation is used
* and we don't have multi line comment characters */
- if (doc->auto_indent && ! have_multiline_comment && doc->file_type->comment_use_indent)
+ if (editor->auto_indent &&
+ ! have_multiline_comment && doc->file_type->comment_use_indent)
{
- get_indent(doc, editor_info.click_pos, TRUE);
+ get_indent(editor, editor_info.click_pos, TRUE);
text = g_strdup_printf("%s\n%s\n%s\n", indent, indent, indent);
text_len = strlen(text);
}
@@ -2666,13 +2674,13 @@
text = g_strdup("\n\n\n");
text_len = 3;
}
- sci_insert_text(doc->editor->scintilla, pos, text);
+ sci_insert_text(editor->scintilla, pos, text);
g_free(text);
/* select the inserted lines for commenting */
- sci_set_selection_start(doc->editor->scintilla, pos);
- sci_set_selection_end(doc->editor->scintilla, pos + text_len);
+ sci_set_selection_start(editor->scintilla, pos);
+ sci_set_selection_end(editor->scintilla, pos + text_len);
editor_do_comment(doc, -1, TRUE, FALSE);
@@ -2685,9 +2693,9 @@
else
pos += strlen(indent);
- sci_set_current_position(doc->editor->scintilla, pos, TRUE);
+ sci_set_current_position(editor->scintilla, pos, TRUE);
/* reset the selection */
- sci_set_anchor(doc->editor->scintilla, pos);
+ sci_set_anchor(editor->scintilla, pos);
}
@@ -2717,11 +2725,11 @@
}
-void editor_insert_alternative_whitespace(GeanyDocument *doc)
+void editor_insert_alternative_whitespace(GeanyEditor *editor)
{
- /* creates and inserts one tabulator sign or whitespace of the amount of the tab width */
- gchar *text = get_whitespace(editor_prefs.tab_width, ! doc->use_tabs);
- sci_add_text(doc->editor->scintilla, text);
+ /* creates and inserts one tab or whitespace of the amount of the tab width */
+ gchar *text = get_whitespace(editor_prefs.tab_width, ! editor->use_tabs);
+ sci_add_text(editor->scintilla, text);
g_free(text);
}
@@ -2904,7 +2912,7 @@
/* get previous line and use it for get_indent to use that line
* (otherwise it would fail on a line only containing "{" in advanced indentation mode) */
- get_indent(doc, sci_get_position_from_line(sci, first_line - 1), TRUE);
+ get_indent(doc->editor, sci_get_position_from_line(sci, first_line - 1), TRUE);
smart_line_indentation(doc, first_line, last_line);
@@ -3051,17 +3059,17 @@
/* If the current line is outside the current view window, scroll the line
* so it appears at percent_of_view. */
-void editor_display_current_line(GeanyDocument *doc, gfloat percent_of_view)
+void editor_display_current_line(GeanyEditor *editor, gfloat percent_of_view)
{
- ScintillaObject *sci = doc->editor->scintilla;
+ ScintillaObject *sci = editor->scintilla;
gint line = sci_get_current_line(sci);
/* unfold maybe folded results */
- sci_ensure_line_is_visible(doc->editor->scintilla, line);
+ sci_ensure_line_is_visible(editor->scintilla, line);
/* scroll the line if it's off screen */
if (! editor_line_in_view(sci, line))
- doc->scroll_percent = percent_of_view;
+ editor->scroll_percent = percent_of_view;
}
@@ -3421,49 +3429,50 @@
}
-void editor_set_line_wrapping(GeanyDocument *doc, gboolean wrap)
+void editor_set_line_wrapping(GeanyEditor *editor, gboolean wrap)
{
- g_return_if_fail(doc != NULL);
+ g_return_if_fail(editor != NULL);
- doc->line_wrapping = wrap;
- sci_set_lines_wrapped(doc->editor->scintilla, wrap);
+ editor->line_wrapping = wrap;
+ sci_set_lines_wrapped(editor->scintilla, wrap);
}
-void editor_set_use_tabs(GeanyDocument *doc, gboolean use_tabs)
+void editor_set_use_tabs(GeanyEditor *editor, gboolean use_tabs)
{
- g_return_if_fail(doc != NULL);
+ g_return_if_fail(editor != NULL);
- doc->use_tabs = use_tabs;
- sci_set_use_tabs(doc->editor->scintilla, use_tabs);
+ editor->use_tabs = use_tabs;
+ sci_set_use_tabs(editor->scintilla, use_tabs);
/* remove indent spaces on backspace, if using spaces to indent */
- SSM(doc->editor->scintilla, SCI_SETBACKSPACEUNINDENTS, ! use_tabs, 0);
+ SSM(editor->scintilla, SCI_SETBACKSPACEUNINDENTS, ! use_tabs, 0);
}
/* Move to position @a pos, switching to the document if necessary,
* setting a marker if @a mark is set. */
-gboolean editor_goto_pos(GeanyDocument *doc, gint pos, gboolean mark)
+gboolean editor_goto_pos(GeanyEditor *editor, gint pos, gboolean mark)
{
gint page_num;
- if (doc == NULL || pos < 0)
+ g_return_val_if_fail(editor, FALSE);
+ if (pos < 0)
return FALSE;
if (mark)
{
- gint line = sci_get_line_from_position(doc->editor->scintilla, pos);
+ gint line = sci_get_line_from_position(editor->scintilla, pos);
/* mark the tag with the yellow arrow */
- sci_marker_delete_all(doc->editor->scintilla, 0);
- sci_set_marker_at_line(doc->editor->scintilla, line, TRUE, 0);
+ sci_marker_delete_all(editor->scintilla, 0);
+ sci_set_marker_at_line(editor->scintilla, line, TRUE, 0);
}
- sci_goto_pos(doc->editor->scintilla, pos, TRUE);
- doc->scroll_percent = 0.25F;
+ sci_goto_pos(editor->scintilla, pos, TRUE);
+ editor->scroll_percent = 0.25F;
/* finally switch to the page */
- page_num = gtk_notebook_page_num(GTK_NOTEBOOK(main_widgets.notebook), GTK_WIDGET(doc->editor->scintilla));
+ page_num = gtk_notebook_page_num(GTK_NOTEBOOK(main_widgets.notebook), GTK_WIDGET(editor->scintilla));
gtk_notebook_set_current_page(GTK_NOTEBOOK(main_widgets.notebook), page_num);
return TRUE;
Modified: branches/editor-struct/src/editor.h
===================================================================
--- branches/editor-struct/src/editor.h 2008-07-08 11:26:09 UTC (rev 2764)
+++ branches/editor-struct/src/editor.h 2008-07-08 13:53:08 UTC (rev 2765)
@@ -155,7 +155,7 @@
void editor_insert_multiline_comment(GeanyDocument *doc);
-void editor_insert_alternative_whitespace(GeanyDocument *doc);
+void editor_insert_alternative_whitespace(GeanyEditor *editor);
void editor_smart_line_indentation(GeanyDocument *doc, gint pos);
@@ -165,7 +165,7 @@
void editor_scroll_to_line(ScintillaObject *sci, gint line, gfloat percent_of_view);
-void editor_display_current_line(GeanyDocument *doc, gfloat percent_of_view);
+void editor_display_current_line(GeanyEditor *editor, gfloat percent_of_view);
void editor_finalize(void);
@@ -216,10 +216,10 @@
void editor_insert_color(GeanyDocument *doc, const gchar *colour);
-void editor_set_use_tabs(GeanyDocument *doc, gboolean use_tabs);
+void editor_set_use_tabs(GeanyEditor *editor, gboolean use_tabs);
-void editor_set_line_wrapping(GeanyDocument *doc, gboolean wrap);
+void editor_set_line_wrapping(GeanyEditor *editor, gboolean wrap);
-gboolean editor_goto_pos(GeanyDocument *doc, gint pos, gboolean mark);
+gboolean editor_goto_pos(GeanyEditor *editor, gint pos, gboolean mark);
#endif
Modified: branches/editor-struct/src/keybindings.c
===================================================================
--- branches/editor-struct/src/keybindings.c 2008-07-08 11:26:09 UTC (rev 2764)
+++ branches/editor-struct/src/keybindings.c 2008-07-08 13:53:08 UTC (rev 2765)
@@ -1337,7 +1337,7 @@
if (new_pos != -1)
{ /* set the cursor at the brace */
sci_set_current_position(doc->editor->scintilla, new_pos, FALSE);
- editor_display_current_line(doc, 0.5F);
+ editor_display_current_line(doc->editor, 0.5F);
}
}
@@ -1409,7 +1409,7 @@
if (mline != -1)
{
sci_set_current_line(doc->editor->scintilla, mline);
- editor_display_current_line(doc, 0.5F);
+ editor_display_current_line(doc->editor, 0.5F);
}
return;
}
@@ -1420,7 +1420,7 @@
if (mline != -1)
{
sci_set_current_line(doc->editor->scintilla, mline);
- editor_display_current_line(doc, 0.5F);
+ editor_display_current_line(doc->editor, 0.5F);
}
return;
}
@@ -1689,7 +1689,7 @@
switch (key_id)
{
case GEANY_KEYS_INSERT_ALTWHITESPACE:
- editor_insert_alternative_whitespace(doc);
+ editor_insert_alternative_whitespace(doc->editor);
break;
case GEANY_KEYS_INSERT_DATE:
gtk_menu_item_activate(GTK_MENU_ITEM(lookup_widget(main_widgets.window, "insert_date_custom1")));
Modified: branches/editor-struct/src/keyfile.c
===================================================================
--- branches/editor-struct/src/keyfile.c 2008-07-08 11:26:09 UTC (rev 2764)
+++ branches/editor-struct/src/keyfile.c 2008-07-08 13:53:08 UTC (rev 2765)
@@ -890,8 +890,8 @@
if (DOC_VALID(doc))
{
- editor_set_use_tabs(doc, use_tabs);
- editor_set_line_wrapping(doc, line_wrapping);
+ editor_set_use_tabs(doc->editor, use_tabs);
+ editor_set_line_wrapping(doc->editor, line_wrapping);
doc->auto_indent = auto_indent;
ret = TRUE;
}
Modified: branches/editor-struct/src/navqueue.c
===================================================================
--- branches/editor-struct/src/navqueue.c 2008-07-08 11:26:09 UTC (rev 2764)
+++ branches/editor-struct/src/navqueue.c 2008-07-08 13:53:08 UTC (rev 2765)
@@ -167,7 +167,7 @@
add_new_position(new_doc->file_name, pos);
}
- return editor_goto_pos(new_doc, pos, TRUE);
+ return editor_goto_pos(new_doc->editor, pos, TRUE);
}
@@ -178,7 +178,7 @@
if (doc == NULL)
return FALSE;
- return editor_goto_pos(doc, pos, TRUE);
+ return editor_goto_pos(doc->editor, pos, TRUE);
}
Modified: branches/editor-struct/src/prefs.c
===================================================================
--- branches/editor-struct/src/prefs.c 2008-07-08 11:26:09 UTC (rev 2764)
+++ branches/editor-struct/src/prefs.c 2008-07-08 13:53:08 UTC (rev 2765)
@@ -860,7 +860,7 @@
for (i = 0; i < documents_array->len; i++)
{
if (documents[i]->is_valid)
- editor_set_use_tabs(documents[i], editor_prefs.use_tabs);
+ editor_set_use_tabs(documents[i]->editor, editor_prefs.use_tabs);
}
}
}
Modified: branches/editor-struct/src/search.c
===================================================================
--- branches/editor-struct/src/search.c 2008-07-08 11:26:09 UTC (rev 2764)
+++ branches/editor-struct/src/search.c 2008-07-08 13:53:08 UTC (rev 2765)
@@ -256,7 +256,7 @@
setup_find_next(s); /* allow find next/prev */
if (document_find_text(doc, s, 0, search_backwards, FALSE, NULL) > -1)
- editor_display_current_line(doc, 0.3F);
+ editor_display_current_line(doc->editor, 0.3F);
g_free(s);
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Commits
mailing list