Mercurial > vim
changeset 35030:4d5026e1c0e1 v9.1.0366
patch 9.1.0366: filetype: ondir files are not recognized
Commit: https://github.com/vim/vim/commit/ea999037a41292b3d3e00700a87a82fe5d2c12b2
Author: Jon Parise <jon@indelible.org>
Date: Mon Apr 22 21:07:41 2024 +0200
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 <jon@indelible.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Mon, 22 Apr 2024 21:15:09 +0200 |
parents | caa5af293cba |
children | 70d96966e62a |
files | runtime/filetype.vim runtime/ftplugin/ondir.vim runtime/syntax/ondir.vim src/testdir/test_filetype.vim src/version.c |
diffstat | 5 files changed, 59 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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
new file mode 100644 --- /dev/null +++ b/runtime/ftplugin/ondir.vim @@ -0,0 +1,18 @@ +" Vim filetype plugin file +" Language: ondir <https://github.com/alecthomas/ondir> +" Maintainer: Jon Parise <jon@indelible.org> + +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:
new file mode 100644 --- /dev/null +++ b/runtime/syntax/ondir.vim @@ -0,0 +1,35 @@ +" Vim syntax file +" Language: ondir <https://github.com/alecthomas/ondir> +" Maintainer: Jon Parise <jon@indelible.org> + +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:
--- a/src/testdir/test_filetype.vim +++ b/src/testdir/test_filetype.vim @@ -518,6 +518,7 @@ def s:GetFilenameChecks(): dict<list<str 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'],