This commit is contained in:
Adam Stankiewicz
2019-09-04 15:44:43 +02:00
parent 3ddca5da46
commit 664aa988f6
49 changed files with 1663 additions and 1512 deletions

View File

@@ -83,6 +83,10 @@ fu! IsStyledDefinition(lnum)
endfu
if exists('&ofu')
let b:prevofu=&ofu
if &ofu
" Do not keep track of previous omnifunc if it was not set in the first
" place
let b:prevofu=&ofu
endif
setl omnifunc=styledcomplete#CompleteSC
endif

View File

@@ -25,3 +25,7 @@ augroup jsx_comment
augroup end
setlocal suffixesadd+=.tsx
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'styled-components') != -1
finish
endif

View File

@@ -2,172 +2,4 @@ if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'styled-component
finish
endif
" Vim syntax file
" Language: styled-components (js/ts)
" Maintainer: Karl Fleischmann <fleischmann.karl@gmail.com>
" URL: https://github.com/styled-components/vim-styled-components
" initialize variable to check, if the indentation expression is run
" multiple times in a row, which indicates an infinite recursion
let s:is_recursion = 0
" store current indentexpr for later
let b:js_ts_indent=&indentexpr
" set indentexpr for this filetype (styled-components)
setlocal indentexpr=GetStyledIndent()
" add the following keys to trigger reindenting, when in insert mode
" - *; - Indent and insert on press of ';' key.
" - *<:> - Indent and insert on press of ':' key.
set indentkeys+=*;,*<:>,*<Return>
fu! s:GetSyntaxNames(lnum, cnum)
return map(synstack(a:lnum, a:cnum), 'synIDattr(v:val, "name")')
endfu
" re-implement SynSOL of vim-jsx
" TODO: add dependency to the readme and remove duplicate implementation
fu! s:SynSOL(lnum)
return s:GetSyntaxNames(a:lnum, 1)
endfu
" re-implement SynEOL of vim-jsx
" TODO: add dependency to the readme and remove duplicate implementation
fu! s:SynEOL(lnum, offset)
let l:lnum = prevnonblank(a:lnum)
let l:col = strlen(getline(l:lnum))
return s:GetSyntaxNames(l:lnum, l:col + a:offset)
endfu
"" Return whether the current line is a jsTemplateString
fu! s:IsStyledDefinition(lnum)
" iterate through all syntax items in the given line
for item in s:SynSOL(a:lnum)
" if syntax-item is a jsTemplateString return 1 - true
" `==#` is a match case comparison of the item
if item ==# 'styledDefinition'
return 1
endif
endfor
" fallback to 0 - false
return 0
endfu
"" Count occurences of `str` at the beginning of the given `lnum` line
fu! s:CountOccurencesInSOL(lnum, str)
let l:occurence = 0
" iterate through all items in the given line
for item in s:SynSOL(a:lnum)
" if the syntax-item equals the given str increment the counter
" `==?` is a case isensitive equal operation
if item ==? a:str
let l:occurence += 1
endif
endfor
" return the accumulated count of occurences
return l:occurence
endfu
"" Count occurences of `str` at the end of the given `lnum` line
fu! s:CountOccurencesInEOL(lnum, str, offset)
let l:occurence = 0
" iterate through all items in the given line
for item in s:SynEOL(a:lnum, a:offset)
" if the syntax-item equals the given str increment the counter
" `==?` is a case insensitive equal operation
if item == a:str
let l:occurence += 1
endif
endfor
" return the accumulated count of occurences
return l:occurence
endfu
"" Get the indentation of the current line
fu! GetStyledIndent()
if s:IsStyledDefinition(v:lnum)
let l:baseIndent = 0
" find last non-styled line
let l:cnum = v:lnum
while s:IsStyledDefinition(l:cnum)
let l:cnum -= 1
endwhile
" get indentation of the last non-styled line as base indentation
let l:baseIndent = indent(l:cnum)
" incrementally build indentation based on current indentation
" - one shiftwidth for the styled definition region
" - one shiftwidth per open nested definition region
let l:styledIndent = &sw
let l:styledIndent += min([
\ s:CountOccurencesInSOL(v:lnum, 'styledNestedRegion'),
\ s:CountOccurencesInEOL(v:lnum, 'styledNestedRegion', 0)
\ ]) * &sw
" decrease indentation by one shiftwidth, if the styled definition
" region ends on the current line
" - either directly via styled definition region, or
" - if the very last
if s:CountOccurencesInEOL(v:lnum, 'styledDefinition', 1) == 0
let l:styledIndent -= &sw
endif
" return the base indentation
" (for nested styles inside classes/objects/etc.) plus the actual
" indentation inside the styled definition region
return l:baseIndent + l:styledIndent
elseif len(b:js_ts_indent)
let l:result = 0
let l:offset = 0
" increase indentation by one shiftwidth, if the last line ended on a
" styledXmlRegion and this line does not continue with it
" this is a fix for an incorrectly indented xml prop after a
" glamor-styled styledXmlRegion
if s:CountOccurencesInEOL(v:lnum-1, 'styledXmlRegion', 0) == 1 &&
\ s:CountOccurencesInSOL(v:lnum, 'styledXmlRegion') == 0
let l:offset = &sw
endif
" make sure `GetStyledIndent` and `GetJsxIndent` don't infinitely
" recurse by incrementing a counter variable, before evaluating the
" stored indent expression
if s:is_recursion == 0
let s:is_recursion = 1
let l:result = eval(b:js_ts_indent)
endif
" `is_recursion` being 0 at this point indicates, that
" `eval(b:js_ts_indent)` did itself evaluate it's stored indentexpr
" and thus it can be assumed, that the current line should be
" indented as JS
if s:is_recursion == 0
" use one of `GetJavascriptIndent` or `GetJsIndent` if existing
" fallback to cindent, if not
if exists('*GetJavascriptIndent')
let l:result = GetJavascriptIndent()
elseif exists('*GetJsIndent')
let l:result = GetJsIndent()
else
let l:result = cindent(v:lnum)
endif
endif
" reset `is_recursion` counter and return the indentation value
let s:is_recursion = 0
return l:result + l:offset
endif
" if all else fails indent according to C-syntax
return cindent(v:lnum)
endfu
runtime! indent/javascript.vim

View File

@@ -36,172 +36,4 @@ if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'styled-component
finish
endif
" Vim syntax file
" Language: styled-components (js/ts)
" Maintainer: Karl Fleischmann <fleischmann.karl@gmail.com>
" URL: https://github.com/styled-components/vim-styled-components
" initialize variable to check, if the indentation expression is run
" multiple times in a row, which indicates an infinite recursion
let s:is_recursion = 0
" store current indentexpr for later
let b:js_ts_indent=&indentexpr
" set indentexpr for this filetype (styled-components)
setlocal indentexpr=GetStyledIndent()
" add the following keys to trigger reindenting, when in insert mode
" - *; - Indent and insert on press of ';' key.
" - *<:> - Indent and insert on press of ':' key.
set indentkeys+=*;,*<:>,*<Return>
fu! s:GetSyntaxNames(lnum, cnum)
return map(synstack(a:lnum, a:cnum), 'synIDattr(v:val, "name")')
endfu
" re-implement SynSOL of vim-jsx
" TODO: add dependency to the readme and remove duplicate implementation
fu! s:SynSOL(lnum)
return s:GetSyntaxNames(a:lnum, 1)
endfu
" re-implement SynEOL of vim-jsx
" TODO: add dependency to the readme and remove duplicate implementation
fu! s:SynEOL(lnum, offset)
let l:lnum = prevnonblank(a:lnum)
let l:col = strlen(getline(l:lnum))
return s:GetSyntaxNames(l:lnum, l:col + a:offset)
endfu
"" Return whether the current line is a jsTemplateString
fu! s:IsStyledDefinition(lnum)
" iterate through all syntax items in the given line
for item in s:SynSOL(a:lnum)
" if syntax-item is a jsTemplateString return 1 - true
" `==#` is a match case comparison of the item
if item ==# 'styledDefinition'
return 1
endif
endfor
" fallback to 0 - false
return 0
endfu
"" Count occurences of `str` at the beginning of the given `lnum` line
fu! s:CountOccurencesInSOL(lnum, str)
let l:occurence = 0
" iterate through all items in the given line
for item in s:SynSOL(a:lnum)
" if the syntax-item equals the given str increment the counter
" `==?` is a case isensitive equal operation
if item ==? a:str
let l:occurence += 1
endif
endfor
" return the accumulated count of occurences
return l:occurence
endfu
"" Count occurences of `str` at the end of the given `lnum` line
fu! s:CountOccurencesInEOL(lnum, str, offset)
let l:occurence = 0
" iterate through all items in the given line
for item in s:SynEOL(a:lnum, a:offset)
" if the syntax-item equals the given str increment the counter
" `==?` is a case insensitive equal operation
if item == a:str
let l:occurence += 1
endif
endfor
" return the accumulated count of occurences
return l:occurence
endfu
"" Get the indentation of the current line
fu! GetStyledIndent()
if s:IsStyledDefinition(v:lnum)
let l:baseIndent = 0
" find last non-styled line
let l:cnum = v:lnum
while s:IsStyledDefinition(l:cnum)
let l:cnum -= 1
endwhile
" get indentation of the last non-styled line as base indentation
let l:baseIndent = indent(l:cnum)
" incrementally build indentation based on current indentation
" - one shiftwidth for the styled definition region
" - one shiftwidth per open nested definition region
let l:styledIndent = &sw
let l:styledIndent += min([
\ s:CountOccurencesInSOL(v:lnum, 'styledNestedRegion'),
\ s:CountOccurencesInEOL(v:lnum, 'styledNestedRegion', 0)
\ ]) * &sw
" decrease indentation by one shiftwidth, if the styled definition
" region ends on the current line
" - either directly via styled definition region, or
" - if the very last
if s:CountOccurencesInEOL(v:lnum, 'styledDefinition', 1) == 0
let l:styledIndent -= &sw
endif
" return the base indentation
" (for nested styles inside classes/objects/etc.) plus the actual
" indentation inside the styled definition region
return l:baseIndent + l:styledIndent
elseif len(b:js_ts_indent)
let l:result = 0
let l:offset = 0
" increase indentation by one shiftwidth, if the last line ended on a
" styledXmlRegion and this line does not continue with it
" this is a fix for an incorrectly indented xml prop after a
" glamor-styled styledXmlRegion
if s:CountOccurencesInEOL(v:lnum-1, 'styledXmlRegion', 0) == 1 &&
\ s:CountOccurencesInSOL(v:lnum, 'styledXmlRegion') == 0
let l:offset = &sw
endif
" make sure `GetStyledIndent` and `GetJsxIndent` don't infinitely
" recurse by incrementing a counter variable, before evaluating the
" stored indent expression
if s:is_recursion == 0
let s:is_recursion = 1
let l:result = eval(b:js_ts_indent)
endif
" `is_recursion` being 0 at this point indicates, that
" `eval(b:js_ts_indent)` did itself evaluate it's stored indentexpr
" and thus it can be assumed, that the current line should be
" indented as JS
if s:is_recursion == 0
" use one of `GetJavascriptIndent` or `GetJsIndent` if existing
" fallback to cindent, if not
if exists('*GetJavascriptIndent')
let l:result = GetJavascriptIndent()
elseif exists('*GetJsIndent')
let l:result = GetJsIndent()
else
let l:result = cindent(v:lnum)
endif
endif
" reset `is_recursion` counter and return the indentation value
let s:is_recursion = 0
return l:result + l:offset
endif
" if all else fails indent according to C-syntax
return cindent(v:lnum)
endfu
runtime! indent/javascript.vim

View File

@@ -54,9 +54,7 @@ else " build-in javascript syntax
syntax region javaScriptEmbed matchgroup=javaScriptEmbedBraces start=+\${+ end=+}+ contained contains=@javaScriptEmbededExpr,javaScript.*
endif
" because this is autoloaded, when developing you're going to need to source
" the autoload/jsx_pretty/*.vim file manually, or restart vim
call jsx_pretty#syntax#highlight()
runtime syntax/jsx_pretty.vim
let b:current_syntax = 'javascript.jsx'
@@ -169,55 +167,16 @@ syn match styledPrefix "\<styled\>\.\k\+"
\ transparent fold
\ nextgroup=styledDefinition
\ contains=cssTagName,javascriptTagRef
\ containedin=jsFuncBlock
\ containedin=jsFuncBlock,jsParen,jsObject,jsObjectValue
syn match styledPrefix "\.\<attrs\>\s*(\%(\n\|\s\|.\)\{-})"
\ transparent fold extend
\ nextgroup=styledDefinition
\ contains=jsObject,jsParen
\ containedin=jsFuncBlock
\ containedin=jsFuncBlock,jsParen,jsObject,jsObjectValue
syn match styledPrefix "\.\<extend\>"
\ transparent fold
\ nextgroup=styledDefinition
\ containedin=jsFuncBlock
" define custom API section, that contains typescript annotations
" this is structurally similar to `jsFuncCall`, but allows type
" annotations (delimited by brackets (e.g. "<>")) between `styled` and
" the function call parenthesis
syn match styledTypescriptPrefix
\ "\<styled\><\%(\[\|\]\|{\|}\||\|&\|:\|;\|,\|?\|'\|\"\|\k\|\s\|\n\)\+>(\%('\k\+'\|\"\k\+\"\|\k\+\))"
\ transparent fold
\ nextgroup=styledDefinition
\ contains=cssTagName,
\ typescriptBraces,typescriptOpSymbols,typescriptEndColons,
\ typescriptParens,typescriptStringS,@typescriptType,
\ typescriptType,
\ styledTagNameString
syn match styledTypescriptPrefix
\ "\<styled\>\%((\%('\k\+'\|\"\k\+\"\|\k\+\))\|\.\k\+\)<\%(\[\|\]\|{\|}\||\|&\|:\|;\|,\|?\|'\|\"\|\k\|\s\|\n\)\+>"
\ transparent fold
\ nextgroup=styledDefinition
\ contains=cssTagName,
\ typescriptBraces,typescriptOpSymbols,typescriptEndColons,
\ typescriptParens,typescriptStringS,@typescriptType,
\ typescriptType,
\ styledTagNameString
syn match styledTypescriptPrefix "\.\<attrs\>\s*(\%(\n\|\s\|.\)\{-})<\%(\[\|\]\|{\|}\||\|&\|:\|;\|,\|?\|'\|\"\|\k\|\s\|\n\)\+>"
\ transparent fold extend
\ nextgroup=styledDefinition
\ contains=cssTagName,
\ typescriptBraces,typescriptOpSymbols,typescriptEndColons,
\ typescriptParens,typescriptStringS,@typescriptType,
\ typescriptType,
\ styledTagNameString
syn match styledTypescriptPrefix "\.\<extend\><\%(\[\|\]\|{\|}\||\|&\|:\|;\|,\|?\|'\|\"\|\k\|\s\|\n\)\+>"
\ transparent fold extend
\ nextgroup=styledDefinition
\ contains=cssTagName,
\ typescriptBraces,typescriptOpSymbols,typescriptEndColons,
\ typescriptParens,typescriptStringS,@typescriptType,
\ typescriptType,
\ styledTagNameString
\ containedin=jsFuncBlock,jsParen,jsObject,jsObjectValue
" define emotion css prop
" to bypass problems from top-level defined xml/js definitions, this
@@ -244,19 +203,13 @@ syn match cssError contained "{@<>"
" extend javascript matches to trigger styledDefinition highlighting
syn match jsTaggedTemplate extend
\ "\<css\>\|\<keyframes\>\|\<injectGlobal\>\|\<fontFace\>\|\<createGlobalStyle\>"
\ "\<css\>\|\.\<resolve\>\|\.\<global\>\|\<keyframes\>\|\<injectGlobal\>\|\<fontFace\>\|\<createGlobalStyle\>"
\ nextgroup=styledDefinition
syn match jsFuncCall "\<styled\>\s*(.\+)" transparent
\ nextgroup=styledDefinition
syn match jsFuncCall "\<styled\>\s*(\%('\k\+'\|\"\k\+\"\|`\k\+`\))"
\ contains=styledTagNameString
\ nextgroup=styledDefinition
syn match jsFuncCall "\<styled\>\s*(\%('\k\+'\|\"\k\+\"\|`\k\+`\))<\%(\[\|\]\|{\|}\||\|&\|:\|;\|,\|?\|'\|\"\|\k\|\s\|\n\)\+>"
\ contains=typescriptBraces,typescriptOpSymbols,typescriptEndColons,
\ typescriptParens,typescriptStringS,@typescriptType,
\ typescriptType,
\ styledTagNameString
\ nextgroup=styledDefinition
syn match jsFuncCall "\.\<withComponent\>\s*(\%('\k\+'\|\"\k\+\"\|`\k\+`\))"
\ contains=styledTagNameString
syn match jsFuncCall "\<dc\>\s*(\%('\k\+'\|\"\k\+\"\|`\k\+`\))\%((\)\@="
@@ -279,8 +232,6 @@ syn region styledDefinition contained transparent fold extend
syn region styledDefinitionArgument contained transparent start=+(+ end=+)+
\ contains=styledDefinition
syn cluster typescriptValue add=styledPrefix,jsFuncCall,styledTypescriptPrefix
""" yajs specific extensions
" define template tag keywords, that trigger styledDefinitions again to be
" contained in and also do contain the `javascriptTagRef` region
@@ -295,13 +246,6 @@ syn cluster javascriptExpression
\ add=styledPrefix,jsFuncCall,javascriptTagRefStyledPrefix
syn cluster javascriptAfterIdentifier add=styledPrefix,jsFuncCall
""" yats specific extensions
" extend typescriptIdentifierName to allow styledDefinitions in their
" tagged templates
syn match typescriptIdentifierName extend
\ "\<css\>\|\<keyframes\>\|\<injectGlobal\>\|\<fontFace\>\|\<createGlobalStyle\>"
\ nextgroup=styledDefinition
" color the custom highlight elements
hi def link cssCustomKeyFrameSelector Constant
hi def link cssCustomPositioningPrefix StorageClass

216
after/syntax/jsx_pretty.vim Normal file
View File

