Skip to content

Commit ee26c11

Browse files
committed
[#19] Merge changes from main into 4075
1 parent 271d8eb commit ee26c11

2 files changed

Lines changed: 84 additions & 36 deletions

File tree

Syntax/Just.sublime-syntax

Lines changed: 47 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -503,60 +503,71 @@ contexts:
503503
# Ex: "set shell := ['zsh', '-cu']", "set dotenv-load", "set export := false"
504504

505505
settings:
506-
- match: ^set(?=\s+)
506+
- match: ^set(?=\s)
507507
scope: storage.modifier.definition.just
508-
push:
509-
- settings-invalid
510-
- settings-boolean
511-
- settings-shell
512-
- settings-string
508+
push: settings-name
513509

514-
settings-invalid:
515-
- match: \b({{valid_name}})\b\s*:=
516-
captures:
517-
1: invalid.illegal.just
510+
settings-name:
511+
- include: settings-boolean-name
512+
- include: settings-shell-name
513+
- include: settings-string-name
514+
- include: settings-invalid-name
518515
- include: else-pop
519516

520-
settings-boolean:
521-
- match: \b{{boolean_settings}}\b
517+
settings-boolean-name:
518+
- match: '{{boolean_settings}}\b'
522519
scope: entity.name.definition.just
523-
push:
524-
- constant-boolean
520+
set:
521+
- settings-boolean-value
525522
- assignment-operator
526-
- include: else-pop
527523

528-
settings-string:
529-
- match: \b{{string_settings}}\b
530-
scope: entity.name.definition.just
531-
push:
532-
- assignment-operator
533-
- include: strings
524+
settings-boolean-value:
525+
- match: (?:true|false)\b
526+
scope: constant.language.boolean.just
527+
pop: 1
534528
- include: else-pop
529+
- include: eol-pop
530+
531+
settings-invalid-name:
532+
- match: ({{valid_name}})\b\s*:=
533+
captures:
534+
1: invalid.illegal.just
535+
push: eol-pop
535536

536-
settings-shell:
537-
- match: \b{{shell_settings}}\b
537+
settings-shell-name:
538+
- match: '{{shell_settings}}\b'
538539
scope: entity.name.definition.just
539-
push:
540-
- string-array
540+
set:
541+
- settings-shell-value
541542
- assignment-operator
542-
- include: else-pop
543543

544-
constant-boolean:
545-
- match: \b(true|false)\b
546-
captures:
547-
1: constant.language.boolean.just
548-
pop: 1
549-
- include: else-pop
550-
551-
string-array:
544+
settings-shell-value:
552545
- match: \[
553546
scope: punctuation.section.brackets.start.just
554-
- match: ','
555-
scope: punctuation.separator.parameters.just
547+
set: string-array-body
548+
- include: else-pop
549+
- include: eol-pop
550+
551+
string-array-body:
552+
- meta_scope: meta.sequence.list.just
556553
- match: \]
557554
scope: punctuation.section.brackets.end.just
558555
pop: 1
556+
- match: ','
557+
scope: punctuation.separator.parameters.just
558+
- include: strings
559+
- include: eol-pop #??
560+
561+
settings-string-name:
562+
- match: '{{string_settings}}\b'
563+
scope: entity.name.definition.just
564+
set:
565+
- settings-string-value
566+
- assignment-operator
567+
568+
settings-string-value:
559569
- include: strings
570+
- include: eol-pop
560571

561572
# ###[ General Types ]##########################################################
562573

Syntax/tests/syntax_test_just.settings.just

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ set shell := ["sh", "-c"]
5151
# ^^^^^ entity.name.definition.just
5252
# ^^ keyword.operator.assignment.just
5353
# ^ punctuation.section.brackets.start.just
54+
# ^^^^^^^^^^^^ meta.sequence.list.just
5455
# ^^^^ string.quoted.double.just
5556
# ^ punctuation.separator.parameters.just
5657
# ^^^^ string.quoted.double.just
@@ -103,3 +104,39 @@ set export := trued
103104

104105
set dotenv-load := falsey
105106
# ^^^^^^ - constant.language.boolean.just
107+
108+
109+
110+
# [#19] First variable assignment following a set marked as invalid
111+
set positional-arguments
112+
export ONE := "1"
113+
#<- keyword.declaration.variable.just
114+
#^^^^^ keyword.declaration.variable.just
115+
# ^^^ variable.other.just
116+
# ^^ keyword.operator.assignment.just
117+
# ^^^ string.quoted.double.just
118+
119+
set export := true
120+
export TRY := "1"
121+
#<- keyword.declaration.variable.just
122+
#^^^^^ keyword.declaration.variable.just
123+
# ^^^ variable.other.just
124+
# ^^ keyword.operator.assignment.just
125+
# ^^^ string.quoted.double.just
126+
127+
set shell := ["sh", "-c"]
128+
export TWO := "2"
129+
#<- keyword.declaration.variable.just
130+
#^^^^^ keyword.declaration.variable.just
131+
# ^^^ variable.other.just
132+
# ^^ keyword.operator.assignment.just
133+
# ^^^ string.quoted.double.just
134+
135+
set tempdir := ""
136+
export := true
137+
# <- variable.other.just - entity
138+
139+
set tempdir := ""
140+
export := true
141+
shell := ["sh", "-c"]
142+
# <- variable.other.just - entity

0 commit comments

Comments
 (0)