diff options
| author | Adam Stankiewicz <sheerun@sher.pl> | 2019-03-04 09:15:44 +0100 | 
|---|---|---|
| committer | Adam Stankiewicz <sheerun@sher.pl> | 2019-03-04 09:15:44 +0100 | 
| commit | ed677c34d55a0e025b7008f29419498a3989cde2 (patch) | |
| tree | 62efef78ed05b2b4e61efb21e40a6b337359eb8e /syntax | |
| parent | c161994e9607399a7b365ab274592bfc4f100306 (diff) | |
| download | vim-polyglot-ed677c34d55a0e025b7008f29419498a3989cde2.tar.gz vim-polyglot-ed677c34d55a0e025b7008f29419498a3989cde2.zip | |
Update
Diffstat (limited to '')
| -rw-r--r-- | syntax/crystal.vim | 30 | ||||
| -rw-r--r-- | syntax/dart.vim | 5 | ||||
| -rw-r--r-- | syntax/elixir.vim | 181 | ||||
| -rw-r--r-- | syntax/gitrebase.vim | 6 | ||||
| -rw-r--r-- | syntax/go.vim | 74 | ||||
| -rw-r--r-- | syntax/i3config.vim | 18 | ||||
| -rw-r--r-- | syntax/javascript.vim | 6 | ||||
| -rw-r--r-- | syntax/julia.vim | 54 | ||||
| -rw-r--r-- | syntax/kotlin.vim | 19 | ||||
| -rw-r--r-- | syntax/markdown.vim | 26 | ||||
| -rw-r--r-- | syntax/mustache.vim | 2 | ||||
| -rw-r--r-- | syntax/pug.vim | 13 | ||||
| -rw-r--r-- | syntax/python.vim | 28 | ||||
| -rw-r--r-- | syntax/racket.vim | 39 | ||||
| -rw-r--r-- | syntax/rst.vim | 4 | ||||
| -rw-r--r-- | syntax/ruby.vim | 635 | ||||
| -rw-r--r-- | syntax/rust.vim | 4 | ||||
| -rw-r--r-- | syntax/terraform.vim | 692 | ||||
| -rw-r--r-- | syntax/vifm.vim | 12 | 
19 files changed, 1319 insertions, 529 deletions
| diff --git a/syntax/crystal.vim b/syntax/crystal.vim index 637e207e..d972d3c3 100644 --- a/syntax/crystal.vim +++ b/syntax/crystal.vim @@ -83,6 +83,12 @@ syn match crystalFloat	"\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<\%(0\|[1-9]\d*\%(_\d\+  syn match crystalLocalVariableOrMethod "\<[_[:lower:]][_[:alnum:]]*[?!=]\=" contains=NONE display transparent  syn match crystalBlockArgument	    "&[_[:lower:]][_[:alnum:]]"		 contains=NONE display transparent +syn match  crystalTypeName		"\%(\%([.@$]\@<!\.\)\@<!\<\|::\)\_s*\zs\u\w*\%(\>\|::\)\@=" contained +syn match  crystalClassName		"\%(\%([.@$]\@<!\.\)\@<!\<\|::\)\_s*\zs\u\w*\%(\>\|::\)\@=" contained +syn match  crystalModuleName		"\%(\%([.@$]\@<!\.\)\@<!\<\|::\)\_s*\zs\u\w*\%(\>\|::\)\@=" contained +syn match  crystalStructName		"\%(\%([.@$]\@<!\.\)\@<!\<\|::\)\_s*\zs\u\w*\%(\>\|::\)\@=" contained +syn match  crystalLibName		"\%(\%([.@$]\@<!\.\)\@<!\<\|::\)\_s*\zs\u\w*\%(\>\|::\)\@=" contained +syn match  crystalEnumName		"\%(\%([.@$]\@<!\.\)\@<!\<\|::\)\_s*\zs\u\w*\%(\>\|::\)\@=" contained  syn match  crystalConstant		"\%(\%([.@$]\@<!\.\)\@<!\<\|::\)\_s*\zs\u\w*\%(\>\|::\)\@="  syn match  crystalClassVariable	"@@\%(\h\|%\|[^\x00-\x7F]\)\%(\w\|%\|[^\x00-\x7F]\)*" display  syn match  crystalInstanceVariable "@\%(\h\|%\|[^\x00-\x7F]\)\%(\w\|%\|[^\x00-\x7F]\)*"  display @@ -176,15 +182,15 @@ end  syn match crystalAliasDeclaration    "[^[:space:];#.()]\+" contained contains=crystalSymbol,crystalGlobalVariable,crystalPredefinedVariable nextgroup=crystalAliasDeclaration2 skipwhite  syn match crystalAliasDeclaration2   "[^[:space:];#.()]\+" contained contains=crystalSymbol,crystalGlobalVariable,crystalPredefinedVariable -syn match crystalMethodDeclaration   "[^[:space:];#(]\+"	 contained contains=crystalConstant,crystalBoolean,crystalPseudoVariable,crystalInstanceVariable,crystalClassVariable,crystalGlobalVariable -syn match crystalFunctionDeclaration "[^[:space:];#(=]\+"	 contained contains=crystalConstant -syn match crystalTypeDeclaration     "[^[:space:];#=]\+"	 contained contains=crystalConstant -syn match crystalClassDeclaration    "[^[:space:];#<]\+"	 contained contains=crystalConstant,crystalOperator -syn match crystalModuleDeclaration   "[^[:space:];#<]\+"	 contained contains=crystalConstant,crystalOperator -syn match crystalStructDeclaration   "[^[:space:];#<]\+"	 contained contains=crystalConstant,crystalOperator -syn match crystalLibDeclaration      "[^[:space:];#<]\+"	 contained contains=crystalConstant,crystalOperator -syn match crystalMacroDeclaration    "[^[:space:];#<\"]\+"	 contained contains=crystalConstant,crystalOperator -syn match crystalEnumDeclaration     "[^[:space:];#<\"]\+"	 contained contains=crystalConstant +syn match crystalMethodDeclaration   "[^[:space:];#(]\+"	 contained contains=crystalConstant,crystalFunction,crystalBoolean,crystalPseudoVariable,crystalInstanceVariable,crystalClassVariable,crystalGlobalVariable +syn match crystalFunctionDeclaration "[^[:space:];#(=]\+"	 contained contains=crystalFunction +syn match crystalTypeDeclaration     "[^[:space:];#=]\+"	 contained contains=crystalTypeName +syn match crystalClassDeclaration    "[^[:space:];#<]\+"	 contained contains=crystalClassName,crystalOperator +syn match crystalModuleDeclaration   "[^[:space:];#]\+"		 contained contains=crystalModuleName,crystalOperator +syn match crystalStructDeclaration   "[^[:space:];#<]\+"	 contained contains=crystalStructName,crystalOperator +syn match crystalLibDeclaration      "[^[:space:];#]\+"		 contained contains=crystalLibName,crystalOperator +syn match crystalMacroDeclaration    "[^[:space:];#(]\+"	 contained contains=crystalFunction +syn match crystalEnumDeclaration     "[^[:space:];#<\"]\+"	 contained contains=crystalEnumName  syn match crystalFunction "\<[_[:alpha:]][_[:alnum:]]*[?!=]\=[[:alnum:]_.:?!=]\@!" contained containedin=crystalMethodDeclaration,crystalFunctionDeclaration  syn match crystalFunction "\%(\s\|^\)\@<=[_[:alpha:]][_[:alnum:]]*[?!=]\=\%(\s\|$\)\@=" contained containedin=crystalAliasDeclaration,crystalAliasDeclaration2  syn match crystalFunction "\%([[:space:].]\|^\)\@<=\%(\[\][=?]\=\|\*\*\|[+-]@\=\|[*/%|&^~]\|<<\|>>\|[<>]=\=\|<=>\|===\|[=!]=\|[=!]\~\|!\|`\)\%([[:space:];#(]\|$\)\@=" contained containedin=crystalAliasDeclaration,crystalAliasDeclaration2,crystalMethodDeclaration,crystalFunctionDeclaration @@ -345,6 +351,12 @@ else  endif  hi def link crystalClassVariable	crystalIdentifier  hi def link crystalConstant		Type +hi def link crystalTypeName		crystalConstant +hi def link crystalClassName		crystalConstant +hi def link crystalModuleName		crystalConstant +hi def link crystalStructName		crystalConstant +hi def link crystalLibName		crystalConstant +hi def link crystalEnumName		crystalConstant  hi def link crystalGlobalVariable	crystalIdentifier  hi def link crystalBlockParameter	crystalIdentifier  hi def link crystalInstanceVariable	crystalIdentifier diff --git a/syntax/dart.vim b/syntax/dart.vim index f9571531..40dd0304 100644 --- a/syntax/dart.vim +++ b/syntax/dart.vim @@ -28,14 +28,15 @@ syntax keyword dartConstant       null  syntax keyword dartTypedef        this super class typedef enum mixin  syntax keyword dartOperator       new is as in  syntax match   dartOperator       "+=\=\|-=\=\|*=\=\|/=\=\|%=\=\|\~/=\=\|<<=\=\|>>=\=\|[<>]=\=\|===\=\|\!==\=\|&=\=\|\^=\=\||=\=\|||\|&&\|\[\]=\=\|=>\|!\|\~\|?\|:" -syntax keyword dartType           void var bool int double num dynamic covariant +syntax keyword dartType           void var bool int double num dynamic  syntax keyword dartStatement      return  syntax keyword dartStorageClass   static abstract final const factory  syntax keyword dartExceptions     throw rethrow try on catch finally  syntax keyword dartAssert         assert  syntax keyword dartClassDecl      extends with implements  syntax keyword dartBranch         break continue nextgroup=dartUserLabelRef skipwhite -syntax keyword dartKeyword        get set operator call external async await yield sync native +syntax keyword dartKeyword        get set operator call external async await +    \ yield sync native covariant  syntax match   dartUserLabelRef   "\k\+" contained  syntax region  dartLabelRegion   transparent matchgroup=dartLabel start="\<case\>" matchgroup=NONE end=":" diff --git a/syntax/elixir.vim b/syntax/elixir.vim index 53e55902..1fa114b1 100644 --- a/syntax/elixir.vim +++ b/syntax/elixir.vim @@ -13,7 +13,7 @@ syn sync minlines=2000  syn cluster elixirNotTop contains=@elixirRegexSpecial,@elixirStringContained,@elixirDeclaration,elixirTodo,elixirArguments,elixirBlockDefinition,elixirUnusedVariable,elixirStructDelimiter  syn cluster elixirRegexSpecial contains=elixirRegexEscape,elixirRegexCharClass,elixirRegexQuantifier,elixirRegexEscapePunctuation  syn cluster elixirStringContained contains=elixirInterpolation,elixirRegexEscape,elixirRegexCharClass -syn cluster elixirDeclaration contains=elixirFunctionDeclaration,elixirModuleDeclaration,elixirProtocolDeclaration,elixirImplDeclaration,elixirRecordDeclaration,elixirMacroDeclaration,elixirDelegateDeclaration,elixirOverridableDeclaration,elixirExceptionDeclaration,elixirCallbackDeclaration,elixirStructDeclaration +syn cluster elixirDeclaration contains=elixirFunctionDeclaration,elixirPrivateFunctionDeclaration,elixirModuleDeclaration,elixirProtocolDeclaration,elixirImplDeclaration,elixirRecordDeclaration,elixirPrivateRecordDeclaration,elixirMacroDeclaration,elixirPrivateMacroDeclaration,elixirDelegateDeclaration,elixirOverridableDeclaration,elixirExceptionDeclaration,elixirCallbackDeclaration,elixirStructDeclaration  syn match elixirComment '#.*' contains=elixirTodo,@Spell  syn keyword elixirTodo FIXME NOTE TODO OPTIMIZE XXX HACK contained @@ -84,7 +84,6 @@ syn match elixirAtomInterpolated   ':\("\)\@=' contains=elixirString  syn match elixirString             "\(\w\)\@<!?\%(\\\(x\d{1,2}\|\h{1,2}\h\@!\>\|0[0-7]{0,2}[0-7]\@!\>\|[^x0MC]\)\|(\\[MC]-)+\w\|[^\s\\]\)"  syn region elixirBlock              matchgroup=elixirBlockDefinition start="\<do\>:\@!" end="\<end\>" contains=ALLBUT,@elixirNotTop fold -syn region elixirElseBlock          matchgroup=elixirBlockDefinition start="\<else\>:\@!" end="\<end\>" contains=ALLBUT,@elixirNotTop fold  syn region elixirAnonymousFunction  matchgroup=elixirBlockDefinition start="\<fn\>"     end="\<end\>" contains=ALLBUT,@elixirNotTop fold  syn region elixirArguments start="(" end=")" contained contains=elixirOperator,elixirAtom,elixirPseudoVariable,elixirAlias,elixirBoolean,elixirVariable,elixirUnusedVariable,elixirNumber,elixirDocString,elixirAtomInterpolated,elixirRegex,elixirString,elixirStringDelimiter,elixirRegexDelimiter,elixirInterpolationDelimiter,elixirSigil,elixirAnonymousFunction,elixirComment @@ -120,102 +119,110 @@ else    syn region elixirDocTest start="^\s*\%(iex\|\.\.\.\)\%((\d*)\)\?>\s" end="^\s*$" contained  endif -syn region elixirDocString matchgroup=elixirSigilDelimiter  start="\%(@\w*doc\s\+\)\@<=\~[Ss]\z(/\|\"\|'\||\)" end="\z1" skip="\\\\\|\\\z1" contains=@elixirDocStringContained fold keepend -syn region elixirDocString matchgroup=elixirSigilDelimiter  start="\%(@\w*doc\s\+\)\@<=\~[Ss]{"                   end="}"   skip="\\\\\|\\}"   contains=@elixirDocStringContained fold keepend -syn region elixirDocString matchgroup=elixirSigilDelimiter  start="\%(@\w*doc\s\+\)\@<=\~[Ss]<"                   end=">"   skip="\\\\\|\\>"   contains=@elixirDocStringContained fold keepend -syn region elixirDocString matchgroup=elixirSigilDelimiter  start="\%(@\w*doc\s\+\)\@<=\~[Ss]\["                  end="\]"  skip="\\\\\|\\\]"  contains=@elixirDocStringContained fold keepend -syn region elixirDocString matchgroup=elixirSigilDelimiter  start="\%(@\w*doc\s\+\)\@<=\~[Ss]("                   end=")"   skip="\\\\\|\\)"   contains=@elixirDocStringContained fold keepend -syn region elixirDocString matchgroup=elixirStringDelimiter start=+\%(@\w*doc\s\+\)\@<=\z("\)+                 end=+\z1+ skip=+\\\\\|\\\z1+  contains=@elixirDocStringContained keepend -syn region elixirDocString matchgroup=elixirStringDelimiter start=+\%(@\w*doc\s\+\)\@<=\z("""\)+               end=+\z1+ contains=@elixirDocStringContained fold keepend -syn region elixirDocString matchgroup=elixirSigilDelimiter  start=+\%(@\w*doc\s\+\)\@<=\~[Ss]\z('''\)+ end=+\z1+ skip=+\\'+ contains=@elixirDocStringContained fold keepend -syn region elixirDocString matchgroup=elixirSigilDelimiter  start=+\%(@\w*doc\s\+\)\@<=\~[Ss]\z("""\)+ end=+\z1+ skip=+\\"+ contains=@elixirDocStringContained fold keepend +syn region elixirDocString matchgroup=elixirDocSigilDelimiter  start="\%(@\w*doc\s\+\)\@<=\~[Ss]\z(/\|\"\|'\||\)" end="\z1" skip="\\\\\|\\\z1" contains=@elixirDocStringContained fold keepend +syn region elixirDocString matchgroup=elixirDocSigilDelimiter  start="\%(@\w*doc\s\+\)\@<=\~[Ss]{"                   end="}"   skip="\\\\\|\\}"   contains=@elixirDocStringContained fold keepend +syn region elixirDocString matchgroup=elixirDocSigilDelimiter  start="\%(@\w*doc\s\+\)\@<=\~[Ss]<"                   end=">"   skip="\\\\\|\\>"   contains=@elixirDocStringContained fold keepend +syn region elixirDocString matchgroup=elixirDocSigilDelimiter  start="\%(@\w*doc\s\+\)\@<=\~[Ss]\["                  end="\]"  skip="\\\\\|\\\]"  contains=@elixirDocStringContained fold keepend +syn region elixirDocString matchgroup=elixirDocSigilDelimiter  start="\%(@\w*doc\s\+\)\@<=\~[Ss]("                   end=")"   skip="\\\\\|\\)"   contains=@elixirDocStringContained fold keepend +syn region elixirDocString matchgroup=elixirDocStringDelimiter start=+\%(@\w*doc\s\+\)\@<=\z("\)+                 end=+\z1+ skip=+\\\\\|\\\z1+  contains=@elixirDocStringContained keepend +syn region elixirDocString matchgroup=elixirDocStringDelimiter start=+\%(@\w*doc\s\+\)\@<=\z("""\)+               end=+\z1+ contains=@elixirDocStringContained fold keepend +syn region elixirDocString matchgroup=elixirDocSigilDelimiter  start=+\%(@\w*doc\s\+\)\@<=\~[Ss]\z('''\)+ end=+\z1+ skip=+\\'+ contains=@elixirDocStringContained fold keepend +syn region elixirDocString matchgroup=elixirDocSigilDelimiter  start=+\%(@\w*doc\s\+\)\@<=\~[Ss]\z("""\)+ end=+\z1+ skip=+\\"+ contains=@elixirDocStringContained fold keepend  " Defines -syn match elixirDefine              '\<def\>\(:\)\@!'             nextgroup=elixirFunctionDeclaration    skipwhite skipnl -syn match elixirPrivateDefine       '\<defp\>\(:\)\@!'            nextgroup=elixirFunctionDeclaration    skipwhite skipnl -syn match elixirGuard               '\<defguard\>\(:\)\@!'        nextgroup=elixirFunctionDeclaration    skipwhite skipnl -syn match elixirPrivateGuard        '\<defguardp\>\(:\)\@!'       nextgroup=elixirFunctionDeclaration    skipwhite skipnl -syn match elixirModuleDefine        '\<defmodule\>\(:\)\@!'       nextgroup=elixirModuleDeclaration      skipwhite skipnl -syn match elixirProtocolDefine      '\<defprotocol\>\(:\)\@!'     nextgroup=elixirProtocolDeclaration    skipwhite skipnl -syn match elixirImplDefine          '\<defimpl\>\(:\)\@!'         nextgroup=elixirImplDeclaration        skipwhite skipnl -syn match elixirRecordDefine        '\<defrecord\>\(:\)\@!'       nextgroup=elixirRecordDeclaration      skipwhite skipnl -syn match elixirPrivateRecordDefine '\<defrecordp\>\(:\)\@!'      nextgroup=elixirRecordDeclaration      skipwhite skipnl -syn match elixirMacroDefine         '\<defmacro\>\(:\)\@!'        nextgroup=elixirMacroDeclaration       skipwhite skipnl -syn match elixirPrivateMacroDefine  '\<defmacrop\>\(:\)\@!'       nextgroup=elixirMacroDeclaration       skipwhite skipnl -syn match elixirDelegateDefine      '\<defdelegate\>\(:\)\@!'     nextgroup=elixirDelegateDeclaration    skipwhite skipnl -syn match elixirOverridableDefine   '\<defoverridable\>\(:\)\@!'  nextgroup=elixirOverridableDeclaration skipwhite skipnl -syn match elixirExceptionDefine     '\<defexception\>\(:\)\@!'    nextgroup=elixirExceptionDeclaration   skipwhite skipnl -syn match elixirCallbackDefine      '\<defcallback\>\(:\)\@!'     nextgroup=elixirCallbackDeclaration    skipwhite skipnl +syn match elixirDefine              '\<def\>\(:\)\@!'             nextgroup=elixirFunctionDeclaration        skipwhite skipnl +syn match elixirPrivateDefine       '\<defp\>\(:\)\@!'            nextgroup=elixirPrivateFunctionDeclaration skipwhite skipnl +syn match elixirGuard               '\<defguard\>\(:\)\@!'        nextgroup=elixirFunctionDeclaration        skipwhite skipnl +syn match elixirPrivateGuard        '\<defguardp\>\(:\)\@!'       nextgroup=elixirPrivateFunctionDeclaration skipwhite skipnl +syn match elixirModuleDefine        '\<defmodule\>\(:\)\@!'       nextgroup=elixirModuleDeclaration          skipwhite skipnl +syn match elixirProtocolDefine      '\<defprotocol\>\(:\)\@!'     nextgroup=elixirProtocolDeclaration        skipwhite skipnl +syn match elixirImplDefine          '\<defimpl\>\(:\)\@!'         nextgroup=elixirImplDeclaration            skipwhite skipnl +syn match elixirRecordDefine        '\<defrecord\>\(:\)\@!'       nextgroup=elixirRecordDeclaration          skipwhite skipnl +syn match elixirPrivateRecordDefine '\<defrecordp\>\(:\)\@!'      nextgroup=elixirPrivateRecordDeclaration   skipwhite skipnl +syn match elixirMacroDefine         '\<defmacro\>\(:\)\@!'        nextgroup=elixirMacroDeclaration           skipwhite skipnl +syn match elixirPrivateMacroDefine  '\<defmacrop\>\(:\)\@!'       nextgroup=elixirPrivateMacroDeclaration    skipwhite skipnl +syn match elixirDelegateDefine      '\<defdelegate\>\(:\)\@!'     nextgroup=elixirDelegateDeclaration        skipwhite skipnl +syn match elixirOverridableDefine   '\<defoverridable\>\(:\)\@!'  nextgroup=elixirOverridableDeclaration     skipwhite skipnl +syn match elixirExceptionDefine     '\<defexception\>\(:\)\@!'    nextgroup=elixirExceptionDeclaration       skipwhite skipnl +syn match elixirCallbackDefine      '\<defcallback\>\(:\)\@!'     nextgroup=elixirCallbackDeclaration        skipwhite skipnl  syn match elixirStructDefine        '\<defstruct\>\(:\)\@!'       skipwhite skipnl  " Declarations -syn match  elixirModuleDeclaration      "[^[:space:];#<]\+"        contained                      nextgroup=elixirBlock     skipwhite skipnl -syn match  elixirFunctionDeclaration    "[^[:space:];#<,()\[\]]\+" contained                      nextgroup=elixirArguments skipwhite skipnl -syn match  elixirProtocolDeclaration    "[^[:space:];#<]\+"        contained contains=elixirAlias                           skipwhite skipnl -syn match  elixirImplDeclaration        "[^[:space:];#<]\+"        contained contains=elixirAlias                           skipwhite skipnl -syn match  elixirRecordDeclaration      "[^[:space:];#<]\+"        contained contains=elixirAlias,elixirAtom                skipwhite skipnl -syn match  elixirMacroDeclaration       "[^[:space:];#<,()\[\]]\+" contained                      nextgroup=elixirArguments skipwhite skipnl -syn match  elixirDelegateDeclaration    "[^[:space:];#<,()\[\]]\+" contained contains=elixirFunctionDeclaration             skipwhite skipnl -syn region elixirDelegateDeclaration    start='\['     end='\]'    contained contains=elixirFunctionDeclaration             skipwhite skipnl -syn match  elixirOverridableDeclaration "[^[:space:];#<]\+"        contained contains=elixirAlias,elixirAtom                skipwhite skipnl -syn match  elixirExceptionDeclaration   "[^[:space:];#<]\+"        contained contains=elixirAlias,elixirAtom                skipwhite skipnl -syn match  elixirCallbackDeclaration    "[^[:space:];#<,()\[\]]\+" contained contains=elixirFunctionDeclaration             skipwhite skipnl +syn match  elixirModuleDeclaration          "[^[:space:];#<,()\[\]]\+" contained                      nextgroup=elixirBlock     skipwhite skipnl +syn match  elixirFunctionDeclaration        "[^[:space:];#<,()\[\]]\+" contained                      nextgroup=elixirArguments skipwhite skipnl +syn match  elixirPrivateFunctionDeclaration "[^[:space:];#<,()\[\]]\+" contained                      nextgroup=elixirArguments skipwhite skipnl +syn match  elixirProtocolDeclaration        "[^[:space:];#<]\+"        contained contains=elixirAlias                           skipwhite skipnl +syn match  elixirImplDeclaration            "[^[:space:];#<]\+"        contained contains=elixirAlias                           skipwhite skipnl +syn match  elixirRecordDeclaration          "[^[:space:];#<]\+"        contained contains=elixirAlias,elixirAtom                skipwhite skipnl +syn match  elixirPrivateRecordDeclaration   "[^[:space:];#<]\+"        contained contains=elixirAlias,elixirAtom                skipwhite skipnl +syn match  elixirMacroDeclaration           "[^[:space:];#<,()\[\]]\+" contained                      nextgroup=elixirArguments skipwhite skipnl +syn match  elixirPrivateMacroDeclaration    "[^[:space:];#<,()\[\]]\+" contained                      nextgroup=elixirArguments skipwhite skipnl +syn match  elixirDelegateDeclaration        "[^[:space:];#<,()\[\]]\+" contained contains=elixirFunctionDeclaration             skipwhite skipnl +syn region elixirDelegateDeclaration        start='\['     end='\]'    contained contains=elixirFunctionDeclaration             skipwhite skipnl +syn match  elixirOverridableDeclaration     "[^[:space:];#<]\+"        contained contains=elixirAlias,elixirAtom                skipwhite skipnl +syn match  elixirExceptionDeclaration       "[^[:space:];#<]\+"        contained contains=elixirAlias,elixirAtom                skipwhite skipnl +syn match  elixirCallbackDeclaration        "[^[:space:];#<,()\[\]]\+" contained contains=elixirFunctionDeclaration             skipwhite skipnl  " ExUnit  syn match  elixirExUnitMacro "\(^\s*\)\@<=\<\(test\|describe\|setup\|setup_all\|on_exit\|doctest\)\>"  syn match  elixirExUnitAssert "\(^\s*\)\@<=\<\(assert\|assert_in_delta\|assert_raise\|assert_receive\|assert_received\|catch_error\)\>"  syn match  elixirExUnitAssert "\(^\s*\)\@<=\<\(catch_exit\|catch_throw\|flunk\|refute\|refute_in_delta\|refute_receive\|refute_received\)\>" -hi def link elixirBlockDefinition        Define -hi def link elixirDefine                 Define -hi def link elixirPrivateDefine          Define -hi def link elixirGuard                  Define -hi def link elixirPrivateGuard           Define -hi def link elixirModuleDefine           Define -hi def link elixirProtocolDefine         Define -hi def link elixirImplDefine             Define -hi def link elixirRecordDefine           Define -hi def link elixirPrivateRecordDefine    Define -hi def link elixirMacroDefine            Define -hi def link elixirPrivateMacroDefine     Define -hi def link elixirDelegateDefine         Define -hi def link elixirOverridableDefine      Define -hi def link elixirExceptionDefine        Define -hi def link elixirCallbackDefine         Define -hi def link elixirStructDefine           Define -hi def link elixirExUnitMacro            Define -hi def link elixirModuleDeclaration      Type -hi def link elixirFunctionDeclaration    Function -hi def link elixirMacroDeclaration       Macro -hi def link elixirInclude                Include -hi def link elixirComment                Comment -hi def link elixirTodo                   Todo -hi def link elixirKeyword                Define -hi def link elixirExUnitAssert           Keyword -hi def link elixirOperator               Operator -hi def link elixirAtom                   Constant -hi def link elixirPseudoVariable         Constant -hi def link elixirAlias                  Type -hi def link elixirBoolean                Boolean -hi def link elixirVariable               Identifier -hi def link elixirSelf                   Identifier -hi def link elixirUnusedVariable         Comment -hi def link elixirNumber                 Number -hi def link elixirDocString              Comment -hi def link elixirDocTest                elixirKeyword -hi def link elixirAtomInterpolated       elixirAtom -hi def link elixirRegex                  elixirString -hi def link elixirRegexEscape            elixirSpecial -hi def link elixirRegexEscapePunctuation elixirSpecial -hi def link elixirRegexCharClass         elixirSpecial -hi def link elixirRegexQuantifier        elixirSpecial -hi def link elixirSpecial                Special -hi def link elixirString                 String -hi def link elixirSigil                  String -hi def link elixirStringDelimiter        Delimiter -hi def link elixirRegexDelimiter         Delimiter -hi def link elixirInterpolationDelimiter Delimiter -hi def link elixirSigilDelimiter         Delimiter +hi def link elixirBlockDefinition            Define +hi def link elixirDefine                     Define +hi def link elixirPrivateDefine              Define +hi def link elixirGuard                      Define +hi def link elixirPrivateGuard               Define +hi def link elixirModuleDefine               Define +hi def link elixirProtocolDefine             Define +hi def link elixirImplDefine                 Define +hi def link elixirRecordDefine               Define +hi def link elixirPrivateRecordDefine        Define +hi def link elixirMacroDefine                Define +hi def link elixirPrivateMacroDefine         Define +hi def link elixirDelegateDefine             Define +hi def link elixirOverridableDefine          Define +hi def link elixirExceptionDefine            Define +hi def link elixirCallbackDefine             Define +hi def link elixirStructDefine               Define +hi def link elixirExUnitMacro                Define +hi def link elixirModuleDeclaration          Type +hi def link elixirPrivateFunctionDeclaration elixirFunctionDeclaration +hi def link elixirFunctionDeclaration        Function +hi def link elixirPrivateMacroDeclaration    elixirMacroDeclaration +hi def link elixirMacroDeclaration           Macro +hi def link elixirInclude                    Include +hi def link elixirComment                    Comment +hi def link elixirTodo                       Todo +hi def link elixirKeyword                    Define +hi def link elixirExUnitAssert               Keyword +hi def link elixirOperator                   Operator +hi def link elixirAtom                       Constant +hi def link elixirPseudoVariable             Constant +hi def link elixirAlias                      Type +hi def link elixirBoolean                    Boolean +hi def link elixirVariable                   Identifier +hi def link elixirSelf                       Identifier +hi def link elixirUnusedVariable             Comment +hi def link elixirNumber                     Number +hi def link elixirDocString                  Comment +hi def link elixirDocTest                    elixirKeyword +hi def link elixirAtomInterpolated           elixirAtom +hi def link elixirRegex                      elixirString +hi def link elixirRegexEscape                elixirSpecial +hi def link elixirRegexEscapePunctuation     elixirSpecial +hi def link elixirRegexCharClass             elixirSpecial +hi def link elixirRegexQuantifier            elixirSpecial +hi def link elixirSpecial                    Special +hi def link elixirString                     String +hi def link elixirSigil                      String +hi def link elixirDocStringDelimiter         elixirStringDelimiter +hi def link elixirDocSigilDelimiter          elixirSigilDelimiter +hi def link elixirStringDelimiter            Delimiter +hi def link elixirRegexDelimiter             Delimiter +hi def link elixirInterpolationDelimiter     Delimiter +hi def link elixirSigilDelimiter             Delimiter +hi def link elixirPrivateRecordDeclaration   elixirRecordDeclaration  let b:current_syntax = "elixir" diff --git a/syntax/gitrebase.vim b/syntax/gitrebase.vim index dad1605b..da1c4a21 100644 --- a/syntax/gitrebase.vim +++ b/syntax/gitrebase.vim @@ -20,8 +20,9 @@ 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   gitrebaseBreak  "\v^b%(reak)=>"  nextgroup=gitrebaseCommit skipwhite +syn match   gitrebaseDrop   "\v^d%(rop)=>"   nextgroup=gitrebaseCommit skipwhite +syn match   gitrebaseNoop   "\v^noop>"  syn match   gitrebaseSummary ".*"               contains=gitrebaseHash contained  syn match   gitrebaseCommand ".*"                                      contained  syn match   gitrebaseComment "^\s*#.*"             contains=gitrebaseHash @@ -35,8 +36,9 @@ 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 gitrebaseBreak          Macro +hi def link gitrebaseDrop           Comment +hi def link gitrebaseNoop           Comment  hi def link gitrebaseSummary        String  hi def link gitrebaseComment        Comment  hi def link gitrebaseSquashError    Error diff --git a/syntax/go.vim b/syntax/go.vim index 51f1a60e..a06f62d2 100644 --- a/syntax/go.vim +++ b/syntax/go.vim @@ -74,7 +74,7 @@ hi def link     goComment           Comment  hi def link     goTodo              Todo  if go#config#HighlightGenerateTags() -  syn match       goGenerateVariables contained /\(\$GOARCH\|\$GOOS\|\$GOFILE\|\$GOLINE\|\$GOPACKAGE\|\$DOLLAR\)\>/ +  syn match       goGenerateVariables contained /\%(\$GOARCH\|\$GOOS\|\$GOFILE\|\$GOLINE\|\$GOPACKAGE\|\$DOLLAR\)\>/    syn region      goGenerate          start="^\s*//go:generate" end="$" contains=goGenerateVariables    hi def link     goGenerate          PreProc    hi def link     goGenerateVariables Special @@ -115,7 +115,7 @@ if go#config#HighlightFormatStrings()    " 5. Match [n] or nothing before a verb    " 6. Match a formatting verb    syn match       goFormatSpecifier   /\ -        \([^%]\(%%\)*\)\ +        \%([^%]\%(%%\)*\)\          \@<=%[-#0 +]*\          \%(\%(\%(\[\d\+\]\)\=\*\)\|\d\+\)\=\          \%(\.\%(\%(\%(\[\d\+\]\)\=\*\)\|\d\+\)\=\)\=\ @@ -150,18 +150,18 @@ endif  " var, const  if go#config#FoldEnable('varconst')    syn region    goVar               start='var ('   end='^\s*)$' transparent fold -                        \ contains=ALLBUT,goParen,goBlock,goFunction,goTypeName,goReceiverType,goReceiverVar,goArgumentName,goArgumentType,goSimpleArguments,goPointerOperator +                        \ contains=ALLBUT,goParen,goBlock,goFunction,goTypeName,goReceiverType,goReceiverVar,goParamName,goParamType,goSimpleParams,goPointerOperator    syn region    goConst             start='const (' end='^\s*)$' transparent fold -                        \ contains=ALLBUT,goParen,goBlock,goFunction,goTypeName,goReceiverType,goReceiverVar,goArgumentName,goArgumentType,goSimpleArguments,goPointerOperator +                        \ contains=ALLBUT,goParen,goBlock,goFunction,goTypeName,goReceiverType,goReceiverVar,goParamName,goParamType,goSimpleParams,goPointerOperator  else    syn region    goVar               start='var ('   end='^\s*)$' transparent -                        \ contains=ALLBUT,goParen,goBlock,goFunction,goTypeName,goReceiverType,goReceiverVar,goArgumentName,goArgumentType,goSimpleArguments,goPointerOperator +                        \ contains=ALLBUT,goParen,goBlock,goFunction,goTypeName,goReceiverType,goReceiverVar,goParamName,goParamType,goSimpleParams,goPointerOperator    syn region    goConst             start='const (' end='^\s*)$' transparent -                        \ contains=ALLBUT,goParen,goBlock,goFunction,goTypeName,goReceiverType,goReceiverVar,goArgumentName,goArgumentType,goSimpleArguments,goPointerOperator +                        \ contains=ALLBUT,goParen,goBlock,goFunction,goTypeName,goReceiverType,goReceiverVar,goParamName,goParamType,goSimpleParams,goPointerOperator  endif  " Single-line var, const, and import. -syn match       goSingleDecl        /\(import\|var\|const\) [^(]\@=/ contains=goImport,goVar,goConst +syn match       goSingleDecl        /\%(import\|var\|const\) [^(]\@=/ contains=goImport,goVar,goConst  " Integers  syn match       goDecimalInt        "\<-\=\d\+\%([Ee][-+]\=\d\+\)\=\>" @@ -192,7 +192,7 @@ hi def link     goImaginaryFloat    Float  " Spaces after "[]"  if go#config#HighlightArrayWhitespaceError() -  syn match goSpaceError display "\(\[\]\)\@<=\s\+" +  syn match goSpaceError display "\%(\[\]\)\@<=\s\+"  endif  " Spacing errors around the 'chan' keyword @@ -201,24 +201,24 @@ if go#config#HighlightChanWhitespaceError()    "    " \(\<chan\>\)\@<!<-  (only pick arrow when it doesn't come after a chan)    " this prevents picking up 'chan<- chan<-' but not '<- chan' -  syn match goSpaceError display "\(\(\<chan\>\)\@<!<-\)\@<=\s\+\(\<chan\>\)\@=" +  syn match goSpaceError display "\%(\%(\<chan\>\)\@<!<-\)\@<=\s\+\%(\<chan\>\)\@="    " send-only annotation on chan type    "    " \(<-\)\@<!\<chan\>  (only pick chan when it doesn't come after an arrow)    " this prevents picking up '<-chan <-chan' but not 'chan <-' -  syn match goSpaceError display "\(\(<-\)\@<!\<chan\>\)\@<=\s\+\(<-\)\@=" +  syn match goSpaceError display "\%(\%(<-\)\@<!\<chan\>\)\@<=\s\+\%(<-\)\@="    " value-ignoring receives in a few contexts -  syn match goSpaceError display "\(\(^\|[={(,;]\)\s*<-\)\@<=\s\+" +  syn match goSpaceError display "\%(\%(^\|[={(,;]\)\s*<-\)\@<=\s\+"  endif  " Extra types commonly seen  if go#config#HighlightExtraTypes() -  syn match goExtraType /\<bytes\.\(Buffer\)\>/ -  syn match goExtraType /\<context\.\(Context\)\>/ -  syn match goExtraType /\<io\.\(Reader\|ReadSeeker\|ReadWriter\|ReadCloser\|ReadWriteCloser\|Writer\|WriteCloser\|Seeker\)\>/ -  syn match goExtraType /\<reflect\.\(Kind\|Type\|Value\)\>/ +  syn match goExtraType /\<bytes\.\%(Buffer\)\>/ +  syn match goExtraType /\<context\.\%(Context\)\>/ +  syn match goExtraType /\<io\.\%(Reader\|ReadSeeker\|ReadWriter\|ReadCloser\|ReadWriteCloser\|Writer\|WriteCloser\|Seeker\)\>/ +  syn match goExtraType /\<reflect\.\%(Kind\|Type\|Value\)\>/    syn match goExtraType /\<unsafe\.Pointer\>/  endif @@ -265,21 +265,22 @@ endif  hi def link     goOperator          Operator  " Functions; -if go#config#HighlightFunctions() || go#config#HighlightFunctionArguments() -  syn match goDeclaration       /\<func\>/ nextgroup=goReceiver,goFunction,goSimpleArguments skipwhite skipnl -  syn match goReceiverVar       /\w\+\ze\s\+\(\w\|\*\)/ nextgroup=goPointerOperator,goReceiverType skipwhite skipnl contained +if go#config#HighlightFunctions() || go#config#HighlightFunctionParameters() +  syn match goDeclaration       /\<func\>/ nextgroup=goReceiver,goFunction,goSimpleParams skipwhite skipnl +  syn match goReceiverVar       /\w\+\ze\s\+\%(\w\|\*\)/ nextgroup=goPointerOperator,goReceiverType skipwhite skipnl contained    syn match goPointerOperator   /\*/ nextgroup=goReceiverType contained skipwhite skipnl -  syn match goFunction          /\w\+/ nextgroup=goSimpleArguments contained skipwhite skipnl +  syn match goFunction          /\w\+/ nextgroup=goSimpleParams contained skipwhite skipnl    syn match goReceiverType      /\w\+/ contained -if go#config#HighlightFunctionArguments() -  syn match goSimpleArguments   /(\(\w\|\_s\|[*\.\[\],\{\}<>-]\)*)/ contained contains=goArgumentName nextgroup=goSimpleArguments skipwhite skipnl -  syn match goArgumentName      /\w\+\(\s*,\s*\w\+\)*\ze\s\+\(\w\|\.\|\*\|\[\)/ contained nextgroup=goArgumentType skipwhite skipnl -  syn match goArgumentType      /\([^,)]\|\_s\)\+,\?/ contained nextgroup=goArgumentName skipwhite skipnl -                        \ contains=goVarArgs,goType,goSignedInts,goUnsignedInts,goFloats,goComplexes,goDeclType,goBlock -  hi def link   goReceiverVar       goArgumentName -  hi def link   goArgumentName      Identifier -endif -  syn match goReceiver          /(\s*\w\+\(\s\+\*\?\s*\w\+\)\?\s*)\ze\s*\w/ contained nextgroup=goFunction contains=goReceiverVar skipwhite skipnl +  if go#config#HighlightFunctionParameters() +    syn match goSimpleParams      /(\%(\w\|\_s\|[*\.\[\],\{\}<>-]\)*)/ contained contains=goParamName,goType nextgroup=goFunctionReturn skipwhite skipnl +    syn match goFunctionReturn   /(\%(\w\|\_s\|[*\.\[\],\{\}<>-]\)*)/ contained contains=goParamName,goType skipwhite skipnl +    syn match goParamName        /\w\+\%(\s*,\s*\w\+\)*\ze\s\+\%(\w\|\.\|\*\|\[\)/ contained nextgroup=goParamType skipwhite skipnl +    syn match goParamType        /\%([^,)]\|\_s\)\+,\?/ contained nextgroup=goParamName skipwhite skipnl +                          \ contains=goVarArgs,goType,goSignedInts,goUnsignedInts,goFloats,goComplexes,goDeclType,goBlock +    hi def link   goReceiverVar    goParamName +    hi def link   goParamName      Identifier +  endif +  syn match goReceiver          /(\s*\w\+\%(\s\+\*\?\s*\w\+\)\?\s*)\ze\s*\w/ contained nextgroup=goFunction contains=goReceiverVar skipwhite skipnl  else    syn keyword goDeclaration func  endif @@ -293,7 +294,20 @@ hi def link     goFunctionCall      Type  " Fields;  if go#config#HighlightFields() -  syn match goField                 /\.\w\+\([.\ \n\r\:\)\[,]\)\@=/hs=s+1 +  " 1. Match a sequence of word characters coming after a '.' +  " 2. Require the following but dont match it: ( \@= see :h E59) +  "    - The symbols: / - + * %   OR +  "    - The symbols: [] {} <> )  OR +  "    - The symbols: \n \r space OR +  "    - The symbols: , : . +  " 3. Have the start of highlight (hs) be the start of matched +  "    pattern (s) offsetted one to the right (+1) (see :h E401) +  syn match       goField   /\.\w\+\ +        \%(\%([\/\-\+*%]\)\|\ +        \%([\[\]{}<\>\)]\)\|\ +        \%([\!=\^|&]\)\|\ +        \%([\n\r\ ]\)\|\ +        \%([,\:.]\)\)\@=/hs=s+1  endif  hi def link    goField              Identifier @@ -302,7 +316,7 @@ if go#config#HighlightTypes()    syn match goTypeConstructor      /\<\w\+{\@=/    syn match goTypeDecl             /\<type\>/ nextgroup=goTypeName skipwhite skipnl    syn match goTypeName             /\w\+/ contained nextgroup=goDeclType skipwhite skipnl -  syn match goDeclType             /\<\(interface\|struct\)\>/ skipwhite skipnl +  syn match goDeclType             /\<\%(interface\|struct\)\>/ skipwhite skipnl    hi def link     goReceiverType      Type  else    syn keyword goDeclType           struct interface diff --git a/syntax/i3config.vim b/syntax/i3config.vim index 1d6367f2..4763ba43 100644 --- a/syntax/i3config.vim +++ b/syntax/i3config.vim @@ -55,8 +55,12 @@ syn keyword InitializeKeyword set contained  syn match Initialize /^\s*set\s\+.*$/ contains=Variable,InitializeKeyword,Color,String  " Gaps -syn keyword GapStyleKeyword inner outer current all set plus minus contained -syn match GapStyle /^\s*\(gaps\)\s\+\(inner\|outer\)\(\s\+\(current\|all\)\)\?\(\s\+\(set\|plus\|minus\)\)\?\(\s\+\d\+\)$/ contains=GapStyleKeyword,number +syn keyword GapStyleKeyword inner outer horizontal vertical top right bottom left current all set plus minus toggle contained +syn match GapStyle /^\s*\(gaps\)\s\+\(inner\|outer\|horizontal\|vertical\|left\|top\|right\|bottom\)\(\s\+\(current\|all\)\)\?\(\s\+\(set\|plus\|minus\|toggle\)\)\?\(\s\+\(\d\+\|\$.*\)\)$/ contains=GapStyleKeyword,number,Variable +syn keyword SmartGapKeyword on inverse_outer contained +syn match SmartGap /^\s*smart_gaps\s\+\(on\|inverse_outer\)\s\?$/ contains=SmartGapKeyword +syn keyword SmartBorderKeyword on no_gaps contained +syn match SmartBorder /^\s*smart_borders\s\+\(on\|no_gaps\)\s\?$/ contains=SmartBorderKeyword  " Keyboard bindings  syn keyword Action toggle fullscreen restart key import kill shrink grow contained @@ -87,8 +91,8 @@ syn keyword BorderStyleKeyword none normal pixel contained  syn match BorderStyle /^\s*\(new_window\|new_float\|default_border\|default_floating_border\)\s\+\(none\|\(normal\|pixel\)\(\s\+\d\+\)\?\)\s\?$/ contains=BorderStyleKeyword,number  " Hide borders and edges -syn keyword EdgeKeyword none vertical horizontal both contained -syn match Edge /^\s*hide_edge_borders\s\+\(none\|vertical\|horizontal\|both\)\s\?$/ contains=EdgeKeyword +syn keyword EdgeKeyword none vertical horizontal both smart smart_no_gaps contained +syn match Edge /^\s*hide_edge_borders\s\+\(none\|vertical\|horizontal\|both\|smart\|smart_no_gaps\)\s\?$/ contains=EdgeKeyword  " Arbitrary commands for specific windows (for_window)  syn keyword CommandKeyword for_window contained @@ -187,6 +191,8 @@ hi! def link OrientationKeyword Type  hi! def link MouseWarpingType Type  hi! def link FocusFollowsMouseType Type  hi! def link GapStyleKeyword Type +hi! def link SmartGapKeyword Type +hi! def link SmartBorderKeyword Type  hi! def link LayoutKeyword Type  hi! def link BorderStyleKeyword Type  hi! def link EdgeKeyword Type @@ -215,6 +221,8 @@ hi! def link FontKeyword Identifier  hi! def link BindKeyword Identifier  hi! def link Orientation Identifier  hi! def link GapStyle Identifier +hi! def link SmartGap Identifier +hi! def link SmartBorder Identifier  hi! def link Layout Identifier  hi! def link BorderStyle Identifier  hi! def link Edge Identifier @@ -239,7 +247,7 @@ hi! def link FocusOnActivationKeyword Identifier  hi! def link DrawingMarksKeyword Identifier  hi! def link BlockKeyword Identifier  hi! def link Variable Statement -hi! def link ArbitraryCommand Ignore +hi! def link ArbitraryCommand Type  let b:current_syntax = "i3config" diff --git a/syntax/javascript.vim b/syntax/javascript.vim index 7f127520..b0394caa 100644 --- a/syntax/javascript.vim +++ b/syntax/javascript.vim @@ -138,8 +138,8 @@ syntax keyword jsHtmlEvents     onblur onclick oncontextmenu ondblclick onfocus  syntax region  jsBracket                      matchgroup=jsBrackets            start=/\[/ end=/\]/ contains=@jsExpression,jsSpreadExpression extend fold  syntax region  jsParen                        matchgroup=jsParens              start=/(/  end=/)/  contains=@jsExpression extend fold nextgroup=jsFlowDefinition  syntax region  jsParenDecorator     contained matchgroup=jsParensDecorator     start=/(/  end=/)/  contains=@jsAll extend fold -syntax region  jsParenIfElse        contained matchgroup=jsParensIfElse        start=/(/  end=/)/  contains=@jsAll skipwhite skipempty nextgroup=jsCommentIfElse,jsIfElseBlock extend fold -syntax region  jsParenRepeat        contained matchgroup=jsParensRepeat        start=/(/  end=/)/  contains=@jsAll skipwhite skipempty nextgroup=jsCommentRepeat,jsRepeatBlock extend fold +syntax region  jsParenIfElse        contained matchgroup=jsParensIfElse        start=/(/  end=/)/  contains=@jsAll skipwhite skipempty nextgroup=jsCommentIfElse,jsIfElseBlock,jsReturn extend fold +syntax region  jsParenRepeat        contained matchgroup=jsParensRepeat        start=/(/  end=/)/  contains=@jsAll skipwhite skipempty nextgroup=jsCommentRepeat,jsRepeatBlock,jsReturn extend fold  syntax region  jsParenSwitch        contained matchgroup=jsParensSwitch        start=/(/  end=/)/  contains=@jsAll skipwhite skipempty nextgroup=jsSwitchBlock extend fold  syntax region  jsParenCatch         contained matchgroup=jsParensCatch         start=/(/  end=/)/  skipwhite skipempty nextgroup=jsTryCatchBlock extend fold  syntax region  jsFuncArgs           contained matchgroup=jsFuncParens          start=/(/  end=/)/  contains=jsFuncArgCommas,jsComment,jsFuncArgExpression,jsDestructuringBlock,jsDestructuringArray,jsRestExpression,jsFlowArgumentDef skipwhite skipempty nextgroup=jsCommentFunction,jsFuncBlock,jsFlowReturn extend fold @@ -157,7 +157,7 @@ syntax region  jsBlock                        matchgroup=jsBraces              s  syntax region  jsModuleGroup        contained matchgroup=jsModuleBraces        start=/{/ end=/}/   contains=jsModuleKeyword,jsModuleComma,jsModuleAs,jsComment,jsFlowTypeKeyword skipwhite skipempty nextgroup=jsFrom fold  syntax region  jsSpreadExpression   contained matchgroup=jsSpreadOperator      start=/\.\.\./ end=/[,}\]]\@=/ contains=@jsExpression  syntax region  jsRestExpression     contained matchgroup=jsRestOperator        start=/\.\.\./ end=/[,)]\@=/ -syntax region  jsTernaryIf                    matchgroup=jsTernaryIfOperator   start=/?/  end=/\%(:\|}\@=\)/  contains=@jsExpression extend skipwhite skipempty nextgroup=@jsExpression +syntax region  jsTernaryIf                    matchgroup=jsTernaryIfOperator   start=/?:\@!/  end=/\%(:\|}\@=\)/  contains=@jsExpression extend skipwhite skipempty nextgroup=@jsExpression  syntax match   jsOperator       /?\.\ze\_D/  syntax match   jsGenerator            contained /\*/ skipwhite skipempty nextgroup=jsFuncName,jsFuncArgs,jsFlowFunctionGroup diff --git a/syntax/julia.vim b/syntax/julia.vim index e599647e..5f40db60 100644 --- a/syntax/julia.vim +++ b/syntax/julia.vim @@ -156,37 +156,41 @@ syntax region  juliaParBlockInRange	matchgroup=juliaParDelim contained start="("  syntax region  juliaSqBraBlock		matchgroup=juliaParDelim start="\[" end="\]" contains=@juliaExpressions,juliaParBlockInRange,juliaRangeEnd,juliaComprehensionFor,juliaSymbolS,juliaQuotedParBlockS,juliaQuotedQMarkParS  syntax region  juliaCurBraBlock		matchgroup=juliaParDelim start="{" end="}" contains=@juliaExpressions -syntax match   juliaKeyword		display "\<\%(return\|local\|global\|import\%(all\)\?\|export\|using\|const\|where\)\>" +" This is really ugly. It would be better to mask most keywords when a dot is +" found, introducing some kind of dot-environment +let s:nodot = '\%(\.\)\@'.s:d(1).'1<!' + +exec 'syntax match   juliaKeyword		display "'.s:nodot.'\<\%(return\|local\|global\|import\%(all\)\?\|export\|using\|const\|where\)\>"'  syntax match   juliaInfixKeyword	display "\%(=\s*\)\@<!\<\%(in\|isa\)\>\S\@!\%(\s*=\)\@!" -syntax match   juliaRepKeyword		display "\<\%(break\|continue\)\>" -syntax region  juliaConditionalBlock	matchgroup=juliaConditional start="\<if\>" end="\<end\>" contains=@juliaExpressions,juliaConditionalEIBlock,juliaConditionalEBlock fold -syntax region  juliaConditionalEIBlock	matchgroup=juliaConditional transparent contained start="\<elseif\>" end="\<\%(end\|else\|elseif\)\>"me=s-1 contains=@juliaExpressions,juliaConditionalEIBlock,juliaConditionalEBlock -syntax region  juliaConditionalEBlock	matchgroup=juliaConditional transparent contained start="\<else\>" end="\<end\>"me=s-1 contains=@juliaExpressions -syntax region  juliaWhileBlock		matchgroup=juliaRepeat start="\<while\>" end="\<end\>" contains=@juliaExpressions fold -syntax region  juliaForBlock		matchgroup=juliaRepeat start="\<for\>" end="\<end\>" contains=@juliaExpressions,juliaOuter fold -syntax region  juliaBeginBlock		matchgroup=juliaBlKeyword start="\<begin\>" end="\<end\>" contains=@juliaExpressions fold -syntax region  juliaFunctionBlock	matchgroup=juliaBlKeyword start="\<function\>" end="\<end\>" contains=@juliaExpressions fold -syntax region  juliaMacroBlock		matchgroup=juliaBlKeyword start="\<macro\>" end="\<end\>" contains=@juliaExpressions fold -syntax region  juliaQuoteBlock		matchgroup=juliaBlKeyword start="\<quote\>" end="\<end\>" contains=@juliaExpressions fold +exec 'syntax match   juliaRepKeyword		display "'.s:nodot.'\<\%(break\|continue\)\>"' +exec 'syntax region  juliaConditionalBlock	matchgroup=juliaConditional start="'.s:nodot.'\<if\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions,juliaConditionalEIBlock,juliaConditionalEBlock fold' +exec 'syntax region  juliaConditionalEIBlock	matchgroup=juliaConditional transparent contained start="'.s:nodot.'\<elseif\>" end="'.s:nodot.'\<\%(end\|else\|elseif\)\>"me=s-1 contains=@juliaExpressions,juliaConditionalEIBlock,juliaConditionalEBlock' +exec 'syntax region  juliaConditionalEBlock	matchgroup=juliaConditional transparent contained start="'.s:nodot.'\<else\>" end="'.s:nodot.'\<end\>"me=s-1 contains=@juliaExpressions' +exec 'syntax region  juliaWhileBlock		matchgroup=juliaRepeat start="'.s:nodot.'\<while\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions fold' +exec 'syntax region  juliaForBlock		matchgroup=juliaRepeat start="'.s:nodot.'\<for\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions,juliaOuter fold' +exec 'syntax region  juliaBeginBlock		matchgroup=juliaBlKeyword start="'.s:nodot.'\<begin\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions fold' +exec 'syntax region  juliaFunctionBlock	matchgroup=juliaBlKeyword start="'.s:nodot.'\<function\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions fold' +exec 'syntax region  juliaMacroBlock		matchgroup=juliaBlKeyword start="'.s:nodot.'\<macro\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions fold' +exec 'syntax region  juliaQuoteBlock		matchgroup=juliaBlKeyword start="'.s:nodot.'\<quote\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions fold'  if b:julia_syntax_version <= 10 -  syntax region  juliaTypeBlock		matchgroup=juliaBlKeyword06 start="\<type\>" end="\<end\>" contains=@juliaExpressions fold -  syntax region  juliaImmutableBlock	matchgroup=juliaBlKeyword06 start="\<immutable\>" end="\<end\>" contains=@juliaExpressions fold +  exec 'syntax region  juliaTypeBlock		matchgroup=juliaBlKeyword06 start="'.s:nodot.'\<type\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions fold' +  exec 'syntax region  juliaImmutableBlock	matchgroup=juliaBlKeyword06 start="'.s:nodot.'\<immutable\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions fold'  endif -syntax region  juliaStructBlock		matchgroup=juliaBlKeyword start="\<struct\>" end="\<end\>" contains=@juliaExpressions fold -syntax region  juliaMutableStructBlock	matchgroup=juliaBlKeyword start="\<mutable struct\>" end="\<end\>" contains=@juliaExpressions fold -syntax region  juliaLetBlock		matchgroup=juliaBlKeyword start="\<let\>" end="\<end\>" contains=@juliaExpressions fold -syntax region  juliaDoBlock		matchgroup=juliaBlKeyword start="\<do\>" end="\<end\>" contains=@juliaExpressions fold +exec 'syntax region  juliaStructBlock		matchgroup=juliaBlKeyword start="'.s:nodot.'\<struct\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions fold' +exec 'syntax region  juliaMutableStructBlock	matchgroup=juliaBlKeyword start="'.s:nodot.'\<mutable struct\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions fold' +exec 'syntax region  juliaLetBlock		matchgroup=juliaBlKeyword start="'.s:nodot.'\<let\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions fold' +exec 'syntax region  juliaDoBlock		matchgroup=juliaBlKeyword start="'.s:nodot.'\<do\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions fold'  exec 'syntax region  juliaModuleBlock		matchgroup=juliaBlKeyword start="\%(\%(\.\s*\)\@'.s:d(6).'<!\|\%(@\s*\.\s*\)\@'.s:d(6).'<=\)\<\%(bare\)\?module\>" end="\<end\>" contains=@juliaExpressions fold' -syntax region  juliaExceptionBlock	matchgroup=juliaException start="\<try\>" end="\<end\>" contains=@juliaExpressions,juliaCatchBlock,juliaFinallyBlock fold -syntax region  juliaCatchBlock		matchgroup=juliaException transparent contained start="\<catch\>" end="\<end\>"me=s-1 contains=@juliaExpressions,juliaFinallyBlock -syntax region  juliaFinallyBlock	matchgroup=juliaException transparent contained start="\<finally\>" end="\<end\>"me=s-1 contains=@juliaExpressions -syntax match   juliaTypedef		"\<\%(abstract\|typealias\|bitstype\)\>" +exec 'syntax region  juliaExceptionBlock	matchgroup=juliaException start="'.s:nodot.'\<try\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions,juliaCatchBlock,juliaFinallyBlock fold' +exec 'syntax region  juliaCatchBlock		matchgroup=juliaException transparent contained start="'.s:nodot.'\<catch\>" end="'.s:nodot.'\<end\>"me=s-1 contains=@juliaExpressions,juliaFinallyBlock' +exec 'syntax region  juliaFinallyBlock	matchgroup=juliaException transparent contained start="'.s:nodot.'\<finally\>" end="'.s:nodot.'\<end\>"me=s-1 contains=@juliaExpressions' +exec 'syntax match   juliaTypedef		"'.s:nodot.'\<\%(abstract\|typealias\|bitstype\)\>"'  " AbstractBlock needs to come after to take precedence -syntax region  juliaAbstractBlock	matchgroup=juliaBlKeyword start="\<abstract type\>" end="\<end\>" fold contains=@juliaExpressions -syntax region  juliaPrimitiveBlock	matchgroup=juliaBlKeyword start="\<primitive type\>" end="\<end\>" fold contains=@juliaExpressions +exec 'syntax region  juliaAbstractBlock	matchgroup=juliaBlKeyword start="'.s:nodot.'\<abstract type\>" end="'.s:nodot.'\<end\>" fold contains=@juliaExpressions' +exec 'syntax region  juliaPrimitiveBlock	matchgroup=juliaBlKeyword start="'.s:nodot.'\<primitive type\>" end="'.s:nodot.'\<end\>" fold contains=@juliaExpressions'  exec 'syntax region  juliaComprehensionFor	matchgroup=juliaComprehensionFor transparent contained start="\%([^[:space:],;:({[]\_s*\)\@'.s:d(80).'<=\<for\>" end="\ze[]);]" contains=@juliaExpressions,juliaComprehensionIf,juliaComprehensionFor' -syntax match   juliaComprehensionIf	contained "\<if\>" +exec 'syntax match   juliaComprehensionIf	contained "'.s:nodot.'\<if\>"'  exec 'syntax match   juliaOuter    contained "\<outer\ze\s\+' . s:idregex . '\>"' @@ -219,7 +223,7 @@ syntax match   juliaBaseTypeRange	display "\<\%(Dims\|RangeIndex\|\%(Ordinal\|St  syntax match   juliaBaseTypeRange06	display "\<Range\>"  syntax match   juliaBaseTypeRange1011	display "\<\(Abstract\|Lin\)Range\>"  syntax match   juliaBaseTypeRegex	display "\<Regex\%(Match\)\?\>" -syntax match   juliaBaseTypeFact	display "\<Factorization\>" +syntax match   juliaBaseTypeFact	display "\<\%(Factorization\|BunchKaufman\|\%(Cholesky\|QR\)\%(Pivoted\)\?\|\%(Generalized\)\?\%(Eigen\|SVD\|Schur\)\|Hessenberg\|LDLt\|LQ\|LU\)\>"  syntax match   juliaBaseTypeSort	display "\<\%(Insertion\|\(Partial\)\?Quick\|Merge\)Sort\>"  syntax match   juliaBaseTypeRound	display "\<Round\%(ingMode\|FromZero\|Down\|Nearest\%(Ties\%(Away\|Up\)\)\?\|ToZero\|Up\)\>"  syntax match   juliaBaseTypeSpecial	display "\<\%(LocalProcess\|ClusterManager\)\>" diff --git a/syntax/kotlin.vim b/syntax/kotlin.vim index 70803f5c..a4019e55 100644 --- a/syntax/kotlin.vim +++ b/syntax/kotlin.vim @@ -3,7 +3,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'kotlin') == -1  " Vim syntax file  " Language: Kotlin  " Maintainer: Alexander Udalov -" Latest Revision: 23 November 2017 +" Latest Revision: 14 January 2019  if exists("b:current_syntax")      finish @@ -36,6 +36,12 @@ syn match ktShebang "\v^#!.*$"  syn match ktLineComment "\v//.*$" contains=ktTodo,@Spell  syn region ktComment matchgroup=ktCommentMatchGroup start="/\*" end="\*/" contains=ktComment,ktTodo,@Spell +syn region ktDocComment start="/\*\*" end="\*/" contains=ktDocTag,ktTodo,@Spell +syn match ktDocTag "\v\@(author|constructor|receiver|return|since|suppress)>" contained +syn match ktDocTag "\v\@(exception|param|property|throws|see|sample)>\s*\S+" contains=ktDocTagParam contained +syn match ktDocTagParam "\v(\s|\[)\S+" contained +syn match ktComment "/\*\*/" +  syn match ktSpecialCharError "\v\\." contained  syn match ktSpecialChar "\v\\([tbnr'"$\\]|u\x{4})" contained  syn region ktString start='"' skip='\\"' end='"' contains=ktSimpleInterpolation,ktComplexInterpolation,ktSpecialChar,ktSpecialCharError @@ -49,11 +55,11 @@ syn match ktAnnotation "\v(\w)@<!\@[[:alnum:]_.]*(:[[:alnum:]_.]*)?"  syn match ktLabel "\v\w+\@"  syn match ktSimpleInterpolation "\v\$\h\w*" contained -syn region ktComplexInterpolation matchgroup=ktComplexInterpolationBrace start="\v\$\{" end="\v\}" contains=ALLBUT,ktSimpleInterpolation +syn region ktComplexInterpolation matchgroup=ktComplexInterpolationBrace start="\v\$\{" end="\v\}" contains=ALLBUT,ktSimpleInterpolation,ktTodo,ktSpecialCharError,ktSpecialChar,ktDocTag,ktDocTagParam -syn match ktNumber "\v<\d+[_[:digit:]]*[LFf]?" -syn match ktNumber "\v<0[Xx]\x+[_[:xdigit:]]*L?" -syn match ktNumber "\v<0[Bb][01]+[_01]*L?" +syn match ktNumber "\v<\d+[_[:digit:]]*(uL?|UL?|[LFf])?" +syn match ktNumber "\v<0[Xx]\x+[_[:xdigit:]]*(uL?|UL?|L)?" +syn match ktNumber "\v<0[Bb][01]+[_01]*(uL?|UL?|L)?"  syn match ktFloat "\v<\d*(\d[eE][-+]?\d+|\.\d+([eE][-+]?\d+)?)[Ff]?"  syn match ktEscapedName "\v`.*`" @@ -86,6 +92,9 @@ hi link ktShebang Comment  hi link ktLineComment Comment  hi link ktComment Comment  hi link ktCommentMatchGroup Comment +hi link ktDocComment Comment +hi link ktDocTag Special +hi link ktDocTagParam Identifier  hi link ktSpecialChar SpecialChar  hi link ktSpecialCharError Error diff --git a/syntax/markdown.vim b/syntax/markdown.vim index 95969bf2..e59ffcae 100644 --- a/syntax/markdown.vim +++ b/syntax/markdown.vim @@ -38,10 +38,14 @@ syn sync linebreaks=1  let s:conceal = ''  let s:concealends = '' +let s:concealcode = ''  if has('conceal') && get(g:, 'vim_markdown_conceal', 1)    let s:conceal = ' conceal'    let s:concealends = ' concealends'  endif +if has('conceal') && get(g:, 'vim_markdown_conceal_code_blocks', 1) +  let s:concealcode = ' concealends' +endif  " additions to HTML groups  if get(g:, 'vim_markdown_emphasis_multiline', 1) @@ -96,13 +100,13 @@ syn match  htmlH2       /^.\+\n-\+$/ contains=mkdLink,mkdInlineURL,@Spell  "define Markdown groups  syn match  mkdLineBreak    /  \+$/  syn region mkdBlockquote   start=/^\s*>/                   end=/$/ contains=mkdLink,mkdInlineURL,mkdLineBreak,@Spell -execute 'syn region mkdCode matchgroup=mkdCodeDelimiter start=/\(\([^\\]\|^\)\\\)\@<!`/                     end=/\(\([^\\]\|^\)\\\)\@<!`/'  . s:concealends -execute 'syn region mkdCode matchgroup=mkdCodeDelimiter start=/\(\([^\\]\|^\)\\\)\@<!``/ skip=/[^`]`[^`]/   end=/\(\([^\\]\|^\)\\\)\@<!``/' . s:concealends -execute 'syn region mkdCode matchgroup=mkdCodeDelimiter start=/^\s*\z(`\{3,}\)[^`]*$/                       end=/^\s*\z1`*\s*$/'            . s:concealends -execute 'syn region mkdCode matchgroup=mkdCodeDelimiter start=/\(\([^\\]\|^\)\\\)\@<!\~\~/  end=/\(\([^\\]\|^\)\\\)\@<!\~\~/'               . s:concealends -execute 'syn region mkdCode matchgroup=mkdCodeDelimiter start=/^\s*\z(\~\{3,}\)\s*[0-9A-Za-z_+-]*\s*$/      end=/^\s*\z1\~*\s*$/'           . s:concealends -execute 'syn region mkdCode matchgroup=mkdCodeDelimiter start="<pre[^>]*\\\@<!>"                            end="</pre>"'                   . s:concealends -execute 'syn region mkdCode matchgroup=mkdCodeDelimiter start="<code[^>]*\\\@<!>"                           end="</code>"'                  . s:concealends +execute 'syn region mkdCode matchgroup=mkdCodeDelimiter start=/\(\([^\\]\|^\)\\\)\@<!`/                     end=/`/'  . s:concealcode +execute 'syn region mkdCode matchgroup=mkdCodeDelimiter start=/\(\([^\\]\|^\)\\\)\@<!``/ skip=/[^`]`[^`]/   end=/\(\([^\\]\|^\)\\\)\@<!``/' . s:concealcode +execute 'syn region mkdCode matchgroup=mkdCodeDelimiter start=/^\s*\z(`\{3,}\)[^`]*$/                       end=/^\s*\z1`*\s*$/'            . s:concealcode +execute 'syn region mkdCode matchgroup=mkdCodeDelimiter start=/\(\([^\\]\|^\)\\\)\@<!\~\~/  end=/\(\([^\\]\|^\)\\\)\@<!\~\~/'               . s:concealcode +execute 'syn region mkdCode matchgroup=mkdCodeDelimiter start=/^\s*\z(\~\{3,}\)\s*[0-9A-Za-z_+-]*\s*$/      end=/^\s*\z1\~*\s*$/'           . s:concealcode +execute 'syn region mkdCode matchgroup=mkdCodeDelimiter start="<pre[^>]*\\\@<!>"                            end="</pre>"'                   . s:concealcode +execute 'syn region mkdCode matchgroup=mkdCodeDelimiter start="<code[^>]*\\\@<!>"                           end="</code>"'                  . s:concealcode  syn region mkdFootnote     start="\[^"                     end="\]"  syn match  mkdCode         /^\s*\n\(\(\s\{8,}[^ ]\|\t\t\+[^\t]\).*\n\)\+/  syn match  mkdCode         /\%^\(\(\s\{4,}[^ ]\|\t\+[^\t]\).*\n\)\+/ @@ -147,7 +151,13 @@ if get(g:, 'vim_markdown_math', 0)    syn region mkdMath start="\\\@<!\$\$" end="\$\$" skip="\\\$" contains=@tex keepend  endif -syn cluster mkdNonListItem contains=@htmlTop,htmlItalic,htmlBold,htmlBoldItalic,mkdFootnotes,mkdInlineURL,mkdLink,mkdLinkDef,mkdLineBreak,mkdBlockquote,mkdCode,mkdRule,htmlH1,htmlH2,htmlH3,htmlH4,htmlH5,htmlH6,mkdMath +" Strike through +if get(g:, 'vim_markdown_strikethrough', 0) +    syn region mkdStrike matchgroup=mkdStrike start="\%(\~\~\)"    end="\%(\~\~\)" +    HtmlHiLink mkdStrike        htmlStrike +endif + +syn cluster mkdNonListItem contains=@htmlTop,htmlItalic,htmlBold,htmlBoldItalic,mkdFootnotes,mkdInlineURL,mkdLink,mkdLinkDef,mkdLineBreak,mkdBlockquote,mkdCode,mkdRule,htmlH1,htmlH2,htmlH3,htmlH4,htmlH5,htmlH6,mkdMath,htmlStrike  "highlighting for Markdown groups  HtmlHiLink mkdString        String diff --git a/syntax/mustache.vim b/syntax/mustache.vim index 50babe83..6f18be0b 100644 --- a/syntax/mustache.vim +++ b/syntax/mustache.vim @@ -44,7 +44,7 @@ endif  syntax match mustacheError '}}}\?'  syntax match mustacheInsideError '{{[{$#<>=!\/]\?'  syntax region mustacheInside start=/{{[^!][$#^/]\?/ end=/}}}\?/ keepend containedin=TOP,@htmlMustacheContainer -syntax match mustacheOperators '=\|\.\|/' contained containedin=mustacheInside,mustacheParam,@htmlMustacheContainer +syntax match mustacheOperators '=\|\.\|/' contained containedin=mustacheInside,mustacheParam  syntax region mustacheHtmlValue start=/={{[^!][$#^/]\?/rs=s+1,hs=s+1 end=/}}/ oneline keepend contained containedin=htmlTag contains=mustacheInside  syntax region mustachePartial start=/{{[<>]/lc=2 end=/}}/me=e-2 contained containedin=mustacheInside,@htmlMustacheContainer  syntax region mustacheMarkerSet start=/{{=/lc=2 end=/=}}/me=e-2 contained containedin=mustacheInside,@htmlMustacheContainer diff --git a/syntax/pug.vim b/syntax/pug.vim index 31dcaec1..ba687390 100644 --- a/syntax/pug.vim +++ b/syntax/pug.vim @@ -32,16 +32,17 @@ syn region  pugJavascript matchgroup=pugJavascriptOutputChar start="[!&]\==\|\~"  syn region  pugJavascript matchgroup=pugJavascriptChar start="-" skip=",\s*$" end="$" contained contains=@htmlJavascript keepend  syn cluster pugTop contains=pugBegin,pugComment,pugHtmlComment,pugJavascript  syn match   pugBegin "^\s*\%([<>]\|&[^=~ ]\)\@!" nextgroup=pugTag,pugClassChar,pugIdChar,pugPlainChar,pugJavascript,pugScriptConditional,pugScriptStatement,pugPipedText -syn match   pugTag "+\?[[:alnum:]_-]\+\%(:\w\+\)\=" contained contains=htmlTagName,htmlSpecialTagName nextgroup=@pugComponent +syn match   pugTag "+\?[[:alnum:]_-]\+\%(:\w\+\)\=" contained contains=htmlTagName,htmlSpecialTagName,pugJavascript nextgroup=@pugComponent  syn cluster pugComponent contains=pugAttributes,pugIdChar,pugBlockExpansionChar,pugClassChar,pugPlainChar,pugJavascript,pugTagBlockChar,pugTagInlineText -syntax keyword pugCommentTodo  contained TODO FIXME XXX TBD +syn keyword pugCommentTodo  contained TODO FIXME XXX TBD  syn match   pugComment '\(\s\+\|^\)\/\/.*$' contains=pugCommentTodo,@Spell  syn region  pugCommentBlock start="\z(\s\+\|^\)\/\/.*$" end="^\%(\z1\s\|\s*$\)\@!" contains=pugCommentTodo,@Spell keepend  syn region  pugHtmlConditionalComment start="<!--\%(.*\)>" end="<!\%(.*\)-->" contains=pugCommentTodo,@Spell  syn region  pugAngular2 start="(" end=")" contains=htmlEvent  syn region  pugJavascriptString start=+"+  skip=+\\\("\|$\)+  end=+"\|$+ contained  syn region  pugJavascriptString start=+'+  skip=+\\\('\|$\)+  end=+'\|$+ contained -syn region  pugAttributes matchgroup=pugAttributesDelimiter start="(" end=")" contained contains=pugJavascriptString,pugHtmlArg,pugAngular2,htmlArg,htmlEvent,htmlCssDefinition nextgroup=@pugComponent +syn region  pugJavascriptString start=+`+  skip=+\\\(`\|$\)+  end=+`\|$+ contains=javascriptInterpolation contained +syn region  pugAttributes matchgroup=pugAttributesDelimiter start="(" end="\(.\zs)\)\|)" contained contains=pugJavascriptString,pugHtmlArg,pugAngular2,htmlArg,htmlEvent,htmlCssDefinition nextgroup=@pugComponent  syn match   pugClassChar "\." containedin=htmlTagName nextgroup=pugClass  syn match   pugBlockExpansionChar ":\s\+" contained nextgroup=pugTag,pugClassChar,pugIdChar  syn match   pugIdChar "#[[{]\@!" contained nextgroup=pugId @@ -71,9 +72,10 @@ syn region  pugPlainFilter matchgroup=pugFilter start="^\z(\s*\):\%(sass\|less\|  syn match  pugScriptConditional "^\s*\<\%(if\|else\|else if\|elif\|unless\|while\|until\|case\|when\|default\)\>[?!]\@!"  syn match  pugScriptStatement "^\s*\<\%(each\|for\|block\|prepend\|append\|mixin\|extends\|include\)\>[?!]\@!"  syn region  pugScriptLoopRegion start="^\s*\(for \)" end="$" contains=pugScriptLoopKeywords -syn keyword  pugScriptLoopKeywords for in contained +syn keyword  pugScriptLoopKeywords for in -syn region  pugJavascript start="^\z(\s*\)script\%(:\w\+\)\=" end="^\%(\z1\s\|\s*$\)\@!" contains=@htmlJavascript,pugJavascriptTag,pugCoffeescriptFilter keepend  +syn region  pugJavascript start="^\z(\s*\)script\%(:\w\+\)\=" end="^\%(\z1\s\|\s*$\)\@!" contains=@htmlJavascript,pugJavascriptTag,pugCoffeescriptFilter keepend +syn region javascriptInterpolation start=/${/ end=/}/ contained  syn region  pugCoffeescriptFilter matchgroup=pugFilter start="^\z(\s*\):coffee-\?script\s*$" end="^\%(\z1\s\|\s*$\)\@!" contains=@htmlCoffeescript contained  syn region  pugJavascriptTag contained start="^\z(\s*\)script\%(:\w\+\)\=" end="$" contains=pugBegin,pugTag @@ -104,6 +106,7 @@ hi def link pugComment                Comment  hi def link pugCommentBlock           Comment  hi def link pugHtmlConditionalComment pugComment  hi def link pugJavascriptString       String +hi def link javascriptInterpolation   Delimiter  let b:current_syntax = "pug" diff --git a/syntax/python.vim b/syntax/python.vim index e3ac9ca1..251b0f7d 100644 --- a/syntax/python.vim +++ b/syntax/python.vim @@ -46,6 +46,7 @@ if s:Enabled('g:python_highlight_all')    if s:Enabled('g:python_highlight_builtins')      call s:EnableByDefault('g:python_highlight_builtin_objs')      call s:EnableByDefault('g:python_highlight_builtin_funcs') +    call s:EnableByDefault('g:python_highlight_builtin_types')    endif    call s:EnableByDefault('g:python_highlight_exceptions')    call s:EnableByDefault('g:python_highlight_string_formatting') @@ -94,7 +95,7 @@ else    syn match   pythonStatement   '\<async\s\+def\>' nextgroup=pythonFunction skipwhite    syn match   pythonStatement   '\<async\s\+with\>'    syn match   pythonStatement   '\<async\s\+for\>' -  syn cluster pythonExpression contains=pythonStatement,pythonRepeat,pythonConditional,pythonOperator,pythonNumber,pythonHexNumber,pythonOctNumber,pythonBinNumber,pythonFloat,pythonString,pythonBytes,pythonBoolean,pythonBuiltinObj,pythonBuiltinFunc +  syn cluster pythonExpression contains=pythonStatement,pythonRepeat,pythonConditional,pythonOperator,pythonNumber,pythonHexNumber,pythonOctNumber,pythonBinNumber,pythonFloat,pythonString,pythonBytes,pythonBoolean,pythonNone,pythonSingleton,pythonBuiltinObj,pythonBuiltinFunc,pythonBuiltinType  endif @@ -328,18 +329,17 @@ else    syn match   pythonFloat       '\.\d\%([_0-9]*\d\)\=\%([eE][+-]\=\d\%([_0-9]*\d\)\=\)\=[jJ]\=\>' display    syn match   pythonFloat       '\<\d\%([_0-9]*\d\)\=[eE][+-]\=\d\%([_0-9]*\d\)\=[jJ]\=\>' display -  syn match   pythonFloat       '\<\d\%([_0-9]*\d\)\=\.\d\%([_0-9]*\d\)\=\%([eE][+-]\=\d\%([_0-9]*\d\)\=\)\=[jJ]\=' display +  syn match   pythonFloat       '\<\d\%([_0-9]*\d\)\=\.\d\=\%([_0-9]*\d\)\=\%([eE][+-]\=\d\%([_0-9]*\d\)\=\)\=[jJ]\=' display  endif  " -" Builtin objects and types +" Builtin objects  "  if s:Enabled('g:python_highlight_builtin_objs')    syn keyword pythonNone        None    syn keyword pythonBoolean     True False -  syn keyword pythonBuiltinObj  Ellipsis NotImplemented -  syn match pythonBuiltinObj    '\v\.@<!<%(object|bool|int|float|tuple|str|list|dict|set|frozenset|bytearray|bytes)>' +  syn keyword pythonSingleton   Ellipsis NotImplemented    syn keyword pythonBuiltinObj  __debug__ __doc__ __file__ __name__ __package__    syn keyword pythonBuiltinObj  __loader__ __spec__ __path__ __cached__  endif @@ -357,7 +357,7 @@ if s:Enabled('g:python_highlight_builtin_funcs')        let s:funcs_re .= '|print'      endif    else -      let s:funcs_re .= '|ascii|exec|print' +      let s:funcs_re .= '|ascii|breakpoint|exec|print'    endif    let s:funcs_re = 'syn match pythonBuiltinFunc ''\v\.@<!\zs<%(' . s:funcs_re . ')>' @@ -371,11 +371,20 @@ if s:Enabled('g:python_highlight_builtin_funcs')  endif  " +" Builtin types +" + +if s:Enabled('g:python_highlight_builtin_types') +  syn match pythonBuiltinType    '\v\.@<!<%(object|bool|int|float|tuple|str|list|dict|set|frozenset|bytearray|bytes)>' +endif + + +"  " Builtin exceptions and warnings  "  if s:Enabled('g:python_highlight_exceptions') -    let s:exs_re = 'BaseException|Exception|ArithmeticError|LookupError|EnvironmentError|AssertionError|AttributeError|BufferError|EOFError|FloatingPointError|GeneratorExit|IOError|ImportError|IndexError|KeyError|KeyboardInterrupt|MemoryError|NameError|NotImplementedError|OSError|OverflowError|ReferenceError|RuntimeError|StopIteration|SyntaxError|IndentationError|TabError|SystemError|SystemExit|TypeError|UnboundLocalError|UnicodeError|UnicodeEncodeError|UnicodeDecodeError|UnicodeTranslateError|ValueError|VMSError|WindowsError|ZeroDivisionError|Warning|UserWarning|BytesWarning|DeprecationWarning|PendingDepricationWarning|SyntaxWarning|RuntimeWarning|FutureWarning|ImportWarning|UnicodeWarning' +    let s:exs_re = 'BaseException|Exception|ArithmeticError|LookupError|EnvironmentError|AssertionError|AttributeError|BufferError|EOFError|FloatingPointError|GeneratorExit|IOError|ImportError|IndexError|KeyError|KeyboardInterrupt|MemoryError|NameError|NotImplementedError|OSError|OverflowError|ReferenceError|RuntimeError|StopIteration|SyntaxError|IndentationError|TabError|SystemError|SystemExit|TypeError|UnboundLocalError|UnicodeError|UnicodeEncodeError|UnicodeDecodeError|UnicodeTranslateError|ValueError|VMSError|WindowsError|ZeroDivisionError|Warning|UserWarning|BytesWarning|DeprecationWarning|PendingDeprecationWarning|SyntaxWarning|RuntimeWarning|FutureWarning|ImportWarning|UnicodeWarning'    if s:Python2Syntax()        let s:exs_re .= '|StandardError' @@ -416,7 +425,6 @@ if v:version >= 508 || !exists('did_python_syn_inits')    HiLink pythonDecorator        Define    HiLink pythonDottedName       Function -  HiLink pythonDot              Normal    HiLink pythonComment          Comment    if !s:Enabled('g:python_highlight_file_headers_as_comments') @@ -472,9 +480,11 @@ if v:version >= 508 || !exists('did_python_syn_inits')    HiLink pythonBoolean          Boolean    HiLink pythonNone             Constant +  HiLink pythonSingleton        Constant -  HiLink pythonBuiltinObj       Structure +  HiLink pythonBuiltinObj       Identifier    HiLink pythonBuiltinFunc      Function +  HiLink pythonBuiltinType      Structure    HiLink pythonExClass          Structure    HiLink pythonClassVar         Identifier diff --git a/syntax/racket.vim b/syntax/racket.vim index 717e1df6..4ab9b63c 100644 --- a/syntax/racket.vim +++ b/syntax/racket.vim @@ -57,6 +57,14 @@ syn keyword racketSyntax define* define*-values define*-syntax define*-syntaxes  syn keyword racketSyntax package? package-exported-identifiers package-original-identifiers  syn keyword racketSyntax block #%stratified-body +" 8 Contracts +" 8.2 Function contracts +syn keyword racketSyntax -> ->* ->i ->d case-> dynamic->* unconstrained-domain-> + +" 8.6.1 Nested Contract Boundaries +syn keyword racketSyntax with-contract define/contract define-struct/contract +syn keyword racketSyntax invariant-assertion current-contract-region +  " 9 Pattern Matching  syn keyword racketSyntax match match* match/values define/match  syn keyword racketSyntax match-lambda match-lambda* match-lambda** @@ -75,6 +83,9 @@ syn keyword racketSyntax reset-at shift-at prompt0 reset0 control0 shift0  syn keyword racketSyntax prompt0-at reset0-at control0-at shift0-at  syn keyword racketSyntax set cupto +" 11.3.2 Parameters +syn keyword racketSyntax parameterize parameterize* +  " 12.5 Writing  syn keyword racketSyntax write display displayln print  syn keyword racketSyntax fprintf printf eprintf format @@ -93,7 +104,8 @@ syn keyword racketSyntax make-custodian-box custodian-box-value  " lambda sign  syn match racketSyntax /\<[\u03bb]\>/ -" Functions + +" Functions ==================================================================  syn keyword racketFunc boolean? not equal? eqv? eq? equal?/recur immutable?  syn keyword racketFunc true false symbol=? boolean=? false? @@ -108,8 +120,8 @@ syn keyword racketFunc inexact->exact exact->inexact  " 3.2.2.1 Arithmetic  syn keyword racketFunc + - * / quotient remainder quotient/remainder modulo -syn keyword racketFunc add1 sub1 abs max min gcd lcm round floor ceiling -syn keyword racketFunc truncate numerator denominator rationalize +syn keyword racketFunc add1 sub1 abs max min gcd lcm round exact-round floor +syn keyword racketFunc ceiling truncate numerator denominator rationalize  " 3.2.2.2 Number Comparison  syn keyword racketFunc = < <= > >= @@ -374,6 +386,19 @@ syn keyword racketFunc class-field-accessor class-field-mutator  "5.4.3 Generics  syn keyword racketFunc generic send-generic make-generic +" 8.1 Data-strucure contracts +syn keyword racketFunc flat-contract-with-explanation flat-named-contract +" TODO where do any/c and none/c `value`s go? +syn keyword racketFunc or/c first-or/c and/c not/c =/c </c >/c <=/c >=/c +syn keyword racketFunc between/c real-in integer-in char-in natural-number/c +syn keyword racketFunc string-len/c printable/c one-of/c symbols vectorof +syn keyword racketFunc vector-immutableof vector/c box/c box-immutable/c listof +syn keyword racketFunc non-empty-listof list*of cons/c cons/dc list/c *list/c +syn keyword racketFunc syntax/c struct/c struct/dc parameter/c +syn keyword racketFunc procedure-arity-includes/c hash/c hash/dc channel/c +syn keyword racketFunc prompt-tag/c continuation-mark-key/c evt/c promise/c +syn keyword racketFunc flat-contract flat-contract-predicate suggest/c +  " 9.1 Multiple Values  syn keyword racketFunc values call-with-values @@ -420,6 +445,11 @@ syn keyword racketFunc continuation? continuation-prompt-tag dynamic-wind  " 10.4.1 Additional Control Operators  syn keyword racketFunc call/prompt abort/cc call/comp abort fcontrol spawn splitter new-prompt +" 11.3.2 Parameters +syn keyword racketFunc make-parameter make-derived-parameter parameter? +syn keyword racketFunc parameter-procedure=? current-parameterization +syn keyword racketFunc call-with-parameterization parameterization? +  " 14.1.1 Manipulating Paths  syn keyword racketFunc path? path-string? path-for-some-system? string->path path->string path->bytes  syn keyword racketFunc string->path-element bytes->path-element path-element->string path-element->bytes @@ -434,6 +464,9 @@ syn keyword racketFunc path-replace-suffix path-add-suffix  syn keyword racketFunc explode-path file-name-from-path filename-extension find-relative-path normalize-path  syn keyword racketFunc path-element? path-only simple-form-path some-simple-path->string string->some-system-path +" 15.6 Time +syn keyword racketFunc current-seconds current-inexact-milliseconds +syn keyword racketFunc seconds->date current-milliseconds  syn match racketDelimiter !\<\.\>! diff --git a/syntax/rst.vim b/syntax/rst.vim index 9df2283a..7d88963a 100644 --- a/syntax/rst.vim +++ b/syntax/rst.vim @@ -5,7 +5,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rst') == -1  " Maintainer: Marshall Ward <marshall.ward@gmail.com>  " Previous Maintainer: Nikolai Weibull <now@bitwi.se>  " Website: https://github.com/marshallward/vim-restructuredtext -" Latest Revision: 2018-07-23 +" Latest Revision: 2018-12-29  if exists("b:current_syntax")    finish @@ -23,7 +23,7 @@ syn cluster rstCruft                contains=rstEmphasis,rstStrongEmphasis,        \ rstInlineInternalTargets,rstFootnoteReference,rstHyperlinkReference  syn region  rstLiteralBlock         matchgroup=rstDelimiter -      \ start='::\_s*\n\ze\z(\s\+\)' skip='^$' end='^\z1\@!' +      \ start='\(^\z(\s*\).*\)\@<=::\n\s*\n' skip='^\s*$' end='^\(\z1\s\+\)\@!'        \ contains=@NoSpell  syn region  rstQuotedLiteralBlock   matchgroup=rstDelimiter diff --git a/syntax/ruby.vim b/syntax/ruby.vim index 9f269980..28c341b0 100644 --- a/syntax/ruby.vim +++ b/syntax/ruby.vim @@ -20,6 +20,11 @@ endif  let s:cpo_sav = &cpo  set cpo&vim +" eRuby Config {{{1 +if exists('main_syntax') && main_syntax == 'eruby' +  let b:ruby_no_expensive = 1 +endif +  " Folding Config {{{1  if has("folding") && exists("ruby_fold")    setlocal foldmethod=syntax @@ -34,6 +39,10 @@ let s:foldable_groups = split(        \	)  function! s:foldable(...) abort +  if index(s:foldable_groups, 'NONE') > -1 +    return 0 +  endif +    if index(s:foldable_groups, 'ALL') > -1      return 1    endif @@ -45,9 +54,21 @@ function! s:foldable(...) abort    endfor    return 0 -endfunction " }}} +endfunction + +function! s:run_syntax_fold(args) abort +  let [_0, _1, groups, cmd; _] = matchlist(a:args, '\(["'']\)\(.\{-}\)\1\s\+\(.*\)') +  if call('s:foldable', split(groups)) +    let cmd .= ' fold' +  endif +  exe cmd +endfunction -syn cluster rubyNotTop contains=@rubyExtendedStringSpecial,@rubyRegexpSpecial,@rubyDeclaration,rubyConditional,rubyExceptional,rubyMethodExceptional,rubyTodo,rubyModuleName,rubyClassName,rubySymbolDelimiter +com! -nargs=* SynFold call s:run_syntax_fold(<q-args>) + +" }}} + +syn cluster rubyNotTop contains=@rubyCommentNotTop,@rubyStringNotTop,@rubyRegexpSpecial,@rubyDeclaration,@rubyExceptionHandler,rubyConditional,rubyModuleName,rubyClassName,rubySymbolDelimiter  " Whitespace Errors {{{1  if exists("ruby_space_errors") @@ -61,373 +82,315 @@ endif  " Operators {{{1  if exists("ruby_operators") -  syn match  rubyOperator "[~!^|*/%+-]\|&\.\@!\|\%(class\s*\)\@<!<<\|<=>\|<=\|\%(<\|\<class\s\+\u\w*\s*\)\@<!<[^<]\@=\|===\|==\|=\~\|>>\|>=\|=\@1<!>\|\*\*\|\.\.\.\|\.\.\|::" -  syn match  rubyOperator "->\|-=\|/=\|\*\*=\|\*=\|&&=\|&=\|&&\|||=\||=\|||\|%=\|+=\|!\~\|!=" -  syn region rubyBracketOperator matchgroup=rubyOperator start="\%(\w[?!]\=\|[]})]\)\@2<=\[\s*" end="\s*]" contains=ALLBUT,@rubyNotTop +  syn match  rubyDotOperator	    "\.\|&\." containedin=rubyKeywordAsMethod +  syn match  rubyTernaryOperator    "[[:alnum:]]\@1<!?\|:" +  syn match  rubyArithmeticOperator "\*\*\|[*/%+]\|->\@!" +  syn match  rubyComparisonOperator "<=>\|<=\|\%(<\|\<class\s\+\u\w*\s*\)\@<!<<\@!\|>=\|[-=]\@1<!>" +  syn match  rubyBitwiseOperator    "[~^|]\|&\.\@!\|\%(class\s*\)\@<!<<\|>>" +  syn match  rubyBooleanOperator    "[[:alnum:]]\@1<!!\|&&\|||" +  syn match  rubyRangeOperator	    "\.\.\.\=" +  syn match  rubyAssignmentOperator "=>\@!\|-=\|/=\|\*\*=\|\*=\|&&=\|&=\|||=\||=\|%=\|+=\|>>=\|<<=\|\^=" +  syn match  rubyEqualityOperator   "===\|==\|!=\|!\~\|=\~" +  syn match  rubyScopeOperator	    "::" +  syn region rubyBracketOperator    matchgroup=rubyOperator start="\%(\w[?!]\=\|[]})]\)\@2<=\[\s*" end="\s*]" contains=ALLBUT,@rubyNotTop + +  syn cluster rubyOperator contains=ruby.*Operator  endif -" Expression Substitution and Backslash Notation {{{1 -syn match rubyStringEscape "\\\\\|\\[abefnrstv]\|\\\o\{1,3}\|\\x\x\{1,2}"						    contained display +" String Interpolation and Backslash Notation {{{1 +syn region rubyInterpolation	      matchgroup=rubyInterpolationDelimiter start="#{" end="}" contained contains=ALLBUT,@rubyNotTop +syn match  rubyInterpolation	      "#\$\%(-\w\|[!$&"'*+,./0:;<>?@\`~_]\|\w\+\)" display contained contains=rubyInterpolationDelimiter,@rubyGlobalVariable +syn match  rubyInterpolation	      "#@@\=\w\+"				   display contained contains=rubyInterpolationDelimiter,rubyInstanceVariable,rubyClassVariable +syn match  rubyInterpolationDelimiter "#\ze[$@]"				   display contained + +syn match rubyStringEscape "\\\_."											    contained display +syn match rubyStringEscape "\\\o\{1,3}\|\\x\x\{1,2}"									    contained display +syn match rubyStringEscape "\\u\%(\x\{4}\|{\x\{1,6}\%(\s\+\x\{1,6}\)*}\)"						    contained display  syn match rubyStringEscape "\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C-\|\\M-\)\%(\\\o\{1,3}\|\\x\x\{1,2}\|\\\=\S\)" contained display -syn match rubyQuoteEscape  "\\[\\']"											    contained display -syn region rubyInterpolation	      matchgroup=rubyInterpolationDelimiter start="#{" end="}" contained contains=ALLBUT,@rubyNotTop -syn match  rubyInterpolation	      "#\%(\$\|@@\=\)\w\+"    display contained contains=rubyInterpolationDelimiter,rubyInstanceVariable,rubyClassVariable,rubyGlobalVariable,rubyPredefinedVariable -syn match  rubyInterpolationDelimiter "#\ze\%(\$\|@@\=\)\w\+" display contained -syn match  rubyInterpolation	      "#\$\%(-\w\|\W\)"       display contained contains=rubyInterpolationDelimiter,rubyPredefinedVariable,rubyInvalidVariable -syn match  rubyInterpolationDelimiter "#\ze\$\%(-\w\|\W\)"    display contained -syn region rubyNoInterpolation	      start="\\#{" end="}"	      contained -syn match  rubyNoInterpolation	      "\\#{"		      display contained -syn match  rubyNoInterpolation	      "\\#\%(\$\|@@\=\)\w\+"  display contained -syn match  rubyNoInterpolation	      "\\#\$\W"		      display contained +syn match rubyBackslashEscape "\\\\" contained display +syn match rubyQuoteEscape     "\\'"  contained display +syn match rubySpaceEscape     "\\ "  contained display -syn match rubyDelimiterEscape	"\\[(<{\[)>}\]]" transparent display contained contains=NONE +syn match rubyParenthesesEscape	   "\\[()]"  contained display +syn match rubyCurlyBracesEscape	   "\\[{}]"  contained display +syn match rubyAngleBracketsEscape  "\\[<>]"  contained display +syn match rubySquareBracketsEscape "\\[[\]]" contained display  syn region rubyNestedParentheses    start="("  skip="\\\\\|\\)"  matchgroup=rubyString end=")"	transparent contained  syn region rubyNestedCurlyBraces    start="{"  skip="\\\\\|\\}"  matchgroup=rubyString end="}"	transparent contained  syn region rubyNestedAngleBrackets  start="<"  skip="\\\\\|\\>"  matchgroup=rubyString end=">"	transparent contained  syn region rubyNestedSquareBrackets start="\[" skip="\\\\\|\\\]" matchgroup=rubyString end="\]"	transparent contained +syn cluster rubySingleCharEscape contains=rubyBackslashEscape,rubyQuoteEscape,rubySpaceEscape,rubyParenthesesEscape,rubyCurlyBracesEscape,rubyAngleBracketsEscape,rubySquareBracketsEscape +syn cluster rubyNestedBrackets	 contains=rubyNested.\+ +syn cluster rubyStringSpecial	 contains=rubyInterpolation,rubyStringEscape +syn cluster rubyStringNotTop	 contains=@rubyStringSpecial,@rubyNestedBrackets,@rubySingleCharEscape +  " Regular Expression Metacharacters {{{1 -" These are mostly Oniguruma ready -syn region rubyRegexpComment	matchgroup=rubyRegexpSpecial   start="(?#"								  skip="\\)"  end=")"  contained -syn region rubyRegexpParens	matchgroup=rubyRegexpSpecial   start="(\(?:\|?<\=[=!]\|?>\|?<[a-z_]\w*>\|?[imx]*-[imx]*:\=\|\%(?#\)\@!\)" skip="\\)"  end=")"  contained transparent contains=@rubyRegexpSpecial -syn region rubyRegexpBrackets	matchgroup=rubyRegexpCharClass start="\[\^\="								  skip="\\\]" end="\]" contained transparent contains=rubyStringEscape,rubyRegexpEscape,rubyRegexpCharClass oneline -syn match  rubyRegexpCharClass	"\\[DdHhSsWw]"	       contained display -syn match  rubyRegexpCharClass	"\[:\^\=\%(alnum\|alpha\|ascii\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|xdigit\):\]" contained -syn match  rubyRegexpEscape	"\\[].*?+^$|\\/(){}[]" contained -syn match  rubyRegexpQuantifier	"[*?+][?+]\="	       contained display -syn match  rubyRegexpQuantifier	"{\d\+\%(,\d*\)\=}?\=" contained display -syn match  rubyRegexpAnchor	"[$^]\|\\[ABbGZz]"     contained display -syn match  rubyRegexpDot	"\."		       contained display -syn match  rubyRegexpSpecial	"|"		       contained display -syn match  rubyRegexpSpecial	"\\[1-9]\d\=\d\@!"     contained display -syn match  rubyRegexpSpecial	"\\k<\%([a-z_]\w*\|-\=\d\+\)\%([+-]\d\+\)\=>" contained display -syn match  rubyRegexpSpecial	"\\k'\%([a-z_]\w*\|-\=\d\+\)\%([+-]\d\+\)\='" contained display -syn match  rubyRegexpSpecial	"\\g<\%([a-z_]\w*\|-\=\d\+\)>" contained display -syn match  rubyRegexpSpecial	"\\g'\%([a-z_]\w*\|-\=\d\+\)'" contained display - -syn cluster rubyStringSpecial	      contains=rubyInterpolation,rubyNoInterpolation,rubyStringEscape -syn cluster rubyExtendedStringSpecial contains=@rubyStringSpecial,rubyNestedParentheses,rubyNestedCurlyBraces,rubyNestedAngleBrackets,rubyNestedSquareBrackets -syn cluster rubyRegexpSpecial	      contains=rubyInterpolation,rubyNoInterpolation,rubyStringEscape,rubyRegexpSpecial,rubyRegexpEscape,rubyRegexpBrackets,rubyRegexpCharClass,rubyRegexpDot,rubyRegexpQuantifier,rubyRegexpAnchor,rubyRegexpParens,rubyRegexpComment - -" Numbers and ASCII Codes {{{1 -syn match rubyASCIICode "\%(\w\|[]})\"'/]\)\@1<!\%(?\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C-\|\\M-\)\=\%(\\\o\{1,3}\|\\x\x\{1,2}\|\\\=\S\)\)" -syn match rubyInteger	"\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<0[xX]\x\+\%(_\x\+\)*r\=i\=\>"								display -syn match rubyInteger	"\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<\%(0[dD]\)\=\%(0\|[1-9]\d*\%(_\d\+\)*\)r\=i\=\>"						display -syn match rubyInteger	"\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<0[oO]\=\o\+\%(_\o\+\)*r\=i\=\>"								display -syn match rubyInteger	"\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<0[bB][01]\+\%(_[01]\+\)*r\=i\=\>"								display -syn match rubyFloat	"\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<\%(0\|[1-9]\d*\%(_\d\+\)*\)\.\d\+\%(_\d\+\)*r\=i\=\>"					display -syn match rubyFloat	"\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<\%(0\|[1-9]\d*\%(_\d\+\)*\)\%(\.\d\+\%(_\d\+\)*\)\=\%([eE][-+]\=\d\+\%(_\d\+\)*\)r\=i\=\>"	display +syn region rubyRegexpComment	  matchgroup=rubyRegexpSpecial	 start="(?#"								    skip="\\\\\|\\)"  end=")"  contained +syn region rubyRegexpParens	  matchgroup=rubyRegexpSpecial	 start="(\(?:\|?<\=[=!]\|?>\|?<[a-z_]\w*>\|?[imx]*-[imx]*:\=\|\%(?#\)\@!\)" skip="\\\\\|\\)"  end=")"  contained transparent contains=@rubyRegexpSpecial +syn region rubyRegexpBrackets	  matchgroup=rubyRegexpCharClass start="\[\^\="								    skip="\\\\\|\\\]" end="\]" contained transparent contains=rubyRegexpBrackets,rubyStringEscape,rubyRegexpEscape,rubyRegexpCharClass,rubyRegexpIntersection oneline +syn match  rubyRegexpCharClass	  "\\[DdHhRSsWw]"	 contained display +syn match  rubyRegexpCharClass	  "\[:\^\=\%(alnum\|alpha\|ascii\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|word\|xdigit\):\]" contained +syn match  rubyRegexpCharClass	  "\\[pP]{^\=.\{-}}"	 contained display +syn match  rubyRegexpEscape	  "\\[].*?+^$|\\/(){}[]" contained " see commit e477f10 +syn match  rubyRegexpQuantifier	  "[*?+][?+]\="		 contained display +syn match  rubyRegexpQuantifier	  "{\d\+\%(,\d*\)\=}?\=" contained display +syn match  rubyRegexpAnchor	  "[$^]\|\\[ABbGZz]"	 contained display +syn match  rubyRegexpDot	  "\.\|\\X"		 contained display +syn match  rubyRegexpIntersection "&&"			 contained display +syn match  rubyRegexpSpecial	  "\\K"			 contained display +syn match  rubyRegexpSpecial	  "|"			 contained display +syn match  rubyRegexpSpecial	  "\\[1-9]\d\=\d\@!"	 contained display +syn match  rubyRegexpSpecial	  "\\k<\%([a-z_]\w*\|-\=\d\+\)\%([+-]\d\+\)\=>" contained display +syn match  rubyRegexpSpecial	  "\\k'\%([a-z_]\w*\|-\=\d\+\)\%([+-]\d\+\)\='" contained display +syn match  rubyRegexpSpecial	  "\\g<\%([a-z_]\w*\|-\=\d\+\)>"		contained display +syn match  rubyRegexpSpecial	  "\\g'\%([a-z_]\w*\|-\=\d\+\)'"		contained display + +syn cluster rubyRegexpSpecial contains=@rubyStringSpecial,rubyRegexpSpecial,rubyRegexpEscape,rubyRegexpBrackets,rubyRegexpCharClass,rubyRegexpDot,rubyRegexpQuantifier,rubyRegexpAnchor,rubyRegexpParens,rubyRegexpComment,rubyRegexpIntersection + +" Numbers {{{1 +syn match rubyInteger "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<0[xX]\x\+\%(_\x\+\)*r\=i\=\>"								 display +syn match rubyInteger "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<\%(0[dD]\)\=\%(0\|[1-9]\d*\%(_\d\+\)*\)r\=i\=\>"					 display +syn match rubyInteger "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<0[oO]\=\o\+\%(_\o\+\)*r\=i\=\>"							 display +syn match rubyInteger "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<0[bB][01]\+\%(_[01]\+\)*r\=i\=\>"							 display +syn match rubyFloat   "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<\%(0\|[1-9]\d*\%(_\d\+\)*\)\.\d\+\%(_\d\+\)*r\=i\=\>"					 display +syn match rubyFloat   "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<\%(0\|[1-9]\d*\%(_\d\+\)*\)\%(\.\d\+\%(_\d\+\)*\)\=\%([eE][-+]\=\d\+\%(_\d\+\)*\)i\=\>" display  " Identifiers {{{1 -syn match rubyLocalVariableOrMethod "\<[_[:lower:]][_[:alnum:]]*[?!=]\=" contains=NONE display transparent +syn match rubyLocalVariableOrMethod "\<[_[:lower:]][_[:alnum:]]*[?!]\=" contains=NONE display transparent  syn match rubyBlockArgument	    "&[_[:lower:]][_[:alnum:]]"		 contains=NONE display transparent -syn match  rubyClassName	"\%(\%(^\|[^.]\)\.\s*\)\@<!\<\u\%(\w\|[^\x00-\x7F]\)*\>\%(\s*(\)\@!" contained -syn match  rubyModuleName	"\%(\%(^\|[^.]\)\.\s*\)\@<!\<\u\%(\w\|[^\x00-\x7F]\)*\>\%(\s*(\)\@!" contained -syn match  rubyConstant		"\%(\%(^\|[^.]\)\.\s*\)\@<!\<\u\%(\w\|[^\x00-\x7F]\)*\>\%(\s*(\)\@!" -syn match  rubyClassVariable	"@@\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*" display -syn match  rubyInstanceVariable "@\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*"	display -syn match  rubyGlobalVariable	"$\%(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\|-.\)" -syn match  rubySymbolDelimiter	":" contained -syn match  rubySymbol		"[]})\"':]\@1<!:\%(\^\|\~@\|\~\|<<\|<=>\|<=\|<\|===\|[=!]=\|[=!]\~\|!@\|!\|>>\|>=\|>\||\|-@\|-\|/\|\[]=\|\[]\|\*\*\|\*\|&\|%\|+@\|+\|`\)" contains=rubySymbolDelimiter -syn match  rubySymbol		"[]})\"':]\@1<!:\$\%(-.\|[`~<=>_,;:!?/.'"@$*\&+0]\)" contains=rubySymbolDelimiter -syn match  rubySymbol		"[]})\"':]\@1<!:\%(\$\|@@\=\)\=\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*" contains=rubySymbolDelimiter -syn match  rubySymbol		"[]})\"':]\@1<!:\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\%([?!=]>\@!\)\=" contains=rubySymbolDelimiter - -if s:foldable(':') -  syn region rubySymbol		matchgroup=rubySymbolDelimiter start="[]})\"':]\@1<!:'"  end="'"  skip="\\\\\|\\'"  contains=rubyQuoteEscape fold -  syn region rubySymbol		matchgroup=rubySymbolDelimiter start="[]})\"':]\@1<!:\"" end="\"" skip="\\\\\|\\\"" contains=@rubyStringSpecial fold -else -  syn region rubySymbol		matchgroup=rubySymbolDelimiter start="[]})\"':]\@1<!:'"  end="'"  skip="\\\\\|\\'"  contains=rubyQuoteEscape -  syn region rubySymbol		matchgroup=rubySymbolDelimiter start="[]})\"':]\@1<!:\"" end="\"" skip="\\\\\|\\\"" contains=@rubyStringSpecial -endif +syn match rubyClassName	       "\%(\%(^\|[^.]\)\.\s*\)\@<!\<\u\%(\w\|[^\x00-\x7F]\)*\>\%(\s*(\)\@!" contained +syn match rubyModuleName       "\%(\%(^\|[^.]\)\.\s*\)\@<!\<\u\%(\w\|[^\x00-\x7F]\)*\>\%(\s*(\)\@!" contained +syn match rubyConstant	       "\%(\%(^\|[^.]\)\.\s*\)\@<!\<\u\%(\w\|[^\x00-\x7F]\)*\>\%(\s*(\)\@!" +syn match rubyClassVariable    "@@\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*" display +syn match rubyInstanceVariable "@\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*"  display +syn match rubyGlobalVariable   "$\%(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\|-.\)" +syn match rubySymbolDelimiter  ":" contained +syn match rubySymbol	       "[]})\"':]\@1<!:\%(\^\|\~@\|\~\|<<\|<=>\|<=\|<\|===\|[=!]=\|[=!]\~\|!@\|!\|>>\|>=\|>\||\|-@\|-\|/\|\[]=\|\[]\|\*\*\|\*\|&\|%\|+@\|+\|`\)" contains=rubySymbolDelimiter +syn match rubySymbol	       "[]})\"':]\@1<!:\$\%(-.\|[`~<=>_,;:!?/.'"@$*\&+0]\)"			    contains=rubySymbolDelimiter +syn match rubySymbol	       "[]})\"':]\@1<!:\%(\$\|@@\=\)\=\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*"  contains=rubySymbolDelimiter +syn match rubySymbol	       "[]})\"':]\@1<!:\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\%([?!=]>\@!\)\=" contains=rubySymbolDelimiter + +SynFold ':' syn region rubySymbol matchgroup=rubySymbolDelimiter start="[]})\"':]\@1<!:'"  end="'"  skip="\\\\\|\\'"  contains=rubyQuoteEscape,rubyBackslashEscape +SynFold ':' syn region rubySymbol matchgroup=rubySymbolDelimiter start="[]})\"':]\@1<!:\"" end="\"" skip="\\\\\|\\\"" contains=@rubyStringSpecial -syn match  rubyCapitalizedMethod	"\%(\%(^\|[^.]\)\.\s*\)\@<!\<\u\%(\w\|[^\x00-\x7F]\)*\>\%(\s*(\)*\s*(\@=" +syn match rubyCapitalizedMethod "\%(\%(^\|[^.]\)\.\s*\)\@<!\<\u\%(\w\|[^\x00-\x7F]\)*\>\%(\s*(\)\@="  syn match  rubyBlockParameter	  "\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*" contained  syn region rubyBlockParameterList start="\%(\%(\<do\>\|{\)\_s*\)\@32<=|" end="|" oneline display contains=rubyBlockParameter -syn match rubyInvalidVariable	 "$[^ A-Za-z_-]" -syn match rubyPredefinedVariable #$[!$&"'*+,./0:;<=>?@\`~]# -syn match rubyPredefinedVariable "$\d\+"										   display -syn match rubyPredefinedVariable "$_\>"											   display -syn match rubyPredefinedVariable "$-[0FIKadilpvw]\>"									   display -syn match rubyPredefinedVariable "$\%(deferr\|defout\|stderr\|stdin\|stdout\)\>"					   display -syn match rubyPredefinedVariable "$\%(DEBUG\|FILENAME\|KCODE\|LOADED_FEATURES\|LOAD_PATH\|PROGRAM_NAME\|SAFE\|VERBOSE\)\>" display +if exists('ruby_global_variable_error') +  syn match rubyGlobalVariableError "$[^A-Za-z_]"	display +  syn match rubyGlobalVariableError "$-[^0FIKWadilpvw]" display +endif + +syn match rubyPredefinedVariable #$[!$&"'*+,./0:;<>?@\`~]# +syn match rubyPredefinedVariable "$\d\+"									    display +syn match rubyPredefinedVariable "$_\>"										    display +syn match rubyPredefinedVariable "$-[0FIWadilpvw]\>"								    display +syn match rubyPredefinedVariable "$\%(stderr\|stdin\|stdout\)\>"						    display +syn match rubyPredefinedVariable "$\%(DEBUG\|FILENAME\|LOADED_FEATURES\|LOAD_PATH\|PROGRAM_NAME\|SAFE\|VERBOSE\)\>" display  syn match rubyPredefinedConstant "\%(\%(^\|[^.]\)\.\s*\)\@<!\<\%(ARGF\|ARGV\|ENV\|DATA\|FALSE\|NIL\|STDERR\|STDIN\|STDOUT\|TOPLEVEL_BINDING\|TRUE\)\>\%(\s*(\)\@!"  syn match rubyPredefinedConstant "\%(\%(^\|[^.]\)\.\s*\)\@<!\<\%(RUBY_\%(VERSION\|RELEASE_DATE\|PLATFORM\|PATCHLEVEL\|REVISION\|DESCRIPTION\|COPYRIGHT\|ENGINE\)\)\>\%(\s*(\)\@!" -" Normal Regular Expression {{{1 -if s:foldable('/') -  syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\%(^\|\<\%(and\|or\|while\|until\|unless\|if\|elsif\|when\|not\|then\|else\)\|[;\~=!|&(,{[<>?:*+-]\)\s*\)\@<=/" end="/[iomxneus]*" skip="\\\\\|\\/" contains=@rubyRegexpSpecial fold -  syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\h\k*\s\+\)\@<=/\%([ \t=]\|$\)\@!" end="/[iomxneus]*" skip="\\\\\|\\/" contains=@rubyRegexpSpecial fold -else -  syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\%(^\|\<\%(and\|or\|while\|until\|unless\|if\|elsif\|when\|not\|then\|else\)\|[;\~=!|&(,{[<>?:*+-]\)\s*\)\@<=/" end="/[iomxneus]*" skip="\\\\\|\\/" contains=@rubyRegexpSpecial -  syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\h\k*\s\+\)\@<=/\%([ \t=]\|$\)\@!" end="/[iomxneus]*" skip="\\\\\|\\/" contains=@rubyRegexpSpecial -endif +" Deprecated/removed in 1.9 +syn match rubyPredefinedVariable "$=" +syn match rubyPredefinedVariable "$-K\>"		  display +syn match rubyPredefinedVariable "$\%(deferr\|defout\)\>" display +syn match rubyPredefinedVariable "$KCODE\>"		  display -" Generalized Regular Expression {{{1 -if s:foldable('%') -  syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1[iomxneus]*" skip="\\\\\|\\\z1" contains=@rubyRegexpSpecial fold -  syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r{"				end="}[iomxneus]*"   skip="\\\\\|\\}"	 contains=@rubyRegexpSpecial fold -  syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r<"				end=">[iomxneus]*"   skip="\\\\\|\\>"	 contains=@rubyRegexpSpecial,rubyNestedAngleBrackets,rubyDelimiterEscape fold -  syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\["				end="\][iomxneus]*"  skip="\\\\\|\\\]"	 contains=@rubyRegexpSpecial fold -  syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r("				end=")[iomxneus]*"   skip="\\\\\|\\)"	 contains=@rubyRegexpSpecial fold -  syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\z(\s\)"				end="\z1[iomxneus]*" skip="\\\\\|\\\z1" contains=@rubyRegexpSpecial fold -else -  syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1[iomxneus]*" skip="\\\\\|\\\z1" contains=@rubyRegexpSpecial -  syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r{"				end="}[iomxneus]*"   skip="\\\\\|\\}"	 contains=@rubyRegexpSpecial -  syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r<"				end=">[iomxneus]*"   skip="\\\\\|\\>"	 contains=@rubyRegexpSpecial,rubyNestedAngleBrackets,rubyDelimiterEscape -  syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\["				end="\][iomxneus]*"  skip="\\\\\|\\\]"	 contains=@rubyRegexpSpecial -  syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r("				end=")[iomxneus]*"   skip="\\\\\|\\)"	 contains=@rubyRegexpSpecial -  syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\z(\s\)"				end="\z1[iomxneus]*" skip="\\\\\|\\\z1" contains=@rubyRegexpSpecial -endif +syn cluster rubyGlobalVariable contains=rubyGlobalVariable,rubyPredefinedVariable,rubyGlobalVariableError + +" Normal Regular Expressions {{{1 +SynFold '/' syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\%(^\|\<\%(and\|or\|while\|until\|unless\|if\|elsif\|when\|not\|then\|else\)\|[;\~=!|&(,{[<>?:*+-]\)\s*\)\@<=/" end="/[iomxneus]*" skip="\\\\\|\\/" contains=@rubyRegexpSpecial nextgroup=@rubyModifier skipwhite +SynFold '/' syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\h\k*\s\+\)\@<=/\%([ \t=]\|$\)\@!"										   end="/[iomxneus]*" skip="\\\\\|\\/" contains=@rubyRegexpSpecial nextgroup=@rubyModifier skipwhite + +" Generalized Regular Expressions {{{1 +SynFold '%' syn region rubyRegexp matchgroup=rubyPercentRegexpDelimiter start="%r\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1[iomxneus]*" skip="\\\\\|\\\z1" contains=@rubyRegexpSpecial nextgroup=@rubyModifier skipwhite +SynFold '%' syn region rubyRegexp matchgroup=rubyPercentRegexpDelimiter start="%r{"				   end="}[iomxneus]*"	skip="\\\\\|\\}"   contains=@rubyRegexpSpecial +SynFold '%' syn region rubyRegexp matchgroup=rubyPercentRegexpDelimiter start="%r<"				   end=">[iomxneus]*"	skip="\\\\\|\\>"   contains=@rubyRegexpSpecial,rubyNestedAngleBrackets +SynFold '%' syn region rubyRegexp matchgroup=rubyPercentRegexpDelimiter start="%r\["				   end="\][iomxneus]*"	skip="\\\\\|\\\]"  contains=@rubyRegexpSpecial +SynFold '%' syn region rubyRegexp matchgroup=rubyPercentRegexpDelimiter start="%r("				   end=")[iomxneus]*"	skip="\\\\\|\\)"   contains=@rubyRegexpSpecial +SynFold '%' syn region rubyRegexp matchgroup=rubyPercentRegexpDelimiter start="%r\z(\s\)"			   end="\z1[iomxneus]*" skip="\\\\\|\\\z1" contains=@rubyRegexpSpecial + +" Characters {{{1 +syn match rubyCharacter "\%(\w\|[]})\"'/]\)\@1<!\%(?\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C-\|\\M-\)\=\%(\\\o\{1,3}\|\\x\x\{1,2}\|\\\=\S\)\)" +syn match rubyCharacter "\%(\w\|[]})\"'/]\)\@1<!?\\u\%(\x\{4}\|{\x\{1,6}}\)" -" Normal String {{{1 +" Normal Strings {{{1  let s:spell_cluster = exists('ruby_spellcheck_strings') ? ',@Spell' : '' -exe 'syn region rubyString matchgroup=rubyStringDelimiter start="\"" end="\"" skip="\\\\\|\\\"" ' . -      \ (s:foldable('%') ? 'fold' : '') . ' contains=@rubyStringSpecial' . s:spell_cluster -exe 'syn region rubyString matchgroup=rubyStringDelimiter start="''" end="''" skip="\\\\\|\\''" ' . -      \ (s:foldable('%') ? 'fold' : '') . ' contains=rubyQuoteEscape'	 . s:spell_cluster +let s:fold_arg	    = s:foldable('string')		? ' fold'   : '' +exe 'syn region rubyString matchgroup=rubyStringDelimiter start="\"" end="\"" skip="\\\\\|\\\""  contains=@rubyStringSpecial'		       . s:spell_cluster . s:fold_arg +exe 'syn region rubyString matchgroup=rubyStringDelimiter start="''" end="''" skip="\\\\\|\\''"  contains=rubyQuoteEscape,rubyBackslashEscape' . s:spell_cluster . s:fold_arg +unlet s:spell_cluster s:fold_arg  " Shell Command Output {{{1 -if s:foldable('%') -  syn region rubyString matchgroup=rubyStringDelimiter start="`" end="`" skip="\\\\\|\\`" contains=@rubyStringSpecial fold -else -  syn region rubyString matchgroup=rubyStringDelimiter start="`" end="`" skip="\\\\\|\\`" contains=@rubyStringSpecial -endif +SynFold 'string' syn region rubyString matchgroup=rubyStringDelimiter start="`" end="`" skip="\\\\\|\\`" contains=@rubyStringSpecial -" Generalized Single Quoted String, Symbol and Array of Strings {{{1 -if s:foldable('%') -  syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold -  syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]{"				     end="}"   skip="\\\\\|\\}"	  fold contains=rubyNestedCurlyBraces,rubyDelimiterEscape -  syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]<"				     end=">"   skip="\\\\\|\\>"	  fold contains=rubyNestedAngleBrackets,rubyDelimiterEscape -  syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]\["				     end="\]"  skip="\\\\\|\\\]"  fold contains=rubyNestedSquareBrackets,rubyDelimiterEscape -  syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]("				     end=")"   skip="\\\\\|\\)"	  fold contains=rubyNestedParentheses,rubyDelimiterEscape -  syn region rubyString matchgroup=rubyStringDelimiter start="%q\z(\s\)"			     end="\z1" skip="\\\\\|\\\z1" fold -  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)"    end="\z1" skip="\\\\\|\\\z1" fold -  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s{"				     end="}"   skip="\\\\\|\\}"	  fold contains=rubyNestedCurlyBraces,rubyDelimiterEscape -  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s<"				     end=">"   skip="\\\\\|\\>"	  fold contains=rubyNestedAngleBrackets,rubyDelimiterEscape -  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s\["				     end="\]"  skip="\\\\\|\\\]"  fold contains=rubyNestedSquareBrackets,rubyDelimiterEscape -  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s("				     end=")"   skip="\\\\\|\\)"	  fold contains=rubyNestedParentheses,rubyDelimiterEscape -  syn region rubyString matchgroup=rubyStringDelimiter start="%s\z(\s\)"			     end="\z1" skip="\\\\\|\\\z1" fold -else -  syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" -  syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]{"				     end="}"   skip="\\\\\|\\}"	  contains=rubyNestedCurlyBraces,rubyDelimiterEscape -  syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]<"				     end=">"   skip="\\\\\|\\>"	  contains=rubyNestedAngleBrackets,rubyDelimiterEscape -  syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]\["				     end="\]"  skip="\\\\\|\\\]"  contains=rubyNestedSquareBrackets,rubyDelimiterEscape -  syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]("				     end=")"   skip="\\\\\|\\)"	  contains=rubyNestedParentheses,rubyDelimiterEscape -  syn region rubyString matchgroup=rubyStringDelimiter start="%q\z(\s\)"			     end="\z1" skip="\\\\\|\\\z1" -  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)"    end="\z1" skip="\\\\\|\\\z1" -  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s{"				     end="}"   skip="\\\\\|\\}"	  contains=rubyNestedCurlyBraces,rubyDelimiterEscape -  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s<"				     end=">"   skip="\\\\\|\\>"	  contains=rubyNestedAngleBrackets,rubyDelimiterEscape -  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s\["				     end="\]"  skip="\\\\\|\\\]"  contains=rubyNestedSquareBrackets,rubyDelimiterEscape -  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s("				     end=")"   skip="\\\\\|\\)"	  contains=rubyNestedParentheses,rubyDelimiterEscape -  syn region rubyString matchgroup=rubyStringDelimiter start="%s\z(\s\)"			     end="\z1" skip="\\\\\|\\\z1" -endif +" Generalized Single Quoted Strings, Symbols, Array of Strings and Array of Symbols {{{1 -" Generalized Double Quoted String and Array of Strings and Shell Command Output {{{1 -" Note: %= is not matched here as the beginning of a double quoted string -if s:foldable('%') -  syn region rubyString matchgroup=rubyStringDelimiter start="%\z([~`!@#$%^&*_\-+|\:;"',.?/]\)"	      end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial fold -  syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial fold -  syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\={"			      end="}"	skip="\\\\\|\\}"   contains=@rubyStringSpecial,rubyNestedCurlyBraces,rubyDelimiterEscape    fold -  syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=<"			      end=">"	skip="\\\\\|\\>"   contains=@rubyStringSpecial,rubyNestedAngleBrackets,rubyDelimiterEscape  fold -  syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=\["			      end="\]"	skip="\\\\\|\\\]"  contains=@rubyStringSpecial,rubyNestedSquareBrackets,rubyDelimiterEscape fold -  syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=("			      end=")"	skip="\\\\\|\\)"   contains=@rubyStringSpecial,rubyNestedParentheses,rubyDelimiterEscape    fold -  syn region rubyString matchgroup=rubyStringDelimiter start="%[Qx]\z(\s\)"			      end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial fold -else -  syn region rubyString matchgroup=rubyStringDelimiter start="%\z([~`!@#$%^&*_\-+|\:;"',.?/]\)"	      end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial -  syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial -  syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\={"			      end="}"	skip="\\\\\|\\}"   contains=@rubyStringSpecial,rubyNestedCurlyBraces,rubyDelimiterEscape -  syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=<"			      end=">"	skip="\\\\\|\\>"   contains=@rubyStringSpecial,rubyNestedAngleBrackets,rubyDelimiterEscape -  syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=\["			      end="\]"	skip="\\\\\|\\\]"  contains=@rubyStringSpecial,rubyNestedSquareBrackets,rubyDelimiterEscape -  syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=("			      end=")"	skip="\\\\\|\\)"   contains=@rubyStringSpecial,rubyNestedParentheses,rubyDelimiterEscape -  syn region rubyString matchgroup=rubyStringDelimiter start="%[Qx]\z(\s\)"			      end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial -endif +" Non-bracket punctuation delimiters {{{2 +let s:names = { '~': 'Tilde', '`': 'BackQuote', '!': 'Bang', '@': 'At', '#': 'Hash', '$': 'Dollar', '%': 'Percent', '^': 'Caret', +      \		'&': 'Ampersand', '*': 'Asterix', '_': 'Underscore', '-': 'Dash', '+': 'Plus', '=': 'Equals', '|': 'Bar', +      \		'\': 'Backslash', ':': 'Colon', ';': 'Semicolon', '"': 'DoubleQuote', "'": 'Quote', ',': 'Comma', '.': 'Period', +      \		'?': 'QuestionMark', '/': 'ForwardSlash' } -" Array of Symbols {{{1 -if s:foldable('%') -  " Array of Symbols -  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1"	fold -  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i{"				  end="}"   skip="\\\\\|\\}"	fold contains=rubyNestedCurlyBraces,rubyDelimiterEscape -  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i<"				  end=">"   skip="\\\\\|\\>"	fold contains=rubyNestedAngleBrackets,rubyDelimiterEscape -  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i\["				  end="\]"  skip="\\\\\|\\\]"	fold contains=rubyNestedSquareBrackets,rubyDelimiterEscape -  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i("				  end=")"   skip="\\\\\|\\)"	fold contains=rubyNestedParentheses,rubyDelimiterEscape - -  " Array of interpolated Symbols -  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1"	contains=@rubyStringSpecial fold -  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I{"				  end="}"   skip="\\\\\|\\}"	contains=@rubyStringSpecial,rubyNestedCurlyBraces,rubyDelimiterEscape    fold -  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I<"				  end=">"   skip="\\\\\|\\>"	contains=@rubyStringSpecial,rubyNestedAngleBrackets,rubyDelimiterEscape  fold -  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I\["				  end="\]"  skip="\\\\\|\\\]"	contains=@rubyStringSpecial,rubyNestedSquareBrackets,rubyDelimiterEscape fold -  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I("				  end=")"   skip="\\\\\|\\)"	contains=@rubyStringSpecial,rubyNestedParentheses,rubyDelimiterEscape    fold -else -  " Array of Symbols -  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" -  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i{"				  end="}"   skip="\\\\\|\\}"	contains=rubyNestedCurlyBraces,rubyDelimiterEscape -  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i<"				  end=">"   skip="\\\\\|\\>"	contains=rubyNestedAngleBrackets,rubyDelimiterEscape -  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i\["				  end="\]"  skip="\\\\\|\\\]"	contains=rubyNestedSquareBrackets,rubyDelimiterEscape -  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i("				  end=")"   skip="\\\\\|\\)"	contains=rubyNestedParentheses,rubyDelimiterEscape - -  " Array of interpolated Symbols -  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1"	contains=@rubyStringSpecial -  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I{"				  end="}"   skip="\\\\\|\\}"	contains=@rubyStringSpecial,rubyNestedCurlyBraces,rubyDelimiterEscape -  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I<"				  end=">"   skip="\\\\\|\\>"	contains=@rubyStringSpecial,rubyNestedAngleBrackets,rubyDelimiterEscape -  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I\["				  end="\]"  skip="\\\\\|\\\]"	contains=@rubyStringSpecial,rubyNestedSquareBrackets,rubyDelimiterEscape -  syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I("				  end=")"   skip="\\\\\|\\)"	contains=@rubyStringSpecial,rubyNestedParentheses,rubyDelimiterEscape -endif +for s:delimiter in keys(s:names) +  let s:group = 'ruby' . s:names[s:delimiter] . 'Escape' -" Here Document {{{1 -syn region rubyHeredocStart matchgroup=rubyStringDelimiter start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<[-~]\=\zs\%(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\)+	 end=+$+ oneline contains=ALLBUT,@rubyNotTop -syn region rubyHeredocStart matchgroup=rubyStringDelimiter start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<[-~]\=\zs"\%([^"]*\)"+ end=+$+ oneline contains=ALLBUT,@rubyNotTop -syn region rubyHeredocStart matchgroup=rubyStringDelimiter start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<[-~]\=\zs'\%([^']*\)'+ end=+$+ oneline contains=ALLBUT,@rubyNotTop -syn region rubyHeredocStart matchgroup=rubyStringDelimiter start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<[-~]\=\zs`\%([^`]*\)`+ end=+$+ oneline contains=ALLBUT,@rubyNotTop - -if s:foldable('<<') -  syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<\z(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\)\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2	matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc,@rubyStringSpecial fold keepend -  syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<"\z([^"]*\)"\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2	matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc,@rubyStringSpecial fold keepend -  syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<'\z([^']*\)'\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2	matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc		    fold keepend -  syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<`\z([^`]*\)`\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2	matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc,@rubyStringSpecial fold keepend - -  syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<[-~]\z(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\)\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3    matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial fold keepend -  syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<[-~]"\z([^"]*\)"\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3  matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial fold keepend -  syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<[-~]'\z([^']*\)'\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3  matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart		    fold keepend -  syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<[-~]`\z([^`]*\)`\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3  matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial fold keepend -else -  syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<\z(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\)\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2	matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc,@rubyStringSpecial keepend -  syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<"\z([^"]*\)"\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2	matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc,@rubyStringSpecial keepend -  syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<'\z([^']*\)'\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2	matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc		    keepend -  syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<`\z([^`]*\)`\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2	matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc,@rubyStringSpecial keepend - -  syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<[-~]\z(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\)\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3    matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial keepend -  syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<[-~]"\z([^"]*\)"\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3  matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial keepend -  syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<[-~]'\z([^']*\)'\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3  matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart		    keepend -  syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<[-~]`\z([^`]*\)`\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3  matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial keepend -endif +  if s:delimiter =~ '[\"]' +    let s:delimiter = '\' . s:delimiter +  endif -" eRuby Config {{{1 -if exists('main_syntax') && main_syntax == 'eruby' -  let b:ruby_no_expensive = 1 -endif +  exe 'syn match ' . s:group . ' "\V\\' . s:delimiter . '" contained display' +  exe 'syn cluster rubySingleCharEscape add=' . s:group +  exe 'SynFold ''%'' syn region rubyString matchgroup=rubyPercentStringDelimiter start="\V%q' . s:delimiter . '" end="\V' . s:delimiter . '" skip="\V\\\\\|\\' . s:delimiter . '" contains=rubyBackslashEscape,'		 . s:group . ' nextgroup=@rubyModifier skipwhite' +  exe 'SynFold ''%'' syn region rubyString matchgroup=rubyPercentStringDelimiter start="\V%w' . s:delimiter . '" end="\V' . s:delimiter . '" skip="\V\\\\\|\\' . s:delimiter . '" contains=rubyBackslashEscape,rubySpaceEscape,' . s:group . ' nextgroup=@rubyModifier skipwhite' +  exe 'SynFold ''%'' syn region rubySymbol matchgroup=rubyPercentSymbolDelimiter start="\V%s' . s:delimiter . '" end="\V' . s:delimiter . '" skip="\V\\\\\|\\' . s:delimiter . '" contains=rubyBackslashEscape,'		 . s:group . ' nextgroup=@rubyModifier skipwhite' +  exe 'SynFold ''%'' syn region rubySymbol matchgroup=rubyPercentSymbolDelimiter start="\V%i' . s:delimiter . '" end="\V' . s:delimiter . '" skip="\V\\\\\|\\' . s:delimiter . '" contains=rubyBackslashEscape,rubySpaceEscape,' . s:group . ' nextgroup=@rubyModifier skipwhite' +  exe 'hi def link ' . s:group . ' rubyStringEscape' +endfor + +unlet s:delimiter s:group s:names +" }}}2 + +SynFold '%' syn region rubyString matchgroup=rubyPercentStringDelimiter start="%q{"	  end="}"   skip="\\\\\|\\}"   contains=rubyBackslashEscape,rubyCurlyBracesEscape,rubyNestedCurlyBraces +SynFold '%' syn region rubyString matchgroup=rubyPercentStringDelimiter start="%q<"	  end=">"   skip="\\\\\|\\>"   contains=rubyBackslashEscape,rubyAngleBracketsEscape,rubyNestedAngleBrackets +SynFold '%' syn region rubyString matchgroup=rubyPercentStringDelimiter start="%q\["	  end="\]"  skip="\\\\\|\\\]"  contains=rubyBackslashEscape,rubySquareBracketsEscape,rubyNestedSquareBrackets +SynFold '%' syn region rubyString matchgroup=rubyPercentStringDelimiter start="%q("	  end=")"   skip="\\\\\|\\)"   contains=rubyBackslashEscape,rubyParenthesesEscape,rubyNestedParentheses +SynFold '%' syn region rubyString matchgroup=rubyPercentStringDelimiter start="%q\z(\s\)" end="\z1" skip="\\\\\|\\\z1" contains=rubyBackslashEscape,rubySpaceEscape + +SynFold '%' syn region rubyString matchgroup=rubyPercentStringDelimiter start="%w{"	  end="}"   skip="\\\\\|\\}"   contains=rubyBackslashEscape,rubySpaceEscape,rubyCurlyBracesEscape,rubyNestedCurlyBraces +SynFold '%' syn region rubyString matchgroup=rubyPercentStringDelimiter start="%w<"	  end=">"   skip="\\\\\|\\>"   contains=rubyBackslashEscape,rubySpaceEscape,rubyAngleBracketsEscape,rubyNestedAngleBrackets +SynFold '%' syn region rubyString matchgroup=rubyPercentStringDelimiter start="%w\["	  end="\]"  skip="\\\\\|\\\]"  contains=rubyBackslashEscape,rubySpaceEscape,rubySquareBracketsEscape,rubyNestedSquareBrackets +SynFold '%' syn region rubyString matchgroup=rubyPercentStringDelimiter start="%w("	  end=")"   skip="\\\\\|\\)"   contains=rubyBackslashEscape,rubySpaceEscape,rubyParenthesesEscape,rubyNestedParentheses + +SynFold '%' syn region rubySymbol matchgroup=rubyPercentSymbolDelimiter start="%s{"	  end="}"   skip="\\\\\|\\}"   contains=rubyBackslashEscape,rubyCurlyBracesEscape,rubyNestedCurlyBraces +SynFold '%' syn region rubySymbol matchgroup=rubyPercentSymbolDelimiter start="%s<"	  end=">"   skip="\\\\\|\\>"   contains=rubyBackslashEscape,rubyAngleBracketsEscape,rubyNestedAngleBrackets +SynFold '%' syn region rubySymbol matchgroup=rubyPercentSymbolDelimiter start="%s\["	  end="\]"  skip="\\\\\|\\\]"  contains=rubyBackslashEscape,rubySquareBracketsEscape,rubyNestedSquareBrackets +SynFold '%' syn region rubySymbol matchgroup=rubyPercentSymbolDelimiter start="%s("	  end=")"   skip="\\\\\|\\)"   contains=rubyBackslashEscape,rubyParenthesesEscape,rubyNestedParentheses +SynFold '%' syn region rubyString matchgroup=rubyPercentSymbolDelimiter start="%s\z(\s\)" end="\z1" skip="\\\\\|\\\z1" contains=rubyBackslashEscape,rubySpaceEscape + +SynFold '%' syn region rubySymbol matchgroup=rubyPercentSymbolDelimiter start="%i{"	  end="}"   skip="\\\\\|\\}"   contains=rubyBackslashEscape,rubySpaceEscape,rubyCurlyBracesEscape,rubyNestedCurlyBraces +SynFold '%' syn region rubySymbol matchgroup=rubyPercentSymbolDelimiter start="%i<"	  end=">"   skip="\\\\\|\\>"   contains=rubyBackslashEscape,rubySpaceEscape,rubyAngleBracketsEscape,rubyNestedAngleBrackets +SynFold '%' syn region rubySymbol matchgroup=rubyPercentSymbolDelimiter start="%i\["	  end="\]"  skip="\\\\\|\\\]"  contains=rubyBackslashEscape,rubySpaceEscape,rubySquareBracketsEscape,rubyNestedSquareBrackets +SynFold '%' syn region rubySymbol matchgroup=rubyPercentSymbolDelimiter start="%i("	  end=")"   skip="\\\\\|\\)"   contains=rubyBackslashEscape,rubySpaceEscape,rubyParenthesesEscape,rubyNestedParentheses + +" Generalized Double Quoted Strings, Symbols, Array of Strings, Array of Symbols and Shell Command Output {{{1 +" Note: %= is not matched here as the beginning of a double quoted string +SynFold '%' syn region rubyString matchgroup=rubyPercentStringDelimiter start="%\z([~`!@#$%^&*_\-+|\:;"',.?/]\)"       end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial nextgroup=@rubyModifier skipwhite +SynFold '%' syn region rubyString matchgroup=rubyPercentStringDelimiter start="%[QWx]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial +SynFold '%' syn region rubyString matchgroup=rubyPercentStringDelimiter start="%[QWx]\={"			       end="}"	 skip="\\\\\|\\}"   contains=@rubyStringSpecial,rubyNestedCurlyBraces +SynFold '%' syn region rubyString matchgroup=rubyPercentStringDelimiter start="%[QWx]\=<"			       end=">"	 skip="\\\\\|\\>"   contains=@rubyStringSpecial,rubyNestedAngleBrackets +SynFold '%' syn region rubyString matchgroup=rubyPercentStringDelimiter start="%[QWx]\=\["			       end="\]"  skip="\\\\\|\\\]"  contains=@rubyStringSpecial,rubyNestedSquareBrackets +SynFold '%' syn region rubyString matchgroup=rubyPercentStringDelimiter start="%[QWx]\=("			       end=")"	 skip="\\\\\|\\)"   contains=@rubyStringSpecial,rubyNestedParentheses +SynFold '%' syn region rubyString matchgroup=rubyPercentStringDelimiter start="%[Qx]\z(\s\)"			       end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial + +" Array of interpolated Symbols +SynFold '%' syn region rubySymbol matchgroup=rubyPercentSymbolDelimiter start="%I\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial nextgroup=@rubyModifier skipwhite +SynFold '%' syn region rubySymbol matchgroup=rubyPercentSymbolDelimiter start="%I{"				   end="}"   skip="\\\\\|\\}"	contains=@rubyStringSpecial,rubyNestedCurlyBraces +SynFold '%' syn region rubySymbol matchgroup=rubyPercentSymbolDelimiter start="%I<"				   end=">"   skip="\\\\\|\\>"	contains=@rubyStringSpecial,rubyNestedAngleBrackets +SynFold '%' syn region rubySymbol matchgroup=rubyPercentSymbolDelimiter start="%I\["				   end="\]"  skip="\\\\\|\\\]"	contains=@rubyStringSpecial,rubyNestedSquareBrackets +SynFold '%' syn region rubySymbol matchgroup=rubyPercentSymbolDelimiter start="%I("				   end=")"   skip="\\\\\|\\)"	contains=@rubyStringSpecial,rubyNestedParentheses + +" Here Documents {{{1 +syn region rubyHeredocStart matchgroup=rubyHeredocDelimiter start=+\%(\%(class\|::\|\.\@1<!\.\)\_s*\|\%([]})"']\)\s\|\w\)\@<!<<[-~]\=\zs\%(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\)+ end=+$+ oneline contains=ALLBUT,@rubyNotTop +syn region rubyHeredocStart matchgroup=rubyHeredocDelimiter start=+\%(\%(class\|::\|\.\@1<!\.\)\_s*\|\%([]})"']\)\s\|\w\)\@<!<<[-~]\=\zs"\%([^"]*\)"+					  end=+$+ oneline contains=ALLBUT,@rubyNotTop +syn region rubyHeredocStart matchgroup=rubyHeredocDelimiter start=+\%(\%(class\|::\|\.\@1<!\.\)\_s*\|\%([]})"']\)\s\|\w\)\@<!<<[-~]\=\zs'\%([^']*\)'+					  end=+$+ oneline contains=ALLBUT,@rubyNotTop +syn region rubyHeredocStart matchgroup=rubyHeredocDelimiter start=+\%(\%(class\|::\|\.\@1<!\.\)\_s*\|\%([]})"']\)\s\|\w\)\@<!<<[-~]\=\zs`\%([^`]*\)`+					  end=+$+ oneline contains=ALLBUT,@rubyNotTop + +SynFold '<<' syn region rubyString start=+\%(\%(class\|::\|\.\@1<!\.\)\_s*\|\%([]})"']\)\s\|\w\)\@<!<<\z(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\)\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2   matchgroup=rubyHeredocDelimiter end=+^\z1$+	contains=rubyHeredocStart,@rubyStringSpecial keepend +SynFold '<<' syn region rubyString start=+\%(\%(class\|::\|\.\@1<!\.\)\_s*\|\%([]})"']\)\s\|\w\)\@<!<<"\z([^"]*\)"\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2					      matchgroup=rubyHeredocDelimiter end=+^\z1$+	contains=rubyHeredocStart,@rubyStringSpecial keepend +SynFold '<<' syn region rubyString start=+\%(\%(class\|::\|\.\@1<!\.\)\_s*\|\%([]})"']\)\s\|\w\)\@<!<<'\z([^']*\)'\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2					      matchgroup=rubyHeredocDelimiter end=+^\z1$+	contains=rubyHeredocStart		     keepend +SynFold '<<' syn region rubyString start=+\%(\%(class\|::\|\.\@1<!\.\)\_s*\|\%([]})"']\)\s\|\w\)\@<!<<`\z([^`]*\)`\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2					      matchgroup=rubyHeredocDelimiter end=+^\z1$+	contains=rubyHeredocStart,@rubyStringSpecial keepend + +SynFold '<<' syn region rubyString start=+\%(\%(class\|::\|\.\@1<!\.\)\_s*\|\%([]})]\)\s\|\w\)\@<!<<[-~]\z(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\)\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3 matchgroup=rubyHeredocDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial keepend +SynFold '<<' syn region rubyString start=+\%(\%(class\|::\|\.\@1<!\.\)\_s*\|\%([]})]\)\s\|\w\)\@<!<<[-~]"\z([^"]*\)"\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3				      matchgroup=rubyHeredocDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial keepend +SynFold '<<' syn region rubyString start=+\%(\%(class\|::\|\.\@1<!\.\)\_s*\|\%([]})]\)\s\|\w\)\@<!<<[-~]'\z([^']*\)'\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3				      matchgroup=rubyHeredocDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart		     keepend +SynFold '<<' syn region rubyString start=+\%(\%(class\|::\|\.\@1<!\.\)\_s*\|\%([]})]\)\s\|\w\)\@<!<<[-~]`\z([^`]*\)`\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3				      matchgroup=rubyHeredocDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial keepend  " Module, Class, Method and Alias Declarations {{{1 -syn match  rubyAliasDeclaration    "[^[:space:];#.()]\+" contained contains=rubySymbol,rubyGlobalVariable,rubyPredefinedVariable nextgroup=rubyAliasDeclaration2 skipwhite -syn match  rubyAliasDeclaration2   "[^[:space:];#.()]\+" contained contains=rubySymbol,rubyGlobalVariable,rubyPredefinedVariable -syn match  rubyMethodDeclaration   "[^[:space:];#(]\+"	 contained contains=rubyConstant,rubyBoolean,rubyPseudoVariable,rubyInstanceVariable,rubyClassVariable,rubyGlobalVariable -syn match  rubyClassDeclaration    "[^[:space:];#<]\+"	 contained contains=rubyClassName,rubyOperator -syn match  rubyModuleDeclaration   "[^[:space:];#<]\+"	 contained contains=rubyModuleName,rubyOperator -syn match  rubyFunction "\<[_[:alpha:]][_[:alnum:]]*[?!=]\=[[:alnum:]_.:?!=]\@!" contained containedin=rubyMethodDeclaration -syn match  rubyFunction "\%(\s\|^\)\@1<=[_[:alpha:]][_[:alnum:]]*[?!=]\=\%(\s\|$\)\@=" contained containedin=rubyAliasDeclaration,rubyAliasDeclaration2 -syn match  rubyFunction "\%([[:space:].]\|^\)\@2<=\%(\[\]=\=\|\*\*\|[-+!~]@\=\|[*/%|&^~]\|<<\|>>\|[<>]=\=\|<=>\|===\|[=!]=\|[=!]\~\|!\|`\)\%([[:space:];#(]\|$\)\@=" contained containedin=rubyAliasDeclaration,rubyAliasDeclaration2,rubyMethodDeclaration +syn match rubyAliasDeclaration	"[^[:space:];#.()]\+" contained contains=rubySymbol,@rubyGlobalVariable nextgroup=rubyAliasDeclaration2 skipwhite +syn match rubyAliasDeclaration2 "[^[:space:];#.()]\+" contained contains=rubySymbol,@rubyGlobalVariable +syn match rubyMethodDeclaration "[^[:space:];#(]\+"   contained contains=rubyConstant,rubyBoolean,rubyPseudoVariable,rubyInstanceVariable,rubyClassVariable,rubyGlobalVariable +syn match rubyClassDeclaration	"[^[:space:];#<]\+"   contained contains=rubyClassName,rubyOperator +syn match rubyModuleDeclaration "[^[:space:];#<]\+"   contained contains=rubyModuleName,rubyOperator + +syn match rubyMethodName "\<[_[:alpha:]][_[:alnum:]]*[?!=]\=[[:alnum:]_.:?!=]\@!"										      contained containedin=rubyMethodDeclaration +syn match rubyMethodName "\%(\s\|^\)\@1<=[_[:alpha:]][_[:alnum:]]*[?!=]\=\%(\s\|$\)\@="										      contained containedin=rubyAliasDeclaration,rubyAliasDeclaration2 +syn match rubyMethodName "\%([[:space:].]\|^\)\@1<=\%(\[\]=\=\|\*\*\|[-+!~]@\=\|[*/%|&^~]\|<<\|>>\|[<>]=\=\|<=>\|===\|[=!]=\|[=!]\~\|!\|`\)\%([[:space:];#(]\|$\)\@=" contained containedin=rubyAliasDeclaration,rubyAliasDeclaration2,rubyMethodDeclaration -syn cluster rubyDeclaration contains=rubyAliasDeclaration,rubyAliasDeclaration2,rubyMethodDeclaration,rubyModuleDeclaration,rubyClassDeclaration,rubyFunction,rubyBlockParameter +syn cluster rubyDeclaration contains=rubyAliasDeclaration,rubyAliasDeclaration2,rubyMethodDeclaration,rubyModuleDeclaration,rubyClassDeclaration,rubyMethodName,rubyBlockParameter  " Keywords {{{1  " Note: the following keywords have already been defined:  " begin case class def do end for if module unless until while -syn match   rubyControl	       "\<\%(and\|break\|in\|next\|not\|or\|redo\|rescue\|retry\|return\)\>[?!]\@!" -syn match   rubyOperator       "\<defined?" display -syn match   rubyKeyword	       "\<\%(super\|yield\)\>[?!]\@!" -syn match   rubyBoolean	       "\<\%(true\|false\)\>[?!]\@!" -syn match   rubyPseudoVariable "\<\%(nil\|self\|__ENCODING__\|__dir__\|__FILE__\|__LINE__\|__callee__\|__method__\)\>[?!]\@!" " TODO: reorganise -syn match   rubyBeginEnd       "\<\%(BEGIN\|END\)\>[?!]\@!" +syn match rubyControl	     "\<\%(and\|break\|in\|next\|not\|or\|redo\|retry\|return\)\>[?!]\@!" +syn match rubyOperator	     "\<defined?" display +syn match rubyKeyword	     "\<\%(super\|yield\)\>[?!]\@!" +syn match rubyBoolean	     "\<\%(true\|false\)\>[?!]\@!" +syn match rubyPseudoVariable "\<\%(nil\|self\|__ENCODING__\|__dir__\|__FILE__\|__LINE__\|__callee__\|__method__\)\>[?!]\@!" " TODO: reorganise +syn match rubyBeginEnd	     "\<\%(BEGIN\|END\)\>[?!]\@!"  " Expensive Mode {{{1  " Match 'end' with the appropriate opening keyword for syntax based folding  " and special highlighting of module/class/method definitions  if !exists("b:ruby_no_expensive") && !exists("ruby_no_expensive") -  syn match  rubyDefine "\<alias\>"  nextgroup=rubyAliasDeclaration  skipwhite skipnl -  syn match  rubyDefine "\<def\>"    nextgroup=rubyMethodDeclaration skipwhite skipnl -  syn match  rubyDefine "\<undef\>"  nextgroup=rubyFunction	     skipwhite skipnl -  syn match  rubyClass	"\<class\>"  nextgroup=rubyClassDeclaration  skipwhite skipnl -  syn match  rubyModule "\<module\>" nextgroup=rubyModuleDeclaration skipwhite skipnl - -  if s:foldable('def') -    syn region rubyMethodBlock start="\<def\>"	matchgroup=rubyDefine end="\%(\<def\_s\+\)\@<!\<end\>" contains=ALLBUT,@rubyNotTop fold -  else -    syn region rubyMethodBlock start="\<def\>"	matchgroup=rubyDefine end="\%(\<def\_s\+\)\@<!\<end\>" contains=ALLBUT,@rubyNotTop -  endif +  syn match rubyDefine "\<alias\>"  nextgroup=rubyAliasDeclaration  skipwhite skipnl +  syn match rubyDefine "\<def\>"    nextgroup=rubyMethodDeclaration skipwhite skipnl +  syn match rubyDefine "\<undef\>"  nextgroup=rubyMethodName	    skipwhite skipnl +  syn match rubyClass  "\<class\>"  nextgroup=rubyClassDeclaration  skipwhite skipnl +  syn match rubyModule "\<module\>" nextgroup=rubyModuleDeclaration skipwhite skipnl -  if s:foldable('class') -    syn region rubyBlock start="\<class\>"	matchgroup=rubyClass end="\<end\>" contains=ALLBUT,@rubyNotTop fold -  else -    syn region rubyBlock start="\<class\>"	matchgroup=rubyClass end="\<end\>" contains=ALLBUT,@rubyNotTop -  endif - -  if s:foldable('module') -    syn region rubyBlock start="\<module\>" matchgroup=rubyModule end="\<end\>" contains=ALLBUT,@rubyNotTop fold -  else -    syn region rubyBlock start="\<module\>" matchgroup=rubyModule end="\<end\>" contains=ALLBUT,@rubyNotTop -  endif +  SynFold 'def'    syn region rubyMethodBlock start="\<def\>"	 matchgroup=rubyDefine end="\%(\<def\_s\+\)\@<!\<end\>" contains=ALLBUT,@rubyNotTop +  SynFold 'class'  syn region rubyClassBlock  start="\<class\>"  matchgroup=rubyClass  end="\<end\>"			contains=ALLBUT,@rubyNotTop +  SynFold 'module' syn region rubyModuleBlock start="\<module\>" matchgroup=rubyModule end="\<end\>"			contains=ALLBUT,@rubyNotTop    " modifiers -  syn match rubyLineContinuation    "\\$" nextgroup=rubyConditionalModifier,rubyRepeatModifier skipwhite skipnl +  syn match rubyLineContinuation    "\\$" nextgroup=@rubyModifier skipwhite skipnl    syn match rubyConditionalModifier "\<\%(if\|unless\)\>"    syn match rubyRepeatModifier	    "\<\%(while\|until\)\>" +  syn match rubyRescueModifier	    "\<rescue\>" -  if s:foldable('do') -    syn region rubyDoBlock matchgroup=rubyControl start="\<do\>" end="\<end\>" contains=ALLBUT,@rubyNotTop fold -  else -    syn region rubyDoBlock matchgroup=rubyControl start="\<do\>" end="\<end\>" contains=ALLBUT,@rubyNotTop -  endif +  syn cluster rubyModifier contains=rubyConditionalModifier,rubyRepeatModifier,rubyRescueModifier -  " curly bracket block or hash literal -  if s:foldable('{') -    syn region rubyCurlyBlock matchgroup=rubyCurlyBlockDelimiter start="{" end="}" contains=ALLBUT,@rubyNotTop fold -  else -    syn region rubyCurlyBlock matchgroup=rubyCurlyBlockDelimiter start="{" end="}" contains=ALLBUT,@rubyNotTop -  endif +  SynFold 'do' syn region rubyDoBlock matchgroup=rubyControl start="\<do\>" end="\<end\>" contains=ALLBUT,@rubyNotTop -  if s:foldable('[') -    syn region rubyArrayLiteral	matchgroup=rubyArrayDelimiter start="\%(\w\|[\]})]\)\@<!\[" end="]" contains=ALLBUT,@rubyNotTop fold -  endif +  " curly bracket block or hash literal +  SynFold '{' syn region rubyCurlyBlock   matchgroup=rubyCurlyBlockDelimiter start="{"			   end="}" contains=ALLBUT,@rubyNotTop +  SynFold '[' syn region rubyArrayLiteral matchgroup=rubyArrayDelimiter      start="\%(\w\|[\]})]\)\@<!\[" end="]" contains=ALLBUT,@rubyNotTop    " statements without 'do' -  if s:foldable('begin') -    syn region rubyBlockExpression matchgroup=rubyControl start="\<begin\>" end="\<end\>" contains=ALLBUT,@rubyNotTop fold -  else -    syn region rubyBlockExpression matchgroup=rubyControl start="\<begin\>" end="\<end\>" contains=ALLBUT,@rubyNotTop -  endif +  SynFold 'begin' syn region rubyBlockExpression matchgroup=rubyControl     start="\<begin\>" end="\<end\>" contains=ALLBUT,@rubyNotTop +  SynFold 'case'  syn region rubyCaseExpression  matchgroup=rubyConditional start="\<case\>"  end="\<end\>" contains=ALLBUT,@rubyNotTop -  if s:foldable('case') -    syn region rubyCaseExpression matchgroup=rubyConditional start="\<case\>" end="\<end\>" contains=ALLBUT,@rubyNotTop fold -  else -    syn region rubyCaseExpression matchgroup=rubyConditional start="\<case\>" end="\<end\>" contains=ALLBUT,@rubyNotTop -  endif - -  if s:foldable('if') -    syn region rubyConditionalExpression matchgroup=rubyConditional start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*%&^|+=-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@<![?!]\)\s*\)\@<=\%(if\|unless\)\>" end="\%(\%(\%(\.\@1<!\.\)\|::\)\s*\)\@<!\<end\>" contains=ALLBUT,@rubyNotTop fold -  else -    syn region rubyConditionalExpression matchgroup=rubyConditional start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*%&^|+=-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@<![?!]\)\s*\)\@<=\%(if\|unless\)\>" end="\%(\%(\%(\.\@1<!\.\)\|::\)\s*\)\@<!\<end\>" contains=ALLBUT,@rubyNotTop -  endif +  SynFold 'if' syn region rubyConditionalExpression matchgroup=rubyConditional start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*/%&^|+=-]\|\<then\s\|\%(\<\h\w*\)\@<![?!]\)\s*\)\@<=\%(if\|unless\)\>" end="\%(\%(\%(\.\@1<!\.\)\|::\)\s*\)\@<!\<end\>" contains=ALLBUT,@rubyNotTop    syn match rubyConditional "\<\%(then\|else\|when\)\>[?!]\@!"	contained containedin=rubyCaseExpression    syn match rubyConditional "\<\%(then\|else\|elsif\)\>[?!]\@!" contained containedin=rubyConditionalExpression -  syn match rubyExceptional	  "\<\%(\%(\%(;\|^\)\s*\)\@<=rescue\|else\|ensure\)\>[?!]\@!" contained containedin=rubyBlockExpression -  syn match rubyMethodExceptional "\<\%(\%(\%(;\|^\)\s*\)\@<=rescue\|else\|ensure\)\>[?!]\@!" contained containedin=rubyMethodBlock +  syn match   rubyExceptionHandler  "\<\%(\%(\%(;\|^\)\s*\)\@<=rescue\|else\|ensure\)\>[?!]\@!" contained containedin=rubyBlockExpression,rubyDoBlock +  syn match   rubyExceptionHandler1 "\<\%(\%(\%(;\|^\)\s*\)\@<=rescue\|else\|ensure\)\>[?!]\@!" contained containedin=rubyModuleBlock,rubyClassBlock,rubyMethodBlock +  syn cluster rubyExceptionHandler  contains=rubyExceptionHandler,rubyExceptionHandler1    " statements with optional 'do' -  syn region rubyOptionalDoLine   matchgroup=rubyRepeat start="\<for\>[?!]\@!" start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*/%&^|+-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@<![!=?]\)\s*\)\@<=\<\%(until\|while\)\>" matchgroup=rubyOptionalDo end="\%(\<do\>\)" end="\ze\%(;\|$\)" oneline contains=ALLBUT,@rubyNotTop +  syn region rubyOptionalDoLine matchgroup=rubyRepeat start="\<for\>[?!]\@!" start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*/%&^|+=-]\|\%(\<\h\w*\)\@<![!?]\)\s*\)\@<=\<\%(until\|while\)\>" matchgroup=rubyOptionalDo end="\<do\>" end="\ze\%(;\|$\)" oneline contains=ALLBUT,@rubyNotTop -  if s:foldable('for') -    syn region rubyRepeatExpression start="\<for\>[?!]\@!" start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*/%&^|+-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@<![!=?]\)\s*\)\@<=\<\%(until\|while\)\>" matchgroup=rubyRepeat end="\<end\>" contains=ALLBUT,@rubyNotTop nextgroup=rubyOptionalDoLine fold -  else -    syn region rubyRepeatExpression start="\<for\>[?!]\@!" start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*/%&^|+-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@<![!=?]\)\s*\)\@<=\<\%(until\|while\)\>" matchgroup=rubyRepeat end="\<end\>" contains=ALLBUT,@rubyNotTop nextgroup=rubyOptionalDoLine -  endif +  SynFold 'for' syn region rubyRepeatExpression start="\<for\>[?!]\@!" start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*/%&^|+=-]\|\%(\<\h\w*\)\@<![!?]\)\s*\)\@<=\<\%(until\|while\)\>" matchgroup=rubyRepeat end="\<end\>" contains=ALLBUT,@rubyNotTop nextgroup=rubyOptionalDoLine    if !exists("ruby_minlines")      let ruby_minlines = 500    endif -  exec "syn sync minlines=" . ruby_minlines +  exe "syn sync minlines=" . ruby_minlines  else    syn match rubyControl "\<def\>[?!]\@!"    nextgroup=rubyMethodDeclaration skipwhite skipnl    syn match rubyControl "\<class\>[?!]\@!"  nextgroup=rubyClassDeclaration  skipwhite skipnl    syn match rubyControl "\<module\>[?!]\@!" nextgroup=rubyModuleDeclaration skipwhite skipnl -  syn match rubyControl "\<\%(case\|begin\|do\|for\|if\|unless\|while\|until\|else\|elsif\|ensure\|then\|when\|end\)\>[?!]\@!" +  syn match rubyControl "\<\%(case\|begin\|do\|for\|if\|unless\|while\|until\|else\|elsif\|rescue\|ensure\|then\|when\|end\)\>[?!]\@!"    syn match rubyKeyword "\<\%(alias\|undef\)\>[?!]\@!"  endif @@ -449,53 +412,62 @@ if !exists("ruby_no_special_methods")  endif  " Comments and Documentation {{{1 -syn match   rubySharpBang "\%^#!.*" display -syn keyword rubyTodo	  FIXME NOTE TODO OPTIMIZE HACK REVIEW XXX todo contained -syn match   rubyComment   "#.*" contains=rubySharpBang,rubySpaceError,rubyTodo,@Spell +syn match   rubySharpBang    "\%^#!.*" display +syn keyword rubyTodo	     FIXME NOTE TODO OPTIMIZE HACK REVIEW XXX todo contained +syn match   rubyEncoding     "[[:alnum:]-]\+" contained display +syn match   rubyMagicComment "\c\%<3l#\s*\zs\%(coding\|encoding\):"					contained nextgroup=rubyEncoding skipwhite +syn match   rubyMagicComment "\c\%<10l#\s*\zs\%(frozen_string_literal\|warn_indent\|warn_past_scope\):" contained nextgroup=rubyBoolean  skipwhite +syn match   rubyComment	     "#.*" contains=@rubyCommentSpecial,rubySpaceError,@Spell + +syn cluster rubyCommentSpecial contains=rubySharpBang,rubyTodo,rubyMagicComment +syn cluster rubyCommentNotTop  contains=@rubyCommentSpecial,rubyEncoding +  if !exists("ruby_no_comment_fold") && s:foldable('#')    syn region rubyMultilineComment start="^\s*#.*\n\%(^\s*#\)\@=" end="^\s*#.*\n\%(^\s*#\)\@!" contains=rubyComment transparent fold keepend -  syn region rubyDocumentation	  start="^=begin\ze\%(\s.*\)\=$" end="^=end\%(\s.*\)\=$" contains=rubySpaceError,rubyTodo,@Spell fold +  syn region rubyDocumentation	  start="^=begin\ze\%(\s.*\)\=$" end="^=end\%(\s.*\)\=$"      contains=rubySpaceError,rubyTodo,@Spell fold  else -  syn region rubyDocumentation	  start="^=begin\s*$" end="^=end\s*$" contains=rubySpaceError,rubyTodo,@Spell +  syn region rubyDocumentation	  start="^=begin\s*$"		 end="^=end\s*$"              contains=rubySpaceError,rubyTodo,@Spell  endif +" {{{1 Useless line continuations +syn match rubyUselessLineContinuation "\%([.:,;{([<>~\*%&^|+=-]\|\w\@1<![?!]\)\s*\zs\\$" nextgroup=rubyUselessLineContinuation skipwhite skipempty +syn match rubyUselessLineContinuation "\\$"						 nextgroup=rubyUselessLineContinuation skipwhite skipempty contained +  " Keyword Nobbling {{{1  " Note: this is a hack to prevent 'keywords' being highlighted as such when called as methods with an explicit receiver  syn match rubyKeywordAsMethod "\%(\%(\.\@1<!\.\)\|::\)\_s*\%([_[:lower:]][_[:alnum:]]*\|\<\%(BEGIN\|END\)\>\)" transparent contains=NONE  syn match rubyKeywordAsMethod "\(defined?\|exit!\)\@!\<[_[:lower:]][_[:alnum:]]*[?!]"			       transparent contains=NONE  " More Symbols {{{1 -syn match  rubySymbol		"\%([{(,]\_s*\)\zs\l\w*[!?]\=::\@!"he=e-1 -syn match  rubySymbol		"[]})\"':]\@1<!\<\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*[!?]\=:[[:space:],]\@="he=e-1 -syn match  rubySymbol		"\%([{(,]\_s*\)\zs[[:space:],{]\l\w*[!?]\=::\@!"hs=s+1,he=e-1 -syn match  rubySymbol		"[[:space:],{(]\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*[!?]\=:[[:space:],]\@="hs=s+1,he=e-1 +syn match rubySymbol "\%([{(,]\_s*\)\@<=\l\w*[!?]\=::\@!"he=e-1 +syn match rubySymbol "[]})\"':]\@1<!\<\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*[!?]\=:[[:space:],]\@="he=e-1 +syn match rubySymbol "\%([{(,]\_s*\)\@<=[[:space:],{]\l\w*[!?]\=::\@!"hs=s+1,he=e-1 +syn match rubySymbol "[[:space:],{(]\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*[!?]\=:[[:space:],]\@="hs=s+1,he=e-1  " __END__ Directive {{{1 -if s:foldable('__END__') -  syn region rubyData matchgroup=rubyDataDirective start="^__END__$" end="\%$" fold -else -  syn region rubyData matchgroup=rubyDataDirective start="^__END__$" end="\%$" -endif +SynFold '__END__' syn region rubyData matchgroup=rubyDataDirective start="^__END__$" end="\%$"  " Default Highlighting {{{1  hi def link rubyClass			rubyDefine  hi def link rubyModule			rubyDefine -hi def link rubyMethodExceptional	rubyDefine +hi def link rubyExceptionHandler1	rubyDefine  hi def link rubyDefine			Define  hi def link rubyAccess			rubyMacro  hi def link rubyAttribute		rubyMacro  hi def link rubyMacro			Macro +hi def link rubyMethodName		rubyFunction  hi def link rubyFunction		Function  hi def link rubyConditional		Conditional  hi def link rubyConditionalModifier	rubyConditional -hi def link rubyExceptional		rubyConditional +hi def link rubyExceptionHandler	rubyConditional +hi def link rubyRescueModifier		rubyExceptionHandler  hi def link rubyRepeat			Repeat  hi def link rubyRepeatModifier		rubyRepeat  hi def link rubyOptionalDo		rubyRepeat  hi def link rubyControl			Statement  hi def link rubyInclude			Include  hi def link rubyInteger			Number -hi def link rubyASCIICode		Character +hi def link rubyCharacter		Character  hi def link rubyFloat			Float  hi def link rubyBoolean			Boolean  hi def link rubyException		Exception @@ -515,39 +487,66 @@ hi def link rubyPredefinedConstant	rubyPredefinedIdentifier  hi def link rubyPredefinedVariable	rubyPredefinedIdentifier  hi def link rubySymbol			Constant  hi def link rubyKeyword			Keyword +  hi def link rubyOperator		Operator +hi def link rubyDotOperator		Operator +hi def link rubyTernaryOperator		Operator +hi def link rubyArithmeticOperator	Operator +hi def link rubyComparisonOperator	Operator +hi def link rubyBitwiseOperator		Operator +hi def link rubyBooleanOperator		Operator +hi def link rubyRangeOperator		Operator +hi def link rubyAssignmentOperator	Operator +hi def link rubyEqualityOperator	Operator +hi def link rubyScopeOperator		Operator +  hi def link rubyBeginEnd		Statement  hi def link rubyEval			Statement  hi def link rubyPseudoVariable		Constant  hi def link rubyCapitalizedMethod	rubyLocalVariableOrMethod  hi def link rubyComment			Comment +hi def link rubyEncoding		Constant +hi def link rubyMagicComment		SpecialComment  hi def link rubyData			Comment  hi def link rubyDataDirective		Delimiter  hi def link rubyDocumentation		Comment  hi def link rubyTodo			Todo +hi def link rubyBackslashEscape		rubyStringEscape  hi def link rubyQuoteEscape		rubyStringEscape +hi def link rubySpaceEscape		rubyStringEscape +hi def link rubyParenthesesEscape	rubyStringEscape +hi def link rubyCurlyBracesEscape	rubyStringEscape +hi def link rubyAngleBracketsEscape	rubyStringEscape +hi def link rubySquareBracketsEscape	rubyStringEscape  hi def link rubyStringEscape		Special +  hi def link rubyInterpolationDelimiter	Delimiter -hi def link rubyNoInterpolation		rubyString  hi def link rubySharpBang		PreProc +hi def link rubyStringDelimiter		Delimiter +hi def link rubyHeredocDelimiter	rubyStringDelimiter +hi def link rubyPercentRegexpDelimiter	rubyRegexpDelimiter +hi def link rubyPercentStringDelimiter	rubyStringDelimiter +hi def link rubyPercentSymbolDelimiter	rubySymbolDelimiter  hi def link rubyRegexpDelimiter		rubyStringDelimiter  hi def link rubySymbolDelimiter		rubySymbol -hi def link rubyStringDelimiter		Delimiter -hi def link rubyHeredoc			rubyString  hi def link rubyString			String  hi def link rubyRegexpEscape		rubyRegexpSpecial  hi def link rubyRegexpQuantifier	rubyRegexpSpecial  hi def link rubyRegexpAnchor		rubyRegexpSpecial  hi def link rubyRegexpDot		rubyRegexpCharClass  hi def link rubyRegexpCharClass		rubyRegexpSpecial +hi def link rubyRegexpIntersection	rubyRegexpSpecial  hi def link rubyRegexpSpecial		Special  hi def link rubyRegexpComment		Comment  hi def link rubyRegexp			rubyString -hi def link rubyInvalidVariable		Error  hi def link rubyError			Error +if exists("ruby_line_continuation_error") +  hi def link rubyUselessLineContinuation rubyError +endif +hi def link rubyGlobalVariableError	rubyError  hi def link rubySpaceError		rubyError  " Postscript {{{1 @@ -556,6 +555,8 @@ let b:current_syntax = "ruby"  let &cpo = s:cpo_sav  unlet! s:cpo_sav +delc SynFold +  " vim: nowrap sw=2 sts=2 ts=8 noet fdm=marker:  endif diff --git a/syntax/rust.vim b/syntax/rust.vim index 3dc5fefa..6803eb01 100644 --- a/syntax/rust.vim +++ b/syntax/rust.vim @@ -244,8 +244,8 @@ if !exists("b:current_syntax_embed")      " possible to trick it if you try hard, and indented code blocks aren’t      " supported because Markdown is a menace to parse and only mad dogs and      " Englishmen would try to handle that case correctly in this syntax file). -    syn region rustCommentLinesDocRustCode matchgroup=rustCommentDocCodeFence start='^\z(\s*//[!/]\s*```\)[^A-Za-z0-9_-]*\%(\%(should_panic\|no_run\|ignore\|allow_fail\|rust\|test_harness\|compile_fail\|E\d\{4}\)\%([^A-Za-z0-9_-]\+\|$\)\)*$' end='^\z1$' keepend contains=@RustCodeInComment,rustCommentLineDocLeader -    syn region rustCommentBlockDocRustCode matchgroup=rustCommentDocCodeFence start='^\z(\%(\s*\*\)\?\s*```\)[^A-Za-z0-9_-]*\%(\%(should_panic\|no_run\|ignore\|allow_fail\|rust\|test_harness\|compile_fail\|E\d\{4}\)\%([^A-Za-z0-9_-]\+\|$\)\)*$' end='^\z1$' keepend contains=@RustCodeInComment,rustCommentBlockDocStar +    syn region rustCommentLinesDocRustCode matchgroup=rustCommentDocCodeFence start='^\z(\s*//[!/]\s*```\)[^A-Za-z0-9_-]*\%(\%(should_panic\|no_run\|ignore\|allow_fail\|rust\|test_harness\|compile_fail\|E\d\{4}\|edition201[58]\)\%([^A-Za-z0-9_-]\+\|$\)\)*$' end='^\z1$' keepend contains=@RustCodeInComment,rustCommentLineDocLeader +    syn region rustCommentBlockDocRustCode matchgroup=rustCommentDocCodeFence start='^\z(\%(\s*\*\)\?\s*```\)[^A-Za-z0-9_-]*\%(\%(should_panic\|no_run\|ignore\|allow_fail\|rust\|test_harness\|compile_fail\|E\d\{4}\|edition201[58]\)\%([^A-Za-z0-9_-]\+\|$\)\)*$' end='^\z1$' keepend contains=@RustCodeInComment,rustCommentBlockDocStar      " Strictly, this may or may not be correct; this code, for example, would      " mishighlight:      " diff --git a/syntax/terraform.vim b/syntax/terraform.vim index a0557515..d9e59025 100644 --- a/syntax/terraform.vim +++ b/syntax/terraform.vim @@ -35,6 +35,7 @@ syn keyword terraDataTypeBI            \ alicloud_dns_groups            \ alicloud_dns_records            \ alicloud_eips +          \ alicloud_elasticsearch_instances            \ alicloud_fc_functions            \ alicloud_fc_services            \ alicloud_fc_triggers @@ -90,6 +91,7 @@ syn keyword terraDataTypeBI            \ aws_api_gateway_resource            \ aws_api_gateway_rest_api            \ aws_api_gateway_vpc_link +          \ aws_appsync_datasource            \ aws_arn            \ aws_autoscaling_group            \ aws_autoscaling_groups @@ -107,6 +109,7 @@ syn keyword terraDataTypeBI            \ aws_cloudwatch_log_group            \ aws_codecommit_repository            \ aws_cognito_user_pools +          \ aws_cur_report_definition            \ aws_db_cluster_snapshot            \ aws_db_event_categories            \ aws_db_instance @@ -128,6 +131,8 @@ syn keyword terraDataTypeBI            \ aws_efs_mount_target            \ aws_eip            \ aws_eks_cluster +          \ aws_eks_cluster_auth +          \ aws_elastic_beanstalk_application            \ aws_elastic_beanstalk_hosted_zone            \ aws_elastic_beanstalk_solution_stack            \ aws_elasticache_cluster @@ -201,13 +206,20 @@ syn keyword terraDataTypeBI            \ aws_vpcs            \ aws_vpn_gateway            \ aws_workspaces_bundle +          \ azuread_user            \ azurerm_api_management +          \ azurerm_api_management_group +          \ azurerm_api_management_product +          \ azurerm_api_management_user            \ azurerm_app_service            \ azurerm_app_service_plan +          \ azurerm_application_insights            \ azurerm_application_security_group +          \ azurerm_availability_set            \ azurerm_azuread_application            \ azurerm_azuread_service_principal            \ azurerm_batch_account +          \ azurerm_batch_pool            \ azurerm_builtin_role_definition            \ azurerm_cdn_profile            \ azurerm_client_config @@ -223,6 +235,8 @@ syn keyword terraDataTypeBI            \ azurerm_key_vault_key            \ azurerm_key_vault_secret            \ azurerm_kubernetes_cluster +          \ azurerm_lb +          \ azurerm_lb_backend_address_pool            \ azurerm_log_analytics_workspace            \ azurerm_logic_app_workflow            \ azurerm_managed_disk @@ -232,16 +246,20 @@ syn keyword terraDataTypeBI            \ azurerm_monitor_log_profile            \ azurerm_network_interface            \ azurerm_network_security_group +          \ azurerm_network_watcher            \ azurerm_notification_hub            \ azurerm_notification_hub_namespace            \ azurerm_platform_image +          \ azurerm_policy_definition            \ azurerm_public_ip            \ azurerm_public_ips +          \ azurerm_recovery_services_protection_policy_vm            \ azurerm_recovery_services_vault            \ azurerm_resource_group            \ azurerm_role_definition            \ azurerm_route_table            \ azurerm_scheduler_job_collection +          \ azurerm_servicebus_namespace            \ azurerm_shared_image            \ azurerm_shared_image_gallery            \ azurerm_shared_image_version @@ -271,9 +289,11 @@ syn keyword terraDataTypeBI            \ circonus_account            \ circonus_collector            \ cloudflare_ip_ranges +          \ cloudflare_zones            \ cloudstack_template            \ consul_agent_config            \ consul_agent_self +          \ consul_autopilot_health            \ consul_catalog_nodes            \ consul_catalog_service            \ consul_catalog_services @@ -298,6 +318,7 @@ syn keyword terraDataTypeBI            \ dns_a_record_set            \ dns_aaaa_record_set            \ dns_cname_record_set +          \ dns_mx_record_set            \ dns_ns_record_set            \ dns_ptr_record_set            \ dns_txt_record_set @@ -305,6 +326,8 @@ syn keyword terraDataTypeBI            \ external            \ fastly_ip_ranges            \ filter +          \ flexibleengine_cce_cluster_v3 +          \ flexibleengine_cce_node_v3            \ flexibleengine_compute_bms_flavors_v2            \ flexibleengine_compute_bms_keypairs_v2            \ flexibleengine_compute_bms_nic_v2 @@ -339,9 +362,11 @@ syn keyword terraDataTypeBI            \ github_user            \ gitlab_project            \ gitlab_user +          \ gitlab_users            \ google_active_folder            \ google_billing_account            \ google_client_config +          \ google_client_openid_userinfo            \ google_cloudfunctions_function            \ google_compute_address            \ google_compute_backend_service @@ -367,6 +392,8 @@ syn keyword terraDataTypeBI            \ google_folder            \ google_iam_policy            \ google_iam_role +          \ google_kms_crypto_key +          \ google_kms_key_ring            \ google_kms_secret            \ google_netblock_ip_ranges            \ google_organization @@ -378,12 +405,14 @@ syn keyword terraDataTypeBI            \ google_storage_object_signed_url            \ google_storage_project_service_account            \ google_storage_transfer_project_service_account +          \ grafana_data_source            \ hcloud_datacenter            \ hcloud_datacenters            \ hcloud_floating_ip            \ hcloud_image            \ hcloud_location            \ hcloud_locations +          \ hcloud_server            \ hcloud_ssh_key            \ hcloud_volume            \ heroku_addon @@ -397,10 +426,14 @@ syn keyword terraDataTypeBI            \ huaweicloud_csbs_backup_policy_v1            \ huaweicloud_csbs_backup_v1            \ huaweicloud_cts_tracker_v1 +          \ huaweicloud_dcs_az_v1 +          \ huaweicloud_dcs_maintainwindow_v1 +          \ huaweicloud_dcs_product_v1            \ huaweicloud_dms_az_v1            \ huaweicloud_dms_maintainwindow_v1            \ huaweicloud_dms_product_v1            \ huaweicloud_iam_role_v3 +          \ huaweicloud_identity_role_v3            \ huaweicloud_images_image_v2            \ huaweicloud_kms_data_key_v1            \ huaweicloud_kms_key_v1 @@ -425,6 +458,7 @@ syn keyword terraDataTypeBI            \ kubernetes_service            \ kubernetes_storage_class            \ linode_account +          \ linode_domain            \ linode_image            \ linode_instance_type            \ linode_profile @@ -436,6 +470,7 @@ syn keyword terraDataTypeBI            \ logicmonitor_collectors            \ logicmonitor_device_group            \ newrelic_alert_channel +          \ newrelic_alert_policy            \ newrelic_application            \ newrelic_key_transaction            \ newrelic_synthetics_monitor @@ -444,6 +479,7 @@ syn keyword terraDataTypeBI            \ nomad_namespaces            \ nomad_regions            \ ns1_datasource +          \ ns1_zone            \ nsxt_certificate            \ nsxt_edge_cluster            \ nsxt_logical_tier0_router @@ -462,6 +498,195 @@ syn keyword terraDataTypeBI            \ nutanix_virtual_machine            \ nutanix_volume_group            \ nutanix_volume_groups +          \ oci_audit_configuration +          \ oci_audit_events +          \ oci_containerengine_cluster_kube_config +          \ oci_containerengine_cluster_option +          \ oci_containerengine_clusters +          \ oci_containerengine_node_pool +          \ oci_containerengine_node_pool_option +          \ oci_containerengine_node_pools +          \ oci_containerengine_work_request_errors +          \ oci_containerengine_work_request_log_entries +          \ oci_containerengine_work_requests +          \ oci_core_app_catalog_listing +          \ oci_core_app_catalog_listing_resource_version +          \ oci_core_app_catalog_listing_resource_versions +          \ oci_core_app_catalog_listings +          \ oci_core_app_catalog_subscriptions +          \ oci_core_boot_volume +          \ oci_core_boot_volume_attachments +          \ oci_core_boot_volume_backup +          \ oci_core_boot_volume_backups +          \ oci_core_boot_volumes +          \ oci_core_console_histories +          \ oci_core_console_history_data +          \ oci_core_cpes +          \ oci_core_cross_connect +          \ oci_core_cross_connect_group +          \ oci_core_cross_connect_groups +          \ oci_core_cross_connect_locations +          \ oci_core_cross_connect_port_speed_shapes +          \ oci_core_cross_connect_status +          \ oci_core_cross_connects +          \ oci_core_dhcp_options +          \ oci_core_drg_attachments +          \ oci_core_drgs +          \ oci_core_fast_connect_provider_service +          \ oci_core_fast_connect_provider_services +          \ oci_core_images +          \ oci_core_instance +          \ oci_core_instance_configuration +          \ oci_core_instance_configurations +          \ oci_core_instance_console_connections +          \ oci_core_instance_credentials +          \ oci_core_instance_devices +          \ oci_core_instance_pool +          \ oci_core_instance_pool_instances +          \ oci_core_instance_pools +          \ oci_core_instances +          \ oci_core_internet_gateways +          \ oci_core_ipsec_config +          \ oci_core_ipsec_connections +          \ oci_core_ipsec_status +          \ oci_core_letter_of_authority +          \ oci_core_listing_resource_version +          \ oci_core_listing_resource_versions +          \ oci_core_local_peering_gateways +          \ oci_core_nat_gateway +          \ oci_core_nat_gateways +          \ oci_core_peer_region_for_remote_peerings +          \ oci_core_private_ips +          \ oci_core_public_ip +          \ oci_core_public_ips +          \ oci_core_remote_peering_connections +          \ oci_core_route_tables +          \ oci_core_security_lists +          \ oci_core_service_gateways +          \ oci_core_services +          \ oci_core_shape +          \ oci_core_shapes +          \ oci_core_subnet +          \ oci_core_subnets +          \ oci_core_vcns +          \ oci_core_virtual_circuit +          \ oci_core_virtual_circuit_bandwidth_shapes +          \ oci_core_virtual_circuit_public_prefixes +          \ oci_core_virtual_circuits +          \ oci_core_vnic +          \ oci_core_vnic_attachments +          \ oci_core_volume +          \ oci_core_volume_attachments +          \ oci_core_volume_backup_policies +          \ oci_core_volume_backup_policy_assignments +          \ oci_core_volume_backups +          \ oci_core_volume_group_backups +          \ oci_core_volume_groups +          \ oci_core_volumes +          \ oci_database_autonomous_data_warehouse +          \ oci_database_autonomous_data_warehouse_backup +          \ oci_database_autonomous_data_warehouse_backups +          \ oci_database_autonomous_data_warehouse_wallet +          \ oci_database_autonomous_data_warehouses +          \ oci_database_autonomous_database +          \ oci_database_autonomous_database_backup +          \ oci_database_autonomous_database_backups +          \ oci_database_autonomous_database_wallet +          \ oci_database_autonomous_databases +          \ oci_database_backups +          \ oci_database_database +          \ oci_database_databases +          \ oci_database_db_home +          \ oci_database_db_home_patch_history_entries +          \ oci_database_db_home_patches +          \ oci_database_db_homes +          \ oci_database_db_node +          \ oci_database_db_nodes +          \ oci_database_db_system_patch_history_entries +          \ oci_database_db_system_patches +          \ oci_database_db_system_shapes +          \ oci_database_db_systems +          \ oci_database_db_versions +          \ oci_dns_records +          \ oci_dns_steering_policies +          \ oci_dns_steering_policy +          \ oci_dns_steering_policy_attachment +          \ oci_dns_steering_policy_attachments +          \ oci_dns_zones +          \ oci_email_sender +          \ oci_email_senders +          \ oci_email_suppression +          \ oci_email_suppressions +          \ oci_file_storage_export_sets +          \ oci_file_storage_exports +          \ oci_file_storage_file_systems +          \ oci_file_storage_mount_targets +          \ oci_file_storage_snapshots +          \ oci_health_checks_http_monitor +          \ oci_health_checks_http_monitors +          \ oci_health_checks_http_probe_results +          \ oci_health_checks_ping_monitor +          \ oci_health_checks_ping_monitors +          \ oci_health_checks_ping_probe_results +          \ oci_health_checks_vantage_points +          \ oci_identity_api_keys +          \ oci_identity_auth_tokens +          \ oci_identity_availability_domains +          \ oci_identity_compartment +          \ oci_identity_compartments +          \ oci_identity_customer_secret_keys +          \ oci_identity_dynamic_groups +          \ oci_identity_fault_domains +          \ oci_identity_groups +          \ oci_identity_identity_provider_groups +          \ oci_identity_identity_providers +          \ oci_identity_idp_group_mappings +          \ oci_identity_policies +          \ oci_identity_region_subscriptions +          \ oci_identity_regions +          \ oci_identity_smtp_credentials +          \ oci_identity_swift_passwords +          \ oci_identity_tag_namespaces +          \ oci_identity_tags +          \ oci_identity_tenancy +          \ oci_identity_user_group_memberships +          \ oci_identity_users +          \ oci_kms_decrypted_data +          \ oci_kms_encrypted_data +          \ oci_kms_key +          \ oci_kms_key_version +          \ oci_kms_key_versions +          \ oci_kms_keys +          \ oci_kms_vault +          \ oci_kms_vaults +          \ oci_load_balancer_backend_health +          \ oci_load_balancer_backend_set_health +          \ oci_load_balancer_backend_sets +          \ oci_load_balancer_backends +          \ oci_load_balancer_backendsets +          \ oci_load_balancer_certificates +          \ oci_load_balancer_health +          \ oci_load_balancer_hostnames +          \ oci_load_balancer_load_balancers +          \ oci_load_balancer_path_route_sets +          \ oci_load_balancer_policies +          \ oci_load_balancer_protocols +          \ oci_load_balancer_rule_set +          \ oci_load_balancer_rule_sets +          \ oci_load_balancer_shapes +          \ oci_load_balancers +          \ oci_objectstorage_bucket +          \ oci_objectstorage_bucket_summaries +          \ oci_objectstorage_namespace +          \ oci_objectstorage_namespace_metadata +          \ oci_objectstorage_object +          \ oci_objectstorage_object_head +          \ oci_objectstorage_object_lifecycle_policy +          \ oci_objectstorage_objects +          \ oci_objectstorage_preauthrequest +          \ oci_objectstorage_preauthrequests +          \ oci_streaming_stream +          \ oci_streaming_streams            \ oneandone_instance_size            \ opc_compute_image_list_entry            \ opc_compute_ip_address_reservation @@ -471,8 +696,10 @@ syn keyword terraDataTypeBI            \ opc_compute_ssh_key            \ opc_compute_storage_volume_snapshot            \ opc_compute_vnic +          \ openstack_blockstorage_availability_zones_v3            \ openstack_blockstorage_snapshot_v2            \ openstack_blockstorage_snapshot_v3 +          \ openstack_compute_availability_zones_v2            \ openstack_compute_flavor_v2            \ openstack_compute_keypair_v2            \ openstack_containerinfra_cluster_v1 @@ -488,10 +715,16 @@ syn keyword terraDataTypeBI            \ openstack_images_image_v2            \ openstack_networking_floatingip_v2            \ openstack_networking_network_v2 +          \ openstack_networking_port_ids_v2 +          \ openstack_networking_port_v2            \ openstack_networking_router_v2            \ openstack_networking_secgroup_v2            \ openstack_networking_subnet_v2            \ openstack_networking_subnetpool_v2 +          \ openstack_sharedfilesystem_availability_zones_v2 +          \ openstack_sharedfilesystem_share_v2 +          \ openstack_sharedfilesystem_sharenetwork_v2 +          \ openstack_sharedfilesystem_snapshot_v2            \ opentelekomcloud_antiddos_v1            \ opentelekomcloud_cce_cluster_v3            \ opentelekomcloud_cce_node_v3 @@ -507,6 +740,10 @@ syn keyword terraDataTypeBI            \ opentelekomcloud_dcs_product_v1            \ opentelekomcloud_deh_host_v1            \ opentelekomcloud_deh_server_v1 +          \ opentelekomcloud_identity_group_v3 +          \ opentelekomcloud_identity_project_v3 +          \ opentelekomcloud_identity_role_v3 +          \ opentelekomcloud_identity_user_v3            \ opentelekomcloud_images_image_v2            \ opentelekomcloud_kms_data_key_v1            \ opentelekomcloud_kms_key_v1 @@ -587,6 +824,10 @@ syn keyword terraDataTypeBI            \ skytap_template            \ telefonicaopencloud_csbs_backup_policy_v1            \ telefonicaopencloud_csbs_backup_v1 +          \ telefonicaopencloud_cts_tracker_v1 +          \ telefonicaopencloud_dcs_az_v1 +          \ telefonicaopencloud_dcs_maintainwindow_v1 +          \ telefonicaopencloud_dcs_product_v1            \ telefonicaopencloud_dns_zone_v2            \ telefonicaopencloud_networking_network_v2            \ telefonicaopencloud_networking_secgroup_v2 @@ -597,6 +838,8 @@ syn keyword terraDataTypeBI            \ telefonicaopencloud_rts_stack_v1            \ telefonicaopencloud_s3_bucket_object            \ telefonicaopencloud_sfs_file_system_v2 +          \ telefonicaopencloud_vbs_backup_policy_v2 +          \ telefonicaopencloud_vbs_backup_v2            \ telefonicaopencloud_vpc_subnet_ids_v1            \ telefonicaopencloud_vpc_subnet_v1            \ telefonicaopencloud_vpc_v1 @@ -614,6 +857,11 @@ syn keyword terraDataTypeBI            \ tencentcloud_subnet            \ tencentcloud_vpc            \ terraform_remote_state +          \ tfe_ssh_key +          \ tfe_team +          \ tfe_team_access +          \ tfe_workspace +          \ tfe_workspace_ids            \ tls_public_key            \ triton_account            \ triton_datacenter @@ -626,12 +874,19 @@ syn keyword terraDataTypeBI            \ ucloud_images            \ ucloud_projects            \ ucloud_zones +          \ vault_approle_auth_backend_role_id +          \ vault_aws_access_credentials +          \ vault_generic_secret +          \ vault_kubernetes_auth_backend_config +          \ vault_kubernetes_auth_backend_role +          \ vault_policy_document            \ vsphere_compute_cluster            \ vsphere_custom_attribute            \ vsphere_datacenter            \ vsphere_datastore            \ vsphere_datastore_cluster            \ vsphere_distributed_virtual_switch +          \ vsphere_folder            \ vsphere_host            \ vsphere_network            \ vsphere_resource_pool @@ -640,6 +895,18 @@ syn keyword terraDataTypeBI            \ vsphere_vapp_container            \ vsphere_virtual_machine            \ vsphere_vmfs_disks +          \ yandex_compute_disk +          \ yandex_compute_image +          \ yandex_compute_instance +          \ yandex_compute_snapshot +          \ yandex_iam_policy +          \ yandex_iam_role +          \ yandex_iam_service_account +          \ yandex_iam_user +          \ yandex_resourcemanager_cloud +          \ yandex_resourcemanager_folder +          \ yandex_vpc_network +          \ yandex_vpc_subnet  """ end data sources  """ resource @@ -675,6 +942,8 @@ syn keyword terraResourceTypeBI            \ alicloud_db_connection            \ alicloud_db_database            \ alicloud_db_instance +          \ alicloud_db_read_write_splitting_connection +          \ alicloud_db_readonly_instance            \ alicloud_disk            \ alicloud_disk_attachment            \ alicloud_dns @@ -683,6 +952,7 @@ syn keyword terraResourceTypeBI            \ alicloud_drds_instance            \ alicloud_eip            \ alicloud_eip_association +          \ alicloud_elasticsearch_instance            \ alicloud_ess_alarm            \ alicloud_ess_attachment            \ alicloud_ess_lifecycle_hook @@ -706,6 +976,8 @@ syn keyword terraResourceTypeBI            \ alicloud_log_project            \ alicloud_log_store            \ alicloud_log_store_index +          \ alicloud_logtail_attachment +          \ alicloud_logtail_config            \ alicloud_mns_queue            \ alicloud_mns_topic            \ alicloud_mns_topic_subscription @@ -814,6 +1086,7 @@ syn keyword terraResourceTypeBI            \ aws_autoscaling_notification            \ aws_autoscaling_policy            \ aws_autoscaling_schedule +          \ aws_backup_vault            \ aws_batch_compute_environment            \ aws_batch_job_definition            \ aws_batch_job_queue @@ -861,6 +1134,7 @@ syn keyword terraResourceTypeBI            \ aws_config_configuration_recorder            \ aws_config_configuration_recorder_status            \ aws_config_delivery_channel +          \ aws_cur_report_definition            \ aws_customer_gateway            \ aws_datasync_agent            \ aws_datasync_location_efs @@ -893,6 +1167,11 @@ syn keyword terraResourceTypeBI            \ aws_dms_replication_instance            \ aws_dms_replication_subnet_group            \ aws_dms_replication_task +          \ aws_docdb_cluster +          \ aws_docdb_cluster_instance +          \ aws_docdb_cluster_parameter_group +          \ aws_docdb_cluster_snapshot +          \ aws_docdb_subnet_group            \ aws_dx_bgp_peer            \ aws_dx_connection            \ aws_dx_connection_association @@ -912,6 +1191,8 @@ syn keyword terraResourceTypeBI            \ aws_ebs_snapshot_copy            \ aws_ebs_volume            \ aws_ec2_capacity_reservation +          \ aws_ec2_client_vpn_endpoint +          \ aws_ec2_client_vpn_network_association            \ aws_ec2_fleet            \ aws_ec2_transit_gateway            \ aws_ec2_transit_gateway_route @@ -956,6 +1237,7 @@ syn keyword terraResourceTypeBI            \ aws_gamelift_game_session_queue            \ aws_glacier_vault            \ aws_glacier_vault_lock +          \ aws_globalaccelerator_accelerator            \ aws_glue_catalog_database            \ aws_glue_catalog_table            \ aws_glue_classifier @@ -999,6 +1281,7 @@ syn keyword terraResourceTypeBI            \ aws_iot_certificate            \ aws_iot_policy            \ aws_iot_policy_attachment +          \ aws_iot_role_alias            \ aws_iot_thing            \ aws_iot_thing_principal_attachment            \ aws_iot_thing_type @@ -1013,6 +1296,7 @@ syn keyword terraResourceTypeBI            \ aws_lambda_alias            \ aws_lambda_event_source_mapping            \ aws_lambda_function +          \ aws_lambda_layer_version            \ aws_lambda_permission            \ aws_launch_configuration            \ aws_launch_template @@ -1037,6 +1321,7 @@ syn keyword terraResourceTypeBI            \ aws_macie_member_account_association            \ aws_macie_s3_bucket_association            \ aws_main_route_table_association +          \ aws_media_package_channel            \ aws_media_store_container            \ aws_media_store_container_policy            \ aws_mq_broker @@ -1087,6 +1372,9 @@ syn keyword terraResourceTypeBI            \ aws_pinpoint_sms_channel            \ aws_placement_group            \ aws_proxy_protocol_policy +          \ aws_ram_principal_association +          \ aws_ram_resource_association +          \ aws_ram_resource_share            \ aws_rds_cluster            \ aws_rds_cluster_endpoint            \ aws_rds_cluster_instance @@ -1098,6 +1386,7 @@ syn keyword terraResourceTypeBI            \ aws_redshift_security_group            \ aws_redshift_snapshot_copy_grant            \ aws_redshift_subnet_group +          \ aws_resourcegroups_group            \ aws_route            \ aws_route53_delegation_set            \ aws_route53_health_check @@ -1115,6 +1404,8 @@ syn keyword terraResourceTypeBI            \ aws_s3_bucket_object            \ aws_s3_bucket_policy            \ aws_s3_bucket_public_access_block +          \ aws_sagemaker_model +          \ aws_sagemaker_notebook_instance            \ aws_secretsmanager_secret            \ aws_secretsmanager_secret_version            \ aws_security_group @@ -1219,6 +1510,7 @@ syn keyword terraResourceTypeBI            \ aws_wafregional_web_acl            \ aws_wafregional_web_acl_association            \ aws_wafregional_xss_match_set +          \ aws_worklink_fleet            \ azure_affinity_group            \ azure_data_disk            \ azure_dns_server @@ -1235,7 +1527,16 @@ syn keyword terraResourceTypeBI            \ azure_storage_queue            \ azure_storage_service            \ azure_virtual_network +          \ azuread_application +          \ azuread_group +          \ azuread_service_principal +          \ azuread_service_principal_password +          \ azuread_user            \ azurerm_api_management +          \ azurerm_api_management_group +          \ azurerm_api_management_group_user +          \ azurerm_api_management_product +          \ azurerm_api_management_user            \ azurerm_app_service            \ azurerm_app_service_active_slot            \ azurerm_app_service_custom_hostname_binding @@ -1243,6 +1544,7 @@ syn keyword terraResourceTypeBI            \ azurerm_app_service_slot            \ azurerm_application_gateway            \ azurerm_application_insights +          \ azurerm_application_insights_api_key            \ azurerm_application_security_group            \ azurerm_automation_account            \ azurerm_automation_credential @@ -1257,9 +1559,11 @@ syn keyword terraResourceTypeBI            \ azurerm_azuread_service_principal            \ azurerm_azuread_service_principal_password            \ azurerm_batch_account +          \ azurerm_batch_pool            \ azurerm_cdn_endpoint            \ azurerm_cdn_profile            \ azurerm_cognitive_account +          \ azurerm_connection_monitor            \ azurerm_container_group            \ azurerm_container_registry            \ azurerm_container_service @@ -1270,6 +1574,7 @@ syn keyword terraResourceTypeBI            \ azurerm_data_lake_store_file            \ azurerm_data_lake_store_firewall_rule            \ azurerm_databricks_workspace +          \ azurerm_ddos_protection_plan            \ azurerm_dev_test_lab            \ azurerm_dev_test_linux_virtual_machine            \ azurerm_dev_test_policy @@ -1286,6 +1591,8 @@ syn keyword terraResourceTypeBI            \ azurerm_dns_srv_record            \ azurerm_dns_txt_record            \ azurerm_dns_zone +          \ azurerm_eventgrid_domain +          \ azurerm_eventgrid_event_subscription            \ azurerm_eventgrid_topic            \ azurerm_eventhub            \ azurerm_eventhub_authorization_rule @@ -1296,6 +1603,7 @@ syn keyword terraResourceTypeBI            \ azurerm_express_route_circuit_authorization            \ azurerm_express_route_circuit_peering            \ azurerm_firewall +          \ azurerm_firewall_application_rule_collection            \ azurerm_firewall_network_rule_collection            \ azurerm_function_app            \ azurerm_image @@ -1311,9 +1619,11 @@ syn keyword terraResourceTypeBI            \ azurerm_lb_backend_address_pool            \ azurerm_lb_nat_pool            \ azurerm_lb_nat_rule +          \ azurerm_lb_outbound_rule            \ azurerm_lb_probe            \ azurerm_lb_rule            \ azurerm_local_network_gateway +          \ azurerm_log_analytics_linked_service            \ azurerm_log_analytics_solution            \ azurerm_log_analytics_workspace            \ azurerm_log_analytics_workspace_linked_service @@ -1328,12 +1638,15 @@ syn keyword terraResourceTypeBI            \ azurerm_management_lock            \ azurerm_mariadb_database            \ azurerm_mariadb_server +          \ azurerm_media_services_account            \ azurerm_metric_alertrule            \ azurerm_monitor_action_group            \ azurerm_monitor_activity_log_alert +          \ azurerm_monitor_autoscale_setting            \ azurerm_monitor_diagnostic_setting            \ azurerm_monitor_log_profile            \ azurerm_monitor_metric_alert +          \ azurerm_monitor_metric_alertrule            \ azurerm_mssql_elasticpool            \ azurerm_mysql_configuration            \ azurerm_mysql_database @@ -1342,6 +1655,7 @@ syn keyword terraResourceTypeBI            \ azurerm_mysql_virtual_network_rule            \ azurerm_network_interface            \ azurerm_network_interface_application_gateway_backend_address_pool_association +          \ azurerm_network_interface_application_security_group_association            \ azurerm_network_interface_backend_address_pool_association            \ azurerm_network_interface_nat_rule_association            \ azurerm_network_security_group @@ -1505,6 +1819,13 @@ syn keyword terraResourceTypeBI            \ circonus_metric_cluster            \ circonus_rule_set            \ circonus_worksheet +          \ ciscoasa_access_in_rules +          \ ciscoasa_access_out_rules +          \ ciscoasa_acl +          \ ciscoasa_network_object +          \ ciscoasa_network_object_group +          \ ciscoasa_network_service_group +          \ ciscoasa_static_route            \ clc_group            \ clc_load_balancer            \ clc_load_balancer_pool @@ -1523,6 +1844,7 @@ syn keyword terraResourceTypeBI            \ cloudflare_page_rule            \ cloudflare_rate_limit            \ cloudflare_record +          \ cloudflare_spectrum_application            \ cloudflare_waf_rule            \ cloudflare_worker_route            \ cloudflare_worker_script @@ -1572,6 +1894,7 @@ syn keyword terraResourceTypeBI            \ datadog_downtime            \ datadog_integration_aws            \ datadog_integration_gcp +          \ datadog_integration_pagerduty            \ datadog_metric_metadata            \ datadog_monitor            \ datadog_screenboard @@ -1588,6 +1911,7 @@ syn keyword terraResourceTypeBI            \ digitalocean_kubernetes_node_pool            \ digitalocean_loadbalancer            \ digitalocean_record +          \ digitalocean_spaces_bucket            \ digitalocean_ssh_key            \ digitalocean_tag            \ digitalocean_volume @@ -1597,8 +1921,10 @@ syn keyword terraResourceTypeBI            \ dns_a_record_set            \ dns_aaaa_record_set            \ dns_cname_record +          \ dns_mx_record_set            \ dns_ns_record_set            \ dns_ptr_record +          \ dns_txt_record_set            \ dnsimple_record            \ docker_config            \ docker_container @@ -1614,6 +1940,8 @@ syn keyword terraResourceTypeBI            \ flexibleengine_as_group_v1            \ flexibleengine_as_policy_v1            \ flexibleengine_blockstorage_volume_v2 +          \ flexibleengine_cce_cluster_v3 +          \ flexibleengine_cce_node_v3            \ flexibleengine_ces_alarmrule            \ flexibleengine_compute_bms_server_v2            \ flexibleengine_compute_floatingip_associate_v2 @@ -1640,6 +1968,8 @@ syn keyword terraResourceTypeBI            \ flexibleengine_fw_rule_v2            \ flexibleengine_images_image_v2            \ flexibleengine_lb_certificate_v2 +          \ flexibleengine_lb_l7policy_v2 +          \ flexibleengine_lb_l7rule_v2            \ flexibleengine_lb_listener_v2            \ flexibleengine_lb_loadbalancer_v2            \ flexibleengine_lb_member_v2 @@ -1664,6 +1994,7 @@ syn keyword terraResourceTypeBI            \ flexibleengine_networking_vip_v2            \ flexibleengine_rds_instance_v1            \ flexibleengine_rts_software_config_v1 +          \ flexibleengine_rts_stack_resource_v1            \ flexibleengine_rts_stack_v1            \ flexibleengine_s3_bucket            \ flexibleengine_s3_bucket_object @@ -1701,7 +2032,9 @@ syn keyword terraResourceTypeBI            \ gitlab_group_membership            \ gitlab_group_variable            \ gitlab_label +          \ gitlab_pipeline_trigger            \ gitlab_project +          \ gitlab_project_cluster            \ gitlab_project_hook            \ gitlab_project_membership            \ gitlab_project_variable @@ -1710,12 +2043,17 @@ syn keyword terraResourceTypeBI            \ google_access_context_manager_access_policy            \ google_access_context_manager_service_perimeter            \ google_app_engine_application +          \ google_app_engine_firewall_rule            \ google_bigquery_dataset            \ google_bigquery_table            \ google_bigtable_instance            \ google_bigtable_table +          \ google_billing_account_iam_binding +          \ google_billing_account_iam_member +          \ google_billing_account_iam_policy            \ google_binary_authorization_attestor            \ google_binary_authorization_policy +          \ google_cloud_scheduler_job            \ google_cloudbuild_trigger            \ google_cloudfunctions_function            \ google_cloudiot_registry @@ -1740,6 +2078,7 @@ syn keyword terraResourceTypeBI            \ google_compute_instance_group_manager            \ google_compute_instance_template            \ google_compute_interconnect_attachment +          \ google_compute_managed_ssl_certificate            \ google_compute_network            \ google_compute_network_peering            \ google_compute_project_metadata @@ -1760,6 +2099,9 @@ syn keyword terraResourceTypeBI            \ google_compute_ssl_certificate            \ google_compute_ssl_policy            \ google_compute_subnetwork +          \ google_compute_subnetwork_iam_binding +          \ google_compute_subnetwork_iam_member +          \ google_compute_subnetwork_iam_policy            \ google_compute_target_http_proxy            \ google_compute_target_https_proxy            \ google_compute_target_pool @@ -1779,44 +2121,80 @@ syn keyword terraResourceTypeBI            \ google_endpoints_service            \ google_filestore_instance            \ google_folder +          \ google_folder_iam_binding +          \ google_folder_iam_member +          \ google_folder_iam_policy            \ google_folder_organization_policy            \ google_kms_crypto_key +          \ google_kms_crypto_key_iam_binding +          \ google_kms_crypto_key_iam_member            \ google_kms_key_ring +          \ google_kms_key_ring_iam_binding +          \ google_kms_key_ring_iam_member +          \ google_kms_key_ring_iam_policy +          \ google_logging_billing_account_exclusion            \ google_logging_billing_account_sink +          \ google_logging_folder_exclusion            \ google_logging_folder_sink +          \ google_logging_organization_exclusion            \ google_logging_organization_sink +          \ google_logging_project_exclusion            \ google_logging_project_sink            \ google_monitoring_alert_policy            \ google_monitoring_group            \ google_monitoring_notification_channel            \ google_monitoring_uptime_check_config +          \ google_organization_iam_binding            \ google_organization_iam_custom_role +          \ google_organization_iam_member +          \ google_organization_iam_policy            \ google_organization_policy            \ google_project +          \ google_project_iam_audit_config +          \ google_project_iam_binding            \ google_project_iam_custom_role +          \ google_project_iam_member            \ google_project_iam_policy            \ google_project_organization_policy            \ google_project_service            \ google_project_services            \ google_project_usage_export_bucket            \ google_pubsub_subscription +          \ google_pubsub_subscription_iam_binding +          \ google_pubsub_subscription_iam_member +          \ google_pubsub_subscription_iam_policy            \ google_pubsub_topic +          \ google_pubsub_topic_iam_binding +          \ google_pubsub_topic_iam_member +          \ google_pubsub_topic_iam_policy            \ google_redis_instance            \ google_resource_manager_lien            \ google_runtimeconfig_config            \ google_runtimeconfig_variable            \ google_service_account +          \ google_service_account_iam_binding +          \ google_service_account_iam_member +          \ google_service_account_iam_policy            \ google_service_account_key            \ google_service_networking_connection            \ google_sourcerepo_repository            \ google_spanner_database +          \ google_spanner_database_iam_binding +          \ google_spanner_database_iam_member +          \ google_spanner_database_iam_policy            \ google_spanner_instance +          \ google_spanner_instance_iam_binding +          \ google_spanner_instance_iam_member +          \ google_spanner_instance_iam_policy            \ google_sql_database            \ google_sql_database_instance            \ google_sql_ssl_cert            \ google_sql_user            \ google_storage_bucket            \ google_storage_bucket_acl +          \ google_storage_bucket_iam_binding +          \ google_storage_bucket_iam_member +          \ google_storage_bucket_iam_policy            \ google_storage_bucket_object            \ google_storage_default_object_access_control            \ google_storage_default_object_acl @@ -1824,6 +2202,11 @@ syn keyword terraResourceTypeBI            \ google_storage_object_access_control            \ google_storage_object_acl            \ google_storage_transfer_job +          \ grafana_alert_notification +          \ grafana_dashboard +          \ grafana_data_source +          \ grafana_folder +          \ grafana_organization            \ hcloud_floating_ip            \ hcloud_floating_ip_assignment            \ hcloud_rdns @@ -1875,11 +2258,13 @@ syn keyword terraResourceTypeBI            \ huaweicloud_csbs_backup_policy_v1            \ huaweicloud_csbs_backup_v1            \ huaweicloud_cts_tracker_v1 +          \ huaweicloud_dcs_instance_v1            \ huaweicloud_dms_group_v1            \ huaweicloud_dms_instance_v1            \ huaweicloud_dms_queue_v1            \ huaweicloud_dns_recordset_v2            \ huaweicloud_dns_zone_v2 +          \ huaweicloud_dws_cluster            \ huaweicloud_elb_backendecs            \ huaweicloud_elb_healthcheck            \ huaweicloud_elb_listener @@ -1888,15 +2273,27 @@ syn keyword terraResourceTypeBI            \ huaweicloud_fw_policy_v2            \ huaweicloud_fw_rule_v2            \ huaweicloud_iam_agency_v3 +          \ huaweicloud_identity_group_membership_v3 +          \ huaweicloud_identity_group_v3 +          \ huaweicloud_identity_project_v3 +          \ huaweicloud_identity_role_assignment_v3 +          \ huaweicloud_identity_user_v3            \ huaweicloud_images_image_v2            \ huaweicloud_kms_key_v1 +          \ huaweicloud_lb_l7policy_v2 +          \ huaweicloud_lb_l7rule_v2            \ huaweicloud_lb_listener_v2            \ huaweicloud_lb_loadbalancer_v2            \ huaweicloud_lb_member_v2            \ huaweicloud_lb_monitor_v2            \ huaweicloud_lb_pool_v2 +          \ huaweicloud_maas_task_v1 +          \ huaweicloud_mls_instance +          \ huaweicloud_mrs_cluster_v1 +          \ huaweicloud_mrs_job_v1            \ huaweicloud_nat_gateway_v2            \ huaweicloud_nat_snat_rule_v2 +          \ huaweicloud_networking_floatingip_associate_v2            \ huaweicloud_networking_floatingip_v2            \ huaweicloud_networking_network_v2            \ huaweicloud_networking_port_v2 @@ -1908,6 +2305,7 @@ syn keyword terraResourceTypeBI            \ huaweicloud_networking_subnet_v2            \ huaweicloud_rds_instance_v1            \ huaweicloud_rts_software_config_v1 +          \ huaweicloud_rts_stack_resource_v1            \ huaweicloud_rts_stack_v1            \ huaweicloud_s3_bucket            \ huaweicloud_s3_bucket_object @@ -1943,17 +2341,22 @@ syn keyword terraResourceTypeBI            \ influxdb_continuous_query            \ influxdb_database            \ influxdb_user +          \ kubernetes_cluster_role            \ kubernetes_cluster_role_binding            \ kubernetes_config_map +          \ kubernetes_daemonset            \ kubernetes_deployment            \ kubernetes_horizontal_pod_autoscaler            \ kubernetes_limit_range            \ kubernetes_namespace +          \ kubernetes_network_policy            \ kubernetes_persistent_volume            \ kubernetes_persistent_volume_claim            \ kubernetes_pod            \ kubernetes_replication_controller            \ kubernetes_resource_quota +          \ kubernetes_role +          \ kubernetes_role_binding            \ kubernetes_secret            \ kubernetes_service            \ kubernetes_service_account @@ -2006,6 +2409,15 @@ syn keyword terraResourceTypeBI            \ nomad_namespace            \ nomad_quota_specification            \ nomad_sentinel_policy +          \ ns1_apikey +          \ ns1_datafeed +          \ ns1_datasource +          \ ns1_monitoringjob +          \ ns1_notifylist +          \ ns1_record +          \ ns1_team +          \ ns1_user +          \ ns1_zone            \ nsxt_algorithm_type_ns_service            \ nsxt_dhcp_relay_profile            \ nsxt_dhcp_relay_service @@ -2061,6 +2473,7 @@ syn keyword terraResourceTypeBI            \ nsxt_spoofguard_switching_profile            \ nsxt_static_route            \ nsxt_switch_security_switching_profile +          \ nsxt_vlan_logical_switch            \ nsxt_vm_tags            \ null_resource            \ nutanix_category_key @@ -2070,6 +2483,114 @@ syn keyword terraResourceTypeBI            \ nutanix_subnet            \ nutanix_virtual_machine            \ nutanix_volume_group +          \ oci_audit_configuration +          \ oci_containerengine_cluster +          \ oci_containerengine_node_pool +          \ oci_core_app_catalog_listing_resource_version +          \ oci_core_app_catalog_listing_resource_version_agreement +          \ oci_core_app_catalog_listing_resource_versions +          \ oci_core_app_catalog_subscription +          \ oci_core_boot_volume +          \ oci_core_boot_volume_backup +          \ oci_core_console_history +          \ oci_core_cpe +          \ oci_core_cross_connect +          \ oci_core_cross_connect_group +          \ oci_core_default_dhcp_options +          \ oci_core_default_route_table +          \ oci_core_default_security_list +          \ oci_core_dhcp_options +          \ oci_core_drg +          \ oci_core_drg_attachment +          \ oci_core_image +          \ oci_core_instance +          \ oci_core_instance_configuration +          \ oci_core_instance_console_connection +          \ oci_core_instance_pool +          \ oci_core_internet_gateway +          \ oci_core_ipsec +          \ oci_core_listing_resource_version +          \ oci_core_listing_resource_version_agreement +          \ oci_core_listing_resource_versions +          \ oci_core_local_peering_gateway +          \ oci_core_nat_gateway +          \ oci_core_private_ip +          \ oci_core_public_ip +          \ oci_core_remote_peering_connection +          \ oci_core_route_table +          \ oci_core_route_table_attachment +          \ oci_core_security_list +          \ oci_core_service_gateway +          \ oci_core_subnet +          \ oci_core_vcn +          \ oci_core_virtual_circuit +          \ oci_core_vnic_attachment +          \ oci_core_volume +          \ oci_core_volume_attachment +          \ oci_core_volume_backup +          \ oci_core_volume_backup_policy_assignment +          \ oci_core_volume_group +          \ oci_core_volume_group_backup +          \ oci_database_autonomous_data_warehouse +          \ oci_database_autonomous_data_warehouse_backup +          \ oci_database_autonomous_database +          \ oci_database_autonomous_database_backup +          \ oci_database_backup +          \ oci_database_db_home +          \ oci_database_db_system +          \ oci_dns_record +          \ oci_dns_steering_policy +          \ oci_dns_steering_policy_attachment +          \ oci_dns_zone +          \ oci_email_sender +          \ oci_email_suppression +          \ oci_file_storage_export +          \ oci_file_storage_export_set +          \ oci_file_storage_file_system +          \ oci_file_storage_mount_target +          \ oci_file_storage_snapshot +          \ oci_health_checks_http_monitor +          \ oci_health_checks_http_probe +          \ oci_health_checks_ping_monitor +          \ oci_health_checks_ping_probe +          \ oci_identity_api_key +          \ oci_identity_auth_token +          \ oci_identity_compartment +          \ oci_identity_customer_secret_key +          \ oci_identity_dynamic_group +          \ oci_identity_group +          \ oci_identity_identity_provider +          \ oci_identity_idp_group_mapping +          \ oci_identity_policy +          \ oci_identity_smtp_credential +          \ oci_identity_swift_password +          \ oci_identity_tag +          \ oci_identity_tag_namespace +          \ oci_identity_ui_password +          \ oci_identity_user +          \ oci_identity_user_capabilities_management +          \ oci_identity_user_group_membership +          \ oci_kms_encrypted_data +          \ oci_kms_generated_key +          \ oci_kms_key +          \ oci_kms_key_version +          \ oci_kms_vault +          \ oci_load_balancer +          \ oci_load_balancer_backend +          \ oci_load_balancer_backend_set +          \ oci_load_balancer_backendset +          \ oci_load_balancer_certificate +          \ oci_load_balancer_hostname +          \ oci_load_balancer_listener +          \ oci_load_balancer_load_balancer +          \ oci_load_balancer_path_route_set +          \ oci_load_balancer_rule_set +          \ oci_objectstorage_bucket +          \ oci_objectstorage_namespace_metadata +          \ oci_objectstorage_object +          \ oci_objectstorage_object_lifecycle_policy +          \ oci_objectstorage_preauthrequest +          \ oci_streaming_stream            \ oneandone_baremetal            \ oneandone_block_storage            \ oneandone_firewall_policy @@ -2143,6 +2664,7 @@ syn keyword terraResourceTypeBI            \ openstack_fw_firewall_v1            \ openstack_fw_policy_v1            \ openstack_fw_rule_v1 +          \ openstack_identity_application_credential_v3            \ openstack_identity_project_v3            \ openstack_identity_role_assignment_v3            \ openstack_identity_role_v3 @@ -2159,9 +2681,11 @@ syn keyword terraResourceTypeBI            \ openstack_lb_pool_v1            \ openstack_lb_pool_v2            \ openstack_lb_vip_v1 +          \ openstack_networking_addressscope_v2            \ openstack_networking_floatingip_associate_v2            \ openstack_networking_floatingip_v2            \ openstack_networking_network_v2 +          \ openstack_networking_port_secgroup_associate_v2            \ openstack_networking_port_v2            \ openstack_networking_router_interface_v2            \ openstack_networking_router_route_v2 @@ -2176,6 +2700,8 @@ syn keyword terraResourceTypeBI            \ openstack_objectstorage_object_v1            \ openstack_objectstorage_tempurl_v1            \ openstack_sharedfilesystem_securityservice_v2 +          \ openstack_sharedfilesystem_share_access_v2 +          \ openstack_sharedfilesystem_share_v2            \ openstack_sharedfilesystem_sharenetwork_v2            \ openstack_vpnaas_endpoint_group_v2            \ openstack_vpnaas_ike_policy_v2 @@ -2215,6 +2741,13 @@ syn keyword terraResourceTypeBI            \ opentelekomcloud_fw_firewall_group_v2            \ opentelekomcloud_fw_policy_v2            \ opentelekomcloud_fw_rule_v2 +          \ opentelekomcloud_identity_agency_v3 +          \ opentelekomcloud_identity_group_membership_v3 +          \ opentelekomcloud_identity_group_v3 +          \ opentelekomcloud_identity_project_v3 +          \ opentelekomcloud_identity_role_assignment_v3 +          \ opentelekomcloud_identity_role_v3 +          \ opentelekomcloud_identity_user_v3            \ opentelekomcloud_images_image_v2            \ opentelekomcloud_kms_key_v1            \ opentelekomcloud_lb_listener_v2 @@ -2242,6 +2775,7 @@ syn keyword terraResourceTypeBI            \ opentelekomcloud_rds_instance_v1            \ opentelekomcloud_rts_software_config_v1            \ opentelekomcloud_rts_software_deployment_v1 +          \ opentelekomcloud_rts_stack_resource_v1            \ opentelekomcloud_rts_stack_v1            \ opentelekomcloud_s3_bucket            \ opentelekomcloud_s3_bucket_object @@ -2284,13 +2818,16 @@ syn keyword terraResourceTypeBI            \ ovh_publiccloud_user            \ ovh_vrack_cloudproject            \ ovh_vrack_publiccloud_attachment +          \ packet_bgp_session            \ packet_device            \ packet_ip_attachment            \ packet_organization            \ packet_project +          \ packet_project_ssh_key            \ packet_reserved_ip_block            \ packet_spot_market_request            \ packet_ssh_key +          \ packet_vlan            \ packet_volume            \ packet_volume_attachment            \ pagerduty_addon @@ -2307,6 +2844,21 @@ syn keyword terraResourceTypeBI            \ panos_address_group            \ panos_address_object            \ panos_administrative_tag +          \ panos_bfd_profile +          \ panos_bgp +          \ panos_bgp_aggregate +          \ panos_bgp_aggregate_advertise_filter +          \ panos_bgp_aggregate_suppress_filter +          \ panos_bgp_auth_profile +          \ panos_bgp_conditional_adv +          \ panos_bgp_conditional_adv_advertise_filter +          \ panos_bgp_conditional_adv_non_exist_filter +          \ panos_bgp_dampening_profile +          \ panos_bgp_export_rule_group +          \ panos_bgp_import_rule_group +          \ panos_bgp_peer +          \ panos_bgp_peer_group +          \ panos_bgp_redist_rule            \ panos_dag_tags            \ panos_edl            \ panos_ethernet_interface @@ -2322,9 +2874,25 @@ syn keyword terraResourceTypeBI            \ panos_management_profile            \ panos_nat_policy            \ panos_nat_rule +          \ panos_nat_rule_group            \ panos_panorama_address_group            \ panos_panorama_address_object            \ panos_panorama_administrative_tag +          \ panos_panorama_bfd_profile +          \ panos_panorama_bgp +          \ panos_panorama_bgp_aggregate +          \ panos_panorama_bgp_aggregate_advertise_filter +          \ panos_panorama_bgp_aggregate_suppress_filter +          \ panos_panorama_bgp_auth_profile +          \ panos_panorama_bgp_conditional_adv +          \ panos_panorama_bgp_conditional_adv_advertise_filter +          \ panos_panorama_bgp_conditional_adv_non_exist_filter +          \ panos_panorama_bgp_dampening_profile +          \ panos_panorama_bgp_export_rule_group +          \ panos_panorama_bgp_import_rule_group +          \ panos_panorama_bgp_peer +          \ panos_panorama_bgp_peer_group +          \ panos_panorama_bgp_redist_rule            \ panos_panorama_device_group            \ panos_panorama_device_group_entry            \ panos_panorama_edl @@ -2338,6 +2906,8 @@ syn keyword terraResourceTypeBI            \ panos_panorama_management_profile            \ panos_panorama_nat_policy            \ panos_panorama_nat_rule +          \ panos_panorama_nat_rule_group +          \ panos_panorama_redistribution_profile_ipv4            \ panos_panorama_security_policies            \ panos_panorama_security_policy            \ panos_panorama_security_policy_group @@ -2356,6 +2926,7 @@ syn keyword terraResourceTypeBI            \ panos_panorama_vlan_interface            \ panos_panorama_zone            \ panos_panorama_zone_entry +          \ panos_redistribution_profile_ipv4            \ panos_security_policies            \ panos_security_policy            \ panos_security_policy_group @@ -2383,6 +2954,7 @@ syn keyword terraResourceTypeBI            \ profitbricks_lan            \ profitbricks_loadbalancer            \ profitbricks_nic +          \ profitbricks_resource            \ profitbricks_server            \ profitbricks_share            \ profitbricks_snapshot @@ -2444,13 +3016,16 @@ syn keyword terraResourceTypeBI            \ scaleway_user_data            \ scaleway_volume            \ scaleway_volume_attachment -          \ selvpc_resell_floatingip_v2 -          \ selvpc_resell_license_v2 -          \ selvpc_resell_project_v2 -          \ selvpc_resell_role_v2 -          \ selvpc_resell_subnet_v2 -          \ selvpc_resell_token_v2 -          \ selvpc_resell_user_v2 +          \ selectel_vpc_crossregion_subnet_v2 +          \ selectel_vpc_floatingip_v2 +          \ selectel_vpc_keypair_v2 +          \ selectel_vpc_license_v2 +          \ selectel_vpc_project_v2 +          \ selectel_vpc_role_v2 +          \ selectel_vpc_subnet_v2 +          \ selectel_vpc_token_v2 +          \ selectel_vpc_user_v2 +          \ selectel_vpc_vrrp_subnet_v2            \ skytap_environment            \ skytap_network            \ skytap_project @@ -2458,11 +3033,13 @@ syn keyword terraResourceTypeBI            \ softlayer_ssh_key            \ softlayer_virtual_guest            \ statuscake_test +          \ telefonicaopencloud_antiddos_v1            \ telefonicaopencloud_as_configuration_v1            \ telefonicaopencloud_as_group_v1            \ telefonicaopencloud_as_policy_v1            \ telefonicaopencloud_blockstorage_volume_v2            \ telefonicaopencloud_ces_alarmrule +          \ telefonicaopencloud_compute_bms_server_v2            \ telefonicaopencloud_compute_floatingip_associate_v2            \ telefonicaopencloud_compute_floatingip_v2            \ telefonicaopencloud_compute_instance_v2 @@ -2472,6 +3049,10 @@ syn keyword terraResourceTypeBI            \ telefonicaopencloud_compute_volume_attach_v2            \ telefonicaopencloud_csbs_backup_policy_v1            \ telefonicaopencloud_csbs_backup_v1 +          \ telefonicaopencloud_cts_tracker_v1 +          \ telefonicaopencloud_dcs_instance_v1 +          \ telefonicaopencloud_dms_group_v1 +          \ telefonicaopencloud_dms_queue_v1            \ telefonicaopencloud_dns_recordset_v2            \ telefonicaopencloud_dns_zone_v2            \ telefonicaopencloud_elb_backendecs @@ -2481,6 +3062,9 @@ syn keyword terraResourceTypeBI            \ telefonicaopencloud_fw_firewall_group_v2            \ telefonicaopencloud_fw_policy_v2            \ telefonicaopencloud_fw_rule_v2 +          \ telefonicaopencloud_maas_task_v1 +          \ telefonicaopencloud_mrs_cluster_v1 +          \ telefonicaopencloud_mrs_job_v1            \ telefonicaopencloud_networking_floatingip_v2            \ telefonicaopencloud_networking_network_v2            \ telefonicaopencloud_networking_port_v2 @@ -2492,6 +3076,7 @@ syn keyword terraResourceTypeBI            \ telefonicaopencloud_networking_subnet_v2            \ telefonicaopencloud_rds_instance_v1            \ telefonicaopencloud_rts_software_config_v1 +          \ telefonicaopencloud_rts_stack_resource_v1            \ telefonicaopencloud_rts_stack_v1            \ telefonicaopencloud_s3_bucket            \ telefonicaopencloud_s3_bucket_object @@ -2499,7 +3084,11 @@ syn keyword terraResourceTypeBI            \ telefonicaopencloud_sfs_file_system_v2            \ telefonicaopencloud_smn_subscription_v2            \ telefonicaopencloud_smn_topic_v2 +          \ telefonicaopencloud_vbs_backup_policy_v2 +          \ telefonicaopencloud_vbs_backup_v2            \ telefonicaopencloud_vpc_eip_v1 +          \ telefonicaopencloud_vpc_peering_connection_accepter_v2 +          \ telefonicaopencloud_vpc_peering_connection_v2            \ telefonicaopencloud_vpc_subnet_v1            \ telefonicaopencloud_vpc_v1            \ template_dir @@ -2522,6 +3111,7 @@ syn keyword terraResourceTypeBI            \ tencentcloud_security_group_rule            \ tencentcloud_subnet            \ tencentcloud_vpc +          \ tfe_oauth_client            \ tfe_organization            \ tfe_organization_token            \ tfe_policy_set @@ -2557,6 +3147,7 @@ syn keyword terraResourceTypeBI            \ ucloud_lb_rule            \ ucloud_security_group            \ ucloud_subnet +          \ ucloud_udpn_connection            \ ucloud_vpc            \ ucloud_vpc_peering_connection            \ ultradns_dirpool @@ -2565,10 +3156,77 @@ syn keyword terraResourceTypeBI            \ ultradns_rdpool            \ ultradns_record            \ ultradns_tcpool +          \ vault_approle_auth_backend_login +          \ vault_approle_auth_backend_role +          \ vault_approle_auth_backend_role_secret_id +          \ vault_audit +          \ vault_auth_backend +          \ vault_aws_auth_backend_cert +          \ vault_aws_auth_backend_client +          \ vault_aws_auth_backend_identity_whitelist +          \ vault_aws_auth_backend_login +          \ vault_aws_auth_backend_role +          \ vault_aws_auth_backend_role_tag +          \ vault_aws_auth_backend_roletag_blacklist +          \ vault_aws_auth_backend_sts_role +          \ vault_aws_secret_backend +          \ vault_aws_secret_backend_role +          \ vault_azure_auth_backend_config +          \ vault_azure_auth_backend_role +          \ vault_cert_auth_backend_role +          \ vault_consul_secret_backend +          \ vault_database_secret_backend_connection +          \ vault_database_secret_backend_role +          \ vault_egp_policy +          \ vault_gcp_auth_backend +          \ vault_gcp_auth_backend_role +          \ vault_gcp_secret_backend +          \ vault_generic_secret +          \ vault_github_auth_backend +          \ vault_github_team +          \ vault_github_user +          \ vault_identity_entity +          \ vault_identity_entity_alias +          \ vault_identity_group +          \ vault_identity_group_alias +          \ vault_jwt_auth_backend +          \ vault_jwt_auth_backend_role +          \ vault_kubernetes_auth_backend_config +          \ vault_kubernetes_auth_backend_role +          \ vault_ldap_auth_backend +          \ vault_ldap_auth_backend_group +          \ vault_ldap_auth_backend_user +          \ vault_mount +          \ vault_okta_auth_backend +          \ vault_okta_auth_backend_group +          \ vault_okta_auth_backend_user +          \ vault_pki_secret_backend +          \ vault_pki_secret_backend_cert +          \ vault_pki_secret_backend_config_ca +          \ vault_pki_secret_backend_intermediate_cert_request +          \ vault_pki_secret_backend_intermediate_set_signed +          \ vault_pki_secret_backend_role +          \ vault_pki_secret_backend_root_cert +          \ vault_pki_secret_backend_root_sign_intermediate +          \ vault_pki_secret_backend_sign +          \ vault_policy +          \ vault_rabbitmq_secret_backend +          \ vault_rabbitmq_secret_backend_role +          \ vault_rgp_policy +          \ vault_ssh_secret_backend_ca +          \ vault_ssh_secret_backend_role +          \ vault_token_auth_backend_role +          \ vcd_catalog +          \ vcd_catalog_item +          \ vcd_catalog_media            \ vcd_dnat            \ vcd_edgegateway_vpn            \ vcd_firewall_rules -          \ vcd_network +          \ vcd_inserted_media +          \ vcd_network_direct +          \ vcd_network_isolated +          \ vcd_network_routed +          \ vcd_org            \ vcd_snat            \ vcd_vapp            \ vcd_vapp_vm @@ -2604,6 +3262,24 @@ syn keyword terraResourceTypeBI            \ vsphere_virtual_machine            \ vsphere_virtual_machine_snapshot            \ vsphere_vmfs_datastore +          \ yandex_compute_disk +          \ yandex_compute_image +          \ yandex_compute_instance +          \ yandex_compute_snapshot +          \ yandex_iam_service_account +          \ yandex_iam_service_account_iam_binding +          \ yandex_iam_service_account_iam_member +          \ yandex_iam_service_account_iam_policy +          \ yandex_iam_service_account_static_access_key +          \ yandex_resourcemanager_cloud +          \ yandex_resourcemanager_cloud_iam_binding +          \ yandex_resourcemanager_cloud_iam_member +          \ yandex_resourcemanager_folder +          \ yandex_resourcemanager_folder_iam_binding +          \ yandex_resourcemanager_folder_iam_member +          \ yandex_resourcemanager_folder_iam_policy +          \ yandex_vpc_network +          \ yandex_vpc_subnet  """ end resources  syn keyword terraTodo         contained TODO FIXME XXX BUG diff --git a/syntax/vifm.vim b/syntax/vifm.vim index 128fa1ed..00099e1c 100644 --- a/syntax/vifm.vim +++ b/syntax/vifm.vim @@ -2,7 +2,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vifm') == -1  " vifm syntax file  " Maintainer:  xaizek <xaizek@posteo.net> -" Last Change: December 19, 2018 +" Last Change: January 31, 2019  " Inspired By: Vim syntax file by Dr. Charles E. Campbell, Jr.  if exists('b:current_syntax') @@ -132,11 +132,11 @@ syntax keyword vifmOption contained aproposprg autochpos caseoptions cdpath cd  		\ lsoptions lsview mediaprg milleroptions millerview mintimeoutlen number nu  		\ numberwidth nuw previewprg quickview relativenumber rnu rulerformat ruf  		\ runexec scrollbind scb scrolloff so sort sortgroups sortorder sortnumbers -		\ shell sh shortmess shm showtabline stal sizefmt slowfs smartcase scs -		\ statusline stl suggestoptions syncregs syscalls tabscope tabstop timefmt -		\ timeoutlen title tm trash trashdir ts tuioptions to undolevels ul vicmd -		\ viewcolumns vifminfo vimhelp vixcmd wildmenu wmnu wildstyle wordchars wrap -		\ wrapscan ws +		\ shell sh shellflagcmd shcf shortmess shm showtabline stal sizefmt slowfs +		\ smartcase scs statusline stl suggestoptions syncregs syscalls tabscope +		\ tabstop timefmt timeoutlen title tm trash trashdir ts tuioptions to +		\ undolevels ul vicmd viewcolumns vifminfo vimhelp vixcmd wildmenu wmnu +		\ wildstyle wordchars wrap wrapscan ws  " Disabled boolean options  syntax keyword vifmOption contained noautochpos nocf nochaselinks nodotfiles | 
