Skip to content

Commit f191079

Browse files
committed
[#29] Add support for colon-style attribute arguments.
1 parent 66e589a commit f191079

2 files changed

Lines changed: 52 additions & 3 deletions

File tree

Syntax/Just.sublime-syntax

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -462,16 +462,30 @@ contexts:
462462
recipe-attribute-argument:
463463
- match: \(
464464
scope: punctuation.definition.annotation.begin.just
465-
set: recipe-attribute-argument-body
465+
set: recipe-attribute-argument-paren-body
466+
- match: ':'
467+
scope: keyword.operator.assignment.just
468+
set: recipe-attribute-argument-colon-body
466469
- include: else-pop
467470

468-
recipe-attribute-argument-body:
469-
- meta_scope: meta.string.just
471+
recipe-attribute-argument-paren-body:
470472
- match: \)
471473
scope: punctuation.definition.annotation.end.just
472474
pop: 1
475+
- match: ','
476+
scope: punctuation.separator.parameters.just
477+
- match: '`'
478+
scope: invalid.illegal.just
479+
pop: 1
473480
- include: quoted-strings
474481

482+
recipe-attribute-argument-colon-body:
483+
- match: '`'
484+
scope: invalid.illegal.just
485+
pop: 1
486+
- include: quoted-strings
487+
- include: else-pop
488+
475489
recipe-definition:
476490
- match: (?=^@?{{valid_name}}(?![^:]*:=)) # Matches '^recipeName' but not '^varName :='
477491
push:

Syntax/tests/syntax_test_just.recipe_attributes.just

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,38 @@ confirm-group:
5959

6060
[confirm("You sure?"), no-cd]
6161
confirm-with-arg:
62+
63+
[script("bash", '-eu')]
64+
#^^^^^^ meta.sequence.list.just meta.annotation.just variable.annotation.just
65+
# ^ meta.sequence.list.just meta.annotation.just punctuation.definition.annotation.begin.just
66+
# ^^^^^^^^^^^^^^^ meta.sequence.list.just
67+
# ^^^^^^ string.quoted.double.just
68+
# ^^^^^ string.quoted.single.just
69+
recipe:
70+
@echo "do it"
71+
72+
[working-directory: '']
73+
# ^ meta.sequence.list.just meta.annotation.just keyword.operator.assignment.just
74+
# ^ string.quoted.single.just punctuation.definition.string.begin.just
75+
# ^ string.quoted.single.just punctuation.definition.string.end.just
76+
working-dir:
77+
78+
[working-directory: `/tmp`]
79+
# ^ invalid.illegal.just
80+
tmp-dir-invalid:
81+
@echo "nope"
82+
83+
[working-directory: '/tmp', script("bash")]
84+
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.sequence.list.just meta.annotation.just
85+
# ^ keyword.operator.assignment.just
86+
# ^ string.quoted.single.just punctuation.definition.string.begin.just
87+
# ^^^^^ string.quoted.single.just
88+
# ^ punctuation.separator.parameters.just
89+
# ^^^^^^ variable.annotation.just
90+
# ^ punctuation.definition.annotation.begin.just
91+
# ^^^^^^ string.quoted.double.just
92+
# ^ punctuation.definition.string.begin.just
93+
# ^ punctuation.definition.annotation.end.just
94+
# ^ variable.annotation.just
95+
doit:
96+
@echo "done"

0 commit comments

Comments
 (0)