From 0134940f23eaf2eb4a0c9f0f88e3c1c8a0eed8ba Mon Sep 17 00:00:00 2001 From: Adam Stankiewicz Date: Thu, 23 Mar 2017 12:48:17 +0100 Subject: [PATCH] Add sxhkd support, closes #186 --- README.md | 1 + build | 1 + ftdetect/polyglot.vim | 11 +++++++++++ syntax/sxhkdrc.vim | 30 ++++++++++++++++++++++++++++++ 4 files changed, 43 insertions(+) create mode 100644 syntax/sxhkdrc.vim diff --git a/README.md b/README.md index e728c5d..c02f240 100644 --- a/README.md +++ b/README.md @@ -117,6 +117,7 @@ If you need full functionality of any plugin, please use it directly with your p - [solidity](https://github.com/ethereum/vim-solidity) (syntax, indent, ftdetect) - [stylus](https://github.com/wavded/vim-stylus) (syntax, indent, ftplugin, ftdetect) - [swift](https://github.com/keith/swift.vim) (syntax, indent, ftplugin, ftdetect) +- [sxhkd](https://github.com/baskerville/vim-sxhkdrc) (syntax, ftdetect) - [systemd](https://github.com/kurayama/systemd-vim-syntax) (syntax, ftdetect) - [terraform](https://github.com/hashivim/vim-terraform) (syntax, indent, ftdetect, ftplugin) - [textile](https://github.com/timcharper/textile.vim) (syntax, ftplugin, ftdetect) diff --git a/build b/build index e89a4b5..78e4b93 100755 --- a/build +++ b/build @@ -183,6 +183,7 @@ PACKS=" solidity:ethereum/vim-solidity stylus:wavded/vim-stylus swift:keith/swift.vim + sxhkd:baskerville/vim-sxhkdrc systemd:kurayama/systemd-vim-syntax terraform:hashivim/vim-terraform textile:timcharper/textile.vim diff --git a/ftdetect/polyglot.vim b/ftdetect/polyglot.vim index a80ec60..4ea31c5 100644 --- a/ftdetect/polyglot.vim +++ b/ftdetect/polyglot.vim @@ -937,6 +937,17 @@ endfunction endif +" ftdetect/sxhkdrc.vim +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'sxhkd') == -1 + +if &compatible || v:version < 603 + finish +endif + +autocmd BufNewFile,BufRead sxhkdrc,*.sxhkdrc set ft=sxhkdrc + +endif + " ftdetect/systemd.vim if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'systemd') == -1 diff --git a/syntax/sxhkdrc.vim b/syntax/sxhkdrc.vim new file mode 100644 index 0000000..bb8ee95 --- /dev/null +++ b/syntax/sxhkdrc.vim @@ -0,0 +1,30 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'sxhkd') == -1 + +if exists("b:current_syntax") + finish +endif + +syntax include @Shell syntax/sh.vim + +syn match sxComment "^#.*$" +syn match sxHotkey "[^ #].*" contains=sxKeysym,sxModifier,sxHotkeySep,sxSequence +syn match sxCommand "^\s.*$" containedin=ALL contains=@Shell,sxSequenceShell +syn keyword sxModifier super hyper meta alt control ctrl shift mode_switch lock mod1 mod2 mod3 mod4 mod5 any contained +syn match sxKeysym "[^ :;{,}+-]\+" contained contains=sxAction +syn match sxAction "[@~/]" contained +syn match sxHotkeySep "[;:+]" contained +syn match sxSequenceSep "[,-]" contained +syn region sxSequence matchgroup=sxBrace start=/{/ end=/}/ contained keepend oneline contains=sxKeysym,sxModifier,sxHotkeySep,sxSequenceSep +syn region sxSequenceShell matchgroup=sxBrace start=/{/ end=/}/ contained keepend oneline contains=sxKeysym,sxSequenceSep + +hi def link sxComment Comment +hi def link sxModifier Keyword +hi def link sxKeysym Identifier +hi def link sxAction Special +hi def link sxBrace Special +hi def link sxHotkeySep Delimiter +hi def link sxSequenceSep Delimiter + +let b:current_syntax = "sxhkdrc" + +endif