diff options
-rw-r--r-- | .github/CODEOWNERS | 2 | ||||
-rw-r--r-- | runtime/ftplugin/pymanifest.vim | 13 | ||||
-rw-r--r-- | runtime/syntax/pymanifest.vim | 44 |
3 files changed, 59 insertions, 0 deletions
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 21d57a6c0a..911de1ed07 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -189,6 +189,7 @@ runtime/ftplugin/poefilter.vim @ObserverOfTime 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 diff --git a/runtime/ftplugin/pymanifest.vim b/runtime/ftplugin/pymanifest.vim new file mode 100644 index 0000000000..a77e956ae5 --- /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<' diff --git a/runtime/syntax/pymanifest.vim b/runtime/syntax/pymanifest.vim new file mode 100644 index 0000000000..5f7d22cf2d --- /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 |