SF.net SVN: geany: [2770] branches/editor-struct
ntrel at users.sourceforge.net
ntrel at xxxxx
Fri Jul 11 14:49:19 UTC 2008
Revision: 2770
http://geany.svn.sourceforge.net/geany/?rev=2770&view=rev
Author: ntrel
Date: 2008-07-11 07:49:09 -0700 (Fri, 11 Jul 2008)
Log Message:
-----------
Change plugin API EditorFuncs to use GeanyEditor pointers.
Modified Paths:
--------------
branches/editor-struct/ChangeLog
branches/editor-struct/src/build.c
branches/editor-struct/src/callbacks.c
branches/editor-struct/src/editor.c
branches/editor-struct/src/editor.h
branches/editor-struct/src/msgwindow.c
branches/editor-struct/src/plugindata.h
Modified: branches/editor-struct/ChangeLog
===================================================================
--- branches/editor-struct/ChangeLog 2008-07-11 14:25:26 UTC (rev 2769)
+++ branches/editor-struct/ChangeLog 2008-07-11 14:49:09 UTC (rev 2770)
@@ -7,6 +7,9 @@
instead.
* src/document.c:
Fix segfault in update_type_keywords().
+ * src/build.c, src/plugindata.h, src/msgwindow.c, src/callbacks.c,
+ src/editor.c, src/editor.h:
+ Change plugin API EditorFuncs to use GeanyEditor pointers.
2008-07-08 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
Modified: branches/editor-struct/src/build.c
===================================================================
--- branches/editor-struct/src/build.c 2008-07-11 14:25:26 UTC (rev 2769)
+++ branches/editor-struct/src/build.c 2008-07-11 14:49:09 UTC (rev 2770)
@@ -380,7 +380,8 @@
{
case GBO_COMPILE:
case GBO_MAKE_OBJECT:
- editor_clear_indicators(doc);
+ g_return_if_fail(doc);
+ editor_clear_indicators(doc->editor);
break;
case GBO_BUILD:
@@ -392,7 +393,7 @@
for (i = 0; i < documents_array->len; i++)
{
if (documents[i]->is_valid)
- editor_clear_indicators(documents[i]);
+ editor_clear_indicators(documents[i]->editor);
}
break;
}
@@ -858,7 +859,8 @@
{
GeanyDocument *doc = document_find_by_filename(filename);
- editor_set_indicator_on_line(doc, line - 1); /* will check valid idx */
+ if (doc)
+ editor_set_indicator_on_line(doc->editor, line - 1);
color = COLOR_RED; /* error message parsed on the line */
}
g_free(filename);
Modified: branches/editor-struct/src/callbacks.c
===================================================================
--- branches/editor-struct/src/callbacks.c 2008-07-11 14:25:26 UTC (rev 2769)
+++ branches/editor-struct/src/callbacks.c 2008-07-11 14:49:09 UTC (rev 2770)
@@ -1548,7 +1548,7 @@
GeanyDocument *doc = document_get_current();
if (doc != NULL)
- editor_clear_indicators(doc);
+ editor_clear_indicators(doc->editor);
}
Modified: branches/editor-struct/src/editor.c
===================================================================
--- branches/editor-struct/src/editor.c 2008-07-11 14:25:26 UTC (rev 2769)
+++ branches/editor-struct/src/editor.c 2008-07-11 14:49:09 UTC (rev 2770)
@@ -3074,55 +3074,55 @@
/**
- * Deletes all currently set indicators in the @a document.
+ * Deletes all currently set indicators in the @a editor window.
* Error indicators (red squiggly underlines) and usual line markers are removed.
*
- * @param doc The document to operate on.
+ * @param editor The editor to operate on.
**/
-void editor_clear_indicators(GeanyDocument *doc)
+void editor_clear_indicators(GeanyEditor *editor)
{
glong last_pos;
- g_return_if_fail(doc != NULL);
+ g_return_if_fail(editor != NULL);
- last_pos = sci_get_length(doc->editor->scintilla);
+ last_pos = sci_get_length(editor->scintilla);
if (last_pos > 0)
{
- sci_start_styling(doc->editor->scintilla, 0, INDIC2_MASK);
- sci_set_styling(doc->editor->scintilla, last_pos, 0);
+ sci_start_styling(editor->scintilla, 0, INDIC2_MASK);
+ sci_set_styling(editor->scintilla, last_pos, 0);
}
- sci_marker_delete_all(doc->editor->scintilla, 0); /* remove the yellow error line marker */
+ sci_marker_delete_all(editor->scintilla, 0); /* remove the yellow error line marker */
}
/**
- * This is a convenience function for document_set_indicator(). It sets an error indicator
+ * This is a convenience function for editor_set_indicator(). It sets an error indicator
* (red squiggly underline) on the whole given line.
* Whitespace at the start and the end of the line is not marked.
*
- * @param doc The document to operate on.
+ * @param editor The editor to operate on.
* @param line The line number which should be marked.
**/
-void editor_set_indicator_on_line(GeanyDocument *doc, gint line)
+void editor_set_indicator_on_line(GeanyEditor *editor, gint line)
{
gint start, end;
guint i = 0, len;
gchar *linebuf;
- if (doc == NULL)
+ if (editor == NULL)
return;
- start = sci_get_position_from_line(doc->editor->scintilla, line);
- end = sci_get_position_from_line(doc->editor->scintilla, line + 1);
+ start = sci_get_position_from_line(editor->scintilla, line);
+ end = sci_get_position_from_line(editor->scintilla, line + 1);
/* skip blank lines */
if ((start + 1) == end ||
- sci_get_line_length(doc->editor->scintilla, line) == editor_get_eol_char_len(doc))
+ sci_get_line_length(editor->scintilla, line) == editor_get_eol_char_len(editor->document))
return;
/* don't set the indicator on whitespace */
len = end - start;
- linebuf = sci_get_line(doc->editor->scintilla, line);
+ linebuf = sci_get_line(editor->scintilla, line);
while (isspace(linebuf[i])) i++;
while (len > 1 && len > i && isspace(linebuf[len-1]))
@@ -3132,7 +3132,7 @@
}
g_free(linebuf);
- editor_set_indicator(doc, start + i, end);
+ editor_set_indicator(editor, start + i, end);
}
@@ -3141,23 +3141,23 @@
* No error checking or whitespace removal is performed, this should be done by the calling
* function if necessary.
*
- * @param doc The document to operate on.
+ * @param editor The editor to operate on.
* @param start The starting position for the marker.
* @param end The ending position for the marker.
**/
-void editor_set_indicator(GeanyDocument *doc, gint start, gint end)
+void editor_set_indicator(GeanyEditor *editor, gint start, gint end)
{
gint current_mask;
- if (doc == NULL || start >= end)
+ if (editor == NULL || start >= end)
return;
- current_mask = sci_get_style_at(doc->editor->scintilla, start);
+ current_mask = sci_get_style_at(editor->scintilla, start);
current_mask &= INDICS_MASK;
current_mask |= INDIC2_MASK;
- sci_start_styling(doc->editor->scintilla, start, INDIC2_MASK);
- sci_set_styling(doc->editor->scintilla, end - start, current_mask);
+ sci_start_styling(editor->scintilla, start, INDIC2_MASK);
+ sci_set_styling(editor->scintilla, end - start, current_mask);
}
Modified: branches/editor-struct/src/editor.h
===================================================================
--- branches/editor-struct/src/editor.h 2008-07-11 14:25:26 UTC (rev 2769)
+++ branches/editor-struct/src/editor.h 2008-07-11 14:49:09 UTC (rev 2770)
@@ -186,11 +186,11 @@
void editor_select_paragraph(ScintillaObject *sci);
-void editor_set_indicator_on_line(GeanyDocument *doc, gint line);
+void editor_set_indicator_on_line(GeanyEditor *editor, gint line);
-void editor_set_indicator(GeanyDocument *doc, gint start, gint end);
+void editor_set_indicator(GeanyEditor *editor, gint start, gint end);
-void editor_clear_indicators(GeanyDocument *doc);
+void editor_clear_indicators(GeanyEditor *editor);
void editor_set_font(GeanyDocument *doc, const gchar *font_name, gint size);
Modified: branches/editor-struct/src/msgwindow.c
===================================================================
--- branches/editor-struct/src/msgwindow.c 2008-07-11 14:25:26 UTC (rev 2769)
+++ branches/editor-struct/src/msgwindow.c 2008-07-11 14:49:09 UTC (rev 2770)
@@ -603,7 +603,7 @@
if (doc != NULL)
{
if (! doc->changed) /* if modified, line may be wrong */
- editor_set_indicator_on_line(doc, line - 1);
+ editor_set_indicator_on_line(doc->editor, line - 1);
ret = navqueue_goto_line(old_doc, doc, line);
}
Modified: branches/editor-struct/src/plugindata.h
===================================================================
--- branches/editor-struct/src/plugindata.h 2008-07-11 14:25:26 UTC (rev 2769)
+++ branches/editor-struct/src/plugindata.h 2008-07-11 14:49:09 UTC (rev 2770)
@@ -36,12 +36,12 @@
/* The API version should be incremented whenever any plugin data types below are
* modified or appended to. */
-static const gint api_version = 76;
+static const gint api_version = 77;
/* The ABI version should be incremented whenever existing fields in the plugin
* data types below have to be changed or reordered. It should stay the same if fields
* are only appended, as this doesn't affect existing fields. */
-static const gint abi_version = 41;
+static const gint abi_version = 42;
/** Check the plugin can be loaded by Geany.
* This performs runtime checks that try to ensure:
@@ -425,12 +425,16 @@
NavQueueFuncs;
+struct GeanyEditor;
+
/* See editor.h */
typedef struct EditorFuncs
{
- void (*set_indicator) (struct GeanyDocument *doc, gint start, gint end);
- void (*set_indicator_on_line) (struct GeanyDocument *doc, gint line);
- void (*clear_indicators) (struct GeanyDocument *doc);
+ void (*set_indicator) (struct GeanyEditor *editor, gint start, gint end);
+ void (*set_indicator_on_line) (struct GeanyEditor *editor, gint line);
+ void (*clear_indicators) (struct GeanyEditor *editor);
+ /* Remember to convert any GeanyDocument or ScintillaObject pointers in any
+ * appended functions to GeanyEditor pointers. */
}
EditorFuncs;
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