summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Stankiewicz <sheerun@sher.pl>2020-03-05 12:30:24 +0100
committerAdam Stankiewicz <sheerun@sher.pl>2020-03-05 12:30:24 +0100
commite86e0ad36ef9501acbc3e8c63a1d4fab104e47cb (patch)
treeb9581527c6b4c0590bc79d5fd8ea5cfaf8df6d12
parent45ab4d80dd52f6ea40d8e9b7fa5cedd31d9ad9ec (diff)
downloadvim-polyglot-e86e0ad36ef9501acbc3e8c63a1d4fab104e47cb.tar.gz
vim-polyglot-e86e0ad36ef9501acbc3e8c63a1d4fab104e47cb.zip
Update
-rw-r--r--autoload/terraform.vim29
-rw-r--r--ftplugin/julia.vim8
-rw-r--r--indent/crystal.vim2
-rw-r--r--indent/julia.vim2
-rw-r--r--jx-requirements-eks.yml43
-rw-r--r--jx-requirements-gke.yml39
-rw-r--r--syntax/basic/doc.vim2
-rw-r--r--syntax/crystal.vim33
-rw-r--r--syntax/julia.vim33
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