[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Nano-devel] [PATCH V2] syntax: c: change the highlighting of preprocess
From: |
Benno Schulenberg |
Subject: |
[Nano-devel] [PATCH V2] syntax: c: change the highlighting of preprocessor directives |
Date: |
Tue, 2 Apr 2019 14:46:15 +0200 |
From: Liu Hao <address@hidden>
V2: The start-of-buffer anchor \` was included into one of the regexes, to
prevent color spilling mistakenly onto a subsequent line.
[Sixteen months ago we left things hanging there, because I was unsure of the
portability of \`. [1] But since then we have retired fixbounds() and no one
has complained (yet), and from looking at the output of 'objdump -t src/nano |
grep rpl_' on the various BSDs, they all appear to use the regex module from
gnulib anyway, so \< and \> and \` will be available, so we can use these.]
[1] http://lists.gnu.org/archive/html/nano-devel/2017-12/msg00084.html
Some of these directives are now colored in their entirety, while for
a few others it's still just the keyword itself that is colored.
Signed-off-by: Liu Hao <address@hidden>
Signed-off-by: Benno Schulenberg <address@hidden>
---
syntax/c.nanorc | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/syntax/c.nanorc b/syntax/c.nanorc
index 85d8608f..bc1361e0 100644
--- a/syntax/c.nanorc
+++ b/syntax/c.nanorc
@@ -15,7 +15,6 @@ color green
"\<(class|namespace|template|public|protected|private|typename|this|
color brightyellow "\<(for|if|while|do|else|case|default|switch)\>"
color brightyellow "\<(try|throw|catch|operator|new|delete)\>"
color magenta "\<(goto|continue|break|return)\>"
-color brightcyan
"^[[:space:]]*#[[:space:]]*(define|include(_next)?|(un|ifn?)def|endif|el(if|se)|if|warning|error|pragma)"
color brightmagenta "'([^'\]|(\\["'abfnrtv\\]))'" "'\\(([0-3]?[0-7]{1,2}))'"
"'\\x[0-9A-Fa-f]{1,2}'"
# GCC builtins.
@@ -23,11 +22,15 @@ color cyan "__attribute__[[:space:]]*\(\([^)]*\)\)"
"__(aligned|asm|builtin|hidd
# Strings. In general you will want your strings and comments to come last,
# because highlighting rules are applied in the order they are read in.
-color brightyellow ""([^"]|\\")*"" "<[^[:blank:]=]*>"
+color brightyellow ""([^"]|\\")*""
"#[[:space:]]*include[[:space:]]+<[^[:blank:]=]*>"
# Multiline strings. This regex is VERY resource intensive,
# and sometimes colours things that shouldn't be coloured.
###color brightyellow start=""(\\.|[^"])*\\[[:space:]]*$" end="^(\\.|[^"])*""
+# Preprocessor directives.
+color brightcyan
start="^[[:space:]]*#[[:space:]]*(if(n?def)?|elif|warning|error|pragma)\>"
end="(\`|[^\\])$"
+color brightcyan
"^[[:space:]]*#[[:space:]]*(define|else|endif|include(_next)?|undef)\>"
+
# Comments.
color brightblue "//.*"
color brightblue start="/\*" end="\*/"
--
2.20.1
- [Nano-devel] [PATCH V2] syntax: c: change the highlighting of preprocessor directives,
Benno Schulenberg <=