File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -128,7 +128,7 @@ contexts:
128128 - include : aliases
129129 - include : comments
130130 - include : assignment
131- - include : recipe-attribute
131+ - include : recipe-attributes
132132 - include : recipe-definition
133133 - include : recipe-generic-line
134134
@@ -380,9 +380,32 @@ contexts:
380380# ##[ RECIPE DEFINITION ]#######################################################
381381# Recipe definition lines, including attributes, arguments and dependencies
382382
383- recipe-attribute :
384- - match : ^\[\s*({{recipe_attributes}})\s*\]\s*$ # Only one attribute allowed per line
383+ recipe-attributes :
384+ - match : ^\[
385385 scope : meta.annotation.just variable.annotation.just
386+ push :
387+ - recipe-attributes-body
388+ - expect-recipe-attribute-name
389+ - include : eol-pop
390+
391+ recipe-attributes-body :
392+ - meta_scope : meta.sequence.list.just meta.annotation.just
393+ - match : \]
394+ scope : variable.annotation.just
395+ pop : 1
396+ - match : ' ,'
397+ scope : punctuation.separator.parameters.just
398+ push : expect-recipe-attribute-name
399+ - include : eol-pop
400+
401+ expect-recipe-attribute-name :
402+ - match : ({{recipe_attributes}})
403+ scope : variable.annotation.just
404+ pop : 1
405+ - match : \]
406+ scope : invalid.illegal.just
407+ pop : 2
408+ - include : else-pop
386409
387410 recipe-definition :
388411 - match : (?=^@?{{valid_name}}(?![^:]*:=)) # Matches '^recipeName' but not '^varName :='
Original file line number Diff line number Diff line change @@ -205,17 +205,40 @@ attr-test:
205205linux-attr :
206206
207207[ macos ]
208- #^^^^^^^^^^ meta.annotation. just variable .annotation.just
208+ #^^^^^^^^^^ meta.sequence.list. just meta .annotation.just
209209macos-attr :
210210
211211[unix ]
212- #^^^^^^^^ meta.annotation. just variable .annotation.just
212+ #^^^^^^^^ meta.sequence.list. just meta .annotation.just
213213unix-attr :
214214
215215[ windows]
216- #^^^^^^^^^^ meta.annotation. just variable .annotation.just
216+ #^^^^^^^^^ meta.sequence.list. just meta .annotation.just
217217windows-attr :
218218
219+ [ windows, macos, linux]
220+ #^^^^^^^^^^^^^^^^^^^^^^^ meta.sequence.list.just meta.annotation.just
221+ # ^^^^^^^ variable.annotation.just
222+ # ^ punctuation.separator.parameters.just
223+ # ^^^^^ variable.annotation.just
224+ # ^ punctuation.separator.parameters.just
225+ # ^^^^^ variable.annotation.just
226+ attr-multi-valid :
227+
228+ [windows linux]
229+ #^^^^^^^^^^^^^^ meta.sequence.list.just meta.annotation.just
230+ #^^^^^^^ variable.annotation.just
231+ # ^^^^^ - variable.annotation.just
232+ attr-multi-invalid-1 :
233+
234+ [macos, ]
235+ # ^ invalid.illegal.just
236+ attr-multi-invalid-2 :
237+
238+ [nonexistant-attribute ]
239+ #<- meta.sequence.list.just meta.annotation.just meta.annotation.just variable.annotation.just
240+ #^^^^^^^^^^^^^^^^^^^^^ meta.sequence.list.just meta.annotation.just - variable.annotation.just
241+ attr-invalid :
219242
220243test-image $ PRODUCT $ VERSION + IMAGES :
221244# ^ meta.function.parameters.just keyword.operator.variadic.just
You can’t perform that action at this time.
0 commit comments