about summary refs log blame commit diff
path: root/misc/vim/syntax/nix.vim
blob: 1f19ce6382f983a589c8b2f482e664ef69342822 (plain) (tree)


































                                                                                                                     
" Vim syntax file
" Language:	nix
" Maintainer:	Marc Weber <marco-oweber@gmx.de>
"               Modify and commit if you feel that way
" Last Change:	2007 Dec
"
" TODO What about headings (### header ) ?

" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

syn keyword	nixKeyword	let throw inherit import true false null
syn keyword	nixConditional	if else then
syn keyword     nixBrace        ( ) { } =
syn keyword     nixBuiltin         __currentSystem __currentTime __isFunction __getEnv __trace __toPath __pathExists 
  \ __readFile __toXML __toFile __filterSource __attrNames __getAttr __hasAttr __isAttrs __listToAttrs __isList 
  \ __head __tail __add __sub __lessThan __substring __stringLength

syn match nixAttr "\w\+\ze\s*="
syn region nixStringParam start=+\${+ end=+}+
syn region nixMultiLineComment start=+/\*+ skip=+\\"+ end=+\*/+
syn match  nixEndOfLineComment "#.*$"
syn region nixString      start=+"+ skip=+\\"+ end=+"+ contains=nixStringParam

hi def link nixKeyword       Keyword
hi def link nixConditional   Conditional
hi def link nixBrace         Special
hi def link nixString        String
hi def link nixBuiltin       Special
hi def link nixStringParam   Label
hi def link nixMultiLineComment Comment
hi def link nixEndOfLineComment Comment
hi def link nixAttr        Identifier