commit 6ce3487b6578dcf9c25180802169079866059a9e
parent bc7e7d847e565adf2b7daff946826a1ac1c36d52
Author: Benno Schulenberg <bensberg@telfort.nl>
Date: Sat, 2 Oct 2021 16:41:56 +0200
syntax: yaml: colorize backslash-escaped characters as valid or invalid
See https://yaml.org/spec/1.2.2/#57-escaped-characters.
Also prevent an escaped double quote from breaking the coloring of
a string, and allow hyphens in an anchor.
Diffstat:
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/syntax/yaml.nanorc b/syntax/yaml.nanorc
@@ -16,13 +16,13 @@ color lightgreen "\[(\w|::|[, -])+\]:( |$)"
# Values (booleans, numbers, octal/hex, dates, strings):
color lightmagenta "[:,] +(Y(es)?|No?|y(es)?|no?|[Tt]rue|[Ff]alse|[Oo](n|ff))( *[]}]|, | +#|$)"
color lightmagenta "[:,] +[+-]?[0-9]+(\.([0-9]+)?)?( *[]}]|, | +#|$)"
-color lightmagenta " 0(o[0-7]+|x[0-9ABCDEFabcdef]+)( *[]}]|, | +#|$)"
+color lightmagenta " 0(o[0-7]+|x[[:xdigit:]]+)( *[]}]|, | +#|$)"
color normal "[:,]( |$)"
color lightmagenta " [12][0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])"
-color lightmagenta "("[^"]+"|'[^']+')"
+color lightmagenta "("([^"]|\\")+"|'[^']+')"
# Anchors and references:
-color pink " [&*]\w+( |$)"
+color pink " [&*](\w|-)+( |$)"
# Symbols:
color bold,lagoon "^(---|\.\.\.)( |$)" " [|>]([1-9]?[+-]|[+-][1-9]?)?$"
@@ -32,6 +32,11 @@ color yellow "(^ *- |[]{}[])"
color mint " !!(binary|bool|float|int|map|null|omap|seq|set|str)( |$)"
color mint " !(\w|-)+( |$)"
+# Escaped characters (first color all as bad, then recolor the good ones):
+color lightwhite,red "\\."
+color orange "\\([0abefnrtv"/ \_NLP]|$)"
+color orange "\\(x[[:xdigit:]]{2}|u[[:xdigit:]]{4}|U[[:xdigit:]]{8})"
+
# Mistakes (control codes, trailing space):
color ,red "[[:cntrl:]]| +$"