From 16882b77546ef3b6fd00a1b1efac72c3e6943adc Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Sun, 11 Nov 2018 17:24:04 +0100 Subject: syntax/dome_key.vim: Add more detailed `map` highlighting This only works for `map` definitions, but I'll be using what I've learned here for the other map types. * Only highlight `map` if it's on the start of a line * Only highlight ``, ``, and `` in map triggers * Highlight any special key in map actions --- syntax/dome_key.vim | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'syntax') diff --git a/syntax/dome_key.vim b/syntax/dome_key.vim index 1d2a190..374e364 100644 --- a/syntax/dome_key.vim +++ b/syntax/dome_key.vim @@ -3,11 +3,21 @@ if exists('b:current_syntax') endif syntax region domeKeyComment display start="#" end="$" contains=@Spell -syntax region domeKeySpecialKey display start="<" end=">" contains=domeKeySpecialKeyKeyword +syntax region domeKeySpecialKey display start="<" end=">" contained contains=domeKeySpecialKeyKeyword -syntax keyword domeKeyType map cmd mode +" syntax match domeKeyMapDefinition "map\s+" contains=domeKeyMapDefinitionStart,domeKeyMapDefinitionTrigger,domeKeyMapDefinitionAction +" syntax match domeKeyMapDefinitionStart contained "map" contains=domeKeyType +" syntax region domeKeyMapDefinition start="^" end="$" contains=domeKeyMapDefinitionStart,domeKeyDefinitionTrigger,domeKeyMapDefinitionAction +syntax match domeKeyMapDefinitionStart "^\s*map" contains=domeKeyType nextgroup=domeKeyDefinitionTrigger skipwhite +syntax match domeKeyDefinitionTrigger "\c\(<\(Up\|Play\|Down\)>\)\+" contained contains=domeKeySpecialKey nextgroup=domeKeyMapDefinitionAction skipwhite +" syntax match domeKeyMapDefinitionAction "[^\n]" contained contains=domeKeySpecialKey +syntax match domeKeyMapDefinitionAction ".*$" contained contains=domeKeySpecialKey + +syntax keyword domeKeyType contained containedin=domeKeyMapDefinitionStart map cmd mode syntax case ignore +syntax keyword domeKeyTriggerKeyKeyword contained Up Play Down + syntax keyword domeKeySpecialKeyKeyword contained F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 syntax keyword domeKeySpecialKeyKeyword contained Left Right Down Up syntax keyword domeKeySpecialKeyKeyword contained Home End PageUp PageDown -- cgit v1.2.3