Skip to content

Commit a0d6458

Browse files
committed
[#9] Context-aware completions for various newer settings
1 parent 3b433db commit a0d6458

3 files changed

Lines changed: 86 additions & 13 deletions

File tree

Completions/Settings.sublime-completions

Lines changed: 52 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,44 @@
33
"completions": [
44
{
55
"trigger": "allow-duplicate-recipes",
6-
"details": "Later recipes override earlier",
6+
"details": "Later recipes override earlier ones",
7+
"kind": ["keyword", "k", "setting"]
8+
},
9+
{
10+
"trigger": "allow-duplicate-variables",
11+
"details": "Later variables override earlier ones",
12+
"kind": ["keyword", "k", "setting"]
13+
},
14+
{
15+
"trigger": "dotenv-filename",
16+
"contents": "dotenv-filename := \"$1\"",
17+
"details": "Load .env file with a custom name, if present",
718
"kind": ["keyword", "k", "setting"]
819
},
920
{
1021
"trigger": "dotenv-load",
11-
"details": "Load .env file, if it exists",
22+
"details": "Load .env file, if present",
23+
"kind": ["keyword", "k", "setting"]
24+
},
25+
{
26+
"trigger": "dotenv-path",
27+
"contents": "dotenv-path := \"$1\"",
28+
"details": "Load .env file at path. Overrides dotenv-filename",
29+
"kind": ["keyword", "k", "setting"]
30+
},
31+
{
32+
"trigger": "dotenv-required",
33+
"details": "Error if a .env file isn't found",
1234
"kind": ["keyword", "k", "setting"]
1335
},
1436
{
1537
"trigger": "export",
16-
"details": "Export all variables",
38+
"details": "Export all variables to recipes",
1739
"kind": ["keyword", "k", "setting"]
1840
},
1941
{
2042
"trigger": "fallback",
21-
"details": "Search up directory tree",
43+
"details": "Search up directory tree for justfile",
2244
"kind": ["keyword", "k", "setting"]
2345
},
2446
{
@@ -31,19 +53,44 @@
3153
"details": "Pass positional arguments",
3254
"kind": ["keyword", "k", "setting"]
3355
},
56+
{
57+
"trigger": "quiet",
58+
"details": "Disable line echoing by default",
59+
"kind": ["keyword", "k", "setting"]
60+
},
61+
{
62+
"trigger": "script-interpreter",
63+
"contents": "script-interpreter := [\"${1:bash}\", \"${2:-uc}\"]",
64+
"details": "Command for recipes with empty <code>[script]</code>",
65+
"kind": ["keyword", "k", "setting"]
66+
},
3467
{
3568
"trigger": "shell",
69+
"contents": "shell := [\"${1:bash}\", \"${2:-uc}\"]",
3670
"details": "Command for recipes/backticks",
3771
"kind": ["keyword", "k", "setting"]
3872
},
3973
{
4074
"trigger": "tempdir",
75+
"contents": "tempdir := \"$1\"",
4176
"details": "Path to create temp directories",
4277
"kind": ["keyword", "k", "setting"]
4378
},
79+
{
80+
"trigger": "unstable",
81+
"details": "Enable unstable features",
82+
"kind": ["keyword", "k", "setting"]
83+
},
4484
{
4585
"trigger": "windows-shell",
46-
"details": "Command for recipes/backticks",
86+
"contents": "windows-shell := [\"${1:pwsh.exe}\", \"${2:-NoLogo}\", \"${3:-NoProfile}\"]",
87+
"details": "Windows command for recipes/backticks",
88+
"kind": ["keyword", "k", "setting"]
89+
},
90+
{
91+
"trigger": "working-directory",
92+
"contents": "working-directory := \"$1\"",
93+
"details": "Working directory for recipes/backticks",
4794
"kind": ["keyword", "k", "setting"]
4895
},
4996
]

Syntax/Just.sublime-syntax

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -108,12 +108,32 @@ variables:
108108
| without_extension
109109
)
110110
boolean_settings: |-
111-
(?x: allow-duplicate-recipes | dotenv-load | export | fallback | ignore-comments
112-
| positional-arguments | windows-powershell )
111+
(?x:
112+
allow-duplicate-recipes
113+
| allow-duplicate-variables
114+
| dotenv-load
115+
| export
116+
| fallback
117+
| ignore-comments
118+
| positional-arguments
119+
| quiet
120+
| unstable
121+
)
113122
string_settings: |-
114-
(?x: tempdir )
123+
(?x:
124+
dotenv-filename
125+
| dotenv-path
126+
| tempdir
127+
| working-directory
128+
)
115129
shell_settings: |-
116-
(?x: shell | windows-shell )
130+
(?x:
131+
script-interpreter
132+
| shell
133+
| windows-shell
134+
)
135+
deprecated_settings: |-
136+
(?x: windows-powershell )
117137
recipe_attributes: |-
118138
(?x: linux | macos | no-cd | no-exit-message | private | unix | windows )
119139
@@ -614,6 +634,7 @@ contexts:
614634
- include: settings-boolean-name
615635
- include: settings-shell-name
616636
- include: settings-string-name
637+
- include: settings-deprecated-name
617638
- include: settings-invalid-name
618639
- include: else-pop
619640

@@ -631,6 +652,12 @@ contexts:
631652
- include: else-pop
632653
- include: eol-pop
633654

655+
settings-deprecated-name:
656+
- match: ({{deprecated_settings}})\b
657+
captures:
658+
1: invalid.deprecated.just
659+
push: eol-pop
660+
634661
settings-invalid-name:
635662
- match: ({{valid_name}})\b\s*:=
636663
captures:

Syntax/tests/syntax_test_just.settings.just

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ set tempdir := '/tmp/just'
4040
# ^^^^^^^^^^^ string.quoted.single.just
4141

4242
set windows-powershell
43-
# ^^^^^^^^^^^^^^^^^^ entity.name.definition.just
43+
# ^^^^^^^^^^^^^^^^^^ invalid.deprecated.just
4444

4545

4646
#
@@ -63,9 +63,8 @@ set windows-shell := ["powershell.exe", "-NoLogo", "-Command#nocomment"]
6363

6464
set windows-powershell := true
6565
#^^ storage.modifier.definition.just
66-
# ^^^^^^^^^^^^^^^^^^ entity.name.definition.just
67-
# ^^ keyword.operator.assignment.just
68-
# ^^^^ constant.language.boolean.just
66+
# ^^^^^^^^^^^^^^^^^^ invalid.deprecated.just
67+
# ^^^^^^^ source.just
6968

7069

7170
#

0 commit comments

Comments
 (0)