]> granicus.if.org Git - vim/commitdiff
Syntax file updates. (Charles Campbell)
authorBram Moolenaar <Bram@vim.org>
Mon, 2 Aug 2010 20:12:46 +0000 (22:12 +0200)
committerBram Moolenaar <Bram@vim.org>
Mon, 2 Aug 2010 20:12:46 +0000 (22:12 +0200)
runtime/syntax/sh.vim
runtime/syntax/tex.vim
runtime/syntax/vim.vim
runtime/syntax/yacc.vim

index ef057c93e450b6ae60503494b0291edbfb7b2fae..681ca3a45f5f93ede3c080d98b9bb896b987e0a2 100644 (file)
@@ -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
index 218f9cbfde19e6fccc301a01c2963b603613fa15..e1753d820502edabe58d29952c960d68f81cef1d 100644 (file)
@@ -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
 
index edfe878719912bd4014ee459f305b6ca8b7fac2a..a205d9c8a9cc373c6e021162a463429a0da216fd 100644 (file)
@@ -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
+  syn region vimLuaRegion matchgroup=vimScriptDelim start=+lua\s*<<\s*\z(.*\)$+ end=+^\z1$+    contains=@vimLuaScript
+  syn region vimLuaRegion matchgroup=vimScriptDelim start=+lua\s*<<\s*$+ end=+\.$+             contains=@vimLuaScript
+ endif
+ syn cluster vimFuncBodyList   add=vimLuaRegion
+else
+ syn region vimEmbedError start=+lua\s*<<\s*\z(.*\)$+ end=+^\z1$+
+ syn region vimEmbedError start=+lua\s*<<\s*$+ end=+\.$+
+endif
+unlet s:luapath
+
 " [-- perl --] {{{3
 let s:perlpath= expand("<sfile>:p:h")."/perl.vim"
 if !filereadable(s:perlpath)
index 1797b7a643cdfd55366655e1c952d30de81bf44d..c3916d0e53baa64845f5e70364d016ab515820d1 100644 (file)
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:    Yacc
 " Maintainer:  Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change: Oct 21, 2008
-" Version:     7
+" Last Change: Aug 2, 2010
+" Version:     8
 " URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
 "
 " Options: {{{1
@@ -35,7 +35,7 @@ endif
 
 " ---------------------------------------------------------------------
 "  Yacc Clusters: {{{1
-syn cluster yaccInitCluster    contains=yaccKey,yaccKeyActn,yaccBrkt,yaccType,yaccString,yaccUnionStart,yaccHeader2,yaccComment
+syn cluster yaccInitCluster    contains=yaccKey,yaccKeyActn,yaccBrkt,yaccType,yaccString,yaccUnionStart,yaccHeader2,yaccComment,yaccDefines,yaccParseParam
 syn cluster yaccRulesCluster   contains=yaccNonterminal,yaccString
 
 " ---------------------------------------------------------------------
@@ -49,6 +49,10 @@ HiFold syn   region  yaccEndCode     matchgroup=yaccSectionSep       start='^%%$'            end='\%$'
 
 " ---------------------------------------------------------------------
 " Yacc Commands: {{{1
+syn    match   yaccDefines     '^%define\s\+.*$'
+syn    match   yaccParseParam  '%parse-param\>'        skipwhite       nextgroup=yaccParseParamStr
+syn    region  yaccParseParamStr       contained matchgroup=Delimiter  start='{'       end='}' contains=cStructure
+
 syn    match   yaccDelim       "[:|]"  contained
 syn    match   yaccOper        "@\d\+" contained
 
@@ -91,6 +95,8 @@ if !exists("did_yacc_syn_inits")
   HiLink yaccComment   Comment
   HiLink yaccCurly     Delimiter
   HiLink yaccCurlyError        Error
+  HiLink yaccDefines   cDefine
+  HiLink yaccParseParam        cDefine
   HiLink yaccNonterminal       Function
   HiLink yaccDelim     Delimiter
   HiLink yaccKeyActn   Special