diff options
author | ObserverOfTime <chronobserver@disroot.org> | 2023-11-11 09:12:27 +0100 |
---|---|---|
committer | Christian Brabandt <cb@256bit.org> | 2023-11-11 09:12:27 +0100 |
commit | 4f9074b96cc7efb1c829ca74902a851551dcf4e8 (patch) | |
tree | df38ccfdca9b0a7b855e8c65a1807e0bd72efc65 | |
parent | bee966d3fe96f20656183d260dd03f6abb11ad79 (diff) |
patch 9.0.2098: No filetype support for xcompose filesv9.0.2098
Problem: No filetype support for xcompose files
Solution: Add filetype detection
closes: #13508
Signed-off-by: ObserverOfTime <chronobserver@disroot.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
-rw-r--r-- | .github/CODEOWNERS | 2 | ||||
-rw-r--r-- | runtime/filetype.vim | 3 | ||||
-rw-r--r-- | runtime/ftplugin/xcompose.vim | 13 | ||||
-rw-r--r-- | runtime/syntax/xcompose.vim | 37 | ||||
-rw-r--r-- | src/testdir/test_filetype.vim | 1 | ||||
-rw-r--r-- | src/version.c | 2 |
6 files changed, 58 insertions, 0 deletions
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index cd648004e3..d99c8c7101 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -237,6 +237,7 @@ runtime/ftplugin/vdf.vim @ObserverOfTime runtime/ftplugin/wast.vim @rhysd runtime/ftplugin/wget.vim @dkearns runtime/ftplugin/wget2.vim @dkearns +runtime/ftplugin/xcompose.vim @ObserverOfTime runtime/ftplugin/xml.vim @chrisbra runtime/ftplugin/xs.vim @petdance runtime/ftplugin/zsh.vim @chrisbra @@ -525,6 +526,7 @@ runtime/syntax/wdl.vim @zenmatic runtime/syntax/wget.vim @dkearns runtime/syntax/wget2.vim @dkearns runtime/syntax/xbl.vim @dkearns +runtime/syntax/xcompose.vim @ObserverOfTime runtime/syntax/xmath.vim @cecamp runtime/syntax/xml.vim @chrisbra runtime/syntax/xs.vim @petdance diff --git a/runtime/filetype.vim b/runtime/filetype.vim index 7fb92a2713..df7624d41a 100644 --- a/runtime/filetype.vim +++ b/runtime/filetype.vim @@ -2537,6 +2537,9 @@ au BufNewFile,BufRead */etc/xinetd.conf setf xinetd " XS Perl extension interface language au BufNewFile,BufRead *.xs setf xs +" X compose file +au BufNewFile,BufRead .XCompose,Compose setf xcompose + " X resources file au BufNewFile,BufRead .Xdefaults,.Xpdefaults,.Xresources,xdm-config,*.ad setf xdefaults 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/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/src/testdir/test_filetype.vim b/src/testdir/test_filetype.vim index 6cfd69fb13..9a0a6dad52 100644 --- a/src/testdir/test_filetype.vim +++ b/src/testdir/test_filetype.vim @@ -799,6 +799,7 @@ def s:GetFilenameChecks(): dict<list<string>> 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'], diff --git a/src/version.c b/src/version.c index 0883caee4b..a4cc2619d6 100644 --- a/src/version.c +++ b/src/version.c @@ -705,6 +705,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2098, +/**/ 2097, /**/ 2096, |