From ee457f606bc2d4dfcaac14d893ad27c75abe18d9 Mon Sep 17 00:00:00 2001 From: Mikko Date: Mon, 14 Sep 2026 23:38:54 +0300 Subject: [PATCH] improve vi syntax highlighting (#4222) * simplify string highlighting to reduce likelihood of false positive matches * highlight registers * support more keywords --- runtime/syntax/vi.yaml | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/runtime/syntax/vi.yaml b/runtime/syntax/vi.yaml index 2a828dcd..442b1e4c 100644 --- a/runtime/syntax/vi.yaml +++ b/runtime/syntax/vi.yaml @@ -7,25 +7,21 @@ rules: - identifier: "[A-Za-z_][A-Za-z0-9_]*[(]+[A-Za-z0-9_:.,\\s]*[)]+" - special: "[()]+" - statement: "\\b([nvxsoilc]?(nore|un)?map|[nvlx]n|[ico]?no|[cilovx][um]|s?unm)\\b" - - statement: "\\b(snor|nun|nm|set|if|endif|let|unlet|source)\\b" - - statement: "[!&=?]" + - statement: "\\b(is|isnot|fu(nc?|nction)?|if|while|for|try|return|throw|end(if|for|while|try|fu(nc?|nction)?|f)?|au(g|group)|else(if)?|do|in|catch|finally)\\b" + - statement: "\\b(snor|nun|nm|set(l|local|global)?|let|command|filetype|colorscheme|syn(tax)?|exe(c|cute)?|ec(ho)?|au(tocmd)?|source|call)\\b" + - statement: "[!&=?]|[+<>]=" - constant.number: "\\b[0-9]+\\b" + - identifier: + start: "@" + end: ".|$" + rules: [] + - comment: - start: "(^\"|[ \t]+\" |[ \t]+\"$)" + start: "^[ \t]*\"" end: "$" rules: [] - - constant.string: - start: "\"" - end: "\"" - skip: "\\\\." - rules: - - constant.specialChar: "\\\\." - - - constant.string: - start: "'" - end: "'" - skip: "\\\\." - rules: - - constant.specialChar: "\\\\." + - constant.string: '"[^"]*"' + - constant.string: "'[^']*'" + - constant.specialChar: "\\\\." -- knotmirror 0.0.1