Revision: 4524 http://geany.svn.sourceforge.net/geany/?rev=4524&view=rev Author: frlan Date: 2010-01-16 19:39:23 +0000 (Sat, 16 Jan 2010)
Log Message: ----------- Remove automatic environment closing functions for LaTeX. Will be done by geanyLaTeX plugin in future
Modified Paths: -------------- trunk/ChangeLog trunk/src/editor.c
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2010-01-14 09:46:54 UTC (rev 4523) +++ trunk/ChangeLog 2010-01-16 19:39:23 UTC (rev 4524) @@ -1,3 +1,10 @@ +2010-01-16 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> + + * src/editor.c: + Remove editor_auto_latex() from Geany core and move it to geanyLaTeX + plugin. + + 2010-01-12 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
* src/editor.c, src/templates.c, src/templates.h:
Modified: trunk/src/editor.c =================================================================== --- trunk/src/editor.c 2010-01-14 09:46:54 UTC (rev 4523) +++ trunk/src/editor.c 2010-01-16 19:39:23 UTC (rev 4524) @@ -101,7 +101,6 @@ static void auto_table(GeanyEditor *editor, gint pos); static void close_block(GeanyEditor *editor, gint pos); static void editor_highlight_braces(GeanyEditor *editor, gint cur_pos); -static void editor_auto_latex(GeanyEditor *editor, gint pos); static void read_current_word(GeanyEditor *editor, gint pos, gchar *word, size_t wordlen, const gchar *wc, gboolean stem);
@@ -1039,11 +1038,6 @@ auto_multiline(editor, line); }
- if (editor_prefs.complete_snippets) - { - editor_auto_latex(editor, pos); - } - if (editor_prefs.newline_strip) { /* strip the trailing spaces on the previous line */ editor_strip_line_trailing_spaces(editor, line - 1); @@ -1980,110 +1974,6 @@ return ret; }
- -static void editor_auto_latex(GeanyEditor *editor, gint pos) -{ - ScintillaObject *sci; - - g_return_if_fail(editor != NULL); - - if (editor->document->file_type->id != GEANY_FILETYPES_LATEX) - return; - - sci = editor->sci; - - if (sci_get_char_at(sci, pos - 1 - editor_get_eol_char_len(editor)) == '}') - { - gchar *eol, *buf, *construct; - gchar env[50]; - gint line = sci_get_line_from_position(sci, pos - 2); - gint line_len = sci_get_line_length(sci, line); - gint i, start; - - /* get the line */ - buf = sci_get_line(sci, line); - - /* get to the first non-blank char (some kind of ltrim()) */ - start = 0; - while (isspace(buf[start]) && buf[start] != '\0') - start++; - - /* check for begin */ - if (strncmp(buf + start, "\begin", 6) == 0) - { - gchar full_cmd[15]; - guint j = 0; - - /* take also "\begingroup" (or whatever there can be) and - * append "\endgroup" and so on. */ - i = start + 6; - while (i < line_len && buf[i] != '{' && j < (sizeof(full_cmd) - 1)) - { /* copy all between "\begin" and "{" to full_cmd */ - full_cmd[j] = buf[i]; - i++; - j++; - } - full_cmd[j] = '\0'; - - /* go through the line and get the environment */ - for (i = start + j; i < line_len; i++) - { - if (buf[i] == '{') - { - j = 0; - i++; - while (buf[i] != '}' && j < (sizeof(env) - 1)) - { /* this could be done in a shorter way, but so it remains readable ;-) */ - env[j] = buf[i]; - j++; - i++; - } - env[j] = '\0'; - break; - } - } - - /* Search whether the environment is closed within the next - * lines. We assume, no \end is needed in such cases */ - /* TODO using sci_find_text() should be way faster than getting - * the line buffer and performing string comparisons */ - for (i = 1; i < 5; i++) - { - gchar *tmp; - gchar *end_construct; - tmp = sci_get_line(sci, line + i); - /* Again get to the first non-blank char */ - start = 0; - while (isspace(buf[start]) && buf[start] != '\0') - start++; - end_construct = g_strdup_printf("\end%s{%s}", full_cmd, env); - if (strstr(tmp, end_construct) != NULL) - { - utils_free_pointers(3, tmp, buf, end_construct, NULL); - return; - } - g_free(tmp); - } - - /* get the indentation */ - if (editor->auto_indent) - read_indent(editor, pos); - eol = g_strconcat(editor_get_eol_char(editor), indent, NULL); - - construct = g_strdup_printf("%s\end%s{%s}", eol, full_cmd, env); - - sci_insert_text(sci, pos, construct); - sci_goto_pos(sci, pos, TRUE); - g_free(construct); - g_free(eol); - } - /* later there could be some else ifs for other keywords */ - - g_free(buf); - } -} - - static gchar *snippets_find_completion_by_name(const gchar *type, const gchar *name) { gchar *result = NULL; @@ -2171,8 +2061,8 @@ /** Insert text, replacing \t tab chars with the correct indent width, and \n newline * chars with the correct line ending string. * @param editor The editor to operate on. - * @param insert_pos Position, where to start with inserting text block. * @param text Intended as e.g. "if (1)\n\tdo_something();" + * @param insert_pos Position, where to start with inserting text block. * @param cursor_index If >= 0, the index into @a text to place the cursor. * @param newline_indent_size Indentation size (in spaces) to insert for each newline; use * -1 to read the indent size from the line with @a insert_pos on it.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.