diff options
| author | Adam Stankiewicz <sheerun@sher.pl> | 2020-03-05 12:30:24 +0100 | 
|---|---|---|
| committer | Adam Stankiewicz <sheerun@sher.pl> | 2020-03-05 12:30:24 +0100 | 
| commit | e86e0ad36ef9501acbc3e8c63a1d4fab104e47cb (patch) | |
| tree | b9581527c6b4c0590bc79d5fd8ea5cfaf8df6d12 | |
| parent | 45ab4d80dd52f6ea40d8e9b7fa5cedd31d9ad9ec (diff) | |
| download | vim-polyglot-e86e0ad36ef9501acbc3e8c63a1d4fab104e47cb.tar.gz vim-polyglot-e86e0ad36ef9501acbc3e8c63a1d4fab104e47cb.zip | |
Update
| -rw-r--r-- | autoload/terraform.vim | 29 | ||||
| -rw-r--r-- | ftplugin/julia.vim | 8 | ||||
| -rw-r--r-- | indent/crystal.vim | 2 | ||||
| -rw-r--r-- | indent/julia.vim | 2 | ||||
| -rw-r--r-- | jx-requirements-eks.yml | 43 | ||||
| -rw-r--r-- | jx-requirements-gke.yml | 39 | ||||
| -rw-r--r-- | syntax/basic/doc.vim | 2 | ||||
| -rw-r--r-- | syntax/crystal.vim | 33 | ||||
| -rw-r--r-- | syntax/julia.vim | 33 | 
9 files changed, 149 insertions, 42 deletions
| diff --git a/autoload/terraform.vim b/autoload/terraform.vim index fcc7ba6e..f1a10244 100644 --- a/autoload/terraform.vim +++ b/autoload/terraform.vim @@ -6,21 +6,34 @@ set cpoptions&vim  " Ensure no conflict with arguments from the environment  let $TF_CLI_ARGS_fmt='' -function! terraform#fmt() -  let l:curw = winsaveview() +function! terraform#fmt() abort +  " Save the view. +  let curw = winsaveview() +    " Make a fake change so that the undo point is right.    normal! ix    normal! "_x + +  " Execute `terraform fmt`, redirecting stderr to a temporary file. +  let tmpfile = tempname() +  let shellredir_save = &shellredir +  let &shellredir = '>%s 2>'.tmpfile    silent execute '%!terraform fmt -no-color -' +  let &shellredir = shellredir_save + +  " If there was an error, undo any changes and show stderr.    if v:shell_error != 0 -    let output = getline(1, '$')      silent undo +    let output = readfile(tmpfile)      echo join(output, "\n")    endif -  call winrestview(l:curw) + +  " Delete the temporary file, and restore the view. +  call delete(tmpfile) +  call winrestview(curw)  endfunction -function! terraform#align() +function! terraform#align() abort    let p = '^.*=[^>]*$'    if exists(':Tabularize') && getline('.') =~# '^.*=' && (getline(line('.')-1) =~# p || getline(line('.')+1) =~# p)      let column = strlen(substitute(getline('.')[0:col('.')],'[^=]','','g')) @@ -31,8 +44,8 @@ function! terraform#align()    endif  endfunction -function! terraform#commands(ArgLead, CmdLine, CursorPos) -  let l:commands = [ +function! terraform#commands(ArgLead, CmdLine, CursorPos) abort +  let commands = [      \ 'apply',      \ 'console',      \ 'destroy', @@ -58,7 +71,7 @@ function! terraform#commands(ArgLead, CmdLine, CursorPos)      \ 'push',      \ 'state'    \ ] -  return join(l:commands, "\n") +  return join(commands, "\n")  endfunction  let &cpoptions = s:cpo_save diff --git a/ftplugin/julia.vim b/ftplugin/julia.vim index c03ac30b..90cc49e3 100644 --- a/ftplugin/julia.vim +++ b/ftplugin/julia.vim @@ -31,9 +31,11 @@ let b:undo_ftplugin = "setlocal include< suffixesadd< comments< commentstring<"  if exists("loaded_matchit")    let b:match_ignorecase = 0 -  " note: begin_keywords must contain all blocks in order +  " note: begin_keywords must contain all blocks, in order    " for nested-structures-skipping to work properly -  let b:julia_begin_keywords = '\%(\%(\.\s*\)\@<!\|\%(@\s*.\s*\)\@<=\)\<\%(\%(staged\)\?function\|macro\|begin\|mutable\s\+struct\|\%(mutable\s\+\)\@<!struct\|\%(abstract\|primitive\)\s\+type\|\%(\(abstract\|primitive\)\s\+\)\@<!type\|immutable\|let\|do\|\%(bare\)\?module\|quote\|if\|for\|while\|try\)\>' +  " note: 'mutable struct' and 'strcut' are defined separately because +  " using \? puts the cursor on 'struct' instead of 'mutable' for some reason +  let b:julia_begin_keywords = '\%(\%(\.\s*\)\@<!\|\%(@\s*.\s*\)\@<=\)\<\%(function\|macro\|begin\|mutable\s\+struct\|\%(mutable\s\+\)\@<!struct\|\%(abstract\|primitive\)\s\+type\|let\|do\|\%(bare\)\?module\|quote\|if\|for\|while\|try\)\>'    " note: the following regex not only recognizes macros, but also local/global keywords.    " the purpose is recognizing things like `@inline myfunction()`    " or `global myfunction(...)` etc, for matchit and block movement functionality @@ -77,7 +79,7 @@ if exists("loaded_matchit")    " the 'end' keyword when it is used as a range rather than as    " the end of a block    let b:match_skip = 'synIDattr(synID(line("."),col("."),1),"name") =~ ' -        \ . '"\\<julia\\%(Comprehension\\%(For\\|If\\)\\|RangeEnd\\|SymbolS\\?\\|Comment[LM]\\|\\%([bv]\\|ip\\|MIME\\|Shell\\|Doc\\)\\?String\\|RegEx\\)\\>"' +        \ . '"\\<julia\\%(Comprehension\\%(For\\|If\\)\\|RangeKeyword\\|SymbolS\\?\\|Comment[LM]\\|\\%([bv]\\|ip\\|MIME\\|Shell\\|Doc\\)\\?String\\|RegEx\\)\\>"'    let b:undo_ftplugin = b:undo_ftplugin          \ . " | unlet! b:match_words b:match_skip b:match_ignorecase" diff --git a/indent/crystal.vim b/indent/crystal.vim index 94767afe..74b5cc10 100644 --- a/indent/crystal.vim +++ b/indent/crystal.vim @@ -32,7 +32,7 @@ set cpo&vim  " Regex of syntax group names that are or delimit strings/symbols or are comments.  let s:syng_strcom = '\<crystal\%(Regexp\|RegexpDelimiter\|RegexpEscape' . -      \ '\|Symbol\|String\|StringDelimiter\|StringEscape\|ASCIICode' . +      \ '\|Symbol\|String\|StringDelimiter\|StringEscape\|CharLiteral\|ASCIICode' .        \ '\|Interpolation\|InterpolationDelimiter\|NoInterpolation\|Comment\|Documentation\)\>'  " Regex of syntax group names that are strings. diff --git a/indent/julia.vim b/indent/julia.vim index 13de44a0..299bb3f6 100644 --- a/indent/julia.vim +++ b/indent/julia.vim @@ -21,7 +21,7 @@ if exists("*GetJuliaIndent")    finish  endif -let s:skipPatterns = '\<julia\%(Comprehension\%(For\|If\)\|RangeEnd\|Comment[LM]\|\%([bsv]\|ip\|big\|MIME\|Shell\|Printf\|Doc\)\=String\|RegEx\|SymbolS\?\)\>' +let s:skipPatterns = '\<julia\%(Comprehension\%(For\|If\)\|RangeKeyword\|Comment[LM]\|\%([bsv]\|ip\|big\|MIME\|Shell\|Printf\|Doc\)\=String\|RegEx\|SymbolS\?\)\>'  function JuliaMatch(lnum, str, regex, st, ...)    let s = a:st diff --git a/jx-requirements-eks.yml b/jx-requirements-eks.yml new file mode 100644 index 00000000..2ab592bf --- /dev/null +++ b/jx-requirements-eks.yml @@ -0,0 +1,43 @@ +autoUpdate: +  enabled: false +  schedule: "" +cluster: +  clusterName: "" +  environmentGitOwner: "" +  environmentGitPublic: true +  provider: eks +  region: "" +gitops: true +environments: +  - key: dev +  - key: staging +  - key: production +ingress: +  domain: "" +  ignoreLoadBalancer: true +  externalDNS: false +  tls: +    email: "" +    enabled: false +    production: false +kaniko: true +secretStorage: vault +storage: +  logs: +    enabled: true +    url: "" +  reports: +    enabled: true +    url: "" +  repository: +    enabled: true +    url: "" +vault: +  aws: +    autoCreate: true +    iamUserName: "" +  disableURLDiscovery: true +versionStream: +  ref: 2.0.1192+cjxd.7 +  url: https://github.com/cloudbees/cloudbees-jenkins-x-versions.git +webhook: prow diff --git a/jx-requirements-gke.yml b/jx-requirements-gke.yml new file mode 100644 index 00000000..e802780c --- /dev/null +++ b/jx-requirements-gke.yml @@ -0,0 +1,39 @@ +autoUpdate: +  enabled: false +  schedule: "" +cluster: +  clusterName: "" +  environmentGitOwner: "" +  environmentGitPublic: true +  project: "" +  azure: {} +  provider: gke +  zone: "" +gitops: true +environments: +  - key: dev +  - key: staging +  - key: production +ingress: +  domain: "" +  externalDNS: false +  tls: +    email: "" +    enabled: false +    production: false +kaniko: true +secretStorage: vault +storage: +  logs: +    enabled: true +    url: "" +  reports: +    enabled: true +    url: "" +  repository: +    enabled: true +    url: "" +versionStream: +  ref: 2.0.1192+cjxd.7 +  url: https://github.com/cloudbees/cloudbees-jenkins-x-versions.git +webhook: prow diff --git a/syntax/basic/doc.vim b/syntax/basic/doc.vim index dfba989a..44c94ef6 100644 --- a/syntax/basic/doc.vim +++ b/syntax/basic/doc.vim @@ -77,7 +77,7 @@ syntax region  typescriptDocLinkTag            contained matchgroup=typescriptDo  syntax cluster typescriptDocs                  contains=typescriptDocParamType,typescriptDocNamedParamType,typescriptDocParam -if main_syntax == "typescript" +if exists("main_syntax") && main_syntax == "typescript"    syntax sync clear    syntax sync ccomment typescriptComment minlines=200  endif diff --git a/syntax/crystal.vim b/syntax/crystal.vim index ae52cf70..d48d15ce 100644 --- a/syntax/crystal.vim +++ b/syntax/crystal.vim @@ -12,6 +12,11 @@ if exists('b:current_syntax')    finish  endif +" Adding `@-@` should fix a wide variety of false positives related to +" instance/class variables with keywords in their name, like @def and +" @class +syn iskeyword @,48-57,_,192-255,@-@ +  " eCrystal Config  if exists('g:main_syntax') && g:main_syntax ==# 'ecrystal'    let b:crystal_no_expensive = 1 @@ -259,7 +264,7 @@ syn cluster crystalDeclaration contains=crystalAliasDeclaration,crystalAliasDecl  " Keywords  " Note: the following keywords have already been defined:  " begin case class def do end for if module unless until while -syn match crystalControl        "\<\%(break\|in\|next\|rescue\|return\)\>[?!]\@!" +syn match crystalControl        "\<\%(break\|next\|rescue\|return\)\>[?!]\@!"  syn match crystalOperator       "\<defined?" display  syn match crystalKeyword        "\<\%(super\|previous_def\|yield\|of\|with\|uninitialized\|union\)\>[?!]\@!"  syn match crystalBoolean        "\<\%(true\|false\)\>[?!]\@!" @@ -310,16 +315,12 @@ if !exists('b:crystal_no_expensive') && !exists('g:crystal_no_expensive')    syn match crystalExceptional       "\<\%(\%(\%(;\|^\)\s*\)\@<=rescue\|else\|ensure\)\>[?!]\@!" contained containedin=crystalBlockExpression    syn match crystalMethodExceptional "\<\%(\%(\%(;\|^\)\s*\)\@<=rescue\|else\|ensure\)\>[?!]\@!" contained containedin=crystalMethodBlock -  " statements with optional 'do' -  syn region crystalOptionalDoLine matchgroup=crystalRepeat start="\<for\>[?!]\@!" start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*/%&^|+-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@<![!=?]\)\s*\)\@<=\<\%(until\|while\)\>" matchgroup=crystalOptionalDo end="\%(\<do\>\)" end="\ze\%(;\|$\)" oneline contains=ALLBUT,@crystalNotTop - -  SynFold 'for' syn region crystalRepeatExpression start="\<for\>[?!]\@!" start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*/%&^|+-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@<![!=?]\)\s*\)\@<=\<\%(until\|while\)\>" matchgroup=crystalRepeat end="\<end\>" contains=ALLBUT,@crystalNotTop nextgroup=crystalOptionalDoLine +  SynFold 'macro' syn region crystalMacroBlock matchgroup=crystalMacroRegion start="\z(\\\=\){%\s*\%(\%(if\|for\|begin\)\>.*\|.*\<do\>\)\s*%}" end="\z1{%\s*end\s*%}" transparent contains=TOP    if !exists('g:crystal_minlines')      let g:crystal_minlines = 500    endif    exec 'syn sync minlines=' . g:crystal_minlines -  else    " Non-expensive mode    syn match crystalControl "\<def\>[?!]\@!"    nextgroup=crystalMethodDeclaration skipwhite skipnl @@ -330,7 +331,7 @@ else    syn match crystalControl "\<lib\>[?!]\@!"    nextgroup=crystalLibDeclaration skipwhite skipnl    syn match crystalControl "\<macro\>[?!]\@!"  nextgroup=crystalMacroDeclaration skipwhite skipnl    syn match crystalControl "\<enum\>[?!]\@!"   nextgroup=crystalEnumDeclaration skipwhite skipnl -  syn match crystalControl "\<\%(case\|begin\|do\|for\|if\|ifdef\|unless\|while\|until\|else\|elsif\|ensure\|then\|when\|end\)\>[?!]\@!" +  syn match crystalControl "\<\%(case\|begin\|do\|if\|ifdef\|unless\|while\|until\|else\|elsif\|ensure\|then\|when\|end\)\>[?!]\@!"    syn match crystalKeyword "\<\%(alias\|undef\)\>[?!]\@!"  endif @@ -357,8 +358,20 @@ endif  " Macro  " Note: This definition must be put after crystalNestedCurlyBraces to give higher priority -syn region crystalMacroRegion matchgroup=crystalMacroDelim start="\\\={%" end="%}" oneline display contains=ALLBUT,@crystalNotTop containedin=ALL -syn region crystalMacroRegion matchgroup=crystalMacroDelim start="\\\={{" end="}}" oneline display contains=ALLBUT,@crystalNotTop containedin=ALL +syn region crystalMacroRegion matchgroup=crystalMacroDelim start="\\\={%" end="%}" oneline display contains=TOP,@crystalExpensive containedin=ALL +syn region crystalMacroRegion matchgroup=crystalMacroDelim start="\\\={{" end="}}" oneline display contains=TOP,@crystalExpensive containedin=ALL + +" Cluster for Expensive Mode groups that can't appear inside macro +" regions +syn cluster crystalExpensive contains= +      \ crystalMethodBlock,crystalBlock,crystalDoBlock,crystalBlockExpression,crystalCaseExpression, +      \ crystalSelectExpression,crystalConditionalExpression + +" Some keywords will have to be redefined for them to be highlighted +" properly +syn keyword crystalMacroKeyword contained containedin=crystalMacroRegion +      \ if else elsif end for in begin do +syn cluster crystalNotTop add=crystalMacroKeyword  " Comments and Documentation  syn match   crystalSharpBang "\%^#!.*" display @@ -395,7 +408,6 @@ hi def link crystalConditionalModifier crystalConditional  hi def link crystalExceptional         crystalConditional  hi def link crystalRepeat              Repeat  hi def link crystalRepeatModifier      crystalRepeat -hi def link crystalOptionalDo          crystalRepeat  hi def link crystalControl             Statement  hi def link crystalInclude             Include  hi def link crystalRecord              Statement @@ -452,6 +464,7 @@ hi def link crystalRegexpComment        Comment  hi def link crystalRegexp               crystalString  hi def link crystalMacro                PreProc  hi def link crystalMacroDelim           crystalMacro +hi def link crystalMacroKeyword         crystalKeyword  hi def link crystalLinkAttr             crystalMacro  hi def link crystalError                Error  hi def link crystalInvalidVariable      crystalError diff --git a/syntax/julia.vim b/syntax/julia.vim index 52711062..8727bde1 100644 --- a/syntax/julia.vim +++ b/syntax/julia.vim @@ -61,9 +61,8 @@ let s:binop_chars = "=+\\U2D*/\\%÷^&|⊻<>≤≥≡≠≢∈∉⋅×∪∩⊆⊠ " same as above, but with character ranges, for performance  let s:binop_chars_extra = "\\U214B\\U2190-\\U2194\\U219A\\U219B\\U21A0\\U21A3\\U21A6\\U21AE\\U21CE\\U21CF\\U21D2\\U21D4\\U21F4-\\U21FF\\U2208-\\U220D\\U2213\\U2214\\U2217-\\U2219\\U221D\\U2224-\\U222A\\U2237\\U2238\\U223A\\U223B\\U223D\\U223E\\U2240-\\U228B\\U228D-\\U229C\\U229E-\\U22A3\\U22A9\\U22AC\\U22AE\\U22B0-\\U22B7\\U22BB-\\U22BD\\U22C4-\\U22C7\\U22C9-\\U22D3\\U22D5-\\U22ED\\U22F2-\\U22FF\\U25B7\\U27C8\\U27C9\\U27D1\\U27D2\\U27D5-\\U27D7\\U27F0\\U27F1\\U27F5-\\U27F7\\U27F7\\U27F9-\\U27FF\\U2900-\\U2918\\U291D-\\U2920\\U2944-\\U2970\\U29B7\\U29B8\\U29BC\\U29BE-\\U29C1\\U29E1\\U29E3-\\U29E5\\U29F4\\U29F6\\U29F7\\U29FA\\U29FB\\U2A07\\U2A08\\U2A1D\\U2A22-\\U2A2E\\U2A30-\\U2A3D\\U2A40-\\U2A45\\U2A4A-\\U2A58\\U2A5A-\\U2A63\\U2A66\\U2A67\\U2A6A-\\U2AD9\\U2ADB\\U2AF7-\\U2AFA\\U2B30-\\U2B44\\U2B47-\\U2B4C\\UFFE9-\\UFFEC" -" a Julia identifier, sort of (TODO: the special case of a lone `?` should be -" removed as soon as the Julia parser is fixed) -let s:idregex = '\%([^' . s:nonidS_chars . '0-9!?' . s:uniop_chars . s:binop_chars . '][^' . s:nonidS_chars . s:uniop_chars . s:binop_chars . s:binop_chars_extra . ']*\|\<?\>\)' +" a Julia identifier, sort of +let s:idregex = '\%([^' . s:nonidS_chars . '0-9!?' . s:uniop_chars . s:binop_chars . '][^' . s:nonidS_chars . s:uniop_chars . s:binop_chars . s:binop_chars_extra . ']*\)'  let s:operators = '\%(' . '\.\%([-+*/^÷%|&!]\|//\|\\\|<<\|>>>\?\)\?=' .        \           '\|'  . '[:$<>]=\|||\|&&\||>\|<|\|<:\|>:\|::\|<<\|>>>\?\|//\|[-=]>\|\.\{3\}' . @@ -76,7 +75,7 @@ syn case match  syntax cluster juliaExpressions		contains=@juliaParItems,@juliaStringItems,@juliaKeywordItems,@juliaBlocksItems,@juliaTypesItems,@juliaConstItems,@juliaMacroItems,@juliaSymbolItems,@juliaOperatorItems,@juliaNumberItems,@juliaCommentItems,@juliaErrorItems  syntax cluster juliaExprsPrintf		contains=@juliaExpressions,@juliaPrintfItems -syntax cluster juliaParItems		contains=juliaParBlock,juliaSqBraBlock,juliaCurBraBlock,juliaQuotedParBlock,juliaQuotedQMarkPar +syntax cluster juliaParItems		contains=juliaParBlock,juliaSqBraIdxBlock,juliaSqBraBlock,juliaCurBraBlock,juliaQuotedParBlock,juliaQuotedQMarkPar  syntax cluster juliaKeywordItems	contains=juliaKeyword,juliaInfixKeyword,juliaRepKeyword,juliaTypedef  syntax cluster juliaBlocksItems		contains=juliaConditionalBlock,juliaWhileBlock,juliaForBlock,juliaBeginBlock,juliaFunctionBlock,juliaMacroBlock,juliaQuoteBlock,juliaTypeBlock,juliaImmutableBlock,juliaExceptionBlock,juliaLetBlock,juliaDoBlock,juliaModuleBlock,juliaStructBlock,juliaMutableStructBlock,juliaAbstractBlock,juliaPrimitiveBlock  syntax cluster juliaTypesItems		contains=juliaBaseTypeBasic,juliaBaseTypeNum,juliaBaseTypeC,juliaBaseTypeError,juliaBaseTypeIter,juliaBaseTypeString,juliaBaseTypeArray,juliaBaseTypeDict,juliaBaseTypeSet,juliaBaseTypeIO,juliaBaseTypeProcess,juliaBaseTypeRange,juliaBaseTypeRegex,juliaBaseTypeFact,juliaBaseTypeFact,juliaBaseTypeSort,juliaBaseTypeRound,juliaBaseTypeSpecial,juliaBaseTypeRandom,juliaBaseTypeDisplay,juliaBaseTypeTime,juliaBaseTypeOther @@ -117,11 +116,10 @@ syntax match   juliaErrorCatch		display "\<catch\>"  syntax match   juliaErrorFinally	display "\<finally\>"  syntax match   juliaErrorSemicol	display contained ";" -syntax match   juliaRangeEnd		display contained "\<end\>" -  syntax region  juliaParBlock		matchgroup=juliaParDelim start="(" end=")" contains=@juliaExpressions,juliaComprehensionFor -syntax region  juliaParBlockInRange	matchgroup=juliaParDelim contained start="(" end=")" contains=@juliaExpressions,juliaParBlockInRange,juliaRangeEnd,juliaComprehensionFor -syntax region  juliaSqBraBlock		matchgroup=juliaParDelim start="\[" end="\]" contains=@juliaExpressions,juliaParBlockInRange,juliaRangeEnd,juliaComprehensionFor,juliaSymbolS,juliaQuotedParBlockS,juliaQuotedQMarkParS +syntax region  juliaParBlockInRange	matchgroup=juliaParDelim contained start="(" end=")" contains=@juliaExpressions,juliaParBlockInRange,juliaRangeKeyword,juliaComprehensionFor +syntax region  juliaSqBraIdxBlock	matchgroup=juliaParDelim start="\[" end="\]" contains=@juliaExpressions,juliaParBlockInRange,juliaRangeKeyword,juliaComprehensionFor,juliaSymbolS,juliaQuotedParBlockS,juliaQuotedQMarkParS +exec 'syntax region  juliaSqBraBlock	matchgroup=juliaParDelim start="\%(^\|\s\|' . s:operators . '\)\@'.s:d(3).'<=\[" end="\]" contains=@juliaExpressions,juliaComprehensionFor,juliaSymbolS,juliaQuotedParBlockS,juliaQuotedQMarkParS'  syntax region  juliaCurBraBlock		matchgroup=juliaParDelim start="{" end="}" contains=@juliaExpressions  " This is really ugly. It would be better to mask most keywords when a dot is @@ -158,6 +156,8 @@ exec 'syntax match   juliaComprehensionIf	contained "'.s:nodot.'\<if\>"'  exec 'syntax match   juliaOuter		contained "\<outer\ze\s\+' . s:idregex . '\>"' +syntax match   juliaRangeKeyword	display contained "\<\%(begin\|end\)\>" +  syntax match   juliaBaseTypeBasic	display "\<\%(\%(N\|Named\)\?Tuple\|Symbol\|Function\|Union\%(All\)\?\|Type\%(Name\|Var\)\?\|Any\|ANY\|Vararg\|Ptr\|Exception\|Module\|Expr\|DataType\|\%(LineNumber\|Quote\)Node\|\%(Weak\|Global\)\?Ref\|Method\|Pair\|Val\|Nothing\|Some\|Missing\)\>"  syntax match   juliaBaseTypeNum		display "\<\%(U\?Int\%(8\|16\|32\|64\|128\)\?\|Float\%(16\|32\|64\)\|Complex\|Bool\|Char\|Number\|Signed\|Unsigned\|Integer\|AbstractFloat\|Real\|Rational\|\%(Abstract\)\?Irrational\|Enum\|BigInt\|BigFloat\|MathConst\|ComplexF\%(16\|32\|64\)\)\>"  syntax match   juliaBaseTypeC		display "\<\%(FileOffset\|C\%(u\?\%(char\|short\|int\|long\(long\)\?\|w\?string\)\|float\|double\|\%(ptrdiff\|s\?size\|wchar\|off\|u\?intmax\)_t\|void\)\)\>" @@ -198,8 +198,8 @@ syntax match   juliaPossibleMacro	transparent "@" contains=juliaMacroCall,juliaM  exec 'syntax match   juliaMacro		contained "@' . s:idregex . '\%(\.' . s:idregex . '\)*"'  syntax match   juliaMacro		contained "@\.\ze[^0-9]" -exec 'syntax region  juliaMacroCall	contained transparent start="\(@' . s:idregex . '\%(\.' . s:idregex . '\)*\)\@=\1\%([^(]\|$\)" end="\ze\%([])};#]\|$\|\<for\>\|\<end\>\)" contains=@juliaExpressions,juliaMacro,juliaSymbolS,juliaQuotedParBlockS,juliaQuotedQMarkParS' -exec 'syntax region  juliaMacroCall	contained transparent start="\(@.\)\@=\1\%([^(]\|$\)" end="\ze\%([])};#]\|$\|\<for\>\|\<end\>\)" contains=@juliaExpressions,juliaMacro,juliaSymbolS,juliaQuotedParBlockS,juliaQuotedQMarkParS' +exec 'syntax region  juliaMacroCall	contained transparent start="\(@' . s:idregex . '\%(\.' . s:idregex . '\)*\)\@=\1\%([^(]\|$\)" end="\ze\%([])};#]\|$\|\<for\>\|\<end\>\)" contains=@juliaExpressions,juliaMacro,juliaSymbolS,juliaQuotedParBlockS' +exec 'syntax region  juliaMacroCall	contained transparent start="\(@.\)\@=\1\%([^(]\|$\)" end="\ze\%([])};#]\|$\|\<for\>\|\<end\>\)" contains=@juliaExpressions,juliaMacro,juliaSymbolS,juliaQuotedParBlockS'  exec 'syntax region  juliaMacroCallP	contained transparent start="@' . s:idregex . '\%(\.' . s:idregex . '\)*(" end=")\@'.s:d(1).'<=" contains=juliaMacro,juliaParBlock'  exec 'syntax region  juliaMacroCallP	contained transparent start="@.(" end=")\@'.s:d(1).'<=" contains=juliaMacro,juliaParBlock' @@ -250,7 +250,7 @@ let s:interp_dollar = '\([' . s:nonidS_chars . s:uniop_chars . s:binop_chars . '  exec 'syntax match   juliaDollarVar	display contained "' . s:interp_dollar . s:idregex . '"'  exec 'syntax region  juliaDollarPar	matchgroup=juliaDollarVar contained start="' .s:interp_dollar . '(" end=")" contains=@juliaExpressions' -exec 'syntax region  juliaDollarSqBra	matchgroup=juliaDollarVar contained start="' .s:interp_dollar . '\[" end="\]" contains=@juliaExpressions,juliaComprehensionFor,juliaSymbolS,juliaQuotedParBlockS,juliaQuotedQMarkParS' +exec 'syntax region  juliaDollarSqBra	matchgroup=juliaDollarVar contained start="' .s:interp_dollar . '\[" end="\]" contains=@juliaExpressions,juliaComprehensionFor,juliaSymbolS,juliaQuotedParBlockS'  syntax match   juliaChar		"'\\\?.'" contains=juliaSpecialChar  syntax match   juliaChar		display "'\\\o\{3\}'" contains=juliaOctalEscapeChar @@ -278,7 +278,7 @@ syntax region  juliaint128String	matchgroup=juliaStringDelim start=+\<u\?int128\  syntax region  juliaDocString		matchgroup=juliaStringDelim start=+^"""+ skip=+\%(\\\\\)*\\"+ end=+"""+ contains=@juliaStringVars,@juliaSpecialChars,@juliaSpellcheckDocStrings  exec 'syntax region  juliaPrintfMacro		contained transparent start="@s\?printf(" end=")\@'.s:d(1).'<=" contains=juliaMacro,juliaPrintfParBlock' -syntax region  juliaPrintfMacro		contained transparent start="@s\?printf\s\+" end="\ze\%([])};#]\|$\|\<for\>\)" contains=@juliaExprsPrintf,juliaMacro,juliaSymbolS,juliaQuotedParBlockS,juliaQuotedQMarkParS +syntax region  juliaPrintfMacro		contained transparent start="@s\?printf\s\+" end="\ze\%([])};#]\|$\|\<for\>\)" contains=@juliaExprsPrintf,juliaMacro,juliaSymbolS,juliaQuotedParBlockS  syntax region  juliaPrintfParBlock	contained matchgroup=juliaParDelim start="(" end=")" contains=@juliaExprsPrintf  syntax region  juliaPrintfString	contained matchgroup=juliaStringDelim start=+"+ skip=+\%(\\\\\)*\\"+ end=+"+ contains=@juliaSpecialChars,@juliaPrintfChars @@ -286,7 +286,7 @@ syntax region  juliaShellString		matchgroup=juliaStringDelim start=+`+ skip=+\%(  syntax cluster juliaStringVars		contains=juliaStringVarsPar,juliaStringVarsSqBra,juliaStringVarsCurBra,juliaStringVarsPla  syntax region  juliaStringVarsPar	contained matchgroup=juliaStringVarDelim start="$(" end=")" contains=@juliaExpressions -syntax region  juliaStringVarsSqBra	contained matchgroup=juliaStringVarDelim start="$\[" end="\]" contains=@juliaExpressions,juliaComprehensionFor,juliaSymbolS,juliaQuotedParBlockS,juliaQuotedQMarkParS +syntax region  juliaStringVarsSqBra	contained matchgroup=juliaStringVarDelim start="$\[" end="\]" contains=@juliaExpressions,juliaComprehensionFor,juliaSymbolS,juliaQuotedParBlockS  syntax region  juliaStringVarsCurBra	contained matchgroup=juliaStringVarDelim start="${" end="}" contains=@juliaExpressions  exec 'syntax match   juliaStringVarsPla	contained "\$' . s:idregex . '"' @@ -315,7 +315,7 @@ syntax match   juliaPrintfFmt		display contained "\\%%"hs=s+1  syntax match   juliaPossibleSymbol	transparent ":\ze[^:]" contains=juliaSymbol,juliaQuotedParBlock,juliaQuotedQMarkPar,juliaColon  let s:quotable = '\%(' . s:idregex . '\|?\|' . s:operators . '\|' . s:float_regex . '\|' . s:int_regex . '\)' -let s:quoting_colon = '\%(\%(^\s*\|\s\{6,\}\|[' . s:nonid_chars . s:uniop_chars . s:binop_chars . '?]\s*\)\@'.s:d(6).'<=\|\%(\<\%(return\|if\|else\%(if\)\?\|while\|try\|begin\)\s*\)\@'.s:d(9).'<=\)\zs:' +let s:quoting_colon = '\%(\%(^\s*\|\s\{6,\}\|[' . s:nonid_chars . s:uniop_chars . s:binop_chars . '?]\s*\)\@'.s:d(6).'<=\|\%(\<\%(return\|if\|else\%(if\)\?\|while\|try\|begin\)\s\+\)\@'.s:d(9).'<=\)\zs:'  let s:quoting_colonS = '\s\@'.s:d(1).'<=:'  " note: juliaSymbolS only works within whitespace-sensitive contexts, @@ -329,11 +329,9 @@ exec 'syntax match   juliaSymbol	contained "' .s:quoting_colon . s:quotable . '"  exec 'syntax match   juliaSymbolS	contained "' . s:quoting_colonS . s:quotable . '"'  " same as above for quoted expressions such as :(expr) -" (includes :(?) as a special case, although it really shouldn't work...)  exec 'syntax region   juliaQuotedParBlock	matchgroup=juliaQParDelim start="' . s:quoting_colon . '(" end=")" contains=@juliaExpressions'  exec 'syntax match    juliaQuotedQMarkPar	"' . s:quoting_colon . '(\s*?\s*)" contains=juliaQuotedQMark'  exec 'syntax region   juliaQuotedParBlockS	matchgroup=juliaQParDelim contained start="' . s:quoting_colonS . '(" end=")" contains=@juliaExpressions' -exec 'syntax match    juliaQuotedQMarkParS	contained "' . s:quoting_colonS . '(\s*?\s*)" contains=juliaQuotedQMark'  " force precedence over Symbols  syntax match   juliaOperator		display "::" @@ -395,7 +393,7 @@ hi def link juliaConstEnv		Constant  hi def link juliaConstC			Constant  hi def link juliaConstLimits		Constant  hi def link juliaConstGeneric		Constant -hi def link juliaRangeEnd		Constant +hi def link juliaRangeKeyword		Constant  hi def link juliaConstBool		Boolean  hi def link juliaConstIO		Boolean @@ -409,7 +407,6 @@ hi def link juliaSymbol			Identifier  hi def link juliaSymbolS		Identifier  hi def link juliaQParDelim		Identifier  hi def link juliaQuotedQMarkPar		Identifier -hi def link juliaQuotedQMarkParS	Identifier  hi def link juliaQuotedQMark		juliaOperatorHL  hi def link juliaNumber			Number | 
