diff options
author | Adam Stankiewicz <sheerun@sher.pl> | 2019-09-04 15:44:43 +0200 |
---|---|---|
committer | Adam Stankiewicz <sheerun@sher.pl> | 2019-09-04 15:44:43 +0200 |
commit | 664aa988f6d9cdb7b75218666fbe348c85ef8b29 (patch) | |
tree | 306173199576430e6133a1ed137bd80bbc2fb01b | |
parent | 3ddca5da461ebfaa82104f82e3cbf19d1c326ade (diff) | |
download | vim-polyglot-664aa988f6d9cdb7b75218666fbe348c85ef8b29.tar.gz vim-polyglot-664aa988f6d9cdb7b75218666fbe348c85ef8b29.zip |
Update
49 files changed, 1663 insertions, 1512 deletions
diff --git a/after/ftplugin/javascript.vim b/after/ftplugin/javascript.vim index 093f0b7b..4a6346d9 100644 --- a/after/ftplugin/javascript.vim +++ b/after/ftplugin/javascript.vim @@ -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 diff --git a/after/ftplugin/typescript.vim b/after/ftplugin/typescript.vim index 29ac50a6..21da03be 100644 --- a/after/ftplugin/typescript.vim +++ b/after/ftplugin/typescript.vim @@ -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 + diff --git a/after/indent/jsx.vim b/after/indent/jsx.vim index 9d8da5d1..3f25a7f1 100644 --- a/after/indent/jsx.vim +++ b/after/indent/jsx.vim @@ -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 diff --git a/after/indent/typescript.vim b/after/indent/typescript.vim index 996c3d8c..4e281b22 100644 --- a/after/indent/typescript.vim +++ b/after/indent/typescript.vim @@ -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 diff --git a/after/syntax/javascript.vim b/after/syntax/javascript.vim index 000ac954..27818b58 100644 --- a/after/syntax/javascript.vim +++ b/after/syntax/javascript.vim @@ -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 diff --git a/after/syntax/jsx_pretty.vim b/after/syntax/jsx_pretty.vim new file mode 100644 index 00000000..bc98202a --- /dev/null +++ b/after/syntax/jsx_pretty.vim @@ -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 + diff --git a/after/syntax/typescript.vim b/after/syntax/typescript.vim index d1b87c92..f39d755f 100644 --- a/after/syntax/typescript.vim +++ b/after/syntax/typescript.vim @@ -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 diff --git a/autoload/go/config.vim b/autoload/go/config.vim index 787c4e2a..e3f16179 100644 --- a/autoload/go/config.vim +++ b/autoload/go/config.vim @@ -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 diff --git a/autoload/jsx_pretty/indent.vim b/autoload/jsx_pretty/indent.vim index 428c366d..22ede621 100644 --- a/autoload/jsx_pretty/indent.vim +++ b/autoload/jsx_pretty/indent.vim @@ -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 diff --git a/autoload/jsx_pretty/syntax.vim b/autoload/jsx_pretty/syntax.vim deleted file mode 100644 index eac1f92a..00000000 --- a/autoload/jsx_pretty/syntax.vim +++ /dev/null @@ -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 diff --git a/autoload/rust.vim b/autoload/rust.vim index c513f03f..7aff515b 100644 --- a/autoload/rust.vim +++ b/autoload/rust.vim @@ -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 diff --git a/autoload/rust/debugging.vim b/autoload/rust/debugging.vim index caeef712..6392a024 100644 --- a/autoload/rust/debugging.vim +++ b/autoload/rust/debugging.vim @@ -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])) diff --git a/autoload/rust/tags.vim b/autoload/rust/tags.vim new file mode 100644 index 00000000..74e2f9f0 --- /dev/null +++ b/autoload/rust/tags.vim @@ -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: diff --git a/autoload/rustfmt.vim b/autoload/rustfmt.vim index 908eb325..f469ac13 100644 --- a/autoload/rustfmt.vim +++ b/autoload/rustfmt.vim @@ -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 diff --git a/autoload/terraform.vim b/autoload/terraform.vim index db1e3934..8554022e 100644 --- a/autoload/terraform.vim +++ b/autoload/terraform.vim @@ -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 diff --git a/compiler/credo.vim b/compiler/credo.vim index 964050ec..100abb4e 100644 --- a/compiler/credo.vim +++ b/compiler/credo.vim @@ -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 diff --git a/compiler/mix.vim b/compiler/mix.vim index fe01361f..17762815 100644 --- a/compiler/mix.vim +++ b/compiler/mix.vim @@ -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 + diff --git a/compiler/rustc.vim b/compiler/rustc.vim index 8ef71b67..876dab5a 100644 --- a/compiler/rustc.vim +++ b/compiler/rustc.vim @@ -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) diff --git a/ftdetect/polyglot.vim b/ftdetect/polyglot.vim index 83a372fc..d326ac02 100644 --- a/ftdetect/polyglot.vim +++ b/ftdetect/polyglot.vim @@ -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 diff --git a/ftplugin/Dockerfile.vim b/ftplugin/Dockerfile.vim index 909739aa..977be845 100644 --- a/ftplugin/Dockerfile.vim +++ b/ftplugin/Dockerfile.vim @@ -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 diff --git a/ftplugin/docker-compose.vim b/ftplugin/docker-compose.vim new file mode 100644 index 00000000..45a103fc --- /dev/null +++ b/ftplugin/docker-compose.vim @@ -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 diff --git a/ftplugin/mustache.vim b/ftplugin/mustache.vim index d8a351b7..c0eb6221 100644 --- a/ftplugin/mustache.vim +++ b/ftplugin/mustache.vim @@ -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> diff --git a/ftplugin/plantuml.vim b/ftplugin/plantuml.vim index 535fd0b9..46d26dac 100644 --- a/ftplugin/plantuml.vim +++ b/ftplugin/plantuml.vim @@ -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) diff --git a/ftplugin/rust.vim b/ftplugin/rust.vim index ad325e67..7f29cf38 100644 --- a/ftplugin/rust.vim +++ b/ftplugin/rust.vim @@ -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 diff --git a/ftplugin/rust/tagbar.vim b/ftplugin/rust/tagbar.vim index 91bd3c31..3de5d8a9 100644 --- a/ftplugin/rust/tagbar.vim +++ b/ftplugin/rust/tagbar.vim @@ -5,7 +5,7 @@ endif " " Support for Tagbar -- https://github.com/majutsushi/tagbar " -if !exists(':Tagbar') +if !exists(':Tagbar') || rust#tags#IsUCtags() finish endif diff --git a/ftplugin/terraform.vim b/ftplugin/terraform.vim index e8ed9fb3..9b4cc2bd 100644 --- a/ftplugin/terraform.vim +++ b/ftplugin/terraform.vim @@ -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> =' diff --git a/indent/handlebars.vim b/indent/handlebars.vim index 3fbace93..2253a7a3 100644 --- a/indent/handlebars.vim +++ b/indent/handlebars.vim @@ -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}} diff --git a/indent/javascript.vim b/indent/javascript.vim index 176a45b9..49154dbb 100644 --- a/indent/javascript.vim +++ b/indent/javascript.vim @@ -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 diff --git a/indent/pgsql.vim b/indent/pgsql.vim index 7db0187c..9c99b0c5 100644 --- a/indent/pgsql.vim +++ b/indent/pgsql.vim @@ -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() diff --git a/indent/rust.vim b/indent/rust.vim index ee7f6cf6..68178070 100644 --- a/indent/rust.vim +++ b/indent/rust.vim @@ -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) diff --git a/indent/svelte.vim b/indent/svelte.vim index 0b3c732f..ef0569ed 100644 --- a/indent/svelte.vim +++ b/indent/svelte.vim @@ -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 diff --git a/syntax/Dockerfile.vim b/syntax/Dockerfile.vim index 0ec26bcd..d9e26353 100644 --- a/syntax/Dockerfile.vim +++ b/syntax/Dockerfile.vim @@ -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 diff --git a/syntax/docker-compose.vim b/syntax/docker-compose.vim index abc7ca78..0fadc6f1 100644 --- a/syntax/docker-compose.vim +++ b/syntax/docker-compose.vim @@ -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 diff --git a/syntax/elixir.vim b/syntax/elixir.vim index 9ad39e4a..778850cf 100644 --- a/syntax/elixir.vim +++ b/syntax/elixir.vim @@ -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 diff --git a/syntax/go.vim b/syntax/go.vim index ca63c46c..86c09b68 100644 --- a/syntax/go.vim +++ b/syntax/go.vim @@ -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 diff --git a/syntax/markdown.vim b/syntax/markdown.vim index e7d27b09..d28da0e2 100644 --- a/syntax/markdown.vim +++ b/syntax/markdown.vim @@ -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 diff --git a/syntax/meson.vim b/syntax/meson.vim index 1d73e60e..7bd562c0 100644 --- a/syntax/meson.vim +++ b/syntax/meson.vim @@ -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 diff --git a/syntax/mustache.vim b/syntax/mustache.vim index 81b9f95b..204b4fb9 100644 --- a/syntax/mustache.vim +++ b/syntax/mustache.vim @@ -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 diff --git a/syntax/ocaml.vim b/syntax/ocaml.vim index ea98a4aa..80f2551f 100644 --- a/syntax/ocaml.vim +++ b/syntax/ocaml.vim @@ -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 diff --git a/syntax/pgsql.vim b/syntax/pgsql.vim index 8367ed65..18c7f9ec 100644 --- a/syntax/pgsql.vim +++ b/syntax/pgsql.vim @@ -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" diff --git a/syntax/plantuml.vim b/syntax/plantuml.vim index d2ba5c3e..0ea30e98 100644 --- a/syntax/plantuml.vim +++ b/syntax/plantuml.vim @@ -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 diff --git a/syntax/ruby.vim b/syntax/ruby.vim index d0cc0366..6d5a8dbf 100644 --- a/syntax/ruby.vim +++ b/syntax/ruby.vim @@ -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="\%$" diff --git a/syntax/rust.vim b/syntax/rust.vim index a4fff5c2..0dae57c6 100644 --- a/syntax/rust.vim +++ b/syntax/rust.vim @@ -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 diff --git a/syntax/swift.vim b/syntax/swift.vim index 89c7ad3b..f026d076 100644 --- a/syntax/swift.vim +++ b/syntax/swift.vim @@ -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 diff --git a/syntax/terraform.vim b/syntax/terraform.vim index 58c60203..fb202c77 100644 --- a/syntax/terraform.vim +++ b/syntax/terraform.vim @@ -22,6 +22,57 @@ syn keyword terraValueBool true false on off yes no """ data syn keyword terraDataTypeBI + \ aci_access_port_block + \ aci_access_port_selector + \ aci_application_epg + \ aci_application_profile + \ aci_attachable_access_entity_profile + \ aci_autonomous_system_profile + \ aci_bridge_domain + \ aci_cloud_applicationcontainer + \ aci_cloud_availability_zone + \ aci_cloud_aws_provider + \ aci_cloud_cidr_pool + \ aci_cloud_context_profile + \ aci_cloud_domain_profile + \ aci_cloud_e_pg + \ aci_cloud_endpoint_selector + \ aci_cloud_endpoint_selectorfor_external_e_pgs + \ aci_cloud_external_e_pg + \ aci_cloud_provider_profile + \ aci_cloud_providers_region + \ aci_cloud_subnet + \ aci_contract + \ aci_contract_subject + \ aci_end_point_retention_policy + \ aci_external_network_instance_profile + \ aci_filter + \ aci_filter_entry + \ aci_interface_fc_policy + \ aci_l2_interface_policy + \ aci_l3_ext_subnet + \ aci_l3_outside + \ aci_lacp_policy + \ aci_leaf_access_port_policy_group + \ aci_leaf_interface_profile + \ aci_leaf_profile + \ aci_lldp_interface_policy + \ aci_logical_interface_profile + \ aci_logical_node_profile + \ aci_miscabling_protocol_interface_policy + \ aci_ospf_interface_policy + \ aci_pcvpc_interface_policy_group + \ aci_port_security_policy + \ aci_subnet + \ aci_tenant + \ aci_vlan_encapsulationfor_vxlan_traffic + \ aci_vmm_domain + \ aci_vrf + \ akamai_authorities_set + \ akamai_contract + \ akamai_cp_code + \ akamai_dns_record_set + \ akamai_group \ alicloud_account \ alicloud_actiontrails \ alicloud_api_gateway_apis @@ -38,6 +89,8 @@ syn keyword terraDataTypeBI \ alicloud_cr_repos \ alicloud_cs_kubernetes_clusters \ alicloud_cs_managed_kubernetes_clusters + \ alicloud_db_instance_classes + \ alicloud_db_instance_engines \ alicloud_db_instances \ alicloud_ddoscoo_instances \ alicloud_disks @@ -56,11 +109,14 @@ syn keyword terraDataTypeBI \ alicloud_fc_services \ alicloud_fc_triggers \ alicloud_forward_entries + \ alicloud_gpdb_instances \ alicloud_images \ alicloud_instance_types \ alicloud_instances \ alicloud_key_pairs \ alicloud_kms_keys + \ alicloud_kvstore_instance_classes + \ alicloud_kvstore_instance_engines \ alicloud_kvstore_instances \ alicloud_mns_queues \ alicloud_mns_topic_subscriptions @@ -74,6 +130,9 @@ syn keyword terraDataTypeBI \ alicloud_nas_protocols \ alicloud_nat_gateways \ alicloud_network_interfaces + \ alicloud_ons_groups + \ alicloud_ons_instances + \ alicloud_ons_topics \ alicloud_oss_bucket_objects \ alicloud_oss_buckets \ alicloud_ots_instance_attachments @@ -95,6 +154,7 @@ syn keyword terraDataTypeBI \ alicloud_security_groups \ alicloud_slb_acls \ alicloud_slb_attachments + \ alicloud_slb_backend_servers \ alicloud_slb_ca_certificates \ alicloud_slb_listeners \ alicloud_slb_rules @@ -113,6 +173,79 @@ syn keyword terraDataTypeBI \ alicloud_zones \ archive_file \ atlas_artifact + \ avi_actiongroupconfig + \ avi_alertconfig + \ avi_alertemailconfig + \ avi_alertscriptconfig + \ avi_alertsyslogconfig + \ avi_analyticsprofile + \ avi_applicationpersistenceprofile + \ avi_applicationprofile + \ avi_authprofile + \ avi_autoscalelaunchconfig + \ avi_backup + \ avi_backupconfiguration + \ avi_certificatemanagementprofile + \ avi_cloud + \ avi_cloudconnectoruser + \ avi_cloudproperties + \ avi_cluster + \ avi_clusterclouddetails + \ avi_controllerproperties + \ avi_controllersite + \ avi_customipamdnsprofile + \ avi_dnspolicy + \ avi_errorpagebody + \ avi_errorpageprofile + \ avi_fileservice + \ avi_gslb + \ avi_gslbgeodbprofile + \ avi_gslbservice + \ avi_hardwaresecuritymodulegroup + \ avi_healthmonitor + \ avi_httppolicyset + \ avi_ipaddrgroup + \ avi_ipamdnsproviderprofile + \ avi_l4policyset + \ avi_microservicegroup + \ avi_natpolicy + \ avi_network + \ avi_networkprofile + \ avi_networksecuritypolicy + \ avi_networkservice + \ avi_pingaccessagent + \ avi_pkiprofile + \ avi_pool + \ avi_poolgroup + \ avi_poolgroupdeploymentpolicy + \ avi_prioritylabels + \ avi_protocolparser + \ avi_role + \ avi_scheduler + \ avi_securitypolicy + \ avi_seproperties + \ avi_server + \ avi_serverautoscalepolicy + \ avi_serviceengine + \ avi_serviceenginegroup + \ avi_snmptrapprofile + \ avi_sslkeyandcertificate + \ avi_sslprofile + \ avi_ssopolicy + \ avi_stringgroup + \ avi_systemconfiguration + \ avi_tenant + \ avi_trafficcloneprofile + \ avi_useraccountprofile + \ avi_virtualservice + \ avi_vrfcontext + \ avi_vsdatascriptset + \ avi_vsvip + \ avi_wafcrs + \ avi_wafpolicy + \ avi_wafpolicypsmgroup + \ avi_wafprofile + \ avi_webhook \ aws_acm_certificate \ aws_acmpca_certificate_authority \ aws_alb @@ -143,16 +276,20 @@ syn keyword terraDataTypeBI \ aws_codecommit_repository \ aws_cognito_user_pools \ aws_cur_report_definition + \ aws_customer_gateway \ aws_db_cluster_snapshot \ aws_db_event_categories \ aws_db_instance \ aws_db_snapshot \ aws_dx_gateway \ aws_dynamodb_table + \ aws_ebs_default_kms_key + \ aws_ebs_encryption_by_default \ aws_ebs_snapshot \ aws_ebs_snapshot_ids \ aws_ebs_volume \ aws_ec2_transit_gateway + \ aws_ec2_transit_gateway_dx_gateway_attachment \ aws_ec2_transit_gateway_route_table \ aws_ec2_transit_gateway_vpc_attachment \ aws_ec2_transit_gateway_vpn_attachment @@ -205,10 +342,13 @@ syn keyword terraDataTypeBI \ aws_lb_listener \ aws_lb_target_group \ aws_mq_broker + \ aws_msk_cluster + \ aws_msk_configuration \ aws_nat_gateway \ aws_network_acls \ aws_network_interface \ aws_network_interfaces + \ aws_organizations_organization \ aws_partition \ aws_prefix_list \ aws_pricing_product @@ -224,10 +364,13 @@ syn keyword terraDataTypeBI \ aws_route_tables \ aws_s3_bucket \ aws_s3_bucket_object + \ aws_s3_bucket_objects \ aws_secretsmanager_secret \ aws_secretsmanager_secret_version \ aws_security_group \ aws_security_groups + \ aws_servicequotas_service + \ aws_servicequotas_service_quota \ aws_sns_topic \ aws_sqs_queue \ aws_ssm_document @@ -243,8 +386,13 @@ syn keyword terraDataTypeBI \ aws_vpc_peering_connection \ aws_vpcs \ aws_vpn_gateway + \ aws_waf_ipset + \ aws_waf_rule + \ aws_waf_web_acl + \ aws_wafregional_ipset + \ aws_wafregional_rule + \ aws_wafregional_web_acl \ aws_workspaces_bundle - \ azuread_user \ azurerm_api_management \ azurerm_api_management_api \ azurerm_api_management_group @@ -271,6 +419,7 @@ syn keyword terraDataTypeBI \ azurerm_cosmosdb_account \ azurerm_data_lake_store \ azurerm_dev_test_lab + \ azurerm_dev_test_virtual_network \ azurerm_dns_zone \ azurerm_eventhub_namespace \ azurerm_express_route_circuit @@ -289,9 +438,11 @@ syn keyword terraDataTypeBI \ azurerm_logic_app_workflow \ azurerm_managed_disk \ azurerm_management_group + \ azurerm_maps_account \ azurerm_monitor_action_group \ azurerm_monitor_diagnostic_categories \ azurerm_monitor_log_profile + \ azurerm_mssql_elasticpool \ azurerm_network_interface \ azurerm_network_security_group \ azurerm_network_watcher @@ -303,6 +454,7 @@ syn keyword terraDataTypeBI \ azurerm_public_ips \ azurerm_recovery_services_protection_policy_vm \ azurerm_recovery_services_vault + \ azurerm_redis_cache \ azurerm_resource_group \ azurerm_role_definition \ azurerm_route_table @@ -312,6 +464,7 @@ syn keyword terraDataTypeBI \ azurerm_shared_image_gallery \ azurerm_shared_image_version \ azurerm_snapshot + \ azurerm_sql_server \ azurerm_storage_account \ azurerm_storage_account_sas \ azurerm_stream_analytics_job @@ -323,9 +476,11 @@ syn keyword terraDataTypeBI \ azurerm_virtual_machine \ azurerm_virtual_network \ azurerm_virtual_network_gateway + \ azurerm_virtual_network_gateway_connection \ azurestack_client_config \ azurestack_network_interface \ azurestack_network_security_group + \ azurestack_platform_image \ azurestack_public_ip \ azurestack_resource_group \ azurestack_route_table @@ -341,6 +496,8 @@ syn keyword terraDataTypeBI \ cloudflare_ip_ranges \ cloudflare_zones \ cloudstack_template + \ consul_acl_token + \ consul_acl_token_secret_id \ consul_agent_config \ consul_agent_self \ consul_autopilot_health @@ -351,8 +508,10 @@ syn keyword terraDataTypeBI \ consul_keys \ consul_nodes \ consul_service + \ consul_service_health \ consul_services \ digitalocean_certificate + \ digitalocean_database_cluster \ digitalocean_domain \ digitalocean_droplet \ digitalocean_droplet_snapshot @@ -371,11 +530,14 @@ syn keyword terraDataTypeBI \ dns_mx_record_set \ dns_ns_record_set \ dns_ptr_record_set + \ dns_srv_record_set \ dns_txt_record_set + \ docker_network \ docker_registry_image \ external \ fastly_ip_ranges \ filter + \ flexibleengine_blockstorage_volume_v2 \ flexibleengine_cce_cluster_v3 \ flexibleengine_cce_node_v3 \ flexibleengine_compute_bms_flavors_v2 @@ -388,12 +550,14 @@ syn keyword terraDataTypeBI \ flexibleengine_dcs_az_v1 \ flexibleengine_dcs_maintainwindow_v1 \ flexibleengine_dcs_product_v1 + \ flexibleengine_dns_zone_v2 \ flexibleengine_images_image_v2 \ flexibleengine_kms_data_key_v1 \ flexibleengine_kms_key_v1 \ flexibleengine_networking_network_v2 \ flexibleengine_networking_secgroup_v2 \ flexibleengine_rds_flavors_v1 + \ flexibleengine_rds_flavors_v3 \ flexibleengine_rts_software_config_v1 \ flexibleengine_rts_stack_resource_v1 \ flexibleengine_rts_stack_v1 @@ -407,11 +571,13 @@ syn keyword terraDataTypeBI \ flexibleengine_vpc_subnet_ids_v1 \ flexibleengine_vpc_subnet_v1 \ flexibleengine_vpc_v1 + \ github_collaborators \ github_ip_ranges \ github_repositories \ github_repository \ github_team \ github_user + \ gitlab_group \ gitlab_project \ gitlab_user \ gitlab_users @@ -420,6 +586,7 @@ syn keyword terraDataTypeBI \ google_client_config \ google_client_openid_userinfo \ google_cloudfunctions_function + \ google_composer_image_versions \ google_compute_address \ google_compute_backend_service \ google_compute_default_service_account @@ -433,6 +600,7 @@ syn keyword terraDataTypeBI \ google_compute_node_types \ google_compute_region_instance_group \ google_compute_regions + \ google_compute_ssl_certificate \ google_compute_ssl_policy \ google_compute_subnetwork \ google_compute_vpn_gateway @@ -447,6 +615,7 @@ syn keyword terraDataTypeBI \ google_iam_policy \ google_iam_role \ google_kms_crypto_key + \ google_kms_crypto_key_version \ google_kms_key_ring \ google_kms_secret \ google_netblock_ip_ranges @@ -476,8 +645,10 @@ syn keyword terraDataTypeBI \ hcloud_image \ hcloud_location \ hcloud_locations + \ hcloud_network \ hcloud_server \ hcloud_ssh_key + \ hcloud_ssh_keys \ hcloud_volume \ heroku_addon \ heroku_app @@ -488,12 +659,14 @@ syn keyword terraDataTypeBI \ huaweicloud_antiddos_v1 \ huaweicloud_cce_cluster_v3 \ huaweicloud_cce_node_v3 + \ huaweicloud_cdm_flavors_v1 \ huaweicloud_csbs_backup_policy_v1 \ huaweicloud_csbs_backup_v1 \ huaweicloud_cts_tracker_v1 \ huaweicloud_dcs_az_v1 \ huaweicloud_dcs_maintainwindow_v1 \ huaweicloud_dcs_product_v1 + \ huaweicloud_dis_partition_v2 \ huaweicloud_dms_az_v1 \ huaweicloud_dms_maintainwindow_v1 \ huaweicloud_dms_product_v1 @@ -503,6 +676,7 @@ syn keyword terraDataTypeBI \ huaweicloud_kms_data_key_v1 \ huaweicloud_kms_key_v1 \ huaweicloud_networking_network_v2 + \ huaweicloud_networking_port_v2 \ huaweicloud_networking_secgroup_v2 \ huaweicloud_networking_subnet_v2 \ huaweicloud_rds_flavors_v1 @@ -646,10 +820,13 @@ syn keyword terraDataTypeBI \ oci_core_instance_devices \ oci_core_instance_pool \ oci_core_instance_pool_instances + \ oci_core_instance_pool_load_balancer_attachment \ oci_core_instance_pools \ oci_core_instances \ oci_core_internet_gateways \ oci_core_ipsec_config + \ oci_core_ipsec_connection_tunnel + \ oci_core_ipsec_connection_tunnels \ oci_core_ipsec_connections \ oci_core_ipsec_status \ oci_core_letter_of_authority @@ -658,6 +835,10 @@ syn keyword terraDataTypeBI \ oci_core_local_peering_gateways \ oci_core_nat_gateway \ oci_core_nat_gateways + \ oci_core_network_security_group + \ oci_core_network_security_group_security_rules + \ oci_core_network_security_group_vnics + \ oci_core_network_security_groups \ oci_core_peer_region_for_remote_peerings \ oci_core_private_ip \ oci_core_private_ips @@ -688,6 +869,8 @@ syn keyword terraDataTypeBI \ oci_core_volume_group_backups \ oci_core_volume_groups \ oci_core_volumes + \ oci_database_autonomous_container_database + \ oci_database_autonomous_container_databases \ oci_database_autonomous_data_warehouse \ oci_database_autonomous_data_warehouse_backup \ oci_database_autonomous_data_warehouse_backups @@ -698,6 +881,10 @@ syn keyword terraDataTypeBI \ oci_database_autonomous_database_backups \ oci_database_autonomous_database_wallet \ oci_database_autonomous_databases + \ oci_database_autonomous_db_preview_versions + \ oci_database_autonomous_exadata_infrastructure + \ oci_database_autonomous_exadata_infrastructure_shapes + \ oci_database_autonomous_exadata_infrastructures \ oci_database_backups \ oci_database_data_guard_association \ oci_database_data_guard_associations @@ -715,6 +902,8 @@ syn keyword terraDataTypeBI \ oci_database_db_systems \ oci_database_db_versions \ oci_database_exadata_iorm_config + \ oci_database_maintenance_run + \ oci_database_maintenance_runs \ oci_dns_records \ oci_dns_steering_policies \ oci_dns_steering_policy @@ -725,12 +914,18 @@ syn keyword terraDataTypeBI \ oci_email_senders \ oci_email_suppression \ oci_email_suppressions + \ oci_events_rule + \ oci_events_rules \ oci_file_storage_export_sets \ oci_file_storage_exports \ oci_file_storage_file_systems \ oci_file_storage_mount_targets \ oci_file_storage_snapshot \ oci_file_storage_snapshots + \ oci_functions_application + \ oci_functions_applications + \ oci_functions_function + \ oci_functions_functions \ oci_health_checks_http_monitor \ oci_health_checks_http_monitors \ oci_health_checks_http_probe_results @@ -764,6 +959,7 @@ syn keyword terraDataTypeBI \ oci_identity_tag_namespaces \ oci_identity_tags \ oci_identity_tenancy + \ oci_identity_ui_password \ oci_identity_user \ oci_identity_user_group_memberships \ oci_identity_users @@ -775,6 +971,8 @@ syn keyword terraDataTypeBI \ oci_kms_keys \ oci_kms_vault \ oci_kms_vaults + \ oci_limits_quota + \ oci_limits_quotas \ oci_load_balancer_backend_health \ oci_load_balancer_backend_set_health \ oci_load_balancer_backend_sets @@ -783,6 +981,7 @@ syn keyword terraDataTypeBI \ oci_load_balancer_certificates \ oci_load_balancer_health \ oci_load_balancer_hostnames + \ oci_load_balancer_listener_rules \ oci_load_balancer_load_balancers \ oci_load_balancer_path_route_sets \ oci_load_balancer_policies @@ -849,6 +1048,10 @@ syn keyword terraDataTypeBI \ openstack_networking_network_v2 \ openstack_networking_port_ids_v2 \ openstack_networking_port_v2 + \ openstack_networking_qos_bandwidth_limit_rule_v2 + \ openstack_networking_qos_dscp_marking_rule_v2 + \ openstack_networking_qos_minimum_bandwidth_rule_v2 + \ openstack_networking_qos_policy_v2 \ openstack_networking_router_v2 \ openstack_networking_secgroup_v2 \ openstack_networking_subnet_v2 @@ -890,6 +1093,7 @@ syn keyword terraDataTypeBI \ opentelekomcloud_rts_stack_resource_v1 \ opentelekomcloud_rts_stack_v1 \ opentelekomcloud_s3_bucket_object + \ opentelekomcloud_sdrs_domain_v1 \ opentelekomcloud_sfs_file_system_v2 \ opentelekomcloud_vbs_backup_policy_v2 \ opentelekomcloud_vbs_backup_v2 @@ -909,23 +1113,42 @@ syn keyword terraDataTypeBI \ ovh_me_paymentmean_creditcard \ ovh_publiccloud_region \ ovh_publiccloud_regions + \ packet_device \ packet_operating_system \ packet_precreated_ip_block \ packet_spot_market_price \ pagerduty_escalation_policy \ pagerduty_extension_schema \ pagerduty_schedule + \ pagerduty_service \ pagerduty_team \ pagerduty_user \ pagerduty_vendor \ panos_dhcp_interface_info + \ panos_panorama_plugin \ panos_system_info \ profitbricks_datacenter \ profitbricks_image \ profitbricks_location \ profitbricks_resource \ profitbricks_snapshot + \ rancher2_catalog + \ rancher2_cloud_credential + \ rancher2_cluster + \ rancher2_cluster_driver + \ rancher2_cluster_logging + \ rancher2_cluster_role_template_binding + \ rancher2_etcd_backup + \ rancher2_global_role_binding + \ rancher2_namespace + \ rancher2_node_driver + \ rancher2_node_pool + \ rancher2_project + \ rancher2_project_logging + \ rancher2_project_role_template_binding + \ rancher2_registry \ rancher2_setting + \ rancher2_user \ rancher_certificate \ rancher_environment \ rancher_setting @@ -981,23 +1204,42 @@ syn keyword terraDataTypeBI \ telefonicaopencloud_vpc_v1 \ template_cloudinit_config \ template_file + \ tencentcloud_as_scaling_configs + \ tencentcloud_as_scaling_groups + \ tencentcloud_as_scaling_policies \ tencentcloud_availability_zones + \ tencentcloud_cbs_snapshots + \ tencentcloud_cbs_storages + \ tencentcloud_ccn_bandwidth_limits + \ tencentcloud_ccn_instances \ tencentcloud_container_cluster_instances \ tencentcloud_container_clusters \ tencentcloud_cos_bucket_object \ tencentcloud_cos_buckets + \ tencentcloud_dc_gateway_ccn_routes + \ tencentcloud_dc_gateway_instances + \ tencentcloud_dc_instances + \ tencentcloud_dcx_instances \ tencentcloud_eip \ tencentcloud_image \ tencentcloud_instance_types + \ tencentcloud_mongodb_instances + \ tencentcloud_mongodb_zone_config \ tencentcloud_mysql_backup_list \ tencentcloud_mysql_instance \ tencentcloud_mysql_parameter_list \ tencentcloud_mysql_zone_config \ tencentcloud_nats + \ tencentcloud_redis_instances + \ tencentcloud_redis_zone_config \ tencentcloud_route_table \ tencentcloud_security_group + \ tencentcloud_security_groups \ tencentcloud_subnet \ tencentcloud_vpc + \ tencentcloud_vpc_instances + \ tencentcloud_vpc_route_tables + \ tencentcloud_vpc_subnets \ terraform_remote_state \ tfe_ssh_key \ tfe_team @@ -1027,12 +1269,6 @@ syn keyword terraDataTypeBI \ ucloud_subnets \ ucloud_vpcs \ ucloud_zones - \ vault_approle_auth_backend_role_id - \ vault_aws_access_credentials - \ vault_generic_secret - \ vault_kubernetes_auth_backend_config - \ vault_kubernetes_auth_backend_role - \ vault_policy_document \ vsphere_compute_cluster \ vsphere_custom_attribute \ vsphere_datacenter @@ -1051,6 +1287,7 @@ syn keyword terraDataTypeBI \ yandex_compute_disk \ yandex_compute_image \ yandex_compute_instance + \ yandex_compute_instance_group \ yandex_compute_snapshot \ yandex_iam_policy \ yandex_iam_role @@ -1065,8 +1302,63 @@ syn keyword terraDataTypeBI """ resource syn keyword terraResourceTypeBI + \ aci_access_port_block + \ aci_access_port_selector + \ aci_application_epg + \ aci_application_profile + \ aci_attachable_access_entity_profile + \ aci_autonomous_system_profile + \ aci_bridge_domain + \ aci_cloud_applicationcontainer + \ aci_cloud_availability_zone + \ aci_cloud_aws_provider + \ aci_cloud_cidr_pool + \ aci_cloud_context_profile + \ aci_cloud_domain_profile + \ aci_cloud_e_pg + \ aci_cloud_endpoint_selector + \ aci_cloud_endpoint_selectorfor_external_e_pgs + \ aci_cloud_external_e_pg + \ aci_cloud_provider_profile + \ aci_cloud_providers_region + \ aci_cloud_subnet + \ aci_contract + \ aci_contract_subject + \ aci_end_point_retention_policy + \ aci_external_network_instance_profile + \ aci_filter + \ aci_filter_entry + \ aci_interface_fc_policy + \ aci_l2_interface_policy + \ aci_l3_ext_subnet + \ aci_l3_outside + \ aci_lacp_policy + \ aci_leaf_access_port_policy_group + \ aci_leaf_interface_profile + \ aci_leaf_profile + \ aci_lldp_interface_policy + \ aci_logical_interface_profile + \ aci_logical_node_profile + \ aci_miscabling_protocol_interface_policy + \ aci_ospf_interface_policy + \ aci_pcvpc_interface_policy_group + \ aci_port_security_policy + \ aci_rest + \ aci_subnet + \ aci_tenant + \ aci_vlan_encapsulationfor_vxlan_traffic + \ aci_vmm_domain + \ aci_vrf \ acme_certificate \ acme_registration + \ akamai_cp_code + \ akamai_dns_record + \ akamai_dns_zone + \ akamai_edge_hostname + \ akamai_property + \ akamai_property_activation + \ akamai_property_rules + \ akamai_property_variables \ alicloud_actiontrail \ alicloud_api_gateway_api \ alicloud_api_gateway_app @@ -1121,11 +1413,15 @@ syn keyword terraResourceTypeBI \ alicloud_ess_scaling_configuration \ alicloud_ess_scaling_group \ alicloud_ess_scaling_rule + \ alicloud_ess_scalinggroup_vserver_groups \ alicloud_ess_schedule + \ alicloud_ess_scheduled_task \ alicloud_fc_function \ alicloud_fc_service \ alicloud_fc_trigger \ alicloud_forward_entry + \ alicloud_gpdb_connection + \ alicloud_gpdb_instance \ alicloud_havip \ alicloud_havip_attachment \ alicloud_instance @@ -1152,8 +1448,13 @@ syn keyword terraResourceTypeBI \ alicloud_nas_mount_target \ alicloud_nat_gateway \ alicloud_network_acl + \ alicloud_network_acl_attachment + \ alicloud_network_acl_entries \ alicloud_network_interface \ alicloud_network_interface_attachment + \ alicloud_ons_group + \ alicloud_ons_instance + \ alicloud_ons_topic \ alicloud_oss_bucket \ alicloud_oss_bucket_object \ alicloud_ots_instance @@ -1164,6 +1465,7 @@ syn keyword terraResourceTypeBI \ alicloud_pvtz_zone_record \ alicloud_ram_access_key \ alicloud_ram_account_alias + \ alicloud_ram_account_password_policy \ alicloud_ram_alias \ alicloud_ram_group \ alicloud_ram_group_membership @@ -1185,6 +1487,7 @@ syn keyword terraResourceTypeBI \ alicloud_slb \ alicloud_slb_acl \ alicloud_slb_attachment + \ alicloud_slb_backend_server \ alicloud_slb_ca_certificate \ alicloud_slb_listener \ alicloud_slb_rule @@ -1203,6 +1506,80 @@ syn keyword terraResourceTypeBI \ alicloud_vswitch \ arukas_container \ atlas_artifact + \ avi_actiongroupconfig + \ avi_alertconfig + \ avi_alertemailconfig + \ avi_alertscriptconfig + \ avi_alertsyslogconfig + \ avi_analyticsprofile + \ avi_applicationpersistenceprofile + \ avi_applicationprofile + \ avi_authprofile + \ avi_autoscalelaunchconfig + \ avi_backup + \ avi_backupconfiguration + \ avi_certificatemanagementprofile + \ avi_cloud + \ avi_cloudconnectoruser + \ avi_cloudproperties + \ avi_cluster + \ avi_clusterclouddetails + \ avi_controllerproperties + \ avi_controllersite + \ avi_customipamdnsprofile + \ avi_dnspolicy + \ avi_errorpagebody + \ avi_errorpageprofile + \ avi_fileservice + \ avi_gslb + \ avi_gslbgeodbprofile + \ avi_gslbservice + \ avi_hardwaresecuritymodulegroup + \ avi_healthmonitor + \ avi_httppolicyset + \ avi_ipaddrgroup + \ avi_ipamdnsproviderprofile + \ avi_l4policyset + \ avi_microservicegroup + \ avi_natpolicy + \ avi_network + \ avi_networkprofile + \ avi_networksecuritypolicy + \ avi_networkservice + \ avi_pingaccessagent + \ avi_pkiprofile + \ avi_pool + \ avi_poolgroup + \ avi_poolgroupdeploymentpolicy + \ avi_prioritylabels + \ avi_protocolparser + \ avi_role + \ avi_scheduler + \ avi_securitypolicy + \ avi_seproperties + \ avi_server + \ avi_serverautoscalepolicy + \ avi_serviceengine + \ avi_serviceenginegroup + \ avi_snmptrapprofile + \ avi_sslkeyandcertificate + \ avi_sslprofile + \ avi_ssopolicy + \ avi_stringgroup + \ avi_systemconfiguration + \ avi_tenant + \ avi_trafficcloneprofile + \ avi_useraccount + \ avi_useraccountprofile + \ avi_virtualservice + \ avi_vrfcontext + \ avi_vsdatascriptset + \ avi_vsvip + \ avi_wafcrs + \ avi_wafpolicy + \ avi_wafpolicypsmgroup + \ avi_wafprofile + \ avi_webhook \ aws_acm_certificate \ aws_acm_certificate_validation \ aws_acmpca_certificate_authority @@ -1250,10 +1627,12 @@ syn keyword terraResourceTypeBI \ aws_appmesh_virtual_service \ aws_appsync_api_key \ aws_appsync_datasource + \ aws_appsync_function \ aws_appsync_graphql_api \ aws_appsync_resolver \ aws_athena_database \ aws_athena_named_query + \ aws_athena_workgroup \ aws_autoscaling_attachment \ aws_autoscaling_group \ aws_autoscaling_lifecycle_hook @@ -1290,6 +1669,7 @@ syn keyword terraResourceTypeBI \ aws_cloudwatch_log_subscription_filter \ aws_cloudwatch_metric_alarm \ aws_codebuild_project + \ aws_codebuild_source_credential \ aws_codebuild_webhook \ aws_codecommit_repository \ aws_codecommit_trigger @@ -1314,6 +1694,7 @@ syn keyword terraResourceTypeBI \ aws_config_delivery_channel \ aws_cur_report_definition \ aws_customer_gateway + \ aws_datapipeline_pipeline \ aws_datasync_agent \ aws_datasync_location_efs \ aws_datasync_location_nfs @@ -1340,6 +1721,7 @@ syn keyword terraResourceTypeBI \ aws_devicefarm_project \ aws_directory_service_conditional_forwarder \ aws_directory_service_directory + \ aws_directory_service_log_subscription \ aws_dlm_lifecycle_policy \ aws_dms_certificate \ aws_dms_endpoint @@ -1367,6 +1749,8 @@ syn keyword terraResourceTypeBI \ aws_dynamodb_global_table \ aws_dynamodb_table \ aws_dynamodb_table_item + \ aws_ebs_default_kms_key + \ aws_ebs_encryption_by_default \ aws_ebs_snapshot \ aws_ebs_snapshot_copy \ aws_ebs_volume @@ -1380,6 +1764,7 @@ syn keyword terraResourceTypeBI \ aws_ec2_transit_gateway_route_table_association \ aws_ec2_transit_gateway_route_table_propagation \ aws_ec2_transit_gateway_vpc_attachment + \ aws_ec2_transit_gateway_vpc_attachment_accepter \ aws_ecr_lifecycle_policy \ aws_ecr_repository \ aws_ecr_repository_policy @@ -1411,6 +1796,7 @@ syn keyword terraResourceTypeBI \ aws_emr_instance_group \ aws_emr_security_configuration \ aws_flow_log + \ aws_fms_admin_account \ aws_gamelift_alias \ aws_gamelift_build \ aws_gamelift_fleet @@ -1418,6 +1804,7 @@ syn keyword terraResourceTypeBI \ aws_glacier_vault \ aws_glacier_vault_lock \ aws_globalaccelerator_accelerator + \ aws_globalaccelerator_endpoint_group \ aws_globalaccelerator_listener \ aws_glue_catalog_database \ aws_glue_catalog_table @@ -1510,6 +1897,8 @@ syn keyword terraResourceTypeBI \ aws_media_store_container_policy \ aws_mq_broker \ aws_mq_configuration + \ aws_msk_cluster + \ aws_msk_configuration \ aws_nat_gateway \ aws_neptune_cluster \ aws_neptune_cluster_instance @@ -1557,6 +1946,7 @@ syn keyword terraResourceTypeBI \ aws_pinpoint_sms_channel \ aws_placement_group \ aws_proxy_protocol_policy + \ aws_quicksight_group \ aws_ram_principal_association \ aws_ram_resource_association \ aws_ram_resource_share @@ -1609,6 +1999,7 @@ syn keyword terraResourceTypeBI \ aws_service_discovery_public_dns_namespace \ aws_service_discovery_service \ aws_servicecatalog_portfolio + \ aws_servicequotas_service_quota \ aws_ses_active_receipt_rule_set \ aws_ses_configuration_set \ aws_ses_domain_dkim @@ -1618,6 +2009,7 @@ syn keyword terraResourceTypeBI \ aws_ses_email_identity \ aws_ses_event_destination \ aws_ses_identity_notification_topic + \ aws_ses_identity_policy \ aws_ses_receipt_filter \ aws_ses_receipt_rule \ aws_ses_receipt_rule_set @@ -1723,10 +2115,13 @@ syn keyword terraResourceTypeBI \ azure_storage_service \ azure_virtual_network \ azuread_application + \ azuread_application_password \ azuread_group + \ azuread_group_member \ azuread_service_principal \ azuread_service_principal_password \ azuread_user + \ azurerm_analysis_services_server \ azurerm_api_management \ azurerm_api_management_api \ azurerm_api_management_api_operation @@ -1735,6 +2130,7 @@ syn keyword terraResourceTypeBI \ azurerm_api_management_api_schema \ azurerm_api_management_api_version_set \ azurerm_api_management_authorization_server + \ azurerm_api_management_backend \ azurerm_api_management_certificate \ azurerm_api_management_group \ azurerm_api_management_group_user @@ -1774,6 +2170,7 @@ syn keyword terraResourceTypeBI \ azurerm_azuread_service_principal \ azurerm_azuread_service_principal_password \ azurerm_batch_account + \ azurerm_batch_application \ azurerm_batch_certificate \ azurerm_batch_pool \ azurerm_cdn_endpoint @@ -1808,6 +2205,7 @@ syn keyword terraResourceTypeBI \ azurerm_dev_test_lab \ azurerm_dev_test_linux_virtual_machine \ azurerm_dev_test_policy + \ azurerm_dev_test_schedule \ azurerm_dev_test_virtual_network \ azurerm_dev_test_windows_virtual_machine \ azurerm_devspace_controller @@ -1846,6 +2244,8 @@ syn keyword terraResourceTypeBI \ azurerm_hdinsight_spark_cluster \ azurerm_hdinsight_storm_cluster \ azurerm_image + \ azurerm_iot_dps + \ azurerm_iot_dps_certificate \ azurerm_iothub \ azurerm_iothub_consumer_group \ azurerm_iothub_shared_access_policy @@ -1876,7 +2276,9 @@ syn keyword terraResourceTypeBI \ azurerm_managed_disk \ azurerm_management_group \ azurerm_management_lock + \ azurerm_maps_account \ azurerm_mariadb_database + \ azurerm_mariadb_firewall_rule \ azurerm_mariadb_server \ azurerm_media_services_account \ azurerm_metric_alertrule @@ -1917,6 +2319,8 @@ syn keyword terraResourceTypeBI \ azurerm_postgresql_firewall_rule \ azurerm_postgresql_server \ azurerm_postgresql_virtual_network_rule + \ azurerm_private_dns_a_record + \ azurerm_private_dns_zone \ azurerm_public_ip \ azurerm_public_ip_prefix \ azurerm_recovery_services_protected_vm @@ -1961,11 +2365,14 @@ syn keyword terraResourceTypeBI \ azurerm_storage_container \ azurerm_storage_queue \ azurerm_storage_share + \ azurerm_storage_share_directory \ azurerm_storage_table + \ azurerm_storage_table_entity \ azurerm_stream_analytics_function_javascript_udf \ azurerm_stream_analytics_job \ azurerm_stream_analytics_output_blob \ azurerm_stream_analytics_output_eventhub + \ azurerm_stream_analytics_output_mssql \ azurerm_stream_analytics_output_servicebus_queue \ azurerm_stream_analytics_stream_input_blob \ azurerm_stream_analytics_stream_input_eventhub @@ -1995,6 +2402,7 @@ syn keyword terraResourceTypeBI \ azurestack_lb_probe \ azurestack_lb_rule \ azurestack_local_network_gateway + \ azurestack_managed_disk \ azurestack_network_interface \ azurestack_network_security_group \ azurestack_network_security_rule @@ -2110,6 +2518,7 @@ syn keyword terraResourceTypeBI \ cloudflare_zone_settings_override \ cloudscale_floating_ip \ cloudscale_server + \ cloudscale_server_group \ cloudscale_volume \ cloudstack_affinity_group \ cloudstack_disk @@ -2141,8 +2550,12 @@ syn keyword terraResourceTypeBI \ cobbler_repo \ cobbler_snippet \ cobbler_system + \ consul_acl_auth_method + \ consul_acl_binding_rule \ consul_acl_policy + \ consul_acl_role \ consul_acl_token + \ consul_acl_token_policy_attachment \ consul_agent_service \ consul_autopilot_config \ consul_catalog_entry @@ -2152,10 +2565,12 @@ syn keyword terraResourceTypeBI \ consul_node \ consul_prepared_query \ consul_service + \ datadog_dashboard \ datadog_downtime \ datadog_integration_aws \ datadog_integration_gcp \ datadog_integration_pagerduty + \ datadog_integration_pagerduty_service_object \ datadog_metric_metadata \ datadog_monitor \ datadog_screenboard @@ -2189,6 +2604,7 @@ syn keyword terraResourceTypeBI \ dns_mx_record_set \ dns_ns_record_set \ dns_ptr_record + \ dns_srv_record_set \ dns_txt_record_set \ dnsimple_record \ docker_config @@ -2261,6 +2677,8 @@ syn keyword terraResourceTypeBI \ flexibleengine_networking_vip_associate_v2 \ flexibleengine_networking_vip_v2 \ flexibleengine_rds_instance_v1 + \ flexibleengine_rds_instance_v3 + \ flexibleengine_rds_parametergroup_v3 \ flexibleengine_rts_software_config_v1 \ flexibleengine_rts_stack_resource_v1 \ flexibleengine_rts_stack_v1 @@ -2326,12 +2744,14 @@ syn keyword terraResourceTypeBI \ gitlab_group_membership \ gitlab_group_variable \ gitlab_label + \ gitlab_pipeline_schedule \ gitlab_pipeline_trigger \ gitlab_project \ gitlab_project_cluster \ gitlab_project_hook \ gitlab_project_membership \ gitlab_project_variable + \ gitlab_service_jira \ gitlab_service_slack \ gitlab_tag_protection \ gitlab_user @@ -2343,12 +2763,17 @@ syn keyword terraResourceTypeBI \ google_bigquery_dataset \ google_bigquery_table \ google_bigtable_instance + \ google_bigtable_instance_iam_binding + \ google_bigtable_instance_iam_member + \ google_bigtable_instance_iam_policy \ google_bigtable_table \ google_billing_account_iam_binding \ google_billing_account_iam_member \ google_billing_account_iam_policy \ google_binary_authorization_attestor \ google_binary_authorization_policy + \ google_cloud_run_domain_mapping + \ google_cloud_run_service \ google_cloud_scheduler_job \ google_cloudbuild_trigger \ google_cloudfunctions_function @@ -2362,10 +2787,12 @@ syn keyword terraResourceTypeBI \ google_compute_backend_service \ google_compute_backend_service_signed_url_key \ google_compute_disk + \ google_compute_external_vpn_gateway \ google_compute_firewall \ google_compute_forwarding_rule \ google_compute_global_address \ google_compute_global_forwarding_rule + \ google_compute_ha_vpn_gateway \ google_compute_health_check \ google_compute_http_health_check \ google_compute_https_health_check @@ -2381,16 +2808,19 @@ syn keyword terraResourceTypeBI \ google_compute_interconnect_attachment \ google_compute_managed_ssl_certificate \ google_compute_network + \ google_compute_network_endpoint \ google_compute_network_endpoint_group \ google_compute_network_peering \ google_compute_node_group \ google_compute_node_template + \ google_compute_project_default_network_tier \ google_compute_project_metadata \ google_compute_project_metadata_item \ google_compute_region_autoscaler \ google_compute_region_backend_service \ google_compute_region_disk \ google_compute_region_instance_group_manager + \ google_compute_resource_policy \ google_compute_route \ google_compute_router \ google_compute_router_interface @@ -2438,6 +2868,22 @@ syn keyword terraResourceTypeBI \ google_folder_iam_member \ google_folder_iam_policy \ google_folder_organization_policy + \ google_healthcare_dataset + \ google_healthcare_dataset_iam_binding + \ google_healthcare_dataset_iam_member + \ google_healthcare_dataset_iam_policy + \ google_healthcare_dicom_store + \ google_healthcare_dicom_store_iam_binding + \ google_healthcare_dicom_store_iam_member + \ google_healthcare_dicom_store_iam_policy + \ google_healthcare_fhir_store + \ google_healthcare_fhir_store_iam_binding + \ google_healthcare_fhir_store_iam_member + \ google_healthcare_fhir_store_iam_policy + \ google_healthcare_hl7_v2_store + \ google_healthcare_hl7_v2_store_iam_binding + \ google_healthcare_hl7_v2_store_iam_member + \ google_healthcare_hl7_v2_store_iam_policy \ google_iap_tunnel_instance_iam_binding \ google_iap_tunnel_instance_iam_member \ google_iap_tunnel_instance_iam_policy @@ -2496,6 +2942,9 @@ syn keyword terraResourceTypeBI \ google_service_account_key \ google_service_networking_connection \ google_sourcerepo_repository + \ google_sourcerepo_repository_iam_binding + \ google_sourcerepo_repository_iam_member + \ google_sourcerepo_repository_iam_policy \ google_spanner_database \ google_spanner_database_iam_binding \ google_spanner_database_iam_member @@ -2534,8 +2983,12 @@ syn keyword terraResourceTypeBI \ gridscale_storage \ hcloud_floating_ip \ hcloud_floating_ip_assignment + \ hcloud_network + \ hcloud_network_route + \ hcloud_network_subnet \ hcloud_rdns \ hcloud_server + \ hcloud_server_network \ hcloud_ssh_key \ hcloud_volume \ hcloud_volume_attachment @@ -2574,7 +3027,9 @@ syn keyword terraResourceTypeBI \ huaweicloud_blockstorage_volume_v2 \ huaweicloud_cce_cluster_v3 \ huaweicloud_cce_node_v3 + \ huaweicloud_cdm_cluster_v1 \ huaweicloud_ces_alarmrule + \ huaweicloud_cloudtable_cluster_v2 \ huaweicloud_compute_floatingip_associate_v2 \ huaweicloud_compute_floatingip_v2 \ huaweicloud_compute_instance_v2 @@ -2582,10 +3037,16 @@ syn keyword terraResourceTypeBI \ huaweicloud_compute_secgroup_v2 \ huaweicloud_compute_servergroup_v2 \ huaweicloud_compute_volume_attach_v2 + \ huaweicloud_cs_cluster_v1 + \ huaweicloud_cs_peering_connect_v1 + \ huaweicloud_cs_route_v1 \ huaweicloud_csbs_backup_policy_v1 \ huaweicloud_csbs_backup_v1 + \ huaweicloud_css_cluster_v1 \ huaweicloud_cts_tracker_v1 \ huaweicloud_dcs_instance_v1 + \ huaweicloud_dis_stream_v2 + \ huaweicloud_dli_queue_v1 \ huaweicloud_dms_group_v1 \ huaweicloud_dms_instance_v1 \ huaweicloud_dms_queue_v1 @@ -2599,6 +3060,7 @@ syn keyword terraResourceTypeBI \ huaweicloud_fw_firewall_group_v2 \ huaweicloud_fw_policy_v2 \ huaweicloud_fw_rule_v2 + \ huaweicloud_ges_graph_v1 \ huaweicloud_iam_agency_v3 \ huaweicloud_identity_group_membership_v3 \ huaweicloud_identity_group_v3 @@ -2648,6 +3110,11 @@ syn keyword terraResourceTypeBI \ huaweicloud_vpc_route_v2 \ huaweicloud_vpc_subnet_v1 \ huaweicloud_vpc_v1 + \ huaweicloud_vpnaas_endpoint_group_v2 + \ huaweicloud_vpnaas_ike_policy_v2 + \ huaweicloud_vpnaas_ipsec_policy_v2 + \ huaweicloud_vpnaas_service_v2 + \ huaweicloud_vpnaas_site_connection_v2 \ icinga2_checkcommand \ icinga2_host \ icinga2_hostgroup @@ -2663,6 +3130,7 @@ syn keyword terraResourceTypeBI \ jdcloud_eip \ jdcloud_eip_association \ jdcloud_instance + \ jdcloud_instance_ag_instance \ jdcloud_instance_template \ jdcloud_key_pairs \ jdcloud_network_acl @@ -2684,11 +3152,13 @@ syn keyword terraResourceTypeBI \ kubernetes_cluster_role \ kubernetes_cluster_role_binding \ kubernetes_config_map + \ kubernetes_cron_job \ kubernetes_daemonset \ kubernetes_deployment \ kubernetes_endpoints \ kubernetes_horizontal_pod_autoscaler \ kubernetes_ingress + \ kubernetes_job \ kubernetes_limit_range \ kubernetes_namespace \ kubernetes_network_policy @@ -2866,11 +3336,14 @@ syn keyword terraResourceTypeBI \ oci_core_instance_pool \ oci_core_internet_gateway \ oci_core_ipsec + \ oci_core_ipsec_connection_tunnel_management \ oci_core_listing_resource_version \ oci_core_listing_resource_version_agreement \ oci_core_listing_resource_versions \ oci_core_local_peering_gateway \ oci_core_nat_gateway + \ oci_core_network_security_group + \ oci_core_network_security_group_security_rule \ oci_core_private_ip \ oci_core_public_ip \ oci_core_remote_peering_connection @@ -2888,26 +3361,33 @@ syn keyword terraResourceTypeBI \ oci_core_volume_backup_policy_assignment \ oci_core_volume_group \ oci_core_volume_group_backup + \ oci_database_autonomous_container_database \ oci_database_autonomous_data_warehouse \ oci_database_autonomous_data_warehouse_backup \ oci_database_autonomous_database \ oci_database_autonomous_database_backup + \ oci_database_autonomous_exadata_infrastructure \ oci_database_backup \ oci_database_data_guard_association \ oci_database_db_home \ oci_database_db_system \ oci_database_exadata_iorm_config + \ oci_database_maintenance_run \ oci_dns_record \ oci_dns_steering_policy \ oci_dns_steering_policy_attachment \ oci_dns_zone \ oci_email_sender \ oci_email_suppression + \ oci_events_rule \ oci_file_storage_export \ oci_file_storage_export_set \ oci_file_storage_file_system \ oci_file_storage_mount_target \ oci_file_storage_snapshot + \ oci_functions_application + \ oci_functions_function + \ oci_functions_invoke_function \ oci_health_checks_http_monitor \ oci_health_checks_http_probe \ oci_health_checks_ping_monitor @@ -2936,6 +3416,7 @@ syn keyword terraResourceTypeBI \ oci_kms_key \ oci_kms_key_version \ oci_kms_vault + \ oci_limits_quota \ oci_load_balancer \ oci_load_balancer_backend \ oci_load_balancer_backend_set @@ -3036,6 +3517,8 @@ syn keyword terraResourceTypeBI \ openstack_identity_role_v3 \ openstack_identity_user_v3 \ openstack_images_image_v2 + \ openstack_keymanager_container_v1 + \ openstack_keymanager_secret_v1 \ openstack_lb_l7policy_v2 \ openstack_lb_l7rule_v2 \ openstack_lb_listener_v2 @@ -3053,6 +3536,10 @@ syn keyword terraResourceTypeBI \ openstack_networking_network_v2 \ openstack_networking_port_secgroup_associate_v2 \ openstack_networking_port_v2 + \ openstack_networking_qos_bandwidth_limit_rule_v2 + \ openstack_networking_qos_dscp_marking_rule_v2 + \ openstack_networking_qos_minimum_bandwidth_rule_v2 + \ openstack_networking_qos_policy_v2 \ openstack_networking_router_interface_v2 \ openstack_networking_router_route_v2 \ openstack_networking_router_v2 @@ -3141,6 +3628,7 @@ syn keyword terraResourceTypeBI \ opentelekomcloud_networking_vip_v2 \ opentelekomcloud_rds_instance_v1 \ opentelekomcloud_rds_instance_v3 + \ opentelekomcloud_rds_parametergroup_v3 \ opentelekomcloud_rts_software_config_v1 \ opentelekomcloud_rts_software_deployment_v1 \ opentelekomcloud_rts_stack_resource_v1 @@ -3148,6 +3636,7 @@ syn keyword terraResourceTypeBI \ opentelekomcloud_s3_bucket \ opentelekomcloud_s3_bucket_object \ opentelekomcloud_s3_bucket_policy + \ opentelekomcloud_sdrs_protectiongroup_v1 \ opentelekomcloud_sfs_file_system_v2 \ opentelekomcloud_smn_subscription_v2 \ opentelekomcloud_smn_topic_v2 @@ -3160,6 +3649,15 @@ syn keyword terraResourceTypeBI \ opentelekomcloud_vpc_route_v2 \ opentelekomcloud_vpc_subnet_v1 \ opentelekomcloud_vpc_v1 + \ opentelekomcloud_waf_ccattackprotection_rule_v1 + \ opentelekomcloud_waf_certificate_v1 + \ opentelekomcloud_waf_datamasking_rule_v1 + \ opentelekomcloud_waf_domain_v1 + \ opentelekomcloud_waf_falsealarmmasking_rule_v1 + \ opentelekomcloud_waf_policy_v1 + \ opentelekomcloud_waf_preciseprotection_rule_v1 + \ opentelekomcloud_waf_webtamperprotection_rule_v1 + \ opentelekomcloud_waf_whiteblackip_rule_v1 \ opsgenie_team \ opsgenie_user \ oraclepaas_application_container @@ -3214,6 +3712,7 @@ syn keyword terraResourceTypeBI \ panos_address_group \ panos_address_object \ panos_administrative_tag + \ panos_aggregate_interface \ panos_bfd_profile \ panos_bgp \ panos_bgp_aggregate @@ -3233,21 +3732,26 @@ syn keyword terraResourceTypeBI \ panos_edl \ panos_ethernet_interface \ panos_general_settings + \ panos_gre_tunnel \ panos_ike_crypto_profile \ panos_ike_gateway \ panos_ipsec_crypto_profile \ panos_ipsec_tunnel \ panos_ipsec_tunnel_proxy_id_ipv4 + \ panos_layer2_subinterface + \ panos_layer3_subinterface \ panos_license_api_key \ panos_licensing \ panos_loopback_interface \ panos_management_profile + \ panos_monitor_profile \ panos_nat_policy \ panos_nat_rule \ panos_nat_rule_group \ panos_panorama_address_group \ panos_panorama_address_object \ panos_panorama_administrative_tag + \ panos_panorama_aggregate_interface \ panos_panorama_bfd_profile \ panos_panorama_bgp \ panos_panorama_bgp_aggregate @@ -3267,16 +3771,24 @@ syn keyword terraResourceTypeBI \ panos_panorama_device_group_entry \ panos_panorama_edl \ panos_panorama_ethernet_interface + \ panos_panorama_gcp_account + \ panos_panorama_gke_cluster + \ panos_panorama_gke_cluster_group + \ panos_panorama_gre_tunnel \ panos_panorama_ike_crypto_profile \ panos_panorama_ike_gateway \ panos_panorama_ipsec_crypto_profile \ panos_panorama_ipsec_tunnel \ panos_panorama_ipsec_tunnel_proxy_id_ipv4 + \ panos_panorama_layer2_subinterface + \ panos_panorama_layer3_subinterface \ panos_panorama_loopback_interface \ panos_panorama_management_profile + \ panos_panorama_monitor_profile \ panos_panorama_nat_policy \ panos_panorama_nat_rule \ panos_panorama_nat_rule_group + \ panos_panorama_pbf_rule_group \ panos_panorama_redistribution_profile_ipv4 \ panos_panorama_security_policies \ panos_panorama_security_policy @@ -3293,9 +3805,12 @@ syn keyword terraResourceTypeBI \ panos_panorama_tunnel_interface \ panos_panorama_virtual_router \ panos_panorama_virtual_router_entry + \ panos_panorama_vlan + \ panos_panorama_vlan_entry \ panos_panorama_vlan_interface \ panos_panorama_zone \ panos_panorama_zone_entry + \ panos_pbf_rule_group \ panos_redistribution_profile_ipv4 \ panos_security_policies \ panos_security_policy @@ -3308,6 +3823,8 @@ syn keyword terraResourceTypeBI \ panos_tunnel_interface \ panos_virtual_router \ panos_virtual_router_entry + \ panos_vlan + \ panos_vlan_entry \ panos_vlan_interface \ panos_zone \ panos_zone_entry @@ -3318,6 +3835,7 @@ syn keyword terraResourceTypeBI \ postgresql_role \ postgresql_schema \ powerdns_record + \ powerdns_zone \ profitbricks_datacenter \ profitbricks_firewall \ profitbricks_group @@ -3354,6 +3872,7 @@ syn keyword terraResourceTypeBI \ rancher2_cluster_logging \ rancher2_cluster_role_template_binding \ rancher2_etcd_backup + \ rancher2_global_role_binding \ rancher2_namespace \ rancher2_node_driver \ rancher2_node_pool @@ -3361,7 +3880,9 @@ syn keyword terraResourceTypeBI \ rancher2_project \ rancher2_project_logging \ rancher2_project_role_template_binding + \ rancher2_registry \ rancher2_setting + \ rancher2_user \ rancher_certificate \ rancher_environment \ rancher_host @@ -3373,6 +3894,7 @@ syn keyword terraResourceTypeBI \ rancher_volume \ random_id \ random_integer + \ random_password \ random_pet \ random_shuffle \ random_string @@ -3403,12 +3925,18 @@ syn keyword terraResourceTypeBI \ runscope_step \ runscope_test \ scaleway_bucket + \ scaleway_compute_instance_ip + \ scaleway_compute_instance_placement_group + \ scaleway_compute_instance_security_group + \ scaleway_compute_instance_server + \ scaleway_compute_instance_volume \ scaleway_ip \ scaleway_ip_reverse_dns \ scaleway_security_group \ scaleway_security_group_rule \ scaleway_server \ scaleway_ssh_key + \ scaleway_storage_object_bucket \ scaleway_token \ scaleway_user_data \ scaleway_volume @@ -3423,6 +3951,21 @@ syn keyword terraResourceTypeBI \ selectel_vpc_token_v2 \ selectel_vpc_user_v2 \ selectel_vpc_vrrp_subnet_v2 + \ signalfx_aws_integration + \ signalfx_azure_integration + \ signalfx_dashboard + \ signalfx_dashboard_group + \ signalfx_detector + \ signalfx_event_feed_chart + \ signalfx_gcp_integration + \ signalfx_heatmap_chart + \ signalfx_integration + \ signalfx_list_chart + \ signalfx_pagerduty_integration + \ signalfx_single_value_chart + \ signalfx_slack_integration + \ signalfx_text_chart + \ signalfx_time_chart \ skytap_environment \ skytap_network \ skytap_project @@ -3490,27 +4033,46 @@ syn keyword terraResourceTypeBI \ telefonicaopencloud_vpc_v1 \ template_dir \ tencentcloud_alb_server_attachment + \ tencentcloud_as_attachment + \ tencentcloud_as_lifecycle_hook + \ tencentcloud_as_notification + \ tencentcloud_as_scaling_config + \ tencentcloud_as_scaling_group + \ tencentcloud_as_scaling_policy + \ tencentcloud_as_schedule \ tencentcloud_cbs_snapshot + \ tencentcloud_cbs_snapshot_policy \ tencentcloud_cbs_storage \ tencentcloud_cbs_storage_attachment + \ tencentcloud_ccn + \ tencentcloud_ccn_attachment + \ tencentcloud_ccn_bandwidth_limit \ tencentcloud_container_cluster \ tencentcloud_container_cluster_instance \ tencentcloud_cos_bucket \ tencentcloud_cos_bucket_object + \ tencentcloud_dc_gateway + \ tencentcloud_dc_gateway_ccn_route + \ tencentcloud_dcx \ tencentcloud_dnat \ tencentcloud_eip \ tencentcloud_eip_association \ tencentcloud_instance \ tencentcloud_key_pair \ tencentcloud_lb + \ tencentcloud_mongodb_instance + \ tencentcloud_mongodb_sharding_instance \ tencentcloud_mysql_account \ tencentcloud_mysql_account_privilege \ tencentcloud_mysql_backup_policy \ tencentcloud_mysql_instance \ tencentcloud_mysql_readonly_instance \ tencentcloud_nat_gateway + \ tencentcloud_redis_backup_config + \ tencentcloud_redis_instance \ tencentcloud_route_entry \ tencentcloud_route_table + \ tencentcloud_route_table_entry \ tencentcloud_security_group \ tencentcloud_security_group_rule \ tencentcloud_subnet @@ -3546,12 +4108,15 @@ syn keyword terraResourceTypeBI \ ucloud_eip \ ucloud_eip_association \ ucloud_instance + \ ucloud_isolation_group \ ucloud_lb \ ucloud_lb_attachment \ ucloud_lb_listener \ ucloud_lb_rule \ ucloud_lb_ssl \ ucloud_lb_ssl_attachment + \ ucloud_memcache_instance + \ ucloud_redis_instance \ ucloud_security_group \ ucloud_subnet \ ucloud_udpn_connection @@ -3563,90 +4128,6 @@ syn keyword terraResourceTypeBI \ ultradns_rdpool \ ultradns_record \ ultradns_tcpool - \ vault_approle_auth_backend_login - \ vault_approle_auth_backend_role - \ vault_approle_auth_backend_role_secret_id - \ vault_audit - \ vault_auth_backend - \ vault_aws_auth_backend_cert - \ vault_aws_auth_backend_client - \ vault_aws_auth_backend_identity_whitelist - \ vault_aws_auth_backend_login - \ vault_aws_auth_backend_role - \ vault_aws_auth_backend_role_tag - \ vault_aws_auth_backend_roletag_blacklist - \ vault_aws_auth_backend_sts_role - \ vault_aws_secret_backend - \ vault_aws_secret_backend_role - \ vault_azure_auth_backend_config - \ vault_azure_auth_backend_role - \ vault_cert_auth_backend_role - \ vault_consul_secret_backend - \ vault_database_secret_backend_connection - \ vault_database_secret_backend_role - \ vault_egp_policy - \ vault_gcp_auth_backend - \ vault_gcp_auth_backend_role - \ vault_gcp_secret_backend - \ vault_gcp_secret_roleset - \ vault_generic_endpoint - \ vault_generic_secret - \ vault_github_auth_backend - \ vault_github_team - \ vault_github_user - \ vault_identity_entity - \ vault_identity_entity_alias - \ vault_identity_group - \ vault_identity_group_alias - \ vault_identity_group_policies - \ vault_jwt_auth_backend - \ vault_jwt_auth_backend_role - \ vault_kubernetes_auth_backend_config - \ vault_kubernetes_auth_backend_role - \ vault_ldap_auth_backend - \ vault_ldap_auth_backend_group - \ vault_ldap_auth_backend_user - \ vault_mount - \ vault_namespace - \ vault_okta_auth_backend - \ vault_okta_auth_backend_group - \ vault_okta_auth_backend_user - \ vault_pki_secret_backend - \ vault_pki_secret_backend_cert - \ vault_pki_secret_backend_config_ca - \ vault_pki_secret_backend_config_urls - \ vault_pki_secret_backend_intermediate_cert_request - \ vault_pki_secret_backend_intermediate_set_signed - \ vault_pki_secret_backend_role - \ vault_pki_secret_backend_root_cert - \ vault_pki_secret_backend_root_sign_intermediate - \ vault_pki_secret_backend_sign - \ vault_policy - \ vault_rabbitmq_secret_backend - \ vault_rabbitmq_secret_backend_role - \ vault_rgp_policy - \ vault_ssh_secret_backend_ca - \ vault_ssh_secret_backend_role - \ vault_token - \ vault_token_auth_backend_role - \ vcd_catalog - \ vcd_catalog_item - \ vcd_catalog_media - \ vcd_dnat - \ vcd_edgegateway_vpn - \ vcd_external_network - \ vcd_firewall_rules - \ vcd_independent_disk - \ vcd_inserted_media - \ vcd_network_direct - \ vcd_network_isolated - \ vcd_network_routed - \ vcd_org - \ vcd_org_vdc - \ vcd_snat - \ vcd_vapp - \ vcd_vapp_network - \ vcd_vapp_vm \ vra7_deployment \ vsphere_compute_cluster \ vsphere_compute_cluster_host_group @@ -3683,6 +4164,7 @@ syn keyword terraResourceTypeBI \ yandex_compute_disk \ yandex_compute_image \ yandex_compute_instance + \ yandex_compute_instance_group \ yandex_compute_snapshot \ yandex_iam_service_account \ yandex_iam_service_account_iam_binding diff --git a/syntax/toml.vim b/syntax/toml.vim index 839ea01e..0299d28e 100644 --- a/syntax/toml.vim +++ b/syntax/toml.vim @@ -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 diff --git a/syntax/vifm.vim b/syntax/vifm.vim index 6be58ddc..eb92a074 100644 --- a/syntax/vifm.vim +++ b/syntax/vifm.vim @@ -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 diff --git a/syntax/vue.vim b/syntax/vue.vim index a7fd0733..5a054132 100644 --- a/syntax/vue.vim +++ b/syntax/vue.vim @@ -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'}, + \ ] + +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:syntax_available(a:language) - execute 'syntax include @' . a:language . ' syntax/' . a:language . '.vim' + 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" diff --git a/syntax/zig.vim b/syntax/zig.vim index a4a28af8..47742d7f 100644 --- a/syntax/zig.vim +++ b/syntax/zig.vim @@ -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]\+\)\?\)\=" |