From ea999037a41292b3d3e00700a87a82fe5d2c12b2 Mon Sep 17 00:00:00 2001 From: Jon Parise Date: Mon, 22 Apr 2024 21:07:41 +0200 Subject: patch 9.1.0366: filetype: ondir files are not recognized Problem: filetype: ondir files are not recognized Solution: Detect '.ondirrc' as ondir filetype (Jon Parise) closes: #14604 Signed-off-by: Jon Parise Signed-off-by: Christian Brabandt --- runtime/filetype.vim | 3 +++ runtime/ftplugin/ondir.vim | 18 ++++++++++++++++++ runtime/syntax/ondir.vim | 35 +++++++++++++++++++++++++++++++++++ src/testdir/test_filetype.vim | 1 + src/version.c | 2 ++ 5 files changed, 59 insertions(+) create mode 100644 runtime/ftplugin/ondir.vim create mode 100644 runtime/syntax/ondir.vim diff --git a/runtime/filetype.vim b/runtime/filetype.vim index 8c7c015ef3..9d6b4bd260 100644 --- a/runtime/filetype.vim +++ b/runtime/filetype.vim @@ -1593,6 +1593,9 @@ au BufNewFile,BufRead *.odin setf odin " Omnimark au BufNewFile,BufRead *.xom,*.xin setf omnimark +" ondir +au BufNewFile,BufRead .ondirrc setf ondir + " OPAM au BufNewFile,BufRead opam,*.opam,*.opam.template setf opam diff --git a/runtime/ftplugin/ondir.vim b/runtime/ftplugin/ondir.vim new file mode 100644 index 0000000000..0854578c91 --- /dev/null +++ b/runtime/ftplugin/ondir.vim @@ -0,0 +1,18 @@ +" Vim filetype plugin file +" Language: ondir +" Maintainer: Jon Parise + +if exists('b:did_ftplugin') + finish +endif + +let s:cpo_save = &cpoptions + +setlocal comments=:# commentstring=#\ %s + +let b:undo_ftplugin = 'setl comments< commentstring<' + +let &cpoptions = s:cpo_save +unlet s:cpo_save + +" vim: et ts=4 sw=2 sts=2: diff --git a/runtime/syntax/ondir.vim b/runtime/syntax/ondir.vim new file mode 100644 index 0000000000..4aeb014e1b --- /dev/null +++ b/runtime/syntax/ondir.vim @@ -0,0 +1,35 @@ +" Vim syntax file +" Language: ondir +" Maintainer: Jon Parise + +if exists('b:current_syntax') + finish +endif + +let s:cpo_save = &cpoptions +set cpoptions&vim + +syn case match + +syn match ondirComment "#.*" contains=@Spell +syn keyword ondirKeyword final contained skipwhite nextgroup=ondirKeyword +syn keyword ondirKeyword enter leave contained skipwhite nextgroup=ondirPath +syn match ondirPath "[^:]\+" contained display +syn match ondirColon ":" contained display + +syn include @ondirShell syntax/sh.vim +syn region ondirContent start="^\s\+" end="^\ze\S.*$" keepend contained contains=@ondirShell + +syn region ondirSection start="^\(final\|enter\|leave\)" end="^\ze\S.*$" fold contains=ondirKeyword,ondirPath,ondirColon,ondirContent + +hi def link ondirComment Comment +hi def link ondirKeyword Keyword +hi def link ondirPath Special +hi def link ondirColon Operator + +let b:current_syntax = 'ondir' + +let &cpoptions = s:cpo_save +unlet s:cpo_save + +" vim: et ts=4 sw=2 sts=2: diff --git a/src/testdir/test_filetype.vim b/src/testdir/test_filetype.vim index 1d9954d1e6..f8fe9ec5a3 100644 --- a/src/testdir/test_filetype.vim +++ b/src/testdir/test_filetype.vim @@ -518,6 +518,7 @@ def s:GetFilenameChecks(): dict> octave: ['octaverc', '.octaverc', 'octave.conf', 'any/.local/share/octave/history'], odin: ['file.odin'], omnimark: ['file.xom', 'file.xin'], + ondir: ['.ondirrc'], opam: ['opam', 'file.opam', 'file.opam.template'], openroad: ['file.or'], openscad: ['file.scad'], diff --git a/src/version.c b/src/version.c index a863838dbd..7113699f3a 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 */ +/**/ + 366, /**/ 365, /**/ -- cgit v1.2.3