From 3cbbba534c6b2d0f5ab938679ca442d13c164eba Mon Sep 17 00:00:00 2001 From: Tomo <68489118+tomodachi94@users.noreply.github.com> Date: Sun, 21 Aug 2022 23:53:04 -0700 Subject: [PATCH] Add justfile syntax (#2523) Just is 'just a command runner'. It has syntax inspired by make, so `makefile.yaml` was used as a template. --- runtime/syntax/justfile.yaml | 40 ++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 runtime/syntax/justfile.yaml diff --git a/runtime/syntax/justfile.yaml b/runtime/syntax/justfile.yaml new file mode 100644 index 00000000..4df61d57 --- /dev/null +++ b/runtime/syntax/justfile.yaml @@ -0,0 +1,40 @@ +# For more information, see https://github.com/casey/just +filetype: 'justfile' + +detect: + filename: '(^\\.?[Jj]ustfile|\\.just)$' + header: "^#!.*/(env +)?[bg]?just --justfile" + +rules: + - preproc: "\\<(ifeq|ifdef|ifneq|ifndef|else|endif)\\>" + - statement: "^(export|include|override)\\>" + - symbol.operator: "^[^:= ]+:" + - symbol.operator: "([=,%]|\\+=|\\?=|:=|&&|\\|\\|)" + - statement: "\\$\\((abspath|addprefix|addsuffix|and|basename|call|dir)[[:space:]]" + - statement: "\\$\\((error|eval|filter|filter-out|findstring|firstword)[[:space:]]" + - statement: "\\$\\((flavor|foreach|if|info|join|lastword|notdir|or)[[:space:]]" + - statement: "\\$\\((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: "\\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)\\b" + - identifier: "^.+:" + - identifier: "[()$]" + - constant.string: + start: "\"" + end: "\"" + skip: "\\\\." + rules: + - constant.specialChar: "\\\\." + - constant.string: + start: "'" + end: "'" + skip: "\\\\." + rules: + - constant.specialChar: "\\\\." + - identifier: "\\$+(\\{[^} ]+\\}|\\([^) ]+\\))" + - identifier: "\\$[@^<*?%|+]|\\$\\([@^<*?%+-][DF]\\)" + - identifier: "\\$\\$|\\\\.?" + - comment: + start: "#" + end: "$" + rules: [] -- 2.44.0