diff options
Diffstat (limited to '')
| -rw-r--r-- | syntax/fish.vim | 41 | ||||
| -rw-r--r-- | syntax/fsharp.vim | 269 | ||||
| -rw-r--r-- | syntax/git.vim | 82 | ||||
| -rw-r--r-- | syntax/gitcommit.vim | 88 | ||||
| -rw-r--r-- | syntax/gitconfig.vim | 42 | ||||
| -rw-r--r-- | syntax/gitrebase.vim | 44 | ||||
| -rw-r--r-- | syntax/gitsendemail.vim | 27 | ||||
| -rw-r--r-- | syntax/glsl.vim | 679 | ||||
| -rw-r--r-- | syntax/gmpl.vim | 122 | ||||
| -rw-r--r-- | syntax/latextoc.vim | 13 | ||||
| -rw-r--r-- | syntax/slime.vim | 106 | 
11 files changed, 1500 insertions, 13 deletions
| diff --git a/syntax/fish.vim b/syntax/fish.vim new file mode 100644 index 00000000..f198dbaa --- /dev/null +++ b/syntax/fish.vim @@ -0,0 +1,41 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'fish') == -1 +   +if exists('b:current_syntax') +    finish +endif + +syntax case match + +syntax keyword fishKeyword begin function end +syntax keyword fishConditional if else switch +syntax keyword fishRepeat while for in +syntax keyword fishLabel case + +syntax match fishComment /#.*/ +syntax match fishSpecial /\\$/ +syntax match fishIdentifier /\$[[:alnum:]_]\+/ +syntax region fishString start=/'/ skip=/\\'/ end=/'/ +syntax region fishString start=/"/ skip=/\\"/ end=/"/ contains=fishIdentifier +syntax match fishCharacter /\v\\[abefnrtv *?~%#(){}\[\]<>&;"']|\\[xX][0-9a-f]{1,2}|\\o[0-7]{1,2}|\\u[0-9a-f]{1,4}|\\U[0-9a-f]{1,8}|\\c[a-z]/ +syntax match fishStatement /\v;\s*\zs\k+>/ +syntax match fishCommandSub /\v\(\s*\zs\k+>/ + +syntax region fishLineContinuation matchgroup=fishStatement +            \ start='\v^\s*\zs\k+>' skip='\\$' end='$' +            \ contains=fishSpecial,fishIdentifier,fishString,fishCharacter,fishStatement,fishCommandSub,fishComment + +highlight default link fishKeyword Keyword +highlight default link fishConditional Conditional +highlight default link fishRepeat Repeat +highlight default link fishLabel Label +highlight default link fishComment Comment +highlight default link fishSpecial Special +highlight default link fishIdentifier Identifier +highlight default link fishString String +highlight default link fishCharacter Character +highlight default link fishStatement Statement +highlight default link fishCommandSub fishStatement + +let b:current_syntax = 'fish' + +endif diff --git a/syntax/fsharp.vim b/syntax/fsharp.vim new file mode 100644 index 00000000..f66daa01 --- /dev/null +++ b/syntax/fsharp.vim @@ -0,0 +1,269 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'fsharp') == -1 +   +" Vim syntax file +" Language:     F# +" Last Change:  Sun 19 Oct 2014 11:11:44 PM CEST +" Maintainer:   Gregor Uhlenheuer <kongo2002@googlemail.com> +" +" Note:         This syntax file is a complete rewrite of the original version +"               of fs.vim from Choy Rim <choy.rim@gmail.com> and a slight +"               modified version from Thomas Schank <ThomasSchank@gmail.com> + +if version < 600 +    syntax clear +elseif exists('b:current_syntax') +    finish +endif + +" F# is case sensitive. +syn case match + +" reset 'iskeyword' setting +setl isk&vim + +" Scripting/preprocessor directives +syn match    fsharpSScript "^\s*#\S\+" transparent contains=fsharpScript,fsharpRegion,fsharpPreCondit + +syn match    fsharpScript contained "#" +syn keyword  fsharpScript contained quitlabels warnings directory cd load use +syn keyword  fsharpScript contained install_printer remove_printer requirethread +syn keyword  fsharpScript contained trace untrace untrace_all print_depth +syn keyword  fsharpScript contained print_length define undef if elif else endif +syn keyword  fsharpScript contained line error warning light nowarn + + +" comments +syn match    fsharpSingleLineComment "//.*$" contains=fsharpTodo,@Spell +syn region   fsharpDocComment start="///" end="$" contains=fsharpTodo,fsharpXml,@Spell keepend oneline +syn region   fsharpXml matchgroup=fsharpXmlDoc start="<[^>]\+>" end="</[^>]\+>" contained contains=fsharpXml + +" Double-backtick identifiers +syn region   fsharpDoubleBacktick start="``" end="``" keepend oneline + + +" symbol names +syn match fsharpSymbol "\%(let\|use\|mutable\|rec\|and\|private\)\@<=!\=\s\+\zs\w\+\ze\s*[^=:]*[=:]" +syn match fsharpSymbol "\%(member\)\@<=\s\+\w\+\.\zs\w\+" + + +" types +syn match    fsharpTypeName   "\%(\<type\s\+\)\@<=\w\+" + + +" errors +syn match    fsharpBraceErr   "}" +syn match    fsharpBrackErr   "\]" +syn match    fsharpParenErr   ")" +syn match    fsharpArrErr     "|]" +syn match    fsharpCommentErr "\*)" + + +" enclosing delimiters +syn region   fsharpEncl transparent matchgroup=fsharpKeyword start="(" matchgroup=fsharpKeyword end=")" contains=ALLBUT,fsharpParenErr,fsharpScript +syn region   fsharpEncl transparent matchgroup=fsharpKeyword start="{" matchgroup=fsharpKeyword end="}"  contains=ALLBUT,fsharpBraceErr,fsharpScript +syn region   fsharpEncl transparent matchgroup=fsharpKeyword start="\[" matchgroup=fsharpKeyword end="\]" contains=ALLBUT,fsharpBrackErr,fsharpScript +syn region   fsharpEncl transparent matchgroup=fsharpKeyword start="\[|" matchgroup=fsharpKeyword end="|\]" contains=ALLBUT,fsharpArrErr,fsharpScript + + +" comments +syn region   fsharpMultiLineComment start="(\*" end="\*)" contains=fsharpTodo +syn keyword  fsharpTodo contained TODO FIXME XXX NOTE + +" keywords +syn keyword fsharpKeyword    abstract as assert base begin class default delegate +syn keyword fsharpKeyword    do done downcast downto elif else end exception +syn keyword fsharpKeyword    extern for fun function global if in inherit inline +syn keyword fsharpKeyword    interface lazy let match member module mutable +syn keyword fsharpKeyword    namespace new of override rec static struct then +syn keyword fsharpKeyword    to type upcast use val void when while with + +syn keyword fsharpKeyword    async atomic break checked component const constraint +syn keyword fsharpKeyword    constructor continue decimal eager event external +syn keyword fsharpKeyword    fixed functor include method mixin object parallel +syn keyword fsharpKeyword    process pure return seq tailcall trait + +" additional operator keywords (Microsoft.FSharp.Core.Operators) +syn keyword fsharpKeyword    box hash sizeof typeof typedefof unbox ref fst snd +syn keyword fsharpKeyword    stdin stdout stderr + +" math operators (Microsoft.FSharp.Core.Operators) +syn keyword fsharpKeyword    abs acos asin atan atan2 ceil cos cosh exp floor log +syn keyword fsharpKeyword    log10 pown round sign sin sinh sqrt tan tanh + +syn keyword fsharpOCaml      asr land lor lsl lsr lxor mod sig + +if !exists('g:fsharp_no_linq') || g:fsharp_no_linq == 0 +    syn keyword fsharpLinq   orderBy select where yield +endif + +" open +syn keyword fsharpOpen       open + +" exceptions +syn keyword fsharpException  try failwith failwithf finally invalid_arg raise +syn keyword fsharpException  rethrow + +" modifiers +syn keyword fsharpModifier   abstract const extern internal override private +syn keyword fsharpModifier   protected public readonly sealed static virtual +syn keyword fsharpModifier   volatile + +" constants +syn keyword fsharpConstant   null +syn keyword fsharpBoolean    false true + +" types +syn keyword  fsharpType      array bool byte char decimal double enum exn float +syn keyword  fsharpType      float32 int int16 int32 int64 lazy_t list nativeint +syn keyword  fsharpType      obj option sbyte single string uint uint32 uint64 +syn keyword  fsharpType      uint16 unativeint unit + +" core classes +syn match    fsharpCore      "\u\a*\." transparent contains=fsharpCoreClass + +syn keyword  fsharpCoreClass Array Async Directory File List Option Path Map Set contained +syn keyword  fsharpCoreClass String Seq Tuple contained + +syn keyword fsharpCoreMethod printf printfn sprintf eprintf eprintfn fprintf +syn keyword fsharpCoreMethod fprintfn + +" options +syn keyword  fsharpOption    Some None + +" operators +syn keyword fsharpOperator   not and or + +syn match   fsharpFormat     display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlL]\|ll\)\=\([bscdiuxXoEefFgGMOAat]\|\[\^\=.[^]]*\]\)" contained + +syn match    fsharpCharacter    "'\\\d\d\d'\|'\\[\'ntbr]'\|'.'" +syn match    fsharpCharErr      "'\\\d\d'\|'\\\d'" +syn match    fsharpCharErr      "'\\[^\'ntbr]'" +syn region   fsharpString       start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=fsharpFormat +syn region   fsharpString       start=+"""+ skip=+\\\\\|\\"+ end=+"""+ contains=fsharpFormat +syn region   fsharpString       start=+@"+ skip=+""+ end=+"+ contains=fsharpFormat + +syn match    fsharpFunDef       "->" +syn match    fsharpRefAssign    ":=" +syn match    fsharpTopStop      ";;" +syn match    fsharpOperator     "\^" +syn match    fsharpOperator     "::" + +syn match    fsharpLabel        "\<_\>" + +syn match    fsharpOperator     "&&" +syn match    fsharpOperator     "<" +syn match    fsharpOperator     ">" +syn match    fsharpOperator     "|>" +syn match    fsharpOperator     ":>" +syn match    fsharpOperator     ":?>" +syn match    fsharpOperator     "&&&" +syn match    fsharpOperator     "|||" +syn match    fsharpOperator     "\.\." + +syn match    fsharpKeyChar      "|[^\]]"me=e-1 +syn match    fsharpKeyChar      ";" +syn match    fsharpKeyChar      "\~" +syn match    fsharpKeyChar      "?" +syn match    fsharpKeyChar      "\*" +syn match    fsharpKeyChar      "+" +syn match    fsharpKeyChar      "=" +syn match    fsharpKeyChar      "|" +syn match    fsharpKeyChar      "(\*)" + +syn match    fsharpOperator     "<-" + +syn match    fsharpNumber        "\<\d\+" +syn match    fsharpNumber        "\<-\=\d\(_\|\d\)*\(u\|u\?[yslLn]\|UL\)\?\>" +syn match    fsharpNumber        "\<-\=0[x|X]\(\x\|_\)\+\(u\|u\?[yslLn]\|UL\)\?\>" +syn match    fsharpNumber        "\<-\=0[o|O]\(\o\|_\)\+\(u\|u\?[yslLn]\|UL\)\?\>" +syn match    fsharpNumber        "\<-\=0[b|B]\([01]\|_\)\+\(u\|u\?[yslLn]\|UL\)\?\>" +syn match    fsharpFloat         "\<-\=\d\(_\|\d\)*\.\(_\|\d\)*\([eE][-+]\=\d\(_\|\d\)*\)\=\>" +syn match    fsharpFloat         "\<-\=\d\(_\|\d\)*\.\(_\|\d\)*\([eE][-+]\=\d\(_\|\d\)*\)\=\>" +syn match    fsharpFloat         "\<\d\+\.\d*" + +" modules +syn match    fsharpModule     "\%(\<open\s\+\)\@<=[a-zA-Z.]\+" + +" attributes +syn region   fsharpAttrib matchgroup=fsharpAttribute start="\[<" end=">]" + +" regions +syn region   fsharpRegion matchgroup=fsharpPreCondit start="\%(end\)\@<!region.*$" +            \ end="endregion" fold contains=ALL contained + +if version >= 508 || !exists("did_fs_syntax_inits") +    if version < 508 +        let did_fs_syntax_inits = 1 +        command -nargs=+ HiLink hi link <args> +    else +        command -nargs=+ HiLink hi def link <args> +    endif + +    HiLink fsharpBraceErr          Error +    HiLink fsharpBrackErr          Error +    HiLink fsharpParenErr          Error +    HiLink fsharpArrErr            Error +    HiLink fsharpCommentErr        Error + +    HiLink fsharpSingleLineComment Comment +    HiLink fsharpMultiLineComment  Comment +    HiLink fsharpDocComment        Comment +    HiLink fsharpXml               Comment +    HiLink fsharpDoubleBacktick    String + +    HiLink fsharpOpen              Include +    HiLink fsharpModPath           Include +    HiLink fsharpScript            Include +    HiLink fsharpPreCondit         Include + +    HiLink fsharpKeyword           Keyword +    HiLink fsharpCoreMethod        Keyword + +    HiLink fsharpOCaml             Statement +    HiLink fsharpLinq              Statement + +    HiLink fsharpSymbol            Function + +    HiLink fsharpFunDef            Operator +    HiLink fsharpRefAssign         Operator +    HiLink fsharpTopStop           Operator +    HiLink fsharpKeyChar           Operator +    HiLink fsharpOperator          Operator + +    HiLink fsharpBoolean           Boolean +    HiLink fsharpConstant          Constant +    HiLink fsharpCharacter         Character +    HiLink fsharpNumber            Number +    HiLink fsharpFloat             Float + +    HiLink fsharpString            String +    HiLink fsharpFormat            Special + +    HiLink fsharpModifier          StorageClass + +    HiLink fsharpException         Exception + +    HiLink fsharpLabel             Identifier +    HiLink fsharpOption            Identifier +    HiLink fsharpTypeName          Identifier +    HiLink fsharpModule            Identifier + +    HiLink fsharpType              Type + +    HiLink fsharpCoreClass         Typedef +    HiLink fsharpAttrib            Typedef +    HiLink fsharpXmlDoc            Typedef + +    HiLink fsharpTodo              Todo + +    HiLink fsharpEncl              Delimiter +    HiLink fsharpAttribute         Delimiter + +    delcommand HiLink +endif + +let b:current_syntax = 'fsharp' + +" vim: sw=4 et sts=4 + +endif diff --git a/syntax/git.vim b/syntax/git.vim new file mode 100644 index 00000000..53f44d36 --- /dev/null +++ b/syntax/git.vim @@ -0,0 +1,82 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1 +   +" Vim syntax file +" Language:	generic git output +" Maintainer:	Tim Pope <vimNOSPAM@tpope.org> +" Last Change:	2010 May 21 + +if exists("b:current_syntax") +  finish +endif + +syn case match +syn sync minlines=50 + +syn include @gitDiff syntax/diff.vim + +syn region gitHead start=/\%^/ end=/^$/ +syn region gitHead start=/\%(^commit\%( \x\{40\}\)\{1,\}\%(\s*(.*)\)\=$\)\@=/ end=/^$/ + +" For git reflog and git show ...^{tree}, avoid sync issues +syn match gitHead /^\d\{6\} \%(\w\{4} \)\=\x\{40\}\%( [0-3]\)\=\t.*/ +syn match gitHead /^\x\{40\} \x\{40}\t.*/ + +syn region gitDiff start=/^\%(diff --git \)\@=/ end=/^\%(diff --\|$\)\@=/ contains=@gitDiff fold +syn region gitDiff start=/^\%(@@ -\)\@=/ end=/^\%(diff --\%(git\|cc\|combined\) \|$\)\@=/ contains=@gitDiff + +syn region gitDiffMerge start=/^\%(diff --\%(cc\|combined\) \)\@=/ end=/^\%(diff --\|$\)\@=/ contains=@gitDiff +syn region gitDiffMerge start=/^\%(@@@@* -\)\@=/ end=/^\%(diff --\|$\)\@=/ contains=@gitDiff +syn match gitDiffAdded "^ \++.*" contained containedin=gitDiffMerge +syn match gitDiffRemoved "^ \+-.*" contained containedin=gitDiffMerge + +syn match  gitKeyword /^\%(object\|type\|tag\|commit\|tree\|parent\|encoding\)\>/ contained containedin=gitHead nextgroup=gitHash,gitType skipwhite +syn match  gitKeyword /^\%(tag\>\|ref:\)/ contained containedin=gitHead nextgroup=gitReference skipwhite +syn match  gitKeyword /^Merge:/  contained containedin=gitHead nextgroup=gitHashAbbrev skipwhite +syn match  gitMode    /^\d\{6\}/ contained containedin=gitHead nextgroup=gitType,gitHash skipwhite +syn match  gitIdentityKeyword /^\%(author\|committer\|tagger\)\>/ contained containedin=gitHead nextgroup=gitIdentity skipwhite +syn match  gitIdentityHeader /^\%(Author\|Commit\|Tagger\):/ contained containedin=gitHead nextgroup=gitIdentity skipwhite +syn match  gitDateHeader /^\%(AuthorDate\|CommitDate\|Date\):/ contained containedin=gitHead nextgroup=gitDate skipwhite + +syn match  gitReflogHeader /^Reflog:/ contained containedin=gitHead nextgroup=gitReflogMiddle skipwhite +syn match  gitReflogHeader /^Reflog message:/ contained containedin=gitHead skipwhite +syn match  gitReflogMiddle /\S\+@{\d\+} (/he=e-2 nextgroup=gitIdentity + +syn match  gitDate      /\<\u\l\l \u\l\l \d\=\d \d\d:\d\d:\d\d \d\d\d\d [+-]\d\d\d\d/ contained +syn match  gitDate      /-\=\d\+ [+-]\d\d\d\d\>/               contained +syn match  gitDate      /\<\d\+ \l\+ ago\>/                    contained +syn match  gitType      /\<\%(tag\|commit\|tree\|blob\)\>/     contained nextgroup=gitHash skipwhite +syn match  gitStage     /\<\d\t\@=/                            contained +syn match  gitReference /\S\+\S\@!/                            contained +syn match  gitHash      /\<\x\{40\}\>/                         contained nextgroup=gitIdentity,gitStage,gitHash skipwhite +syn match  gitHash      /^\<\x\{40\}\>/ containedin=gitHead contained nextgroup=gitHash skipwhite +syn match  gitHashAbbrev /\<\x\{4,40\}\>/           contained nextgroup=gitHashAbbrev skipwhite +syn match  gitHashAbbrev /\<\x\{4,39\}\.\.\./he=e-3 contained nextgroup=gitHashAbbrev skipwhite + +syn match  gitIdentity /\S.\{-\} <[^>]*>/ contained nextgroup=gitDate skipwhite +syn region gitEmail matchgroup=gitEmailDelimiter start=/</ end=/>/ keepend oneline contained containedin=gitIdentity + +syn match  gitNotesHeader /^Notes:\ze\n    / + +hi def link gitDateHeader        gitIdentityHeader +hi def link gitIdentityHeader    gitIdentityKeyword +hi def link gitIdentityKeyword   Label +hi def link gitNotesHeader       gitKeyword +hi def link gitReflogHeader      gitKeyword +hi def link gitKeyword           Keyword +hi def link gitIdentity          String +hi def link gitEmailDelimiter    Delimiter +hi def link gitEmail             Special +hi def link gitDate              Number +hi def link gitMode              Number +hi def link gitHashAbbrev        gitHash +hi def link gitHash              Identifier +hi def link gitReflogMiddle      gitReference +hi def link gitReference         Function +hi def link gitStage             gitType +hi def link gitType              Type +hi def link gitDiffAdded         diffAdded +hi def link gitDiffRemoved       diffRemoved + +let b:current_syntax = "git" + +endif diff --git a/syntax/gitcommit.vim b/syntax/gitcommit.vim new file mode 100644 index 00000000..74477b27 --- /dev/null +++ b/syntax/gitcommit.vim @@ -0,0 +1,88 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1 +   +" Vim syntax file +" Language:	git commit file +" Maintainer:	Tim Pope <vimNOSPAM@tpope.org> +" Filenames:	*.git/COMMIT_EDITMSG +" Last Change:	2013 May 30 + +if exists("b:current_syntax") +  finish +endif + +syn case match +syn sync minlines=50 + +if has("spell") +  syn spell toplevel +endif + +syn include @gitcommitDiff syntax/diff.vim +syn region gitcommitDiff start=/\%(^diff --\%(git\|cc\|combined\) \)\@=/ end=/^\%(diff --\|$\|#\)\@=/ fold contains=@gitcommitDiff + +syn match   gitcommitFirstLine	"\%^[^#].*"  nextgroup=gitcommitBlank skipnl +syn match   gitcommitSummary	"^.\{0,50\}" contained containedin=gitcommitFirstLine nextgroup=gitcommitOverflow contains=@Spell +syn match   gitcommitOverflow	".*" contained contains=@Spell +syn match   gitcommitBlank	"^[^#].*" contained contains=@Spell +syn match   gitcommitComment	"^#.*" +syn match   gitcommitHead	"^\%(#   .*\n\)\+#$" contained transparent +syn match   gitcommitOnBranch	"\%(^# \)\@<=On branch" contained containedin=gitcommitComment nextgroup=gitcommitBranch skipwhite +syn match   gitcommitOnBranch	"\%(^# \)\@<=Your branch .\{-\} '" contained containedin=gitcommitComment nextgroup=gitcommitBranch skipwhite +syn match   gitcommitBranch	"[^ ']\+" contained +syn match   gitcommitNoBranch	"\%(^# \)\@<=Not currently on any branch." contained containedin=gitcommitComment +syn match   gitcommitHeader	"\%(^# \)\@<=.*:$"	contained containedin=gitcommitComment +syn region  gitcommitAuthor	matchgroup=gitCommitHeader start=/\%(^# \)\@<=\%(Author\|Committer\):/ end=/$/ keepend oneline contained containedin=gitcommitComment transparent +syn match   gitcommitNoChanges	"\%(^# \)\@<=No changes$" contained containedin=gitcommitComment + +syn region  gitcommitUntracked	start=/^# Untracked files:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitUntrackedFile fold +syn match   gitcommitUntrackedFile  "\t\@<=.*"	contained + +syn region  gitcommitDiscarded	start=/^# Change\%(s not staged for commit\|d but not updated\):/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitDiscardedType fold +syn region  gitcommitSelected	start=/^# Changes to be committed:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitSelectedType fold +syn region  gitcommitUnmerged	start=/^# Unmerged paths:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitUnmergedType fold + + +syn match   gitcommitDiscardedType	"\t\@<=[[:lower:]][^:]*[[:lower:]]: "he=e-2	contained containedin=gitcommitComment nextgroup=gitcommitDiscardedFile skipwhite +syn match   gitcommitSelectedType	"\t\@<=[[:lower:]][^:]*[[:lower:]]: "he=e-2	contained containedin=gitcommitComment nextgroup=gitcommitSelectedFile skipwhite +syn match   gitcommitUnmergedType	"\t\@<=[[:lower:]][^:]*[[:lower:]]: "he=e-2	contained containedin=gitcommitComment nextgroup=gitcommitUnmergedFile skipwhite +syn match   gitcommitDiscardedFile	".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitDiscardedArrow +syn match   gitcommitSelectedFile	".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitSelectedArrow +syn match   gitcommitUnmergedFile	".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitSelectedArrow +syn match   gitcommitDiscardedArrow	" -> " contained nextgroup=gitcommitDiscardedFile +syn match   gitcommitSelectedArrow	" -> " contained nextgroup=gitcommitSelectedFile +syn match   gitcommitUnmergedArrow	" -> " contained nextgroup=gitcommitSelectedFile + +syn match   gitcommitWarning		"\%^[^#].*: needs merge$" nextgroup=gitcommitWarning skipnl +syn match   gitcommitWarning		"^[^#].*: needs merge$" nextgroup=gitcommitWarning skipnl contained +syn match   gitcommitWarning		"^\%(no changes added to commit\|nothing \%(added \)\=to commit\)\>.*\%$" + +hi def link gitcommitSummary		Keyword +hi def link gitcommitComment		Comment +hi def link gitcommitUntracked		gitcommitComment +hi def link gitcommitDiscarded		gitcommitComment +hi def link gitcommitSelected		gitcommitComment +hi def link gitcommitUnmerged		gitcommitComment +hi def link gitcommitOnBranch		Comment +hi def link gitcommitBranch		Special +hi def link gitcommitNoBranch		gitCommitBranch +hi def link gitcommitDiscardedType	gitcommitType +hi def link gitcommitSelectedType	gitcommitType +hi def link gitcommitUnmergedType	gitcommitType +hi def link gitcommitType		Type +hi def link gitcommitNoChanges		gitcommitHeader +hi def link gitcommitHeader		PreProc +hi def link gitcommitUntrackedFile	gitcommitFile +hi def link gitcommitDiscardedFile	gitcommitFile +hi def link gitcommitSelectedFile	gitcommitFile +hi def link gitcommitUnmergedFile	gitcommitFile +hi def link gitcommitFile		Constant +hi def link gitcommitDiscardedArrow	gitcommitArrow +hi def link gitcommitSelectedArrow	gitcommitArrow +hi def link gitcommitUnmergedArrow	gitcommitArrow +hi def link gitcommitArrow		gitcommitComment +"hi def link gitcommitOverflow		Error +hi def link gitcommitBlank		Error + +let b:current_syntax = "gitcommit" + +endif diff --git a/syntax/gitconfig.vim b/syntax/gitconfig.vim new file mode 100644 index 00000000..49b992b0 --- /dev/null +++ b/syntax/gitconfig.vim @@ -0,0 +1,42 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1 +   +" Vim syntax file +" Language:	git config file +" Maintainer:	Tim Pope <vimNOSPAM@tpope.org> +" Filenames:	gitconfig, .gitconfig, *.git/config +" Last Change:	2010 May 21 + +if exists("b:current_syntax") +  finish +endif + +setlocal iskeyword+=- +setlocal iskeyword-=_ +syn case ignore +syn sync minlines=10 + +syn match   gitconfigComment	"[#;].*" +syn match   gitconfigSection	"\%(^\s*\)\@<=\[[a-z0-9.-]\+\]" +syn match   gitconfigSection	'\%(^\s*\)\@<=\[[a-z0-9.-]\+ \+\"\%([^\\"]\|\\.\)*"\]' +syn match   gitconfigVariable	 "\%(^\s*\)\@<=\a\k*\%(\s*\%([=#;]\|$\)\)\@=" nextgroup=gitconfigAssignment skipwhite +syn region  gitconfigAssignment  matchgroup=gitconfigNone start=+=\s*+ skip=+\\+ end=+\s*$+ contained contains=gitconfigBoolean,gitconfigNumber,gitConfigString,gitConfigEscape,gitConfigError,gitconfigComment keepend +syn keyword gitconfigBoolean true false yes no contained +syn match   gitconfigNumber  "\d\+" contained +syn region  gitconfigString  matchgroup=gitconfigDelim start=+"+ skip=+\\+ end=+"+ matchgroup=gitconfigError end=+[^\\"]\%#\@!$+ contained contains=gitconfigEscape,gitconfigEscapeError +syn match   gitconfigError  +\\.+	 contained +syn match   gitconfigEscape +\\[\\"ntb]+ contained +syn match   gitconfigEscape +\\$+	 contained + +hi def link gitconfigComment		Comment +hi def link gitconfigSection		Keyword +hi def link gitconfigVariable		Identifier +hi def link gitconfigBoolean		Boolean +hi def link gitconfigNumber		Number +hi def link gitconfigString		String +hi def link gitconfigDelim		Delimiter +hi def link gitconfigEscape		Delimiter +hi def link gitconfigError		Error + +let b:current_syntax = "gitconfig" + +endif diff --git a/syntax/gitrebase.vim b/syntax/gitrebase.vim new file mode 100644 index 00000000..3a66f0a2 --- /dev/null +++ b/syntax/gitrebase.vim @@ -0,0 +1,44 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1 +   +" Vim syntax file +" Language:	git rebase --interactive +" Maintainer:	Tim Pope <vimNOSPAM@tpope.org> +" Filenames:	git-rebase-todo +" Last Change:	2013 May 30 + +if exists("b:current_syntax") +  finish +endif + +syn case match + +syn match   gitrebaseHash   "\v<\x{7,40}>"                             contained +syn match   gitrebaseCommit "\v<\x{7,40}>"  nextgroup=gitrebaseSummary skipwhite +syn match   gitrebasePick   "\v^p%(ick)=>"   nextgroup=gitrebaseCommit skipwhite +syn match   gitrebaseReword "\v^r%(eword)=>" nextgroup=gitrebaseCommit skipwhite +syn match   gitrebaseEdit   "\v^e%(dit)=>"   nextgroup=gitrebaseCommit skipwhite +syn match   gitrebaseSquash "\v^s%(quash)=>" nextgroup=gitrebaseCommit skipwhite +syn match   gitrebaseFixup  "\v^f%(ixup)=>"  nextgroup=gitrebaseCommit skipwhite +syn match   gitrebaseExec   "\v^%(x|exec)>" nextgroup=gitrebaseCommand skipwhite +syn match   gitrebaseDrop   "\v^d%(rop)=>"   nextgroup=gitrebaseCommit skipwhite +syn match   gitrebaseSummary ".*"               contains=gitrebaseHash contained +syn match   gitrebaseCommand ".*"                                      contained +syn match   gitrebaseComment "^\s*#.*"             contains=gitrebaseHash +syn match   gitrebaseSquashError "\v%^%(s%(quash)=>|f%(ixup)=>)" nextgroup=gitrebaseCommit skipwhite + +hi def link gitrebaseCommit         gitrebaseHash +hi def link gitrebaseHash           Identifier +hi def link gitrebasePick           Statement +hi def link gitrebaseReword         Number +hi def link gitrebaseEdit           PreProc +hi def link gitrebaseSquash         Type +hi def link gitrebaseFixup          Special +hi def link gitrebaseExec           Function +hi def link gitrebaseDrop           Comment +hi def link gitrebaseSummary        String +hi def link gitrebaseComment        Comment +hi def link gitrebaseSquashError    Error + +let b:current_syntax = "gitrebase" + +endif diff --git a/syntax/gitsendemail.vim b/syntax/gitsendemail.vim new file mode 100644 index 00000000..756f5da2 --- /dev/null +++ b/syntax/gitsendemail.vim @@ -0,0 +1,27 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1 +   +" Vim syntax file +" Language:	git send-email message +" Maintainer:	Tim Pope +" Filenames:	.gitsendemail.* +" Last Change:	2010 May 21 + +if exists("b:current_syntax") +  finish +endif + +runtime! syntax/mail.vim +unlet! b:current_syntax +syn include @gitsendemailDiff syntax/diff.vim +syn region gitsendemailDiff start=/\%(^diff --\%(git\|cc\|combined\) \)\@=/ end=/^-- %/ fold contains=@gitsendemailDiff + +syn case match + +syn match   gitsendemailComment "\%^From.*#.*" +syn match   gitsendemailComment "^GIT:.*" + +hi def link gitsendemailComment Comment + +let b:current_syntax = "gitsendemail" + +endif diff --git a/syntax/glsl.vim b/syntax/glsl.vim new file mode 100644 index 00000000..73c2afa1 --- /dev/null +++ b/syntax/glsl.vim @@ -0,0 +1,679 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'glsl') == -1 +   +" Language: OpenGL Shading Language +" Maintainer: Sergey Tikhomirov <sergey@tikhomirov.io> + +if exists("b:current_syntax") && b:current_syntax == "glsl" +  finish +endif + +" Statements +syn keyword glslConditional if else switch case default +syn keyword glslRepeat      for while do +syn keyword glslStatement   discard return break continue + +" Comments +syn keyword glslTodo     contained TODO FIXME XXX NOTE +syn region  glslCommentL start="//" skip="\\$" end="$" keepend contains=glslTodo,@Spell +syn region  glslComment  matchgroup=glslCommentStart start="/\*" end="\*/" extend contains=glslTodo,@Spell + +" Preprocessor +syn region  glslPreCondit       start="^\s*#\s*\(if\|ifdef\|ifndef\|else\|elif\|endif\)" skip="\\$" end="$" keepend +syn region  glslDefine          start="^\s*#\s*\(define\|undef\)" skip="\\$" end="$" keepend +syn keyword glslTokenConcat     ## +syn keyword glslPredefinedMacro __LINE__ __FILE__ __VERSION__ GL_ES +syn region  glslPreProc         start="^\s*#\s*\(error\|pragma\|extension\|version\|line\)" skip="\\$" end="$" keepend + +" Boolean Constants +syn keyword glslBoolean true false + +" Integer Numbers +syn match glslDecimalInt display "\<\(0\|[1-9]\d*\)[uU]\?" +syn match glslOctalInt   display "\<0\o\+[uU]\?" +syn match glslHexInt     display "\<0[xX]\x\+[uU]\?" + +" Float Numbers +syn match glslFloat display "\<\d\+\.\([eE][+-]\=\d\+\)\=\(lf\|LF\|f\|F\)\=" +syn match glslFloat display "\<\.\d\+\([eE][+-]\=\d\+\)\=\(lf\|LF\|f\|F\)\=" +syn match glslFloat display "\<\d\+[eE][+-]\=\d\+\(lf\|LF\|f\|F\)\=" +syn match glslFloat display "\<\d\+\.\d\+\([eE][+-]\=\d\+\)\=\(lf\|LF\|f\|F\)\=" + +" Swizzles +syn match glslSwizzle display /\.[xyzw]\{1,4\}\>/ +syn match glslSwizzle display /\.[rgba]\{1,4\}\>/ +syn match glslSwizzle display /\.[stpq]\{1,4\}\>/ + +" Structure +syn keyword glslStructure struct nextgroup=glslIdentifier skipwhite skipempty + +syn match glslIdentifier contains=glslIdentifierPrime "\%([a-zA-Z_]\)\%([a-zA-Z0-9_]\)*" display contained + +" Types +syn keyword glslType atomic_uint +syn keyword glslType bool +syn keyword glslType bvec2 +syn keyword glslType bvec3 +syn keyword glslType bvec4 +syn keyword glslType dmat2 +syn keyword glslType dmat2x2 +syn keyword glslType dmat2x3 +syn keyword glslType dmat2x4 +syn keyword glslType dmat3 +syn keyword glslType dmat3x2 +syn keyword glslType dmat3x3 +syn keyword glslType dmat3x4 +syn keyword glslType dmat4 +syn keyword glslType dmat4x2 +syn keyword glslType dmat4x3 +syn keyword glslType dmat4x4 +syn keyword glslType double +syn keyword glslType dvec2 +syn keyword glslType dvec3 +syn keyword glslType dvec4 +syn keyword glslType float +syn keyword glslType iimage1D +syn keyword glslType iimage1DArray +syn keyword glslType iimage2D +syn keyword glslType iimage2DArray +syn keyword glslType iimage2DMS +syn keyword glslType iimage2DMSArray +syn keyword glslType iimage2DRect +syn keyword glslType iimage3D +syn keyword glslType iimageBuffer +syn keyword glslType iimageCube +syn keyword glslType iimageCubeArray +syn keyword glslType image1D +syn keyword glslType image1DArray +syn keyword glslType image2D +syn keyword glslType image2DArray +syn keyword glslType image2DMS +syn keyword glslType image2DMSArray +syn keyword glslType image2DRect +syn keyword glslType image3D +syn keyword glslType imageBuffer +syn keyword glslType imageCube +syn keyword glslType imageCubeArray +syn keyword glslType int +syn keyword glslType isampler1D +syn keyword glslType isampler1DArray +syn keyword glslType isampler2D +syn keyword glslType isampler2DArray +syn keyword glslType isampler2DMS +syn keyword glslType isampler2DMSArray +syn keyword glslType isampler2DRect +syn keyword glslType isampler3D +syn keyword glslType isamplerBuffer +syn keyword glslType isamplerCube +syn keyword glslType isamplerCubeArray +syn keyword glslType ivec2 +syn keyword glslType ivec3 +syn keyword glslType ivec4 +syn keyword glslType mat2 +syn keyword glslType mat2x2 +syn keyword glslType mat2x3 +syn keyword glslType mat2x4 +syn keyword glslType mat3 +syn keyword glslType mat3x2 +syn keyword glslType mat3x3 +syn keyword glslType mat3x4 +syn keyword glslType mat4 +syn keyword glslType mat4x2 +syn keyword glslType mat4x3 +syn keyword glslType mat4x4 +syn keyword glslType sampler1D +syn keyword glslType sampler1DArray +syn keyword glslType sampler1DArrayShadow +syn keyword glslType sampler1DShadow +syn keyword glslType sampler2D +syn keyword glslType sampler2DArray +syn keyword glslType sampler2DArrayShadow +syn keyword glslType sampler2DMS +syn keyword glslType sampler2DMSArray +syn keyword glslType sampler2DRect +syn keyword glslType sampler2DRectShadow +syn keyword glslType sampler2DShadow +syn keyword glslType sampler3D +syn keyword glslType samplerBuffer +syn keyword glslType samplerCube +syn keyword glslType samplerCubeArray +syn keyword glslType samplerCubeArrayShadow +syn keyword glslType samplerCubeShadow +syn keyword glslType uimage1D +syn keyword glslType uimage1DArray +syn keyword glslType uimage2D +syn keyword glslType uimage2DArray +syn keyword glslType uimage2DMS +syn keyword glslType uimage2DMSArray +syn keyword glslType uimage2DRect +syn keyword glslType uimage3D +syn keyword glslType uimageBuffer +syn keyword glslType uimageCube +syn keyword glslType uimageCubeArray +syn keyword glslType uint +syn keyword glslType usampler1D +syn keyword glslType usampler1DArray +syn keyword glslType usampler2D +syn keyword glslType usampler2DArray +syn keyword glslType usampler2DMS +syn keyword glslType usampler2DMSArray +syn keyword glslType usampler2DRect +syn keyword glslType usampler3D +syn keyword glslType usamplerBuffer +syn keyword glslType usamplerCube +syn keyword glslType usamplerCubeArray +syn keyword glslType uvec2 +syn keyword glslType uvec3 +syn keyword glslType uvec4 +syn keyword glslType vec2 +syn keyword glslType vec3 +syn keyword glslType vec4 +syn keyword glslType void + +" Qualifiers +syn keyword glslQualifier align +syn keyword glslQualifier attribute +syn keyword glslQualifier binding +syn keyword glslQualifier buffer +syn keyword glslQualifier ccw +syn keyword glslQualifier centroid +syn keyword glslQualifier centroid varying +syn keyword glslQualifier coherent +syn keyword glslQualifier column_major +syn keyword glslQualifier const +syn keyword glslQualifier cw +syn keyword glslQualifier depth_any +syn keyword glslQualifier depth_greater +syn keyword glslQualifier depth_less +syn keyword glslQualifier depth_unchanged +syn keyword glslQualifier early_fragment_tests +syn keyword glslQualifier equal_spacing +syn keyword glslQualifier flat +syn keyword glslQualifier fractional_even_spacing +syn keyword glslQualifier fractional_odd_spacing +syn keyword glslQualifier highp +syn keyword glslQualifier in +syn keyword glslQualifier index +syn keyword glslQualifier inout +syn keyword glslQualifier invariant +syn keyword glslQualifier invocations +syn keyword glslQualifier isolines +syn keyword glslQualifier layout +syn keyword glslQualifier line_strip +syn keyword glslQualifier lines +syn keyword glslQualifier lines_adjacency +syn keyword glslQualifier local_size_x +syn keyword glslQualifier local_size_y +syn keyword glslQualifier local_size_z +syn keyword glslQualifier location +syn keyword glslQualifier lowp +syn keyword glslQualifier max_vertices +syn keyword glslQualifier mediump +syn keyword glslQualifier noperspective +syn keyword glslQualifier offset +syn keyword glslQualifier origin_upper_left +syn keyword glslQualifier out +syn keyword glslQualifier packed +syn keyword glslQualifier patch +syn keyword glslQualifier pixel_center_integer +syn keyword glslQualifier point_mode +syn keyword glslQualifier points +syn keyword glslQualifier precise +syn keyword glslQualifier precision +syn keyword glslQualifier quads +syn keyword glslQualifier r11f_g11f_b10f +syn keyword glslQualifier r16 +syn keyword glslQualifier r16_snorm +syn keyword glslQualifier r16f +syn keyword glslQualifier r16i +syn keyword glslQualifier r16ui +syn keyword glslQualifier r32f +syn keyword glslQualifier r32i +syn keyword glslQualifier r32ui +syn keyword glslQualifier r8 +syn keyword glslQualifier r8_snorm +syn keyword glslQualifier r8i +syn keyword glslQualifier r8ui +syn keyword glslQualifier readonly +syn keyword glslQualifier restrict +syn keyword glslQualifier rg16 +syn keyword glslQualifier rg16_snorm +syn keyword glslQualifier rg16f +syn keyword glslQualifier rg16i +syn keyword glslQualifier rg16ui +syn keyword glslQualifier rg32f +syn keyword glslQualifier rg32i +syn keyword glslQualifier rg32ui +syn keyword glslQualifier rg8 +syn keyword glslQualifier rg8_snorm +syn keyword glslQualifier rg8i +syn keyword glslQualifier rg8ui +syn keyword glslQualifier rgb10_a2 +syn keyword glslQualifier rgb10_a2ui +syn keyword glslQualifier rgba16 +syn keyword glslQualifier rgba16_snorm +syn keyword glslQualifier rgba16f +syn keyword glslQualifier rgba16i +syn keyword glslQualifier rgba16ui +syn keyword glslQualifier rgba32f +syn keyword glslQualifier rgba32i +syn keyword glslQualifier rgba32ui +syn keyword glslQualifier rgba8 +syn keyword glslQualifier rgba8_snorm +syn keyword glslQualifier rgba8i +syn keyword glslQualifier rgba8ui +syn keyword glslQualifier row_major +syn keyword glslQualifier sample +syn keyword glslQualifier shared +syn keyword glslQualifier smooth +syn keyword glslQualifier std140 +syn keyword glslQualifier std430 +syn keyword glslQualifier stream +syn keyword glslQualifier triangle_strip +syn keyword glslQualifier triangles +syn keyword glslQualifier triangles_adjacency +syn keyword glslQualifier uniform +syn keyword glslQualifier varying +syn keyword glslQualifier vertices +syn keyword glslQualifier volatile +syn keyword glslQualifier writeonly +syn keyword glslQualifier xfb_buffer +syn keyword glslQualifier xfb_stride +syn keyword glslQualifier xfb_offset + +" Built-in Constants +syn keyword glslBuiltinConstant gl_CullDistance +syn keyword glslBuiltinConstant gl_MaxAtomicCounterBindings +syn keyword glslBuiltinConstant gl_MaxAtomicCounterBufferSize +syn keyword glslBuiltinConstant gl_MaxClipDistances +syn keyword glslBuiltinConstant gl_MaxClipPlanes +syn keyword glslBuiltinConstant gl_MaxCombinedAtomicCounterBuffers +syn keyword glslBuiltinConstant gl_MaxCombinedAtomicCounters +syn keyword glslBuiltinConstant gl_MaxCombinedClipAndCullDistances +syn keyword glslBuiltinConstant gl_MaxCombinedImageUniforms +syn keyword glslBuiltinConstant gl_MaxCombinedImageUnitsAndFragmentOutputs +syn keyword glslBuiltinConstant gl_MaxCombinedShaderOutputResources +syn keyword glslBuiltinConstant gl_MaxCombinedTextureImageUnits +syn keyword glslBuiltinConstant gl_MaxComputeAtomicCounterBuffers +syn keyword glslBuiltinConstant gl_MaxComputeAtomicCounters +syn keyword glslBuiltinConstant gl_MaxComputeImageUniforms +syn keyword glslBuiltinConstant gl_MaxComputeTextureImageUnits +syn keyword glslBuiltinConstant gl_MaxComputeUniformComponents +syn keyword glslBuiltinConstant gl_MaxComputeWorkGroupCount +syn keyword glslBuiltinConstant gl_MaxComputeWorkGroupSize +syn keyword glslBuiltinConstant gl_MaxCullDistances +syn keyword glslBuiltinConstant gl_MaxDrawBuffers +syn keyword glslBuiltinConstant gl_MaxFragmentAtomicCounterBuffers +syn keyword glslBuiltinConstant gl_MaxFragmentAtomicCounters +syn keyword glslBuiltinConstant gl_MaxFragmentImageUniforms +syn keyword glslBuiltinConstant gl_MaxFragmentInputComponents +syn keyword glslBuiltinConstant gl_MaxFragmentInputVectors +syn keyword glslBuiltinConstant gl_MaxFragmentUniformComponents +syn keyword glslBuiltinConstant gl_MaxFragmentUniformVectors +syn keyword glslBuiltinConstant gl_MaxGeometryAtomicCounterBuffers +syn keyword glslBuiltinConstant gl_MaxGeometryAtomicCounters +syn keyword glslBuiltinConstant gl_MaxGeometryImageUniforms +syn keyword glslBuiltinConstant gl_MaxGeometryInputComponents +syn keyword glslBuiltinConstant gl_MaxGeometryOutputComponents +syn keyword glslBuiltinConstant gl_MaxGeometryOutputVertices +syn keyword glslBuiltinConstant gl_MaxGeometryTextureImageUnits +syn keyword glslBuiltinConstant gl_MaxGeometryTotalOutputComponents +syn keyword glslBuiltinConstant gl_MaxGeometryUniformComponents +syn keyword glslBuiltinConstant gl_MaxGeometryVaryingComponents +syn keyword glslBuiltinConstant gl_MaxImageSamples +syn keyword glslBuiltinConstant gl_MaxImageUnits +syn keyword glslBuiltinConstant gl_MaxLights +syn keyword glslBuiltinConstant gl_MaxPatchVertices +syn keyword glslBuiltinConstant gl_MaxProgramTexelOffset +syn keyword glslBuiltinConstant gl_MaxSamples +syn keyword glslBuiltinConstant gl_MaxTessControlAtomicCounterBuffers +syn keyword glslBuiltinConstant gl_MaxTessControlAtomicCounters +syn keyword glslBuiltinConstant gl_MaxTessControlImageUniforms +syn keyword glslBuiltinConstant gl_MaxTessControlInputComponents +syn keyword glslBuiltinConstant gl_MaxTessControlOutputComponents +syn keyword glslBuiltinConstant gl_MaxTessControlTextureImageUnits +syn keyword glslBuiltinConstant gl_MaxTessControlTotalOutputComponents +syn keyword glslBuiltinConstant gl_MaxTessControlUniformComponents +syn keyword glslBuiltinConstant gl_MaxTessEvaluationAtomicCounterBuffers +syn keyword glslBuiltinConstant gl_MaxTessEvaluationAtomicCounters +syn keyword glslBuiltinConstant gl_MaxTessEvaluationImageUniforms +syn keyword glslBuiltinConstant gl_MaxTessEvaluationInputComponents +syn keyword glslBuiltinConstant gl_MaxTessEvaluationOutputComponents +syn keyword glslBuiltinConstant gl_MaxTessEvaluationTextureImageUnits +syn keyword glslBuiltinConstant gl_MaxTessEvaluationUniformComponents +syn keyword glslBuiltinConstant gl_MaxTessGenLevel +syn keyword glslBuiltinConstant gl_MaxTessPatchComponents +syn keyword glslBuiltinConstant gl_MaxTextureCoords +syn keyword glslBuiltinConstant gl_MaxTextureImageUnits +syn keyword glslBuiltinConstant gl_MaxTextureUnits +syn keyword glslBuiltinConstant gl_MaxTransformFeedbackBuffers +syn keyword glslBuiltinConstant gl_MaxTransformFeedbackInterleavedComponents +syn keyword glslBuiltinConstant gl_MaxVaryingComponents +syn keyword glslBuiltinConstant gl_MaxVaryingFloats +syn keyword glslBuiltinConstant gl_MaxVaryingVectors +syn keyword glslBuiltinConstant gl_MaxVertexAtomicCounterBuffers +syn keyword glslBuiltinConstant gl_MaxVertexAtomicCounters +syn keyword glslBuiltinConstant gl_MaxVertexAttribs +syn keyword glslBuiltinConstant gl_MaxVertexImageUniforms +syn keyword glslBuiltinConstant gl_MaxVertexOutputComponents +syn keyword glslBuiltinConstant gl_MaxVertexOutputVectors +syn keyword glslBuiltinConstant gl_MaxVertexTextureImageUnits +syn keyword glslBuiltinConstant gl_MaxVertexUniformComponents +syn keyword glslBuiltinConstant gl_MaxVertexUniformVectors +syn keyword glslBuiltinConstant gl_MaxViewports +syn keyword glslBuiltinConstant gl_MinProgramTexelOffset + +" Built-in Variables +syn keyword glslBuiltinVariable gl_BackColor +syn keyword glslBuiltinVariable gl_BackLightModelProduct +syn keyword glslBuiltinVariable gl_BackLightProduct +syn keyword glslBuiltinVariable gl_BackLightProduct +syn keyword glslBuiltinVariable gl_BackMaterial +syn keyword glslBuiltinVariable gl_BackSecondaryColor +syn keyword glslBuiltinVariable gl_ClipDistance +syn keyword glslBuiltinVariable gl_ClipPlane +syn keyword glslBuiltinVariable gl_ClipVertex +syn keyword glslBuiltinVariable gl_Color +syn keyword glslBuiltinVariable gl_DepthRange +syn keyword glslBuiltinVariable gl_EyePlaneQ +syn keyword glslBuiltinVariable gl_EyePlaneR +syn keyword glslBuiltinVariable gl_EyePlaneS +syn keyword glslBuiltinVariable gl_EyePlaneT +syn keyword glslBuiltinVariable gl_Fog +syn keyword glslBuiltinVariable gl_FogCoord +syn keyword glslBuiltinVariable gl_FogFragCoord +syn keyword glslBuiltinVariable gl_FragColor +syn keyword glslBuiltinVariable gl_FragCoord +syn keyword glslBuiltinVariable gl_FragData +syn keyword glslBuiltinVariable gl_FragDepth +syn keyword glslBuiltinVariable gl_FrontColor +syn keyword glslBuiltinVariable gl_FrontFacing +syn keyword glslBuiltinVariable gl_FrontLightModelProduct +syn keyword glslBuiltinVariable gl_FrontLightProduct +syn keyword glslBuiltinVariable gl_FrontMaterial +syn keyword glslBuiltinVariable gl_FrontSecondaryColor +syn keyword glslBuiltinVariable gl_GlobalInvocationID +syn keyword glslBuiltinVariable gl_HelperInvocation +syn keyword glslBuiltinVariable gl_InstanceID +syn keyword glslBuiltinVariable gl_InvocationID +syn keyword glslBuiltinVariable gl_Layer +syn keyword glslBuiltinVariable gl_LightModel +syn keyword glslBuiltinVariable gl_LightSource +syn keyword glslBuiltinVariable gl_LocalInvocationID +syn keyword glslBuiltinVariable gl_LocalInvocationIndex +syn keyword glslBuiltinVariable gl_ModelViewMatrix +syn keyword glslBuiltinVariable gl_ModelViewMatrixInverse +syn keyword glslBuiltinVariable gl_ModelViewMatrixInverseTranspose +syn keyword glslBuiltinVariable gl_ModelViewMatrixTranspose +syn keyword glslBuiltinVariable gl_ModelViewProjectionMatrix +syn keyword glslBuiltinVariable gl_ModelViewProjectionMatrixInverse +syn keyword glslBuiltinVariable gl_ModelViewProjectionMatrixInverseTranspose +syn keyword glslBuiltinVariable gl_ModelViewProjectionMatrixTranspose +syn keyword glslBuiltinVariable gl_MultiTexCoord0 +syn keyword glslBuiltinVariable gl_MultiTexCoord1 +syn keyword glslBuiltinVariable gl_MultiTexCoord2 +syn keyword glslBuiltinVariable gl_MultiTexCoord3 +syn keyword glslBuiltinVariable gl_MultiTexCoord4 +syn keyword glslBuiltinVariable gl_MultiTexCoord5 +syn keyword glslBuiltinVariable gl_MultiTexCoord6 +syn keyword glslBuiltinVariable gl_MultiTexCoord7 +syn keyword glslBuiltinVariable gl_Normal +syn keyword glslBuiltinVariable gl_NormalMatrix +syn keyword glslBuiltinVariable gl_NormalScale +syn keyword glslBuiltinVariable gl_NumSamples +syn keyword glslBuiltinVariable gl_NumWorkGroups +syn keyword glslBuiltinVariable gl_ObjectPlaneQ +syn keyword glslBuiltinVariable gl_ObjectPlaneR +syn keyword glslBuiltinVariable gl_ObjectPlaneS +syn keyword glslBuiltinVariable gl_ObjectPlaneT +syn keyword glslBuiltinVariable gl_PatchVerticesIn +syn keyword glslBuiltinVariable gl_Point +syn keyword glslBuiltinVariable gl_PointCoord +syn keyword glslBuiltinVariable gl_PointSize +syn keyword glslBuiltinVariable gl_Position +syn keyword glslBuiltinVariable gl_PrimitiveID +syn keyword glslBuiltinVariable gl_PrimitiveIDIn +syn keyword glslBuiltinVariable gl_ProjectionMatrix +syn keyword glslBuiltinVariable gl_ProjectionMatrixInverse +syn keyword glslBuiltinVariable gl_ProjectionMatrixInverseTranspose +syn keyword glslBuiltinVariable gl_ProjectionMatrixTranspose +syn keyword glslBuiltinVariable gl_SampleID +syn keyword glslBuiltinVariable gl_SampleMask +syn keyword glslBuiltinVariable gl_SampleMaskIn +syn keyword glslBuiltinVariable gl_SamplePosition +syn keyword glslBuiltinVariable gl_SecondaryColor +syn keyword glslBuiltinVariable gl_TessCoord +syn keyword glslBuiltinVariable gl_TessLevelInner +syn keyword glslBuiltinVariable gl_TessLevelOuter +syn keyword glslBuiltinVariable gl_TexCoord +syn keyword glslBuiltinVariable gl_TextureEnvColor +syn keyword glslBuiltinVariable gl_TextureMatrix +syn keyword glslBuiltinVariable gl_TextureMatrixInverse +syn keyword glslBuiltinVariable gl_TextureMatrixInverseTranspose +syn keyword glslBuiltinVariable gl_TextureMatrixTranspose +syn keyword glslBuiltinVariable gl_Vertex +syn keyword glslBuiltinVariable gl_VertexID +syn keyword glslBuiltinVariable gl_ViewportIndex +syn keyword glslBuiltinVariable gl_WorkGroupID +syn keyword glslBuiltinVariable gl_WorkGroupSize +syn keyword glslBuiltinVariable gl_in +syn keyword glslBuiltinVariable gl_out + +" Built-in Functions +syn keyword glslBuiltinFunction EmitStreamVertex +syn keyword glslBuiltinFunction EmitVertex +syn keyword glslBuiltinFunction EndPrimitive +syn keyword glslBuiltinFunction EndStreamPrimitive +syn keyword glslBuiltinFunction abs +syn keyword glslBuiltinFunction acos +syn keyword glslBuiltinFunction acosh +syn keyword glslBuiltinFunction all +syn keyword glslBuiltinFunction any +syn keyword glslBuiltinFunction asin +syn keyword glslBuiltinFunction asinh +syn keyword glslBuiltinFunction atan +syn keyword glslBuiltinFunction atanh +syn keyword glslBuiltinFunction atomicAdd +syn keyword glslBuiltinFunction atomicAnd +syn keyword glslBuiltinFunction atomicCompSwap +syn keyword glslBuiltinFunction atomicCounter +syn keyword glslBuiltinFunction atomicCounterDecrement +syn keyword glslBuiltinFunction atomicCounterIncrement +syn keyword glslBuiltinFunction atomicExchange +syn keyword glslBuiltinFunction atomicMax +syn keyword glslBuiltinFunction atomicMin +syn keyword glslBuiltinFunction atomicOr +syn keyword glslBuiltinFunction atomicXor +syn keyword glslBuiltinFunction barrier +syn keyword glslBuiltinFunction bitCount +syn keyword glslBuiltinFunction bitfieldExtract +syn keyword glslBuiltinFunction bitfieldInsert +syn keyword glslBuiltinFunction bitfieldReverse +syn keyword glslBuiltinFunction ceil +syn keyword glslBuiltinFunction clamp +syn keyword glslBuiltinFunction cos +syn keyword glslBuiltinFunction cosh +syn keyword glslBuiltinFunction cross +syn keyword glslBuiltinFunction dFdx +syn keyword glslBuiltinFunction dFdxCoarse +syn keyword glslBuiltinFunction dFdxFine +syn keyword glslBuiltinFunction dFdy +syn keyword glslBuiltinFunction dFdyCoarse +syn keyword glslBuiltinFunction dFdyFine +syn keyword glslBuiltinFunction degrees +syn keyword glslBuiltinFunction determinant +syn keyword glslBuiltinFunction distance +syn keyword glslBuiltinFunction dot +syn keyword glslBuiltinFunction equal +syn keyword glslBuiltinFunction exp +syn keyword glslBuiltinFunction exp2 +syn keyword glslBuiltinFunction faceforward +syn keyword glslBuiltinFunction findLSB +syn keyword glslBuiltinFunction findMSB +syn keyword glslBuiltinFunction floatBitsToInt +syn keyword glslBuiltinFunction floatBitsToUint +syn keyword glslBuiltinFunction floor +syn keyword glslBuiltinFunction fma +syn keyword glslBuiltinFunction fract +syn keyword glslBuiltinFunction frexp +syn keyword glslBuiltinFunction ftransform +syn keyword glslBuiltinFunction fwidth +syn keyword glslBuiltinFunction fwidthCoarse +syn keyword glslBuiltinFunction fwidthFine +syn keyword glslBuiltinFunction greaterThan +syn keyword glslBuiltinFunction greaterThanEqual +syn keyword glslBuiltinFunction groupMemoryBarrier +syn keyword glslBuiltinFunction imageAtomicAdd +syn keyword glslBuiltinFunction imageAtomicAnd +syn keyword glslBuiltinFunction imageAtomicCompSwap +syn keyword glslBuiltinFunction imageAtomicExchange +syn keyword glslBuiltinFunction imageAtomicMax +syn keyword glslBuiltinFunction imageAtomicMin +syn keyword glslBuiltinFunction imageAtomicOr +syn keyword glslBuiltinFunction imageAtomicXor +syn keyword glslBuiltinFunction imageLoad +syn keyword glslBuiltinFunction imageSize +syn keyword glslBuiltinFunction imageStore +syn keyword glslBuiltinFunction imulExtended +syn keyword glslBuiltinFunction intBitsToFloat +syn keyword glslBuiltinFunction interpolateAtCentroid +syn keyword glslBuiltinFunction interpolateAtOffset +syn keyword glslBuiltinFunction interpolateAtSample +syn keyword glslBuiltinFunction inverse +syn keyword glslBuiltinFunction inversesqrt +syn keyword glslBuiltinFunction isinf +syn keyword glslBuiltinFunction isnan +syn keyword glslBuiltinFunction ldexp +syn keyword glslBuiltinFunction length +syn keyword glslBuiltinFunction lessThan +syn keyword glslBuiltinFunction lessThanEqual +syn keyword glslBuiltinFunction log +syn keyword glslBuiltinFunction log2 +syn keyword glslBuiltinFunction matrixCompMult +syn keyword glslBuiltinFunction max +syn keyword glslBuiltinFunction memoryBarrier +syn keyword glslBuiltinFunction memoryBarrierAtomicCounter +syn keyword glslBuiltinFunction memoryBarrierBuffer +syn keyword glslBuiltinFunction memoryBarrierImage +syn keyword glslBuiltinFunction memoryBarrierShared +syn keyword glslBuiltinFunction min +syn keyword glslBuiltinFunction mix +syn keyword glslBuiltinFunction mod +syn keyword glslBuiltinFunction modf +syn keyword glslBuiltinFunction noise1 +syn keyword glslBuiltinFunction noise2 +syn keyword glslBuiltinFunction noise3 +syn keyword glslBuiltinFunction noise4 +syn keyword glslBuiltinFunction normalize +syn keyword glslBuiltinFunction not +syn keyword glslBuiltinFunction notEqual +syn keyword glslBuiltinFunction outerProduct +syn keyword glslBuiltinFunction packDouble2x32 +syn keyword glslBuiltinFunction packHalf2x16 +syn keyword glslBuiltinFunction packSnorm2x16 +syn keyword glslBuiltinFunction packSnorm4x8 +syn keyword glslBuiltinFunction packUnorm2x16 +syn keyword glslBuiltinFunction packUnorm4x8 +syn keyword glslBuiltinFunction pow +syn keyword glslBuiltinFunction radians +syn keyword glslBuiltinFunction reflect +syn keyword glslBuiltinFunction refract +syn keyword glslBuiltinFunction round +syn keyword glslBuiltinFunction roundEven +syn keyword glslBuiltinFunction shadow1D +syn keyword glslBuiltinFunction shadow1DLod +syn keyword glslBuiltinFunction shadow1DProj +syn keyword glslBuiltinFunction shadow1DProjLod +syn keyword glslBuiltinFunction shadow2D +syn keyword glslBuiltinFunction shadow2DLod +syn keyword glslBuiltinFunction shadow2DProj +syn keyword glslBuiltinFunction shadow2DProjLod +syn keyword glslBuiltinFunction sign +syn keyword glslBuiltinFunction sin +syn keyword glslBuiltinFunction sinh +syn keyword glslBuiltinFunction smoothstep +syn keyword glslBuiltinFunction sqrt +syn keyword glslBuiltinFunction step +syn keyword glslBuiltinFunction tan +syn keyword glslBuiltinFunction tanh +syn keyword glslBuiltinFunction texelFetch +syn keyword glslBuiltinFunction texelFetchOffset +syn keyword glslBuiltinFunction texture +syn keyword glslBuiltinFunction texture1D +syn keyword glslBuiltinFunction texture1DLod +syn keyword glslBuiltinFunction texture1DProj +syn keyword glslBuiltinFunction texture1DProjLod +syn keyword glslBuiltinFunction texture2D +syn keyword glslBuiltinFunction texture2DLod +syn keyword glslBuiltinFunction texture2DProj +syn keyword glslBuiltinFunction texture2DProjLod +syn keyword glslBuiltinFunction texture3D +syn keyword glslBuiltinFunction texture3DLod +syn keyword glslBuiltinFunction texture3DProj +syn keyword glslBuiltinFunction texture3DProjLod +syn keyword glslBuiltinFunction textureCube +syn keyword glslBuiltinFunction textureCubeLod +syn keyword glslBuiltinFunction textureGather +syn keyword glslBuiltinFunction textureGatherOffset +syn keyword glslBuiltinFunction textureGatherOffsets +syn keyword glslBuiltinFunction textureGrad +syn keyword glslBuiltinFunction textureGradOffset +syn keyword glslBuiltinFunction textureLod +syn keyword glslBuiltinFunction textureLodOffset +syn keyword glslBuiltinFunction textureOffset +syn keyword glslBuiltinFunction textureProj +syn keyword glslBuiltinFunction textureProjGrad +syn keyword glslBuiltinFunction textureProjGradOffset +syn keyword glslBuiltinFunction textureProjLod +syn keyword glslBuiltinFunction textureProjLodOffset +syn keyword glslBuiltinFunction textureProjOffset +syn keyword glslBuiltinFunction textureQueryLevels +syn keyword glslBuiltinFunction textureQueryLod +syn keyword glslBuiltinFunction textureSize +syn keyword glslBuiltinFunction transpose +syn keyword glslBuiltinFunction trunc +syn keyword glslBuiltinFunction uaddCarry +syn keyword glslBuiltinFunction uintBitsToFloat +syn keyword glslBuiltinFunction umulExtended +syn keyword glslBuiltinFunction unpackDouble2x32 +syn keyword glslBuiltinFunction unpackHalf2x16 +syn keyword glslBuiltinFunction unpackSnorm2x16 +syn keyword glslBuiltinFunction unpackSnorm4x8 +syn keyword glslBuiltinFunction unpackUnorm2x16 +syn keyword glslBuiltinFunction unpackUnorm4x8 +syn keyword glslBuiltinFunction usubBorrow + +hi def link glslConditional     Conditional +hi def link glslRepeat          Repeat +hi def link glslStatement       Statement +hi def link glslTodo            Todo +hi def link glslCommentL        glslComment +hi def link glslCommentStart    glslComment +hi def link glslComment         Comment +hi def link glslPreCondit       PreCondit +hi def link glslDefine          Define +hi def link glslTokenConcat     glslPreProc +hi def link glslPredefinedMacro Macro +hi def link glslPreProc         PreProc +hi def link glslBoolean         Boolean +hi def link glslDecimalInt      glslInteger +hi def link glslOctalInt        glslInteger +hi def link glslHexInt          glslInteger +hi def link glslInteger         Number +hi def link glslFloat           Float +hi def link glslIdentifierPrime glslIdentifier +hi def link glslIdentifier      Identifier +hi def link glslStructure       Structure +hi def link glslType            Type +hi def link glslQualifier       StorageClass +hi def link glslBuiltinConstant Constant +hi def link glslBuiltinFunction Function +hi def link glslBuiltinVariable Identifier +hi def link glslSwizzle         Identifier + +if !exists("b:current_syntax") +  let b:current_syntax = "glsl" +endif + +" vim:set sts=2 sw=2 : + +endif diff --git a/syntax/gmpl.vim b/syntax/gmpl.vim new file mode 100644 index 00000000..2b8d7128 --- /dev/null +++ b/syntax/gmpl.vim @@ -0,0 +1,122 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'gmpl') == -1 +   +" Vim syntax file +" Language: GMPL +" Maintainer: Mark Mba Wright +" Latest Revision: 9 July 2012 + +if exists("b:current_syntax") +  finish +endif + +syn sync fromstart + + +syn match gmplArithmeticSetOperator "\.\." + +" Integer with - + or nothing in front +syn match gmplNumber '\d\+' +syn match gmplNumber '[-+]\d\+' + +" Floating point gmplNumber with decimal no E or e (+,-) +syn match gmplNumber '\d*\.\d\+' +syn match gmplNumber '[-+]\d*\.\d\+' + +" Floating point like gmplNumber with E and no decimal point (+,-) +syn match gmplNumber '[-+]\=\d[[:digit:]]*[eE][\-+]\=\d\+' +syn match gmplNumber '\d[[:digit:]]*[eE][\-+]\=\d\+' + +" Floating point like gmplNumber with E and decimal point (+,-) +syn match gmplNumber '[-+]\=\d[[:digit:]]*\.\d*[eE][\-+]\=\d\+' +syn match gmplNumber '\d[[:digit:]]*\.\d*[eE][\-+]\=\d\+' +syn match gmplIndex   /\<\%(in\>\)\@!\w*/ contained contains=gmplKeyword,gmplNumber +syn match gmplLabel  '[a-zA-Z][a-zA-Z0-9_]*' +syn match gmplArithmeticOperator	"[-+]" +syn match gmplArithmeticOperator	"\.\=[*/\\^]" +syn match gmplRelationalOperator	"[=~]=" +syn match gmplRelationalOperator	"[<>]=\=" +" syn match gmplLogicalOperator		"[&|~] + +" match indeces + +" comments +syn match gmplComment /\/\*.\{-}\*\// +syn region gmplComment start="/\*"  end="\*/" +syn match gmplComment '#.\{-}$' + +" strings +syn region gmplString start="\"" end="\"" +syn region gmplString start="\'" end="\'" contains=gmplStringToken +syn match gmplStringToken '\%[a-z]' contained + +" Keywords +syn keyword gmplKeyword and else by if cross in diff inter div less mod union not within or symdiff then  +syn keyword gmplKeyword minimize maximize solve +syn keyword gmplType set var param nextgroup=gmplLabel skipwhite + +" Regions +syn region gmplIndexExpression start="{" end="}" transparent contains=gmplIndex,gmplIndexExpression +syn region gmplIndexGroup start="\[" end="\]" transparent contains=gmplIndex +" syn region gmplParen start="(" end=")"   + +"" catch errors caused by wrong parenthesis +syn match   gmplParensError    ")\|}\|\]" +syn match   gmplParensErrA     contained "\]" +syn match   gmplParensErrC     contained "}" + + +hi level1c  ctermfg=brown       guifg=brown               +hi level2c  ctermfg=darkgreen   guifg=darkgreen   gui=bold +hi level3c  ctermfg=Darkblue    guifg=Darkblue             +hi level4c  ctermfg=darkmagenta guifg=darkmagenta gui=bold +hi level5c  ctermfg=darkcyan    guifg=darkcyan             +hi level6c  ctermfg=white       guifg=white       gui=bold +hi level7c  ctermfg=darkred     guifg=darkred +hi level8c  ctermfg=blue        guifg=blue        gui=bold  +hi level9c  ctermfg=darkgray    guifg=darkgray                  +hi level10c ctermfg=brown       guifg=brown       gui=bold  +hi level11c ctermfg=darkgreen   guifg=darkgreen          +hi level12c ctermfg=Darkblue    guifg=Darkblue    gui=bold  +hi level13c ctermfg=darkmagenta guifg=darkmagenta             +hi level14c ctermfg=darkcyan    guifg=darkcyan    gui=bold  +hi level15c ctermfg=gray       guifg=gray           + +" These are the regions for each pair. +" This could be improved, perhaps, by makeing them match [ and { also, +" but I'm not going to take the time to figure out haw to make the +" end pattern match only the proper type. +syn region level1 matchgroup=level1c start=/(/ end=/)/ contains=TOP,level1,level2,level3,level4,level5,level6,level7,level8,level9,level10,level11,level12,level13,level14,level15, NoInParens +syn region level2 matchgroup=level2c start=/(/ end=/)/ contains=TOP,level2,level3,level4,level5,level6,level7,level8,level9,level10,level11,level12,level13,level14,level15, NoInParens +syn region level3 matchgroup=level3c start=/(/ end=/)/ contains=TOP,level3,level4,level5,level6,level7,level8,level9,level10,level11,level12,level13,level14,level15, NoInParens +syn region level4 matchgroup=level4c start=/(/ end=/)/ contains=TOP,level4,level5,level6,level7,level8,level9,level10,level11,level12,level13,level14,level15, NoInParens +syn region level5 matchgroup=level5c start=/(/ end=/)/ contains=TOP,level5,level6,level7,level8,level9,level10,level11,level12,level13,level14,level15, NoInParens +syn region level6 matchgroup=level6c start=/(/ end=/)/ contains=TOP,level6,level7,level8,level9,level10,level11,level12,level13,level14,level15, NoInParens +syn region level7 matchgroup=level7c start=/(/ end=/)/ contains=TOP,level7,level8,level9,level10,level11,level12,level13,level14,level15, NoInParens +syn region level8 matchgroup=level8c start=/(/ end=/)/ contains=TOP,level8,level9,level10,level11,level12,level13,level14,level15, NoInParens +syn region level9 matchgroup=level9c start=/(/ end=/)/ contains=TOP,level9,level10,level11,level12,level13,level14,level15, NoInParens +syn region level10 matchgroup=level10c start=/(/ end=/)/ contains=TOP,level10,level11,level12,level13,level14,level15, NoInParens +syn region level11 matchgroup=level11c start=/(/ end=/)/ contains=TOP,level11,level12,level13,level14,level15, NoInParens +syn region level12 matchgroup=level12c start=/(/ end=/)/ contains=TOP,level12,level13,level14,level15, NoInParens +syn region level13 matchgroup=level13c start=/(/ end=/)/ contains=TOP,level13,level14,level15, NoInParens +syn region level14 matchgroup=level14c start=/(/ end=/)/ contains=TOP,level14,level15, NoInParens +syn region level15 matchgroup=level15c start=/(/ end=/)/ contains=TOP,level15, NoInParens + +let b:current_syntax = "gmpl" + +hi def link gmplKeyword Keyword +hi def link gmplParensError Error +hi def link gmplParensErrA Error +hi def link gmplParensErrB Error +hi def link gmplParensErrC Error +" hi def link gmplIndexExpression Label +" hi def link gmplParen Label +" hi def link gmplIndexGroup Label +hi def link gmplIndex Identifier +hi def link gmplNumber Number +hi def link gmplComment Comment +hi def link gmplType Type +hi def link gmplLabel Keyword +hi def link gmplString String +hi def link gmplStringToken Special  + +endif diff --git a/syntax/latextoc.vim b/syntax/latextoc.vim deleted file mode 100644 index 0faca708..00000000 --- a/syntax/latextoc.vim +++ /dev/null @@ -1,13 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'latex') == -1 -   -syntax match helpText /^.*: .*/ -syntax match secNum /^\S\+\(\.\S\+\)\?\s*/ contained conceal -syntax match secLine /^\S\+\t.\+/ contains=secNum -syntax match mainSecLine /^[^\.]\+\t.*/ contains=secNum -syntax match ssubSecLine /^[^\.]\+\.[^\.]\+\.[^\.]\+\t.*/ contains=secNum -highlight link helpText		PreProc -highlight link secNum		Number -highlight link mainSecLine	Title -highlight link ssubSecLine	Comment - -endif diff --git a/syntax/slime.vim b/syntax/slime.vim new file mode 100644 index 00000000..57926691 --- /dev/null +++ b/syntax/slime.vim @@ -0,0 +1,106 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'slime') == -1 +   +" Vim syntax file +" Language: slime +" Maintainer: Andrew Stone <andy@stonean.com> +" Version:  1 +" Last Change:  2010 Sep 25 +" TODO: Feedback is welcomed. + +" Quit when a syntax file is already loaded. +if exists("b:current_syntax") +  finish +endif + +if !exists("main_syntax") +  let main_syntax = 'slime' +endif + +" Allows a per line syntax evaluation. +let b:elixir_no_expensive = 1 + +" Include Elixir syntax highlighting +syn include @slimeElixirTop syntax/elixir.vim +unlet! b:current_syntax +" Include Haml syntax highlighting +syn include @slimeHaml syntax/haml.vim +unlet! b:current_syntax + +syn match slimeBegin  "^\s*\(&[^= ]\)\@!" nextgroup=slimeTag,slimeClassChar,slimeIdChar,slimeElixir + +syn region  elixirCurlyBlock start="{" end="}" contains=@slimeElixirTop contained +syn cluster slimeElixirTop    add=elixirCurlyBlock + +syn cluster slimeComponent contains=slimeClassChar,slimeIdChar,slimeWrappedAttrs,slimeElixir,slimeAttr,slimeInlineTagChar + +syn keyword slimeDocType        contained html 5 1.1 strict frameset mobile basic transitional +syn match   slimeDocTypeKeyword "^\s*\(doctype\)\s\+" nextgroup=slimeDocType + +syn keyword slimeTodo        FIXME TODO NOTE OPTIMIZE XXX contained +syn keyword htmlTagName     contained script + +syn match slimeTag           "\w\+[><]*"         contained contains=htmlTagName nextgroup=@slimeComponent +syn match slimeIdChar        "#{\@!"        contained nextgroup=slimeId +syn match slimeId            "\%(\w\|-\)\+" contained nextgroup=@slimeComponent +syn match slimeClassChar     "\."           contained nextgroup=slimeClass +syn match slimeClass         "\%(\w\|-\)\+" contained nextgroup=@slimeComponent +syn match slimeInlineTagChar "\s*:\s*"      contained nextgroup=slimeTag,slimeClassChar,slimeIdChar + +syn region slimeWrappedAttrs matchgroup=slimeWrappedAttrsDelimiter start="\s*{\s*" skip="}\s*\""  end="\s*}\s*"  contained contains=slimeAttr nextgroup=slimeElixir +syn region slimeWrappedAttrs matchgroup=slimeWrappedAttrsDelimiter start="\s*\[\s*" end="\s*\]\s*" contained contains=slimeAttr nextgroup=slimeElixir +syn region slimeWrappedAttrs matchgroup=slimeWrappedAttrsDelimiter start="\s*(\s*"  end="\s*)\s*"  contained contains=slimeAttr nextgroup=slimeElixir + +syn match slimeAttr /\s*\%(\w\|-\)\+\s*=/me=e-1 contained contains=htmlArg nextgroup=slimeAttrAssignment +syn match slimeAttrAssignment "\s*=\s*" contained nextgroup=slimeWrappedAttrValue,slimeAttrString + +syn region slimeWrappedAttrValue start="[^"']" end="\s\|$" contained contains=slimeAttrString,@slimeElixirTop nextgroup=slimeAttr,slimeElixir,slimeInlineTagChar +syn region slimeWrappedAttrValue matchgroup=slimeWrappedAttrValueDelimiter start="{" end="}" contained contains=slimeAttrString,@slimeElixirTop nextgroup=slimeAttr,slimeElixir,slimeInlineTagChar +syn region slimeWrappedAttrValue matchgroup=slimeWrappedAttrValueDelimiter start="\[" end="\]" contained contains=slimeAttrString,@slimeElixirTop nextgroup=slimeAttr,slimeElixir,slimeInlineTagChar +syn region slimeWrappedAttrValue matchgroup=slimeWrappedAttrValueDelimiter start="(" end=")" contained contains=slimeAttrString,@slimeElixirTop nextgroup=slimeAttr,slimeElixir,slimeInlineTagChar + +syn region slimeAttrString start=+\s*"+ skip=+\%(\\\\\)*\\"+ end=+"\s*+ contained contains=slimeInterpolation,slimeInterpolationEscape nextgroup=slimeAttr,slimeElixir,slimeInlineTagChar +syn region slimeAttrString start=+\s*'+ skip=+\%(\\\\\)*\\"+ end=+'\s*+ contained contains=slimeInterpolation,slimeInterpolationEscape nextgroup=slimeAttr,slimeElixir,slimeInlineTagChar + +syn region slimeInnerAttrString start=+\s*"+ skip=+\%(\\\\\)*\\"+ end=+"\s*+ contained contains=slimeInterpolation,slimeInterpolationEscape nextgroup=slimeAttr +syn region slimeInnerAttrString start=+\s*'+ skip=+\%(\\\\\)*\\"+ end=+'\s*+ contained contains=slimeInterpolation,slimeInterpolationEscape nextgroup=slimeAttr + +syn region slimeInterpolation matchgroup=slimeInterpolationDelimiter start="#{" end="}" contains=@slimeElixirTop containedin=javascriptStringS,javascriptStringD,slimeWrappedAttrs +syn region slimeInterpolation matchgroup=slimeInterpolationDelimiter start="#{{" end="}}" contains=@slimeElixirTop containedin=javascriptStringS,javascriptStringD,slimeWrappedAttrs +syn match  slimeInterpolationEscape "\\\@<!\%(\\\\\)*\\\%(\\\ze#{\|#\ze{\)" + +syn region slimeElixir matchgroup=slimeElixirOutputChar start="\s*[=]\==[']\=" skip="\%\(,\s*\|\\\)$" end="$" contained contains=@slimeElixirTop keepend +syn region slimeElixir matchgroup=slimeElixirChar       start="\s*-"           skip="\%\(,\s*\|\\\)$" end="$" contained contains=@slimeElixirTop keepend + +syn match slimeComment /^\(\s*\)[/].*\(\n\1\s.*\)*/ contains=slimeTodo +syn match slimeText    /^\(\s*\)[`|'].*\(\n\1\s.*\)*/ contains=slimeInterpolation + +syn match slimeFilter /\s*\w\+:\s*/                            contained +syn match slimeHaml   /^\(\s*\)\<haml:\>.*\(\n\1\s.*\)*/       contains=@slimeHaml,slimeFilter + +syn match slimeIEConditional "\%(^\s*/\)\@<=\[\s*if\>[^]]*]" contained containedin=slimeComment + +hi def link slimeAttrString                String +hi def link slimeBegin                     String +hi def link slimeClass                     Type +hi def link slimeAttr                      Type +hi def link slimeClassChar                 Type +hi def link slimeComment                   Comment +hi def link slimeDocType                   Identifier +hi def link slimeDocTypeKeyword            Keyword +hi def link slimeFilter                    Keyword +hi def link slimeIEConditional             SpecialComment +hi def link slimeId                        Identifier +hi def link slimeIdChar                    Identifier +hi def link slimeInnerAttrString           String +hi def link slimeInterpolationDelimiter    Delimiter +hi def link slimeElixirChar                  Special +hi def link slimeElixirOutputChar            Special +hi def link slimeText                      String +hi def link slimeTodo                      Todo +hi def link slimeWrappedAttrValueDelimiter Delimiter +hi def link slimeWrappedAttrsDelimiter     Delimiter +hi def link slimeInlineTagChar             Delimiter + +let b:current_syntax = "slime" + +endif | 
