mirror of
https://github.com/rwinkhart/go-highlite.git
synced 2026-09-03 15:47:14 -04:00
Support initial batch of languages
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
//go:build stxMakefile || stxAll
|
||||
|
||||
package syntax
|
||||
|
||||
func init() {
|
||||
syntaxMap["makefile"] = &lazySyntax{init: func() []byte {
|
||||
return []byte(`filetype: makefile
|
||||
|
||||
detect:
|
||||
filename: "([Mm]akefile|\\.ma?k)$"
|
||||
header: "^#!.*/(env +)?[bg]?make( |$)"
|
||||
|
||||
rules:
|
||||
- preproc: "(ifeq|ifdef|ifneq|ifndef|else|endif)"
|
||||
- statement: "^(export|include|override)\\>"
|
||||
- type: "(^[A-Za-z_]+[[:space:]]+)(\\?|:)?="
|
||||
- operator: "^[^:= ]+:"
|
||||
- operator: "([=,%]|\\+=|\\?=|:=|&&|\\|\\|)"
|
||||
- statement: "(abspath|addprefix|addsuffix|and|basename|call|([[:space:]]|^)([a-z]+)?dir|mkdir)[[:space:]]"
|
||||
- statement: "(([a-z]+(-))?(un)?install(-)?([a-z]+)?(-)?([a-z]+))"
|
||||
- statement: "\\$\\((error|eval|filter|filter-out|findstring|firstword)[[:space:]]"
|
||||
- statement: "(flavor|echo|foreach|if|else|fi(;)?|elif|case|esac(;)?|for|done|shift|chmod|chown(info)?|pwd|join|lastword|notdir|or)[[:space:]]"
|
||||
- statement: "\\$\\((origin|patsubst|realpath|shell|sort|strip|suffix)[[:space:]]"
|
||||
- statement: "\\$\\((value|warning|wildcard|word|wordlist|words)[[:space:]]"
|
||||
- red: "([[:space:]]|^)(rm|rmdir|exit)[[:space:]]"
|
||||
- magenta: "([[:space:]]|^)(gcc|ld)[[:space:]]"
|
||||
- type: "^.+:"
|
||||
- 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: []`)
|
||||
}}
|
||||
}
|
||||
Reference in New Issue
Block a user