tv nix.vim: highlight embedded {Haskell,Vim}
This commit is contained in:
parent
f9ebab44e4
commit
94e05ff7c4
@ -132,27 +132,59 @@ let
|
|||||||
setf nix
|
setf nix
|
||||||
set isk=@,48-57,_,192-255,-,'
|
set isk=@,48-57,_,192-255,-,'
|
||||||
|
|
||||||
|
syn match NixCode /./
|
||||||
|
|
||||||
" Ref <nix/src/libexpr/lexer.l>
|
" Ref <nix/src/libexpr/lexer.l>
|
||||||
syn match INT /\<[0-9]\+\>/
|
syn match NixINT /\<[0-9]\+\>/
|
||||||
syn match PATH /[a-zA-Z0-9\.\_\-\+]*\(\/[a-zA-Z0-9\.\_\-\+]\+\)\+/
|
syn match NixPATH /[a-zA-Z0-9\.\_\-\+]*\(\/[a-zA-Z0-9\.\_\-\+]\+\)\+/
|
||||||
syn match HPATH /\~\(\/[a-zA-Z0-9\.\_\-\+]\+\)\+/
|
syn match NixHPATH /\~\(\/[a-zA-Z0-9\.\_\-\+]\+\)\+/
|
||||||
syn match SPATH /<[a-zA-Z0-9\.\_\-\+]\+\(\/[a-zA-Z0-9\.\_\-\+]\+\)*>/
|
syn match NixSPATH /<[a-zA-Z0-9\.\_\-\+]\+\(\/[a-zA-Z0-9\.\_\-\+]\+\)*>/
|
||||||
syn match URI /[a-zA-Z][a-zA-Z0-9\+\-\.]*:[a-zA-Z0-9\%\/\?\:\@\&\=\+\$\,\-\_\.\!\~\*\']\+/
|
syn match NixURI /[a-zA-Z][a-zA-Z0-9\+\-\.]*:[a-zA-Z0-9\%\/\?\:\@\&\=\+\$\,\-\_\.\!\~\*\']\+/
|
||||||
hi link INT Constant
|
|
||||||
hi link PATH Constant
|
|
||||||
hi link HPATH Constant
|
|
||||||
hi link SPATH Constant
|
|
||||||
hi link URI Constant
|
|
||||||
|
|
||||||
syn match String /"\([^\\"]\|\\.\)*"/
|
syn match NixString /"\([^\\"]\|\\.\)*"/
|
||||||
syn match Comment /\(^\|\s\)#.*/
|
syn match NixCommentMatch /\(^\|\s\)#.*/
|
||||||
|
syn region NixCommentRegion start="/\*" end="\*/"
|
||||||
|
|
||||||
" Haskell comments
|
hi NixCode ctermfg=034
|
||||||
syn region Comment start=/\(^\|\s\){-#/ end=/#-}/
|
hi NixData ctermfg=040
|
||||||
syn match Comment /\(^\|\s\)--.*/
|
|
||||||
|
|
||||||
" Vim comments
|
hi link NixComment Comment
|
||||||
syn match Comment /\(^\|\s\)"[^"]*$/
|
hi link NixCommentMatch NixComment
|
||||||
|
hi link NixCommentRegion NixComment
|
||||||
|
hi link NixINT NixData
|
||||||
|
hi link NixPATH NixData
|
||||||
|
hi link NixHPATH NixData
|
||||||
|
hi link NixSPATH NixData
|
||||||
|
hi link NixURI NixData
|
||||||
|
hi link NixString NixData
|
||||||
|
|
||||||
|
hi link NixEnter NixCode
|
||||||
|
hi link NixExit NixData
|
||||||
|
|
||||||
|
syn include @HaskellSyntax syntax/haskell.vim
|
||||||
|
syn region HaskellBlock
|
||||||
|
\ matchgroup=NixExit
|
||||||
|
\ start="/\* haskell \*/ '''"
|
||||||
|
\ skip="''''"
|
||||||
|
\ end="'''"
|
||||||
|
\ contains=@HaskellSyntax
|
||||||
|
unlet b:current_syntax
|
||||||
|
|
||||||
|
syn include @VimSyntax syntax/vim.vim
|
||||||
|
syn region VimBlock
|
||||||
|
\ matchgroup=NixExit
|
||||||
|
\ start="\(/\* vim \*/\|write[-0-9A-Za-z'_]* *\"\(\([^\"]*\.\)\?vimrc\|[^\"]*\.vim\)\"\) *'''"
|
||||||
|
\ skip="''''"
|
||||||
|
\ end="'''"
|
||||||
|
\ contains=@VimSyntax
|
||||||
|
unlet b:current_syntax
|
||||||
|
|
||||||
|
syn region NixBlock
|
||||||
|
\ matchgroup=NixEnter
|
||||||
|
\ start="[$]{"
|
||||||
|
\ end="}"
|
||||||
|
\ contains=ALL
|
||||||
|
\ containedin=HaskellBlock,@HaskellSyntax,VimBlock,@VimSyntax
|
||||||
|
|
||||||
let b:current_syntax = "nix"
|
let b:current_syntax = "nix"
|
||||||
'';
|
'';
|
||||||
|
Loading…
Reference in New Issue
Block a user