]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.0.2098: No filetype support for xcompose files v9.0.2098
authorObserverOfTime <chronobserver@disroot.org>
Sat, 11 Nov 2023 08:12:27 +0000 (09:12 +0100)
committerChristian Brabandt <cb@256bit.org>
Sat, 11 Nov 2023 08:12:27 +0000 (09:12 +0100)
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>
.github/CODEOWNERS
runtime/filetype.vim
runtime/ftplugin/xcompose.vim [new file with mode: 0644]
runtime/syntax/xcompose.vim [new file with mode: 0644]
src/testdir/test_filetype.vim
src/version.c

index cd648004e3787ef5f768fb847e75125706983119..d99c8c71016203aae27852741a0b85c5ee54b4c1 100644 (file)
@@ -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
index 7fb92a2713ac8fa49d746f0f185d26edb53b6b89..df7624d41a2eabc84a6abded4333c68409c8b231 100644 (file)
@@ -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 (file)
index 0000000..7345c27
--- /dev/null
@@ -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 (file)
index 0000000..3637b9f
--- /dev/null
@@ -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'
index 6cfd69fb13df7add0137655383ac7a8eead94ea9..9a0a6dad522d02954d3ffc549c4c0514f8bce56b 100644 (file)
@@ -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'],
index 0883caee4b465d19b2d6e94d199e75e1703232e0..a4cc2619d69db674b181068f02ab56448545cca0 100644 (file)
@@ -704,6 +704,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    2098,
 /**/
     2097,
 /**/