diff --git a/README.md b/README.md index 46f1251..be1c432 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,7 @@ Files with contributions (or unclear license info): * [powershell.jsf](https://github.com/cmur2/joe-syntax/blob/master/powershell.jsf) which is entirely contributed by [Oskar Liljeblad](https://github.com/osklil) under GPL v2 or any later version ([comment](https://github.com/cmur2/joe-syntax/pull/5#issuecomment-76935968)) * [puppet.jsf](https://github.com/cmur2/joe-syntax/blob/master/puppet.jsf) which is created by [Christian Nicolai](https://github.com/cmur2) and then modified by [Eric Eisenhart](https://github.com/eeisenhart) * [sql.jsf](https://github.com/cmur2/joe-syntax/blob/master/sql.jsf) which is from an "unknown source" (delivered by [Rebecca Turner](https://github.com/iarna)) +* [yaml.jsf](https://github.com/cmur2/joe-syntax/blob/master/yaml.jsf) which is created by [Christian Nicolai](https://github.com/cmur2) with bug fixes from [Todd Lewis](https://github.com/utoddl) ## Links diff --git a/dockerfile.jsf b/dockerfile.jsf new file mode 100644 index 0000000..940401b --- /dev/null +++ b/dockerfile.jsf @@ -0,0 +1,27 @@ +# JOE syntax highlight file for Dockerfile + +=Idle +=Comment green +=Instruction blue + +:idle Idle + * arguments + "a-zA-Z" instruction noeat + "#" comment recolor=-1 + "\n" idle + +:comment Comment + * comment + "\n" idle + +:instruction Instruction + * instruction + " \t" arguments noeat + +:arguments Idle + * arguments + "\n" idle + "#" comment recolor=-1 + + + diff --git a/ftyperc b/ftyperc index 39302ba..74ea491 100644 --- a/ftyperc +++ b/ftyperc @@ -689,27 +689,27 @@ Makefile *Makefile -autoindent --syntax conf +-syntax makefile -pound_comment *makefile -autoindent --syntax conf +-syntax makefile -pound_comment *Makefile.in -autoindent --syntax conf +-syntax makefile -pound_comment *makefile.in -autoindent --syntax conf +-syntax makefile -pound_comment *MAKEFILE -autoindent --syntax conf +-syntax makefile -pound_comment Pascal @@ -1033,3 +1033,13 @@ -autoindent -syntax scheme -semi_comment + + Docker +*Dockerfile +-syntax dockerfile + + Terraform +*.tf +-autoindent +-syntax terraform +-c_comment diff --git a/makefile.jsf b/makefile.jsf new file mode 100644 index 0000000..e0db23f --- /dev/null +++ b/makefile.jsf @@ -0,0 +1,97 @@ +# JOE syntax highlight file for Makefile + +=Idle +=Comment green +=CommentLabel bold green +=Constant cyan +=Escape bold cyan +=Bad bold red + +=RecipeCont bold cyan +=TargetPhony yellow +=TargetOther fg_310 # brown +=TargetRest + +:line_start Idle + * idle noeat + "#" line_comment recolor=-1 + "a-zA-Z._" maybe_target mark buffer + "\t" recipe + +:idle Idle + * idle + "$" maybe_substitute + "\n" line_start + +:maybe_substitute Idle + * idle noeat + "(" substitute recolor=-2 + +:substitute Constant + * substitute + ")" idle + +:recipe Idle + * recipe + "$" maybe_r_substitute + "\\" recipe_cont recolor=-1 + "\n" line_start + +:recipe_cont RecipeCont + * recipe noeat + "\n" recipe + +:maybe_r_substitute Idle + * recipe noeat + "(" r_substitute recolor=-2 + +:r_substitute Constant + * r_substitute + ")" recipe + +:line_comment Comment + * line_comment + # might be TODO label + "BFHNTX" line_comment noeat call=.comment_todo() + "\n" line_start + +:maybe_target Idle + * idle noeat + ":" target_other noeat recolormark strings + ".PHONY" target_phony +done + "a-zA-Z._-" maybe_target + +:target_phony TargetPhony + * target_rest noeat + +:target_other TargetOther + * target_rest noeat + +:target_rest TargetRest + * target_rest + "\n" line_start + +.subr comment_todo +# initial state +:comment_todo_init Comment + * comment_todo_guess buffer + +# highlight common TODO labels +:comment_todo_guess Comment + * comment_todo_unknown noeat strings + "BUG" comment_todo + "FIXME" comment_todo + "HACK" comment_todo + "NOTE" comment_todo + "TODO" comment_todo + "XXX" comment_todo +done + "A-Z" comment_todo_guess + +:comment_todo_unknown Comment + * NULL noeat return + +:comment_todo CommentLabel + * NULL noeat return +.end diff --git a/terraform.jsf b/terraform.jsf new file mode 100644 index 0000000..5758550 --- /dev/null +++ b/terraform.jsf @@ -0,0 +1,169 @@ +# JOE syntax highlight file for Terraform (or "HashiCorp configuration language") + +=Idle +=Comment green +=CommentLabel bold green +=Constant cyan +=Escape bold cyan +=Bad bold red + +=Keyword fg_310 # brown +=Interpolate magenta +=InterpolateVar bold magenta + +:idle Idle + * idle + "#" line_comment recolor=-1 + "/" maybe_comment + "0-9" number recolor=-1 + "\"" string recolor=-1 + "a-zA-Z_" ident buffer + +:line_comment Comment + * line_comment + "\n" idle + +:maybe_comment Idle + * idle noeat + "*" comment recolor=-2 + +:comment Comment + * comment + # might be TODO label + "BFHNTX" comment noeat call=.comment_todo() + "*" maybe_end_comment + +:maybe_end_comment Comment + * comment noeat + "/" idle + "*" maybe_end_comment + +:number Constant + * idle noeat + "0-9" number + +:string Constant + * string + "$" maybe_interpolate + "\"" idle + +:maybe_interpolate Constant + * idle noeat + "{" interpolate recolor=-2 + +:interpolate Interpolate + * interpolate + "\"" interpolate_string recolor=-1 + "0-9" interpolate_number recolor=-1 + "*" interpolate_star recolor=-1 + "a-zA-Z" interpolate_ident buffer + "}" string + +:interpolate_string Constant + * interpolate_string + "\"" interpolate + +:interpolate_number Constant + * interpolate noeat + "0-9" interpolate_number + +:interpolate_star Constant + * interpolate noeat + +:interpolate_ident Interpolate + * interpolate noeat strings + "basename" func + "ceil" func + "chomp" func + "cidrhost" func + "cidrnetmask" func + "cidrsubnet" func + "coalesce" func + "compact" func + "concat" func + "count" var + "data" var + "dirname" func + "distinct" func + "element" func + "file" func + "floor" func + "format" func + "formatlist" func + "index" func + "join" func + "keys" func + "length" func + "list" func + "lookup" func + "lower" func + "map" func + "max" func + "merge" func + "min" func + "module" var + "path" var + "pathexpand" func + "replace" func + "self" var + "signum" func + "slice" func + "sort" func + "split" func + "substr" func +# "terraform" var + "timestamp" func + "title" func + "trimspace" func + "upper" func + "uuid" func + "values" func + "var" var + "zipmap" func +done + "a-zA-Z" interpolate_ident + +:var InterpolateVar + * interpolate noeat + +:func InterpolateVar + * interpolate noeat + +:ident Idle + * idle noeat strings + "false" bool + "module" kw + "resource" kw + "true" bool +done + "a-zA-Z_" ident + +:kw Keyword + * idle noeat + +:bool Constant + * idle noeat + +.subr comment_todo +# initial state +:comment_todo_init Comment + * comment_todo_guess buffer + +# highlight common TODO labels +:comment_todo_guess Comment + * comment_todo_unknown noeat strings + "BUG" comment_todo + "FIXME" comment_todo + "HACK" comment_todo + "NOTE" comment_todo + "TODO" comment_todo + "XXX" comment_todo +done + "A-Z" comment_todo_guess + +:comment_todo_unknown Comment + * NULL noeat return + +:comment_todo CommentLabel + * NULL noeat return +.end diff --git a/yaml.jsf b/yaml.jsf index 350bd82..51972e4 100644 --- a/yaml.jsf +++ b/yaml.jsf @@ -28,10 +28,11 @@ "#" line_comment recolor=-1 :idle Constant - * idle + * plain_scalar noeat "\n" line_start " " maybe_idlecomment "%" directive recolor=-1 + " " maybe_idle_comment "'" string_sq_1 recolor=-1 "\"" string_dq_1 recolor=-1 "{[]}" brace recolor=-1 @@ -39,6 +40,12 @@ "*&" maybe_reference "!" maybe_typecast +:plain_scalar Constant + * plain_scalar + "\t" bad_tab recolor=-1 + "\n" line_start noeat + " " maybe_plain_scalar_comment + :maybe_key Idle * maybe_key1 recolor=-1 mark "\n" line_start @@ -61,6 +68,14 @@ :bad_tab BadTab * line_start noeat +:maybe_plain_scalar_comment Comment + * plain_scalar noeat + "#" line_comment + +:maybe_idle_comment Comment + * idle noeat + "#" line_comment + :line_comment Comment * line_comment "\n" line_start