[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemacs-commit] qemacs extra-modes.c
From: |
Charlie Gordon |
Subject: |
[Qemacs-commit] qemacs extra-modes.c |
Date: |
Tue, 01 Sep 2015 10:14:31 +0000 |
CVSROOT: /sources/qemacs
Module name: qemacs
Changes by: Charlie Gordon <chqrlie> 15/09/01 10:14:30
Modified files:
. : extra-modes.c
Log message:
haskell: colorize compiler directives
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/qemacs/extra-modes.c?cvsroot=qemacs&r1=1.48&r2=1.49
Patches:
Index: extra-modes.c
===================================================================
RCS file: /sources/qemacs/qemacs/extra-modes.c,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -b -r1.48 -r1.49
--- extra-modes.c 27 Aug 2015 23:03:40 -0000 1.48
+++ extra-modes.c 1 Sep 2015 10:14:30 -0000 1.49
@@ -2000,14 +2000,9 @@
};
enum {
- IN_HASKELL_COMMENT = 0x0F,
- IN_HASKELL_COMMENT_SHIFT = 0,
- IN_HASKELL_STRING = 0x10,
-};
-
-enum {
HASKELL_STYLE_TEXT = QE_STYLE_DEFAULT,
HASKELL_STYLE_COMMENT = QE_STYLE_COMMENT,
+ HASKELL_STYLE_PP_COMMENT = QE_STYLE_PREPROCESS,
HASKELL_STYLE_STRING = QE_STYLE_STRING,
HASKELL_STYLE_NUMBER = QE_STYLE_NUMBER,
HASKELL_STYLE_KEYWORD = QE_STYLE_KEYWORD,
@@ -2016,6 +2011,13 @@
HASKELL_STYLE_SYMBOL = QE_STYLE_NUMBER,
};
+enum {
+ IN_HASKELL_COMMENT = 0x0F,
+ IN_HASKELL_COMMENT_SHIFT = 0,
+ IN_HASKELL_PP_COMMENT = 0x10, /* compiler directives {-# ... #-} */
+ IN_HASKELL_STRING = 0x20,
+};
+
static inline int haskell_is_symbol(int c)
{
return qe_findchar("!#$%&+./<=>address@hidden|-~:", c);
@@ -2057,8 +2059,15 @@
if (str[i] == '-') {
state |= 1 << IN_HASKELL_COMMENT_SHIFT;
i++;
+ if (str[i] == '#') {
+ state |= IN_HASKELL_PP_COMMENT;
+ i++;
+ }
parse_comment:
level = (state & IN_HASKELL_COMMENT) >>
IN_HASKELL_COMMENT_SHIFT;
+ style = HASKELL_STYLE_COMMENT;
+ if (state & IN_HASKELL_PP_COMMENT)
+ style = HASKELL_STYLE_PP_COMMENT;
while (i < n) {
c = str[i++];
if (c == '{' && str[i] == '-') {
@@ -2070,6 +2079,7 @@
i++;
level--;
if (level == 0) {
+ state &= ~IN_HASKELL_PP_COMMENT;
i++;
break;
}
@@ -2077,7 +2087,6 @@
}
state &= ~IN_HASKELL_COMMENT;
state |= level << IN_HASKELL_COMMENT_SHIFT;
- style = HASKELL_STYLE_COMMENT;
break;
}
/* FALL THRU */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemacs-commit] qemacs extra-modes.c,
Charlie Gordon <=