@@ -0,0 +1,216 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'jsx') != -1
finish
endif
let s:highlight_close_tag = get(g:, 'vim_jsx_pretty_highlight_close_tag', 0)
" <tag id="sample">
" ~~~~~~~~~~~~~~~~~
" and self close tag
" <tag id="sample" />
" ~~~~~~~~~~~~~~~~~~~
syntax region jsxTag
\ start=+<+
\ matchgroup=jsxOpenPunct
\ end=+>+
\ matchgroup=NONE
\ end=+\(/\_s*>\)\@=+
\ contained
\ contains=jsxOpenTag,jsxEscapeJs,jsxAttrib,jsComment,@javascriptComments,javaScriptLineComment,javaScriptComment,typescriptLineComment,typescriptComment,jsxSpreadOperator
\ keepend
\ extend
" <tag></tag>
" ~~~~~~~~~~~
" and fragment
" <></>
" ~~~~~
" and self close tag
" <tag />
" ~~~~~~~
syntax region jsxElement
\ start=+<\_s*\(>\|\${\|\z(\<[-:_\.\$0-9A-Za-z]\+\>\)\)+
\ end=+/\_s*>+
\ end=+<\_s*/\_s*\z1\_s*>+
\ contains=jsxElement,jsxEscapeJs,jsxTag,jsxComment,jsxCloseString,jsxCloseTag,@Spell
\ keepend
\ extend
\ contained
\ fold
" detect jsx region
syntax region jsxRegion
\ start=+\(\(\_[([,?:=+\-*/<>{}]\|&&\|||\|=>\|\<return\|\<default\|\<await\|\<yield\)\_s*\)\@<=<\_s*\(>\|\z(\(script\)\@!\<[_\$A-Za-z][-:_\.\$0-9A-Za-z]*\>\)\(\_s*\([-+*)\]}&|?]\|/\([/*]\|\_s*>\)\@!\)\)\@!\)+
\ end=++
\ contains=jsxElement
" <tag key={this.props.key}>
" ~~~~~~~~~~~~~~~~
syntax region jsxEscapeJs
\ start=+{+
\ end=++
\ extend
\ contained
\ contains=jsBlock,javascriptBlock,javaScriptBlockBuildIn,typescriptBlock
" <tag key={this.props.key}>
" ~~~~
" and fragment start tag
" <>
" ~~
exe 'syntax region jsxOpenTag
\ matchgroup=jsxOpenPunct
\ start=+<+
\ end=+>+
\ matchgroup=NONE
\ end=+\>+
\ contained
\ contains=jsxTagName
\ nextgroup=jsxAttrib
\ skipwhite
\ skipempty ' .(s:highlight_close_tag ? 'transparent' : '')
" <foo.bar>
" ~
syntax match jsxDot +\.+ contained display
" <foo:bar>
" ~
syntax match jsxNamespace +:+ contained display
" <tag id="sample">
" ~
syntax match jsxEqual +=+ contained display nextgroup=jsxString,jsxEscapeJs,jsxRegion skipwhite
" <tag />
" ~~
syntax match jsxCloseString +/\_s*>+ contained
" </tag>
" ~~~~~~
" and fragment close tag
" </>
" ~~~
syntax region jsxCloseTag
\ matchgroup=jsxClosePunct
\ start=+<\_s*/+
\ end=+>+
\ contained
\ contains=jsxTagName
" <tag key={this.props.key}>
" ~~~
syntax match jsxAttrib
\ +\<[-A-Za-z_][-:_\$0-9A-Za-z]*\>+
\ contained
\ nextgroup=jsxEqual
\ skipwhite
\ skipempty
\ contains=jsxAttribKeyword
\ display
" <MyComponent ...>
" ~~~~~~~~~~~
" NOT
" <someCamel ...>
" ~~~~~
exe 'syntax match jsxComponentName
\ +\<[A-Z][\$0-9A-Za-z]\+\>+
\ contained
\ display ' .(s:highlight_close_tag ? 'transparent' : '')
" <tag key={this.props.key}>
" ~~~
exe 'syntax match jsxTagName
\ +\<[-:_\.\$0-9A-Za-z]\+\>+
\ contained
\ contains=jsxComponentName,jsxDot,jsxNamespace
\ nextgroup=jsxAttrib
\ skipempty
\ skipwhite
\ display ' .(s:highlight_close_tag ? 'transparent' : '')
" <tag id="sample">
" ~~~~~~~~
" and
" <tag id='sample'>
" ~~~~~~~~
syntax region jsxString start=+\z(["']\)+ skip=+\\\%(\z1\|$\)+ end=+\z1+ contained contains=@Spell display
let s:tags = get(g:, 'vim_jsx_pretty_template_tags', ['html', 'raw'])
let s:enable_tagged_jsx = !empty(s:tags)
" add support to JSX inside the tagged template string
" https://github.com/developit/htm
if s:enable_tagged_jsx
exe 'syntax region jsxTaggedRegion
\ start=+\%('. join(s:tags, '\|') .'\)\@<=`+ms=s+1
\ end=+`+me=e-1
\ extend
\ contained
\ containedin=jsTemplateString,javascriptTemplate,javaScriptStringT,typescriptStringB
\ contains=jsxElement'
syntax region jsxEscapeJs
\ start=+\${+
\ end=++
\ extend
\ contained
\ contains=jsTemplateExpression,javascriptTemplateSubstitution,javaScriptEmbed,typescriptInterpolation
syntax region jsxOpenTag
\ matchgroup=jsxOpenPunct
\ start=+<\%(\${\)\@=+
\ matchgroup=NONE
\ end=++
\ contained
\ contains=jsxEscapeJs
\ nextgroup=jsxAttrib,jsxSpreadOperator
\ skipwhite
\ skipempty
syntax keyword jsxAttribKeyword class contained display
syntax match jsxSpreadOperator +\.\.\.+ contained display nextgroup=jsxEscapeJs skipwhite
syntax match jsxCloseTag +<//>+ display
syntax match jsxComment +<!--\_.\{-}-->+ display
endif
" Highlight the tag name
highlight def link jsxTag Function
highlight def link jsxTagName Identifier
highlight def link jsxComponentName Function
highlight def link jsxAttrib Type
highlight def link jsxAttribKeyword jsxAttrib
highlight def link jsxEqual Operator
highlight def link jsxString String
highlight def link jsxDot Operator
highlight def link jsxNamespace Operator
if s:highlight_close_tag
highlight def link jsxCloseString Identifier
highlight def link jsxOpenPunct jsxTag
else
" Highlight the jsxCloseString (i.e. />), jsxPunct (i.e. <,>) and jsxCloseTag (i.e. <//>)
highlight def link jsxCloseString Comment
highlight def link jsxOpenPunct jsxPunct
endif
highlight def link jsxPunct jsxCloseString
highlight def link jsxClosePunct jsxPunct
highlight def link jsxCloseTag jsxCloseString
highlight def link jsxComment Comment
highlight def link jsxSpreadOperator Operator
let s:vim_jsx_pretty_colorful_config = get(g:, 'vim_jsx_pretty_colorful_config', 0)
if s:vim_jsx_pretty_colorful_config == 1
highlight def link jsObjectKey Label
highlight def link jsArrowFuncArgs Type
highlight def link jsFuncArgs Type
endif

View File

@@ -28,21 +28,21 @@ endif
" refine the typescript line comment
syntax region typescriptLineComment start=+//+ end=/$/ contains=@Spell,typescriptCommentTodo,typescriptRef extend keepend
" add a typescriptBlock group for typescript
syntax region typescriptBlock
\ contained
\ matchgroup=typescriptBraces
\ start="{"
\ end="}"
\ extend
\ contains=@typescriptAll,@typescriptExpression,typescriptBlock
\ fold
if !hlexists('typescriptTypeCast')
" add a typescriptBlock group for typescript
syntax region typescriptBlock
\ matchgroup=typescriptBraces
\ start="{"
\ end="}"
\ contained
\ extend
\ contains=@typescriptExpression,typescriptBlock
\ fold
endif
" because this is autoloaded, when developing you're going to need to source
" the autoload/jsx_pretty/*.vim file manually, or restart vim
call jsx_pretty#syntax#highlight()
syntax cluster typescriptExpression add=jsxRegion,typescriptParens
syntax cluster typescriptExpression add=jsxRegion
runtime syntax/jsx_pretty.vim
let b:current_syntax = 'typescript.tsx'
@@ -52,119 +52,7 @@ if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'styled-component
finish
endif
" Vim syntax file
" Language: styled-components (js/ts)
" Maintainer: Karl Fleischmann <fleischmann.karl@gmail.com>
" URL: https://github.com/styled-components/vim-styled-components
if exists("b:current_syntax")
let s:current_syntax=b:current_syntax
unlet b:current_syntax
endif
" fix for "-" before cssPositioningProp
" - needs to be above CSS include to not match cssVendor definitions
syn region cssCustomPositioningPrefix contained
\ start='-' end='\%(\s\{-}:\)\@='
\ contains=cssPositioningProp
" introduce CSS cluster from built-in (or single third party syntax file)
syn include @CSS syntax/css.vim
" try to include CSS3 definitions from multiple files
" this is only possible on vim version above 7
if v:version >= 700
try
syn include @CSS3 syntax/css/*.vim
catch
endtry
endif
" TODO: include react-native keywords
" define custom cssAttrRegion
" - add ",", "`" and "{" to the end characters
" - add "cssPseudoClassId" to it's containing elements
" this will incorrectly highlight pseudo elements incorrectly used as
" attributes but correctly highlight actual attributes
syn region cssCustomAttrRegion contained
\ start=":" end="\ze\%(;\|)\|{\|}\|`\)"
\ contains=css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,
\ cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,
\ cssError,cssAttrComma,cssNoise,cssPseudoClassId,
\ jsTemplateExpression,
\ typescriptInterpolation,typescriptTemplateSubstitution
syn region cssCustomAttrRegion contained
\ start="transition\s*:" end="\ze\%(;\|)\|{\|}\|`\)"
\ contains=css.*Prop,css.*Attr,cssColor,cssImportant,cssValue.*,
\ cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,
\ cssVendor,cssError,cssAttrComma,cssNoise,cssPseudoClassId,
\ jsTemplateExpression,
\ typescriptInterpolation,typescriptTemplateSubstitution
" define custom css elements to not utilize cssDefinition
syn region cssCustomMediaBlock contained fold transparent matchgroup=cssBraces
\ start="{" end="}"
\ contains=css.*Attr,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,
\ cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,
\ cssUnicodeEscape,cssVendor,cssTagName,cssClassName,
\ cssIdentifier,cssPseudoClass,cssSelectorOp,cssSelectorOp2,
\ cssAttributeSelector
syn region cssCustomPageWrap contained transparent matchgroup=cssBraces
\ start="{" end="}"
\ contains=cssPageMargin,cssPageProp,cssCustomAttrRegion,css.*Prop,
\ cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,
\ cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,
\ cssHacks
syn match cssCustomPageMargin contained skipwhite skipnl
\ "@\%(\%(top\|left\|right\|bottom\)-\%(left\|center\|right\|middle\|bottom\)\)\%(-corner\)\="
syn match cssCustomKeyFrameSelector "\%(\d*%\|\<from\>\|\<to\>\)" contained
\ skipwhite skipnl
" define css include customly to overwrite nextgroup
syn region cssInclude start="@media\>" end="\ze{" skipwhite skipnl
\ contains=cssMediaProp,cssValueLength,cssMediaKeyword,cssValueInteger,
\ cssMediaMediaAttr,cssVencor,cssMediaType,cssIncludeKeyword,
\ cssMediaComma,cssComment
\ nextgroup=cssCustomMediaBlock
" define all non-contained css definitions
syn cluster CSSTop
\ contains=cssTagName,cssSelectorOp,cssAttributeSelector,cssClassName,
\ cssBraces,cssIdentifier,cssIncludeKeyword,cssPage,cssKeyFrame,
\ cssFontDescriptor,cssAttrComma,cssPseudoClass,cssUnicodeEscape
" custom highlights for styled components
" - "&" inside top level
" - cssTagName inside of jsStrings inside of styledPrefix regions
" TODO: override highlighting of cssTagName with more subtle one
syn match styledAmpersand contained "&"
syn region styledTagNameString matchgroup=jsString contained
\ start=+'+ end=+'+ skip=+\\\%(\'\|$\)+
\ contains=cssTagName
syn region styledTagNameString matchgroup=jsString contained
\ start=+"+ end=+"+ skip=+\\\%(\"\|$\)+
\ contains=cssTagName
syn region styledTagNameString matchgroup=jsString contained
\ start=+`+ end=+`+ skip=+\\\%(\`\|$\)+
\ contains=cssTagName
" define custom API sections that trigger the styledDefinition highlighting
syn match styledPrefix "\<styled\>\.\k\+"
\ transparent fold
\ nextgroup=styledDefinition
\ contains=cssTagName,javascriptTagRef
\ containedin=jsFuncBlock
syn match styledPrefix "\.\<attrs\>\s*(\%(\n\|\s\|.\)\{-})"
\ transparent fold extend
\ nextgroup=styledDefinition
\ contains=jsObject,jsParen
\ containedin=jsFuncBlock
syn match styledPrefix "\.\<extend\>"
\ transparent fold
\ nextgroup=styledDefinition
\ containedin=jsFuncBlock
runtime! syntax/javascript.vim
" define custom API section, that contains typescript annotations
" this is structurally similar to `jsFuncCall`, but allows type
@@ -172,132 +60,57 @@ syn match styledPrefix "\.\<extend\>"
" the function call parenthesis
syn match styledTypescriptPrefix
\ "\<styled\><\%(\[\|\]\|{\|}\||\|&\|:\|;\|,\|?\|'\|\"\|\k\|\s\|\n\)\+>(\%('\k\+'\|\"\k\+\"\|\k\+\))"
\ transparent fold
\ transparent fold extend
\ nextgroup=styledDefinition
\ contains=cssTagName,
\ typescriptBraces,typescriptOpSymbols,typescriptEndColons,
\ typescriptParens,typescriptStringS,@typescriptType,
\ typescriptType,
\ typescriptType,foldBraces,
\ styledTagNameString
\ containedin=foldBraces
syn match styledTypescriptPrefix
\ "\<styled\>\%((\%('\k\+'\|\"\k\+\"\|\k\+\))\|\.\k\+\)<\%(\[\|\]\|{\|}\||\|&\|:\|;\|,\|?\|'\|\"\|\k\|\s\|\n\)\+>"
\ transparent fold
\ transparent fold extend
\ nextgroup=styledDefinition
\ contains=cssTagName,
\ typescriptBraces,typescriptOpSymbols,typescriptEndColons,
\ typescriptParens,typescriptStringS,@typescriptType,
\ typescriptType,
\ typescriptType,foldBraces,
\ styledTagNameString
\ containedin=foldBraces
syn match styledTypescriptPrefix "\.\<attrs\>\s*(\%(\n\|\s\|.\)\{-})<\%(\[\|\]\|{\|}\||\|&\|:\|;\|,\|?\|'\|\"\|\k\|\s\|\n\)\+>"
\ transparent fold extend
\ nextgroup=styledDefinition
\ contains=cssTagName,
\ typescriptBraces,typescriptOpSymbols,typescriptEndColons,
\ typescriptParens,typescriptStringS,@typescriptType,
\ typescriptType,
\ typescriptType,foldBraces,
\ styledTagNameString
\ containedin=foldBraces
syn match styledTypescriptPrefix "\.\<extend\><\%(\[\|\]\|{\|}\||\|&\|:\|;\|,\|?\|'\|\"\|\k\|\s\|\n\)\+>"
\ transparent fold extend
\ nextgroup=styledDefinition
\ contains=cssTagName,
\ typescriptBraces,typescriptOpSymbols,typescriptEndColons,
\ typescriptParens,typescriptStringS,@typescriptType,
\ typescriptType,
\ typescriptType,foldBraces,
\ styledTagNameString
\ containedin=foldBraces
" define emotion css prop
" to bypass problems from top-level defined xml/js definitions, this
" plugin re-defines keywords/noise for highlighting inside of the custom
" xmlAttrib definition
syn keyword styledXmlRegionKeyword css contained
syn match styledXmlRegionNoise "\%(=\|{\|}\)" contained
" only include styledDefinitions inside of xmlAttribs, that are wrapped
" in `css={}` regions, `keepend` is necessary to correctly break on the
" higher-level xmlAttrib region end
syn region styledXmlRegion
\ start="\<css\>={" end="}"
\ keepend fold
\ containedin=xmlAttrib
\ contains=styledXmlRegionKeyword,styledXmlRegionNoise,styledDefinition
" define nested region for indenting
syn region styledNestedRegion contained transparent
\ matchgroup=cssBraces
\ start="{" end="}"
" re-define cssError to be highlighted correctly in styledNestedRegion
syn match cssError contained "{@<>"
" extend javascript matches to trigger styledDefinition highlighting
syn match jsTaggedTemplate extend
\ "\<css\>\|\<keyframes\>\|\<injectGlobal\>\|\<fontFace\>\|\<createGlobalStyle\>"
\ nextgroup=styledDefinition
syn match jsFuncCall "\<styled\>\s*(.\+)" transparent
\ nextgroup=styledDefinition
syn match jsFuncCall "\<styled\>\s*(\%('\k\+'\|\"\k\+\"\|`\k\+`\))"
\ contains=styledTagNameString
\ nextgroup=styledDefinition
syn match jsFuncCall "\<styled\>\s*(\%('\k\+'\|\"\k\+\"\|`\k\+`\))<\%(\[\|\]\|{\|}\||\|&\|:\|;\|,\|?\|'\|\"\|\k\|\s\|\n\)\+>"
\ transparent fold
\ contains=typescriptBraces,typescriptOpSymbols,typescriptEndColons,
\ typescriptParens,typescriptStringS,@typescriptType,
\ typescriptType,
\ typescriptType,foldBraces,
\ styledTagNameString
\ nextgroup=styledDefinition
syn match jsFuncCall "\.\<withComponent\>\s*(\%('\k\+'\|\"\k\+\"\|`\k\+`\))"
\ contains=styledTagNameString
syn match jsFuncCall "\<dc\>\s*(\%('\k\+'\|\"\k\+\"\|`\k\+`\))\%((\)\@="
\ contains=styledTagNameString
\ nextgroup=styledDefinitionArgument
" inject css highlighting into custom jsTemplateString region
" - use `extend` to not end all nested jsTemplateExpression on the first
" closing one
syn region styledDefinition contained transparent fold extend
\ start="`" end="`" skip="\\\%(`\|$\)"
\ contains=@CSSTop,
\ css.*Prop,cssValue.*,cssColor,cssUrl,cssImportant,cssError,
\ cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,
\ cssHacks,
\ cssCustom.*,
\ jsComment,jsTemplateExpression,
\ typescriptInterpolation,typescriptTemplateSubstitution,
\ styledAmpersand,styledNestedRegion
syn region styledDefinitionArgument contained transparent start=+(+ end=+)+
\ contains=styledDefinition
\ containedin=foldBraces
syn cluster typescriptValue add=styledPrefix,jsFuncCall,styledTypescriptPrefix
""" yajs specific extensions
" define template tag keywords, that trigger styledDefinitions again to be
" contained in and also do contain the `javascriptTagRef` region
syn match javascriptTagRefStyledPrefix transparent fold
\ "\<css\>\|\<keyframes\>\|\<injectGlobal\>\|\<fontFace\>\|\<createGlobalStyle\>"
\ containedin=javascriptTagRef
\ contains=javascriptTagRef
\ nextgroup=styledDefinition
" extend the yajs clusters to include the previously and extraneously defined
" styled-related matches
syn cluster javascriptExpression
\ add=styledPrefix,jsFuncCall,javascriptTagRefStyledPrefix
syn cluster javascriptAfterIdentifier add=styledPrefix,jsFuncCall
""" yats specific extensions
" extend typescriptIdentifierName to allow styledDefinitions in their
" tagged templates
syn match typescriptIdentifierName extend
\ "\<css\>\|\<keyframes\>\|\<injectGlobal\>\|\<fontFace\>\|\<createGlobalStyle\>"
\ nextgroup=styledDefinition
" color the custom highlight elements
hi def link cssCustomKeyFrameSelector Constant
hi def link cssCustomPositioningPrefix StorageClass
hi def link styledAmpersand Special
hi def link styledXmlRegionKeyword Type
hi def link styledXmlRegionNoise Noise
hi def link styledXmlRegion String
if exists("s:current_syntax")
let b:current_syntax=s:current_syntax
endif

View File

@@ -25,10 +25,12 @@ endfunction
function! go#config#SetBuildTags(value) abort
if a:value is ''
silent! unlet g:go_build_tags
call go#lsp#ResetWorkspaceDirectories()
return
endif
let g:go_build_tags = a:value
call go#lsp#ResetWorkspaceDirectories()
endfunction
function! go#config#TestTimeout() abort
@@ -51,6 +53,14 @@ function! go#config#TermMode() abort
return get(g:, 'go_term_mode', 'vsplit')
endfunction
function! go#config#TermCloseOnExit() abort
return get(g:, 'go_term_close_on_exit', 1)
endfunction
function! go#config#SetTermCloseOnExit(value) abort
let g:go_term_close_on_exit = a:value
endfunction
function! go#config#TermEnabled() abort
return has('nvim') && get(g:, 'go_term_enabled', 0)
endfunction

View File

@@ -90,6 +90,9 @@ function! jsx_pretty#indent#get(js_indent)
else
return prev_ind + s:sw()
endif
elseif !s:syn_xmlish(prev_syn_sol) && !s:syn_js_comment(prev_syn_sol) && s:syn_jsx_attrib(current_syn)
" For #79
return prev_ind + s:sw()
" {
" <div></div>
" ##} <--
@@ -176,7 +179,8 @@ function! jsx_pretty#indent#get(js_indent)
return prev_ind + s:sw()
endif
endif
elseif s:syn_jsx_escapejs(current_syn_eol)
elseif line =~ '^`' && s:syn_jsx_escapejs(current_syn_eol)
" For `} of template syntax
let pair_line = searchpair('{', '', '}', 'bW')
return indent(pair_line)
elseif line =~ '^/[/*]' " js comment in jsx tag

View File

@@ -1,218 +0,0 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'jsx') != -1
finish
endif
function! jsx_pretty#syntax#highlight()
let s:highlight_close_tag = get(g:, 'vim_jsx_pretty_highlight_close_tag', 0)
" <tag id="sample">
" ~~~~~~~~~~~~~~~~~
" and self close tag
" <tag id="sample" />
" ~~~~~~~~~~~~~~~~~~~
syntax region jsxTag
\ start=+<+
\ matchgroup=jsxOpenPunct
\ end=+>+
\ matchgroup=NONE
\ end=+\(/\_s*>\)\@=+
\ contained
\ contains=jsxOpenTag,jsxEscapeJs,jsxAttrib,jsComment,@javascriptComments,javaScriptLineComment,javaScriptComment,typescriptLineComment,typescriptComment,jsxSpreadOperator
\ keepend
\ extend
" <tag></tag>
" ~~~~~~~~~~~
" and fragment
" <></>
" ~~~~~
" and self close tag
" <tag />
" ~~~~~~~
syntax region jsxElement
\ start=+<\_s*\(>\|\${\|\z(\<[-:_\.\$0-9A-Za-z]\+\>\)\)+
\ end=+/\_s*>+
\ end=+<\_s*/\_s*\z1\_s*>+
\ contains=jsxElement,jsxEscapeJs,jsxTag,jsxComment,jsxCloseString,jsxCloseTag,@Spell
\ keepend
\ extend
\ contained
\ fold
" detect jsx region
syntax region jsxRegion
\ start=+\(\(\_[([,?:=+\-*/<>{}]\|&&\|||\|=>\|\<return\|\<default\|\<await\|\<yield\)\_s*\)\@<=<\_s*\(>\|\z(\(script\)\@!\<[_\$A-Za-z][-:_\.\$0-9A-Za-z]*\>\)\(\_s*\([-+*)\]}&|?]\|/\([/*]\|\_s*>\)\@!\)\)\@!\)+
\ end=++
\ contains=jsxElement
" <tag key={this.props.key}>
" ~~~~~~~~~~~~~~~~
syntax region jsxEscapeJs
\ start=+{+
\ end=++
\ extend
\ contained
\ contains=jsBlock,javascriptBlock,javaScriptBlockBuildIn,typescriptBlock
" <tag key={this.props.key}>
" ~~~~
" and fragment start tag
" <>
" ~~
exe 'syntax region jsxOpenTag
\ matchgroup=jsxOpenPunct
\ start=+<+
\ end=+>+
\ matchgroup=NONE
\ end=+\>+
\ contained
\ contains=jsxTagName
\ nextgroup=jsxAttrib
\ skipwhite
\ skipempty ' .(s:highlight_close_tag ? 'transparent' : '')
" <foo.bar>
" ~
syntax match jsxDot +\.+ contained display
" <foo:bar>
" ~
syntax match jsxNamespace +:+ contained display
" <tag id="sample">
" ~
syntax match jsxEqual +=+ contained display nextgroup=jsxString,jsxEscapeJs,jsxRegion skipwhite
" <tag />
" ~~
syntax match jsxCloseString +/\_s*>+ contained
" </tag>
" ~~~~~~
" and fragment close tag
" </>
" ~~~
syntax region jsxCloseTag
\ matchgroup=jsxClosePunct
\ start=+<\_s*/+
\ end=+>+
\ contained
\ contains=jsxTagName
" <tag key={this.props.key}>
" ~~~
syntax match jsxAttrib
\ +\<[-A-Za-z_][-:_\$0-9A-Za-z]*\>+
\ contained
\ nextgroup=jsxEqual
\ skipwhite
\ skipempty
\ contains=jsxAttribKeyword
\ display
" <MyComponent ...>
" ~~~~~~~~~~~
" NOT
" <someCamel ...>
" ~~~~~
exe 'syntax match jsxComponentName
\ +\<[A-Z][\$0-9A-Za-z]\+\>+
\ contained
\ display ' .(s:highlight_close_tag ? 'transparent' : '')
" <tag key={this.props.key}>
" ~~~
exe 'syntax match jsxTagName
\ +\<[-:_\.\$0-9A-Za-z]\+\>+
\ contained
\ contains=jsxComponentName,jsxDot,jsxNamespace
\ nextgroup=jsxAttrib
\ skipempty
\ skipwhite
\ display ' .(s:highlight_close_tag ? 'transparent' : '')
" <tag id="sample">
" ~~~~~~~~
" and
" <tag id='sample'>
" ~~~~~~~~
syntax region jsxString start=+\z(["']\)+ skip=+\\\%(\z1\|$\)+ end=+\z1+ contained contains=@Spell display
let s:tags = get(g:, 'vim_jsx_pretty_template_tags', ['html', 'raw'])
let s:enable_tagged_jsx = !empty(s:tags)
" add support to JSX inside the tagged template string
" https://github.com/developit/htm
if s:enable_tagged_jsx
exe 'syntax region jsxTaggedRegion
\ start=+\%('. join(s:tags, '\|') .'\)\@<=`+ms=s+1
\ end=+`+me=e-1
\ extend
\ contained
\ containedin=jsTemplateString,javascriptTemplate,javaScriptStringT,typescriptStringB
\ contains=jsxElement'
syntax region jsxEscapeJs
\ start=+\${+
\ end=++
\ extend
\ contained
\ contains=jsTemplateExpression,javascriptTemplateSubstitution,javaScriptEmbed,typescriptInterpolation
syntax region jsxOpenTag
\ matchgroup=jsxOpenPunct
\ start=+<\%(\${\)\@=+
\ matchgroup=NONE
\ end=++
\ contained
\ contains=jsxEscapeJs
\ nextgroup=jsxAttrib,jsxSpreadOperator
\ skipwhite
\ skipempty
syntax keyword jsxAttribKeyword class contained display
syntax match jsxSpreadOperator +\.\.\.+ contained display nextgroup=jsxEscapeJs skipwhite
syntax match jsxCloseTag +<//>+ display
syntax match jsxComment +<!--\_.\{-}-->+ display
endif
" Highlight the tag name
highlight def link jsxTag Function
highlight def link jsxTagName Identifier
highlight def link jsxComponentName Function
highlight def link jsxAttrib Type
highlight def link jsxAttribKeyword jsxAttrib
highlight def link jsxEqual Operator
highlight def link jsxString String
highlight def link jsxDot Operator
highlight def link jsxNamespace Operator
" Highlight the jsxCloseString (i.e. />), jsxPunct (i.e. <,>) and jsxCloseTag (i.e. <//>)
highlight def link jsxCloseString Comment
highlight def link jsxPunct jsxCloseString
highlight def link jsxOpenPunct jsxPunct
highlight def link jsxClosePunct jsxPunct
highlight def link jsxCloseTag jsxCloseString
highlight def link jsxComment Comment
highlight def link jsxSpreadOperator Operator
if s:highlight_close_tag
highlight! def link jsxOpenPunct jsxTag
highlight! def link jsxCloseString Identifier
endif
let s:vim_jsx_pretty_colorful_config = get(g:, 'vim_jsx_pretty_colorful_config', 0)
if s:vim_jsx_pretty_colorful_config == 1
highlight def link jsObjectKey Label
highlight def link jsArrowFuncArgs Type
highlight def link jsFuncArgs Type
endif
endfunction

View File

@@ -509,7 +509,7 @@ function! rust#Test(all, options) abort
return rust#Run(1, '--test ' . a:options)
endif
if exists(':terminal')
if has('terminal') || has('nvim')
let cmd = 'terminal '
else
let cmd = '!'
@@ -530,7 +530,7 @@ function! rust#Test(all, options) abort
let func_name = s:SearchTestFunctionNameUnderCursor()
if func_name ==# ''
echohl ErrorMsg
echo 'No test function was found under the cursor. Please add ! to command if you want to run all tests'
echomsg 'No test function was found under the cursor. Please add ! to command if you want to run all tests'
echohl None
return
endif

View File

@@ -5,6 +5,7 @@ endif
" For debugging, inspired by https://github.com/w0rp/rust/blob/master/autoload/rust/debugging.vim
let s:global_variable_list = [
\ '_rustfmt_autosave_because_of_config',
\ 'ftplugin_rust_source_path',
\ 'loaded_syntastic_rust_cargo_checker',
\ 'loaded_syntastic_rust_filetype',
@@ -32,7 +33,6 @@ let s:global_variable_list = [
\ 'rustc_makeprg_no_percent',
\ 'rustc_path',
\ 'rustfmt_autosave',
\ 'rustfmt_autosave_because_of_config',
\ 'rustfmt_autosave_if_config_present',
\ 'rustfmt_command',
\ 'rustfmt_emit_files',
@@ -48,7 +48,9 @@ endfunction
function! s:EchoGlobalVariables() abort
for l:key in s:global_variable_list
call s:Echo('let g:' . l:key . ' = ' . string(get(g:, l:key, v:null)))
if l:key !~# '^_'
call s:Echo('let g:' . l:key . ' = ' . string(get(g:, l:key, v:null)))
endif
if has_key(b:, l:key)
call s:Echo('let b:' . l:key . ' = ' . string(b:[l:key]))

21
autoload/rust/tags.vim Normal file
View File

@@ -0,0 +1,21 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'rust') != -1
finish
endif
" Tagbar support code, for the sake of not automatically overriding its
" configuration in case Universal Ctags is detected.
let s:ctags_is_uctags = 0
let s:checked_ctags = 0
function! rust#tags#IsUCtags() abort
if s:checked_ctags == 0
if system('ctags --version') =~? 'universal ctags'
let s:ctags_is_uctags = 1
endif
let s:checked_ctags = 1
endif
return s:ctags_is_uctags
endfunction
" vim: set et sw=4 sts=4 ts=8:

View File

@@ -246,7 +246,12 @@ function! rustfmt#PreWrite()
if rust#GetConfigVar('rustfmt_autosave_if_config_present', 0)
if findfile('rustfmt.toml', '.;') !=# '' || findfile('.rustfmt.toml', '.;') !=# ''
let b:rustfmt_autosave = 1
let b:rustfmt_autosave_because_of_config = 1
let b:_rustfmt_autosave_because_of_config = 1
endif
else
if has_key(b:, '_rustfmt_autosave_because_of_config')
unlet b:_rustfmt_autosave_because_of_config
unlet b:rustfmt_autosave
endif
endif

View File

@@ -2,56 +2,23 @@ if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'terraform') != -
finish
endif
" Adapted from vim-hclfmt:
" https://github.com/fatih/vim-hclfmt/blob/master/autoload/fmt.vim
function! terraform#fmt()
if !filereadable(expand('%:p'))
return
endif
let l:curw = winsaveview()
let l:tmpfile = tempname() . '.tf'
call writefile(getline(1, '$'), l:tmpfile)
let output = system('terraform fmt -write ' . l:tmpfile)
if v:shell_error == 0
try | silent undojoin | catch | endtry
call rename(l:tmpfile, resolve(expand('%')))
silent edit!
let &syntax = &syntax
else
echo output
call delete(l:tmpfile)
" Make a fake change so that the undo point is right.
normal! ix
normal! "_x
silent execute '%!terraform fmt -no-color -'
if v:shell_error != 0
let output = getline(1, '$')
silent undo
echo join(output, "\n")
endif
call winrestview(l:curw)
endfunction
function! terraform#folds()
let thisline = getline(v:lnum)
if match(thisline, '^resource') >= 0
return '>1'
elseif match(thisline, '^provider') >= 0
return '>1'
elseif match(thisline, '^module') >= 0
return '>1'
elseif match(thisline, '^variable') >= 0
return '>1'
elseif match(thisline, '^output') >= 0
return '>1'
elseif match(thisline, '^data') >= 0
return '>1'
elseif match(thisline, '^terraform') >= 0
return '>1'
elseif match(thisline, '^locals') >= 0
return '>1'
else
return '='
endif
endfunction
function! terraform#foldText()
let foldsize = (v:foldend-v:foldstart)
return getline(v:foldstart).' ('.foldsize.' lines)'
endfunction
function! terraform#align()
let p = '^.*=[^>]*$'
if exists(':Tabularize') && getline('.') =~# '^.*=' && (getline(line('.')-1) =~# p || getline(line('.')+1) =~# p)
@@ -77,7 +44,6 @@ function! terraform#commands(A, L, P)
\ 'output',
\ 'plan',
\ 'providers',
\ 'push',
\ 'refresh',
\ 'show',
\ 'taint',
@@ -85,9 +51,10 @@ function! terraform#commands(A, L, P)
\ 'validate',
\ 'version',
\ 'workspace',
\ '0.12checklist',
\ '0.12upgrade',
\ 'debug',
\ 'force-unlock',
\ 'push',
\ 'state'
\ ]
endfunction

View File

@@ -11,5 +11,5 @@ if exists(":CompilerSet") != 2
command -nargs=* CompilerSet setlocal <args>
endif
CompilerSet errorformat=%f:%l:\ %t:\ %m
CompilerSet errorformat=%f:%l:%c:\ %t:\ %m,%f:%l:\ %t:\ %m
CompilerSet makeprg=mix\ credo\ suggest\ --format=flycheck

View File

@@ -11,5 +11,10 @@ if exists(":CompilerSet") != 2
command -nargs=* CompilerSet setlocal <args>
endif
CompilerSet errorformat=%A%t%*[^:]:\ %m,%C%f:%l:\ %m,%C%f:%l,%Z
CompilerSet makeprg=mix
CompilerSet makeprg=mix\ compile
CompilerSet errorformat=
\%Wwarning:\ %m,
\%C%f:%l,%Z,
\%E==\ Compilation\ error\ in\ file\ %f\ ==,
\%C**\ (%\\w%\\+)\ %f:%l:\ %m,%Z

View File

@@ -25,7 +25,11 @@ endif
if get(g:, 'rustc_makeprg_no_percent', 0)
CompilerSet makeprg=rustc
else
CompilerSet makeprg=rustc\ \%
if has('patch-7.4.191')
CompilerSet makeprg=rustc\ \%:S
else
CompilerSet makeprg=rustc\ \%
endif
endif
" New errorformat (after nightly 2016/08/10)

View File

@@ -332,6 +332,8 @@ endif
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'dockerfile') == -1
augroup filetypedetect
" dockerfile, from Dockerfile.vim in ekalinin/Dockerfile.vim
" vint: -ProhibitAutocmdWithNoGroup
" Dockerfile
autocmd BufRead,BufNewFile [Dd]ockerfile set ft=Dockerfile
autocmd BufRead,BufNewFile Dockerfile* set ft=Dockerfile
@@ -344,6 +346,8 @@ endif
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'dockerfile') == -1
augroup filetypedetect
" dockerfile, from docker-compose.vim in ekalinin/Dockerfile.vim
" vint: -ProhibitAutocmdWithNoGroup
" docker-compose.yml
autocmd BufRead,BufNewFile docker-compose*.{yaml,yml}* set ft=yaml.docker-compose
augroup end
@@ -517,8 +521,8 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'handlebars') ==
augroup filetypedetect
" handlebars, from mustache.vim in mustache/vim-mustache-handlebars
if has("autocmd")
au BufNewFile,BufRead *.mustache,*.hogan,*.hulk,*.hjs set filetype=html.mustache syntax=mustache | runtime! ftplugin/mustache.vim ftplugin/mustache*.vim ftplugin/mustache/*.vim
au BufNewFile,BufRead *.handlebars,*.hbs set filetype=html.handlebars syntax=mustache | runtime! ftplugin/mustache.vim ftplugin/mustache*.vim ftplugin/mustache/*.vim
au BufNewFile,BufRead *.mustache,*.hogan,*.hulk,*.hjs set filetype=html.mustache syntax=mustache | runtime! ftplugin/mustache.vim ftplugin/mustache*.vim ftplugin/mustache/*.vim indent/handlebars.vim
au BufNewFile,BufRead *.handlebars,*.hdbs,*.hbs,*.hb set filetype=html.handlebars syntax=mustache | runtime! ftplugin/mustache.vim ftplugin/mustache*.vim ftplugin/mustache/*.vim
endif
augroup end
endif
@@ -619,11 +623,8 @@ fun! s:SelectJavascript()
endif
endfun
augroup javascript_syntax_detection
autocmd!
autocmd BufNewFile,BufRead *.{js,mjs,jsm,es,es6},Jakefile setfiletype javascript
autocmd BufNewFile,BufRead * call s:SelectJavascript()
augroup END
autocmd BufNewFile,BufRead *.{js,mjs,jsm,es,es6},Jakefile setfiletype javascript
autocmd BufNewFile,BufRead * call s:SelectJavascript()
augroup end
endif
@@ -1233,7 +1234,10 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
" vint: -ProhibitAutocmdWithNoGroup
autocmd BufRead,BufNewFile *.rs call s:set_rust_filetype()
autocmd BufRead,BufNewFile Cargo.toml setf FALLBACK cfg
if has('patch-8.0.613')
autocmd BufRead,BufNewFile Cargo.toml setf FALLBACK cfg
endif
function! s:set_rust_filetype() abort
if &filetype !=# 'rust'
@@ -1437,6 +1441,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vifm') == -1
" vifm, from vifm.vim in vifm/vifm.vim
autocmd BufRead,BufNewFile vifmrc :set filetype=vifm
autocmd BufRead,BufNewFile *vifm/colors/* :set filetype=vifm
autocmd BufRead,BufNewFile *.vifm :set filetype=vifm
augroup end
endif

View File

@@ -2,6 +2,12 @@ if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'dockerfile') !=
finish
endif
" Define comment string
setlocal commentstring=#\ %s
" Enable automatic comment insertion
setlocal formatoptions+=cro
function! DockerfileReplaceInstruction(original, replacement)
let syn = synIDtrans(synID(line("."), col(".") - 1, 0))
if syn != hlID("Comment") && syn != hlID("Constant") && strlen(getline(".")) == 0

View File

@@ -0,0 +1,9 @@
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'dockerfile') != -1
finish
endif
" Define comment string
setlocal commentstring=#\ %s
" Enable automatic comment insertion
setlocal formatoptions+=cro

View File

@@ -25,6 +25,9 @@ if exists("loaded_matchit") && exists("b:match_words")
\ . '\%({{\)\@<=/\s*\1\s*}}'
endif
" Set template for comment
setlocal commentstring={{!--\ %s\ --}}
if exists("g:mustache_abbreviations")
inoremap <buffer> {{{ {{{}}}<left><left><left>
inoremap <buffer> {{ {{}}<left><left>

View File

@@ -28,7 +28,9 @@ if exists('loaded_matchit')
\ ',\<hnote\>:\<endhnote\>' .
\ ',\<title\>:\<endtitle\>' .
\ ',\<\while\>:\<endwhile\>' .
\ ',@startuml:@enduml'
\ ',@startuml:@enduml' .
\ ',@startwbs:@endwbs' .
\ ',@startmindmap:@endmindmap'
endif
if get(g:, 'plantuml_set_makeprg', 1)

View File

@@ -39,7 +39,7 @@ if get(g:, 'rust_bang_comment_leader', 0)
" leaders. I'm fairly sure that's a Vim bug.
setlocal comments=s1:/*,mb:*,ex:*/,s0:/*,mb:\ ,ex:*/,:///,://!,://
else
setlocal comments=s0:/*!,m:\ ,ex:*/,s1:/*,mb:*,ex:*/,:///,://!,://
setlocal comments=s0:/*!,ex:*/,s1:/*,mb:*,ex:*/,:///,://!,://
endif
setlocal commentstring=//%s
setlocal formatoptions-=t formatoptions+=croqnl
@@ -195,7 +195,7 @@ augroup END
setlocal matchpairs+=<:>
" For matchit.vim (rustArrow stops `Fn() -> X` messing things up)
let b:match_skip = 's:comment\|string\|rustArrow'
let b:match_skip = 's:comment\|string\|rustCharacter\|rustArrow'
" vint: -ProhibitAbbreviationOption
let &cpo = s:save_cpo

View File

@@ -5,7 +5,7 @@ endif
"
" Support for Tagbar -- https://github.com/majutsushi/tagbar
"
if !exists(':Tagbar')
if !exists(':Tagbar') || rust#tags#IsUCtags()
finish
endif

View File

@@ -26,25 +26,14 @@ if !has('patch-7.4.1142')
endif
if get(g:, 'terraform_fold_sections', 0)
setlocal foldmethod=expr
setlocal foldexpr=terraform#folds()
setlocal foldlevel=1
setlocal foldtext=terraform#foldText()
let b:undo_ftplugin .= ' foldmethod< foldexpr< foldlevel< foldtext<'
setlocal foldmethod=syntax
let b:undo_ftplugin .= ' foldmethod<'
endif
" Set the commentstring
let &l:commentstring = get(g:, 'terraform_commentstring', '#%s')
setlocal commentstring=#%s
let b:undo_ftplugin .= ' commentstring<'
" Re-map the space bar to fold and unfold
if get(g:, 'terraform_remap_spacebar', 0)
nnoremap <buffer> <space> za
onoremap <buffer> <space> <C-C>za
vnoremap <buffer> <space> zf
let b:undo_ftplugin .= '|unmap <buffer> <space>'
endif
if get(g:, 'terraform_align', 0) && exists(':Tabularize')
inoremap <buffer> <silent> = =<Esc>:call terraform#align()<CR>a
let b:undo_ftplugin .= '|iunmap <buffer> ='

View File

@@ -23,9 +23,6 @@ endif
unlet! b:did_indent
setlocal indentexpr=
" keep track of whether or not we are in a block expression for indenting
unlet! s:in_block_expr
runtime! indent/html.vim
unlet! b:did_indent
@@ -87,23 +84,19 @@ function! GetHandlebarsIndent(...)
" tag is on a separate line
" indent after block {{#block
if prevLine =~# '\v\s*\{\{\#.*\s*'
let s:in_block_expr = 1
if prevLine =~# '\v\s*\{\{[#^].*\s*'
let ind = ind + sw
endif
" but not if the block ends on the same line
if prevLine =~# '\v\s*\{\{\#(.+)(\s+|\}\}).*\{\{\/\1'
let s:in_block_expr = 0
let ind = ind - sw
endif
" unindent after block close {{/block}}
if currentLine =~# '\v^\s*\{\{\/\S*\}\}\s*'
let s:in_block_expr = 0
let ind = ind - sw
endif
" indent after component block {{a-component
if prevLine =~# '\v\s*\{\{\w'
let s:in_block_expr = 0
let ind = ind + sw
endif
" but not if the component block ends on the same line
@@ -111,9 +104,16 @@ function! GetHandlebarsIndent(...)
let ind = ind - sw
endif
" unindent }} lines, and following lines if not inside a block expression
let savedPos = getpos('.')
if currentLine =~# '\v^\s*\}\}\s*$' || (currentLine !~# '\v^\s*\{\{\/' && prevLine =~# '\v^\s*[^\{\} \t]+\}\}\s*$')
if !s:in_block_expr
let ind = ind - sw
let closingLnum = search('}}\s*$', 'Wbc', lnum)
let [openingLnum, col] = searchpairpos('{{', '', '}}', 'Wb')
if openingLnum > 0 && closingLnum > 0
if strpart(getline(openingLnum), col - 1, 3) !~ '{{[#^]'
let ind = ind - sw
endif
else
call setpos('.', savedPos)
endif
endif
" unindent {{else}}

View File

@@ -396,7 +396,9 @@ function GetJavascriptIndent()
if idx != -1
call s:GetPair(['\[','(','{'][idx],'])}'[idx],'bW','s:SkipFunc()')
elseif getline(v:lnum) !~ '^\S' && s:stack[-1] =~? 'block\|^jsobject$'
call s:GetPair('{','}','bW','s:SkipFunc()')
if !s:GetPair('{','}','bW','s:SkipFunc()') && s:stack[-1] ==# 'jsObject'
return indent(l:lnum)
endif
else
call s:AlternatePair()
endif

View File

@@ -24,7 +24,7 @@ setlocal indentkeys-=:
setlocal indentkeys-=0#
setlocal indentkeys-=e
if has('patch-7.3.694') || (v:version == 703 && has('patch694'))
if exists('*shiftwidth')
fun! s:shiftwidth()
return shiftwidth()
endf
@@ -41,16 +41,12 @@ endif
" SQL is generally case insensitive, so this files assumes that
" These keywords are something that would trigger an indent LEFT, not
" an indent right, since the SQLBlockStart is used for those keywords
setlocal indentkeys+==~end,=~else,=~elseif,=~elsif,0=~when,0=)
setlocal indentkeys+==~begin,=~end,=~else,=~elseif,=~elsif,0=~when,=~exception,0=)
" GetSQLIndent is executed whenever one of the expressions
" in the indentkeys is typed
setlocal indentexpr=GetSQLIndent()
" Only define the functions once.
if exists("*GetSQLIndent")
finish
endif
let s:keepcpo= &cpo
set cpo&vim
@@ -340,7 +336,7 @@ function! GetSQLIndent()
" Check current line; search for simplistic matching start-of-block
let line = getline(v:lnum)
if line =~? '^\s*els'
if line =~? '^\s*els' || line =~? '^\s*begin' || line =~? '^\s*exception'
" Any line when you type else will automatically back up one
" ident level (ie else, elseif, elsif)
let ind = ind - s:shiftwidth()

View File

@@ -15,8 +15,8 @@ endif
let b:did_indent = 1
setlocal cindent
setlocal cinoptions=L0,(0,Ws,J1,j1,m1
setlocal cinkeys=0{,0},!^F,o,O,0[,0]
setlocal cinoptions=L0,(s,Ws,J1,j1,m1
setlocal cinkeys=0{,0},!^F,o,O,0[,0],0(,0)
" Don't think cinwords will actually do anything at all... never mind
setlocal cinwords=for,if,else,while,loop,impl,mod,unsafe,trait,struct,enum,fn,extern,macro
@@ -24,7 +24,7 @@ setlocal cinwords=for,if,else,while,loop,impl,mod,unsafe,trait,struct,enum,fn,ex
setlocal nolisp " Make sure lisp indenting doesn't supersede us
setlocal autoindent " indentexpr isn't much help otherwise
" Also do indentkeys, otherwise # gets shoved to column 0 :-/
setlocal indentkeys=0{,0},!^F,o,O,0[,0]
setlocal indentkeys=0{,0},!^F,o,O,0[,0],0(,0)
setlocal indentexpr=GetRustIndent(v:lnum)

View File

@@ -18,6 +18,14 @@ unlet! b:did_indent
let s:html_indent = &l:indentexpr
let b:did_indent = 1
if !exists('g:svelte_indent_script')
let g:svelte_indent_script = 1
endif
if !exists('g:svelte_indent_style')
let g:svelte_indent_style = 1
endif
setlocal indentexpr=GetSvelteIndent()
setlocal indentkeys=o,O,*<Return>,<>>,{,},0),0],!^F,;,=:else,=:then,=:catch,=/if,=/each,=/await
@@ -44,9 +52,21 @@ function! GetSvelteIndent()
let previous_line = getline(previous_line_number)
let previous_line_indent = indent(previous_line_number)
" The inside of scripts an styles should be indented.
if previous_line =~ '^<\(script\|style\)'
return shiftwidth()
" The inside of scripts an styles should be indented unless disabled.
if previous_line =~ '^\s*<script'
if g:svelte_indent_script
return previous_line_indent + shiftwidth()
else
return previous_line_indent
endif
endif
if previous_line =~ '^\s*<style'
if g:svelte_indent_style
return previous_line_indent + shiftwidth()
else
return previous_line_indent
endif
endif
execute "let indent = " . s:html_indent
@@ -57,31 +77,6 @@ function! GetSvelteIndent()
return previous_line_indent
endif
" "#if" or "#each"
if previous_line =~ '^\s*{\s*#\(if\|each\|await\)'
return previous_line_indent + shiftwidth()
endif
" ":else" or ":then"
if previous_line =~ '^\s*{\s*:\(else\|catch\|then\)'
return previous_line_indent + shiftwidth()
endif
" Custom element juggling for abnormal self-closing tags (<Widget />),
" capitalized component tags (<Widget></Widget>), and custom svelte tags
" (<svelte:head></svelte:head>).
if synID(previous_line_number, match(previous_line, '\S') + 1, 0) == hlID('htmlTag')
\ && synID(current_line_number, match(current_line, '\S') + 1, 0) != hlID('htmlEndTag')
let indents_match = indent == previous_line_indent
let previous_closes = previous_line =~ '/>$'
if indents_match && !previous_closes && previous_line =~ '<\(\u\|\l\+:\l\+\)'
return previous_line_indent + shiftwidth()
elseif !indents_match && previous_closes
return previous_line_indent
endif
endif
" "/await" or ":catch" or ":then"
if current_line =~ '^\s*{\s*\/await' || current_line =~ '^\s*{\s*:\(catch\|then\)'
let await_start = searchpair('{\s*#await\>', '', '{\s*\/await\>', 'bW')
@@ -124,5 +119,30 @@ function! GetSvelteIndent()
endif
endif
" "#if" or "#each"
if previous_line =~ '^\s*{\s*#\(if\|each\|await\)'
return previous_line_indent + shiftwidth()
endif
" ":else" or ":then"
if previous_line =~ '^\s*{\s*:\(else\|catch\|then\)'
return previous_line_indent + shiftwidth()
endif
" Custom element juggling for abnormal self-closing tags (<Widget />),
" capitalized component tags (<Widget></Widget>), and custom svelte tags
" (<svelte:head></svelte:head>).
if synID(previous_line_number, match(previous_line, '\S') + 1, 0) == hlID('htmlTag')
\ && synID(current_line_number, match(current_line, '\S') + 1, 0) != hlID('htmlEndTag')
let indents_match = indent == previous_line_indent
let previous_closes = previous_line =~ '/>$'
if indents_match && !previous_closes && previous_line =~ '<\(\u\|\l\+:\l\+\)'
return previous_line_indent + shiftwidth()
elseif !indents_match && previous_closes
return previous_line_indent
endif
endif
return indent
endfunction

View File

@@ -61,8 +61,3 @@ hi link dockerfileTodo Todo
hi link bashStatement Function
let b:current_syntax = "dockerfile"
set commentstring=#\ %s
" Enable automatic comment insertion
setlocal fo+=cro

View File

@@ -6,10 +6,10 @@ endif
" Language: Dockerfile
" Maintainer: Eugene Kalinin
" Latest Revision: 11 September 2013
" Source: http://docs.docker.io/en/latest/use/builder/
" Source: https://docs.docker.com/compose/
if exists("b:current_syntax")
finish
if !exists('main_syntax')
let main_syntax = 'yaml'
endif
" case sensitivity (fix #17)
@@ -20,7 +20,7 @@ syn keyword dockercomposeKeywords build context dockerfile args cap_add cap_drop
syn keyword dockercomposeKeywords command cgroup_parent container_name devices depends_on
syn keyword dockercomposeKeywords dns dns_search tmpfs entrypoint env_file environment
syn keyword dockercomposeKeywords expose extends extends external_links extra_hosts
syn keyword dockercomposeKeywords group_add image isolation labels links
syn keyword dockercomposeKeywords group_add image isolation labels links
syn keyword dockercomposeKeywords log_opt net network_mode networks aliases
syn keyword dockercomposeKeywords ipv4_address ipv6_address link_local_ips pid ports
syn keyword dockercomposeKeywords security_opt stop_signal ulimits volumes volume_driver
@@ -82,8 +82,3 @@ hi link dockercomposeTodo Todo
hi link bashStatement Function
let b:current_syntax = "dockercompose"
set commentstring=#\ %s
" Enable automatic comment insertion
setlocal fo+=cro

View File

@@ -2,16 +2,16 @@ if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'elixir') != -1
finish
endif
if exists("b:current_syntax")
finish
if !exists("main_syntax")
if exists("b:current_syntax")
finish
endif
let main_syntax = "elixir"
endif
let s:cpo_save = &cpo
set cpo&vim
" syncing starts 2000 lines before top line so docstrings don't screw things up
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
@@ -112,12 +112,14 @@ syn region elixirSigil matchgroup=elixirSigilDelimiter start=+\~\a\z('''\)+ end=
" LiveView Sigils surrounded with ~L"""
syntax include @HTML syntax/html.vim
unlet b:current_syntax
syntax region elixirLiveViewSigil matchgroup=elixirSigilDelimiter keepend start=+\~L\z("""\)+ end=+^\s*\z1+ skip=+\\"+ contains=@HTML fold
" Documentation
if exists('g:elixir_use_markdown_for_docs') && g:elixir_use_markdown_for_docs
syn include @markdown syntax/markdown.vim
unlet b:current_syntax
syn cluster elixirDocStringContained contains=@markdown,@Spell,elixirInterpolation
else
let g:elixir_use_markdown_for_docs = 0
@@ -172,9 +174,12 @@ syn match elixirExceptionDeclaration "[^[:space:];#<]\+" contained
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\)\>"
syn match elixirExUnitMacro "\C\(^\s*\)\@<=\<\(test\|describe\|setup\|setup_all\|on_exit\|doctest\)\>"
syn match elixirExUnitAssert "\C\(^\s*\)\@<=\<\(assert\|assert_in_delta\|assert_raise\|assert_receive\|assert_received\|catch_error\)\>"
syn match elixirExUnitAssert "\C\(^\s*\)\@<=\<\(catch_exit\|catch_throw\|flunk\|refute\|refute_in_delta\|refute_receive\|refute_received\)\>"
" syncing starts 2000 lines before top line so docstrings don't screw things up
syn sync minlines=2000
hi def link elixirBlockDefinition Define
hi def link elixirDefine Define
@@ -234,5 +239,9 @@ hi def link elixirPrivateRecordDeclaration elixirRecordDeclaration
let b:current_syntax = "elixir"
if main_syntax == "elixir"
unlet main_syntax
endif
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@@ -121,7 +121,7 @@ if go#config#HighlightFormatStrings()
\@<=%[-#0 +]*\
\%(\%(\%(\[\d\+\]\)\=\*\)\|\d\+\)\=\
\%(\.\%(\%(\%(\[\d\+\]\)\=\*\)\|\d\+\)\=\)\=\
\%(\[\d\+\]\)\=[vTtbcdoqxXUeEfFgGsp]/ contained containedin=goString,goRawString
\%(\[\d\+\]\)\=[vTtbcdoqxXUeEfFgGspw]/ contained containedin=goString,goRawString
hi def link goFormatSpecifier goSpecialString
endif

View File

@@ -155,11 +155,11 @@ endif
" Strike through
if get(g:, 'vim_markdown_strikethrough', 0)
syn region mkdStrike matchgroup=mkdStrike start="\%(\~\~\)" end="\%(\~\~\)"
execute 'syn region mkdStrike matchgroup=htmlStrike start="\%(\~\~\)" end="\%(\~\~\)"' . s:concealends
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
syn cluster mkdNonListItem contains=@htmlTop,htmlItalic,htmlBold,htmlBoldItalic,mkdFootnotes,mkdInlineURL,mkdLink,mkdLinkDef,mkdLineBreak,mkdBlockquote,mkdCode,mkdRule,htmlH1,htmlH2,htmlH3,htmlH4,htmlH5,htmlH6,mkdMath,mkdStrike
"highlighting for Markdown groups
HtmlHiLink mkdString String

View File

@@ -73,6 +73,7 @@ syn keyword mesonBuiltin
\ add_project_arguments
\ add_project_link_arguments
\ add_test_setup
\ alias_target
\ assert
\ benchmark
\ both_libraries
@@ -101,6 +102,7 @@ syn keyword mesonBuiltin
\ install_headers
\ install_man
\ install_subdir
\ is_disabler
\ is_variable
\ jar
\ join_paths

View File

@@ -6,8 +6,8 @@ endif
" Language: Mustache, Handlebars
" Maintainer: Juvenn Woo <machese@gmail.com>
" Screenshot: http://imgur.com/6F408
" Version: 5
" Last Change: Nov 23rd 2018
" Version: 6
" Last Change: Jul 16 2019
" Remark:
" It lexically hilights embedded mustaches (exclusively) in html file.
" While it was written for Ruby-based Mustache template system, it should
@@ -45,21 +45,34 @@ endif
syntax match mustacheError '}}}\?'
syntax match mustacheInsideError '{{[{$#<>=!\/]\?'
syntax region mustacheInside start=/{{[^!][$#^/]\?/ end=/}}}\?/ keepend containedin=TOP,@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
syntax match mustacheHandlebars '{{\|}}' contained containedin=mustacheInside,@htmlMustacheContainer
syntax match mustacheUnescape '{{{\|}}}' contained containedin=mustacheInside,@htmlMustacheContainer
syntax match mustacheConditionals '\([/#]\?if\|unless\|else\)' contained containedin=mustacheInside
syntax match mustacheHelpers '[/#]\?\(with\|link\-to\|each\(\-in\)\?\)' contained containedin=mustacheInside
syntax match mustacheHelpers 'else \(if\|unless\|with\|link\-to\|each\(\-in\)\?\)' contained containedin=mustacheInside
syntax match mustacheParam /[a-z@_-]\+=/he=e-1 contained containedin=mustacheInside
syntax region mustacheComment start=/{{!/rs=s+2 skip=/{{.\{-}}}/ end=/}}/re=e-2 contains=Todo contained containedin=TOP,mustacheInside,@htmlMustacheContainer
syntax region mustacheBlockComment start=/{{!--/rs=s+2 skip=/{{.\{-}}}/ end=/--}}/re=e-2 contains=Todo contained extend containedin=TOP,mustacheInside,@htmlMustacheContainer
syntax region mustacheQString start=/'/ skip=/\\'/ end=/'/ contained containedin=mustacheInside
syntax region mustacheDQString start=/"/ skip=/\\"/ end=/"/ contained containedin=mustacheInside
" Ember angle bracket syntax syntax starts with a capital letter:
" https://github.com/emberjs/rfcs/blob/master/text/0311-angle-bracket-invocation.md
syntax case match
syntax region mustacheAngleComponent start=/<\/\?[[:upper:]]/ end=/>/ keepend containedin=TOP,@htmlMustacheContainer
syntax case ignore
syntax match mustacheAngleBrackets '</\?\|/\?>' contained containedin=mustacheAngleComponent
syntax match mustacheAngleComponentName '</[[:alnum:]]\+'hs=s+2 contained containedin=mustacheAngleBrackets
syntax match mustacheAngleComponentName '<[[:alnum:]]\+'hs=s+1 contained containedin=mustacheAngleBrackets
syntax region mustacheHbsComponent start=/{{[^!][$#^/]\?/ end=/}}}\?/ keepend containedin=TOP,@htmlMustacheContainer
syntax cluster mustacheInside add=mustacheHbsComponent,mustacheAngleComponent
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
syntax match mustacheHandlebars '{{\|}}' contained containedin=@mustacheInside
syntax match mustacheUnescape '{{{\|}}}' contained containedin=@mustacheInside
syntax match mustacheConditionals '\([/#]\?\<\(if\|unless\)\|\<else\)\>' contained containedin=@mustacheInside
syntax match mustacheHelpers '[/#]\?\<\(with\|link\-to\|each\(\-in\)\?\|let\)\>' contained containedin=@mustacheInside
syntax match mustacheHelpers 'else \(if\|unless\|with\|link\-to\|each\(\-in\)\?\)' contained containedin=@mustacheInside
syntax match mustacheParam /[a-z@_-]\+=/he=e-1 contained containedin=@mustacheInside
syntax region mustacheComment start=/{{!/rs=s+2 skip=/{{.\{-}}}/ end=/}}/re=e-2 contains=Todo contained containedin=TOP,@mustacheInside,@htmlMustacheContainer
syntax region mustacheBlockComment start=/{{!--/rs=s+2 skip=/{{.\{-}}}/ end=/--}}/re=e-2 contains=Todo contained extend containedin=TOP,@mustacheInside,@htmlMustacheContainer
syntax region mustacheQString start=/'/ skip=/\\'/ end=/'/ contained containedin=@mustacheInside
syntax region mustacheDQString start=/"/ skip=/\\"/ end=/"/ contained containedin=@mustacheInside
" Clustering
syntax cluster htmlMustacheContainer add=htmlHead,htmlTitle,htmlString,htmlH1,htmlH2,htmlH3,htmlH4,htmlH5,htmlH6,htmlLink,htmlBold,htmlUnderline,htmlItalic,htmlValue
@@ -73,6 +86,7 @@ HtmlHiLink mustacheVariableUnescape Number
HtmlHiLink mustachePartial Number
HtmlHiLink mustacheMarkerSet Number
HtmlHiLink mustacheParam htmlArg
HtmlHiLink mustacheAngleComponentName htmlTag
HtmlHiLink mustacheComment Comment
HtmlHiLink mustacheBlockComment Comment
@@ -80,6 +94,7 @@ HtmlHiLink mustacheError Error
HtmlHiLink mustacheInsideError Error
HtmlHiLink mustacheHandlebars Special
HtmlHiLink mustacheAngleBrackets htmlTagName
HtmlHiLink mustacheUnescape Identifier
HtmlHiLink mustacheOperators Operator
HtmlHiLink mustacheConditionals Conditional

View File

@@ -33,6 +33,9 @@ endif
" ' can be used in OCaml identifiers
setlocal iskeyword+='
" ` is part of the name of polymorphic variants
setlocal iskeyword+=`
" OCaml is case sensitive.
syn case match

View File

@@ -5,11 +5,11 @@ endif
" Vim syntax file
" Language: SQL (PostgreSQL dialect), PL/pgSQL, PL/…, PostGIS, …
" Maintainer: Lifepillar
" Version: 2.2.0
" Version: 2.2.2
" License: This file is placed in the public domain.
" Based on PostgreSQL 11.2
" Automatically generated on 2019-02-25 at 08:57:58
" Based on PostgreSQL 11.4
" Automatically generated on 2019-08-08 at 11:23:38
if exists("b:current_syntax")
finish
@@ -26,10 +26,10 @@ syn region sqlIsPsql start=/^\s*\\/ end=/\n/ oneline contains=sqlPsqlCommand,
syn keyword sqlSpecial contained false null true
" Statements
syn keyword sqlStatement contained abort alter analyze begin checkpoint close cluster comment commit
syn keyword sqlStatement contained constraints copy create deallocate declare delete discard do drop end
syn keyword sqlStatement contained execute explain fetch grant import insert label listen load lock move
syn keyword sqlStatement contained notify prepare prepared reassign refresh reindex release reset
syn keyword sqlStatement contained abort add alter analyze begin checkpoint close cluster comment
syn keyword sqlStatement contained commit constraints copy create deallocate declare delete discard do drop
syn keyword sqlStatement contained end execute explain fetch grant import insert label listen load lock
syn keyword sqlStatement contained move notify prepare prepared reassign refresh reindex release reset
syn keyword sqlStatement contained revoke rollback savepoint security select select set show start
syn keyword sqlStatement contained transaction truncate unlisten update vacuum values work
" Types
@@ -68,55 +68,68 @@ syn keyword sqlType contained txid_snapshot unionarg upc us_gaz us_gaz_id_seq us
syn keyword sqlType contained us_rules us_rules_id_seq uuid valid_detail
syn keyword sqlType contained validatetopology_returntype varbit varchar void xid xml yes_or_no zcta5 zcta5_gid_seq
syn keyword sqlType contained zip_lookup zip_lookup_all zip_lookup_base zip_state zip_state_loc
syn match sqlType /pg_toast_\d\+/
syn match sqlType /\<pg_toast_\d\+\>/
syn match sqlType /\<time\%[stamp]\s\+with\%[out]\>/
syn match sqlKeyword /\<with\s\+grant\>/
syn match sqlKeyword /\<on\s\+\%(tables\|sequences\|routines\)\>/
syn match sqlType /\<text\>/
syn match sqlKeyword /\<text\s\+search\>/
" Additional types
syn keyword sqlType contained array bigint bigserial bit boolean char character cube decimal
syn keyword sqlType contained array at bigint bigserial bit boolean char character cube decimal
syn keyword sqlType contained double int integer interval numeric precision real serial serial2
syn keyword sqlType contained serial4 serial8 smallint smallserial text timestamp varchar varying xml
syn keyword sqlType contained zone
syn keyword sqlType contained serial4 serial8 smallint smallserial timestamp varchar varying xml zone
" Keywords
syn keyword sqlKeyword contained absolute access action add admin after aggregate all also always
syn keyword sqlKeyword contained analyse and any as asc assertion assignment asymmetric at attach
syn keyword sqlKeyword contained attribute authorization backward before between binary both by cache call
syn keyword sqlKeyword contained called cascade cascaded case cast catalog chain characteristics check
syn keyword sqlKeyword contained class coalesce collate collation column columns comments committed
syn keyword sqlKeyword contained concurrently configuration conflict connection constraint
syn keyword sqlKeyword contained content continue conversion cost cross csv current current_catalog
syn keyword sqlKeyword contained current_date current_role current_schema current_time
syn keyword sqlKeyword contained current_timestamp current_user cursor cycle data database day dec default defaults
syn keyword sqlKeyword contained absolute access action admin after aggregate all also always
syn keyword sqlKeyword contained analyse and any as asc assertion assignment asymmetric attach attribute
syn keyword sqlKeyword contained authorization backward basetype before between binary both by
syn keyword sqlKeyword contained bypassrls cache call called cascade cascaded case cast catalog century chain
syn keyword sqlKeyword contained characteristics check class coalesce collate collation column
syn keyword sqlKeyword contained columns combinefunc comments committed concurrently configuration
syn keyword sqlKeyword contained conflict connection constraint content continue conversion cost
syn keyword sqlKeyword contained createdb createrole cross csv current current_catalog current_date
syn keyword sqlKeyword contained current_role current_schema current_time current_timestamp
syn keyword sqlKeyword contained current_user cursor cycle data database day dec decade default defaults
syn keyword sqlKeyword contained deferrable deferred definer delimiter delimiters depends desc
syn keyword sqlKeyword contained detach dictionary disable distinct document domain each else enable
syn keyword sqlKeyword contained encoding encrypted enum escape event except exclude excluding exclusive
syn keyword sqlKeyword contained exists extension external extract false family filter first float
syn keyword sqlKeyword contained deserialfunc detach dictionary disable distinct document domain dow doy each
syn keyword sqlKeyword contained else enable encoding encrypted enum epoch escape event except exclude
syn keyword sqlKeyword contained excluding exclusive exists extension external extract false family
syn keyword sqlKeyword contained filter finalfunc finalfunc_extra finalfunc_modify first float
syn keyword sqlKeyword contained following for force foreign forward freeze from full function functions
syn keyword sqlKeyword contained generated global granted greatest group grouping groups handler
syn keyword sqlKeyword contained having header hold hour identity if ilike immediate immutable implicit
syn keyword sqlKeyword contained in include including increment index indexes inherit inherits
syn keyword sqlKeyword contained initially inline inner inout input insensitive instead intersect into
syn keyword sqlKeyword contained invoker is isnull isolation join key language large last lateral leading
syn keyword sqlKeyword contained leakproof least left level like limit local localtime localtimestamp
syn keyword sqlKeyword contained location locked logged mapping match materialized maxvalue method
syn keyword sqlKeyword contained minute minvalue mode month name names national natural nchar new next
syn keyword sqlKeyword contained no none not nothing notnull nowait null nullif nulls object of off
syn keyword sqlKeyword contained offset oids old on only operator option options or order ordinality others
syn keyword sqlKeyword contained out outer over overlaps overlay overriding owned owner parallel
syn keyword sqlKeyword contained parser partial partition passing password placing plans policy position
syn keyword sqlKeyword contained preceding preserve primary prior privileges procedural procedure
syn keyword sqlKeyword contained procedures program publication quote range read recheck recursive ref
syn keyword sqlKeyword contained references referencing relative rename repeatable replace replica
syn keyword sqlKeyword contained restart restrict returning returns right role rollup routine
syn keyword sqlKeyword contained routines row rows rule schema schemas scroll search second sequence
syn keyword sqlKeyword contained sequences serializable server session session_user setof sets share
syn keyword sqlKeyword contained similar simple skip snapshot some sql stable standalone statement
syn keyword sqlKeyword contained statistics stdin stdout storage strict strip subscription substring
syn keyword sqlKeyword contained symmetric sysid system table tables tablesample tablespace temp template
syn keyword sqlKeyword contained temporary then ties to trailing transform treat trigger trim true
syn keyword sqlKeyword contained having header hold hour hypothetical identity if ilike immediate
syn keyword sqlKeyword contained immutable implicit in include including increment index indexes inherit
syn keyword sqlKeyword contained inherits initcond initially inline inner inout input insensitive
syn keyword sqlKeyword contained instead intersect into invoker is isnull isodow isolation isoyear join key
syn keyword sqlKeyword contained language large last lateral lc_collate lc_ctype leading leakproof
syn keyword sqlKeyword contained least left level like limit local locale localtime localtimestamp
syn keyword sqlKeyword contained location locked logged login mapping match materialized maxvalue
syn keyword sqlKeyword contained method mfinalfunc mfinalfunc_extra mfinalfunc_modify microseconds
syn keyword sqlKeyword contained millennium milliseconds minitcond minute minvalue minvfunc mode month
syn keyword sqlKeyword contained msfunc msspace mstype name names national natural nchar new next no
syn keyword sqlKeyword contained nobypassrls nocreatedb nocreaterole noinherit nologin none
syn keyword sqlKeyword contained noreplication nosuperuser not nothing notnull nowait null nullif nulls
syn keyword sqlKeyword contained object of off offset oids old on only operator option options or order
syn keyword sqlKeyword contained ordinality others out outer over overlaps overlay overriding owned owner
syn keyword sqlKeyword contained parallel parser partial partition passing password permissive
syn keyword sqlKeyword contained placing plans policy position preceding preserve primary prior privileges
syn keyword sqlKeyword contained procedural procedure procedures program provider public
syn keyword sqlKeyword contained publication quarter quote range read read_write readonly recheck recursive
syn keyword sqlKeyword contained ref references referencing relative rename repeatable replace
syn keyword sqlKeyword contained replica replication restart restrict restricted restrictive returning
syn keyword sqlKeyword contained returns right role rollup routine routines row rows rule safe schema
syn keyword sqlKeyword contained schemas scroll search second sequence sequences serialfunc
syn keyword sqlKeyword contained serializable server session session_user setof sets sfunc share shareable
syn keyword sqlKeyword contained similar simple skip snapshot some sortop sql sspace stable standalone
syn keyword sqlKeyword contained statement statistics stdin stdout storage strict strip stype
syn keyword sqlKeyword contained subscription substring superuser symmetric sysid system table tables
syn keyword sqlKeyword contained tablesample tablespace temp template temporary then ties timezone
syn keyword sqlKeyword contained timezone_hour timezone_minute to trailing transform treat trigger trim true
syn keyword sqlKeyword contained trusted type types unbounded uncommitted unencrypted union unique
syn keyword sqlKeyword contained unknown unlogged until user using valid validate validator value variadic
syn keyword sqlKeyword contained verbose version view views volatile when where whitespace window with
syn keyword sqlKeyword contained within without wrapper write xmlattributes xmlconcat xmlelement
syn keyword sqlKeyword contained xmlexists xmlforest xmlnamespaces xmlparse xmlpi xmlroot
syn keyword sqlKeyword contained xmlserialize xmltable year yes
syn keyword sqlKeyword contained unknown unlogged unsafe until usage user using valid validate
syn keyword sqlKeyword contained validator value variadic verbose version view views volatile week when where
syn keyword sqlKeyword contained whitespace window with within without wrapper write xmlattributes
syn keyword sqlKeyword contained xmlconcat xmlelement xmlexists xmlforest xmlnamespaces xmlparse
syn keyword sqlKeyword contained xmlpi xmlroot xmlserialize xmltable year yes
syn keyword sqlConstant contained information_schema pg_catalog
" Built-in functions
syn keyword sqlFunction contained RI_FKey_cascade_del RI_FKey_cascade_upd RI_FKey_check_ins
@@ -523,90 +536,89 @@ syn keyword sqlFunction contained pg_walfile_name pg_walfile_name_offset pg_xact
syn keyword sqlFunction contained phraseto_tsquery pi plainto_tsquery plperl_call_handler
syn keyword sqlFunction contained plperl_inline_handler plperl_validator plperlu_call_handler
syn keyword sqlFunction contained plperlu_inline_handler plperlu_validator plpgsql_call_handler
syn keyword sqlFunction contained plpgsql_inline_handler plpgsql_validator plpython3_call_handler
syn keyword sqlFunction contained plpython3_inline_handler plpython3_validator pltcl_call_handler
syn keyword sqlFunction contained plpgsql_inline_handler plpgsql_validator pltcl_call_handler
syn keyword sqlFunction contained pltclu_call_handler point point_above point_add point_below point_distance
syn keyword sqlFunction contained point_div point_eq point_horiz point_in point_left point_mul
syn keyword sqlFunction contained point_ne point_out point_recv point_right point_send point_sub
syn keyword sqlFunction contained point_vert poly_above poly_below poly_center poly_contain
syn keyword sqlFunction contained poly_contain_pt poly_contained poly_distance poly_in poly_left poly_npoints
syn keyword sqlFunction contained poly_out poly_overabove poly_overbelow poly_overlap
syn keyword sqlFunction contained poly_overleft poly_overright poly_recv poly_right poly_same poly_send polygon
syn keyword sqlFunction contained popen position positionjoinsel positionsel
syn keyword sqlFunction contained postgresql_fdw_validator pow power prefixjoinsel prefixsel prsd_end prsd_headline
syn keyword sqlFunction contained point_div point_eq point_horiz point_in point_left point_mul point_ne
syn keyword sqlFunction contained point_out point_recv point_right point_send point_sub point_vert
syn keyword sqlFunction contained poly_above poly_below poly_center poly_contain poly_contain_pt
syn keyword sqlFunction contained poly_contained poly_distance poly_in poly_left poly_npoints
syn keyword sqlFunction contained poly_out poly_overabove poly_overbelow poly_overlap poly_overleft
syn keyword sqlFunction contained poly_overright poly_recv poly_right poly_same poly_send polygon popen
syn keyword sqlFunction contained position positionjoinsel positionsel postgresql_fdw_validator
syn keyword sqlFunction contained pow power prefixjoinsel prefixsel prsd_end prsd_headline
syn keyword sqlFunction contained prsd_lextype prsd_nexttoken prsd_start pt_contained_circle
syn keyword sqlFunction contained pt_contained_poly query_to_xml query_to_xml_and_xmlschema
syn keyword sqlFunction contained query_to_xmlschema querytree quote_ident quote_literal quote_nullable
syn keyword sqlFunction contained radians radius random range_adjacent range_after range_before range_cmp
syn keyword sqlFunction contained pt_contained_poly query_to_xml query_to_xml_and_xmlschema query_to_xmlschema
syn keyword sqlFunction contained querytree quote_ident quote_literal quote_nullable radians
syn keyword sqlFunction contained radius random range_adjacent range_after range_before range_cmp
syn keyword sqlFunction contained range_contained_by range_contains range_contains_elem range_eq
syn keyword sqlFunction contained range_ge range_gist_consistent range_gist_penalty
syn keyword sqlFunction contained range_gist_picksplit range_gist_same range_gist_union range_gt range_in
syn keyword sqlFunction contained range_intersect range_le range_lt range_merge range_minus range_ne
syn keyword sqlFunction contained range_out range_overlaps range_overleft range_overright
syn keyword sqlFunction contained range_recv range_send range_typanalyze range_union rangesel rank
syn keyword sqlFunction contained rank_final record_eq record_ge record_gt record_image_eq record_image_ge
syn keyword sqlFunction contained range_out range_overlaps range_overleft range_overright range_recv
syn keyword sqlFunction contained range_send range_typanalyze range_union rangesel rank rank_final
syn keyword sqlFunction contained record_eq record_ge record_gt record_image_eq record_image_ge
syn keyword sqlFunction contained record_image_gt record_image_le record_image_lt record_image_ne
syn keyword sqlFunction contained record_in record_le record_lt record_ne record_out record_recv
syn keyword sqlFunction contained record_send regclass regclassin regclassout regclassrecv
syn keyword sqlFunction contained regclasssend regconfigin regconfigout regconfigrecv regconfigsend
syn keyword sqlFunction contained record_send regclass regclassin regclassout regclassrecv regclasssend
syn keyword sqlFunction contained regconfigin regconfigout regconfigrecv regconfigsend
syn keyword sqlFunction contained regdictionaryin regdictionaryout regdictionaryrecv regdictionarysend
syn keyword sqlFunction contained regexeqjoinsel regexeqsel regexnejoinsel regexnesel regexp_match
syn keyword sqlFunction contained regexp_matches regexp_replace regexp_split_to_array
syn keyword sqlFunction contained regexp_split_to_table regnamespacein regnamespaceout regnamespacerecv
syn keyword sqlFunction contained regnamespacesend regoperatorin regoperatorout regoperatorrecv
syn keyword sqlFunction contained regoperatorsend regoperin regoperout regoperrecv regopersend
syn keyword sqlFunction contained regprocedurein regprocedureout regprocedurerecv regproceduresend
syn keyword sqlFunction contained regprocin regprocout regprocrecv regprocsend regr_avgx regr_avgy
syn keyword sqlFunction contained regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy
syn keyword sqlFunction contained regr_syy regrolein regroleout regrolerecv regrolesend regtypein
syn keyword sqlFunction contained regtypeout regtyperecv regtypesend reltime reltimeeq reltimege reltimegt
syn keyword sqlFunction contained regprocedurein regprocedureout regprocedurerecv regproceduresend regprocin
syn keyword sqlFunction contained regprocout regprocrecv regprocsend regr_avgx regr_avgy regr_count
syn keyword sqlFunction contained regr_intercept regr_r2 regr_slope regr_sxx regr_sxy regr_syy
syn keyword sqlFunction contained regrolein regroleout regrolerecv regrolesend regtypein regtypeout
syn keyword sqlFunction contained regtyperecv regtypesend reltime reltimeeq reltimege reltimegt
syn keyword sqlFunction contained reltimein reltimele reltimelt reltimene reltimeout reltimerecv
syn keyword sqlFunction contained reltimesend repeat replace reverse right round row_number
syn keyword sqlFunction contained row_security_active row_to_json rpad rtrim satisfies_hash_partition
syn keyword sqlFunction contained scalargejoinsel scalargesel scalargtjoinsel scalargtsel
syn keyword sqlFunction contained scalarlejoinsel scalarlesel scalarltjoinsel scalarltsel scale schema_to_xml
syn keyword sqlFunction contained schema_to_xml_and_xmlschema schema_to_xmlschema session_user
syn keyword sqlFunction contained set_bit set_byte set_config set_masklen setseed setval setweight
syn keyword sqlFunction contained sha224 sha256 sha384 sha512 shell_in shell_out
syn keyword sqlFunction contained shift_jis_2004_to_euc_jis_2004 shift_jis_2004_to_utf8 shobj_description sign
syn keyword sqlFunction contained similar_escape sin sind sjis_to_euc_jp sjis_to_mic sjis_to_utf8 slope
syn keyword sqlFunction contained smgreq smgrin smgrne smgrout spg_bbox_quad_config spg_box_quad_choose
syn keyword sqlFunction contained scalargejoinsel scalargesel scalargtjoinsel scalargtsel scalarlejoinsel
syn keyword sqlFunction contained scalarlesel scalarltjoinsel scalarltsel scale schema_to_xml
syn keyword sqlFunction contained schema_to_xml_and_xmlschema schema_to_xmlschema session_user set_bit
syn keyword sqlFunction contained set_byte set_config set_masklen setseed setval setweight sha224
syn keyword sqlFunction contained sha256 sha384 sha512 shell_in shell_out
syn keyword sqlFunction contained shift_jis_2004_to_euc_jis_2004 shift_jis_2004_to_utf8 shobj_description sign similar_escape
syn keyword sqlFunction contained sin sind sjis_to_euc_jp sjis_to_mic sjis_to_utf8 slope smgreq
syn keyword sqlFunction contained smgrin smgrne smgrout spg_bbox_quad_config spg_box_quad_choose
syn keyword sqlFunction contained spg_box_quad_config spg_box_quad_inner_consistent
syn keyword sqlFunction contained spg_box_quad_leaf_consistent spg_box_quad_picksplit spg_kd_choose
syn keyword sqlFunction contained spg_kd_config spg_kd_inner_consistent spg_kd_picksplit
syn keyword sqlFunction contained spg_poly_quad_compress spg_quad_choose spg_quad_config
syn keyword sqlFunction contained spg_quad_inner_consistent spg_quad_leaf_consistent spg_quad_picksplit
syn keyword sqlFunction contained spg_range_quad_choose spg_range_quad_config
syn keyword sqlFunction contained spg_range_quad_inner_consistent spg_range_quad_leaf_consistent spg_range_quad_picksplit
syn keyword sqlFunction contained spg_box_quad_leaf_consistent spg_box_quad_picksplit spg_kd_choose spg_kd_config
syn keyword sqlFunction contained spg_kd_inner_consistent spg_kd_picksplit
syn keyword sqlFunction contained spg_poly_quad_compress spg_quad_choose spg_quad_config spg_quad_inner_consistent
syn keyword sqlFunction contained spg_quad_leaf_consistent spg_quad_picksplit
syn keyword sqlFunction contained spg_range_quad_choose spg_range_quad_config spg_range_quad_inner_consistent
syn keyword sqlFunction contained spg_range_quad_leaf_consistent spg_range_quad_picksplit
syn keyword sqlFunction contained spg_text_choose spg_text_config spg_text_inner_consistent
syn keyword sqlFunction contained spg_text_leaf_consistent spg_text_picksplit spghandler split_part sqrt
syn keyword sqlFunction contained starts_with statement_timestamp stddev stddev_pop stddev_samp
syn keyword sqlFunction contained string_agg string_agg_finalfn string_agg_transfn string_to_array
syn keyword sqlFunction contained strip strpos substr substring sum
syn keyword sqlFunction contained suppress_redundant_updates_trigger system table_to_xml table_to_xml_and_xmlschema
syn keyword sqlFunction contained table_to_xmlschema tan tand text text_ge text_gt text_larger text_le text_lt
syn keyword sqlFunction contained string_agg string_agg_finalfn string_agg_transfn string_to_array strip
syn keyword sqlFunction contained strpos substr substring sum suppress_redundant_updates_trigger
syn keyword sqlFunction contained system table_to_xml table_to_xml_and_xmlschema table_to_xmlschema
syn keyword sqlFunction contained tan tand text text_ge text_gt text_larger text_le text_lt
syn keyword sqlFunction contained text_pattern_ge text_pattern_gt text_pattern_le text_pattern_lt
syn keyword sqlFunction contained text_smaller textanycat textcat texteq texticlike texticnlike
syn keyword sqlFunction contained texticregexeq texticregexne textin textlen textlike textne textnlike
syn keyword sqlFunction contained textout textrecv textregexeq textregexne textsend thesaurus_init
syn keyword sqlFunction contained thesaurus_lexize tideq tidge tidgt tidin tidlarger tidle tidlt tidne
syn keyword sqlFunction contained tidout tidrecv tidsend tidsmaller time time_cmp time_eq time_ge
syn keyword sqlFunction contained time_gt time_hash time_hash_extended time_in time_larger time_le
syn keyword sqlFunction contained time_lt time_mi_interval time_mi_time time_ne time_out
syn keyword sqlFunction contained time_pl_interval time_recv time_send time_smaller time_transform timedate_pl
syn keyword sqlFunction contained timemi timenow timeofday timepl timestamp timestamp_cmp
syn keyword sqlFunction contained timestamp_cmp_date timestamp_cmp_timestamptz timestamp_eq
syn keyword sqlFunction contained timestamp_eq_date timestamp_eq_timestamptz timestamp_ge timestamp_ge_date
syn keyword sqlFunction contained texticregexeq texticregexne textin textlen textlike textne textnlike textout
syn keyword sqlFunction contained textrecv textregexeq textregexne textsend thesaurus_init
syn keyword sqlFunction contained thesaurus_lexize tideq tidge tidgt tidin tidlarger tidle tidlt tidne tidout
syn keyword sqlFunction contained tidrecv tidsend tidsmaller time time_cmp time_eq time_ge time_gt
syn keyword sqlFunction contained time_hash time_hash_extended time_in time_larger time_le time_lt
syn keyword sqlFunction contained time_mi_interval time_mi_time time_ne time_out time_pl_interval
syn keyword sqlFunction contained time_recv time_send time_smaller time_transform timedate_pl timemi
syn keyword sqlFunction contained timenow timeofday timepl timestamp timestamp_cmp
syn keyword sqlFunction contained timestamp_cmp_date timestamp_cmp_timestamptz timestamp_eq timestamp_eq_date
syn keyword sqlFunction contained timestamp_eq_timestamptz timestamp_ge timestamp_ge_date
syn keyword sqlFunction contained timestamp_ge_timestamptz timestamp_gt timestamp_gt_date
syn keyword sqlFunction contained timestamp_gt_timestamptz timestamp_hash timestamp_hash_extended
syn keyword sqlFunction contained timestamp_in timestamp_izone_transform timestamp_larger timestamp_le
syn keyword sqlFunction contained timestamp_gt_timestamptz timestamp_hash timestamp_hash_extended timestamp_in
syn keyword sqlFunction contained timestamp_izone_transform timestamp_larger timestamp_le
syn keyword sqlFunction contained timestamp_le_date timestamp_le_timestamptz timestamp_lt
syn keyword sqlFunction contained timestamp_lt_date timestamp_lt_timestamptz timestamp_mi
syn keyword sqlFunction contained timestamp_mi_interval timestamp_ne timestamp_ne_date
syn keyword sqlFunction contained timestamp_ne_timestamptz timestamp_out timestamp_pl_interval timestamp_recv
syn keyword sqlFunction contained timestamp_send timestamp_smaller timestamp_sortsupport
syn keyword sqlFunction contained timestamp_transform timestamp_zone_transform timestamptypmodin
syn keyword sqlFunction contained timestamptypmodout timestamptz timestamptz_cmp timestamptz_cmp_date
syn keyword sqlFunction contained timestamp_mi_interval timestamp_ne timestamp_ne_date timestamp_ne_timestamptz
syn keyword sqlFunction contained timestamp_out timestamp_pl_interval timestamp_recv timestamp_send
syn keyword sqlFunction contained timestamp_smaller timestamp_sortsupport timestamp_transform
syn keyword sqlFunction contained timestamp_zone_transform timestamptypmodin timestamptypmodout
syn keyword sqlFunction contained timestamptz timestamptz_cmp timestamptz_cmp_date
syn keyword sqlFunction contained timestamptz_cmp_timestamp timestamptz_eq timestamptz_eq_date
syn keyword sqlFunction contained timestamptz_eq_timestamp timestamptz_ge timestamptz_ge_date
syn keyword sqlFunction contained timestamptz_ge_timestamp timestamptz_gt timestamptz_gt_date
@@ -615,78 +627,77 @@ syn keyword sqlFunction contained timestamptz_le_date timestamptz_le_timestamp t
syn keyword sqlFunction contained timestamptz_lt_date timestamptz_lt_timestamp timestamptz_mi
syn keyword sqlFunction contained timestamptz_mi_interval timestamptz_ne timestamptz_ne_date
syn keyword sqlFunction contained timestamptz_ne_timestamp timestamptz_out timestamptz_pl_interval
syn keyword sqlFunction contained timestamptz_recv timestamptz_send timestamptz_smaller
syn keyword sqlFunction contained timestamptztypmodin timestamptztypmodout timetypmodin timetypmodout timetz
syn keyword sqlFunction contained timetz_cmp timetz_eq timetz_ge timetz_gt timetz_hash
syn keyword sqlFunction contained timetz_hash_extended timetz_in timetz_larger timetz_le timetz_lt
syn keyword sqlFunction contained timetz_mi_interval timetz_ne timetz_out timetz_pl_interval timetz_recv
syn keyword sqlFunction contained timetz_send timetz_smaller timetzdate_pl timetztypmodin timetztypmodout
syn keyword sqlFunction contained timezone tinterval tintervalct tintervalend tintervaleq
syn keyword sqlFunction contained tintervalge tintervalgt tintervalin tintervalle tintervalleneq
syn keyword sqlFunction contained tintervallenge tintervallengt tintervallenle tintervallenlt
syn keyword sqlFunction contained tintervallenne tintervallt tintervalne tintervalout tintervalov
syn keyword sqlFunction contained tintervalrecv tintervalrel tintervalsame tintervalsend tintervalstart
syn keyword sqlFunction contained to_ascii to_char to_date to_hex to_json to_jsonb to_number to_regclass
syn keyword sqlFunction contained to_regnamespace to_regoper to_regoperator to_regproc
syn keyword sqlFunction contained to_regprocedure to_regrole to_regtype to_timestamp to_tsquery to_tsvector
syn keyword sqlFunction contained transaction_timestamp translate trigger_in trigger_out trunc
syn keyword sqlFunction contained ts_debug ts_delete ts_filter ts_headline ts_lexize ts_match_qv
syn keyword sqlFunction contained ts_match_tq ts_match_tt ts_match_vq ts_parse ts_rank ts_rank_cd
syn keyword sqlFunction contained ts_rewrite ts_stat ts_token_type ts_typanalyze tsm_handler_in
syn keyword sqlFunction contained tsm_handler_out tsmatchjoinsel tsmatchsel tsq_mcontained tsq_mcontains
syn keyword sqlFunction contained timestamptz_recv timestamptz_send timestamptz_smaller timestamptztypmodin
syn keyword sqlFunction contained timestamptztypmodout timetypmodin timetypmodout timetz timetz_cmp
syn keyword sqlFunction contained timetz_eq timetz_ge timetz_gt timetz_hash timetz_hash_extended
syn keyword sqlFunction contained timetz_in timetz_larger timetz_le timetz_lt timetz_mi_interval
syn keyword sqlFunction contained timetz_ne timetz_out timetz_pl_interval timetz_recv timetz_send
syn keyword sqlFunction contained timetz_smaller timetzdate_pl timetztypmodin timetztypmodout
syn keyword sqlFunction contained timezone tinterval tintervalct tintervalend tintervaleq tintervalge
syn keyword sqlFunction contained tintervalgt tintervalin tintervalle tintervalleneq tintervallenge
syn keyword sqlFunction contained tintervallengt tintervallenle tintervallenlt tintervallenne
syn keyword sqlFunction contained tintervallt tintervalne tintervalout tintervalov tintervalrecv
syn keyword sqlFunction contained tintervalrel tintervalsame tintervalsend tintervalstart to_ascii
syn keyword sqlFunction contained to_char to_date to_hex to_json to_jsonb to_number to_regclass
syn keyword sqlFunction contained to_regnamespace to_regoper to_regoperator to_regproc to_regprocedure
syn keyword sqlFunction contained to_regrole to_regtype to_timestamp to_tsquery to_tsvector
syn keyword sqlFunction contained transaction_timestamp translate trigger_in trigger_out trunc ts_debug
syn keyword sqlFunction contained ts_delete ts_filter ts_headline ts_lexize ts_match_qv ts_match_tq
syn keyword sqlFunction contained ts_match_tt ts_match_vq ts_parse ts_rank ts_rank_cd ts_rewrite
syn keyword sqlFunction contained ts_stat ts_token_type ts_typanalyze tsm_handler_in tsm_handler_out
syn keyword sqlFunction contained tsmatchjoinsel tsmatchsel tsq_mcontained tsq_mcontains
syn keyword sqlFunction contained tsquery_and tsquery_cmp tsquery_eq tsquery_ge tsquery_gt tsquery_le
syn keyword sqlFunction contained tsquery_lt tsquery_ne tsquery_not tsquery_or tsquery_phrase
syn keyword sqlFunction contained tsqueryin tsqueryout tsqueryrecv tsquerysend tsrange tsrange_subdiff
syn keyword sqlFunction contained tstzrange tstzrange_subdiff tsvector_cmp tsvector_concat
syn keyword sqlFunction contained tsvector_eq tsvector_ge tsvector_gt tsvector_le tsvector_lt tsvector_ne
syn keyword sqlFunction contained tsquery_lt tsquery_ne tsquery_not tsquery_or tsquery_phrase tsqueryin
syn keyword sqlFunction contained tsqueryout tsqueryrecv tsquerysend tsrange tsrange_subdiff
syn keyword sqlFunction contained tstzrange tstzrange_subdiff tsvector_cmp tsvector_concat tsvector_eq
syn keyword sqlFunction contained tsvector_ge tsvector_gt tsvector_le tsvector_lt tsvector_ne
syn keyword sqlFunction contained tsvector_to_array tsvector_update_trigger
syn keyword sqlFunction contained tsvector_update_trigger_column tsvectorin tsvectorout tsvectorrecv tsvectorsend
syn keyword sqlFunction contained txid_current txid_current_if_assigned txid_current_snapshot
syn keyword sqlFunction contained txid_snapshot_in txid_snapshot_out txid_snapshot_recv
syn keyword sqlFunction contained txid_snapshot_send txid_snapshot_xip txid_snapshot_xmax txid_snapshot_xmin
syn keyword sqlFunction contained txid_status txid_visible_in_snapshot uhc_to_utf8
syn keyword sqlFunction contained unique_key_recheck unknownin unknownout unknownrecv unknownsend unnest upper
syn keyword sqlFunction contained upper_inc upper_inf utf8_to_ascii utf8_to_big5 utf8_to_euc_cn
syn keyword sqlFunction contained txid_snapshot_in txid_snapshot_out txid_snapshot_recv txid_snapshot_send
syn keyword sqlFunction contained txid_snapshot_xip txid_snapshot_xmax txid_snapshot_xmin
syn keyword sqlFunction contained txid_status txid_visible_in_snapshot uhc_to_utf8 unique_key_recheck
syn keyword sqlFunction contained unknownin unknownout unknownrecv unknownsend unnest upper upper_inc
syn keyword sqlFunction contained upper_inf utf8_to_ascii utf8_to_big5 utf8_to_euc_cn
syn keyword sqlFunction contained utf8_to_euc_jis_2004 utf8_to_euc_jp utf8_to_euc_kr utf8_to_euc_tw
syn keyword sqlFunction contained utf8_to_gb18030 utf8_to_gbk utf8_to_iso8859 utf8_to_iso8859_1
syn keyword sqlFunction contained utf8_to_johab utf8_to_koi8r utf8_to_koi8u utf8_to_shift_jis_2004
syn keyword sqlFunction contained utf8_to_sjis utf8_to_uhc utf8_to_win uuid_cmp uuid_eq uuid_ge
syn keyword sqlFunction contained uuid_gt uuid_hash uuid_hash_extended uuid_in uuid_le uuid_lt uuid_ne
syn keyword sqlFunction contained uuid_out uuid_recv uuid_send uuid_sortsupport var_pop var_samp
syn keyword sqlFunction contained varbit varbit_in varbit_out varbit_recv varbit_send
syn keyword sqlFunction contained varbit_transform varbitcmp varbiteq varbitge varbitgt varbitle varbitlt varbitne
syn keyword sqlFunction contained varbittypmodin varbittypmodout varchar varchar_transform
syn keyword sqlFunction contained varcharin varcharout varcharrecv varcharsend varchartypmodin
syn keyword sqlFunction contained varchartypmodout variance version void_in void_out void_recv void_send
syn keyword sqlFunction contained websearch_to_tsquery width width_bucket win1250_to_latin2
syn keyword sqlFunction contained win1250_to_mic win1251_to_iso win1251_to_koi8r win1251_to_mic
syn keyword sqlFunction contained win1251_to_win866 win866_to_iso win866_to_koi8r win866_to_mic
syn keyword sqlFunction contained win866_to_win1251 win_to_utf8 xideq xideqint4 xidin xidneq xidneqint4 xidout
syn keyword sqlFunction contained xidrecv xidsend xml xml_in xml_is_well_formed
syn keyword sqlFunction contained xml_is_well_formed_content xml_is_well_formed_document xml_out xml_recv xml_send
syn keyword sqlFunction contained xmlagg xmlcomment xmlconcat2 xmlexists xmlvalidate xpath
syn keyword sqlFunction contained xpath_exists
syn keyword sqlFunction contained utf8_to_sjis utf8_to_uhc utf8_to_win uuid_cmp uuid_eq uuid_ge uuid_gt
syn keyword sqlFunction contained uuid_hash uuid_hash_extended uuid_in uuid_le uuid_lt uuid_ne
syn keyword sqlFunction contained uuid_out uuid_recv uuid_send uuid_sortsupport var_pop var_samp varbit
syn keyword sqlFunction contained varbit_in varbit_out varbit_recv varbit_send varbit_transform
syn keyword sqlFunction contained varbitcmp varbiteq varbitge varbitgt varbitle varbitlt varbitne
syn keyword sqlFunction contained varbittypmodin varbittypmodout varchar varchar_transform varcharin
syn keyword sqlFunction contained varcharout varcharrecv varcharsend varchartypmodin varchartypmodout
syn keyword sqlFunction contained variance version void_in void_out void_recv void_send
syn keyword sqlFunction contained websearch_to_tsquery width width_bucket win1250_to_latin2 win1250_to_mic
syn keyword sqlFunction contained win1251_to_iso win1251_to_koi8r win1251_to_mic win1251_to_win866
syn keyword sqlFunction contained win866_to_iso win866_to_koi8r win866_to_mic win866_to_win1251
syn keyword sqlFunction contained win_to_utf8 xideq xideqint4 xidin xidneq xidneqint4 xidout xidrecv
syn keyword sqlFunction contained xidsend xml xml_in xml_is_well_formed xml_is_well_formed_content
syn keyword sqlFunction contained xml_is_well_formed_document xml_out xml_recv xml_send xmlagg
syn keyword sqlFunction contained xmlcomment xmlconcat2 xmlexists xmlvalidate xpath xpath_exists
" Extensions names
syn keyword sqlConstant contained address_standardizer address_standardizer_data_us adminpack
syn keyword sqlConstant contained amcheck autoinc bloom btree_gin btree_gist citext cube dblink
syn keyword sqlConstant contained dict_int dict_xsyn earthdistance file_fdw fuzzystrmatch hstore
syn keyword sqlConstant contained hstore_plperl hstore_plperlu hstore_plpython3u insert_username intagg
syn keyword sqlConstant contained intarray isn jsonb_plperl jsonb_plperlu jsonb_plpython3u lo ltree
syn keyword sqlConstant contained ltree_plpython3u moddatetime pageinspect pg_buffercache
syn keyword sqlConstant contained pg_freespacemap pg_prewarm pg_stat_statements pg_trgm pg_visibility
syn keyword sqlConstant contained pgcrypto pgrouting pgrowlocks pgstattuple pgtap plperl plperlu plpgsql
syn keyword sqlConstant contained plpython3u pltcl pltclu postgis postgis_sfcgal
syn keyword sqlConstant contained hstore_plperl hstore_plperlu insert_username intagg intarray isn
syn keyword sqlConstant contained jsonb_plperl jsonb_plperlu lo ltree moddatetime pageinspect
syn keyword sqlConstant contained pg_buffercache pg_freespacemap pg_prewarm pg_stat_statements pg_trgm
syn keyword sqlConstant contained pg_visibility pgcrypto pgrouting pgrowlocks pgstattuple pgtap plperl
syn keyword sqlConstant contained plperlu plpgsql pltcl pltclu postgis postgis_sfcgal
syn keyword sqlConstant contained postgis_tiger_geocoder postgis_topology postgres_fdw refint seg sslinfo tablefunc
syn keyword sqlConstant contained tcn temporal_tables timetravel tsm_system_rows tsm_system_time
syn keyword sqlConstant contained unaccent xml2
" Legacy extensions names
syn keyword sqlConstant contained chkpass hstore_plpython2u hstore_plpythonu ltree_plpython2u
syn keyword sqlConstant contained ltree_plpythonu pldbgapi plpython2u plpythonu
syn keyword sqlConstant contained chkpass hstore_plpython2u hstore_plpython3u hstore_plpythonu
syn keyword sqlConstant contained jsonb_plpython3u ltree_plpython2u ltree_plpython3u
syn keyword sqlConstant contained ltree_plpythonu pldbgapi plpython2u plpython3u plpythonu
" Extension: refint (v1.0)
if index(get(g:, 'pgsql_disabled_extensions', []), 'refint') == -1
syn keyword sqlFunction contained check_foreign_key check_primary_key
endif " refint
" Extension: postgis (v2.5.1)
" Extension: postgis (v2.5.2)
if index(get(g:, 'pgsql_disabled_extensions', []), 'postgis') == -1
syn keyword sqlFunction contained addauth addgeometrycolumn
syn keyword sqlFunction contained addoverviewconstraints addrasterconstraints box box2d
@@ -989,11 +1000,6 @@ if index(get(g:, 'pgsql_disabled_extensions', []), 'btree_gin') == -1
syn keyword sqlFunction contained gin_extract_value_timetz
syn keyword sqlFunction contained gin_extract_value_uuid gin_extract_value_varbit gin_numeric_cmp
endif " btree_gin
" Extension: plpython3u (v1.0)
if index(get(g:, 'pgsql_disabled_extensions', []), 'plpython3u') == -1
syn keyword sqlFunction contained plpython3_call_handler plpython3_inline_handler
syn keyword sqlFunction contained plpython3_validator
endif " plpython3u
" Extension: ltree (v1.1)
if index(get(g:, 'pgsql_disabled_extensions', []), 'ltree') == -1
syn keyword sqlFunction contained index lca lquery_in lquery_out
@@ -1031,7 +1037,7 @@ endif " adminpack
if index(get(g:, 'pgsql_disabled_extensions', []), 'dict_xsyn') == -1
syn keyword sqlFunction contained dxsyn_init dxsyn_lexize
endif " dict_xsyn
" Extension: address_standardizer (v2.5.1)
" Extension: address_standardizer (v2.5.2)
if index(get(g:, 'pgsql_disabled_extensions', []), 'address_standardizer') == -1
syn keyword sqlFunction contained parse_address standardize_address
syn keyword sqlType contained stdaddr
@@ -1089,7 +1095,7 @@ if index(get(g:, 'pgsql_disabled_extensions', []), 'cube') == -1
syn keyword sqlType contained cube
syn keyword sqlFunction contained g_cube_compress g_cube_decompress
endif " cube
" Extension: postgis_tiger_geocoder (v2.5.1)
" Extension: postgis_tiger_geocoder (v2.5.2)
if index(get(g:, 'pgsql_disabled_extensions', []), 'postgis_tiger_geocoder') == -1
syn keyword sqlFunction contained count_words create_census_base_tables
syn keyword sqlFunction contained cull_null diff_zip
@@ -1176,10 +1182,6 @@ endif " lo
if index(get(g:, 'pgsql_disabled_extensions', []), 'pgrowlocks') == -1
syn keyword sqlFunction contained pgrowlocks
endif " pgrowlocks
" Extension: jsonb_plpython3u (v1.0)
if index(get(g:, 'pgsql_disabled_extensions', []), 'jsonb_plpython3u') == -1
syn keyword sqlFunction contained jsonb_to_plpython3 plpython3_to_jsonb
endif " jsonb_plpython3u
" Extension: sslinfo (v1.2)
if index(get(g:, 'pgsql_disabled_extensions', []), 'sslinfo') == -1
syn keyword sqlFunction contained ssl_cipher ssl_client_cert_present
@@ -1197,15 +1199,11 @@ endif " pgstattuple
if index(get(g:, 'pgsql_disabled_extensions', []), 'autoinc') == -1
syn keyword sqlFunction contained autoinc
endif " autoinc
" Extension: address_standardizer_data_us (v2.5.1)
" Extension: address_standardizer_data_us (v2.5.2)
if index(get(g:, 'pgsql_disabled_extensions', []), 'address_standardizer_data_us') == -1
syn keyword sqlTable contained us_gaz us_lex us_rules
endif " address_standardizer_data_us
" Extension: hstore_plpython3u (v1.0)
if index(get(g:, 'pgsql_disabled_extensions', []), 'hstore_plpython3u') == -1
syn keyword sqlFunction contained hstore_to_plpython3 plpython3_to_hstore
endif " hstore_plpython3u
" Extension: postgis_topology (v2.5.1)
" Extension: postgis_topology (v2.5.2)
if index(get(g:, 'pgsql_disabled_extensions', []), 'postgis_topology') == -1
syn keyword sqlFunction contained addedge addface addnode
syn keyword sqlFunction contained addtopogeometrycolumn addtosearchpath asgml
@@ -1516,10 +1514,6 @@ if index(get(g:, 'pgsql_disabled_extensions', []), 'fuzzystrmatch') == -1
syn keyword sqlFunction contained levenshtein levenshtein_less_equal
syn keyword sqlFunction contained metaphone soundex text_soundex
endif " fuzzystrmatch
" Extension: ltree_plpython3u (v1.0)
if index(get(g:, 'pgsql_disabled_extensions', []), 'ltree_plpython3u') == -1
syn keyword sqlFunction contained ltree_to_plpython3
endif " ltree_plpython3u
" Extension: pgrouting (v2.6.2)
if index(get(g:, 'pgsql_disabled_extensions', []), 'pgrouting') == -1
syn keyword sqlFunction contained pgr_alphashape pgr_analyzegraph
@@ -1566,7 +1560,7 @@ if index(get(g:, 'pgsql_disabled_extensions', []), 'pgcrypto') == -1
syn keyword sqlFunction contained pgp_sym_decrypt_bytea pgp_sym_encrypt
syn keyword sqlFunction contained pgp_sym_encrypt_bytea
endif " pgcrypto
" Extension: postgis_sfcgal (v2.5.1)
" Extension: postgis_sfcgal (v2.5.2)
if index(get(g:, 'pgsql_disabled_extensions', []), 'postgis_sfcgal') == -1
syn keyword sqlFunction contained postgis_sfcgal_scripts_installed
syn keyword sqlFunction contained postgis_sfcgal_version st_3darea st_3ddifference
@@ -1638,6 +1632,11 @@ if index(get(g:, 'pgsql_disabled_extensions', []), 'plpython2u') == -1
syn keyword sqlFunction contained plpython2_call_handler plpython2_inline_handler
syn keyword sqlFunction contained plpython2_validator
endif " plpython2u
" Extension: plpython3u
if index(get(g:, 'pgsql_disabled_extensions', []), 'plpython3u') == -1
syn keyword sqlFunction contained plpython3_call_handler plpython3_inline_handler
syn keyword sqlFunction contained plpython3_validator
endif " plpython3u
" Extension: hstore_plpythonu
if index(get(g:, 'pgsql_disabled_extensions', []), 'hstore_plpythonu') == -1
syn keyword sqlFunction contained hstore_to_plpython plpython_to_hstore
@@ -1646,6 +1645,14 @@ endif " hstore_plpythonu
if index(get(g:, 'pgsql_disabled_extensions', []), 'hstore_plpython2u') == -1
syn keyword sqlFunction contained hstore_to_plpython2 plpython2_to_hstore
endif " hstore_plpython2u
" Extension: hstore_plpython3u
if index(get(g:, 'pgsql_disabled_extensions', []), 'hstore_plpython3u') == -1
syn keyword sqlFunction contained hstore_to_plpython3 plpython3_to_hstore
endif " hstore_plpython3u
" Extension: jsonb_plpython3u
if index(get(g:, 'pgsql_disabled_extensions', []), 'jsonb_plpython3u') == -1
syn keyword sqlFunction contained jsonb_to_plpython3 plpython3_to_jsonb
endif " jsonb_plpython3u
" Extension: ltree_plpythonu
if index(get(g:, 'pgsql_disabled_extensions', []), 'ltree_plpythonu') == -1
syn keyword sqlFunction contained ltree_to_plpython
@@ -1654,6 +1661,10 @@ endif " ltree_plpythonu
if index(get(g:, 'pgsql_disabled_extensions', []), 'ltree_plpython2u') == -1
syn keyword sqlFunction contained ltree_to_plpython2
endif " ltree_plpython2u
" Extension: ltree_plpython3u
if index(get(g:, 'pgsql_disabled_extensions', []), 'ltree_plpython3u') == -1
syn keyword sqlFunction contained ltree_to_plpython3
endif " ltree_plpython3u
" Extension: pldbgapi
if index(get(g:, 'pgsql_disabled_extensions', []), 'pldbgapi') == -1
syn keyword sqlFunction contained pldbg_abort_target pldbg_attach_to_port pldbg_continue
@@ -1733,87 +1744,93 @@ syn keyword sqlErrorCode contained deadlock_detected dependent_objects_still_exi
syn keyword sqlErrorCode contained dependent_privilege_descriptors_still_exist deprecated_feature diagnostics_exception
syn keyword sqlErrorCode contained disk_full division_by_zero duplicate_alias duplicate_column
syn keyword sqlErrorCode contained duplicate_cursor duplicate_database duplicate_file
syn keyword sqlErrorCode contained duplicate_function duplicate_object duplicate_prepared_statement
syn keyword sqlErrorCode contained duplicate_schema duplicate_table dynamic_result_sets_returned
syn keyword sqlErrorCode contained error_in_assignment escape_character_conflict
syn keyword sqlErrorCode contained event_trigger_protocol_violated exclusion_violation external_routine_exception
syn keyword sqlErrorCode contained external_routine_invocation_exception fdw_column_name_not_found
syn keyword sqlErrorCode contained fdw_dynamic_parameter_value_needed fdw_error
syn keyword sqlErrorCode contained fdw_function_sequence_error fdw_inconsistent_descriptor_information
syn keyword sqlErrorCode contained fdw_invalid_attribute_value fdw_invalid_column_name fdw_invalid_column_number
syn keyword sqlErrorCode contained fdw_invalid_data_type fdw_invalid_data_type_descriptors
syn keyword sqlErrorCode contained fdw_invalid_descriptor_field_identifier fdw_invalid_handle
syn keyword sqlErrorCode contained fdw_invalid_option_index fdw_invalid_option_name
syn keyword sqlErrorCode contained fdw_invalid_string_format fdw_invalid_string_length_or_buffer_length
syn keyword sqlErrorCode contained fdw_invalid_use_of_null_pointer fdw_no_schemas fdw_option_name_not_found
syn keyword sqlErrorCode contained fdw_out_of_memory fdw_reply_handle fdw_schema_not_found
syn keyword sqlErrorCode contained fdw_table_not_found fdw_too_many_handles
syn keyword sqlErrorCode contained fdw_unable_to_create_execution fdw_unable_to_create_reply
syn keyword sqlErrorCode contained fdw_unable_to_establish_connection feature_not_supported floating_point_exception
syn keyword sqlErrorCode contained foreign_key_violation function_executed_no_return_statement
syn keyword sqlErrorCode contained generated_always grouping_error
syn keyword sqlErrorCode contained held_cursor_requires_same_isolation_level idle_in_transaction_session_timeout
syn keyword sqlErrorCode contained implicit_zero_bit_padding in_failed_sql_transaction
syn keyword sqlErrorCode contained duplicate_function duplicate_json_object_key_value duplicate_object
syn keyword sqlErrorCode contained duplicate_prepared_statement duplicate_schema duplicate_table
syn keyword sqlErrorCode contained dynamic_result_sets_returned error_in_assignment
syn keyword sqlErrorCode contained escape_character_conflict event_trigger_protocol_violated exclusion_violation
syn keyword sqlErrorCode contained external_routine_exception external_routine_invocation_exception
syn keyword sqlErrorCode contained fdw_column_name_not_found fdw_dynamic_parameter_value_needed
syn keyword sqlErrorCode contained fdw_error fdw_function_sequence_error
syn keyword sqlErrorCode contained fdw_inconsistent_descriptor_information fdw_invalid_attribute_value
syn keyword sqlErrorCode contained fdw_invalid_column_name fdw_invalid_column_number fdw_invalid_data_type
syn keyword sqlErrorCode contained fdw_invalid_data_type_descriptors
syn keyword sqlErrorCode contained fdw_invalid_descriptor_field_identifier fdw_invalid_handle fdw_invalid_option_index
syn keyword sqlErrorCode contained fdw_invalid_option_name fdw_invalid_string_format
syn keyword sqlErrorCode contained fdw_invalid_string_length_or_buffer_length fdw_invalid_use_of_null_pointer
syn keyword sqlErrorCode contained fdw_no_schemas fdw_option_name_not_found fdw_out_of_memory
syn keyword sqlErrorCode contained fdw_reply_handle fdw_schema_not_found fdw_table_not_found
syn keyword sqlErrorCode contained fdw_too_many_handles fdw_unable_to_create_execution
syn keyword sqlErrorCode contained fdw_unable_to_create_reply fdw_unable_to_establish_connection feature_not_supported
syn keyword sqlErrorCode contained floating_point_exception foreign_key_violation
syn keyword sqlErrorCode contained function_executed_no_return_statement generated_always grouping_error
syn keyword sqlErrorCode contained held_cursor_requires_same_isolation_level
syn keyword sqlErrorCode contained idle_in_transaction_session_timeout implicit_zero_bit_padding in_failed_sql_transaction
syn keyword sqlErrorCode contained inappropriate_access_mode_for_branch_transaction
syn keyword sqlErrorCode contained inappropriate_isolation_level_for_branch_transaction indeterminate_collation indeterminate_datatype
syn keyword sqlErrorCode contained index_corrupted indicator_overflow insufficient_privilege
syn keyword sqlErrorCode contained insufficient_resources integrity_constraint_violation internal_error
syn keyword sqlErrorCode contained interval_field_overflow invalid_argument_for_logarithm
syn keyword sqlErrorCode contained invalid_argument_for_nth_value_function
syn keyword sqlErrorCode contained invalid_argument_for_ntile_function invalid_argument_for_power_function
syn keyword sqlErrorCode contained invalid_argument_for_width_bucket_function
syn keyword sqlErrorCode contained invalid_authorization_specification invalid_binary_representation invalid_catalog_name
syn keyword sqlErrorCode contained invalid_character_value_for_cast invalid_column_definition
syn keyword sqlErrorCode contained invalid_column_reference invalid_cursor_definition invalid_cursor_name
syn keyword sqlErrorCode contained invalid_cursor_state invalid_database_definition
syn keyword sqlErrorCode contained invalid_datetime_format invalid_escape_character invalid_escape_octet
syn keyword sqlErrorCode contained invalid_escape_sequence invalid_foreign_key
syn keyword sqlErrorCode contained invalid_function_definition invalid_grant_operation invalid_grantor
syn keyword sqlErrorCode contained invalid_indicator_parameter_value invalid_locator_specification invalid_name
syn keyword sqlErrorCode contained invalid_object_definition invalid_parameter_value
syn keyword sqlErrorCode contained inappropriate_isolation_level_for_branch_transaction
syn keyword sqlErrorCode contained indeterminate_collation indeterminate_datatype index_corrupted indicator_overflow
syn keyword sqlErrorCode contained insufficient_privilege insufficient_resources
syn keyword sqlErrorCode contained integrity_constraint_violation internal_error interval_field_overflow
syn keyword sqlErrorCode contained invalid_argument_for_logarithm
syn keyword sqlErrorCode contained invalid_argument_for_nth_value_function invalid_argument_for_ntile_function
syn keyword sqlErrorCode contained invalid_argument_for_power_function invalid_argument_for_width_bucket_function
syn keyword sqlErrorCode contained invalid_authorization_specification
syn keyword sqlErrorCode contained invalid_binary_representation invalid_catalog_name invalid_character_value_for_cast
syn keyword sqlErrorCode contained invalid_column_definition invalid_column_reference
syn keyword sqlErrorCode contained invalid_cursor_definition invalid_cursor_name invalid_cursor_state
syn keyword sqlErrorCode contained invalid_database_definition invalid_datetime_format
syn keyword sqlErrorCode contained invalid_escape_character invalid_escape_octet invalid_escape_sequence
syn keyword sqlErrorCode contained invalid_foreign_key invalid_function_definition invalid_grant_operation
syn keyword sqlErrorCode contained invalid_grantor invalid_indicator_parameter_value
syn keyword sqlErrorCode contained invalid_json_subscript invalid_json_text invalid_locator_specification
syn keyword sqlErrorCode contained invalid_name invalid_object_definition invalid_parameter_value
syn keyword sqlErrorCode contained invalid_password invalid_preceding_or_following_size
syn keyword sqlErrorCode contained invalid_prepared_statement_definition invalid_recursion invalid_regular_expression
syn keyword sqlErrorCode contained invalid_role_specification invalid_row_count_in_limit_clause
syn keyword sqlErrorCode contained invalid_row_count_in_result_offset_clause
syn keyword sqlErrorCode contained invalid_savepoint_specification invalid_schema_definition invalid_schema_name
syn keyword sqlErrorCode contained invalid_sql_statement_name invalid_sqlstate_returned
syn keyword sqlErrorCode contained invalid_table_definition invalid_tablesample_argument
syn keyword sqlErrorCode contained invalid_prepared_statement_definition invalid_recursion
syn keyword sqlErrorCode contained invalid_regular_expression invalid_role_specification
syn keyword sqlErrorCode contained invalid_row_count_in_limit_clause invalid_row_count_in_result_offset_clause
syn keyword sqlErrorCode contained invalid_savepoint_specification invalid_schema_definition
syn keyword sqlErrorCode contained invalid_schema_name invalid_sql_statement_name
syn keyword sqlErrorCode contained invalid_sqlstate_returned invalid_table_definition invalid_tablesample_argument
syn keyword sqlErrorCode contained invalid_tablesample_repeat invalid_text_representation
syn keyword sqlErrorCode contained invalid_time_zone_displacement_value invalid_transaction_initiation
syn keyword sqlErrorCode contained invalid_transaction_state invalid_transaction_termination
syn keyword sqlErrorCode contained invalid_use_of_escape_character invalid_xml_comment invalid_xml_content
syn keyword sqlErrorCode contained invalid_xml_document invalid_xml_processing_instruction io_error
syn keyword sqlErrorCode contained locator_exception lock_file_exists lock_not_available
syn keyword sqlErrorCode contained modifying_sql_data_not_permitted most_specific_type_mismatch name_too_long
syn keyword sqlErrorCode contained invalid_use_of_escape_character invalid_xml_comment
syn keyword sqlErrorCode contained invalid_xml_content invalid_xml_document invalid_xml_processing_instruction
syn keyword sqlErrorCode contained io_error json_array_not_found json_member_not_found
syn keyword sqlErrorCode contained json_number_not_found json_scalar_required locator_exception
syn keyword sqlErrorCode contained lock_file_exists lock_not_available modifying_sql_data_not_permitted
syn keyword sqlErrorCode contained more_than_one_json_item most_specific_type_mismatch name_too_long
syn keyword sqlErrorCode contained no_active_sql_transaction
syn keyword sqlErrorCode contained no_active_sql_transaction_for_branch_transaction no_additional_dynamic_result_sets_returned
syn keyword sqlErrorCode contained no_data no_data_found nonstandard_use_of_escape_character
syn keyword sqlErrorCode contained no_data no_data_found no_json_item non_numeric_json_item
syn keyword sqlErrorCode contained non_unique_keys_in_json_object nonstandard_use_of_escape_character
syn keyword sqlErrorCode contained not_an_xml_document not_null_violation
syn keyword sqlErrorCode contained null_value_eliminated_in_set_function null_value_no_indicator_parameter
syn keyword sqlErrorCode contained null_value_not_allowed numeric_value_out_of_range object_in_use
syn keyword sqlErrorCode contained object_not_in_prerequisite_state operator_intervention out_of_memory
syn keyword sqlErrorCode contained plpgsql_error privilege_not_granted privilege_not_revoked
syn keyword sqlErrorCode contained program_limit_exceeded prohibited_sql_statement_attempted
syn keyword sqlErrorCode contained protocol_violation query_canceled raise_exception read_only_sql_transaction
syn keyword sqlErrorCode contained reading_sql_data_not_permitted reserved_name restrict_violation
syn keyword sqlErrorCode contained savepoint_exception
syn keyword sqlErrorCode contained schema_and_data_statement_mixing_not_supported sequence_generator_limit_exceeded serialization_failure
syn keyword sqlErrorCode contained snapshot_too_old sql_routine_exception
syn keyword sqlErrorCode contained sql_statement_not_yet_complete sqlclient_unable_to_establish_sqlconnection
syn keyword sqlErrorCode contained sqlserver_rejected_establishment_of_sqlconnection
syn keyword sqlErrorCode contained srf_protocol_violated stacked_diagnostics_accessed_without_active_handler
syn keyword sqlErrorCode contained statement_completion_unknown statement_too_complex
syn keyword sqlErrorCode contained string_data_length_mismatch string_data_right_truncation substring_error
syn keyword sqlErrorCode contained successful_completion syntax_error
syn keyword sqlErrorCode contained syntax_error_or_access_rule_violation system_error too_many_arguments too_many_columns
syn keyword sqlErrorCode contained too_many_connections too_many_rows
syn keyword sqlErrorCode contained transaction_integrity_constraint_violation transaction_resolution_unknown transaction_rollback
syn keyword sqlErrorCode contained object_not_found object_not_in_prerequisite_state operator_intervention
syn keyword sqlErrorCode contained out_of_memory plpgsql_error privilege_not_granted
syn keyword sqlErrorCode contained privilege_not_revoked program_limit_exceeded
syn keyword sqlErrorCode contained prohibited_sql_statement_attempted protocol_violation query_canceled raise_exception
syn keyword sqlErrorCode contained read_only_sql_transaction reading_sql_data_not_permitted reserved_name
syn keyword sqlErrorCode contained restrict_violation savepoint_exception
syn keyword sqlErrorCode contained schema_and_data_statement_mixing_not_supported sequence_generator_limit_exceeded
syn keyword sqlErrorCode contained serialization_failure singleton_json_item_required
syn keyword sqlErrorCode contained snapshot_too_old sql_routine_exception sql_statement_not_yet_complete
syn keyword sqlErrorCode contained sqlclient_unable_to_establish_sqlconnection
syn keyword sqlErrorCode contained sqlserver_rejected_establishment_of_sqlconnection srf_protocol_violated
syn keyword sqlErrorCode contained stacked_diagnostics_accessed_without_active_handler
syn keyword sqlErrorCode contained statement_completion_unknown statement_too_complex string_data_length_mismatch
syn keyword sqlErrorCode contained string_data_right_truncation substring_error
syn keyword sqlErrorCode contained successful_completion syntax_error syntax_error_or_access_rule_violation
syn keyword sqlErrorCode contained system_error too_many_arguments too_many_columns too_many_connections
syn keyword sqlErrorCode contained too_many_json_array_elements too_many_json_object_members
syn keyword sqlErrorCode contained too_many_rows transaction_integrity_constraint_violation
syn keyword sqlErrorCode contained transaction_resolution_unknown transaction_rollback
syn keyword sqlErrorCode contained trigger_protocol_violated triggered_action_exception
syn keyword sqlErrorCode contained triggered_data_change_violation trim_error undefined_column
syn keyword sqlErrorCode contained undefined_file undefined_function undefined_object undefined_parameter
syn keyword sqlErrorCode contained undefined_table unique_violation unsafe_new_enum_value_usage
syn keyword sqlErrorCode contained unterminated_c_string untranslatable_character warning
syn keyword sqlErrorCode contained windowing_error with_check_option_violation wrong_object_type
syn keyword sqlErrorCode contained triggered_data_change_violation trim_error undefined_column undefined_file
syn keyword sqlErrorCode contained undefined_function undefined_object undefined_parameter undefined_table
syn keyword sqlErrorCode contained unique_violation unsafe_new_enum_value_usage
syn keyword sqlErrorCode contained unterminated_c_string untranslatable_character warning windowing_error
syn keyword sqlErrorCode contained with_check_option_violation wrong_object_type
syn keyword sqlErrorCode contained zero_length_character_string
" Legacy keywords
@@ -1850,14 +1867,31 @@ syn match sqlOperator contained "\%(<->>>\|<<->>\|<<<->\|!\~\~\*\|\#<=\#\|\#>=\#
syn match sqlOperator contained "\%(!\~\~\|\#<\#\|\#<=\|\#<>\|\#>\#\|\#>=\|\#>>\|%>>\|&&&\|&/&\|&<|\|\*<=\|\*<>\|\*>=\|->>\|-|-\|<\#>\)\ze\%([^!?~#^@<=>%&|*/+-]\|$\)"
syn match sqlOperator contained "\%(<->\|<<%\|<<=\|<<@\|<<|\|<=>\|<?>\|<@>\|>>=\|?-|\|?<@\|?@>\|?||\|@-@\|@>>\|@@@\)\ze\%([^!?~#^@<=>%&|*/+-]\|$\)"
syn match sqlOperator contained "\%(\^<@\|\^@>\||&>\||=|\||>>\|||/\|\~<\~\|\~==\|\~>\~\|\~\~\*\|!!\|!\~\|\#\#\|\#-\|\#<\|\#=\|\#>\|%\#\|%%\|%>\)\ze\%([^!?~#^@<=>%&|*/+-]\|$\)"
syn match sqlOperator contained "\%(&&\|&<\|&>\|\*<\|\*=\|\*>\|->\|<%\|<<\|<=\|<>\|<@\|<\^\|>=\|>>\|>\^\|?\#\|?&\|?-\|?@\|?|\|?\~\|@>\|@@\)\ze\%([^!?~#^@<=>%&|*/+-]\|$\)"
syn match sqlOperator contained "\%(\^?\|\^@\|\^\~\||/\|||\|\~\*\|\~=\|\~>\|\~\~\|!\|\#\|%\|&\|\*\|+\|-\|/\|<\|=\|>\|?\|@\|\^\||\|\~\)\ze\%([^!?~#^@<=>%&|*/+-]\|$\)"
syn match sqlOperator contained "\%(&&\|&<\|&>\|\*<\|\*=\|\*>\|->\|<%\|<<\|<=\|<>\|<@\|<\^\|=>\|>=\|>>\|>\^\|?\#\|?&\|?-\|?@\|?|\|?\~\|@>\)\ze\%([^!?~#^@<=>%&|*/+-]\|$\)"
syn match sqlOperator contained "\%(@@\|\^?\|\^@\|\^\~\||/\|||\|\~\*\|\~=\|\~>\|\~\~\|!\|\#\|%\|&\|\*\|+\|-\|/\|<\|=\|>\|?\|@\|\^\||\|\~\)\ze\%([^!?~#^@<=>%&|*/+-]\|$\)"
" Comments
syn region sqlComment start="/\*" end="\*/" contains=sqlTodo,@Spell
syn match sqlComment "#\s.*$" contains=sqlTodo,@Spell
syn match sqlComment "--.*$" contains=sqlTodo,@Spell
" CREATE TYPE statement
syn region sqlCreateType start=+create\s\+type.*(+ end=+)+
\ contains=sqlIsKeyword,sqlCreateTypeKeyword,sqlIsOperator,sqlString,sqlComment,sqlNumber,sqlTodo
syn keyword sqlCreateTypeKeyword contained input output receive send typmod_in typmod_out analyze internallength passedbyvalue
syn keyword sqlCreateTypeKeyword contained alignment storage like category preferred default element delimiter collatable
syn keyword sqlCreateTypeKeyword contained collate subtype subtype_opclass canonical subtype_diff
" CREATE OPERATOR [CLASS] statements
syn region sqlCreateOperator start=+create\s\+operator.*(+ end=+)+
\ contains=sqlIsKeyword,sqlCreateOperatorKeyword,sqlIsOperator,sqlString,sqlComment,sqlNumber,sqlTodo
syn keyword sqlCreateOperatorKeyword contained function procedure leftarg rightarg commutator negator restrict join hashes merges
" CREATE TEXT SEARCH statements
syn region sqlCreateTextSearch start=+create\s\+text\s\+search.*(+ end=+)+
\ contains=sqlIsKeyword,sqlCreateTextSearchKeyword,sqlIsOperator,sqlString,sqlComment,sqlNumber,sqlTodo
syn keyword sqlCreateTextSearchKeyword contained text parser copy template start gettoken end lextypes headline init lexize
" Options
syn keyword sqlOption contained client_min_messages search_path
@@ -1908,13 +1942,18 @@ syn match sqlPlpgsqlVariable "\<_[A-Za-z0-9][A-Za-z0-9_]*\>" contained
syn match sqlPlpgsqlVariable "\$\d\+" contained
" @ arguments
syn match sqlPlpgsqlVariable ".\zs@[A-z0-9_]\+" contained
" PL/pgSQL operators
syn match sqlPlpgsqlOperator ":=" contained
syn region plpgsql matchgroup=sqlString start=+\$pgsql\$+ end=+\$pgsql\$+ keepend contains=ALL
syn region plpgsql matchgroup=sqlString start=+\$body\$+ end=+\$body\$+ keepend contains=ALL
syn region plpgsql matchgroup=sqlString start=+\$pgsql\$+ end=+\$pgsql\$+ keepend
\ contains=sqlIsKeyword,sqlIsFunction,sqlComment,sqlPlpgsqlKeyword,sqlPlpgsqlVariable,sqlPlpgsqlOperator,sqlNumber,sqlIsOperator,sqlString,sqlTodo
syn region plpgsql matchgroup=sqlString start=+\$body\$+ end=+\$body\$+ keepend
\ contains=sqlIsKeyword,sqlIsFunction,sqlComment,sqlPlpgsqlKeyword,sqlPlpgsqlVariable,sqlPlpgsqlOperator,sqlNumber,sqlIsOperator,sqlString,sqlTodo
if get(g:, 'pgsql_dollar_strings', 0)
syn region sqlString start=+\$\$+ end=+\$\$+ contains=@Spell
else
syn region plpgsql matchgroup=sqlString start=+\$\$+ end=+\$\$+ keepend contains=ALL
syn region plpgsql matchgroup=sqlString start=+\$\$+ end=+\$\$+ keepend
\ contains=sqlIsKeyword,sqlIsFunction,sqlComment,sqlPlpgsqlKeyword,sqlPlpgsqlVariable,sqlPlpgsqlOperator,sqlNumber,sqlIsOperator,sqlString,sqlTodo
endif
" PL/<any other language>
@@ -1938,6 +1977,7 @@ hi def link sqlIdentifier Identifier
hi def link sqlKeyword sqlSpecial
hi def link sqlPlpgsqlKeyword sqlSpecial
hi def link sqlPlpgsqlVariable Identifier
hi def link sqlPlpgsqlOperator sqlOperator
hi def link sqlNumber Number
hi def link sqlOperator sqlStatement
hi def link sqlOption Define
@@ -1950,6 +1990,9 @@ hi def link sqlView sqlTable
hi def link sqlTodo Todo
hi def link sqlPsqlCommand SpecialKey
hi def link sqlPsqlKeyword Keyword
hi def link sqlCreateTypeKeyword sqlKeyword
hi def link sqlCreateOperatorKeyword sqlKeyword
hi def link sqlCreateTextSearchKeyword sqlKeyword
let b:current_syntax = "sql"

View File

@@ -22,25 +22,30 @@ let b:current_syntax = 'plantuml'
syntax sync minlines=100
syntax match plantumlPreProc /\%(^@startuml\|^@enduml\)\|!\%(define\|definelong\|else\|enddefinelong\|endif\|exit\|if\|ifdef\|ifndef\|include\|pragma\|undef\)\s*.*/ contains=plantumlDir
syntax match plantumlPreProc /\%(\%(^@start\|^@end\)\%(dot\|mindmap\|uml\|salt\|wbs\)\)\|!\%(define\|definelong\|else\|enddefinelong\|endif\|exit\|if\|ifdef\|ifndef\|include\|pragma\|undef\)\s*.*/ contains=plantumlDir
syntax region plantumlDir start=/\s\+/ms=s+1 end=/$/ contained
" type
syntax keyword plantumlTypeKeyword abstract actor agent archimate artifact boundary card cloud component control
syntax keyword plantumlTypeKeyword database entity enum file folder frame node object package participant
syntax keyword plantumlTypeKeyword database diamond entity enum file folder frame node object package participant
syntax keyword plantumlTypeKeyword queue rectangle stack state storage usecase
" class and interface are defined as plantumlClassKeyword
syntax keyword plantumlClassKeyword class interface
syntax keyword plantumlKeyword activate again also alt as autonumber bottom box break caption center create
syntax keyword plantumlKeyword critical deactivate destroy down else elseif end endif endsplit endwhile footbox
syntax keyword plantumlKeyword footer fork group header hide hnote if is kill left legend link loop namespace
syntax keyword plantumlKeyword newpage note of on opt over package page par partition ref repeat return right
syntax keyword plantumlKeyword rnote rotate show skin skinparam split start stop title top up while
" keyword
" Exclude 'top to bottom direction'
syntax keyword plantumlKeyword accross activate again allow_mixing allowmixing also alt as autonumber bottom
syntax keyword plantumlKeyword box break caption center create critical deactivate destroy down else elseif end
syntax keyword plantumlKeyword endif endwhile footbox footer fork group header hide hnote if is kill left
syntax keyword plantumlKeyword legend link loop mainframe namespace newpage note of on opt order over package
syntax keyword plantumlKeyword page par partition ref repeat return right rnote rotate show skin skinparam
syntax keyword plantumlKeyword start stop title top up while
" Not in 'java - jar plantuml.jar - language' output
syntax keyword plantumlKeyword then detach sprite
syntax keyword plantumlKeyword then detach split sprite
syntax keyword plantumlCommentTODO XXX TODO FIXME NOTE contained
syntax match plantumlColor /#[0-9A-Fa-f]\{6\}\>/
syntax case ignore
syntax keyword plantumlColor APPLICATION AliceBlue AntiqueWhite Aqua Aquamarine Azure BUSINESS Beige Bisque
syntax keyword plantumlColor Black BlanchedAlmond Blue BlueViolet Brown BurlyWood CadetBlue Chartreuse
syntax keyword plantumlColor Chocolate Coral CornflowerBlue Cornsilk Crimson Cyan DarkBlue DarkCyan
@@ -62,6 +67,7 @@ syntax keyword plantumlColor RosyBrown RoyalBlue STRATEGY SaddleBrown Salmon San
syntax keyword plantumlColor Sienna Silver SkyBlue SlateBlue SlateGray SlateGrey Snow SpringGreen SteelBlue
syntax keyword plantumlColor TECHNOLOGY Tan Teal Thistle Tomato Turquoise Violet Wheat White WhiteSmoke
syntax keyword plantumlColor Yellow YellowGreen
syntax case match
" Arrows
syntax match plantumlArrow /.\@=\([.-]\)\1\+\ze\s*\%(\w\|(\)/
@@ -69,7 +75,7 @@ syntax match plantumlArrow /.\@=\([.-]\)\1\+\ze\s*\%(\w\|(\)/
syntax match plantumlClassRelationLR /\([-.]\)\1*\%(\w\{,5\}\1\+\)\?\%(|>\|>\|*\|o\|x\|#\|{\|+\|\^\)/ contains=plantumlArrowDirectedLine
syntax match plantumlClassRelationRL /\%(<|\|<\|*\|o\|x\|#\|}\|+\|\^\)\([-.]\)\1*\%(\w\{,5\}\1\+\)\?/ contains=plantumlArrowDirectedLine
syntax match plantumlArrowLR /\[\?\([-.]\)\1*\%(\w\{,5}\1\+\)\?\(>\|\\\|\/\)\2\?[ox]\?\]\?\%(\[[^\]]*\]\)\?/ contains=plantumlText,plantumlArrowDirectedLine
syntax match plantumlArrowLR /\[\?\([-.]\)\1*\%(\w\{,5}\1\+\)\?\%(\[[^\]]\+\]\)\?\1*\(>\|\\\|\/\)\2\?[ox]\?\]\?\%(\[[^\]]*\]\)\?/ contains=plantumlText,plantumlArrowDirectedLine
syntax match plantumlArrowRL /\[\?[ox]\?\(<\|\\\|\/\)\1\?\([-.]\)\2*\%(\w\{,5}\2\+\)\?\]\?\%(\[[^\]]*\]\)\?/ contains=plantumlText,plantumlArrowDirectedLine
syntax match plantumlArrowBoth /[ox]\?\(<\|\\\|\/\)\1\?\([-.]\)\2*\%(\w\{,5}\2\+\)\?\(>\|\\\|\/\)\3\?[ox]\?/ contains=plantumlArrowDirectedLine
syntax region plantumlText oneline start=/\[/ms=s+1 end=/\]/me=s-1 contained
@@ -77,15 +83,18 @@ syntax region plantumlText oneline start=/\[/ms=s+1 end=/\]/me=s-1 contained
syntax match plantumlArrowDirectedLine /\([-.]\)\%(l\%[eft]\|r\%[ight]\|up\?\|d\%[own]\)\1/ contained
" Note
syntax region plantumlNoteMultiLine start=/\%(^\s*[rh]\?note\)\@<=\s\%([^:"]\+$\)\@=/ end=/^\%(\s*end \?[rh]\?note$\)\@=/ contains=plantumlSpecialString,plantumlNoteMultiLineStart
syntax match plantumlNoteMultiLineStart /\%(^\s*[rh]\?note\)\@<=\s\%([^:]\+$\)/ contained contains=plantumlKeyword,plantumlColor,plantumlString
syntax region plantumlNoteMultiLine start=/\%(^\s*[rh]\?note\)\@<=\s\%([^:"]\+$\)\@=/ end=/^\%(\s*end \?[rh]\?note$\)\@=/ contains=plantumlSpecialString,plantumlNoteMultiLineStart,plantumlTag
syntax match plantumlNoteMultiLineStart /\%(^\s*[rh]\?note\)\@<=\s\%([^:]\+$\)/ contained contains=plantumlKeyword,plantumlColor,plantumlString,plantumlTag
" Class
syntax region plantumlClass start=/\%(\%(class\|interface\|object\)\s[^{]\+\)\@<=\zs{/ end=/^\s*}/ contains=plantumlClassArrows,
\ plantumlClassKeyword,
\ @plantumlClassOp,
\ plantumlClassSeparator,
\ plantumlComment
syntax region plantumlClass
\ start=/\%(\%(class\|interface\|object\)\s[^{]\+\)\@<=\zs{/
\ end=/^\s*}/
\ contains=plantumlClassArrows,
\ plantumlClassKeyword,
\ @plantumlClassOp,
\ plantumlClassSeparator,
\ plantumlComment
syntax match plantumlClassPublic /^\s*+\s*\w\+/ contained
syntax match plantumlClassPrivate /^\s*-\s*\w\+/ contained
@@ -94,9 +103,9 @@ syntax match plantumlClassPackPrivate /^\s*\~\s*\w\+/ contained
syntax match plantumlClassSeparator /__\%(.\+__\)\?\|==\%(.\+==\)\?\|--\%(.\+--\)\?\|\.\.\%(.\+\.\.\)\?/ contained
syntax cluster plantumlClassOp contains=plantumlClassPublic,
\ plantumlClassPrivate,
\ plantumlClassProtected,
\ plantumlClassPackPrivate
\ plantumlClassPrivate,
\ plantumlClassProtected,
\ plantumlClassPackPrivate
" Strings
syntax match plantumlSpecialString /\\n/ contained
@@ -105,6 +114,9 @@ syntax region plantumlString start=/'/ skip=/\\\\\|\\'/ end=/'/ contains=plantum
syntax match plantumlComment /'.*$/ contains=plantumlCommentTODO
syntax region plantumlMultilineComment start=/\/'/ end=/'\// contains=plantumlCommentTODO
syntax match plantumlTag /<\/\?[bi]>/
syntax region plantumlTag start=/<\/\?\%(back\|color\|del\|font\|img\|s\|size\|strike\|u\|w\)/ end=/>/
" Labels with a colon
syntax match plantumlColonLine /\S\@<=\s*\zs:.\+$/ contains=plantumlSpecialString
@@ -126,6 +138,26 @@ syntax region plantumlText oneline matchgroup=plantumlSequenceDelay start=/^\.\{
" Usecase diagram
syntax match plantumlUsecaseActor /:.\{-1,}:/ contains=plantumlSpecialString
" Mindmap diagram
let s:mindmapHilightLinks = [
\ 'WarningMsg', 'Directory', 'Special', 'MoreMsg', 'Statement', 'Title',
\ 'Question', 'LineNr', 'ModeMsg', 'Title', 'MoreMsg', 'SignColumn',
\ 'Function', 'Todo'
\ ]
syntax match plantumlMindmap1 /^[-+*][_<>]\?/ contained
let i = 1
let contained = []
while i < len(s:mindmapHilightLinks)
execute "syntax match plantumlMindmap" . i . " /^\\%(\\s\\|[-+*]\\)\\{" . (i - 1) . "}[-+*][_<>]\\?/ contained"
execute "highlight default link plantumlMindmap" . i . " " . s:mindmapHilightLinks[i - 1]
call add(contained, "plantumlMindmap" . i)
let i = i + 1
endwhile
execute "syntax region plantumlMindmap oneline start=/^\\s*[-+*]_\\?/ end=/$/ contains=" . join(contained, ',')
" Skinparam keywords
syntax case ignore
syntax keyword plantumlSkinparamKeyword ActivityBackgroundColor ActivityBarColor ActivityBorderColor
@@ -136,85 +168,116 @@ syntax keyword plantumlSkinparamKeyword ActivityFontColor ActivityFontName Activ
syntax keyword plantumlSkinparamKeyword ActivityStartColor ActorBackgroundColor ActorBorderColor ActorFontColor
syntax keyword plantumlSkinparamKeyword ActorFontName ActorFontSize ActorFontStyle ActorStereotypeFontColor
syntax keyword plantumlSkinparamKeyword ActorStereotypeFontName ActorStereotypeFontSize ActorStereotypeFontStyle
syntax keyword plantumlSkinparamKeyword AgentBackgroundColor AgentBorderColor AgentFontColor AgentFontName AgentFontSize
syntax keyword plantumlSkinparamKeyword AgentFontStyle AgentStereotypeFontColor AgentStereotypeFontName
syntax keyword plantumlSkinparamKeyword AgentStereotypeFontSize AgentStereotypeFontStyle ArrowColor ArrowFontColor
syntax keyword plantumlSkinparamKeyword ArrowFontName ArrowFontSize ArrowFontStyle ArtifactBackgroundColor
syntax keyword plantumlSkinparamKeyword ArtifactBorderColor ArtifactFontColor ArtifactFontName ArtifactFontSize
syntax keyword plantumlSkinparamKeyword ArtifactFontStyle ArtifactStereotypeFontColor ArtifactStereotypeFontName
syntax keyword plantumlSkinparamKeyword AgentBackgroundColor AgentBorderColor AgentBorderThickness AgentFontColor
syntax keyword plantumlSkinparamKeyword AgentFontName AgentFontSize AgentFontStyle AgentStereotypeFontColor
syntax keyword plantumlSkinparamKeyword AgentStereotypeFontName AgentStereotypeFontSize AgentStereotypeFontStyle
syntax keyword plantumlSkinparamKeyword ArchimateBackgroundColor ArchimateBorderColor ArchimateBorderThickness
syntax keyword plantumlSkinparamKeyword ArchimateFontColor ArchimateFontName ArchimateFontSize ArchimateFontStyle
syntax keyword plantumlSkinparamKeyword ArchimateStereotypeFontColor ArchimateStereotypeFontName
syntax keyword plantumlSkinparamKeyword ArchimateStereotypeFontSize ArchimateStereotypeFontStyle ArrowColor
syntax keyword plantumlSkinparamKeyword ArrowFontColor ArrowFontName ArrowFontSize ArrowFontStyle ArrowLollipopColor
syntax keyword plantumlSkinparamKeyword ArrowMessageAlignment ArrowThickness ArtifactBackgroundColor ArtifactBorderColor
syntax keyword plantumlSkinparamKeyword ArtifactFontColor ArtifactFontName ArtifactFontSize ArtifactFontStyle
syntax keyword plantumlSkinparamKeyword ArtifactStereotypeFontColor ArtifactStereotypeFontName
syntax keyword plantumlSkinparamKeyword ArtifactStereotypeFontSize ArtifactStereotypeFontStyle BackgroundColor
syntax keyword plantumlSkinparamKeyword BoundaryBackgroundColor BoundaryBorderColor BoundaryFontColor BoundaryFontName
syntax keyword plantumlSkinparamKeyword BoundaryFontSize BoundaryFontStyle BoundaryStereotypeFontColor
syntax keyword plantumlSkinparamKeyword BoundaryStereotypeFontName BoundaryStereotypeFontSize
syntax keyword plantumlSkinparamKeyword BoundaryStereotypeFontStyle CaptionFontColor CaptionFontName CaptionFontSize
syntax keyword plantumlSkinparamKeyword CaptionFontStyle CircledCharacterFontColor CircledCharacterFontName
syntax keyword plantumlSkinparamKeyword CircledCharacterFontSize CircledCharacterFontStyle CircledCharacterRadius
syntax keyword plantumlSkinparamKeyword ClassAttributeFontColor ClassAttributeFontName ClassAttributeFontSize
syntax keyword plantumlSkinparamKeyword ClassAttributeFontStyle ClassAttributeIconSize ClassBackgroundColor
syntax keyword plantumlSkinparamKeyword ClassBorderColor ClassBorderThickness ClassFontColor ClassFontName ClassFontSize
syntax keyword plantumlSkinparamKeyword ClassFontStyle ClassHeaderBackgroundColor ClassStereotypeFontColor
syntax keyword plantumlSkinparamKeyword ClassStereotypeFontName ClassStereotypeFontSize ClassStereotypeFontStyle
syntax keyword plantumlSkinparamKeyword CloudBackgroundColor CloudBorderColor CloudFontColor CloudFontName CloudFontSize
syntax keyword plantumlSkinparamKeyword CloudFontStyle CloudStereotypeFontColor CloudStereotypeFontName
syntax keyword plantumlSkinparamKeyword CloudStereotypeFontSize CloudStereotypeFontStyle CollectionsBackgroundColor
syntax keyword plantumlSkinparamKeyword CollectionsBorderColor ColorArrowSeparationSpace ComponentBackgroundColor
syntax keyword plantumlSkinparamKeyword ComponentBorderColor ComponentFontColor ComponentFontName ComponentFontSize
syntax keyword plantumlSkinparamKeyword BiddableBackgroundColor BiddableBorderColor BoundaryBackgroundColor
syntax keyword plantumlSkinparamKeyword BoundaryBorderColor BoundaryFontColor BoundaryFontName BoundaryFontSize
syntax keyword plantumlSkinparamKeyword BoundaryFontStyle BoundaryStereotypeFontColor BoundaryStereotypeFontName
syntax keyword plantumlSkinparamKeyword BoundaryStereotypeFontSize BoundaryStereotypeFontStyle BoxPadding
syntax keyword plantumlSkinparamKeyword CaptionFontColor CaptionFontName CaptionFontSize CaptionFontStyle
syntax keyword plantumlSkinparamKeyword CardBackgroundColor CardBorderColor CardBorderThickness CardFontColor
syntax keyword plantumlSkinparamKeyword CardFontName CardFontSize CardFontStyle CardStereotypeFontColor
syntax keyword plantumlSkinparamKeyword CardStereotypeFontName CardStereotypeFontSize CardStereotypeFontStyle
syntax keyword plantumlSkinparamKeyword CircledCharacterFontColor CircledCharacterFontName CircledCharacterFontSize
syntax keyword plantumlSkinparamKeyword CircledCharacterFontStyle CircledCharacterRadius ClassAttributeFontColor
syntax keyword plantumlSkinparamKeyword ClassAttributeFontName ClassAttributeFontSize ClassAttributeFontStyle
syntax keyword plantumlSkinparamKeyword ClassAttributeIconSize ClassBackgroundColor ClassBorderColor
syntax keyword plantumlSkinparamKeyword ClassBorderThickness ClassFontColor ClassFontName ClassFontSize ClassFontStyle
syntax keyword plantumlSkinparamKeyword ClassHeaderBackgroundColor ClassStereotypeFontColor ClassStereotypeFontName
syntax keyword plantumlSkinparamKeyword ClassStereotypeFontSize ClassStereotypeFontStyle CloudBackgroundColor
syntax keyword plantumlSkinparamKeyword CloudBorderColor CloudFontColor CloudFontName CloudFontSize CloudFontStyle
syntax keyword plantumlSkinparamKeyword CloudStereotypeFontColor CloudStereotypeFontName CloudStereotypeFontSize
syntax keyword plantumlSkinparamKeyword CloudStereotypeFontStyle CollectionsBackgroundColor CollectionsBorderColor
syntax keyword plantumlSkinparamKeyword ColorArrowSeparationSpace ComponentBackgroundColor ComponentBorderColor
syntax keyword plantumlSkinparamKeyword ComponentBorderThickness ComponentFontColor ComponentFontName ComponentFontSize
syntax keyword plantumlSkinparamKeyword ComponentFontStyle ComponentStereotypeFontColor ComponentStereotypeFontName
syntax keyword plantumlSkinparamKeyword ComponentStereotypeFontSize ComponentStereotypeFontStyle ComponentStyle
syntax keyword plantumlSkinparamKeyword ConditionStyle ControlBackgroundColor ControlBorderColor ControlFontColor
syntax keyword plantumlSkinparamKeyword ControlFontName ControlFontSize ControlFontStyle ControlStereotypeFontColor
syntax keyword plantumlSkinparamKeyword ControlStereotypeFontName ControlStereotypeFontSize ControlStereotypeFontStyle
syntax keyword plantumlSkinparamKeyword DatabaseBackgroundColor DatabaseBorderColor DatabaseFontColor DatabaseFontName
syntax keyword plantumlSkinparamKeyword DatabaseFontSize DatabaseFontStyle DatabaseStereotypeFontColor
syntax keyword plantumlSkinparamKeyword DatabaseStereotypeFontName DatabaseStereotypeFontSize
syntax keyword plantumlSkinparamKeyword DatabaseStereotypeFontStyle DefaultFontColor DefaultFontName DefaultFontSize
syntax keyword plantumlSkinparamKeyword DefaultFontStyle DefaultMonospacedFontName DefaultTextAlignment
syntax keyword plantumlSkinparamKeyword DiagramBorderColor DiagramBorderThickness Dpi EntityBackgroundColor
syntax keyword plantumlSkinparamKeyword EntityBorderColor EntityFontColor EntityFontName EntityFontSize EntityFontStyle
syntax keyword plantumlSkinparamKeyword EntityStereotypeFontColor EntityStereotypeFontName EntityStereotypeFontSize
syntax keyword plantumlSkinparamKeyword EntityStereotypeFontStyle FileBackgroundColor FileBorderColor FileFontColor
syntax keyword plantumlSkinparamKeyword ConditionEndStyle ConditionStyle ControlBackgroundColor ControlBorderColor
syntax keyword plantumlSkinparamKeyword ControlFontColor ControlFontName ControlFontSize ControlFontStyle
syntax keyword plantumlSkinparamKeyword ControlStereotypeFontColor ControlStereotypeFontName ControlStereotypeFontSize
syntax keyword plantumlSkinparamKeyword ControlStereotypeFontStyle DatabaseBackgroundColor DatabaseBorderColor
syntax keyword plantumlSkinparamKeyword DatabaseFontColor DatabaseFontName DatabaseFontSize DatabaseFontStyle
syntax keyword plantumlSkinparamKeyword DatabaseStereotypeFontColor DatabaseStereotypeFontName
syntax keyword plantumlSkinparamKeyword DatabaseStereotypeFontSize DatabaseStereotypeFontStyle DefaultFontColor
syntax keyword plantumlSkinparamKeyword DefaultFontName DefaultFontSize DefaultFontStyle DefaultMonospacedFontName
syntax keyword plantumlSkinparamKeyword DefaultTextAlignment DesignedBackgroundColor DesignedBorderColor
syntax keyword plantumlSkinparamKeyword DesignedDomainBorderThickness DesignedDomainFontColor DesignedDomainFontName
syntax keyword plantumlSkinparamKeyword DesignedDomainFontSize DesignedDomainFontStyle DesignedDomainStereotypeFontColor
syntax keyword plantumlSkinparamKeyword DesignedDomainStereotypeFontName DesignedDomainStereotypeFontSize
syntax keyword plantumlSkinparamKeyword DesignedDomainStereotypeFontStyle DiagramBorderColor DiagramBorderThickness
syntax keyword plantumlSkinparamKeyword DomainBackgroundColor DomainBorderColor DomainBorderThickness DomainFontColor
syntax keyword plantumlSkinparamKeyword DomainFontName DomainFontSize DomainFontStyle DomainStereotypeFontColor
syntax keyword plantumlSkinparamKeyword DomainStereotypeFontName DomainStereotypeFontSize DomainStereotypeFontStyle Dpi
syntax keyword plantumlSkinparamKeyword EntityBackgroundColor EntityBorderColor EntityFontColor EntityFontName
syntax keyword plantumlSkinparamKeyword EntityFontSize EntityFontStyle EntityStereotypeFontColor
syntax keyword plantumlSkinparamKeyword EntityStereotypeFontName EntityStereotypeFontSize EntityStereotypeFontStyle
syntax keyword plantumlSkinparamKeyword EnumBackgroundColor FileBackgroundColor FileBorderColor FileFontColor
syntax keyword plantumlSkinparamKeyword FileFontName FileFontSize FileFontStyle FileStereotypeFontColor
syntax keyword plantumlSkinparamKeyword FileStereotypeFontName FileStereotypeFontSize FileStereotypeFontStyle
syntax keyword plantumlSkinparamKeyword FolderBackgroundColor FolderBorderColor FolderFontColor FolderFontName
syntax keyword plantumlSkinparamKeyword FolderFontSize FolderFontStyle FolderStereotypeFontColor
syntax keyword plantumlSkinparamKeyword FolderStereotypeFontName FolderStereotypeFontSize FolderStereotypeFontStyle
syntax keyword plantumlSkinparamKeyword FooterFontColor FooterFontName FooterFontSize FooterFontStyle
syntax keyword plantumlSkinparamKeyword FrameBackgroundColor FrameBorderColor FrameFontColor FrameFontName FrameFontSize
syntax keyword plantumlSkinparamKeyword FrameFontStyle FrameStereotypeFontColor FrameStereotypeFontName
syntax keyword plantumlSkinparamKeyword FrameStereotypeFontSize FrameStereotypeFontStyle Guillemet Handwritten
syntax keyword plantumlSkinparamKeyword HeaderFontColor HeaderFontName HeaderFontSize HeaderFontStyle HyperlinkColor
syntax keyword plantumlSkinparamKeyword HyperlinkUnderline IconIEMandatoryColor IconPackageBackgroundColor
syntax keyword plantumlSkinparamKeyword IconPackageColor IconPrivateBackgroundColor IconPrivateColor
syntax keyword plantumlSkinparamKeyword IconProtectedBackgroundColor IconProtectedColor IconPublicBackgroundColor
syntax keyword plantumlSkinparamKeyword IconPublicColor InterfaceBackgroundColor InterfaceBorderColor InterfaceFontColor
syntax keyword plantumlSkinparamKeyword FixCircleLabelOverlapping FolderBackgroundColor FolderBorderColor
syntax keyword plantumlSkinparamKeyword FolderFontColor FolderFontName FolderFontSize FolderFontStyle
syntax keyword plantumlSkinparamKeyword FolderStereotypeFontColor FolderStereotypeFontName FolderStereotypeFontSize
syntax keyword plantumlSkinparamKeyword FolderStereotypeFontStyle FooterFontColor FooterFontName FooterFontSize
syntax keyword plantumlSkinparamKeyword FooterFontStyle FrameBackgroundColor FrameBorderColor FrameFontColor
syntax keyword plantumlSkinparamKeyword FrameFontName FrameFontSize FrameFontStyle FrameStereotypeFontColor
syntax keyword plantumlSkinparamKeyword FrameStereotypeFontName FrameStereotypeFontSize FrameStereotypeFontStyle
syntax keyword plantumlSkinparamKeyword GenericDisplay Guillemet Handwritten HeaderFontColor HeaderFontName
syntax keyword plantumlSkinparamKeyword HeaderFontSize HeaderFontStyle HyperlinkColor HyperlinkUnderline
syntax keyword plantumlSkinparamKeyword IconIEMandatoryColor IconPackageBackgroundColor IconPackageColor
syntax keyword plantumlSkinparamKeyword IconPrivateBackgroundColor IconPrivateColor IconProtectedBackgroundColor
syntax keyword plantumlSkinparamKeyword IconProtectedColor IconPublicBackgroundColor IconPublicColor
syntax keyword plantumlSkinparamKeyword InterfaceBackgroundColor InterfaceBorderColor InterfaceFontColor
syntax keyword plantumlSkinparamKeyword InterfaceFontName InterfaceFontSize InterfaceFontStyle
syntax keyword plantumlSkinparamKeyword InterfaceStereotypeFontColor InterfaceStereotypeFontName
syntax keyword plantumlSkinparamKeyword InterfaceStereotypeFontSize InterfaceStereotypeFontStyle LegendBackgroundColor
syntax keyword plantumlSkinparamKeyword LegendBorderColor LegendBorderThickness LegendFontColor LegendFontName
syntax keyword plantumlSkinparamKeyword LegendFontSize LegendFontStyle Linetype MaxAsciiMessageLength MaxMessageSize
syntax keyword plantumlSkinparamKeyword MinClassWidth Monochrome NodeBackgroundColor NodeBorderColor NodeFontColor
syntax keyword plantumlSkinparamKeyword NodeFontName NodeFontSize NodeFontStyle NodeStereotypeFontColor
syntax keyword plantumlSkinparamKeyword LegendFontSize LegendFontStyle LexicalBackgroundColor LexicalBorderColor
syntax keyword plantumlSkinparamKeyword LifelineStrategy Linetype MachineBackgroundColor MachineBorderColor
syntax keyword plantumlSkinparamKeyword MachineBorderThickness MachineFontColor MachineFontName MachineFontSize
syntax keyword plantumlSkinparamKeyword MachineFontStyle MachineStereotypeFontColor MachineStereotypeFontName
syntax keyword plantumlSkinparamKeyword MachineStereotypeFontSize MachineStereotypeFontStyle MaxAsciiMessageLength
syntax keyword plantumlSkinparamKeyword MaxMessageSize MinClassWidth Monochrome NodeBackgroundColor NodeBorderColor
syntax keyword plantumlSkinparamKeyword NodeFontColor NodeFontName NodeFontSize NodeFontStyle NodeStereotypeFontColor
syntax keyword plantumlSkinparamKeyword NodeStereotypeFontName NodeStereotypeFontSize NodeStereotypeFontStyle Nodesep
syntax keyword plantumlSkinparamKeyword NoteBackgroundColor NoteBorderColor NoteBorderThickness NoteFontColor
syntax keyword plantumlSkinparamKeyword NoteFontName NoteFontSize NoteFontStyle NoteShadowing ObjectAttributeFontColor
syntax keyword plantumlSkinparamKeyword ObjectAttributeFontName ObjectAttributeFontSize ObjectAttributeFontStyle
syntax keyword plantumlSkinparamKeyword ObjectBackgroundColor ObjectBorderColor ObjectBorderThickness ObjectFontColor
syntax keyword plantumlSkinparamKeyword ObjectFontName ObjectFontSize ObjectFontStyle ObjectStereotypeFontColor
syntax keyword plantumlSkinparamKeyword ObjectStereotypeFontName ObjectStereotypeFontSize ObjectStereotypeFontStyle
syntax keyword plantumlSkinparamKeyword PackageBackgroundColor PackageBorderColor PackageBorderThickness
syntax keyword plantumlSkinparamKeyword PackageFontColor PackageFontName PackageFontSize PackageFontStyle
syntax keyword plantumlSkinparamKeyword PackageStereotypeFontColor PackageStereotypeFontName PackageStereotypeFontSize
syntax keyword plantumlSkinparamKeyword PackageStereotypeFontStyle PackageStyle Padding ParticipantBackgroundColor
syntax keyword plantumlSkinparamKeyword ParticipantBorderColor ParticipantFontColor ParticipantFontName
syntax keyword plantumlSkinparamKeyword ParticipantFontSize ParticipantFontStyle PartitionBackgroundColor
syntax keyword plantumlSkinparamKeyword PartitionBorderColor PartitionBorderThickness PartitionFontColor
syntax keyword plantumlSkinparamKeyword PartitionFontName PartitionFontSize PartitionFontStyle QueueBackgroundColor
syntax keyword plantumlSkinparamKeyword QueueBorderColor QueueFontColor QueueFontName QueueFontSize QueueFontStyle
syntax keyword plantumlSkinparamKeyword NoteFontName NoteFontSize NoteFontStyle NoteShadowing NoteTextAlignment
syntax keyword plantumlSkinparamKeyword ObjectAttributeFontColor ObjectAttributeFontName ObjectAttributeFontSize
syntax keyword plantumlSkinparamKeyword ObjectAttributeFontStyle ObjectBackgroundColor ObjectBorderColor
syntax keyword plantumlSkinparamKeyword ObjectBorderThickness ObjectFontColor ObjectFontName ObjectFontSize
syntax keyword plantumlSkinparamKeyword ObjectFontStyle ObjectStereotypeFontColor ObjectStereotypeFontName
syntax keyword plantumlSkinparamKeyword ObjectStereotypeFontSize ObjectStereotypeFontStyle PackageBackgroundColor
syntax keyword plantumlSkinparamKeyword PackageBorderColor PackageBorderThickness PackageFontColor PackageFontName
syntax keyword plantumlSkinparamKeyword PackageFontSize PackageFontStyle PackageStereotypeFontColor
syntax keyword plantumlSkinparamKeyword PackageStereotypeFontName PackageStereotypeFontSize PackageStereotypeFontStyle
syntax keyword plantumlSkinparamKeyword PackageStyle PackageTitleAlignment Padding PageBorderColor PageExternalColor
syntax keyword plantumlSkinparamKeyword PageMargin ParticipantBackgroundColor ParticipantBorderColor
syntax keyword plantumlSkinparamKeyword ParticipantFontColor ParticipantFontName ParticipantFontSize
syntax keyword plantumlSkinparamKeyword ParticipantFontStyle ParticipantPadding ParticipantStereotypeFontColor
syntax keyword plantumlSkinparamKeyword ParticipantStereotypeFontName ParticipantStereotypeFontSize
syntax keyword plantumlSkinparamKeyword ParticipantStereotypeFontStyle PartitionBackgroundColor PartitionBorderColor
syntax keyword plantumlSkinparamKeyword PartitionBorderThickness PartitionFontColor PartitionFontName PartitionFontSize
syntax keyword plantumlSkinparamKeyword PartitionFontStyle PathHoverColor QueueBackgroundColor QueueBorderColor
syntax keyword plantumlSkinparamKeyword QueueFontColor QueueFontName QueueFontSize QueueFontStyle
syntax keyword plantumlSkinparamKeyword QueueStereotypeFontColor QueueStereotypeFontName QueueStereotypeFontSize
syntax keyword plantumlSkinparamKeyword QueueStereotypeFontStyle Ranksep RectangleBackgroundColor RectangleBorderColor
syntax keyword plantumlSkinparamKeyword RectangleBorderThickness RectangleFontColor RectangleFontName RectangleFontSize
syntax keyword plantumlSkinparamKeyword RectangleFontStyle RectangleStereotypeFontColor RectangleStereotypeFontName
syntax keyword plantumlSkinparamKeyword RectangleStereotypeFontSize RectangleStereotypeFontStyle RoundCorner
syntax keyword plantumlSkinparamKeyword RectangleStereotypeFontSize RectangleStereotypeFontStyle
syntax keyword plantumlSkinparamKeyword RequirementBackgroundColor RequirementBorderColor RequirementBorderThickness
syntax keyword plantumlSkinparamKeyword RequirementFontColor RequirementFontName RequirementFontSize
syntax keyword plantumlSkinparamKeyword RequirementFontStyle RequirementStereotypeFontColor
syntax keyword plantumlSkinparamKeyword RequirementStereotypeFontName RequirementStereotypeFontSize
syntax keyword plantumlSkinparamKeyword RequirementStereotypeFontStyle ResponseMessageBelowArrow RoundCorner
syntax keyword plantumlSkinparamKeyword SameClassWidth SequenceActorBorderThickness SequenceArrowThickness
syntax keyword plantumlSkinparamKeyword SequenceBoxBackgroundColor SequenceBoxBorderColor SequenceBoxFontColor
syntax keyword plantumlSkinparamKeyword SequenceBoxFontName SequenceBoxFontSize SequenceBoxFontStyle
@@ -228,35 +291,41 @@ syntax keyword plantumlSkinparamKeyword SequenceGroupFontSize SequenceGroupFontS
syntax keyword plantumlSkinparamKeyword SequenceGroupHeaderFontName SequenceGroupHeaderFontSize
syntax keyword plantumlSkinparamKeyword SequenceGroupHeaderFontStyle SequenceLifeLineBackgroundColor
syntax keyword plantumlSkinparamKeyword SequenceLifeLineBorderColor SequenceLifeLineBorderThickness
syntax keyword plantumlSkinparamKeyword SequenceMessageAlignment SequenceMessageTextAlignment
syntax keyword plantumlSkinparamKeyword SequenceNewpageSeparatorColor SequenceParticipant
syntax keyword plantumlSkinparamKeyword SequenceParticipantBorderThickness SequenceReferenceBackgroundColor
syntax keyword plantumlSkinparamKeyword SequenceReferenceBorderColor SequenceReferenceBorderThickness
syntax keyword plantumlSkinparamKeyword SequenceReferenceFontColor SequenceReferenceFontName SequenceReferenceFontSize
syntax keyword plantumlSkinparamKeyword SequenceReferenceFontStyle SequenceReferenceHeaderBackgroundColor
syntax keyword plantumlSkinparamKeyword SequenceStereotypeFontColor SequenceStereotypeFontName
syntax keyword plantumlSkinparamKeyword SequenceStereotypeFontSize SequenceStereotypeFontStyle SequenceTitleFontColor
syntax keyword plantumlSkinparamKeyword SequenceTitleFontName SequenceTitleFontSize SequenceTitleFontStyle Shadowing
syntax keyword plantumlSkinparamKeyword StackBackgroundColor StackBorderColor StackFontColor StackFontName StackFontSize
syntax keyword plantumlSkinparamKeyword StackFontStyle StackStereotypeFontColor StackStereotypeFontName
syntax keyword plantumlSkinparamKeyword StackStereotypeFontSize StackStereotypeFontStyle StateAttributeFontColor
syntax keyword plantumlSkinparamKeyword StateAttributeFontName StateAttributeFontSize StateAttributeFontStyle
syntax keyword plantumlSkinparamKeyword StateBackgroundColor StateBorderColor StateEndColor StateFontColor StateFontName
syntax keyword plantumlSkinparamKeyword StateFontSize StateFontStyle StateStartColor StereotypeABackgroundColor
syntax keyword plantumlSkinparamKeyword StereotypeCBackgroundColor StereotypeEBackgroundColor StereotypeIBackgroundColor
syntax keyword plantumlSkinparamKeyword StereotypeNBackgroundColor StereotypePosition StorageBackgroundColor
syntax keyword plantumlSkinparamKeyword StorageBorderColor StorageFontColor StorageFontName StorageFontSize
syntax keyword plantumlSkinparamKeyword StorageFontStyle StorageStereotypeFontColor StorageStereotypeFontName
syntax keyword plantumlSkinparamKeyword StorageStereotypeFontSize StorageStereotypeFontStyle Style SvglinkTarget
syntax keyword plantumlSkinparamKeyword SwimlaneBorderColor SwimlaneBorderThickness SwimlaneTitleFontColor
syntax keyword plantumlSkinparamKeyword SwimlaneTitleFontName SwimlaneTitleFontSize SwimlaneTitleFontStyle TabSize
syntax keyword plantumlSkinparamKeyword TitleBackgroundColor TitleBorderColor TitleBorderRoundCorner
syntax keyword plantumlSkinparamKeyword SequenceParticipantBorderThickness SequenceReferenceAlignment
syntax keyword plantumlSkinparamKeyword SequenceReferenceBackgroundColor SequenceReferenceBorderColor
syntax keyword plantumlSkinparamKeyword SequenceReferenceBorderThickness SequenceReferenceFontColor
syntax keyword plantumlSkinparamKeyword SequenceReferenceFontName SequenceReferenceFontSize SequenceReferenceFontStyle
syntax keyword plantumlSkinparamKeyword SequenceReferenceHeaderBackgroundColor SequenceStereotypeFontColor
syntax keyword plantumlSkinparamKeyword SequenceStereotypeFontName SequenceStereotypeFontSize
syntax keyword plantumlSkinparamKeyword SequenceStereotypeFontStyle SequenceTitleFontColor SequenceTitleFontName
syntax keyword plantumlSkinparamKeyword SequenceTitleFontSize SequenceTitleFontStyle Shadowing StackBackgroundColor
syntax keyword plantumlSkinparamKeyword StackBorderColor StackFontColor StackFontName StackFontSize StackFontStyle
syntax keyword plantumlSkinparamKeyword StackStereotypeFontColor StackStereotypeFontName StackStereotypeFontSize
syntax keyword plantumlSkinparamKeyword StackStereotypeFontStyle StateAttributeFontColor StateAttributeFontName
syntax keyword plantumlSkinparamKeyword StateAttributeFontSize StateAttributeFontStyle StateBackgroundColor
syntax keyword plantumlSkinparamKeyword StateBorderColor StateEndColor StateFontColor StateFontName StateFontSize
syntax keyword plantumlSkinparamKeyword StateFontStyle StateMessageAlignment StateStartColor StereotypeABackgroundColor
syntax keyword plantumlSkinparamKeyword StereotypeABorderColor StereotypeCBackgroundColor StereotypeCBorderColor
syntax keyword plantumlSkinparamKeyword StereotypeEBackgroundColor StereotypeEBorderColor StereotypeIBackgroundColor
syntax keyword plantumlSkinparamKeyword StereotypeIBorderColor StereotypeNBackgroundColor StereotypeNBorderColor
syntax keyword plantumlSkinparamKeyword StereotypePosition StorageBackgroundColor StorageBorderColor StorageFontColor
syntax keyword plantumlSkinparamKeyword StorageFontName StorageFontSize StorageFontStyle StorageStereotypeFontColor
syntax keyword plantumlSkinparamKeyword StorageStereotypeFontName StorageStereotypeFontSize StorageStereotypeFontStyle
syntax keyword plantumlSkinparamKeyword Style SvglinkTarget SwimlaneBorderColor SwimlaneBorderThickness
syntax keyword plantumlSkinparamKeyword SwimlaneTitleBackgroundColor SwimlaneTitleFontColor SwimlaneTitleFontName
syntax keyword plantumlSkinparamKeyword SwimlaneTitleFontSize SwimlaneTitleFontStyle SwimlaneWidth
syntax keyword plantumlSkinparamKeyword SwimlaneWrapTitleWidth TabSize TimingFontColor TimingFontName TimingFontSize
syntax keyword plantumlSkinparamKeyword TimingFontStyle TitleBackgroundColor TitleBorderColor TitleBorderRoundCorner
syntax keyword plantumlSkinparamKeyword TitleBorderThickness TitleFontColor TitleFontName TitleFontSize TitleFontStyle
syntax keyword plantumlSkinparamKeyword UsecaseBackgroundColor UsecaseBorderColor UsecaseBorderThickness UsecaseFontColor
syntax keyword plantumlSkinparamKeyword UsecaseFontName UsecaseFontSize UsecaseFontStyle UsecaseStereotypeFontColor
syntax keyword plantumlSkinparamKeyword UsecaseStereotypeFontName UsecaseStereotypeFontSize UsecaseStereotypeFontStyle
syntax keyword plantumlSkinparamKeyword UsecaseBackgroundColor UsecaseBorderColor UsecaseBorderThickness
syntax keyword plantumlSkinparamKeyword UsecaseFontColor UsecaseFontName UsecaseFontSize UsecaseFontStyle
syntax keyword plantumlSkinparamKeyword UsecaseStereotypeFontColor UsecaseStereotypeFontName UsecaseStereotypeFontSize
syntax keyword plantumlSkinparamKeyword UsecaseStereotypeFontStyle WrapWidth
" Not in 'java - jar plantuml.jar - language' output
syntax keyword plantumlSkinparamKeyword activityArrowColor activityArrowFontColor activityArrowFontName
syntax keyword plantumlSkinparamKeyword activityArrowFontSize activityArrowFontStyle BarColor BorderColor BoxPadding
syntax keyword plantumlSkinparamKeyword activityArrowFontSize activityArrowFontStyle BarColor BorderColor
syntax keyword plantumlSkinparamKeyword CharacterFontColor CharacterFontName CharacterFontSize CharacterFontStyle
syntax keyword plantumlSkinparamKeyword CharacterRadius classArrowColor classArrowFontColor classArrowFontName
syntax keyword plantumlSkinparamKeyword classArrowFontSize classArrowFontStyle Color componentArrowColor
@@ -267,7 +336,7 @@ syntax keyword plantumlSkinparamKeyword DividerFontName DividerFontSize DividerF
syntax keyword plantumlSkinparamKeyword FontSize FontStyle GroupBackgroundColor GroupingFontColor GroupingFontName
syntax keyword plantumlSkinparamKeyword GroupingFontSize GroupingFontStyle GroupingHeaderFontColor
syntax keyword plantumlSkinparamKeyword GroupingHeaderFontName GroupingHeaderFontSize GroupingHeaderFontStyle
syntax keyword plantumlSkinparamKeyword LifeLineBackgroundColor LifeLineBorderColor ParticipantPadding
syntax keyword plantumlSkinparamKeyword LifeLineBackgroundColor LifeLineBorderColor
syntax keyword plantumlSkinparamKeyword sequenceActorBackgroundColor sequenceActorBorderColor sequenceActorFontColor
syntax keyword plantumlSkinparamKeyword sequenceActorFontName sequenceActorFontSize sequenceActorFontStyle
syntax keyword plantumlSkinparamKeyword sequenceArrowColor sequenceArrowFontColor sequenceArrowFontName
@@ -312,6 +381,7 @@ highlight default link plantumlClassPackPrivate Function
highlight default link plantumlClassSeparator Comment
highlight default link plantumlSequenceDivider Comment
highlight default link plantumlSequenceSpace Comment
highlight default link plantumlTag Identifier
highlight default link plantumlSequenceDelay Identifier
highlight default link plantumlSpecialString Special
highlight default link plantumlString String

View File

@@ -467,6 +467,7 @@ syn match rubyDefinedOperator "\%#=1\<defined?" display
" 1.9-style Hash Keys and Keyword Parameters {{{1
syn match rubySymbol "\%([{(|,]\_s*\)\@<=\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*[?!]\=::\@!"he=e-1
syn match rubySymbol "[]})\"':]\@1<!\<\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*[!?]\=:[[:space:],;]\@="he=e-1
syn match rubySymbol "[[:space:],{(]\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*[!?]\=:[[:space:],;]\@="hs=s+1,he=e-1
" __END__ Directive {{{1
SynFold '__END__' syn region rubyData matchgroup=rubyDataDirective start="^__END__$" end="\%$"

View File

@@ -30,7 +30,7 @@ syn match rustExistentialContextual /\<existential\_s\+type/ transparent contain
syn match rustAssert "\<assert\(\w\)*!" contained
syn match rustPanic "\<panic\(\w\)*!" contained
syn match rustKeyword "\<async\%(\s\|\n\)\@="
syn match rustAsync "\<async\%(\s\|\n\)\@="
syn keyword rustKeyword break
syn keyword rustKeyword box nextgroup=rustBoxPlacement skipwhite skipempty
syn keyword rustKeyword continue
@@ -49,7 +49,8 @@ syn keyword rustKeyword use nextgroup=rustModPath skipwhite skipempty
" FIXME: Scoped impl's name is also fallen in this category
syn keyword rustKeyword mod trait nextgroup=rustIdentifier skipwhite skipempty
syn keyword rustStorage move mut ref static const
syn match rustDefault /\<default\ze\_s\+\(impl\|fn\|type\|const\)\>/
syn match rustDefault /\<default\ze\_s\+\(impl\|fn\|type\|const\)\>/
syn keyword rustAwait await
syn keyword rustPubScopeCrate crate contained
syn match rustPubScopeDelim /[()]/ contained
@@ -348,6 +349,8 @@ hi def link rustExternCrate rustKeyword
hi def link rustObsoleteExternMod Error
hi def link rustBoxPlacementParens Delimiter
hi def link rustQuestionMark Special
hi def link rustAsync rustKeyword
hi def link rustAwait rustKeyword
" Other Suggestions:
" hi rustAttribute ctermfg=cyan

View File

@@ -158,6 +158,7 @@ syntax keyword swiftKeywords
\ return
\ self
\ set
\ some
\ static
\ subscript
\ super
@@ -186,6 +187,9 @@ syntax match swiftMultiwordKeywords "indirect enum"
syntax region swiftEscapedReservedWord start="`" end="`" oneline
syntax keyword swiftAttributes
\ @_exported
\ @_functionBuilder
\ @_silgen_name
\ @assignment
\ @autoclosure
\ @available
@@ -193,6 +197,7 @@ syntax keyword swiftAttributes
\ @discardableResult
\ @escaping
\ @exported
\ @frozen
\ @IBAction
\ @IBDesignable
\ @IBInspectable
@@ -205,6 +210,7 @@ syntax keyword swiftAttributes
\ @NSCopying
\ @NSManaged
\ @objc
\ @propertyWrapper
\ @testable
\ @UIApplicationMain
\ @usableFromInline

File diff suppressed because it is too large Load Diff

View File

@@ -65,6 +65,10 @@ hi def link tomlTable Title
syn region tomlTableArray oneline start=/^\s*\[\[/ end=/\]\]/ contains=tomlKey,tomlKeyDq,tomlKeySq
hi def link tomlTableArray Title
syn cluster tomlValue contains=tomlArray,tomlString,tomlInteger,tomlFloat,tomlBoolean,tomlDate,tomlComment
syn region tomlKeyValueArray start=/=\s*\[\zs/ end=/\]/ contains=@tomlValue
syn region tomlArray start=/\[/ end=/\]/ contains=@tomlValue contained
syn keyword tomlTodo TODO FIXME XXX BUG contained
hi def link tomlTodo Todo

View File

@@ -4,7 +4,7 @@ endif
" vifm syntax file
" Maintainer: xaizek <xaizek@posteo.net>
" Last Change: June 3, 2019
" Last Change: July 12, 2019
" Inspired By: Vim syntax file by Dr. Charles E. Campbell, Jr.
if exists('b:current_syntax')
@@ -17,17 +17,30 @@ let s:cpo_save = &cpo
set cpo-=C
" General commands
syntax keyword vifmCommand contained alink apropos bmark bmarks bmgo cds change
\ chmod chown clone compare cope[n] co[py] cq[uit] d[elete] delbmarks
\ delm[arks] di[splay] dirs e[dit] el[se] empty en[dif] exi[t] file fin[d]
\ fini[sh] go[to] gr[ep] h[elp] hideui histnext his[tory] histprev jobs
\ locate ls lstrash marks media mes[sages] mkdir m[ove] noh[lsearch] on[ly]
\ popd pushd pu[t] pw[d] qa[ll] q[uit] redr[aw] reg[isters] regular rename
\ restart restore rlink screen sh[ell] siblnext siblprev sor[t] sp[lit]
\ s[ubstitute] tabc[lose] tabm[ove] tabname tabnew tabn[ext] tabp[revious]
\ touch tr trashes tree sync undol[ist] ve[rsion] vie[w] vifm vs[plit]
\ winc[md] w[rite] wq wqa[ll] xa[ll] x[it] y[ank]
syntax keyword vifmCommand contained
\ alink apropos bmark bmarks bmgo cds change chmod chown clone compare
\ cope[n] co[py] cq[uit] d[elete] delbmarks delm[arks] di[splay] dirs e[dit]
\ el[se] empty en[dif] exi[t] file fin[d] fini[sh] go[to] gr[ep] h[elp]
\ hideui histnext his[tory] histprev jobs locate ls lstrash marks media
\ mes[sages] mkdir m[ove] noh[lsearch] on[ly] popd pushd pu[t] pw[d] qa[ll]
\ q[uit] redr[aw] reg[isters] regular rename restart restore rlink screen
\ sh[ell] siblnext siblprev sor[t] sp[lit] s[ubstitute] tabc[lose] tabm[ove]
\ tabname tabnew tabn[ext] tabp[revious] touch tr trashes tree sync
\ undol[ist] ve[rsion] vie[w] vifm vs[plit] winc[md] w[rite] wq wqa[ll]
\ xa[ll] x[it] y[ank]
\ nextgroup=vifmArgs
syntax keyword vifmCommandCN contained
\ alink apropos bmark bmarks bmgo cds change chmod chown clone compare
\ cope[n] co[py] cq[uit] d[elete] delbmarks delm[arks] di[splay] dirs e[dit]
\ el[se] empty en[dif] exi[t] file fin[d] fini[sh] go[to] gr[ep] h[elp]
\ hideui histnext his[tory] histprev jobs locate ls lstrash marks media
\ mes[sages] mkdir m[ove] noh[lsearch] on[ly] popd pushd pu[t] pw[d] qa[ll]
\ q[uit] redr[aw] reg[isters] regular rename restart restore rlink screen
\ sh[ell] siblnext siblprev sor[t] sp[lit] s[ubstitute] tabc[lose] tabm[ove]
\ tabname tabnew tabn[ext] tabp[revious] touch tr trashes tree sync
\ undol[ist] ve[rsion] vie[w] vifm vs[plit] winc[md] w[rite] wq wqa[ll]
\ xa[ll] x[it] y[ank]
\ nextgroup=vifmArgsCN
" commands that might be prepended to a command without changing everything else
syntax keyword vifmPrefixCommands contained windo winrun
@@ -67,7 +80,7 @@ syntax case match
" Builtin functions
syntax match vifmBuiltinFunction
\ '\(chooseopt\|expand\|executable\|filetype\|fnameescape\|getpanetype\|has\|layoutis\|paneisat\|system\|tabpagenr\|term\)\ze('
\ '\(chooseopt\|expand\|executable\|extcached\|filetype\|fnameescape\|getpanetype\|has\|layoutis\|paneisat\|system\|tabpagenr\|term\)\ze('
" Operators
syntax match vifmOperator "\(==\|!=\|>=\?\|<=\?\|\.\|-\|+\|&&\|||\)" skipwhite
@@ -167,11 +180,12 @@ syntax region vifmStatement start='^\(\s\|:\)*'
" Contained statement with highlighting of angle-brace notation.
syntax region vifmStatementCN start='\(\s\|:\)*'
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' keepend contained
\ contains=vifmCommand,vifmCmdCommand,vifmCmdCommandSt,vifmMarkCommandSt
\ contains=vifmCommandCN,vifmCmdCommand,vifmCmdCommandSt,vifmMarkCommandSt
\,vifmFtCommandStN,vifmCMapAbbr,vifmMap,vifmMapSt,vifmCMapSt,vifmExecute
\,vifmComment,vifmInlineComment,vifmNotComment,vifmExprCommandSt,vifmNormalCommandSt
\,vifmNotation,vifmCdCommandStN,vifmSetN,vifmArgument,vifmSoCommand
\,vifmSoCommandStN,vifmInvertCommand,vifmInvertCommandStN,vifmPrefixCommands
\,vifmLetCN
" Contained statement without highlighting of angle-brace notation.
syntax region vifmStatementC start='\(\s\|:\)*'
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' keepend contained
@@ -306,11 +320,18 @@ syntax region vifmFtBeginning contained
\ end='\s' keepend
\ contains=vifmFtCommand,vifmPattern
" common highlight for :command arguments
" common highlight for :command arguments without highlighting of angle-bracket
" notation
syntax region vifmArgs start='!\?\zs\(\s*\S\+\|[^a-zA-Z]\)'
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='|\|$'
\ contained
\ contains=vifmStringInExpr
" common highlight for :command arguments with highlighting of angle-bracket
" notation
syntax region vifmArgsCN start='!\?\zs\(\s*\S\+\|[^a-zA-Z]\)'
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='|\|$'
\ contained
\ contains=vifmStringInExpr,vifmNotation
syntax region vifmSet
\ start='\(\s\|:\)*\<\(se\%[t]\|setg\%[lobal]\|setl\%[ocal]\)\>'
@@ -352,16 +373,24 @@ syntax region vifmSetAssignNSN contained
\ extend
\ contains=vifmNumber,vifmComment,vifmInlineComment,vifmNotation
" :let command with highlighting of angle-brace notation.
syntax region vifmLet
\ start='^\(\s\|:\)*\<let\>' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$'
\ keepend
\ contains=vifmLetCommand,vifmEnvVar,vifmString,vifmStringInExpr,vifmComment
\,vifmInlineComment,vifmNotComment
" Contained :let command without highlighting of angle-brace notation.
syntax region vifmLetC
\ start='\<let\>' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$\||'
\ keepend
\ contains=vifmLetCommand,vifmEnvVar,vifmString,vifmStringInExpr,vifmComment
\,vifmInlineComment,vifmNotComment,vifmBuiltinFunction
" Contained :let command with highlighting of angle-brace notation.
syntax region vifmLetCN
\ start='\<let\>' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$\||'
\ keepend
\ contains=vifmLetCommand,vifmEnvVar,vifmString,vifmStringInExpr,vifmComment
\,vifmInlineComment,vifmNotComment,vifmBuiltinFunction,vifmNotation
syntax region vifmUnlet
\ start='^\(\s\|:\)*\<unl\%[et]\>' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$'
\ keepend
@@ -416,6 +445,7 @@ highlight link vifmPatternCommands Statement
highlight link vifmComment Comment
highlight link vifmInlineComment Comment
highlight link vifmCommand Statement
highlight link vifmCommandCN Statement
highlight link vifmPrefixCommands Statement
highlight link vifmCdCommand Statement
highlight link vifmCmdCommand Statement

View File

@@ -10,6 +10,11 @@ if exists("b:current_syntax")
finish
endif
" Convert deprecated variable to new one
if exists('g:vue_disable_pre_processors') && g:vue_disable_pre_processors
let g:vue_pre_processors = []
endif
runtime! syntax/html.vim
syntax clear htmlTagName
syntax match htmlTagName contained "\<[a-zA-Z0-9:-]*\>"
@@ -21,47 +26,57 @@ function! s:attr(name, value)
return a:name . '=\("\|''\)[^\1]*' . a:value . '[^\1]*\1'
endfunction
""
" Check whether a syntax file for a given {language} exists.
function! s:syntax_available(language)
return !empty(globpath(&runtimepath, 'syntax/' . a:language . '.vim'))
function! s:should_register(language, start_pattern)
" Check whether a syntax file for {language} exists
if empty(globpath(&runtimepath, 'syntax/' . a:language . '.vim'))
return 0
endif
if exists('g:vue_pre_processors')
if type(g:vue_pre_processors) == v:t_list
return index(g:vue_pre_processors, s:language.name) != -1
elseif g:vue_pre_processors is# 'detect_on_enter'
return search(a:start_pattern, 'n') != 0
endif
endif
return 1
endfunction
""
" Register {language} for a given {tag}. If [attr_override] is given and not
" empty, it will be used for the attribute pattern.
function! s:register_language(language, tag, ...)
let attr_override = a:0 ? a:1 : ''
let attr = !empty(attr_override) ? attr_override : s:attr('lang', a:language)
let s:languages = [
\ {'name': 'less', 'tag': 'style'},
\ {'name': 'pug', 'tag': 'template', 'attr_pattern': s:attr('lang', '\%(pug\|jade\)')},
\ {'name': 'slm', 'tag': 'template'},
\ {'name': 'handlebars', 'tag': 'template'},
\ {'name': 'haml', 'tag': 'template'},
\ {'name': 'typescript', 'tag': 'script', 'attr_pattern': '\%(lang=\("\|''\)[^\1]*\(ts\|typescript\)[^\1]*\1\|ts\)'},
\ {'name': 'coffee', 'tag': 'script'},
\ {'name': 'stylus', 'tag': 'style'},
\ {'name': 'sass', 'tag': 'style'},
\ {'name': 'scss', 'tag': 'style'},
\ ]
if s:syntax_available(a:language)
execute 'syntax include @' . a:language . ' syntax/' . a:language . '.vim'
for s:language in s:languages
let s:attr_pattern = has_key(s:language, 'attr_pattern') ? s:language.attr_pattern : s:attr('lang', s:language.name)
let s:start_pattern = '<' . s:language.tag . '\>\_[^>]*' . s:attr_pattern . '\_[^>]*>'
if s:should_register(s:language.name, s:start_pattern)
execute 'syntax include @' . s:language.name . ' syntax/' . s:language.name . '.vim'
unlet! b:current_syntax
execute 'syntax region vue_' . a:language
execute 'syntax region vue_' . s:language.name
\ 'keepend'
\ 'start=/<' . a:tag . '\>\_[^>]*' . attr . '\_[^>]*>/'
\ 'end="</' . a:tag . '>"me=s-1'
\ 'contains=@' . a:language . ',vueSurroundingTag'
\ 'start=/' . s:start_pattern . '/'
\ 'end="</' . s:language.tag . '>"me=s-1'
\ 'contains=@' . s:language.name . ',vueSurroundingTag'
\ 'fold'
endif
endfunction
if !exists("g:vue_disable_pre_processors") || !g:vue_disable_pre_processors
call s:register_language('less', 'style')
call s:register_language('pug', 'template', s:attr('lang', '\%(pug\|jade\)'))
call s:register_language('slm', 'template')
call s:register_language('handlebars', 'template')
call s:register_language('haml', 'template')
call s:register_language('typescript', 'script', '\%(lang=\("\|''\)[^\1]*\(ts\|typescript\)[^\1]*\1\|ts\)')
call s:register_language('coffee', 'script')
call s:register_language('stylus', 'style')
call s:register_language('sass', 'style')
call s:register_language('scss', 'style')
endif
endfor
syn region vueSurroundingTag contained start=+<\(script\|style\|template\)+ end=+>+ fold contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent
syn keyword htmlSpecialTagName contained template
syn keyword htmlArg contained scoped ts
syn match htmlArg "[@v:][-:.0-9_a-z]*\>" contained
syntax sync fromstart
let b:current_syntax = "vue"

View File

@@ -14,13 +14,13 @@ let b:current_syntax = "zig"
syn keyword zigStorage const var extern packed export pub noalias inline comptime nakedcc stdcallcc volatile allowzero align linksection threadlocal
syn keyword zigStructure struct enum union error
syn keyword zigStatement break return continue asm defer errdefer unreachable try catch async await suspend resume cancel
syn keyword zigStatement break return continue asm defer errdefer unreachable try catch async await suspend resume
syn keyword zigConditional if else switch and or orelse
syn keyword zigRepeat while for
syn keyword zigConstant null undefined
syn keyword zigKeyword fn usingnamespace test
syn keyword zigType bool f16 f32 f64 f128 void noreturn type anyerror promise
syn keyword zigType bool f16 f32 f64 f128 void noreturn type anyerror anyframe
syn keyword zigType i0 u0 isize usize comptime_int comptime_float
syn keyword zigType c_short c_ushort c_int c_uint c_long c_ulong c_longlong c_ulonglong c_longdouble c_void
@@ -36,17 +36,18 @@ syn match zigBuiltinFn "\v\@(alignCast|alignOf|cDefine|cImport|cInclude)>"
syn match zigBuiltinFn "\v\@(cUndef|canImplicitCast|clz|cmpxchgWeak|cmpxchgStrong|compileError)>"
syn match zigBuiltinFn "\v\@(compileLog|ctz|popCount|divExact|divFloor|divTrunc)>"
syn match zigBuiltinFn "\v\@(embedFile|export|tagName|TagType|errorName)>"
syn match zigBuiltinFn "\v\@(errorReturnTrace|fence|fieldParentPtr|field)>"
syn match zigBuiltinFn "\v\@(frameAddress|import|inlineCall|newStackCall|intToPtr|IntType)>"
syn match zigBuiltinFn "\v\@(errorReturnTrace|fence|fieldParentPtr|field|unionInit)>"
syn match zigBuiltinFn "\v\@(frameAddress|import|inlineCall|newStackCall|asyncCall|intToPtr|IntType)>"
syn match zigBuiltinFn "\v\@(maxValue|memberCount|memberName|memberType)>"
syn match zigBuiltinFn "\v\@(memcpy|memset|minValue|mod|mulWithOverflow)>"
syn match zigBuiltinFn "\v\@(noInlineCall|bitOffsetOf|byteOffsetOf|OpaqueType|panic|ptrCast)>"
syn match zigBuiltinFn "\v\@(ptrToInt|rem|returnAddress|setCold)>"
syn match zigBuiltinFn "\v\@(setRuntimeSafety|setEvalBranchQuota|setFloatMode)>"
syn match zigBuiltinFn "\v\@(setGlobalLinkage|setGlobalSection|shlExact|This|hasDecl)>"
syn match zigBuiltinFn "\v\@(setGlobalLinkage|setGlobalSection|shlExact|This|hasDecl|hasField)>"
syn match zigBuiltinFn "\v\@(shlWithOverflow|shrExact|sizeOf|sqrt|byteSwap|subWithOverflow|intCast|floatCast|intToFloat|floatToInt|boolToInt|errSetCast)>"
syn match zigBuiltinFn "\v\@(truncate|typeId|typeInfo|typeName|typeOf|atomicRmw|bytesToSlice|sliceToBytes)>"
syn match zigBuiltinFn "\v\@(intToError|errorToInt|intToEnum|enumToInt|setAlignStack|handle|bitreverse|Vector)>"
syn match zigBuiltinFn "\v\@(intToError|errorToInt|intToEnum|enumToInt|setAlignStack|frame|Frame|frameSize|bitReverse|Vector)>"
syn match zigBuiltinFn "\v\@(sin|cos|exp|exp2|ln|log2|log10|fabs|floor|ceil|trunc|round)>"
syn match zigDecNumber display "\<[0-9]\+\%(.[0-9]\+\)\=\%([eE][+-]\?[0-9]\+\)\="
syn match zigHexNumber display "\<0x[a-fA-F0-9]\+\%([a-fA-F0-9]\+\%([pP][+-]\?[0-9]\+\)\?\)\="