Skip to content

Commit

Permalink
Fix arrays and set strings
Browse files Browse the repository at this point in the history
Temporary break of textobjects.

Fixes IndianBoy42#22
  • Loading branch information
tgross35 committed Jan 3, 2024
1 parent 3bb2032 commit fabecdf
Show file tree
Hide file tree
Showing 10 changed files with 2,507 additions and 2,185 deletions.
51 changes: 31 additions & 20 deletions grammar.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,23 @@
// Main grammar for justfiles

// Comma separated list with at least one item
function comma_sep1(item) {
return seq(item, repeat(seq(",", item)));
}

// Create an array with the given item as contents
function array(item) {
const array_item = field("array_item", item);
return field(
"array",
seq(
"[",
optional(seq(comma_sep1(array_item), optional(array_item))),
"]",
),
);
}

module.exports = grammar({
name: "just",

Expand Down Expand Up @@ -42,37 +62,28 @@ module.exports = grammar({
seq(
"set",
field("name", $.NAME),
field("right", optional(seq(":=", choice($.boolean, $.settinglist)))),
field(
"right",
optional(
seq(":=", choice($.boolean, $.string, array($.string))),
),
),
$.eol,
),
seq(
"set",
"shell",
":=",
"[",
// field("lang", $.string),
'"',
field("lang", $.NAME),
'"',
repeat(seq(optional(","), $.string)),
"]",
array($.string),
$.eol,
),
),

// string_array: ($) => array($.string),

// boolean : ':=' ('true' | 'false')
boolean: (_) => choice("true", "false"),

settinglist: ($) =>
seq(
"[",
$.stringlist,
"]",
// seq("[", $.string, repeat(seq(",", $.string)), optional(","), "]")
),

stringlist: ($) => repeat1(seq($.string, optional(","))),

// expression : 'if' condition '{' expression '}' 'else' '{' expression '}'
// | value '/' expression
// | value '+' expression
Expand Down Expand Up @@ -137,9 +148,9 @@ module.exports = grammar({
),

// recipe : '@'? NAME parameter* variadic_parameters? ':' dependency* body?
recipe: ($) => seq($.recipeheader, $.NEWLINE, optional($.body)),
recipe: ($) => seq($.recipe_header, $.NEWLINE, optional($.body)),

recipeheader: ($) =>
recipe_header: ($) =>
seq(
optional("@"),
$.NAME,
Expand Down
2 changes: 1 addition & 1 deletion queries/highlights.scm
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
(call (NAME) @function)
(dependency (NAME) @function)
(depcall (NAME) @function)
(recipeheader (NAME) @function)
(recipe_header (NAME) @function)

(depcall (expression) @parameter)
(parameter) @parameter
Expand Down
2 changes: 1 addition & 1 deletion queries/injections.scm
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
)

(source_file
(item (setting lang:(NAME) @language))
; (item (setting lang:(NAME) @language))
(item (recipe (body (recipe_body) @content)))
)

Expand Down
2 changes: 1 addition & 1 deletion queries/locals.scm
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@
(call (NAME) @reference.function)
(dependency (NAME) @reference.function)
(depcall (NAME) @reference.function)
(recipeheader (NAME) @definition.function)
(recipe_header (NAME) @definition.function)

20 changes: 11 additions & 9 deletions queries/textobjects.scm
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
else:(expression) @block.inner
)
(interpolation (expression) @block.inner) @block.outer
(settinglist (stringlist) @block.inner) @block.outer
; (string_array (stringlist) @block.inner) @block.outer

(call (NAME) @call.inner) @call.outer
(dependency (NAME) @call.inner) @call.outer
Expand All @@ -19,14 +19,16 @@
(depcall) @parameter.inner
(depcall (expression) @parameter.inner)

(stringlist
(string) @parameter.inner
. ","? @_end
(#make-range! "parameter.outer" @parameter.inner @_end)
)
; (stringlist
; (string) @parameter.inner
; . ","? @_end
; (#make-range! "parameter.outer" @parameter.inner @_end)
; )
(parameters
[(parameter)
(variadic_parameters)] @parameter.inner
[
(parameter)
(variadic_parameters)
] @parameter.inner
. " "? @_end
(#make-range! "parameter.outer" @parameter.inner @_end)
)
Expand All @@ -42,7 +44,7 @@
)

(item [(alias) (assignment) (export) (setting)]) @statement.outer
(recipeheader) @statement.outer
(recipe_header) @statement.outer
(line) @statement.outer

(comment) @comment.outer
Loading

0 comments on commit fabecdf

Please sign in to comment.