Skip to content

Commit

Permalink
[#19] Merge changes from main into 4075
Browse files Browse the repository at this point in the history
  • Loading branch information
nk9 committed May 5, 2023
1 parent 271d8eb commit ee26c11
Show file tree
Hide file tree
Showing 2 changed files with 84 additions and 36 deletions.
83 changes: 47 additions & 36 deletions Syntax/Just.sublime-syntax
Original file line number Diff line number Diff line change
Expand Up @@ -503,60 +503,71 @@ contexts:
# Ex: "set shell := ['zsh', '-cu']", "set dotenv-load", "set export := false"

settings:
- match: ^set(?=\s+)
- match: ^set(?=\s)
scope: storage.modifier.definition.just
push:
- settings-invalid
- settings-boolean
- settings-shell
- settings-string
push: settings-name

settings-invalid:
- match: \b({{valid_name}})\b\s*:=
captures:
1: invalid.illegal.just
settings-name:
- include: settings-boolean-name
- include: settings-shell-name
- include: settings-string-name
- include: settings-invalid-name
- include: else-pop

settings-boolean:
- match: \b{{boolean_settings}}\b
settings-boolean-name:
- match: '{{boolean_settings}}\b'
scope: entity.name.definition.just
push:
- constant-boolean
set:
- settings-boolean-value
- assignment-operator
- include: else-pop

settings-string:
- match: \b{{string_settings}}\b
scope: entity.name.definition.just
push:
- assignment-operator
- include: strings
settings-boolean-value:
- match: (?:true|false)\b
scope: constant.language.boolean.just
pop: 1
- include: else-pop
- include: eol-pop

settings-invalid-name:
- match: ({{valid_name}})\b\s*:=
captures:
1: invalid.illegal.just
push: eol-pop

settings-shell:
- match: \b{{shell_settings}}\b
settings-shell-name:
- match: '{{shell_settings}}\b'
scope: entity.name.definition.just
push:
- string-array
set:
- settings-shell-value
- assignment-operator
- include: else-pop

constant-boolean:
- match: \b(true|false)\b
captures:
1: constant.language.boolean.just
pop: 1
- include: else-pop

string-array:
settings-shell-value:
- match: \[
scope: punctuation.section.brackets.start.just
- match: ','
scope: punctuation.separator.parameters.just
set: string-array-body
- include: else-pop
- include: eol-pop

string-array-body:
- meta_scope: meta.sequence.list.just
- match: \]
scope: punctuation.section.brackets.end.just
pop: 1
- match: ','
scope: punctuation.separator.parameters.just
- include: strings
- include: eol-pop #??

settings-string-name:
- match: '{{string_settings}}\b'
scope: entity.name.definition.just
set:
- settings-string-value
- assignment-operator

settings-string-value:
- include: strings
- include: eol-pop

# ###[ General Types ]##########################################################

Expand Down
37 changes: 37 additions & 0 deletions Syntax/tests/syntax_test_just.settings.just
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ set shell := ["sh", "-c"]
# ^^^^^ entity.name.definition.just
# ^^ keyword.operator.assignment.just
# ^ punctuation.section.brackets.start.just
# ^^^^^^^^^^^^ meta.sequence.list.just
# ^^^^ string.quoted.double.just
# ^ punctuation.separator.parameters.just
# ^^^^ string.quoted.double.just
Expand Down Expand Up @@ -103,3 +104,39 @@ set export := trued

set dotenv-load := falsey
# ^^^^^^ - constant.language.boolean.just



# [#19] First variable assignment following a set marked as invalid
set positional-arguments
export ONE := "1"
#<- keyword.declaration.variable.just
#^^^^^ keyword.declaration.variable.just
# ^^^ variable.other.just
# ^^ keyword.operator.assignment.just
# ^^^ string.quoted.double.just

set export := true
export TRY := "1"
#<- keyword.declaration.variable.just
#^^^^^ keyword.declaration.variable.just
# ^^^ variable.other.just
# ^^ keyword.operator.assignment.just
# ^^^ string.quoted.double.just

set shell := ["sh", "-c"]
export TWO := "2"
#<- keyword.declaration.variable.just
#^^^^^ keyword.declaration.variable.just
# ^^^ variable.other.just
# ^^ keyword.operator.assignment.just
# ^^^ string.quoted.double.just

set tempdir := ""
export := true
# <- variable.other.just - entity

set tempdir := ""
export := true
shell := ["sh", "-c"]
# <- variable.other.just - entity

0 comments on commit ee26c11

Please sign in to comment.