neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit c23dd7c9eff035d92830bb33eb9644d946a65d92
parent 2494009885b6d8073017ee3c7e16bcc1796c4c99
Author: ObserverOfTime <chronobserver@disroot.org>
Date:   Sun, 12 Nov 2023 01:51:25 +0200

vim-patch:9.0.2098: No filetype support for xcompose files (#25983)

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

closes: vim/vim#13508

https://github.com/vim/vim/commit/4f9074b96cc7efb1c829ca74902a851551dcf4e8
Diffstat:
Aruntime/ftplugin/xcompose.vim | 13+++++++++++++
Mruntime/lua/vim/filetype.lua | 2++
Aruntime/syntax/xcompose.vim | 37+++++++++++++++++++++++++++++++++++++
Mtest/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 @@ -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 @@ -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 @@ -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 @@ -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'],