changeset 32767:c79fc3d7410c

Add syntax & ftplugin for pymanifest (#12773) Commit: https://github.com/vim/vim/commit/2f339aad6c80e82d7c1237b402392065857174d4 Author: ObserverOfTime <chronobserver@disroot.org> Date: Sun Aug 13 11:26:20 2023 +0300 Add syntax & ftplugin for pymanifest (https://github.com/vim/vim/issues/12773)
author Christian Brabandt <cb@256bit.org>
date Sun, 13 Aug 2023 10:30:09 +0200
parents c42a15deee64
children ad7365d54a0e
files .github/CODEOWNERS runtime/ftplugin/pymanifest.vim runtime/syntax/pymanifest.vim
diffstat 3 files changed, 59 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -189,6 +189,7 @@ runtime/ftplugin/poefilter.vim		@Observe
 runtime/ftplugin/postscr.vim		@mrdubya
 runtime/ftplugin/ps1.vim		@heaths
 runtime/ftplugin/ps1xml.vim		@heaths
+runtime/ftplugin/pymanifest.vim		@ObserverOfTime
 runtime/ftplugin/python.vim		@tpict
 runtime/ftplugin/qb64.vim		@dkearns
 runtime/ftplugin/r.vim			@jalvesaq
@@ -439,6 +440,7 @@ runtime/syntax/prolog.vim		@XVilka
 runtime/syntax/ps1.vim			@heaths
 runtime/syntax/ps1xml.vim		@heaths
 runtime/syntax/psl.vim			@danielkho
+runtime/syntax/pymanifest.vim		@ObserverOfTime
 runtime/syntax/qb64.vim			@dkearns
 runtime/syntax/r.vim			@jalvesaq
 runtime/syntax/racket.vim		@benknoble
new file mode 100644
--- /dev/null
+++ b/runtime/ftplugin/pymanifest.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin
+" Language:	PyPA manifest
+" Maintainer:	ObserverOfTime <chronobserver@disroot.org>
+" Last Change:	2023 Aug 08
+
+if exists('b:did_ftplugin')
+  finish
+endif
+let b:did_ftplugin = 1
+
+setl comments=:# commentstring=#\ %s
+
+let b:undo_ftplugin = 'setl com< cms<'
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/pymanifest.vim
@@ -0,0 +1,44 @@
+" Vim syntax file
+" Language:	PyPA manifest
+" Maintainer:	ObserverOfTime <chronobserver@disroot.org>
+" Filenames:	MANIFEST.in
+" Last Change:	2023 Aug 12
+
+if exists('b:current_syntax')
+    finish
+endif
+
+let s:cpo_save = &cpoptions
+set cpoptions&vim
+
+syn iskeyword @,-
+
+" Comments
+syn keyword pymanifestTodo contained TODO FIXME XXX
+syn match pymanifestComment /\\\@1<!#.*/ contains=pymanifestTodo
+
+" Commands
+syn keyword pymanifestCommand
+            \ include exclude
+            \ recursive-include global-include
+            \ global-include global-exclude
+            \ graft prune
+
+" Globs & character ranges
+syn match pymanifestGlob /\*\|\*\*\|?/
+syn match pymanifestRange /\\\@1<!\[.\{-}\]/
+
+" Line break
+syn match pymanifestLinebreak /\\$\|\\\ze\s\+#/
+
+hi def link pymanifestCommand Keyword
+hi def link pymanifestComment Comment
+hi def link pymanifestGlob SpecialChar
+hi def link pymanifestLinebreak SpecialKey
+hi def link pymanifestRange Special
+hi def link pymanifestTodo Todo
+
+let b:current_syntax = 'pymanifest'
+
+let &cpoptions = s:cpo_save
+unlet s:cpo_save