summaryrefslogtreecommitdiff
path: root/mnv/runtime/syntax/gitignore.mnv
diff options
context:
space:
mode:
Diffstat (limited to 'mnv/runtime/syntax/gitignore.mnv')
-rw-r--r--mnv/runtime/syntax/gitignore.mnv29
1 files changed, 29 insertions, 0 deletions
diff --git a/mnv/runtime/syntax/gitignore.mnv b/mnv/runtime/syntax/gitignore.mnv
new file mode 100644
index 0000000000..7559ee0cc4
--- /dev/null
+++ b/mnv/runtime/syntax/gitignore.mnv
@@ -0,0 +1,29 @@
+" MNV syntax file
+" Language: git ignore
+" Maintainer: ObserverOfTime <chronobserver@disroot.org>
+" Filenames: .gitignore, *.git/info/exclude
+" Last Change: 2022 Sep 10
+
+if exists('b:current_syntax')
+ finish
+endif
+
+" Comment
+syn keyword gitignoreTodo contained TODO FIXME XXX
+syn match gitignoreComment /^#.*/ contains=gitignoreTodo
+
+" Pattern
+syn match gitignorePattern /^#\@!.*$/ contains=gitignoreNegation,gitignoreGlob,gitignoreRange,gitignoreSeparator
+syn match gitignoreNegation /^!/ contained
+syn match gitignoreGlob /\\\@1<![?*]/ contained
+syn match gitignoreRange /\\\@1<!\[.\{-}\]/ contained
+syn match gitignoreSeparator '/' contained
+
+hi def link gitignoreComment Comment
+hi def link gitignoreGlob Special
+hi def link gitignoreNegation SpecialChar
+hi def link gitignoreRange Special
+hi def link gitignoreSeparator Delimiter
+hi def link gitignoreTodo Todo
+
+let b:current_syntax = 'gitignore'