diff options
-rw-r--r-- | runtime/ftplugin/xcompose.vim | 13 | ||||
-rw-r--r-- | runtime/lua/vim/filetype.lua | 2 | ||||
-rw-r--r-- | runtime/syntax/xcompose.vim | 37 | ||||
-rw-r--r-- | test/old/testdir/test_filetype.vim | 1 |
4 files changed, 53 insertions, 0 deletions
diff --git a/runtime/ftplugin/xcompose.vim b/runtime/ftplugin/xcompose.vim new file mode 100644 index 0000000000..7345c27a2e --- /dev/null +++ b/runtime/ftplugin/xcompose.vim @@ -0,0 +1,13 @@ +" Vim filetype plugin file +" Language: XCompose +" Maintainer: ObserverOfTime <chronobserver@disroot.org +" Last Change: 2023 Nov 09 + +if exists('b:did_ftplugin') + finish +endif +let b:did_ftplugin = 1 + +setl comments=:# commentstring=#\ %s + +let b:undo_ftplugin = 'setl com< cms<' diff --git a/runtime/lua/vim/filetype.lua b/runtime/lua/vim/filetype.lua index b418eba294..aae63af132 100644 --- a/runtime/lua/vim/filetype.lua +++ b/runtime/lua/vim/filetype.lua @@ -1521,6 +1521,8 @@ local filename = { wget2rc = 'wget2', ['.wvdialrc'] = 'wvdial', ['wvdial.conf'] = 'wvdial', + ['.XCompose'] = 'xcompose', + ['Compose'] = 'xcompose', ['.Xresources'] = 'xdefaults', ['.Xpdefaults'] = 'xdefaults', ['xdm-config'] = 'xdefaults', diff --git a/runtime/syntax/xcompose.vim b/runtime/syntax/xcompose.vim new file mode 100644 index 0000000000..3637b9f3b6 --- /dev/null +++ b/runtime/syntax/xcompose.vim @@ -0,0 +1,37 @@ +" Vim syntax file +" Language: XCompose +" Maintainer: ObserverOfTime <chronobserver@disroot.org> +" Filenames: .XCompose, Compose +" Last Change: 2023 Nov 09 + +" Comments +syn keyword xcomposeTodo contained TODO FIXME XXX +syn match xcomposeComment /#.*/ contains=xcomposeTodo + +" Includes +syn keyword xcomposeInclude include nextgroup=xcomposeFile skipwhite +syn match xcomposeFile /"\([^"]\|\\"\)\+"/ contained +syn match xcomposeSubstitution /%[HLS]/ contained containedin=xcomposeFile + +" Modifiers +syn keyword xcomposeModifier Ctrl Lock Caps Shift Alt Meta None +syn match xcomposeModifierPrefix /\s*\zs[!~]\ze\s*/ + +" Keysyms +syn match xcomposeKeysym /<[A-Za-z0-9_]\+>/ +syn match xcomposeKeysym /[A-Za-z0-9_]\+/ contained +syn match xcomposeString /"\([^"]\|\\"\)\+"/ contained nextgroup=xcomposeKeysym skipwhite +syn match xcomposeColon /:/ nextgroup=xcomposeKeysym,xcomposeString skipwhite + +hi def link xcomposeColon Delimiter +hi def link xcomposeComment Comment +hi def link xcomposeFile String +hi def link xcomposeInclude Include +hi def link xcomposeKeysym Constant +hi def link xcomposeModifier Function +hi def link xcomposeModifierPrefix Operator +hi def link xcomposeString String +hi def link xcomposeSubstitution Special +hi def link xcomposeTodo Todo + +let b:current_syntax = 'xcompose' diff --git a/test/old/testdir/test_filetype.vim b/test/old/testdir/test_filetype.vim index 8af87115ac..d0361d6a87 100644 --- a/test/old/testdir/test_filetype.vim +++ b/test/old/testdir/test_filetype.vim @@ -721,6 +721,7 @@ func s:GetFilenameChecks() abort \ 'wsh': ['file.wsf', 'file.wsc'], \ 'wsml': ['file.wsml'], \ 'wvdial': ['wvdial.conf', '.wvdialrc'], + \ 'xcompose': ['.XCompose', 'Compose'], \ 'xdefaults': ['.Xdefaults', '.Xpdefaults', '.Xresources', 'xdm-config', 'file.ad', '/Xresources/file', '/app-defaults/file', 'Xresources', 'Xresources-file', 'any/Xresources/file', 'any/app-defaults/file'], \ 'xf86conf': ['xorg.conf', 'xorg.conf-4'], \ 'xhtml': ['file.xhtml', 'file.xht'], |