SF.net SVN: geany:[3776] trunk
eht16 at users.sourceforge.net
eht16 at xxxxx
Sun May 10 17:44:28 UTC 2009
Revision: 3776
http://geany.svn.sourceforge.net/geany/?rev=3776&view=rev
Author: eht16
Date: 2009-05-10 17:44:28 +0000 (Sun, 10 May 2009)
Log Message:
-----------
Refactor some multiple used code into get_multiline_comment_style().
Modified Paths:
--------------
trunk/ChangeLog
trunk/src/editor.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2009-05-10 17:44:14 UTC (rev 3775)
+++ trunk/ChangeLog 2009-05-10 17:44:28 UTC (rev 3776)
@@ -3,6 +3,8 @@
* src/ui_utils.c:
Make the clear icon of entry fields act on the release event, not
on the press event like for other buttons.
+ * src/editor.c:
+ Refactor some multiple used code into get_multiline_comment_style().
2009-05-08 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
Modified: trunk/src/editor.c
===================================================================
--- trunk/src/editor.c 2009-05-10 17:44:14 UTC (rev 3775)
+++ trunk/src/editor.c 2009-05-10 17:44:28 UTC (rev 3776)
@@ -2371,6 +2371,37 @@
}
+static gint get_multiline_comment_style(GeanyEditor *editor, gint line_start)
+{
+ gint lexer = SSM(editor->sci, SCI_GETLEXER, 0, 0);
+ gint style_comment;
+
+ /* List only those lexers which support multi line comments */
+ switch (lexer)
+ {
+ case SCLEX_XML:
+ case SCLEX_HTML:
+ {
+ if (is_style_php(sci_get_style_at(editor->sci, line_start)))
+ style_comment = SCE_HPHP_COMMENT;
+ else
+ style_comment = SCE_H_COMMENT;
+ break;
+ }
+ case SCLEX_HASKELL: style_comment = SCE_HA_COMMENTBLOCK; break;
+ case SCLEX_LUA: style_comment = SCE_LUA_COMMENT; break;
+ case SCLEX_CSS: style_comment = SCE_CSS_COMMENT; break;
+ case SCLEX_SQL: style_comment = SCE_SQL_COMMENT; break;
+ case SCLEX_CAML: style_comment = SCE_CAML_COMMENT; break;
+ case SCLEX_D: style_comment = SCE_D_COMMENT; break;
+ case SCLEX_PASCAL: style_comment = SCE_PAS_COMMENT; break;
+ default: style_comment = SCE_C_COMMENT;
+ }
+
+ return style_comment;
+}
+
+
/* set toggle to TRUE if the caller is the toggle function, FALSE otherwise
* returns the amount of uncommented single comment lines, in case of multi line uncomment
* it returns just 1 */
@@ -2472,26 +2503,9 @@
else
{
gint style_comment;
- gint lexer = SSM(editor->sci, SCI_GETLEXER, 0, 0);
- /* process only lines which are already comments */
- switch (lexer)
- { /* I will list only those lexers which support multi line comments */
- case SCLEX_XML:
- case SCLEX_HTML:
- {
- if (is_style_php(sci_get_style_at(editor->sci, line_start)))
- style_comment = SCE_HPHP_COMMENT;
- else style_comment = SCE_H_COMMENT;
- break;
- }
- case SCLEX_CSS: style_comment = SCE_CSS_COMMENT; break;
- case SCLEX_SQL: style_comment = SCE_SQL_COMMENT; break;
- case SCLEX_CAML: style_comment = SCE_CAML_COMMENT; break;
- case SCLEX_D: style_comment = SCE_D_COMMENT; break;
- case SCLEX_PASCAL: style_comment = SCE_PAS_COMMENT; break;
- default: style_comment = SCE_C_COMMENT;
- }
+ /* skip lines which are already comments */
+ style_comment = get_multiline_comment_style(editor, line_start);
if (sci_get_style_at(editor->sci, line_start + x) == style_comment)
{
real_uncomment_multiline(editor);
@@ -2618,28 +2632,9 @@
else
{
gint style_comment;
- gint lexer = SSM(editor->sci, SCI_GETLEXER, 0, 0);
/* skip lines which are already comments */
- switch (lexer)
- { /* I will list only those lexers which support multi line comments */
- case SCLEX_XML:
- case SCLEX_HTML:
- {
- if (is_style_php(sci_get_style_at(editor->sci, line_start)))
- style_comment = SCE_HPHP_COMMENT;
- else style_comment = SCE_H_COMMENT;
- break;
- }
- case SCLEX_CSS: style_comment = SCE_CSS_COMMENT; break;
- case SCLEX_SQL: style_comment = SCE_SQL_COMMENT; break;
- case SCLEX_CAML: style_comment = SCE_CAML_COMMENT; break;
- case SCLEX_D: style_comment = SCE_D_COMMENT; break;
- case SCLEX_RUBY: style_comment = SCE_RB_POD; break;
- case SCLEX_PERL: style_comment = SCE_PL_POD; break;
- case SCLEX_PASCAL: style_comment = SCE_PAS_COMMENT; break;
- default: style_comment = SCE_C_COMMENT;
- }
+ style_comment = get_multiline_comment_style(editor, line_start);
if (sci_get_style_at(editor->sci, line_start + x) == style_comment)
{
real_uncomment_multiline(editor);
@@ -2790,29 +2785,11 @@
else
{
gint style_comment;
- gint lexer = SSM(editor->sci, SCI_GETLEXER, 0, 0);
/* skip lines which are already comments */
- switch (lexer)
- { /* I will list only those lexers which support multi line comments */
- /* FIXME Update the list of filetypes and move this switch into a separate
- * function to avoid duplicate code. */
- case SCLEX_XML:
- case SCLEX_HTML:
- {
- if (is_style_php(sci_get_style_at(editor->sci, line_start)))
- style_comment = SCE_HPHP_COMMENT;
- else style_comment = SCE_H_COMMENT;
- break;
- }
- case SCLEX_CSS: style_comment = SCE_CSS_COMMENT; break;
- case SCLEX_SQL: style_comment = SCE_SQL_COMMENT; break;
- case SCLEX_CAML: style_comment = SCE_CAML_COMMENT; break;
- case SCLEX_D: style_comment = SCE_D_COMMENT; break;
- case SCLEX_PASCAL: style_comment = SCE_PAS_COMMENT; break;
- default: style_comment = SCE_C_COMMENT;
- }
- if (sci_get_style_at(editor->sci, line_start + x) == style_comment) continue;
+ style_comment = get_multiline_comment_style(editor, line_start);
+ if (sci_get_style_at(editor->sci, line_start + x) == style_comment)
+ continue;
real_comment_multiline(editor, line_start, last_line);
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