Commit: patch 9.0.2098: No filetype support for xcompose files

4 views
Skip to first unread message

Christian Brabandt

unread,
Nov 11, 2023, 3:15:10 AM11/11/23
to vim...@googlegroups.com
patch 9.0.2098: No filetype support for xcompose files

Commit: https://github.com/vim/vim/commit/4f9074b96cc7efb1c829ca74902a851551dcf4e8
Author: ObserverOfTime <chrono...@disroot.org>
Date: Sat Nov 11 09:12:27 2023 +0100

patch 9.0.2098: No filetype support for xcompose files

Problem: No filetype support for xcompose files
Solution: Add filetype detection

closes: #13508

Signed-off-by: ObserverOfTime <chrono...@disroot.org>
Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index cd648004e..d99c8c710 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 7fb92a271..df7624d41 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 000000000..7345c27a2
--- /dev/null
+++ b/runtime/ftplugin/xcompose.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: XCompose
+" Maintainer: ObserverOfTime <chrono...@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 000000000..3637b9f3b
--- /dev/null
+++ b/runtime/syntax/xcompose.vim
@@ -0,0 +1,37 @@
+" Vim syntax file
+" Language: XCompose
+" Maintainer: ObserverOfTime <chrono...@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 6cfd69fb1..9a0a6dad5 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 0883caee4..a4cc2619d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -704,6 +704,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 2098,
/**/
2097,
/**/
Reply all
Reply to author
Forward
0 new messages