]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.1.0366: filetype: ondir files are not recognized v9.1.0366
authorJon Parise <jon@indelible.org>
Mon, 22 Apr 2024 19:07:41 +0000 (21:07 +0200)
committerChristian Brabandt <cb@256bit.org>
Mon, 22 Apr 2024 19:07:41 +0000 (21:07 +0200)
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>
runtime/filetype.vim
runtime/ftplugin/ondir.vim [new file with mode: 0644]
runtime/syntax/ondir.vim [new file with mode: 0644]
src/testdir/test_filetype.vim
src/version.c

index 8c7c015ef3f5d7f4d2c9c8d9918a30edad9873b7..9d6b4bd260dcb2d959ea7bf2b09e324926221c3a 100644 (file)
@@ -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 (file)
index 0000000..0854578
--- /dev/null
@@ -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:
diff --git a/runtime/syntax/ondir.vim b/runtime/syntax/ondir.vim
new file mode 100644 (file)
index 0000000..4aeb014
--- /dev/null
@@ -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:
index 1d9954d1e617c97906e89118f4d1da7b8c8e33e0..f8fe9ec5a357031d8c162cc2f41bd93480553cbb 100644 (file)
@@ -518,6 +518,7 @@ def s:GetFilenameChecks(): dict<list<string>>
     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'],
index a863838dbd20538a0974ef69a049c09277c97936..7113699f3a19529400512f0e25353d0114ef5565 100644 (file)
@@ -704,6 +704,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    366,
 /**/
     365,
 /**/