@@ -215,7 +215,7 @@ function _hl_annotations!(highlights::Vector{@NamedTuple{region::UnitRange{Int},
215215 nkind != K " ." && nkind != K " ..." &&
216216 (JuliaSyntax. is_trivia (node) || JuliaSyntax. is_leaf (node))
217217 face = if nkind == K " Identifier"
218- if pkind == K " curly"
218+ if pkind == K " curly" && kind (lnode) != K " call " && ! ( kind (lnode) == K " curly " && ppkind == K " call " )
219219 :julia_type
220220 elseif pkind == K " op=" && kind (lnode) != K " op=" &&
221221 regionstr in OPERATOR_KINDS
@@ -302,8 +302,12 @@ function _hl_annotations!(highlights::Vector{@NamedTuple{region::UnitRange{Int},
302302 elseif nkind == K " ." && JuliaSyntax. is_trivia (node) && kind (pnode) == K " dotcall" ;
303303 :julia_broadcast
304304 elseif nkind in (K " call" , K " dotcall" ) && JuliaSyntax. is_prefix_call (node)
305+ cargs = children (node)
306+ if ! isempty (cargs) && kind (first (cargs)) == K " curly"
307+ cargs = children (first (cargs))
308+ end
305309 argoffset, arg1 = 0 , nothing
306- for arg in something (children (node) , GreenNode[])
310+ for arg in something (cargs , GreenNode[])
307311 argoffset += span (arg)
308312 if ! JuliaSyntax. is_trivia (arg)
309313 arg1 = arg
@@ -317,7 +321,7 @@ function _hl_annotations!(highlights::Vector{@NamedTuple{region::UnitRange{Int},
317321 ifelse (name in BUILTIN_FUNCTIONS, :julia_builtin , :julia_funcall )
318322 elseif kind (arg1) == K " ." && numchildren (arg1) == 3 && kind (arg1[end ]) == K " Identifier"
319323 region = first (region)+ argoffset- span (arg1[end ]): first (region)+ argoffset- 1
320- name = Symbol (view (regionstr, 1 : argoffset))
324+ name = Symbol (view (regionstr, ( 1 + argoffset - span (arg1[ end ])) : argoffset))
321325 ifelse (name in BUILTIN_FUNCTIONS, :julia_builtin , :julia_funcall )
322326 end
323327 elseif syntax_errors && JuliaSyntax. is_error (nkind); :julia_error
0 commit comments