Skip to content

Commit 595728b

Browse files
committed
Style constructors with parameters as func calls
1 parent 462db2d commit 595728b

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

src/JuliaSyntaxHighlighting.jl

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)