aboutsummaryrefslogtreecommitdiffstats
path: root/syntax
diff options
context:
space:
mode:
authorTeddy Wing2018-11-11 17:24:04 +0100
committerTeddy Wing2018-11-11 17:24:04 +0100
commit16882b77546ef3b6fd00a1b1efac72c3e6943adc (patch)
tree8c488d42632e618a617f63c0460759eef3826d2d /syntax
parentbca03081f53e9e896b8e828b4de5bca8edb3b7d1 (diff)
downloadvim-dome-key-16882b77546ef3b6fd00a1b1efac72c3e6943adc.tar.bz2
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 `<Up>`, `<Play>`, and `<Down>` in map triggers * Highlight any special key in map actions
Diffstat (limited to 'syntax')
-rw-r--r--syntax/dome_key.vim14
1 files changed, 12 insertions, 2 deletions
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