From 6ce3487b6578dcf9c25180802169079866059a9e Mon Sep 17 00:00:00 2001 From: Benno Schulenberg Date: Sat, 2 Oct 2021 16:41:56 +0200 Subject: [PATCH] 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. --- syntax/yaml.nanorc | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/syntax/yaml.nanorc b/syntax/yaml.nanorc index a8b0d9d4..e05830ed 100644 --- 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:]]| +$"