vim: improve *.nix plugin (#4662)
- Sync syntax from source. - Add indentation conventions.
This commit is contained in:
parent
4fe383de48
commit
6d6695ec14
@ -23,39 +23,42 @@ new file mode 100644
|
|||||||
index 0000000..a2f9918
|
index 0000000..a2f9918
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/runtime/syntax/nix.vim
|
+++ b/runtime/syntax/nix.vim
|
||||||
@@ -0,0 +1,47 @@
|
@@ -0,0 +1,56 @@
|
||||||
+" Vim syntax file
|
+" Vim syntax file
|
||||||
+" Language: nix
|
+" Language: nix
|
||||||
+" Maintainer: Marc Weber <marco-oweber@gmx.de>
|
+" Maintainer: Marc Weber <marco-oweber@gmx.de>
|
||||||
+" Modify and commit if you feel that way
|
+" Modify and commit if you feel that way
|
||||||
+" Last Change: 2007 Dec
|
+" Last Change: 2011 Jun
|
||||||
+"
|
+"
|
||||||
+" this syntax file can be still be enhanced very much..
|
+" this syntax file can be still be enhanced very much..
|
||||||
+" Don't ask, do it :-)
|
+" Don't ask, do it :-)
|
||||||
|
+" This file (github.com/MarcWeber/vim-addon-nix) is periodically synced with
|
||||||
|
+" the patch found in vim_configurable (nixpkgs)
|
||||||
+
|
+
|
||||||
+" Quit when a (custom) syntax file was already loaded
|
+" Quit when a (custom) syntax file was already loaded
|
||||||
+if exists("b:current_syntax")
|
+if exists("b:current_syntax")
|
||||||
+ finish
|
+ finish
|
||||||
+endif
|
+endif
|
||||||
+
|
+
|
||||||
+syn keyword nixKeyword let in rec assert inherit import true false null with ...
|
+
|
||||||
+syn keyword nixBuiltin import abort baseNameOf dirOf isNull builtins map removeAttrs throw toString derivation
|
+sy cluster nixStrings contains=nixStringParam,nixStringIndented
|
||||||
|
+
|
||||||
|
+syn keyword nixKeyword let throw inherit import true false null with
|
||||||
+syn keyword nixConditional if else then
|
+syn keyword nixConditional if else then
|
||||||
+syn keyword nixBrace ( ) { } =
|
+syn keyword nixBrace ( ) { } =
|
||||||
+syn keyword nixBuiltin __currentSystem __currentTime __isFunction __getEnv __trace __toPath __pathExists
|
+syn keyword nixBuiltin __currentSystem __currentTime __isFunction __getEnv __trace __toPath __pathExists
|
||||||
+ \ __readFile __toXML __toFile __filterSource __attrNames __getAttr __hasAttr __isAttrs __listToAttrs __isList
|
+ \ __readFile __toXML __toFile __filterSource __attrNames __getAttr __hasAttr __isAttrs __listToAttrs __isList
|
||||||
+ \ __head __tail __add __sub __lessThan __substring __stringLength
|
+ \ __head __tail __add __sub __lessThan __substring __stringLength
|
||||||
+
|
+
|
||||||
+syn match nixAttr "[a-zA-Z0-9-_]\+\ze\s*="
|
+syn region nixStringIndented start=+''+ skip=+'''\|''${\|"+ end=+''+ contains=nixStringParam
|
||||||
+syn match nixFuncArg "\zs[a-zA-Z0-9-_]\+\ze\s*:"
|
+" syn region nixString start=+"+ skip=+\\"+ end=+"+
|
||||||
+syn region nixStringParam start=+\${+ end=+}+
|
+syn match nixAttr "\w\+\ze\s*="
|
||||||
|
+syn match nixFuncArg "\zs\w\+\ze\s*:"
|
||||||
|
+syn region nixStringParam start=+\${+ end=+}+ contains=@nixStrings
|
||||||
+syn region nixMultiLineComment start=+/\*+ skip=+\\"+ end=+\*/+
|
+syn region nixMultiLineComment start=+/\*+ skip=+\\"+ end=+\*/+
|
||||||
+syn match nixEndOfLineComment "#.*$"
|
+syn match nixEndOfLineComment "#.*$"
|
||||||
+syn region nixStringIndented start=+''+ skip=+'''\|''${\|"+ end=+''+ contains=nixStringParam
|
|
||||||
+syn region nixString start=+"+ skip=+\\"+ end=+"+ contains=nixStringParam
|
|
||||||
+
|
+
|
||||||
+hi def link nixKeyword Keyword
|
+hi def link nixKeyword Keyword
|
||||||
+hi def link nixBuiltin Function
|
|
||||||
+hi def link nixConditional Conditional
|
+hi def link nixConditional Conditional
|
||||||
+hi def link nixBrace Special
|
+hi def link nixBrace Special
|
||||||
+hi def link nixString String
|
+hi def link nixString String
|
||||||
@ -67,9 +70,20 @@ index 0000000..a2f9918
|
|||||||
+hi def link nixAttr Identifier
|
+hi def link nixAttr Identifier
|
||||||
+hi def link nixFuncArg Identifier
|
+hi def link nixFuncArg Identifier
|
||||||
+
|
+
|
||||||
|
+syn sync maxlines=20000
|
||||||
|
+syn sync minlines=50000
|
||||||
|
+
|
||||||
+let b:current_syntax = "nix"
|
+let b:current_syntax = "nix"
|
||||||
+
|
+
|
||||||
|
+" thanks to iElectric
|
||||||
+" scan backwards to find begining of multiline statements
|
+" scan backwards to find begining of multiline statements
|
||||||
+syn sync ccomment nixMultiLineComment minlines=10 maxlines=500
|
+syn sync ccomment nixMultiLineComment minlines=10 maxlines=500
|
||||||
+syn sync ccomment nixStringIndented minlines=10 maxlines=500
|
+syn sync ccomment nixStringIndented minlines=10 maxlines=500
|
||||||
+syn sync ccomment nixString maxlines=10
|
+syn sync ccomment nixString maxlines=10
|
||||||
|
diff --git a/runtime/ftplugin/nix.vim b/runtime/ftplugin/nix.vim
|
||||||
|
new file mode 100644
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/runtime/ftplugin/nix.vim
|
||||||
|
@@ -0,0 +1,2 @@
|
||||||
|
+" coding conventions
|
||||||
|
+setlocal sw=2 ts=2 expandtab
|
||||||
|
Loading…
x
Reference in New Issue
Block a user