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'],
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    366,
+/**/
     365,
 /**/
     364,