diff options
author | Bram Moolenaar <Bram@vim.org> | 2010-08-02 22:12:46 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2010-08-02 22:12:46 +0200 |
commit | 4b22cdb0609090d59f8cec26b2493abe02ea48b7 (patch) | |
tree | 36d502940d1c39a570539afa841861b58a64da46 | |
parent | 413177336f3d7f35afa5d1a96bc7f98b3123b0b6 (diff) |
Syntax file updates. (Charles Campbell)
-rw-r--r-- | runtime/syntax/sh.vim | 44 | ||||
-rw-r--r-- | runtime/syntax/tex.vim | 510 | ||||
-rw-r--r-- | runtime/syntax/vim.vim | 30 | ||||
-rw-r--r-- | runtime/syntax/yacc.vim | 12 |
4 files changed, 361 insertions, 235 deletions
diff --git a/runtime/syntax/sh.vim b/runtime/syntax/sh.vim index ef057c93e4..681ca3a45f 100644 --- a/runtime/syntax/sh.vim +++ b/runtime/syntax/sh.vim @@ -2,11 +2,11 @@ " Language: shell (sh) Korn shell (ksh) bash (sh) " Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz> " Previous Maintainer: Lennart Schultz <Lennart.Schultz@ecmwf.int> -" Last Change: Apr 12, 2010 -" Version: 112 +" Last Change: Jul 29, 2010 +" Version: 113 " URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax " For options and settings, please use: :help ft-sh-syntax -" This file includes many ideas from ric Brunet (eric.brunet@ens.fr) +" This file includes many ideas from ?ric Brunet (eric.brunet@ens.fr) " For version 5.x: Clear all syntax items {{{1 " For version 6.x: Quit when a syntax file was already loaded @@ -100,12 +100,12 @@ syn cluster shTestList contains=shCharClass,shComment,shCommandSub,shDeref,shDer " Echo: {{{1 " ==== " This one is needed INSIDE a CommandSub, so that `echo bla` be correct -syn region shEcho matchgroup=shStatement start="\<echo\>" skip="\\$" matchgroup=shOperator end="$" matchgroup=NONE end="[<>;&|()]"me=e-1 end="\d[<>]"me=e-2 end="\s#"me=e-2 contains=@shEchoList skipwhite nextgroup=shQuickComment -syn region shEcho matchgroup=shStatement start="\<print\>" skip="\\$" matchgroup=shOperator end="$" matchgroup=NONE end="[<>;&|()]"me=e-1 end="\d[<>]"me=e-2 end="\s#"me=e-2 contains=@shEchoList skipwhite nextgroup=shQuickComment +syn region shEcho matchgroup=shStatement start="\<echo\>" skip="\\$" matchgroup=shEchoDelim end="$" matchgroup=NONE end="[<>;&|()]"me=e-1 end="\d[<>]"me=e-2 end="\s#"me=e-2 contains=@shEchoList skipwhite nextgroup=shQuickComment +syn region shEcho matchgroup=shStatement start="\<print\>" skip="\\$" matchgroup=shEchoDelim end="$" matchgroup=NONE end="[<>;&|()]"me=e-1 end="\d[<>]"me=e-2 end="\s#"me=e-2 contains=@shEchoList skipwhite nextgroup=shQuickComment syn match shEchoQuote contained '\%(\\\\\)*\\["`'()]' " This must be after the strings, so that ... \" will be correct -syn region shEmbeddedEcho contained matchgroup=shStatement start="\<print\>" skip="\\$" matchgroup=shOperator end="$" matchgroup=NONE end="[<>;&|`)]"me=e-1 end="\d[<>]"me=e-2 end="\s#"me=e-2 contains=shNumber,shExSingleQuote,shSingleQuote,shDeref,shDerefSimple,shSpecialVar,shOperator,shDoubleQuote,shCharClass,shCtrlSeq +syn region shEmbeddedEcho contained matchgroup=shStatement start="\<print\>" skip="\\$" matchgroup=shEchoDelim end="$" matchgroup=NONE end="[<>;&|`)]"me=e-1 end="\d[<>]"me=e-2 end="\s#"me=e-2 contains=shNumber,shExSingleQuote,shSingleQuote,shDeref,shDerefSimple,shSpecialVar,shOperator,shDoubleQuote,shCharClass,shCtrlSeq " Alias: {{{1 " ===== @@ -211,12 +211,12 @@ else endif syn keyword shCaseIn contained skipwhite skipnl in nextgroup=shCase,shCaseStart,shCaseBar,shComment,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote if exists("b:is_bash") - syn region shCaseExSingleQuote matchgroup=shOperator start=+\$'+ skip=+\\\\\|\\.+ end=+'+ contains=shStringSpecial,shSpecial skipwhite skipnl nextgroup=shCaseBar contained + syn region shCaseExSingleQuote matchgroup=shQuote start=+\$'+ skip=+\\\\\|\\.+ end=+'+ contains=shStringSpecial,shSpecial skipwhite skipnl nextgroup=shCaseBar contained else syn region shCaseExSingleQuote matchgroup=Error start=+\$'+ skip=+\\\\\|\\.+ end=+'+ contains=shStringSpecial skipwhite skipnl nextgroup=shCaseBar contained endif -syn region shCaseSingleQuote matchgroup=shOperator start=+'+ end=+'+ contains=shStringSpecial skipwhite skipnl nextgroup=shCaseBar contained -syn region shCaseDoubleQuote matchgroup=shOperator start=+"+ skip=+\\\\\|\\.+ end=+"+ contains=@shDblQuoteList,shStringSpecial skipwhite skipnl nextgroup=shCaseBar contained +syn region shCaseSingleQuote matchgroup=shQuote start=+'+ end=+'+ contains=shStringSpecial skipwhite skipnl nextgroup=shCaseBar contained +syn region shCaseDoubleQuote matchgroup=shQuote start=+"+ skip=+\\\\\|\\.+ end=+"+ contains=@shDblQuoteList,shStringSpecial skipwhite skipnl nextgroup=shCaseBar contained syn region shCaseCommandSub start=+`+ skip=+\\\\\|\\.+ end=+`+ contains=@shCommandSubList skipwhite skipnl nextgroup=shCaseBar contained syn region shCaseRange matchgroup=Delimiter start=+\[+ skip=+\\\\+ end=+]+ contained @@ -268,12 +268,12 @@ if exists("b:is_bash") syn match shSpecial "\\\o\o\o\|\\x\x\x\|\\c[^"]\|\\[abefnrtv]" contained endif if exists("b:is_bash") - syn region shExSingleQuote matchgroup=shOperator start=+\$'+ skip=+\\\\\|\\.+ end=+'+ contains=shStringSpecial,shSpecial + syn region shExSingleQuote matchgroup=shQuote start=+\$'+ skip=+\\\\\|\\.+ end=+'+ contains=shStringSpecial,shSpecial else syn region shExSingleQuote matchGroup=Error start=+\$'+ skip=+\\\\\|\\.+ end=+'+ contains=shStringSpecial endif -syn region shSingleQuote matchgroup=shOperator start=+'+ end=+'+ contains=@Spell -syn region shDoubleQuote matchgroup=shOperator start=+"+ skip=+\\"+ end=+"+ contains=@shDblQuoteList,shStringSpecial,@Spell +syn region shSingleQuote matchgroup=shQuote start=+'+ end=+'+ contains=@Spell +syn region shDoubleQuote matchgroup=shQuote start=+"+ skip=+\\"+ end=+"+ contains=@shDblQuoteList,shStringSpecial,@Spell syn match shStringSpecial "[^[:print:] \t]" contained syn match shStringSpecial "\%(\\\\\)*\\[\\"'`$()#]" syn match shSpecial "[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]" nextgroup=shMoreSpecial @@ -341,13 +341,13 @@ syn match shSetOption "\s\zs[-+][a-zA-Z0-9]\+\>" contained syn match shVariable "\<\([bwglsav]:\)\=[a-zA-Z0-9.!@_%+,]*\ze=" nextgroup=shSetIdentifier syn match shSetIdentifier "=" contained nextgroup=shPattern,shDeref,shDerefSimple,shDoubleQuote,shSingleQuote,shExSingleQuote if exists("b:is_bash") - syn region shSetList oneline matchgroup=shSet start="\<\(declare\|typeset\|local\|export\|unset\)\>\ze[^/]" end="$" matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+#\|=" contains=@shIdList - syn region shSetList oneline matchgroup=shSet start="\<set\>\ze[^/]" end="\ze[;|)]\|$" matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList + syn region shSetList oneline matchgroup=shSet start="\<\(declare\|typeset\|local\|export\|unset\)\>\ze[^/]" end="$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+#\|=" contains=@shIdList + syn region shSetList oneline matchgroup=shSet start="\<set\>\ze[^/]" end="\ze[;|)]\|$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList elseif exists("b:is_kornshell") - syn region shSetList oneline matchgroup=shSet start="\<\(typeset\|export\|unset\)\>\ze[^/]" end="$" matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList - syn region shSetList oneline matchgroup=shSet start="\<set\>\ze[^/]" end="$" matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList + syn region shSetList oneline matchgroup=shSet start="\<\(typeset\|export\|unset\)\>\ze[^/]" end="$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList + syn region shSetList oneline matchgroup=shSet start="\<set\>\ze[^/]" end="$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList else - syn region shSetList oneline matchgroup=shSet start="\<\(set\|export\|unset\)\>\ze[^/]" end="$" matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList + syn region shSetList oneline matchgroup=shSet start="\<\(set\|export\|unset\)\>\ze[^/]" end="$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList endif " Functions: {{{1 @@ -419,8 +419,8 @@ if exists("b:is_bash") || exists("b:is_kornshell") syn region shDerefPattern contained start="{" end="}" contains=shDeref,shDerefSimple,shDerefString,shCommandSub nextgroup=shDerefPattern syn match shDerefEscape contained '\%(\\\\\)*\\.' endif -syn region shDerefString contained matchgroup=shOperator start=+\%(\\\)\@<!'+ end=+'+ contains=shStringSpecial -syn region shDerefString contained matchgroup=shOperator start=+\%(\\\)\@<!"+ skip=+\\"+ end=+"+ contains=@shDblQuoteList,shStringSpecial +syn region shDerefString contained matchgroup=shDerefDelim start=+\%(\\\)\@<!'+ end=+'+ contains=shStringSpecial +syn region shDerefString contained matchgroup=shDerefDelim start=+\%(\\\)\@<!"+ skip=+\\"+ end=+"+ contains=@shDblQuoteList,shStringSpecial syn match shDerefString contained "\\["']" nextgroup=shDerefPattern if exists("b:is_bash") @@ -448,7 +448,7 @@ syn keyword shCondError elif else then " Useful ksh Keywords: {{{1 " ==================== if exists("b:is_kornshell") || exists("b:is_bash") - syn keyword shStatement autoload bg false fc fg functions getopts hash history integer jobs let nohup print printf r stop suspend times true type unalias whence + syn keyword shStatement autoload bg false fc fg functions getopts hash history integer jobs let nohup printf r stop suspend times true type unalias whence if exists("g:is_posix") syn keyword shStatement command else @@ -492,6 +492,7 @@ hi def link shCaseBar shConditional hi def link shCaseCommandSub shCommandSub hi def link shCaseDoubleQuote shDoubleQuote hi def link shCaseIn shConditional +hi def link shQuote shOperator hi def link shCaseSingleQuote shSingleQuote hi def link shCaseStart shConditional hi def link shCmdSubRegion shShellVariables @@ -500,12 +501,14 @@ hi def link shDerefOp shOperator hi def link shDerefPOL shDerefOp hi def link shDerefPPS shDerefOp hi def link shDeref shShellVariables +hi def link shDerefDelim shOperator hi def link shDerefSimple shDeref hi def link shDerefSpecial shDeref hi def link shDerefString shDoubleQuote hi def link shDerefVar shDeref hi def link shDoubleQuote shString hi def link shEcho shString +hi def link shEchoDelim shOperator hi def link shEchoQuote shString hi def link shEmbeddedEcho shString hi def link shEscape shCommandSub @@ -522,6 +525,7 @@ hi def link shPosnParm shShellVariables hi def link shQuickComment shComment hi def link shRange shOperator hi def link shRedir shOperator +hi def link shSetListDelim shOperator hi def link shSetOption shOption hi def link shSingleQuote shString hi def link shSource shOperator diff --git a/runtime/syntax/tex.vim b/runtime/syntax/tex.vim index 218f9cbfde..e1753d8205 100644 --- a/runtime/syntax/tex.vim +++ b/runtime/syntax/tex.vim @@ -2,7 +2,7 @@ " Language: TeX " Maintainer: Dr. Charles E. Campbell, Jr. <NdrchipO@ScampbellPfamily.AbizM> " Last Change: Jul 28, 2010 -" Version: 51 +" Version: 52 " URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax " " Notes: {{{1 @@ -37,6 +37,7 @@ if version < 600 elseif exists("b:current_syntax") finish endif +scriptencoding utf-8 " Define the default highlighting. {{{1 " For version 5.7 and earlier: only when not done already @@ -53,6 +54,14 @@ if exists("g:tex_tex") && !exists("g:tex_no_error") let g:tex_no_error= 1 endif +" let user determine which classes of concealment will be supported +" a=accents/ligatures m=math symbols g=Greek s=superscripts/subscripts +if !exists("g:tex_conceal") + let s:tex_conceal= 'amgs' +else + let s:tex_conceal= g:tex_conceal +endif + " Determine whether or not to use "*.sty" mode {{{1 " The user may override the normal determination by setting " g:tex_stylish to 1 (for "*.sty" mode) @@ -358,7 +367,13 @@ if !exists("tex_no_math") " \left..something.. and \right..something.. support: {{{2 syn match texMathDelimBad contained "\S" - syn match texMathDelim contained "\\\(left\|right\|[bB]igg\=[lr]\)\>" skipwhite nextgroup=texMathDelimSet1,texMathDelimSet2,texMathDelimBad + if has("conceal") && &enc == 'utf-8' && s:tex_conceal =~ 'm' + syn match texMathDelim contained "\\left\\{\>" skipwhite nextgroup=texMathDelimSet1,texMathDelimSet2,texMathDelimBad contains=texMathSymbol cchar={ + syn match texMathDelim contained "\\right\\}\>" skipwhite nextgroup=texMathDelimSet1,texMathDelimSet2,texMathDelimBad contains=texMathSymbol cchar=} + else + syn match texMathDelim contained "\\\(left\|right\)\>" skipwhite nextgroup=texMathDelimSet1,texMathDelimSet2,texMathDelimBad + endif + syn match texMathDelim contained "\\\([bB]igg\=[lr]\)\>" skipwhite nextgroup=texMathDelimSet1,texMathDelimSet2,texMathDelimBad syn match texMathDelim contained "\\\(left\|right\)arrow\>\|\<\([aA]rrow\|brace\)\=vert\>" syn match texMathDelim contained "\\lefteqn\>" syn match texMathDelimSet2 contained "\\" nextgroup=texMathDelimKey,texMathDelimBad @@ -480,220 +495,297 @@ endif if has("conceal") && &enc == 'utf-8' " Math Symbols {{{2 - syn match texMathSymbol '\\left(' contained conceal cchar=( - syn match texMathSymbol '\\right)' contained conceal cchar=) - syn match texMathSymbol '\\left{' contained conceal cchar={ - syn match texMathSymbol '\\right}' contained conceal cchar=} - syn match texMathSymbol '\\cdot\>' contained conceal cchar=· - syn match texMathSymbol '\\leq\>' contained conceal cchar=≤ - syn match texMathSymbol '\\geq\>' contained conceal cchar=≥ - syn match texMathSymbol '\\cdot\>' contained conceal cchar=· - syn match texMathSymbol '\\times\>' contained conceal cchar=× - syn match texMathSymbol '\\div\>' contained conceal cchar=÷ - syn match texMathSymbol '\\pm\>' contained conceal cchar=± - syn match texMathSymbol '\\neq\>' contained conceal cchar=≠ - syn match texMathSymbol '\\cong\>' contained conceal cchar=≅ + if s:tex_conceal =~ 'm' + syn match texMathSymbol '\\approx\>' contained conceal cchar=≈ + syn match texMathSymbol '\\ast\>' contained conceal cchar=∗ + syn match texMathSymbol '\\bigtriangledown\>' contained conceal cchar=∇ + syn match texMathSymbol '\\bigvee\>' contained conceal cchar=⋁ + syn match texMathSymbol '\\bigwedge\>' contained conceal cchar=⋀ + syn match texMathSymbol '\\blacksquare\>' contained conceal cchar=∎ + syn match texMathSymbol '\\cap\>' contained conceal cchar=∩ + syn match texMathSymbol '\\cdot\>' contained conceal cchar=· + syn match texMathSymbol '\\circ\>' contained conceal cchar=∘ + syn match texMathSymbol '\\circledcirc\>' contained conceal cchar=⊚ + syn match texMathSymbol '\\cong\>' contained conceal cchar=≅ + syn match texMathSymbol '\\cup\>' contained conceal cchar=∪ + syn match texMathSymbol '\\diamond\>' contained conceal cchar=⋄ + syn match texMathSymbol '\\div\>' contained conceal cchar=÷ + syn match texMathSymbol '\\doteq\>' contained conceal cchar=≐ + syn match texMathSymbol '\\dotsb\>' contained conceal cchar=⋯ + syn match texMathSymbol '\\emptyset\>' contained conceal cchar=∅ + syn match texMathSymbol '\\equiv\>' contained conceal cchar=≡ + syn match texMathSymbol '\\forall\>' contained conceal cchar=∀ + syn match texMathSymbol '\\geq\>' contained conceal cchar=≥ + syn match texMathSymbol '\\geq\>' contained conceal cchar=≥ + syn match texMathSymbol '\\gg\>' contained conceal cchar=⟫ + syn match texMathSymbol '\\gtreqless\>' contained conceal cchar=⋛ + syn match texMathSymbol '\\gtrless\>' contained conceal cchar=≷ + syn match texMathSymbol '\\Im\>' contained conceal cchar=ℑ + syn match texMathSymbol '\\in\>' contained conceal cchar=∈ + syn match texMathSymbol '\\infty\>' contained conceal cchar=∞ + syn match texMathSymbol '\\lceil\>' contained conceal cchar=⌈ + syn match texMathSymbol '\\leftarrow\>' contained conceal cchar=⟶ + syn match texMathSymbol '\\Leftarrow\>' contained conceal cchar=⟹ + syn match texMathSymbol '\\left(' contained conceal cchar=( + syn match texMathSymbol '\\left\[' contained conceal cchar=[ + syn match texMathSymbol '\\left\\{' contained conceal cchar={ + syn match texMathSymbol '\\leq\>' contained conceal cchar=≤ + syn match texMathSymbol '\\leq\>' contained conceal cchar=≤ + syn match texMathSymbol '\\lesseqgtr\>' contained conceal cchar=⋚ + syn match texMathSymbol '\\lfloor\>' contained conceal cchar=⌊ + syn match texMathSymbol '\\ll\>' contained conceal cchar=⟪ + syn match texMathSymbol '\\mapsto\>' contained conceal cchar=↦ + syn match texMathSymbol '\\mp\>' contained conceal cchar=∓ + syn match texMathSymbol '\\neq\>' contained conceal cchar=≠ + syn match texMathSymbol '\\ngeq\>' contained conceal cchar=≱ + syn match texMathSymbol '\\ngtr\>' contained conceal cchar=≯ + syn match texMathSymbol '\\nleq\>' contained conceal cchar=≰ + syn match texMathSymbol '\\nless\>' contained conceal cchar=≮ + syn match texMathSymbol '\\notin\>' contained conceal cchar=∉ + syn match texMathSymbol '\\odot\>' contained conceal cchar=⊙ + syn match texMathSymbol '\\oint\>' contained conceal cchar=∮ + syn match texMathSymbol '\\oplus\>' contained conceal cchar=⊕ + syn match texMathSymbol '\\oslash\>' contained conceal cchar=⊘ + syn match texMathSymbol '\\otimes\>' contained conceal cchar=⊗ + syn match texMathSymbol '\\partial\>' contained conceal cchar=∂ + syn match texMathSymbol '\\perp\>' contained conceal cchar=⊥ + syn match texMathSymbol '\\pm\>' contained conceal cchar=± + syn match texMathSymbol '\\prec\>' contained conceal cchar=≺ + syn match texMathSymbol '\\prod\>' contained conceal cchar=∏ + syn match texMathSymbol '\\propto\>' contained conceal cchar=∝ + syn match texMathSymbol '\\rceil\>' contained conceal cchar=⌉ + syn match texMathSymbol '\\Re\>' contained conceal cchar=ℜ + syn match texMathSymbol '\\rfloor\>' contained conceal cchar=⌋ + syn match texMathSymbol '\\rightarrow\>' contained conceal cchar=⟵ + syn match texMathSymbol '\\Rightarrow\>' contained conceal cchar=⟸ + syn match texMathSymbol '\\right)' contained conceal cchar=) + syn match texMathSymbol '\\right]' contained conceal cchar=] + syn match texMathSymbol '\\right\\}' contained conceal cchar=} + syn match texMathSymbol '\\sqcap\>' contained conceal cchar=⊓ + syn match texMathSymbol '\\sqcup\>' contained conceal cchar=⊔ + syn match texMathSymbol '\\subset\>' contained conceal cchar=⊂ + syn match texMathSymbol '\\subseteq\>' contained conceal cchar=⊆ + syn match texMathSymbol '\\subsetneq\>' contained conceal cchar=⊊ + syn match texMathSymbol '\\succ\>' contained conceal cchar=≻ + syn match texMathSymbol '\\sum\>' contained conceal cchar=∑ + syn match texMathSymbol '\\supseteq\>' contained conceal cchar=⊇ + syn match texMathSymbol '\\supsetneq\>' contained conceal cchar=⊋ + syn match texMathSymbol '\\surd\>' contained conceal cchar=√ + syn match texMathSymbol '\\therefore\>' contained conceal cchar=∴ + syn match texMathSymbol '\\times\>' contained conceal cchar=× + syn match texMathSymbol '\\to\>' contained conceal cchar=→ + syn match texMathSymbol '\\trianglelefteq\>' contained conceal cchar=⊴ + syn match texMathSymbol '\\trianglerighteq\>' contained conceal cchar=⊵ + syn match texMathSymbol '\\vartriangle\>' contained conceal cchar=∆ + syn match texMathSymbol '\\vdots\>' contained conceal cchar=⋮ + endif " Greek {{{2 - fun! s:Greek(group,pat,cchar) - exe 'syn match '.a:group." '".a:pat."' contained conceal cchar=".a:cchar - endfun - call s:Greek('texGreek','\\alpha\>' ,'α') - call s:Greek('texGreek','\\beta\>' ,'β') - call s:Greek('texGreek','\\gamma\>' ,'γ') - call s:Greek('texGreek','\\delta\>' ,'δ') - call s:Greek('texGreek','\\epsilon\>' ,'ϵ') - call s:Greek('texGreek','\\varepsilon\>' ,'ε') - call s:Greek('texGreek','\\zeta\>' ,'ζ') - call s:Greek('texGreek','\\eta\>' ,'η') - call s:Greek('texGreek','\\theta\>' ,'θ') - call s:Greek('texGreek','\\vartheta\>' ,'ϑ') - call s:Greek('texGreek','\\kappa\>' ,'κ') - call s:Greek('texGreek','\\lambda\>' ,'λ') - call s:Greek('texGreek','\\mu\>' ,'μ') - call s:Greek('texGreek','\\nu\>' ,'ν') - call s:Greek('texGreek','\\xi\>' ,'ξ') - call s:Greek('texGreek','\\pi\>' ,'π') - call s:Greek('texGreek','\\varpi\>' ,'ϖ') - call s:Greek('texGreek','\\rho\>' ,'ρ') - call s:Greek('texGreek','\\varrho\>' ,'ϱ') - call s:Greek('texGreek','\\sigma\>' ,'σ') - call s:Greek('texGreek','\\varsigma\>' ,'ς') - call s:Greek('texGreek','\\tau\>' ,'τ') - call s:Greek('texGreek','\\upsilon\>' ,'υ') - call s:Greek('texGreek','\\phi\>' ,'φ') - call s:Greek('texGreek','\\varphi\>' ,'ϕ') - call s:Greek('texGreek','\\chi\>' ,'χ') - call s:Greek('texGreek','\\psi\>' ,'ψ') - call s:Greek('texGreek','\\omega\>' ,'ω') - call s:Greek('texGreek','\\Gamma\>' ,'Γ') - call s:Greek('texGreek','\\Delta\>' ,'Δ') - call s:Greek('texGreek','\\Theta\>' ,'Θ') - call s:Greek('texGreek','\\Lambda\>' ,'Λ') - call s:Greek('texGreek','\\Xi\>' ,'Χ') - call s:Greek('texGreek','\\Pi\>' ,'Π') - call s:Greek('texGreek','\\Sigma\>' ,'Σ') - call s:Greek('texGreek','\\Upsilon\>' ,'Υ') - call s:Greek('texGreek','\\Phi\>' ,'Φ') - call s:Greek('texGreek','\\Psi\>' ,'Ψ') - call s:Greek('texGreek','\\Omega\>' ,'Ω') - delfun s:Greek + if s:tex_conceal =~ 'g' + fun! s:Greek(group,pat,cchar) + exe 'syn match '.a:group." '".a:pat."' contained conceal cchar=".a:cchar + endfun + call s:Greek('texGreek','\\alpha\>' ,'α') + call s:Greek('texGreek','\\beta\>' ,'β') + call s:Greek('texGreek','\\gamma\>' ,'γ') + call s:Greek('texGreek','\\delta\>' ,'δ') + call s:Greek('texGreek','\\epsilon\>' ,'ϵ') + call s:Greek('texGreek','\\varepsilon\>' ,'ε') + call s:Greek('texGreek','\\zeta\>' ,'ζ') + call s:Greek('texGreek','\\eta\>' ,'η') + call s:Greek('texGreek','\\theta\>' ,'θ') + call s:Greek('texGreek','\\vartheta\>' ,'ϑ') + call s:Greek('texGreek','\\kappa\>' ,'κ') + call s:Greek('texGreek','\\lambda\>' ,'λ') + call s:Greek('texGreek','\\mu\>' ,'μ') + call s:Greek('texGreek','\\nu\>' ,'ν') + call s:Greek('texGreek','\\xi\>' ,'ξ') + call s:Greek('texGreek','\\pi\>' ,'π') + call s:Greek('texGreek','\\varpi\>' ,'ϖ') + call s:Greek('texGreek','\\rho\>' ,'ρ') + call s:Greek('texGreek','\\varrho\>' ,'ϱ') + call s:Greek('texGreek','\\sigma\>' ,'σ') + call s:Greek('texGreek','\\varsigma\>' ,'ς') + call s:Greek('texGreek','\\tau\>' ,'τ') + call s:Greek('texGreek','\\upsilon\>' ,'υ') + call s:Greek('texGreek','\\phi\>' ,'φ') + call s:Greek('texGreek','\\varphi\>' ,'ϕ') + call s:Greek('texGreek','\\chi\>' ,'χ') + call s:Greek('texGreek','\\psi\>' ,'ψ') + call s:Greek('texGreek','\\omega\>' ,'ω') + call s:Greek('texGreek','\\Gamma\>' ,'Γ') + call s:Greek('texGreek','\\Delta\>' ,'Δ') + call s:Greek('texGreek','\\Theta\>' ,'Θ') + call s:Greek('texGreek','\\Lambda\>' ,'Λ') + call s:Greek('texGreek','\\Xi\>' ,'Χ') + call s:Greek('texGreek','\\Pi\>' ,'Π') + call s:Greek('texGreek','\\Sigma\>' ,'Σ') + call s:Greek('texGreek','\\Upsilon\>' ,'Υ') + call s:Greek('texGreek','\\Phi\>' ,'Φ') + call s:Greek('texGreek','\\Psi\>' ,'Ψ') + call s:Greek('texGreek','\\Omega\>' ,'Ω') + delfun s:Greek + endif " Superscripts/Subscripts {{{2 - syn region texSuperscript matchgroup=Delimiter start='\^{' end='}' contained concealends contains=texSuperscripts - syn region texSubscript matchgroup=Delimiter start='_{' end='}' contained concealends contains=texSubscripts - fun! s:SuperSub(group,leader,pat,cchar) - exe 'syn match '.a:group." '".a:leader.a:pat."' contained conceal cchar=".a:cchar - exe 'syn match '.a:group."s '".a:pat."' contained conceal cchar=".a:cchar.' nextgroup='.a:group.'s' - endfun - call s:SuperSub('texSuperscript','\^','0','⁰') - call s:SuperSub('texSuperscript','\^','1','¹') - call s:SuperSub('texSuperscript','\^','2','²') - call s:SuperSub('texSuperscript','\^','3','³') - call s:SuperSub('texSuperscript','\^','4','⁴') - call s:SuperSub('texSuperscript','\^','5','⁵') - call s:SuperSub('texSuperscript','\^','6','⁶') - call s:SuperSub('texSuperscript','\^','7','⁷') - call s:SuperSub('texSuperscript','\^','8','⁸') - call s:SuperSub('texSuperscript','\^','9','⁹') - call s:SuperSub('texSuperscript','\^','a','ᵃ') - call s:SuperSub('texSuperscript','\^','b','ᵇ') - call s:SuperSub('texSuperscript','\^','c','ᶜ') - call s:SuperSub('texSuperscript','\^','d','ᵈ') - call s:SuperSub('texSuperscript','\^','e','ᵉ') - call s:SuperSub('texSuperscript','\^','f','ᶠ') - call s:SuperSub('texSuperscript','\^','g','ᵍ') - call s:SuperSub('texSuperscript','\^','h','ʰ') - call s:SuperSub('texSuperscript','\^','i','ⁱ') - call s:SuperSub('texSuperscript','\^','j','ʲ') - call s:SuperSub('texSuperscript','\^','k','ᵏ') - call s:SuperSub('texSuperscript','\^','l','ˡ') - call s:SuperSub('texSuperscript','\^','m','ᵐ') - call s:SuperSub('texSuperscript','\^','n','ⁿ') - call s:SuperSub('texSuperscript','\^','o','ᵒ') - call s:SuperSub('texSuperscript','\^','p','ᵖ') - call s:SuperSub('texSuperscript','\^','r','ʳ') - call s:SuperSub('texSuperscript','\^','s','ˢ') - call s:SuperSub('texSuperscript','\^','t','ᵗ') - call s:SuperSub('texSuperscript','\^','u','ᵘ') - call s:SuperSub('texSuperscript','\^','v','ᵛ') - call s:SuperSub('texSuperscript','\^','w','ʷ') - call s:SuperSub('texSuperscript','\^','x','ˣ') - call s:SuperSub('texSuperscript','\^','y','ʸ') - call s:SuperSub('texSuperscript','\^','z','ᶻ') - call s:SuperSub('texSuperscript','\^','A','ᴬ') - call s:SuperSub('texSuperscript','\^','B','ᴮ') - call s:SuperSub('texSuperscript','\^','D','ᴰ') - call s:SuperSub('texSuperscript','\^','E','ᴱ') - call s:SuperSub('texSuperscript','\^','G','ᴳ') - call s:SuperSub('texSuperscript','\^','H','ᴴ') - call s:SuperSub('texSuperscript','\^','I','ᴵ') - call s:SuperSub('texSuperscript','\^','J','ᴶ') - call s:SuperSub('texSuperscript','\^','K','ᴷ') - call s:SuperSub('texSuperscript','\^','L','ᴸ') - call s:SuperSub('texSuperscript','\^','M','ᴹ') - call s:SuperSub('texSuperscript','\^','N','ᴺ') - call s:SuperSub('texSuperscript','\^','O','ᴼ') - call s:SuperSub('texSuperscript','\^','P','ᴾ') - call s:SuperSub('texSuperscript','\^','R','ᴿ') - call s:SuperSub('texSuperscript','\^','T','ᵀ') - call s:SuperSub('texSuperscript','\^','U','ᵁ') - call s:SuperSub('texSuperscript','\^','W','ᵂ') - call s:SuperSub('texSuperscript','\^','+','⁺') - call s:SuperSub('texSuperscript','\^','-','⁻') - call s:SuperSub('texSuperscript','\^','<','˂') - call s:SuperSub('texSuperscript','\^','>','˃') - call s:SuperSub('texSuperscript','\^','/','ˊ') - call s:SuperSub('texSuperscript','\^','(','⁽') - call s:SuperSub('texSuperscript','\^',')','⁾') - call s:SuperSub('texSuperscript','\^','\.','˙') - call s:SuperSub('texSuperscript','\^','=','˭') - call s:SuperSub('texSubscript','_','0','₀') - call s:SuperSub('texSubscript','_','1','₁') - call s:SuperSub('texSubscript','_','2','₂') - call s:SuperSub('texSubscript','_','3','₃') - call s:SuperSub('texSubscript','_','4','₄') - call s:SuperSub('texSubscript','_','5','₅') - call s:SuperSub('texSubscript','_','6','₆') - call s:SuperSub('texSubscript','_','7','₇') - call s:SuperSub('texSubscript','_','8','₈') - call s:SuperSub('texSubscript','_','9','₉') - call s:SuperSub('texSubscript','_','a','ₐ') - call s:SuperSub('texSubscript','_','e','ₑ') - call s:SuperSub('texSubscript','_','i','ᵢ') - call s:SuperSub('texSubscript','_','o','ₒ') - call s:SuperSub('texSubscript','_','u','ᵤ') - call s:SuperSub('texSubscript','_','+','₊') - call s:SuperSub('texSubscript','_','-','₋') - call s:SuperSub('texSubscript','_','/','ˏ') - call s:SuperSub('texSubscript','_','(','₍') - call s:SuperSub('texSubscript','_',')','₎') - call s:SuperSub('texSubscript','_','\.','‸') - call s:SuperSub('texSubscript','_','r','ᵣ') - call s:SuperSub('texSubscript','_','v','ᵥ') - call s:SuperSub('texSubscript','_','x','ₓ') - call s:SuperSub('texSubscript','_','\\beta\>' ,'ᵦ') - call s:SuperSub('texSubscript','_','\\delta\>','ᵨ') - call s:SuperSub('texSubscript','_','\\phi\>' ,'ᵩ') - call s:SuperSub('texSubscript','_','\\gamma\>','ᵧ') - call s:SuperSub('texSubscript','_','\\chi\>' ,'ᵪ') - delfun s:SuperSub + if s:tex_conceal =~ 's' + syn region texSuperscript matchgroup=Delimiter start='\^{' end='}' contained concealends contains=texSuperscripts,texStatement + syn region texSubscript matchgroup=Delimiter start='_{' end='}' contained concealends contains=texSubscripts,texStatement + fun! s:SuperSub(group,leader,pat,cchar) + exe 'syn match '.a:group." '".a:leader.a:pat."' contained conceal cchar=".a:cchar + exe 'syn match '.a:group."s '".a:pat."' contained conceal cchar=".a:cchar.' nextgroup='.a:group.'s' + endfun + call s:SuperSub('texSuperscript','\^','0','⁰') + call s:SuperSub('texSuperscript','\^','1','¹') + call s:SuperSub('texSuperscript','\^','2','²') + call s:SuperSub('texSuperscript','\^','3','³') + call s:SuperSub('texSuperscript','\^','4','⁴') + call s:SuperSub('texSuperscript','\^','5','⁵') + call s:SuperSub('texSuperscript','\^','6','⁶') + call s:SuperSub('texSuperscript','\^','7','⁷') + call s:SuperSub('texSuperscript','\^','8','⁸') + call s:SuperSub('texSuperscript','\^','9','⁹') + call s:SuperSub('texSuperscript','\^','a','ᵃ') + call s:SuperSub('texSuperscript','\^','b','ᵇ') + call s:SuperSub('texSuperscript','\^','c','ᶜ') + call s:SuperSub('texSuperscript','\^','d','ᵈ') + call s:SuperSub('texSuperscript','\^','e','ᵉ') + call s:SuperSub('texSuperscript','\^','f','ᶠ') + call s:SuperSub('texSuperscript','\^','g','ᵍ') + call s:SuperSub('texSuperscript','\^','h','ʰ') + call s:SuperSub('texSuperscript','\^','i','ⁱ') + call s:SuperSub('texSuperscript','\^','j','ʲ') + call s:SuperSub('texSuperscript','\^','k','ᵏ') + call s:SuperSub('texSuperscript','\^','l','ˡ') + call s:SuperSub('texSuperscript','\^','m','ᵐ') + call s:SuperSub('texSuperscript','\^','n','ⁿ') + call s:SuperSub('texSuperscript','\^','o','ᵒ') + call s:SuperSub('texSuperscript','\^','p','ᵖ') + call s:SuperSub('texSuperscript','\^','r','ʳ') + call s:SuperSub('texSuperscript','\^','s','ˢ') + call s:SuperSub('texSuperscript','\^','t','ᵗ') + call s:SuperSub('texSuperscript','\^','u','ᵘ') + call s:SuperSub('texSuperscript','\^','v','ᵛ') + call s:SuperSub('texSuperscript','\^','w','ʷ') + call s:SuperSub('texSuperscript','\^','x','ˣ') + call s:SuperSub('texSuperscript','\^','y','ʸ') + call s:SuperSub('texSuperscript','\^','z','ᶻ') + call s:SuperSub('texSuperscript','\^','A','ᴬ') + call s:SuperSub('texSuperscript','\^','B','ᴮ') + call s:SuperSub('texSuperscript','\^','D','ᴰ') + call s:SuperSub('texSuperscript','\^','E','ᴱ') + call s:SuperSub('texSuperscript','\^','G','ᴳ') + call s:SuperSub('texSuperscript','\^','H','ᴴ') + call s:SuperSub('texSuperscript','\^','I','ᴵ') + call s:SuperSub('texSuperscript','\^','J','ᴶ') + call s:SuperSub('texSuperscript','\^','K','ᴷ') + call s:SuperSub('texSuperscript','\^','L','ᴸ') + call s:SuperSub('texSuperscript','\^','M','ᴹ') + call s:SuperSub('texSuperscript','\^','N','ᴺ') + call s:SuperSub('texSuperscript','\^','O','ᴼ') + call s:SuperSub('texSuperscript','\^','P','ᴾ') + call s:SuperSub('texSuperscript','\^','R','ᴿ') + call s:SuperSub('texSuperscript','\^','T','ᵀ') + call s:SuperSub('texSuperscript','\^','U','ᵁ') + call s:SuperSub('texSuperscript','\^','W','ᵂ') + call s:SuperSub('texSuperscript','\^','+','⁺') + call s:SuperSub('texSuperscript','\^','-','⁻') + call s:SuperSub('texSuperscript','\^','<','˂') + call s:SuperSub('texSuperscript','\^','>','˃') + call s:SuperSub('texSuperscript','\^','/','ˊ') + call s:SuperSub('texSuperscript','\^','(','⁽') + call s:SuperSub('texSuperscript','\^',')','⁾') + call s:SuperSub('texSuperscript','\^','\.','˙') + call s:SuperSub('texSuperscript','\^','=','˭') + call s:SuperSub('texSubscript','_','0','₀') + call s:SuperSub('texSubscript','_','1','₁') + call s:SuperSub('texSubscript','_','2','₂') + call s:SuperSub('texSubscript','_','3','₃') + call s:SuperSub('texSubscript','_','4','₄') + call s:SuperSub('texSubscript','_','5','₅') + call s:SuperSub('texSubscript','_','6','₆') + call s:SuperSub('texSubscript','_','7','₇') + call s:SuperSub('texSubscript','_','8','₈') + call s:SuperSub('texSubscript','_','9','₉') + call s:SuperSub('texSubscript','_','a','ₐ') + call s:SuperSub('texSubscript','_','e','ₑ') + call s:SuperSub('texSubscript','_','i','ᵢ') + call s:SuperSub('texSubscript','_','o','ₒ') + call s:SuperSub('texSubscript','_','u','ᵤ') + call s:SuperSub('texSubscript','_','+','₊') + call s:SuperSub('texSubscript','_','-','₋') + call s:SuperSub('texSubscript','_','/','ˏ') + call s:SuperSub('texSubscript','_','(','₍') + call s:SuperSub('texSubscript','_',')','₎') + call s:SuperSub('texSubscript','_','\.','‸') + call s:SuperSub('texSubscript','_','r','ᵣ') + call s:SuperSub('texSubscript','_','v','ᵥ') + call s:SuperSub('texSubscript','_','x','ₓ') + call s:SuperSub('texSubscript','_','\\beta\>' ,'ᵦ') + call s:SuperSub('texSubscript','_','\\delta\>','ᵨ') + call s:SuperSub('texSubscript','_','\\phi\>' ,'ᵩ') + call s:SuperSub('texSubscript','_','\\gamma\>','ᵧ') + call s:SuperSub('texSubscript','_','\\chi\>' ,'ᵪ') + delfun s:SuperSub + endif " Accented characters: {{{2 - if b:tex_stylish - syn match texAccent "\\[bcdvuH][^a-zA-Z@]"me=e-1 - syn match texLigature "\\\([ijolL]\|ae\|oe\|ss\|AA\|AE\|OE\)[^a-zA-Z@]"me=e-1 - else - fun! s:Accents(chr,...) - let i= 1 - for accent in ["`","\\'","^",'"','\~',"r","v"] - if i > a:0 - break - endif - if strlen(a:{i}) == 0 + if s:tex_conceal =~ 'a' + if b:tex_stylish + syn match texAccent "\\[bcdvuH][^a-zA-Z@]"me=e-1 + syn match texLigature "\\\([ijolL]\|ae\|oe\|ss\|AA\|AE\|OE\)[^a-zA-Z@]"me=e-1 + else + fun! s:Accents(chr,...) + let i= 1 + for accent in ["`","\\'","^",'"','\~',"r","v"] + if i > a:0 + break + endif + if strlen(a:{i}) == 0 + let i= i + 1 + continue + endif + exe "syn match texAccent '\\\\".accent."{".a:chr."}' conceal cchar=".a:{i} let i= i + 1 - continue - endif - exe "syn match texAccent '\\\\".accent."{".a:chr."}' conceal cchar=".a:{i} - let i= i + 1 - endfor - endfun - call s:Accents('a','à','á','â','ä','ã','å','ă') - call s:Accents('A','À','Á','Â','Ä','Ã','Å','Ă') - call s:Accents('C',"" ,'Ć','Ĉ',"" ,"" ,"" ,'Ć') - call s:Accents('e','è','é','ê','ë','ẽ',"" ,'ĕ') - call s:Accents('E','È','É','Ê','Ë','Ẽ',"" ,'Ė') - call s:Accents('i','ì','í','î','ï','ĩ',"" ,"ĭ") - call s:Accents('I','Ì','Í','Î','Ï','Ĩ',"" ,'Ĭ') - call s:Accents('o','ò','ó','ô','ö','õ',"" ,'ŏ') - call s:Accents('O','Ò','Ó','Ô','Ö','Õ',"" ,'Ŏ') - call s:Accents('r',"" ,'ŕ',"" ,"" ,"" ,"" ,'ř') - call s:Accents('R',"" ,'Ŕ',"" ,"" ,"" ,"" ,'Ř') - call s:Accents('s',"" ,'ś','ŝ',"" ,"" ,"" ,'š') - call s:Accents('S',"" ,'Ś','Ŝ',"" ,"" ,"" ,'Š') - call s:Accents('u','ù','ú','û','ü','ũ',"" ,'ŭ') - call s:Accents('U','Ù','Ú','Û','Ü','Ũ',"" ,'Ŭ') - call s:Accents('y','ỳ','ý','ŷ','ÿ','ỹ',"" ,"" ) - call s:Accents('Y','Ỳ','Ý','Ŷ','Ÿ','Ỹ',"" ,"" ) - delfun s:Accents - syn match texAccent '\\aa\>' conceal cchar=å - syn match texAccent '\\AA\>' conceal cchar=Å - syn match texAccent '\\k{a}' conceal cchar=ą - syn match texAccent '\\k{A}' conceal cchar=Ą - syn match texAccent '\\c{C}' conceal cchar=Ç - syn match texAccent '\\c{c}' conceal cchar=ç - syn match texAccent '\\\~{n}' conceal cchar=ñ - syn match texAccent '\\\~{N}' conceal cchar=Ñ - syn match texAccent '\\o\>' conceal cchar=ø - syn match texAccent '\\O\>' conceal cchar=Ø - syn match texAccent '\\H{o}' conceal cchar=ő - syn match texAccent '\\H{O}' conceal cchar=Ő - syn match texAccent '\\c{r}' conceal cchar=ŗ - syn match texLigature '\\AE\>' conceal cchar=Æ - syn match texLigature '\\ae\>' conceal cchar=æ - syn match texLigature '\\oe\>' conceal cchar=œ - syn match texLigature '\\OE\>' conceal cchar=Œ - syn match texLigature '\\ss\>' conceal cchar=ß + endfor + endfun + call s:Accents('a','à','á','â','ä','ã','å','ă') + call s:Accents('A','À','Á','Â','Ä','Ã','Å','Ă') + call s:Accents('C',"" ,'Ć','Ĉ',"" ,"" ,"" ,'Ć') + call s:Accents('e','è','é','ê','ë','ẽ',"" ,'ĕ') + call s:Accents('E','È','É','Ê','Ë','Ẽ',"" ,'Ė') + call s:Accents('i','ì','í','î','ï','ĩ',"" ,"ĭ") + call s:Accents('I','Ì','Í','Î','Ï','Ĩ',"" ,'Ĭ') + call s:Accents('o','ò','ó','ô','ö','õ',"" ,'ŏ') + call s:Accents('O','Ò','Ó','Ô','Ö','Õ',"" ,'Ŏ') + call s:Accents('r',"" ,'ŕ',"" ,"" ,"" ,"" ,'ř') + call s:Accents('R',"" ,'Ŕ',"" ,"" ,"" ,"" ,'Ř') + call s:Accents('s',"" ,'ś','ŝ',"" ,"" ,"" ,'š') + call s:Accents('S',"" ,'Ś','Ŝ',"" ,"" ,"" ,'Š') + call s:Accents('u','ù','ú','û','ü','ũ',"" ,'ŭ') + call s:Accents('U','Ù','Ú','Û','Ü','Ũ',"" ,'Ŭ') + call s:Accents('y','ỳ','ý','ŷ','ÿ','ỹ',"" ,"" ) + call s:Accents('Y','Ỳ','Ý','Ŷ','Ÿ','Ỹ',"" ,"" ) + delfun s:Accents + syn match texAccent '\\aa\>' conceal cchar=å + syn match texAccent '\\AA\>' conceal cchar=Å + syn match texAccent '\\k{a}' conceal cchar=ą + syn match texAccent '\\k{A}' conceal cchar=Ą + syn match texAccent '\\c{C}' conceal cchar=Ç + syn match texAccent '\\c{c}' conceal cchar=ç + syn match texAccent '\\\~{n}' conceal cchar=ñ + syn match texAccent '\\\~{N}' conceal cchar=Ñ + syn match texAccent '\\o\>' conceal cchar=ø + syn match texAccent '\\O\>' conceal cchar=Ø + syn match texAccent '\\H{o}' conceal cchar=ő + syn match texAccent '\\H{O}' conceal cchar=Ő + syn match texAccent '\\c{r}' conceal cchar=ŗ + syn match texLigature '\\AE\>' conceal cchar=Æ + syn match texLigature '\\ae\>' conceal cchar=æ + syn match texLigature '\\oe\>' conceal cchar=œ + syn match texLigature '\\OE\>' conceal cchar=Œ + syn match texLigature '\\ss\>' conceal cchar=ß + endif endif endif diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim index edfe878719..a205d9c8a9 100644 --- a/runtime/syntax/vim.vim +++ b/runtime/syntax/vim.vim @@ -1,8 +1,8 @@ " Vim syntax file " Language: Vim 7.3 script " Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz> -" Last Change: Jul 19, 2010 -" Version: 7.3-02 +" Last Change: Jul 28, 2010 +" Version: 7.3-03 " Automatically generated keyword lists: {{{1 " Quit when a syntax file was already loaded {{{2 @@ -532,19 +532,43 @@ syn region vimGlobal matchgroup=Statement start='\<v\%[global]!\=/' skip='\\.' e " Scripts : perl,ruby : Benoit Cerrina {{{2 " ======= python,tcl: Johannes Zellner +" lua " Allows users to specify the type of embedded script highlighting " they want: (perl/python/ruby/tcl support) " g:vimsyn_embed == 0 : don't embed any scripts +" g:vimsyn_embed ~= 'l' : embed lua (but only if vim supports it) " g:vimsyn_embed ~= 'm' : embed mzscheme (but only if vim supports it) " g:vimsyn_embed ~= 'p' : embed perl (but only if vim supports it) " g:vimsyn_embed ~= 'P' : embed python (but only if vim supports it) " g:vimsyn_embed ~= 'r' : embed ruby (but only if vim supports it) " g:vimsyn_embed ~= 't' : embed tcl (but only if vim supports it) if !exists("g:vimsyn_embed") - let g:vimsyn_embed= "mpPr" + let g:vimsyn_embed= "lmpPr" endif +" [-- lua --] {{{3 +let s:luapath= expand("<sfile>:p:h")."/lua.vim" +if !filereadable(s:luapath) + let s:luapath= globpath(&rtp,"syntax/lua.vim") +endif +if (g:vimsyn_embed =~ 'p' && has("lua")) && filereadable(s:luapath) + unlet! b:current_syntax + exe "syn include @vimLuaScript ".s:luapath + if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'l' + syn region vimLuaRegion fold matchgroup=vimScriptDelim start=+lua\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimLuaScript + syn region vimLuaRegion fold matchgroup=vimScriptDelim start=+lua\s*<<\s*$+ end=+\.$+ contains=@vimLuaScript + else |