dotfiles

My dotfiles.
Log | Files | Refs | LICENSE

commit 3dec59d036621d247fb498208a80cb10c7af9b93
parent ce7e84e566f500d90a6c2c0ca095e07b1bddec3c
Author: Ryan Jeffrey <pwishie@gmail.com>
Date:   Tue,  2 Jul 2019 02:30:30 -0700

joe update

Diffstat:
A.joe/syntax/4gl.jsf | 216+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/4gl.jsf.in | 216+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/Makefile | 683+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/Makefile.am | 17+++++++++++++++++
A.joe/syntax/Makefile.in | 683+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/ada.jsf | 189+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/ada.jsf.in | 189+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/ant.jsf | 305++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/ant.jsf.in | 305++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/asm.jsf | 252+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/asm.jsf.in | 252+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/avr.jsf | 195+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/avr.jsf.in | 195+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/awk.jsf | 231+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/awk.jsf.in | 231+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/batch.jsf | 154+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/batch.jsf.in | 154+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/c.jsf | 515+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/c.jsf.in | 514+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/c.jsf~ | 515+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/clojure.jsf | 1485+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/clojure.jsf.in | 1485+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/cobol.jsf | 673+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/cobol.jsf.in | 673+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/coffee.jsf | 531+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/coffee.jsf.in | 531+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/comment_todo.jsf | 29+++++++++++++++++++++++++++++
A.joe/syntax/comment_todo.jsf.in | 29+++++++++++++++++++++++++++++
A.joe/syntax/conf.jsf | 85+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/conf.jsf.in | 85+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/context.jsf | 61+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/context.jsf.in | 61+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/csh.jsf | 233+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/csh.jsf.in | 233+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/csharp.jsf | 460+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/csharp.jsf.in | 460+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/css.jsf | 168+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/css.jsf.in | 168+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/d.jsf | 537+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/d.jsf.in | 537+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/debian.jsf | 67+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/debian.jsf.in | 67+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/diff.jsf | 422+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/diff.jsf.in | 422+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/dockerfile.jsf | 168+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/dockerfile.jsf.in | 168+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/elixir.jsf | 276+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/elixir.jsf.in | 276+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/erb.jsf | 32++++++++++++++++++++++++++++++++
A.joe/syntax/erb.jsf.in | 32++++++++++++++++++++++++++++++++
A.joe/syntax/erlang.jsf | 500+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/erlang.jsf.in | 500+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/filename.jsf | 21+++++++++++++++++++++
A.joe/syntax/filename.jsf.in | 21+++++++++++++++++++++
A.joe/syntax/fortran.jsf | 807+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/fortran.jsf.in | 807+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/git-commit.jsf | 21+++++++++++++++++++++
A.joe/syntax/git-commit.jsf.in | 21+++++++++++++++++++++
A.joe/syntax/go.jsf | 368+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/go.jsf.in | 368+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/groovy.jsf | 471+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/groovy.jsf.in | 471+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/haml.jsf | 122+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/haml.jsf.in | 122+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/haskell.jsf | 435+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/haskell.jsf.in | 435+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/html.jsf | 1345+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/html.jsf.in | 1345+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/htmlerb.jsf | 12++++++++++++
A.joe/syntax/htmlerb.jsf.in | 12++++++++++++
A.joe/syntax/ini.jsf | 77+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/ini.jsf.in | 77+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/iptables.jsf | 129+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/iptables.jsf.in | 129+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/java.jsf | 274+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/java.jsf.in | 274+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/joerc.jsf | 115+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/joerc.jsf.in | 115+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/js.jsf | 704+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/js.jsf.in | 704+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/jsf.jsf | 784+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/jsf.jsf.in | 784+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/jsf_check.jsf | 6++++++
A.joe/syntax/jsf_check.jsf.in | 6++++++
A.joe/syntax/json.jsf | 261+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/json.jsf.in | 261+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/lisp.jsf | 26++++++++++++++++++++++++++
A.joe/syntax/lisp.jsf.in | 26++++++++++++++++++++++++++
A.joe/syntax/lua.jsf | 316+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/lua.jsf.in | 316+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/m4.jsf | 121+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/m4.jsf.in | 121+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/mail.jsf | 197+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/mail.jsf.in | 197+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/mason.jsf | 8++++++++
A.joe/syntax/mason.jsf.in | 8++++++++
A.joe/syntax/matlab.jsf | 74++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/matlab.jsf.in | 74++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/md.jsf | 135+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/md.jsf.in | 135+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/ocaml.jsf | 476+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/ocaml.jsf.in | 476+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/pascal.jsf | 223+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/pascal.jsf.in | 223+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/perl.jsf | 461+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/perl.jsf.in | 461+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/php.jsf | 293+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/php.jsf.in | 293+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/powershell.jsf | 259+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/powershell.jsf.in | 259+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/prolog.jsf | 155+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/prolog.jsf.in | 155+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/properties.jsf | 86+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/properties.jsf.in | 86+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/ps.jsf | 380+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/ps.jsf.in | 380+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/puppet.jsf | 160+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/puppet.jsf.in | 160+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/python.jsf | 292+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/python.jsf.in | 292+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/r.jsf | 168+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/r.jsf.in | 168+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/rexx.jsf | 81+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/rexx.jsf.in | 81+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/ruby.jsf | 641+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/ruby.jsf.in | 641+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/rust.jsf | 321+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/rust.jsf.in | 321+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/scala.jsf | 325+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/scala.jsf.in | 325+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/sed.jsf | 144+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/sed.jsf.in | 144+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/sh.jsf | 343+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/sh.jsf.in | 343+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/sieve.jsf | 106+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/sieve.jsf.in | 106+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/skill.jsf | 92+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/skill.jsf.in | 92+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/sml.jsf | 391+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/sml.jsf.in | 391+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/spec.jsf | 149+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/spec.jsf.in | 149+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/sql.jsf | 470+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/sql.jsf.in | 470+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/swift.jsf | 280+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/swift.jsf.in | 280+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/tcl.jsf | 262+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/tcl.jsf.in | 262+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/tex.jsf | 82+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/tex.jsf.in | 82+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/troff.jsf | 82+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/troff.jsf.in | 82+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/typescript.jsf | 6++++++
A.joe/syntax/typescript.jsf.in | 6++++++
A.joe/syntax/verilog.jsf | 274+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/verilog.jsf.in | 274+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/vhdl.jsf | 212+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/vhdl.jsf.in | 212+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/whitespace.jsf | 17+++++++++++++++++
A.joe/syntax/whitespace.jsf.in | 17+++++++++++++++++
A.joe/syntax/xml.jsf | 288+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/xml.jsf.in | 288+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/yaml.jsf | 145+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joe/syntax/yaml.jsf.in | 145+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.joerc | 1349+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
165 files changed, 47800 insertions(+), 0 deletions(-)

diff --git a/.joe/syntax/4gl.jsf b/.joe/syntax/4gl.jsf @@ -0,0 +1,216 @@ +# JOE syntax highlight file for Progress 4GL +# by Gediminas http://proc.w3.lt +# Version 1.04 + +# bold inverse blink dim underline italic +# white cyan magenta blue yellow green red black +# bg_white bg_cyan bg_magenta bg_blue bg_yellow bg_green bg_red bg_black + +=Idle +=Comment green +=Constant cyan +=Type magenta +# conditional operators, blocks +=Condition bold +# buffer repositioning +=KeyDB bold green +# create, delete record +=CreateDel bold yellow +# preprocessor include, definition, reference +=Include yellow +=Preproc yellow +=PreRef + +:idle Idle + * idle + "/" slash + "{" brace + "&" prep buffer + "a-zA-Z" ident buffer + "'" string recolor=-1 + "\"" string2 recolor=-1 + "0-9" number recolor=-1 + "?" question recolor=-1 + +# Comments - 2 levels of nesting allowed + +:slash Idle + * idle noeat + "*" comment recolor=-2 +:comment Comment + * comment + "/" slash2 + "*" maybe_end_comment +:maybe_end_comment Comment + * comment + "/" idle + "*" maybe_end_comment + +:slash2 Idle + * comment noeat + "*" comment2 recolor=-2 +:comment2 Comment + * comment2 + "*" maybe_end_comment2 +:maybe_end_comment2 Comment + * comment2 + "/" comment + "*" maybe_end_comment2 + +# Preprocessor +# Allow preprocessor name reference inside include file reference: +# {include/trace {&FILE-NAME} {&LINE-NUMBER}} + +:brace Include + * include noeat + "&" scoped recolor=-2 + "}" idle + +:include Include + * include recolor=-2 + "{" brace2 + "}" idle + +:brace2 Include + * include2 noeat + "}" idle + +:include2 Include + * include2 recolor=-2 + "}" include + +:scoped PreRef + * scoped + "}" idle + +:prep Preproc + * idle noeat istrings + "&IF" predir + "&THEN" predir + "&ELSEIF" predir + "&ELSE" predir + "&ENDIF" predir + "&SCOPED-DEFINE" predir + "&SCOP" predir + "&GLOBAL-DEFINE" predir + "&GLOB" predir + "&MESSAGE" predir + "&UNDEFINE" predir + "&UNDEF" predir +done + "-a-zA-Z0-9_" prep + +:predir Preproc + * idle noeat + + +# String constants, copied from pascal.jsf with " added + +:string Constant + * string + "\n" idle + "'" maybe_end_string + +:maybe_end_string Constant + * idle recolor=-1 noeat + "'" string + +:string2 Constant + * string2 + "\n" idle + "\"" maybe_end_string2 + +:maybe_end_string2 Constant + * idle recolor=-1 noeat + "\"" string2 + +# Numeric constant, same as pascal.jsf + +:number Constant + * idle noeat + "0-9" number + "eE" epart + "." dot + +:dot Constant + * idle noeat + "0-9" float + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +:question Constant + * idle noeat + +# Keywords +# Available jumps: operator type kw kwdb credel func + +:ident Idle + * idle noeat istrings + "assign" cond + "case" cond + "cha" type + "char" type + "character" type + "create" credel + "dat" type + "date" type + "dec" type + "decimal" type + "defined" predir + "delete" credel + "do" cond + "else" cond + "end" cond + "find" kwdb + "for" kwdb + "function" cond + "get" kwdb + "handle" type + "if" cond + "int" type + "integer" type + "leave" cond + "log" type + "logical" type + "memptr" type + "next" cond + "otherwise" cond + "param" cond + "parameter" cond + "procedure" cond + "raw" type + "rec" type + "repeat" cond + "reposition" kwdb + "return" cond + "rowid" type + "run" cond + "then" cond + "when" cond + "widget-handle" type +done + "-a-zA-Z0-9_" ident + +:cond Condition + * idle noeat + +:kwdb KeyDB + * idle noeat + +:type Type + * idle noeat + +:credel CreateDel + * idle noeat + diff --git a/.joe/syntax/4gl.jsf.in b/.joe/syntax/4gl.jsf.in @@ -0,0 +1,216 @@ +# JOE syntax highlight file for Progress 4GL +# by Gediminas http://proc.w3.lt +# Version 1.04 + +# bold inverse blink dim underline italic +# white cyan magenta blue yellow green red black +# bg_white bg_cyan bg_magenta bg_blue bg_yellow bg_green bg_red bg_black + +=Idle +=Comment green +=Constant cyan +=Type magenta +# conditional operators, blocks +=Condition bold +# buffer repositioning +=KeyDB bold green +# create, delete record +=CreateDel bold yellow +# preprocessor include, definition, reference +=Include yellow +=Preproc yellow +=PreRef + +:idle Idle + * idle + "/" slash + "{" brace + "&" prep buffer + "a-zA-Z" ident buffer + "'" string recolor=-1 + "\"" string2 recolor=-1 + "0-9" number recolor=-1 + "?" question recolor=-1 + +# Comments - 2 levels of nesting allowed + +:slash Idle + * idle noeat + "*" comment recolor=-2 +:comment Comment + * comment + "/" slash2 + "*" maybe_end_comment +:maybe_end_comment Comment + * comment + "/" idle + "*" maybe_end_comment + +:slash2 Idle + * comment noeat + "*" comment2 recolor=-2 +:comment2 Comment + * comment2 + "*" maybe_end_comment2 +:maybe_end_comment2 Comment + * comment2 + "/" comment + "*" maybe_end_comment2 + +# Preprocessor +# Allow preprocessor name reference inside include file reference: +# {include/trace {&FILE-NAME} {&LINE-NUMBER}} + +:brace Include + * include noeat + "&" scoped recolor=-2 + "}" idle + +:include Include + * include recolor=-2 + "{" brace2 + "}" idle + +:brace2 Include + * include2 noeat + "}" idle + +:include2 Include + * include2 recolor=-2 + "}" include + +:scoped PreRef + * scoped + "}" idle + +:prep Preproc + * idle noeat istrings + "&IF" predir + "&THEN" predir + "&ELSEIF" predir + "&ELSE" predir + "&ENDIF" predir + "&SCOPED-DEFINE" predir + "&SCOP" predir + "&GLOBAL-DEFINE" predir + "&GLOB" predir + "&MESSAGE" predir + "&UNDEFINE" predir + "&UNDEF" predir +done + "-a-zA-Z0-9_" prep + +:predir Preproc + * idle noeat + + +# String constants, copied from pascal.jsf with " added + +:string Constant + * string + "\n" idle + "'" maybe_end_string + +:maybe_end_string Constant + * idle recolor=-1 noeat + "'" string + +:string2 Constant + * string2 + "\n" idle + "\"" maybe_end_string2 + +:maybe_end_string2 Constant + * idle recolor=-1 noeat + "\"" string2 + +# Numeric constant, same as pascal.jsf + +:number Constant + * idle noeat + "0-9" number + "eE" epart + "." dot + +:dot Constant + * idle noeat + "0-9" float + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +:question Constant + * idle noeat + +# Keywords +# Available jumps: operator type kw kwdb credel func + +:ident Idle + * idle noeat istrings + "assign" cond + "case" cond + "cha" type + "char" type + "character" type + "create" credel + "dat" type + "date" type + "dec" type + "decimal" type + "defined" predir + "delete" credel + "do" cond + "else" cond + "end" cond + "find" kwdb + "for" kwdb + "function" cond + "get" kwdb + "handle" type + "if" cond + "int" type + "integer" type + "leave" cond + "log" type + "logical" type + "memptr" type + "next" cond + "otherwise" cond + "param" cond + "parameter" cond + "procedure" cond + "raw" type + "rec" type + "repeat" cond + "reposition" kwdb + "return" cond + "rowid" type + "run" cond + "then" cond + "when" cond + "widget-handle" type +done + "-a-zA-Z0-9_" ident + +:cond Condition + * idle noeat + +:kwdb KeyDB + * idle noeat + +:type Type + * idle noeat + +:credel CreateDel + * idle noeat + diff --git a/.joe/syntax/Makefile b/.joe/syntax/Makefile @@ -0,0 +1,683 @@ +# Makefile.in generated by automake 1.14.1 from Makefile.am. +# syntax/Makefile. Generated from Makefile.in by configure. + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + + + +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/joe +pkgincludedir = $(includedir)/joe +pkglibdir = $(libdir)/joe +pkglibexecdir = $(libexecdir)/joe +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = x86_64-unknown-linux-gnu +host_triplet = x86_64-unknown-linux-gnu +target_triplet = x86_64-unknown-linux-gnu +subdir = syntax +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(srcdir)/4gl.jsf.in $(srcdir)/ada.jsf.in $(srcdir)/ant.jsf.in \ + $(srcdir)/asm.jsf.in $(srcdir)/awk.jsf.in \ + $(srcdir)/batch.jsf.in $(srcdir)/c.jsf.in \ + $(srcdir)/cobol.jsf.in $(srcdir)/comment_todo.jsf.in \ + $(srcdir)/conf.jsf.in $(srcdir)/csharp.jsf.in \ + $(srcdir)/csh.jsf.in $(srcdir)/css.jsf.in \ + $(srcdir)/debian.jsf.in $(srcdir)/diff.jsf.in \ + $(srcdir)/elixir.jsf.in $(srcdir)/erb.jsf.in \ + $(srcdir)/erlang.jsf.in $(srcdir)/fortran.jsf.in \ + $(srcdir)/git-commit.jsf.in $(srcdir)/go.jsf.in \ + $(srcdir)/haml.jsf.in $(srcdir)/haskell.jsf.in \ + $(srcdir)/html.jsf.in $(srcdir)/htmlerb.jsf.in \ + $(srcdir)/ini.jsf.in $(srcdir)/iptables.jsf.in \ + $(srcdir)/java.jsf.in $(srcdir)/joerc.jsf.in \ + $(srcdir)/js.jsf.in $(srcdir)/jsf_check.jsf.in \ + $(srcdir)/jsf.jsf.in $(srcdir)/json.jsf.in \ + $(srcdir)/lisp.jsf.in $(srcdir)/lua.jsf.in $(srcdir)/m4.jsf.in \ + $(srcdir)/mail.jsf.in $(srcdir)/mason.jsf.in \ + $(srcdir)/matlab.jsf.in $(srcdir)/md.jsf.in \ + $(srcdir)/ocaml.jsf.in $(srcdir)/pascal.jsf.in \ + $(srcdir)/perl.jsf.in $(srcdir)/php.jsf.in \ + $(srcdir)/powershell.jsf.in $(srcdir)/prolog.jsf.in \ + $(srcdir)/properties.jsf.in $(srcdir)/ps.jsf.in \ + $(srcdir)/puppet.jsf.in $(srcdir)/python.jsf.in \ + $(srcdir)/rexx.jsf.in $(srcdir)/ruby.jsf.in \ + $(srcdir)/sed.jsf.in $(srcdir)/sh.jsf.in \ + $(srcdir)/sieve.jsf.in $(srcdir)/skill.jsf.in \ + $(srcdir)/sml.jsf.in $(srcdir)/spec.jsf.in \ + $(srcdir)/sql.jsf.in $(srcdir)/tcl.jsf.in $(srcdir)/tex.jsf.in \ + $(srcdir)/troff.jsf.in $(srcdir)/typescript.jsf.in \ + $(srcdir)/verilog.jsf.in $(srcdir)/vhdl.jsf.in \ + $(srcdir)/whitespace.jsf.in $(srcdir)/xml.jsf.in \ + $(srcdir)/yaml.jsf.in $(srcdir)/filename.jsf.in \ + $(srcdir)/avr.jsf.in $(srcdir)/r.jsf.in \ + $(srcdir)/groovy.jsf.in $(srcdir)/clojure.jsf.in \ + $(srcdir)/rust.jsf.in $(srcdir)/coffee.jsf.in \ + $(srcdir)/scala.jsf.in $(srcdir)/swift.jsf.in \ + $(srcdir)/d.jsf.in $(srcdir)/dockerfile.jsf.in \ + $(srcdir)/context.jsf.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/joe/autoconf.h +CONFIG_CLEAN_FILES = 4gl.jsf ada.jsf ant.jsf asm.jsf awk.jsf batch.jsf \ + c.jsf cobol.jsf comment_todo.jsf conf.jsf csharp.jsf csh.jsf \ + css.jsf debian.jsf diff.jsf elixir.jsf erb.jsf erlang.jsf \ + fortran.jsf git-commit.jsf go.jsf haml.jsf haskell.jsf \ + html.jsf htmlerb.jsf ini.jsf iptables.jsf java.jsf joerc.jsf \ + js.jsf jsf_check.jsf jsf.jsf json.jsf lisp.jsf lua.jsf m4.jsf \ + mail.jsf mason.jsf matlab.jsf md.jsf ocaml.jsf pascal.jsf \ + perl.jsf php.jsf powershell.jsf prolog.jsf properties.jsf \ + ps.jsf puppet.jsf python.jsf rexx.jsf ruby.jsf sed.jsf sh.jsf \ + sieve.jsf skill.jsf sml.jsf spec.jsf sql.jsf tcl.jsf tex.jsf \ + troff.jsf typescript.jsf verilog.jsf vhdl.jsf whitespace.jsf \ + xml.jsf yaml.jsf filename.jsf avr.jsf r.jsf groovy.jsf \ + clojure.jsf rust.jsf coffee.jsf scala.jsf swift.jsf d.jsf \ + dockerfile.jsf context.jsf +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_$(V)) +am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY)) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(data_syntaxdir)" +DATA = $(data_syntax_DATA) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = ${SHELL} /home/ryan/Downloads/joe-4.3/missing aclocal-1.14 +AMTAR = $${TAR-tar} +AM_DEFAULT_VERBOSITY = 1 +AUTOCONF = ${SHELL} /home/ryan/Downloads/joe-4.3/missing autoconf +AUTOHEADER = ${SHELL} /home/ryan/Downloads/joe-4.3/missing autoheader +AUTOMAKE = ${SHELL} /home/ryan/Downloads/joe-4.3/missing automake-1.14 +AWK = gawk +CC = gcc +CCDEPMODE = depmode=gcc3 +CFLAGS = -g -O2 +CPP = gcc -E +CPPFLAGS = +CYGPATH_W = echo +DEFS = -DHAVE_CONFIG_H +DEPDIR = .deps +ECHO_C = +ECHO_N = -n +ECHO_T = +EGREP = /usr/bin/grep -E +EXEEXT = +GREP = /usr/bin/grep +INSTALL = /usr/bin/install -c +INSTALL_DATA = ${INSTALL} -m 644 +INSTALL_PROGRAM = ${INSTALL} +INSTALL_SCRIPT = ${INSTALL} +INSTALL_STRIP_PROGRAM = $(install_sh) -c -s +LDFLAGS = +LIBOBJS = +LIBS = -lm -lncurses -lutil +LN_S = ln -s +LTLIBOBJS = +MAINT = # +MAKEINFO = ${SHELL} /home/ryan/Downloads/joe-4.3/missing makeinfo +MKDIR_P = /usr/bin/mkdir -p +OBJEXT = o +PACKAGE = joe +PACKAGE_BUGREPORT = +PACKAGE_NAME = joe +PACKAGE_STRING = joe 4.3 +PACKAGE_TARNAME = joe +PACKAGE_URL = +PACKAGE_VERSION = 4.3 +PATH_SEPARATOR = : +SET_MAKE = +SHELL = /bin/sh +SPELL = aspell +STRIP = +VERSION = 4.3 +abs_builddir = /home/ryan/Downloads/joe-4.3/syntax +abs_srcdir = /home/ryan/Downloads/joe-4.3/syntax +abs_top_builddir = /home/ryan/Downloads/joe-4.3 +abs_top_srcdir = /home/ryan/Downloads/joe-4.3 +ac_ct_CC = gcc +am__include = include +am__leading_dot = . +am__quote = +am__tar = $${TAR-tar} chof - "$$tardir" +am__untar = $${TAR-tar} xf - +bindir = ${exec_prefix}/bin +build = x86_64-unknown-linux-gnu +build_alias = +build_cpu = x86_64 +build_os = linux-gnu +build_vendor = unknown +builddir = . +datadir = ${datarootdir} +datarootdir = ${prefix}/share +docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} +dvidir = ${docdir} +exec_prefix = ${prefix} +host = x86_64-unknown-linux-gnu +host_alias = +host_cpu = x86_64 +host_os = linux-gnu +host_vendor = unknown +htmldir = ${docdir} +includedir = ${prefix}/include +infodir = ${datarootdir}/info +install_sh = ${SHELL} /home/ryan/Downloads/joe-4.3/install-sh +libdir = ${exec_prefix}/lib +libexecdir = ${exec_prefix}/libexec +localedir = ${datarootdir}/locale +localstatedir = ${prefix}/var +mandir = ${datarootdir}/man +mkdir_p = $(MKDIR_P) +oldincludedir = /usr/include +pdfdir = ${docdir} +prefix = /usr/local +program_transform_name = s,x,x, +psdir = ${docdir} +sbindir = ${exec_prefix}/sbin +sharedstatedir = ${prefix}/com +srcdir = . +sysconfdir = ${prefix}/etc +target = x86_64-unknown-linux-gnu +target_alias = +target_cpu = x86_64 +target_os = linux-gnu +target_vendor = unknown +top_build_prefix = ../ +top_builddir = .. +top_srcdir = .. +data_joedir = $(datadir)/joe +data_syntaxdir = $(data_joedir)/syntax +data_syntax_DATA = c.jsf perl.jsf verilog.jsf conf.jsf python.jsf php.jsf sh.jsf \ + mail.jsf pascal.jsf html.jsf vhdl.jsf fortran.jsf java.jsf xml.jsf tcl.jsf \ + lisp.jsf csh.jsf mason.jsf diff.jsf asm.jsf tex.jsf css.jsf ocaml.jsf \ + 4gl.jsf sml.jsf sql.jsf awk.jsf cobol.jsf sed.jsf ps.jsf ada.jsf \ + troff.jsf haskell.jsf rexx.jsf skill.jsf lua.jsf ruby.jsf m4.jsf joerc.jsf \ + spec.jsf matlab.jsf jsf.jsf jsf_check.jsf csharp.jsf batch.jsf ini.jsf go.jsf \ + js.jsf json.jsf typescript.jsf ant.jsf comment_todo.jsf debian.jsf elixir.jsf \ + erb.jsf git-commit.jsf haml.jsf htmlerb.jsf iptables.jsf md.jsf prolog.jsf \ + properties.jsf sieve.jsf whitespace.jsf yaml.jsf erlang.jsf powershell.jsf \ + puppet.jsf filename.jsf avr.jsf r.jsf groovy.jsf clojure.jsf rust.jsf \ + coffee.jsf scala.jsf swift.jsf d.jsf dockerfile.jsf context.jsf + +EXTRA_DIST = $(data_syntax_DATA) +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu syntax/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu syntax/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: # $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): # $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +4gl.jsf: $(top_builddir)/config.status $(srcdir)/4gl.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +ada.jsf: $(top_builddir)/config.status $(srcdir)/ada.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +ant.jsf: $(top_builddir)/config.status $(srcdir)/ant.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +asm.jsf: $(top_builddir)/config.status $(srcdir)/asm.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +awk.jsf: $(top_builddir)/config.status $(srcdir)/awk.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +batch.jsf: $(top_builddir)/config.status $(srcdir)/batch.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +c.jsf: $(top_builddir)/config.status $(srcdir)/c.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +cobol.jsf: $(top_builddir)/config.status $(srcdir)/cobol.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +comment_todo.jsf: $(top_builddir)/config.status $(srcdir)/comment_todo.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +conf.jsf: $(top_builddir)/config.status $(srcdir)/conf.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +csharp.jsf: $(top_builddir)/config.status $(srcdir)/csharp.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +csh.jsf: $(top_builddir)/config.status $(srcdir)/csh.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +css.jsf: $(top_builddir)/config.status $(srcdir)/css.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +debian.jsf: $(top_builddir)/config.status $(srcdir)/debian.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +diff.jsf: $(top_builddir)/config.status $(srcdir)/diff.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +elixir.jsf: $(top_builddir)/config.status $(srcdir)/elixir.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +erb.jsf: $(top_builddir)/config.status $(srcdir)/erb.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +erlang.jsf: $(top_builddir)/config.status $(srcdir)/erlang.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +fortran.jsf: $(top_builddir)/config.status $(srcdir)/fortran.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +git-commit.jsf: $(top_builddir)/config.status $(srcdir)/git-commit.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +go.jsf: $(top_builddir)/config.status $(srcdir)/go.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +haml.jsf: $(top_builddir)/config.status $(srcdir)/haml.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +haskell.jsf: $(top_builddir)/config.status $(srcdir)/haskell.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +html.jsf: $(top_builddir)/config.status $(srcdir)/html.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +htmlerb.jsf: $(top_builddir)/config.status $(srcdir)/htmlerb.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +ini.jsf: $(top_builddir)/config.status $(srcdir)/ini.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +iptables.jsf: $(top_builddir)/config.status $(srcdir)/iptables.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +java.jsf: $(top_builddir)/config.status $(srcdir)/java.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +joerc.jsf: $(top_builddir)/config.status $(srcdir)/joerc.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +js.jsf: $(top_builddir)/config.status $(srcdir)/js.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +jsf_check.jsf: $(top_builddir)/config.status $(srcdir)/jsf_check.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +jsf.jsf: $(top_builddir)/config.status $(srcdir)/jsf.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +json.jsf: $(top_builddir)/config.status $(srcdir)/json.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +lisp.jsf: $(top_builddir)/config.status $(srcdir)/lisp.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +lua.jsf: $(top_builddir)/config.status $(srcdir)/lua.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +m4.jsf: $(top_builddir)/config.status $(srcdir)/m4.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +mail.jsf: $(top_builddir)/config.status $(srcdir)/mail.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +mason.jsf: $(top_builddir)/config.status $(srcdir)/mason.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +matlab.jsf: $(top_builddir)/config.status $(srcdir)/matlab.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +md.jsf: $(top_builddir)/config.status $(srcdir)/md.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +ocaml.jsf: $(top_builddir)/config.status $(srcdir)/ocaml.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +pascal.jsf: $(top_builddir)/config.status $(srcdir)/pascal.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +perl.jsf: $(top_builddir)/config.status $(srcdir)/perl.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +php.jsf: $(top_builddir)/config.status $(srcdir)/php.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +powershell.jsf: $(top_builddir)/config.status $(srcdir)/powershell.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +prolog.jsf: $(top_builddir)/config.status $(srcdir)/prolog.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +properties.jsf: $(top_builddir)/config.status $(srcdir)/properties.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +ps.jsf: $(top_builddir)/config.status $(srcdir)/ps.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +puppet.jsf: $(top_builddir)/config.status $(srcdir)/puppet.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +python.jsf: $(top_builddir)/config.status $(srcdir)/python.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +rexx.jsf: $(top_builddir)/config.status $(srcdir)/rexx.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +ruby.jsf: $(top_builddir)/config.status $(srcdir)/ruby.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +sed.jsf: $(top_builddir)/config.status $(srcdir)/sed.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +sh.jsf: $(top_builddir)/config.status $(srcdir)/sh.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +sieve.jsf: $(top_builddir)/config.status $(srcdir)/sieve.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +skill.jsf: $(top_builddir)/config.status $(srcdir)/skill.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +sml.jsf: $(top_builddir)/config.status $(srcdir)/sml.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +spec.jsf: $(top_builddir)/config.status $(srcdir)/spec.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +sql.jsf: $(top_builddir)/config.status $(srcdir)/sql.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +tcl.jsf: $(top_builddir)/config.status $(srcdir)/tcl.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +tex.jsf: $(top_builddir)/config.status $(srcdir)/tex.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +troff.jsf: $(top_builddir)/config.status $(srcdir)/troff.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +typescript.jsf: $(top_builddir)/config.status $(srcdir)/typescript.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +verilog.jsf: $(top_builddir)/config.status $(srcdir)/verilog.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +vhdl.jsf: $(top_builddir)/config.status $(srcdir)/vhdl.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +whitespace.jsf: $(top_builddir)/config.status $(srcdir)/whitespace.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +xml.jsf: $(top_builddir)/config.status $(srcdir)/xml.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +yaml.jsf: $(top_builddir)/config.status $(srcdir)/yaml.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +filename.jsf: $(top_builddir)/config.status $(srcdir)/filename.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +avr.jsf: $(top_builddir)/config.status $(srcdir)/avr.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +r.jsf: $(top_builddir)/config.status $(srcdir)/r.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +groovy.jsf: $(top_builddir)/config.status $(srcdir)/groovy.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +clojure.jsf: $(top_builddir)/config.status $(srcdir)/clojure.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +rust.jsf: $(top_builddir)/config.status $(srcdir)/rust.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +coffee.jsf: $(top_builddir)/config.status $(srcdir)/coffee.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +scala.jsf: $(top_builddir)/config.status $(srcdir)/scala.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +swift.jsf: $(top_builddir)/config.status $(srcdir)/swift.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +d.jsf: $(top_builddir)/config.status $(srcdir)/d.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +dockerfile.jsf: $(top_builddir)/config.status $(srcdir)/dockerfile.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +context.jsf: $(top_builddir)/config.status $(srcdir)/context.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +install-data_syntaxDATA: $(data_syntax_DATA) + @$(NORMAL_INSTALL) + @list='$(data_syntax_DATA)'; test -n "$(data_syntaxdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(data_syntaxdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(data_syntaxdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(data_syntaxdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(data_syntaxdir)" || exit $$?; \ + done + +uninstall-data_syntaxDATA: + @$(NORMAL_UNINSTALL) + @list='$(data_syntax_DATA)'; test -n "$(data_syntaxdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(data_syntaxdir)'; $(am__uninstall_files_from_dir) +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(data_syntaxdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-data_syntaxDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-data_syntaxDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic cscopelist-am \ + ctags-am distclean distclean-generic distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-data_syntaxDATA install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic pdf pdf-am ps ps-am tags-am uninstall \ + uninstall-am uninstall-data_syntaxDATA + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/.joe/syntax/Makefile.am b/.joe/syntax/Makefile.am @@ -0,0 +1,17 @@ +data_joedir = $(datadir)/joe + +data_syntaxdir = $(data_joedir)/syntax + +data_syntax_DATA = c.jsf perl.jsf verilog.jsf conf.jsf python.jsf php.jsf sh.jsf \ + mail.jsf pascal.jsf html.jsf vhdl.jsf fortran.jsf java.jsf xml.jsf tcl.jsf \ + lisp.jsf csh.jsf mason.jsf diff.jsf asm.jsf tex.jsf css.jsf ocaml.jsf \ + 4gl.jsf sml.jsf sql.jsf awk.jsf cobol.jsf sed.jsf ps.jsf ada.jsf \ + troff.jsf haskell.jsf rexx.jsf skill.jsf lua.jsf ruby.jsf m4.jsf joerc.jsf \ + spec.jsf matlab.jsf jsf.jsf jsf_check.jsf csharp.jsf batch.jsf ini.jsf go.jsf \ + js.jsf json.jsf typescript.jsf ant.jsf comment_todo.jsf debian.jsf elixir.jsf \ + erb.jsf git-commit.jsf haml.jsf htmlerb.jsf iptables.jsf md.jsf prolog.jsf \ + properties.jsf sieve.jsf whitespace.jsf yaml.jsf erlang.jsf powershell.jsf \ + puppet.jsf filename.jsf avr.jsf r.jsf groovy.jsf clojure.jsf rust.jsf \ + coffee.jsf scala.jsf swift.jsf d.jsf dockerfile.jsf context.jsf + +EXTRA_DIST = $(data_syntax_DATA) diff --git a/.joe/syntax/Makefile.in b/.joe/syntax/Makefile.in @@ -0,0 +1,683 @@ +# Makefile.in generated by automake 1.14.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = syntax +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(srcdir)/4gl.jsf.in $(srcdir)/ada.jsf.in $(srcdir)/ant.jsf.in \ + $(srcdir)/asm.jsf.in $(srcdir)/awk.jsf.in \ + $(srcdir)/batch.jsf.in $(srcdir)/c.jsf.in \ + $(srcdir)/cobol.jsf.in $(srcdir)/comment_todo.jsf.in \ + $(srcdir)/conf.jsf.in $(srcdir)/csharp.jsf.in \ + $(srcdir)/csh.jsf.in $(srcdir)/css.jsf.in \ + $(srcdir)/debian.jsf.in $(srcdir)/diff.jsf.in \ + $(srcdir)/elixir.jsf.in $(srcdir)/erb.jsf.in \ + $(srcdir)/erlang.jsf.in $(srcdir)/fortran.jsf.in \ + $(srcdir)/git-commit.jsf.in $(srcdir)/go.jsf.in \ + $(srcdir)/haml.jsf.in $(srcdir)/haskell.jsf.in \ + $(srcdir)/html.jsf.in $(srcdir)/htmlerb.jsf.in \ + $(srcdir)/ini.jsf.in $(srcdir)/iptables.jsf.in \ + $(srcdir)/java.jsf.in $(srcdir)/joerc.jsf.in \ + $(srcdir)/js.jsf.in $(srcdir)/jsf_check.jsf.in \ + $(srcdir)/jsf.jsf.in $(srcdir)/json.jsf.in \ + $(srcdir)/lisp.jsf.in $(srcdir)/lua.jsf.in $(srcdir)/m4.jsf.in \ + $(srcdir)/mail.jsf.in $(srcdir)/mason.jsf.in \ + $(srcdir)/matlab.jsf.in $(srcdir)/md.jsf.in \ + $(srcdir)/ocaml.jsf.in $(srcdir)/pascal.jsf.in \ + $(srcdir)/perl.jsf.in $(srcdir)/php.jsf.in \ + $(srcdir)/powershell.jsf.in $(srcdir)/prolog.jsf.in \ + $(srcdir)/properties.jsf.in $(srcdir)/ps.jsf.in \ + $(srcdir)/puppet.jsf.in $(srcdir)/python.jsf.in \ + $(srcdir)/rexx.jsf.in $(srcdir)/ruby.jsf.in \ + $(srcdir)/sed.jsf.in $(srcdir)/sh.jsf.in \ + $(srcdir)/sieve.jsf.in $(srcdir)/skill.jsf.in \ + $(srcdir)/sml.jsf.in $(srcdir)/spec.jsf.in \ + $(srcdir)/sql.jsf.in $(srcdir)/tcl.jsf.in $(srcdir)/tex.jsf.in \ + $(srcdir)/troff.jsf.in $(srcdir)/typescript.jsf.in \ + $(srcdir)/verilog.jsf.in $(srcdir)/vhdl.jsf.in \ + $(srcdir)/whitespace.jsf.in $(srcdir)/xml.jsf.in \ + $(srcdir)/yaml.jsf.in $(srcdir)/filename.jsf.in \ + $(srcdir)/avr.jsf.in $(srcdir)/r.jsf.in \ + $(srcdir)/groovy.jsf.in $(srcdir)/clojure.jsf.in \ + $(srcdir)/rust.jsf.in $(srcdir)/coffee.jsf.in \ + $(srcdir)/scala.jsf.in $(srcdir)/swift.jsf.in \ + $(srcdir)/d.jsf.in $(srcdir)/dockerfile.jsf.in \ + $(srcdir)/context.jsf.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/joe/autoconf.h +CONFIG_CLEAN_FILES = 4gl.jsf ada.jsf ant.jsf asm.jsf awk.jsf batch.jsf \ + c.jsf cobol.jsf comment_todo.jsf conf.jsf csharp.jsf csh.jsf \ + css.jsf debian.jsf diff.jsf elixir.jsf erb.jsf erlang.jsf \ + fortran.jsf git-commit.jsf go.jsf haml.jsf haskell.jsf \ + html.jsf htmlerb.jsf ini.jsf iptables.jsf java.jsf joerc.jsf \ + js.jsf jsf_check.jsf jsf.jsf json.jsf lisp.jsf lua.jsf m4.jsf \ + mail.jsf mason.jsf matlab.jsf md.jsf ocaml.jsf pascal.jsf \ + perl.jsf php.jsf powershell.jsf prolog.jsf properties.jsf \ + ps.jsf puppet.jsf python.jsf rexx.jsf ruby.jsf sed.jsf sh.jsf \ + sieve.jsf skill.jsf sml.jsf spec.jsf sql.jsf tcl.jsf tex.jsf \ + troff.jsf typescript.jsf verilog.jsf vhdl.jsf whitespace.jsf \ + xml.jsf yaml.jsf filename.jsf avr.jsf r.jsf groovy.jsf \ + clojure.jsf rust.jsf coffee.jsf scala.jsf swift.jsf d.jsf \ + dockerfile.jsf context.jsf +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(data_syntaxdir)" +DATA = $(data_syntax_DATA) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SPELL = @SPELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +data_joedir = $(datadir)/joe +data_syntaxdir = $(data_joedir)/syntax +data_syntax_DATA = c.jsf perl.jsf verilog.jsf conf.jsf python.jsf php.jsf sh.jsf \ + mail.jsf pascal.jsf html.jsf vhdl.jsf fortran.jsf java.jsf xml.jsf tcl.jsf \ + lisp.jsf csh.jsf mason.jsf diff.jsf asm.jsf tex.jsf css.jsf ocaml.jsf \ + 4gl.jsf sml.jsf sql.jsf awk.jsf cobol.jsf sed.jsf ps.jsf ada.jsf \ + troff.jsf haskell.jsf rexx.jsf skill.jsf lua.jsf ruby.jsf m4.jsf joerc.jsf \ + spec.jsf matlab.jsf jsf.jsf jsf_check.jsf csharp.jsf batch.jsf ini.jsf go.jsf \ + js.jsf json.jsf typescript.jsf ant.jsf comment_todo.jsf debian.jsf elixir.jsf \ + erb.jsf git-commit.jsf haml.jsf htmlerb.jsf iptables.jsf md.jsf prolog.jsf \ + properties.jsf sieve.jsf whitespace.jsf yaml.jsf erlang.jsf powershell.jsf \ + puppet.jsf filename.jsf avr.jsf r.jsf groovy.jsf clojure.jsf rust.jsf \ + coffee.jsf scala.jsf swift.jsf d.jsf dockerfile.jsf context.jsf + +EXTRA_DIST = $(data_syntax_DATA) +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu syntax/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu syntax/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +4gl.jsf: $(top_builddir)/config.status $(srcdir)/4gl.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +ada.jsf: $(top_builddir)/config.status $(srcdir)/ada.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +ant.jsf: $(top_builddir)/config.status $(srcdir)/ant.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +asm.jsf: $(top_builddir)/config.status $(srcdir)/asm.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +awk.jsf: $(top_builddir)/config.status $(srcdir)/awk.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +batch.jsf: $(top_builddir)/config.status $(srcdir)/batch.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +c.jsf: $(top_builddir)/config.status $(srcdir)/c.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +cobol.jsf: $(top_builddir)/config.status $(srcdir)/cobol.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +comment_todo.jsf: $(top_builddir)/config.status $(srcdir)/comment_todo.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +conf.jsf: $(top_builddir)/config.status $(srcdir)/conf.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +csharp.jsf: $(top_builddir)/config.status $(srcdir)/csharp.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +csh.jsf: $(top_builddir)/config.status $(srcdir)/csh.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +css.jsf: $(top_builddir)/config.status $(srcdir)/css.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +debian.jsf: $(top_builddir)/config.status $(srcdir)/debian.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +diff.jsf: $(top_builddir)/config.status $(srcdir)/diff.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +elixir.jsf: $(top_builddir)/config.status $(srcdir)/elixir.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +erb.jsf: $(top_builddir)/config.status $(srcdir)/erb.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +erlang.jsf: $(top_builddir)/config.status $(srcdir)/erlang.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +fortran.jsf: $(top_builddir)/config.status $(srcdir)/fortran.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +git-commit.jsf: $(top_builddir)/config.status $(srcdir)/git-commit.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +go.jsf: $(top_builddir)/config.status $(srcdir)/go.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +haml.jsf: $(top_builddir)/config.status $(srcdir)/haml.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +haskell.jsf: $(top_builddir)/config.status $(srcdir)/haskell.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +html.jsf: $(top_builddir)/config.status $(srcdir)/html.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +htmlerb.jsf: $(top_builddir)/config.status $(srcdir)/htmlerb.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +ini.jsf: $(top_builddir)/config.status $(srcdir)/ini.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +iptables.jsf: $(top_builddir)/config.status $(srcdir)/iptables.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +java.jsf: $(top_builddir)/config.status $(srcdir)/java.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +joerc.jsf: $(top_builddir)/config.status $(srcdir)/joerc.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +js.jsf: $(top_builddir)/config.status $(srcdir)/js.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +jsf_check.jsf: $(top_builddir)/config.status $(srcdir)/jsf_check.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +jsf.jsf: $(top_builddir)/config.status $(srcdir)/jsf.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +json.jsf: $(top_builddir)/config.status $(srcdir)/json.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +lisp.jsf: $(top_builddir)/config.status $(srcdir)/lisp.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +lua.jsf: $(top_builddir)/config.status $(srcdir)/lua.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +m4.jsf: $(top_builddir)/config.status $(srcdir)/m4.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +mail.jsf: $(top_builddir)/config.status $(srcdir)/mail.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +mason.jsf: $(top_builddir)/config.status $(srcdir)/mason.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +matlab.jsf: $(top_builddir)/config.status $(srcdir)/matlab.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +md.jsf: $(top_builddir)/config.status $(srcdir)/md.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +ocaml.jsf: $(top_builddir)/config.status $(srcdir)/ocaml.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +pascal.jsf: $(top_builddir)/config.status $(srcdir)/pascal.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +perl.jsf: $(top_builddir)/config.status $(srcdir)/perl.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +php.jsf: $(top_builddir)/config.status $(srcdir)/php.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +powershell.jsf: $(top_builddir)/config.status $(srcdir)/powershell.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +prolog.jsf: $(top_builddir)/config.status $(srcdir)/prolog.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +properties.jsf: $(top_builddir)/config.status $(srcdir)/properties.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +ps.jsf: $(top_builddir)/config.status $(srcdir)/ps.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +puppet.jsf: $(top_builddir)/config.status $(srcdir)/puppet.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +python.jsf: $(top_builddir)/config.status $(srcdir)/python.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +rexx.jsf: $(top_builddir)/config.status $(srcdir)/rexx.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +ruby.jsf: $(top_builddir)/config.status $(srcdir)/ruby.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +sed.jsf: $(top_builddir)/config.status $(srcdir)/sed.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +sh.jsf: $(top_builddir)/config.status $(srcdir)/sh.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +sieve.jsf: $(top_builddir)/config.status $(srcdir)/sieve.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +skill.jsf: $(top_builddir)/config.status $(srcdir)/skill.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +sml.jsf: $(top_builddir)/config.status $(srcdir)/sml.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +spec.jsf: $(top_builddir)/config.status $(srcdir)/spec.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +sql.jsf: $(top_builddir)/config.status $(srcdir)/sql.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +tcl.jsf: $(top_builddir)/config.status $(srcdir)/tcl.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +tex.jsf: $(top_builddir)/config.status $(srcdir)/tex.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +troff.jsf: $(top_builddir)/config.status $(srcdir)/troff.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +typescript.jsf: $(top_builddir)/config.status $(srcdir)/typescript.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +verilog.jsf: $(top_builddir)/config.status $(srcdir)/verilog.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +vhdl.jsf: $(top_builddir)/config.status $(srcdir)/vhdl.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +whitespace.jsf: $(top_builddir)/config.status $(srcdir)/whitespace.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +xml.jsf: $(top_builddir)/config.status $(srcdir)/xml.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +yaml.jsf: $(top_builddir)/config.status $(srcdir)/yaml.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +filename.jsf: $(top_builddir)/config.status $(srcdir)/filename.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +avr.jsf: $(top_builddir)/config.status $(srcdir)/avr.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +r.jsf: $(top_builddir)/config.status $(srcdir)/r.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +groovy.jsf: $(top_builddir)/config.status $(srcdir)/groovy.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +clojure.jsf: $(top_builddir)/config.status $(srcdir)/clojure.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +rust.jsf: $(top_builddir)/config.status $(srcdir)/rust.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +coffee.jsf: $(top_builddir)/config.status $(srcdir)/coffee.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +scala.jsf: $(top_builddir)/config.status $(srcdir)/scala.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +swift.jsf: $(top_builddir)/config.status $(srcdir)/swift.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +d.jsf: $(top_builddir)/config.status $(srcdir)/d.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +dockerfile.jsf: $(top_builddir)/config.status $(srcdir)/dockerfile.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +context.jsf: $(top_builddir)/config.status $(srcdir)/context.jsf.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +install-data_syntaxDATA: $(data_syntax_DATA) + @$(NORMAL_INSTALL) + @list='$(data_syntax_DATA)'; test -n "$(data_syntaxdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(data_syntaxdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(data_syntaxdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(data_syntaxdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(data_syntaxdir)" || exit $$?; \ + done + +uninstall-data_syntaxDATA: + @$(NORMAL_UNINSTALL) + @list='$(data_syntax_DATA)'; test -n "$(data_syntaxdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(data_syntaxdir)'; $(am__uninstall_files_from_dir) +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(data_syntaxdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-data_syntaxDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-data_syntaxDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic cscopelist-am \ + ctags-am distclean distclean-generic distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-data_syntaxDATA install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic pdf pdf-am ps ps-am tags-am uninstall \ + uninstall-am uninstall-data_syntaxDATA + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/.joe/syntax/ada.jsf b/.joe/syntax/ada.jsf @@ -0,0 +1,189 @@ +# JOE syntax highlight file for ADA + +# Define colors + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Keyword bold +=Operator bold + +:idle Idle + * idle + "-" maybe_comment + "'" char recolor=-1 + "\"" string recolor=-1 + "0-9" first_digit recolor=-1 + "." maybe_float + "\"" string recolor=-1 + "Bb" maybe_binary buffer + "Oo" maybe_octal buffer + "Xx" maybe_hex buffer + "ac-np-wyzAC-NP-WYZ" ident buffer + +:maybe_comment Idle + * idle noeat + "-" comment recolor=-2 + +:comment Comment + * comment + "\n" idle + + +# Character constant + +:char Idle + * char1 + +:char1 Idle + * idle + "'" char2 recolor=-3 + +:char2 Constant + * idle noeat + +# Strings + +:maybe_binary Idle + * ident noeat + "\"" string recolor=-2 + +:maybe_octal Idle + * ident noeat + "\"" string recolor=-2 + +:maybe_hex Idle + * ident noeat + "\"" string recolor=-2 + +:string Constant + * string + "\n" idle + "\"" idle + "\\" string_escape recolor=-1 + +:string_escape Escape + * string + "\n" string recolor=-2 + +# Integer constants + +:first_digit Constant + * idle noeat + "." float + "_" first_digit + "0-9" first_digit + +# Floating point + +:maybe_float Constant + * idle recolor=-2 noeat + "0-9" float recolor=-2 + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +# Identifiers + +:ident Idle + * quote noeat istrings + "abort" kw + "abs" operator + "abstract" kw + "accept" kw + "aliased" kw + "all" kw + "and" operator + "array" kw + "at" kw + "begin" kw + "body" kw + "case" kw + "constant" kw + "declare" kw + "delay" kw + "delta" kw + "digits" kw + "do" kw + "else" kw + "elsif" kw + "end" kw + "entry" kw + "exception" kw + "exit" kw + "for" kw + "function" kw + "generic" kw + "goto" kw + "if" kw + "in" kw + "interface" kw + "is" kw + "limited" kw + "loop" kw + "mod" kw + "new" kw + "not" operator + "null" kw + "of" kw + "or" operator + "others" kw + "out" kw + "overriding" kw + "package" kw + "pragma" kw + "private" kw + "procedure" kw + "protected" kw + "raise" kw + "range" kw + "record" kw + "rem" operator + "renames" kw + "requeue" kw + "return" kw + "reverse" kw + "select" kw + "separate" kw + "subtype" kw + "synchronized" kw + "tagged" kw + "task" kw + "terminate" kw + "then" kw + "type" kw + "until" kw + "use" kw + "when" kw + "while" kw + "with" kw + "xor" operator +done + "a-zA-Z0-9_" ident + +:operator Operator + * idle noeat + +:kw Keyword + * idle noeat + +# identifiers separated with quote ' + +:quote Idle + * idle noeat + "'" quote_word + +:quote_word Idle + * idle noeat + "a-zA-Z" ident buffer diff --git a/.joe/syntax/ada.jsf.in b/.joe/syntax/ada.jsf.in @@ -0,0 +1,189 @@ +# JOE syntax highlight file for ADA + +# Define colors + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Keyword bold +=Operator bold + +:idle Idle + * idle + "-" maybe_comment + "'" char recolor=-1 + "\"" string recolor=-1 + "0-9" first_digit recolor=-1 + "." maybe_float + "\"" string recolor=-1 + "Bb" maybe_binary buffer + "Oo" maybe_octal buffer + "Xx" maybe_hex buffer + "ac-np-wyzAC-NP-WYZ" ident buffer + +:maybe_comment Idle + * idle noeat + "-" comment recolor=-2 + +:comment Comment + * comment + "\n" idle + + +# Character constant + +:char Idle + * char1 + +:char1 Idle + * idle + "'" char2 recolor=-3 + +:char2 Constant + * idle noeat + +# Strings + +:maybe_binary Idle + * ident noeat + "\"" string recolor=-2 + +:maybe_octal Idle + * ident noeat + "\"" string recolor=-2 + +:maybe_hex Idle + * ident noeat + "\"" string recolor=-2 + +:string Constant + * string + "\n" idle + "\"" idle + "\\" string_escape recolor=-1 + +:string_escape Escape + * string + "\n" string recolor=-2 + +# Integer constants + +:first_digit Constant + * idle noeat + "." float + "_" first_digit + "0-9" first_digit + +# Floating point + +:maybe_float Constant + * idle recolor=-2 noeat + "0-9" float recolor=-2 + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +# Identifiers + +:ident Idle + * quote noeat istrings + "abort" kw + "abs" operator + "abstract" kw + "accept" kw + "aliased" kw + "all" kw + "and" operator + "array" kw + "at" kw + "begin" kw + "body" kw + "case" kw + "constant" kw + "declare" kw + "delay" kw + "delta" kw + "digits" kw + "do" kw + "else" kw + "elsif" kw + "end" kw + "entry" kw + "exception" kw + "exit" kw + "for" kw + "function" kw + "generic" kw + "goto" kw + "if" kw + "in" kw + "interface" kw + "is" kw + "limited" kw + "loop" kw + "mod" kw + "new" kw + "not" operator + "null" kw + "of" kw + "or" operator + "others" kw + "out" kw + "overriding" kw + "package" kw + "pragma" kw + "private" kw + "procedure" kw + "protected" kw + "raise" kw + "range" kw + "record" kw + "rem" operator + "renames" kw + "requeue" kw + "return" kw + "reverse" kw + "select" kw + "separate" kw + "subtype" kw + "synchronized" kw + "tagged" kw + "task" kw + "terminate" kw + "then" kw + "type" kw + "until" kw + "use" kw + "when" kw + "while" kw + "with" kw + "xor" operator +done + "a-zA-Z0-9_" ident + +:operator Operator + * idle noeat + +:kw Keyword + * idle noeat + +# identifiers separated with quote ' + +:quote Idle + * idle noeat + "'" quote_word + +:quote_word Idle + * idle noeat + "a-zA-Z" ident buffer diff --git a/.joe/syntax/ant.jsf b/.joe/syntax/ant.jsf @@ -0,0 +1,305 @@ +# JOE syntax highlight file for Ant's build scripts +# by Christian Nicolai (http://mycrobase.de) + +# http://ant.apache.org/ + +# heavily based on the XML highlighter but with better colors since +# ant scripts heavily rely on the tags (blue is a bad color here) +# instead of their contents + +# Improved XML highlighter by: Brian Candler <B.Candler@pobox.com> + +=Idle +=Bad red bold +=Tag bold +=Attr +=Constant cyan +=Escape bold cyan +=EntityRef magenta +=Decl cyan +=CommentStart green +=CommentBody green +=CommentEnd green +=PIStart yellow bold +=PIBody yellow +=PIEnd yellow bold +=CdataStart blue bold +=CdataBody bold +=CdataEnd blue bold + +=Keytag bold magenta #fg_310 # brown + + +# http://www.w3.org/TR/2004/REC-xml-20040204/ +# +# NOTE: For UNICODE compatibility, the ranges +# "A-Za-z_:" -- first character of Name +# "A-Za-z0-9._:-" -- subsequent characters of Name +# ought to be replaced with some appropriate Unicode character classes +# +# Actually the standard tells you which characters to use, see: +# http://www.w3.org/TR/xml11/#NT-NameStartChar + +:content Idle + * content + "<" tag recolor=-1 + "&" entityref recolor=-1 + +# > is allowed +# ">" error noeat recolor=-1 + + +# In several contexts a space is an error, and since a coloured space is +# not visible, we colour the next non-space character as well. + +:error Bad + * error_visible noeat recolor=-1 + " \t\r\n" error + +:error_visible Bad + * content + +# Matched: & + +:entityref EntityRef + * error noeat recolor=-1 + "-.:\c" entityref + "#" entityref + ";" content + +# Matched: < + +:tag Tag + * error noeat recolor=-1 + "/" end_tag + ":\i" start_or_empty_tag buffer + "?" pi_start recolor=-2 + "!" decl recolor=-2 buffer + +# Matched: </ + +:end_tag Tag + * error noeat recolor=-1 + ":\i" end_tag2 + +:end_tag2 Tag + * error noeat recolor=-1 + "-.:\c" end_tag2 + " \t\r\n" end_tag2_sp recolor=-1 + ">" content + +:end_tag2_sp Idle + * end_tag3 noeat + +:end_tag3 Tag + * error noeat recolor=-1 + " \t\r\n" end_tag3_sp recolor=-1 + ">" content + +:end_tag3_sp Idle + * end_tag_3 noeat + +# Matched: <tag + +# compare tag name of start/empty tags with a list +# of Ant specific keywords +:start_or_empty_tag Tag + * decide_tag_type noeat strings + "target" kw +done + "-.:\c" start_or_empty_tag + +:kw Keytag + * decide_tag_type noeat + +:decide_tag_type Tag + * error noeat recolor=-1 + "/" empty_tag + " \t\r\n" start_or_empty_tag_sp + ">" content + +:start_or_empty_tag_sp Idle + * tag_space noeat + +# Matched: <tag/ + +:empty_tag Tag + * error noeat recolor=-1 + ">" content + +# Matched: <tag SPACE + +:tag_space Attr + * error noeat recolor=-1 + " \t\r\n" tag_space_sp recolor=-1 + ":\i" attr + "/" empty_tag recolor=-1 + ">" close_tag recolor=-1 + +:tag_space_sp Idle + * tag_space noeat + +# Matched: <tag attr + +:attr Attr + * error noeat recolor=-1 + "-.:\c" attr + " \t\r\n" attr_sp recolor=-1 + "=" string + +:attr_sp Idle + * attr_before noeat + +:attr_before Attr + * error noeat recolor=-1 + " \t\r\n" attr_sp recolor=-1 + "=" string + +# Matched: <tag attr= + +:string Attr + * error noeat recolor=-1 + " \t\r\n" string_sp recolor=-1 + "\"" string_dq recolor=-1 + "'" string_sq recolor=-1 + +:string_sp Idle + * string noeat + +# Matched: <tag attr=" + +:string_dq Constant + * string_dq + "<" error noeat recolor=-1 + "&" char_dq recolor=-1 + "\"" endstring + "$" string_dq call=.antvar() + +# ">" error noeat recolor=-1 + + +:string_sq Constant + * string_sq + "<" error noeat recolor=-1 + "&" char_sq recolor=-1 + "'" endstring + "$" string_sq call=.maybe_antvar() + +# ">" error noeat recolor=-1 + + +:char_dq EntityRef + * error noeat recolor=-1 + "A-Za-z0-9._:-" char_dq + "#" char_dq + ";" string_dq + +:char_sq EntityRef + * error noeat recolor=-1 + "A-Za-z0-9._:-" char_sq + "#" char_sq + ";" string_sq + +.subr maybe_antvar +# initial state +:maybe_antvar Constant + * NULL return + "{" antvar recolor=-2 + +:antvar Escape + * antvar + "}" NULL return +.end + +# Matched: <tag attr="foo" + +:endstring Attr + * error noeat recolor=-1 + " \t\r\n" tag_space_sp + "/" empty_tag recolor=-1 + ">" close_tag recolor=-1 + +# This state is just to recolor the final ">" at the end of <tag attr="val"> + +:close_tag Tag + * content noeat + +# Matched: <? + +:pi_start PIStart + * pi noeat recolor=-1 + +:pi PIBody + * pi + "?" pi2 + +:pi2 PIBody + * pi + ">" pi_end recolor=-2 + +:pi_end PIEnd + * content noeat recolor=-1 + +# Matched: <! + +:decl Decl + * decl strings + "!--" comment_start recolor=-5 + "![CDATA[" cdata_start recolor=-10 +done + "<" decl_nest + ">" content + +# We allow one level of <...> nesting within declarations + +:decl_nest Decl + * decl_nest + ">" decl + +# Matched: <!-- + +:comment_start CommentStart + * comment noeat + +:comment CommentBody + * comment + "-" comment2 + +:comment2 CommentBody + * comment + "-" comment3 + +:comment3 CommentBody + * comment_error noeat recolor=-3 + ">" comment_end recolor=-3 + +:comment_end CommentEnd + * content noeat recolor=-1 + +# For compatibility, the string "--" (double-hyphen) MUST NOT occur within +# comments. [http://www.w3.org/TR/REC-xml/ section 2.5] + +:comment_error Bad + * comment + "-" comment_error + ">" comment_end recolor=-3 + +# Matched: <![CDATA[ + +:cdata_start CdataStart + * cdata noeat + +:cdata CdataBody + * cdata + "]" cdata2 + +:cdata2 CdataBody + * cdata + "]" cdata3 + +:cdata3 CdataBody + * cdata + ">" cdata_end recolor=-3 + +:cdata_end CdataEnd + * content noeat recolor=-1 diff --git a/.joe/syntax/ant.jsf.in b/.joe/syntax/ant.jsf.in @@ -0,0 +1,305 @@ +# JOE syntax highlight file for Ant's build scripts +# by Christian Nicolai (http://mycrobase.de) + +# http://ant.apache.org/ + +# heavily based on the XML highlighter but with better colors since +# ant scripts heavily rely on the tags (blue is a bad color here) +# instead of their contents + +# Improved XML highlighter by: Brian Candler <B.Candler@pobox.com> + +=Idle +=Bad red bold +=Tag bold +=Attr +=Constant cyan +=Escape bold cyan +=EntityRef magenta +=Decl cyan +=CommentStart green +=CommentBody green +=CommentEnd green +=PIStart yellow bold +=PIBody yellow +=PIEnd yellow bold +=CdataStart blue bold +=CdataBody bold +=CdataEnd blue bold + +=Keytag bold magenta #fg_310 # brown + + +# http://www.w3.org/TR/2004/REC-xml-20040204/ +# +# NOTE: For UNICODE compatibility, the ranges +# "A-Za-z_:" -- first character of Name +# "A-Za-z0-9._:-" -- subsequent characters of Name +# ought to be replaced with some appropriate Unicode character classes +# +# Actually the standard tells you which characters to use, see: +# http://www.w3.org/TR/xml11/#NT-NameStartChar + +:content Idle + * content + "<" tag recolor=-1 + "&" entityref recolor=-1 + +# > is allowed +# ">" error noeat recolor=-1 + + +# In several contexts a space is an error, and since a coloured space is +# not visible, we colour the next non-space character as well. + +:error Bad + * error_visible noeat recolor=-1 + " \t\r\n" error + +:error_visible Bad + * content + +# Matched: & + +:entityref EntityRef + * error noeat recolor=-1 + "-.:\c" entityref + "#" entityref + ";" content + +# Matched: < + +:tag Tag + * error noeat recolor=-1 + "/" end_tag + ":\i" start_or_empty_tag buffer + "?" pi_start recolor=-2 + "!" decl recolor=-2 buffer + +# Matched: </ + +:end_tag Tag + * error noeat recolor=-1 + ":\i" end_tag2 + +:end_tag2 Tag + * error noeat recolor=-1 + "-.:\c" end_tag2 + " \t\r\n" end_tag2_sp recolor=-1 + ">" content + +:end_tag2_sp Idle + * end_tag3 noeat + +:end_tag3 Tag + * error noeat recolor=-1 + " \t\r\n" end_tag3_sp recolor=-1 + ">" content + +:end_tag3_sp Idle + * end_tag_3 noeat + +# Matched: <tag + +# compare tag name of start/empty tags with a list +# of Ant specific keywords +:start_or_empty_tag Tag + * decide_tag_type noeat strings + "target" kw +done + "-.:\c" start_or_empty_tag + +:kw Keytag + * decide_tag_type noeat + +:decide_tag_type Tag + * error noeat recolor=-1 + "/" empty_tag + " \t\r\n" start_or_empty_tag_sp + ">" content + +:start_or_empty_tag_sp Idle + * tag_space noeat + +# Matched: <tag/ + +:empty_tag Tag + * error noeat recolor=-1 + ">" content + +# Matched: <tag SPACE + +:tag_space Attr + * error noeat recolor=-1 + " \t\r\n" tag_space_sp recolor=-1 + ":\i" attr + "/" empty_tag recolor=-1 + ">" close_tag recolor=-1 + +:tag_space_sp Idle + * tag_space noeat + +# Matched: <tag attr + +:attr Attr + * error noeat recolor=-1 + "-.:\c" attr + " \t\r\n" attr_sp recolor=-1 + "=" string + +:attr_sp Idle + * attr_before noeat + +:attr_before Attr + * error noeat recolor=-1 + " \t\r\n" attr_sp recolor=-1 + "=" string + +# Matched: <tag attr= + +:string Attr + * error noeat recolor=-1 + " \t\r\n" string_sp recolor=-1 + "\"" string_dq recolor=-1 + "'" string_sq recolor=-1 + +:string_sp Idle + * string noeat + +# Matched: <tag attr=" + +:string_dq Constant + * string_dq + "<" error noeat recolor=-1 + "&" char_dq recolor=-1 + "\"" endstring + "$" string_dq call=.antvar() + +# ">" error noeat recolor=-1 + + +:string_sq Constant + * string_sq + "<" error noeat recolor=-1 + "&" char_sq recolor=-1 + "'" endstring + "$" string_sq call=.maybe_antvar() + +# ">" error noeat recolor=-1 + + +:char_dq EntityRef + * error noeat recolor=-1 + "A-Za-z0-9._:-" char_dq + "#" char_dq + ";" string_dq + +:char_sq EntityRef + * error noeat recolor=-1 + "A-Za-z0-9._:-" char_sq + "#" char_sq + ";" string_sq + +.subr maybe_antvar +# initial state +:maybe_antvar Constant + * NULL return + "{" antvar recolor=-2 + +:antvar Escape + * antvar + "}" NULL return +.end + +# Matched: <tag attr="foo" + +:endstring Attr + * error noeat recolor=-1 + " \t\r\n" tag_space_sp + "/" empty_tag recolor=-1 + ">" close_tag recolor=-1 + +# This state is just to recolor the final ">" at the end of <tag attr="val"> + +:close_tag Tag + * content noeat + +# Matched: <? + +:pi_start PIStart + * pi noeat recolor=-1 + +:pi PIBody + * pi + "?" pi2 + +:pi2 PIBody + * pi + ">" pi_end recolor=-2 + +:pi_end PIEnd + * content noeat recolor=-1 + +# Matched: <! + +:decl Decl + * decl strings + "!--" comment_start recolor=-5 + "![CDATA[" cdata_start recolor=-10 +done + "<" decl_nest + ">" content + +# We allow one level of <...> nesting within declarations + +:decl_nest Decl + * decl_nest + ">" decl + +# Matched: <!-- + +:comment_start CommentStart + * comment noeat + +:comment CommentBody + * comment + "-" comment2 + +:comment2 CommentBody + * comment + "-" comment3 + +:comment3 CommentBody + * comment_error noeat recolor=-3 + ">" comment_end recolor=-3 + +:comment_end CommentEnd + * content noeat recolor=-1 + +# For compatibility, the string "--" (double-hyphen) MUST NOT occur within +# comments. [http://www.w3.org/TR/REC-xml/ section 2.5] + +:comment_error Bad + * comment + "-" comment_error + ">" comment_end recolor=-3 + +# Matched: <![CDATA[ + +:cdata_start CdataStart + * cdata noeat + +:cdata CdataBody + * cdata + "]" cdata2 + +:cdata2 CdataBody + * cdata + "]" cdata3 + +:cdata3 CdataBody + * cdata + ">" cdata_end recolor=-3 + +:cdata_end CdataEnd + * content noeat recolor=-1 diff --git a/.joe/syntax/asm.jsf b/.joe/syntax/asm.jsf @@ -0,0 +1,252 @@ +# JOE syntax highlight file for assembly language + +# Highlights ';' comments, C-preprocessor stuff and C-like constants. + +# Some assembly languages do not use C-preprocessor and use '#' for +# comments. For them, eliminate all states up to ':idle'. and change the +# ";" line in 'idle' to '#'. + +# For UNIX assembly ';' actually separates instructions, but I've only seen +# this for 'rep; movsb'. If it bothers you eliminate the ';' line in +# ':idle'. + +# This highlighter is too strict for numeric constants. Many assembly +# languages allow '000009', which looks like a bad octal constant in C/UNIX. + +=Idle +=Bad bold red +=Preproc blue +=Define bold blue +=Comment green +=IncLocal cyan +=IncSystem bold cyan +=Constant cyan +=Escape bold cyan +=Type bold +=Keyword bold +=CppKeyword bold +=Brace +=Control + +:reset Idle + * first noeat + " \t" reset + +:first Idle + * idle noeat + "#" pre recolor=-1 + +:pre Preproc + * preproc noeat + " \t" pre + "a-z" preident recolor=-1 buffer + +:preident Preproc + * preproc noeat strings + "define" predef + "include" preinc +done + "a-z" preident + +:preinc Preproc + * preinc + " \t" preinc_ws + "\n" reset + +:preinc_ws Preproc + * prebad recolor=-1 + " \t" preinc_ws + "\"" preinc_local recolor=-1 + "<" preinc_system recolor=-1 + +:preinc_local IncLocal + * preinc_local + "\"\n" reset + +:preinc_system IncSystem + * preinc_system + ">\n" reset + +:prebad Bad + * prebad + "\n" reset + + +:predef Preproc + * predef + " \t" predef_ws + "\n" reset + +:predef_ws Preproc + * prebad recolor=-1 + " \t" predef_ws + "a-zA-Z0-9_" predef_ident recolor=-1 + +:predef_ident Define + * idle noeat + "a-zA-Z0-9_" predef_ident + + +:preproc Preproc + * preproc + "\n" reset + "\\" preproc_cont + "/" preproc_slash + +:preproc_slash Preproc + * preproc noeat + "*" comment recolor=-2 + "/" line_comment recolor=-2 + +:preproc_cont Preproc + * preproc_cont + "\n" preproc + +# All following states are for when we're not in a preprocessor line + +:idle Idle + * idle + ";" line_comment recolor=-1 + "\n" reset + "/" slash + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." maybe_float + "\"" string recolor=-1 + "'" char recolor=-1 + "a-zA-Z_" ident buffer + "{}" brace recolor=-1 + ",:=()><[]*&|!~+\-%^" control recolor=-1 + +:brace Brace + * idle noeat + +:control Control + * idle noeat + +:slash Idle + * idle noeat recolor=-2 # Not sure about this + "*" comment recolor=-2 + "/" line_comment recolor=-2 + +:comment Comment + * comment + "*" maybe_end_comment + +:maybe_end_comment Comment + * comment + "/" idle + "*" maybe_end_comment + +:line_comment Comment + * line_comment + "\n" reset + +:first_digit Constant + * idle noeat + "xX" hex + "." float + "eE" epart + "0-7" octal + "89" bad_number recolor=-1 + +:bad_number Bad + * idle noeat + "0-9" bad_number + +:octal Constant + * idle noeat + "0-7" octal + "89" bad_number recolor=-1 + +:hex Constant + * idle noeat + "0-9A-Fa-f" hex + +:decimal Constant + * idle noeat + "0-9" decimal + "eE" epart + "." float + +:maybe_float Constant + * idle recolor=-2 noeat + "0-9" float recolor=-2 + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +:string Constant + * string + "\"" idle + "\\" string_escape recolor=-1 + "%" string_control recolor=-1 + +:string_escape Escape + * string + "x" string_hex1 + "0-7" string_octal2 + "\n" string recolor=-2 + +:string_hex1 Escape + * string noeat + "0-9a-fA-F" string_hex2 + +:string_hex2 Escape + * string noeat + "0-9a-fA-F" string + +:string_octal2 Escape + * string noeat + "0-7" string_octal3 + +:string_octal3 Escape + * string noeat + "0-7" string + +:string_control Escape + * string_control + "\n" reset + "diouxXeEfFgGaAcspn%SC" string + +:char Constant + * char + "\n" reset + "'" idle + "\\" char_escape recolor=-1 + +:char_escape Escape + * char + "x" char_hex1 + "0-7" char_octal2 + "\n" char recolor=-2 + +:char_hex1 Escape + * char noeat + "0-9a-fA-F" char_hex2 + +:char_hex2 Escape + * char noeat + "0-9a-fA-F" char + +:char_octal2 Escape + * char noeat + "0-7" char_octal3 + +:char_octal3 Escape + * char noeat + "0-7" char + +:ident Idle + * idle noeat + "a-zA-Z0-9_" ident diff --git a/.joe/syntax/asm.jsf.in b/.joe/syntax/asm.jsf.in @@ -0,0 +1,252 @@ +# JOE syntax highlight file for assembly language + +# Highlights ';' comments, C-preprocessor stuff and C-like constants. + +# Some assembly languages do not use C-preprocessor and use '#' for +# comments. For them, eliminate all states up to ':idle'. and change the +# ";" line in 'idle' to '#'. + +# For UNIX assembly ';' actually separates instructions, but I've only seen +# this for 'rep; movsb'. If it bothers you eliminate the ';' line in +# ':idle'. + +# This highlighter is too strict for numeric constants. Many assembly +# languages allow '000009', which looks like a bad octal constant in C/UNIX. + +=Idle +=Bad bold red +=Preproc blue +=Define bold blue +=Comment green +=IncLocal cyan +=IncSystem bold cyan +=Constant cyan +=Escape bold cyan +=Type bold +=Keyword bold +=CppKeyword bold +=Brace +=Control + +:reset Idle + * first noeat + " \t" reset + +:first Idle + * idle noeat + "#" pre recolor=-1 + +:pre Preproc + * preproc noeat + " \t" pre + "a-z" preident recolor=-1 buffer + +:preident Preproc + * preproc noeat strings + "define" predef + "include" preinc +done + "a-z" preident + +:preinc Preproc + * preinc + " \t" preinc_ws + "\n" reset + +:preinc_ws Preproc + * prebad recolor=-1 + " \t" preinc_ws + "\"" preinc_local recolor=-1 + "<" preinc_system recolor=-1 + +:preinc_local IncLocal + * preinc_local + "\"\n" reset + +:preinc_system IncSystem + * preinc_system + ">\n" reset + +:prebad Bad + * prebad + "\n" reset + + +:predef Preproc + * predef + " \t" predef_ws + "\n" reset + +:predef_ws Preproc + * prebad recolor=-1 + " \t" predef_ws + "a-zA-Z0-9_" predef_ident recolor=-1 + +:predef_ident Define + * idle noeat + "a-zA-Z0-9_" predef_ident + + +:preproc Preproc + * preproc + "\n" reset + "\\" preproc_cont + "/" preproc_slash + +:preproc_slash Preproc + * preproc noeat + "*" comment recolor=-2 + "/" line_comment recolor=-2 + +:preproc_cont Preproc + * preproc_cont + "\n" preproc + +# All following states are for when we're not in a preprocessor line + +:idle Idle + * idle + ";" line_comment recolor=-1 + "\n" reset + "/" slash + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." maybe_float + "\"" string recolor=-1 + "'" char recolor=-1 + "a-zA-Z_" ident buffer + "{}" brace recolor=-1 + ",:=()><[]*&|!~+\-%^" control recolor=-1 + +:brace Brace + * idle noeat + +:control Control + * idle noeat + +:slash Idle + * idle noeat recolor=-2 # Not sure about this + "*" comment recolor=-2 + "/" line_comment recolor=-2 + +:comment Comment + * comment + "*" maybe_end_comment + +:maybe_end_comment Comment + * comment + "/" idle + "*" maybe_end_comment + +:line_comment Comment + * line_comment + "\n" reset + +:first_digit Constant + * idle noeat + "xX" hex + "." float + "eE" epart + "0-7" octal + "89" bad_number recolor=-1 + +:bad_number Bad + * idle noeat + "0-9" bad_number + +:octal Constant + * idle noeat + "0-7" octal + "89" bad_number recolor=-1 + +:hex Constant + * idle noeat + "0-9A-Fa-f" hex + +:decimal Constant + * idle noeat + "0-9" decimal + "eE" epart + "." float + +:maybe_float Constant + * idle recolor=-2 noeat + "0-9" float recolor=-2 + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +:string Constant + * string + "\"" idle + "\\" string_escape recolor=-1 + "%" string_control recolor=-1 + +:string_escape Escape + * string + "x" string_hex1 + "0-7" string_octal2 + "\n" string recolor=-2 + +:string_hex1 Escape + * string noeat + "0-9a-fA-F" string_hex2 + +:string_hex2 Escape + * string noeat + "0-9a-fA-F" string + +:string_octal2 Escape + * string noeat + "0-7" string_octal3 + +:string_octal3 Escape + * string noeat + "0-7" string + +:string_control Escape + * string_control + "\n" reset + "diouxXeEfFgGaAcspn%SC" string + +:char Constant + * char + "\n" reset + "'" idle + "\\" char_escape recolor=-1 + +:char_escape Escape + * char + "x" char_hex1 + "0-7" char_octal2 + "\n" char recolor=-2 + +:char_hex1 Escape + * char noeat + "0-9a-fA-F" char_hex2 + +:char_hex2 Escape + * char noeat + "0-9a-fA-F" char + +:char_octal2 Escape + * char noeat + "0-7" char_octal3 + +:char_octal3 Escape + * char noeat + "0-7" char + +:ident Idle + * idle noeat + "a-zA-Z0-9_" ident diff --git a/.joe/syntax/avr.jsf b/.joe/syntax/avr.jsf @@ -0,0 +1,195 @@ +# JOE syntax highlight file for AVR assembly language + +=Idle +=Preproc cyan # basic color for directives +=Inc blue # "include" - color +=Def magenta # same for "def" and "equ" +=Definit cyan # text after ".def" or ".equ" +=Macro red # color of word "macro" +=Path cyan # color for include-path +=Com yellow # command +=Comment green # comment-color +=Label red # label + + +:idle Idle + * idle + "." preproc recolor=-1 + ";" comment recolor=-1 + "a-zA-Z_0-9" ident recolor=-1 buffer mark + +:preproc Preproc + * preproc + "a-zA-Z" preident buffer + "\n" idle + ";" comment recolor=-1 + +:preident Preproc + * preproc noeat istrings + "include" preinc + "def" predef + "equ" predef + "macro" premacro + "endmacro" premacro + "endm" premacro +done + "a-zA-Z" preident + ";" comment recolor=-1 + +:preinc Inc + * preinc + " \t" path + "\n" idle + ";" comment recolor=-1 + +:predef Def + * predef + " \t" definition + "\n" idle + ";" comment recolor=-1 + +:definition Definit + * definition + "\n" idle + ";" comment recolor=-1 + +:premacro Macro + * premacro + " \t\n" idle + ";" comment recolor=-1 + +:path Path + * path + "\n" idle + ";" comment recolor=-1 + +:comment Comment + * comment + "\n" idle + +:ident Idle + * idle noeat istrings + "and" com + "andi" com + "eor" com + "or" com + "ori" com + "com" com + "neg" com + "clr" com + "ser" com + "cr" com + "tst" com + "swap" com + "add" com + "adc" com + "adiw" com + "sub" com + "subi" com + "sbc" com + "sbci" com + "sbiw" com + "dec" com + "inc" com + "asr" com + "lsl" com + "lsr" com + "rol" com + "ror" com + "mul" com + "muls" com + "mulsu" com + "fmul" com + "fmuls" com + "fmulsu" com + "cbr" com + "sbr" com + "sbi" com + "cbi" com + "bclr" com + "bset" com + "bld" com + "bst" com + "clc" com + "sec" com + "cln" com + "sen" com + "clz" com + "sez" com + "cli" com + "sei" com + "cls" com + "ses" com + "clv" com + "sev" com + "clt" com + "set" com + "clh" com + "seh" com + "mov" com + "movw" com + "ldi" com + "ld" com + "ldd" com + "lds" com + "st" com + "std" com + "sts" com + "lpm" com + "elpm" com + "spm" com + "espm" com + "in" com + "out" com + "push" com + "pop" com + "rjmp" com + "ijmp" com + "eijmp" com + "jmp" com + "rcall" com + "icall" com + "eicall" com + "call" com + "ret" com + "reti" com + "cp" com + "cpc" com + "cpi" com + "cpse" com + "sbrc" com + "sbrs" com + "sbic" com + "sbis" com + "brbc" com + "brbs" com + "brcs" com + "brcc" com + "breq" com + "brne" com + "brsh" com + "brlo" com + "brmi" com + "brpl" com + "brge" com + "brlt" com + "brhs" com + "brhc" com + "brts" com + "brtc" com + "brvs" com + "brvc" com + "brid" com + "brie" com + "nop" com + "sleep" com + "wdr" com +done + "a-zA-Z0-9_" ident + ":" itslabel recolor=-1 markend recolormark + +:itslabel Label + * idle + +:com Com + * idle noeat diff --git a/.joe/syntax/avr.jsf.in b/.joe/syntax/avr.jsf.in @@ -0,0 +1,195 @@ +# JOE syntax highlight file for AVR assembly language + +=Idle +=Preproc cyan # basic color for directives +=Inc blue # "include" - color +=Def magenta # same for "def" and "equ" +=Definit cyan # text after ".def" or ".equ" +=Macro red # color of word "macro" +=Path cyan # color for include-path +=Com yellow # command +=Comment green # comment-color +=Label red # label + + +:idle Idle + * idle + "." preproc recolor=-1 + ";" comment recolor=-1 + "a-zA-Z_0-9" ident recolor=-1 buffer mark + +:preproc Preproc + * preproc + "a-zA-Z" preident buffer + "\n" idle + ";" comment recolor=-1 + +:preident Preproc + * preproc noeat istrings + "include" preinc + "def" predef + "equ" predef + "macro" premacro + "endmacro" premacro + "endm" premacro +done + "a-zA-Z" preident + ";" comment recolor=-1 + +:preinc Inc + * preinc + " \t" path + "\n" idle + ";" comment recolor=-1 + +:predef Def + * predef + " \t" definition + "\n" idle + ";" comment recolor=-1 + +:definition Definit + * definition + "\n" idle + ";" comment recolor=-1 + +:premacro Macro + * premacro + " \t\n" idle + ";" comment recolor=-1 + +:path Path + * path + "\n" idle + ";" comment recolor=-1 + +:comment Comment + * comment + "\n" idle + +:ident Idle + * idle noeat istrings + "and" com + "andi" com + "eor" com + "or" com + "ori" com + "com" com + "neg" com + "clr" com + "ser" com + "cr" com + "tst" com + "swap" com + "add" com + "adc" com + "adiw" com + "sub" com + "subi" com + "sbc" com + "sbci" com + "sbiw" com + "dec" com + "inc" com + "asr" com + "lsl" com + "lsr" com + "rol" com + "ror" com + "mul" com + "muls" com + "mulsu" com + "fmul" com + "fmuls" com + "fmulsu" com + "cbr" com + "sbr" com + "sbi" com + "cbi" com + "bclr" com + "bset" com + "bld" com + "bst" com + "clc" com + "sec" com + "cln" com + "sen" com + "clz" com + "sez" com + "cli" com + "sei" com + "cls" com + "ses" com + "clv" com + "sev" com + "clt" com + "set" com + "clh" com + "seh" com + "mov" com + "movw" com + "ldi" com + "ld" com + "ldd" com + "lds" com + "st" com + "std" com + "sts" com + "lpm" com + "elpm" com + "spm" com + "espm" com + "in" com + "out" com + "push" com + "pop" com + "rjmp" com + "ijmp" com + "eijmp" com + "jmp" com + "rcall" com + "icall" com + "eicall" com + "call" com + "ret" com + "reti" com + "cp" com + "cpc" com + "cpi" com + "cpse" com + "sbrc" com + "sbrs" com + "sbic" com + "sbis" com + "brbc" com + "brbs" com + "brcs" com + "brcc" com + "breq" com + "brne" com + "brsh" com + "brlo" com + "brmi" com + "brpl" com + "brge" com + "brlt" com + "brhs" com + "brhc" com + "brts" com + "brtc" com + "brvs" com + "brvc" com + "brid" com + "brie" com + "nop" com + "sleep" com + "wdr" com +done + "a-zA-Z0-9_" ident + ":" itslabel recolor=-1 markend recolormark + +:itslabel Label + * idle + +:com Com + * idle noeat diff --git a/.joe/syntax/awk.jsf b/.joe/syntax/awk.jsf @@ -0,0 +1,231 @@ +# JOE syntax highlight file for AWK + +# Resync whole file +- + +=Idle +=Bad bold red +=Preproc blue +=Define bold blue +=Comment green +=IncLocal cyan +=IncSystem bold cyan +=Constant cyan +=Escape bold cyan +=Type bold +=Keyword bold +=CppKeyword bold +=Brace magenta +=Control + +:reset Idle + * first noeat + " \t" reset + +:first Idle + * idle noeat + "/" regex + "#" reset_line_comment recolor=-1 + +:regex Idle + * regex + "/" idle + "\\" regex_skip + +:regex_skip Idle + * regex + +:reset_line_comment Comment + * reset_line_comment + "\n" reset + +:idle Idle + * idle + "\n" reset + "#" line_comment recolor=-1 + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." maybe_float + "\"" string recolor=-1 + "'" char recolor=-1 + "a-zA-Z_" ident buffer + "{}" brace recolor=-1 + "/,:;=()><[]*&|!~+\-%^" control recolor=-1 + +:brace Brace + * idle noeat + +:control Control + * idle noeat + +:line_comment Comment + * line_comment + "\n" reset + +:first_digit Constant + * idle noeat + "xX" hex + "." float + "eE" epart + "0-7" octal + "89" bad_number recolor=-1 + +:bad_number Bad + * idle noeat + "0-9" bad_number + +:octal Constant + * idle noeat + "0-7" octal + "89" bad_number recolor=-1 + +:hex Constant + * idle noeat + "0-9A-Fa-f" hex + +:decimal Constant + * idle noeat + "0-9" decimal + "eE" epart + "." float + +:maybe_float Constant + * idle recolor=-2 noeat + "0-9" float recolor=-2 + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +:string Constant + * string + "\"" idle + "\\" string_escape recolor=-1 + "%" string_control recolor=-1 + +:string_escape Escape + * string + "x" string_hex1 + "0-7" string_octal2 + "\n" string recolor=-2 + +:string_hex1 Escape + * string noeat + "0-9a-fA-F" string_hex2 + +:string_hex2 Escape + * string noeat + "0-9a-fA-F" string + +:string_octal2 Escape + * string noeat + "0-7" string_octal3 + +:string_octal3 Escape + * string noeat + "0-7" string + +:string_control Escape + * string + "\"" string noeat + "\n" reset + "0-9.\-+ #hjILtz$" string_control + +:char Constant + * char + "\n" reset + "'" idle + "\\" char_escape recolor=-1 + +:char_escape Escape + * char + "x" char_hex1 + "0-7" char_octal2 + "\n" char recolor=-2 + +:char_hex1 Escape + * char noeat + "0-9a-fA-F" char_hex2 + +:char_hex2 Escape + * char noeat + "0-9a-fA-F" char + +:char_octal2 Escape + * char noeat + "0-7" char_octal3 + +:char_octal3 Escape + * char noeat + "0-7" char + +:ident Idle + * idle noeat strings + "if" kw + "else" kw + "while" kw + "do" kw + "for" kw + "break" kw + "continue" kw + "delete" kw + "exit" kw + "close" kw + "getline" kw + "next" kw + "nextfile" kw + "print" kw + "printf" kw + "system" kw + "fflush" kw + "atan2" kw + "cos" kw + "exp" kw + "int" kw + "log" kw + "rand" kw + "sin" kw + "sqrt" kw + "srand" kw + "asort" kw + "asorti" kw + "gensub" kw + "gsub" kw + "index" kw + "length" kw + "match" kw + "split" kw + "sprintf" kw + "strtonum" kw + "sub" kw + "substr" kw + "tolower" kw + "toupper" kw + "mktime" kw + "strftime" kw + "systime" kw + "and" kw + "compl" kw + "lshift" kw + "or" kw + "rshift" kw + "xor" kw + "bindtextdomain" kw + "dcgettext" kw + "dcngettext" kw + "function" kw + "return" kw +done + "a-zA-Z0-9_" ident + +:kw Keyword + * idle noeat diff --git a/.joe/syntax/awk.jsf.in b/.joe/syntax/awk.jsf.in @@ -0,0 +1,231 @@ +# JOE syntax highlight file for AWK + +# Resync whole file +- + +=Idle +=Bad bold red +=Preproc blue +=Define bold blue +=Comment green +=IncLocal cyan +=IncSystem bold cyan +=Constant cyan +=Escape bold cyan +=Type bold +=Keyword bold +=CppKeyword bold +=Brace magenta +=Control + +:reset Idle + * first noeat + " \t" reset + +:first Idle + * idle noeat + "/" regex + "#" reset_line_comment recolor=-1 + +:regex Idle + * regex + "/" idle + "\\" regex_skip + +:regex_skip Idle + * regex + +:reset_line_comment Comment + * reset_line_comment + "\n" reset + +:idle Idle + * idle + "\n" reset + "#" line_comment recolor=-1 + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." maybe_float + "\"" string recolor=-1 + "'" char recolor=-1 + "a-zA-Z_" ident buffer + "{}" brace recolor=-1 + "/,:;=()><[]*&|!~+\-%^" control recolor=-1 + +:brace Brace + * idle noeat + +:control Control + * idle noeat + +:line_comment Comment + * line_comment + "\n" reset + +:first_digit Constant + * idle noeat + "xX" hex + "." float + "eE" epart + "0-7" octal + "89" bad_number recolor=-1 + +:bad_number Bad + * idle noeat + "0-9" bad_number + +:octal Constant + * idle noeat + "0-7" octal + "89" bad_number recolor=-1 + +:hex Constant + * idle noeat + "0-9A-Fa-f" hex + +:decimal Constant + * idle noeat + "0-9" decimal + "eE" epart + "." float + +:maybe_float Constant + * idle recolor=-2 noeat + "0-9" float recolor=-2 + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +:string Constant + * string + "\"" idle + "\\" string_escape recolor=-1 + "%" string_control recolor=-1 + +:string_escape Escape + * string + "x" string_hex1 + "0-7" string_octal2 + "\n" string recolor=-2 + +:string_hex1 Escape + * string noeat + "0-9a-fA-F" string_hex2 + +:string_hex2 Escape + * string noeat + "0-9a-fA-F" string + +:string_octal2 Escape + * string noeat + "0-7" string_octal3 + +:string_octal3 Escape + * string noeat + "0-7" string + +:string_control Escape + * string + "\"" string noeat + "\n" reset + "0-9.\-+ #hjILtz$" string_control + +:char Constant + * char + "\n" reset + "'" idle + "\\" char_escape recolor=-1 + +:char_escape Escape + * char + "x" char_hex1 + "0-7" char_octal2 + "\n" char recolor=-2 + +:char_hex1 Escape + * char noeat + "0-9a-fA-F" char_hex2 + +:char_hex2 Escape + * char noeat + "0-9a-fA-F" char + +:char_octal2 Escape + * char noeat + "0-7" char_octal3 + +:char_octal3 Escape + * char noeat + "0-7" char + +:ident Idle + * idle noeat strings + "if" kw + "else" kw + "while" kw + "do" kw + "for" kw + "break" kw + "continue" kw + "delete" kw + "exit" kw + "close" kw + "getline" kw + "next" kw + "nextfile" kw + "print" kw + "printf" kw + "system" kw + "fflush" kw + "atan2" kw + "cos" kw + "exp" kw + "int" kw + "log" kw + "rand" kw + "sin" kw + "sqrt" kw + "srand" kw + "asort" kw + "asorti" kw + "gensub" kw + "gsub" kw + "index" kw + "length" kw + "match" kw + "split" kw + "sprintf" kw + "strtonum" kw + "sub" kw + "substr" kw + "tolower" kw + "toupper" kw + "mktime" kw + "strftime" kw + "systime" kw + "and" kw + "compl" kw + "lshift" kw + "or" kw + "rshift" kw + "xor" kw + "bindtextdomain" kw + "dcgettext" kw + "dcngettext" kw + "function" kw + "return" kw +done + "a-zA-Z0-9_" ident + +:kw Keyword + * idle noeat diff --git a/.joe/syntax/batch.jsf b/.joe/syntax/batch.jsf @@ -0,0 +1,154 @@ +# JOE syntax highlight file for Windows batch scripts + +=Idle +=Comment green +=Command bold +=Statement bold cyan +=Brace magenta +=Variable blue +=Label bold blue + +:reset Idle + * linebegin noeat + " \t\r\n" reset + +:linebegin Idle + * stmtorcommand noeat buffer + ":" labelorcomment + "@" linebegin + "%" args call=.variable() recolor=-1 + "\"" qargs recolor=-1 + "'" sqargs recolor=-1 # These two encountered in + "`" bqargs recolor=-1 # certain varieties of for-loops + +:stmtorcommand Command + * command noeat istrings + "call" stmt + "cd" stmt + "chdir" stmt + "cls" stmt + "copy" stmt + "del" stmt + "dir" stmt + "echo" echostmt + "echo." echostmt + "endlocal" stmt + "erase" stmt + "exit" stmt + "for" stmt + "goto" stmt + "if" stmt + "move" stmt + "pause" stmt + "popd" stmt + "pushd" stmt + "rd" stmt + "rem" comment + "ren" stmt + "rename" stmt + "rmdir" stmt + "set" stmt + "setlocal" stmt + "setx" stmt + "shift" stmt + "sleep" stmt + "start" stmt + "type" stmt + "xcopy" stmt +done + "a-zA-Z." stmtorcommand + "\"\\_0-9" command + ")" rparen recolor=-1 + +:labelorcomment Idle + * label recolor=-2 + ":" comment recolor=-2 + +:label Label + * label + "\r\n" reset + +:comment Comment + * comment + "\r\n" reset + +:stmt Statement + * args noeat + +:echostmt Statement + * echoargs noeat + +:echoargs Idle + * echoargs + "%" echoargs call=.variable() recolor=-1 + "&" and recolor=-1 + "\r\n" reset + +:command Command + * command + "\"" qcommand + " \t" args + "\r\n" reset + +:qcommand Command + * qcommand + "\"" command + "\r\n" reset + +:args Idle + * args + "%" args call=.variable() recolor=-1 + "(" lparen recolor=-1 + ")" rparen recolor=-1 + "\r\n" reset + "\"" qargs + "&" and recolor=-1 + +# Double-quoted args +:qargs Idle + * qargs + "\"" args + "%" qargs call=.variable() recolor=-1 + "\r\n" reset + +# Single-quoted args +:sqargs Idle + * sqargs + "'" args + "%" sqargs call=.variable() recolor=-1 + "\r\n" reset + +# Back-quoted (`) args, found in some for-loops +:bqargs Idle + * bqargs + "`" args + "%" bqargs call=.variable() recolor=-1 + "\r\n" reset + +:and Idle + * reset noeat + +:lparen Brace + * linebegin noeat + +:rparen Brace + * args noeat + +.subr variable + +:variable Variable + * args noeat return + "%~" shortvar + "\*" noeat return + "0-9" variable return + "A-Za-z_" varbody + +:shortvar Variable + * args noeat return + "A-Za-z0-9_" shortvar + +:varbody Variable + * varbody + "%" args return + +.end diff --git a/.joe/syntax/batch.jsf.in b/.joe/syntax/batch.jsf.in @@ -0,0 +1,154 @@ +# JOE syntax highlight file for Windows batch scripts + +=Idle +=Comment green +=Command bold +=Statement bold cyan +=Brace magenta +=Variable blue +=Label bold blue + +:reset Idle + * linebegin noeat + " \t\r\n" reset + +:linebegin Idle + * stmtorcommand noeat buffer + ":" labelorcomment + "@" linebegin + "%" args call=.variable() recolor=-1 + "\"" qargs recolor=-1 + "'" sqargs recolor=-1 # These two encountered in + "`" bqargs recolor=-1 # certain varieties of for-loops + +:stmtorcommand Command + * command noeat istrings + "call" stmt + "cd" stmt + "chdir" stmt + "cls" stmt + "copy" stmt + "del" stmt + "dir" stmt + "echo" echostmt + "echo." echostmt + "endlocal" stmt + "erase" stmt + "exit" stmt + "for" stmt + "goto" stmt + "if" stmt + "move" stmt + "pause" stmt + "popd" stmt + "pushd" stmt + "rd" stmt + "rem" comment + "ren" stmt + "rename" stmt + "rmdir" stmt + "set" stmt + "setlocal" stmt + "setx" stmt + "shift" stmt + "sleep" stmt + "start" stmt + "type" stmt + "xcopy" stmt +done + "a-zA-Z." stmtorcommand + "\"\\_0-9" command + ")" rparen recolor=-1 + +:labelorcomment Idle + * label recolor=-2 + ":" comment recolor=-2 + +:label Label + * label + "\r\n" reset + +:comment Comment + * comment + "\r\n" reset + +:stmt Statement + * args noeat + +:echostmt Statement + * echoargs noeat + +:echoargs Idle + * echoargs + "%" echoargs call=.variable() recolor=-1 + "&" and recolor=-1 + "\r\n" reset + +:command Command + * command + "\"" qcommand + " \t" args + "\r\n" reset + +:qcommand Command + * qcommand + "\"" command + "\r\n" reset + +:args Idle + * args + "%" args call=.variable() recolor=-1 + "(" lparen recolor=-1 + ")" rparen recolor=-1 + "\r\n" reset + "\"" qargs + "&" and recolor=-1 + +# Double-quoted args +:qargs Idle + * qargs + "\"" args + "%" qargs call=.variable() recolor=-1 + "\r\n" reset + +# Single-quoted args +:sqargs Idle + * sqargs + "'" args + "%" sqargs call=.variable() recolor=-1 + "\r\n" reset + +# Back-quoted (`) args, found in some for-loops +:bqargs Idle + * bqargs + "`" args + "%" bqargs call=.variable() recolor=-1 + "\r\n" reset + +:and Idle + * reset noeat + +:lparen Brace + * linebegin noeat + +:rparen Brace + * args noeat + +.subr variable + +:variable Variable + * args noeat return + "%~" shortvar + "\*" noeat return + "0-9" variable return + "A-Za-z_" varbody + +:shortvar Variable + * args noeat return + "A-Za-z0-9_" shortvar + +:varbody Variable + * varbody + "%" args return + +.end diff --git a/.joe/syntax/c.jsf b/.joe/syntax/c.jsf @@ -0,0 +1,515 @@ +# JOE syntax highlight file for C and C++ + +# A (deterministic) state machine which performs lexical analysis of C. +# (This is the "assembly language" of syntax highlighting. A separate +# program could be used to convert a regular expression NFA syntax into this +# format). + +# Each state begins with ':<name> <color-name> <context>' +# +# <color-name> is the color used for characters eaten by the state +# (really a symbol for a user definable color). +# +# <context> tells JOE if the current character is part of a comment or a string. +# This allows JOE to skip over comments and strings when matching characters +# such as parentheses. To use this feature, the -highlighter_context option +# must be applied to the files highlighted by the corresponding syntax. To +# apply the option, add it to ftyperc for those file entries. +# +# The valid contexts are: +# comment This character is part of a comment. Example: /* comment */ +# +# string This character is part of a string. Examples: "string" 'c' 'string' +# +# The comment and string delimiters themselves should be marked with the +# appropriate context. The context is considered to be part of the color, so +# the recolor=-N and recolormark options apply the context to previous +# characters. + +# The first state defined is the initial state. + +# Within a state, define transitions (jumps) to other states. Each +# jump has the form: <character-list> <target-state> [<option>s] + +# There are three ways to specify <character-list>s, either * for any +# character not otherwise specified, % or & to match the character in the +# delimiter match buffer or a literal list of characters within quotes +# (ranges and escape sequences allowed). When the next character matches +# any in the list, a jump to the target-state is taken and the character is +# eaten (we advance to the next character of the file to be colored). +# +# The * transition should be the first transition specified in the state. +# +# There are several options: +# noeat do not eat the character, instead feed it to the next state +# (this tends to make the states smaller, but be careful: you +# can make infinite loops). 'noeat' implies 'recolor=-1'. +# +# recolor=-N Recolor the past N characters with the color of the +# target-state. For example once /* is recognized as the +# start of C comment, you want to color the /* with the C +# comment color with recolor=-2. +# +# mark Mark beginning of a region with current position. +# +# markend Mark end of region. +# +# recolormark Recolor all of the characters in the marked region with +# the color of the target-state. If markend is not given, +# all of the characters up to the current position are recolored. +# Note that the marked region can not cross line boundaries and +# must be on the same line as recolormark. +# +# buffer start copying characters to a string buffer, beginning with this +# one (it's ok to not terminate buffering with a matching +# 'strings' option- the buffer is limited to leading 23 +# characters). +# +# save_c Save character in delimiter match buffer. +# +# save_s Copy string buffer to delimiter match buffer. +# +# strings A list of strings follows. If the buffer matches any of the +# given strings, a jump to the target-state in the string list +# is taken instead of the normal jump. +# +# istrings Same as strings, but case is ignored. +# +# Note: strings and istrings should be the last option on the +# line. They cause any options which follow them to be ignored. +# +# hold Stop buffering string- a future 'strings' or 'istrings' will +# look at contents of buffer at this point. Useful for distinguishing +# commands and function calls in some languages 'write 7' is a command +# 'write (' is a function call- hold lets us stop at the space and delay +# the string lookup until the ( or 7. +# +# The format of the string list is: +# +# "string" <target-state> [<options>s] +# "string" <target-state> [<options>s] +# "&" <target-state> [<options>s] # matches contents of delimiter match buffer +# done +# +# (all of the options above are allowed except "strings", "istrings" and "noeat". noeat is +# always implied after a matched string). +# +# Weirdness: only states have colors, not transitions. This means that you +# sometimes have to make dummy states with '* next-state noeat' just to get +# a color specification. +# +# Delimiter match buffer is for perl and shell: a regex in perl can be s<..>(...) +# and in shell you can say: <<EOS ....... EOS + +# New feature: subroutines +# +# Highlighter state machines can now make subroutine calls. The highlighter has +# a run-time stack that allows unlimited recursion. +# +# To call a subroutine, use the 'call' option: +# +# "\"" fred call=string(dquote) +# +# The subroutine called 'string' is called and the jump to 'fred' is +# ignored. The 'dquote' option is passed to the subroutine. +# +# The subroutine itself returns to the caller like this: +# "\"" whatever return +# +# If we're in a subroutine, the return is made. Otherwise the jump +# to 'whatever' is made. +# +# There are several ways of delimiting subroutines which show up in how it +# is called. Here are the options: +# +# call=string() A file called string.jsf is the subroutine. +# The entire file is the subroutine. The starting +# point is the first state in the file. +# +# call=library.string() A file called library.jsf has the subroutine. +# The subroutine within the file is called string. +# +# call=.string() There is a subroutine called string in the current file. +# +# When a subroutine is within a file, but is not the whole file, it is delimited +# as follows: +# +# .subr string +# +# . . . states for string subroutine . . . +# +# .end +# +# Option flags can be passed to subroutines which control preprocessor-like +# directives. For example: +# +# .ifdef dquote +# "\"" idle return +# .endif +# .ifdef squote +# "'" idle return +# .endif +# +# .else if also available. .ifdefs can be nested. + + +# Obsolete feature: the sync lines specification no longer matter. We now always parse +# from the beginning of the file. Here is the old description: +# +# Define no. sync lines +# You can say: +# -200 means 200 lines +# - means always start parsing from beginning of file when we lose sync +# if nothing is specified, the default is -50 +- + +# Define colors and attributes. Give a list of attributes, one +# background color and one foreground color (default is used if +# color is left out). +# +# Attributes: +# bold inverse blink dim underline italic +# +# Standard colors: +# +# Foreground: +# white cyan magenta blue yellow green red black +# +# Background: +# bg_white bg_cyan bg_magenta bg_blue bg_yellow bg_green bg_red bg_black +# +# For 16 color and 256 color xterms: "export TERM=xterm-16color", these +# brighter than normal colors are available: +# +# Note that you need an xterm which was compiled to support 16 or 256 colors +# and a matching termcap/terminfo entry for it. +# +# Foreground: +# WHITE CYAN MAGENTA BLUE YELLOW GREEN RED BLACK +# +# Background: +# bg_WHITE bg_CYAN bg_MAGENTA bg_BLUE bg_YELLOW bg_GREEN bg_RED bg_BLACK +# +# For 256 color xterm: "export TERM=xterm-256color", these become available: +# +# Note that you need an xterm which was compiled to support 256 colors and a +# matching termcap/terminfo entry for it. +# +# fg_RGB and bg_RGB, where R, G, and B range from 0 - 5. So: fg_500 is bright red. +# +# fg_NN and bg_NN give shades of grey, where the intensity, NN, ranges from 0 - 23. + +=Idle +=Bad bold red +=Preproc blue +=Define bold blue +=Comment red +=IncLocal cyan +=IncSystem bold cyan +=Constant magenta +=Escape bold cyan +=Type bold +=Keyword bold +=CppKeyword bold +=Brace green +=Control cyan + +:reset Idle + * first noeat + " \t" reset + +:first Idle + * idle noeat + "#" pre recolor=-1 + +:pre Preproc + * preproc noeat + " \t" pre + "a-z" preident recolor=-1 buffer + +:preident Preproc + * preproc noeat strings + "define" predef + "include" preinc +done + "a-z" preident + +:preinc Preproc + * preinc + " \t" preinc_ws + "\n" reset + +:preinc_ws Preproc + * prebad recolor=-1 + " \t" preinc_ws + "\"" preinc_local recolor=-1 + "<" preinc_system recolor=-1 + +:preinc_local IncLocal string + * preinc_local + "\"\n" reset + +:preinc_system IncSystem string + * preinc_system + ">\n" reset + +:prebad Bad + * prebad + "\n" reset + + +:predef Preproc + * predef + " \t" predef_ws + "\n" reset + +:predef_ws Preproc + * prebad recolor=-1 + " \t" predef_ws + "\c" predef_ident recolor=-1 + +:predef_ident Define + * idle noeat + "\c" predef_ident + + +:preproc Preproc + * preproc + "\n" reset + "\\" preproc_cont + "/" preproc_slash + +:preproc_slash Preproc + * preproc noeat + "*" comment recolor=-2 + "/" line_comment recolor=-2 + +:preproc_cont Preproc + * preproc_cont + "\n" preproc + +# All following states are for when we're not in a preprocessor line + +:idle Idle + * idle + "\n" reset + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." maybe_float + "\"" string recolor=-1 + "'" char recolor=-1 + "\i" ident buffer + "\\" outside_escape recolor=-1 + "{}:,;" brace recolor=-1 + ",=()><[]*&|!~+\-%^\/" control recolor=-1 + "/" slash + + +:outside_escape Escape + * idle + +:brace Brace + * idle noeat + +:control Control + * idle noeat + +:slash Idle + * idle noeat recolor=-2 # Not sure about this + "*" comment recolor=-2 + "/" line_comment recolor=-2 + +:comment Comment comment + * comment + "*" maybe_end_comment + +:maybe_end_comment Comment comment + * comment + "/" idle + "*" maybe_end_comment + +:line_comment Comment comment + * line_comment + "\n" reset + +:first_digit Constant + * idle noeat + "xX" hex + "." float + "eE" epart + "0-7" octal + "89" bad_number recolor=-1 + +:bad_number Bad + * idle noeat + "0-9" bad_number + +:octal Constant + * idle noeat + "0-7" octal + "89" bad_number recolor=-1 + +:hex Constant + * idle noeat + "0-9A-Fa-f" hex + +:decimal Constant + * idle noeat + "0-9" decimal + "eE" epart + "." float + +:maybe_float Constant + * idle recolor=-2 noeat + "0-9" float recolor=-2 + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +:string Constant string + * string + "\"" idle + "\\" string_escape recolor=-1 + "%" string_control recolor=-1 + +:string_escape Escape string + * string + "x" string_hex + "0-7" string_octal2 + "\n" string recolor=-2 + +# \x will consume all successive hex digits (ANSI C). +:string_hex Escape string + * string noeat + "0-9a-fA-F" string_hex + +:string_octal2 Escape string + * string noeat + "0-7" string_octal3 + +:string_octal3 Escape string + * string noeat + "0-7" string + +:string_control Escape string + * string + "\"" string noeat + "\n" reset + "\\" string_escape recolor=-1 + "0-9.\-+ #hjILtz$" string_control + +:char Constant string + * char + "\n" reset + "'" idle + "\\" char_escape recolor=-1 + +:char_escape Escape string + * char + "x" char_hex + "0-7" char_octal2 + "\n" char recolor=-2 + +# \x will consume all successive hex digits (ANSI C). +:char_hex Escape string + * char noeat + "0-9a-fA-F" char_hex + +:char_octal2 Escape string + * char noeat + "0-7" char_octal3 + +:char_octal3 Escape string + * char noeat + "0-7" char + +:ident Idle + * idle noeat strings + "int" type + "float" type + "long" type + "short" type + "char" type + "double" type + "signed" type + "unsigned" type + "void" type + "static" type + "register" type + "extern" type + "inline" type + "auto" type + "const" type + "volatile" type + "if" kw + "else" kw + "while" kw + "for" kw + "break" kw + "continue" kw + "do" kw + "case" kw + "default" kw + "switch" kw + "goto" kw + "struct" kw + "enum" kw + "return" kw + "sizeof" kw + "typedef" kw + "union" kw + "asm" kw +# C++ keywords + #"asm" cppkw (listed above as a C keyword) + "bool" cppkw + "catch" cppkw + "class" cppkw + "const_cast" cppkw + "delete" cppkw + "dynamic_cast" cppkw + "explicit" cppkw + "false" cppkw + "friend" cppkw + #"inline" cppkw (listed above as a C keyword) + "mutable" cppkw + "namespace" cppkw + "new" cppkw + "operator" cppkw + "private" cppkw + "protected" cppkw + "public" cppkw + "reinterpret_cast" cppkw + "static_cast" cppkw + "template" cppkw + "this" cppkw + "throw" cppkw + "true" cppkw + "try" cppkw + "typeid" cppkw + "typename" cppkw + "using" cppkw + "virtual" cppkw + "wchar_t" type +# Non-Standard + "typeof" cppkw +done + "\c" ident + +:type Type + * idle noeat + +:kw Keyword + * idle noeat + +:cppkw CppKeyword + * idle noeat diff --git a/.joe/syntax/c.jsf.in b/.joe/syntax/c.jsf.in @@ -0,0 +1,514 @@ +# JOE syntax highlight file for C and C++ + +# A (deterministic) state machine which performs lexical analysis of C. +# (This is the "assembly language" of syntax highlighting. A separate +# program could be used to convert a regular expression NFA syntax into this +# format). + +# Each state begins with ':<name> <color-name> <context>' +# +# <color-name> is the color used for characters eaten by the state +# (really a symbol for a user definable color). +# +# <context> tells JOE if the current character is part of a comment or a string. +# This allows JOE to skip over comments and strings when matching characters +# such as parentheses. To use this feature, the -highlighter_context option +# must be applied to the files highlighted by the corresponding syntax. To +# apply the option, add it to ftyperc for those file entries. +# +# The valid contexts are: +# comment This character is part of a comment. Example: /* comment */ +# +# string This character is part of a string. Examples: "string" 'c' 'string' +# +# The comment and string delimiters themselves should be marked with the +# appropriate context. The context is considered to be part of the color, so +# the recolor=-N and recolormark options apply the context to previous +# characters. + +# The first state defined is the initial state. + +# Within a state, define transitions (jumps) to other states. Each +# jump has the form: <character-list> <target-state> [<option>s] + +# There are three ways to specify <character-list>s, either * for any +# character not otherwise specified, % or & to match the character in the +# delimiter match buffer or a literal list of characters within quotes +# (ranges and escape sequences allowed). When the next character matches +# any in the list, a jump to the target-state is taken and the character is +# eaten (we advance to the next character of the file to be colored). +# +# The * transition should be the first transition specified in the state. +# +# There are several options: +# noeat do not eat the character, instead feed it to the next state +# (this tends to make the states smaller, but be careful: you +# can make infinite loops). 'noeat' implies 'recolor=-1'. +# +# recolor=-N Recolor the past N characters with the color of the +# target-state. For example once /* is recognized as the +# start of C comment, you want to color the /* with the C +# comment color with recolor=-2. +# +# mark Mark beginning of a region with current position. +# +# markend Mark end of region. +# +# recolormark Recolor all of the characters in the marked region with +# the color of the target-state. If markend is not given, +# all of the characters up to the current position are recolored. +# Note that the marked region can not cross line boundaries and +# must be on the same line as recolormark. +# +# buffer start copying characters to a string buffer, beginning with this +# one (it's ok to not terminate buffering with a matching +# 'strings' option- the buffer is limited to leading 23 +# characters). +# +# save_c Save character in delimiter match buffer. +# +# save_s Copy string buffer to delimiter match buffer. +# +# strings A list of strings follows. If the buffer matches any of the +# given strings, a jump to the target-state in the string list +# is taken instead of the normal jump. +# +# istrings Same as strings, but case is ignored. +# +# Note: strings and istrings should be the last option on the +# line. They cause any options which follow them to be ignored. +# +# hold Stop buffering string- a future 'strings' or 'istrings' will +# look at contents of buffer at this point. Useful for distinguishing +# commands and function calls in some languages 'write 7' is a command +# 'write (' is a function call- hold lets us stop at the space and delay +# the string lookup until the ( or 7. +# +# The format of the string list is: +# +# "string" <target-state> [<options>s] +# "string" <target-state> [<options>s] +# "&" <target-state> [<options>s] # matches contents of delimiter match buffer +# done +# +# (all of the options above are allowed except "strings", "istrings" and "noeat". noeat is +# always implied after a matched string). +# +# Weirdness: only states have colors, not transitions. This means that you +# sometimes have to make dummy states with '* next-state noeat' just to get +# a color specification. +# +# Delimiter match buffer is for perl and shell: a regex in perl can be s<..>(...) +# and in shell you can say: <<EOS ....... EOS + +# New feature: subroutines +# +# Highlighter state machines can now make subroutine calls. The highlighter has +# a run-time stack that allows unlimited recursion. +# +# To call a subroutine, use the 'call' option: +# +# "\"" fred call=string(dquote) +# +# The subroutine called 'string' is called and the jump to 'fred' is +# ignored. The 'dquote' option is passed to the subroutine. +# +# The subroutine itself returns to the caller like this: +# "\"" whatever return +# +# If we're in a subroutine, the return is made. Otherwise the jump +# to 'whatever' is made. +# +# There are several ways of delimiting subroutines which show up in how it +# is called. Here are the options: +# +# call=string() A file called string.jsf is the subroutine. +# The entire file is the subroutine. The starting +# point is the first state in the file. +# +# call=library.string() A file called library.jsf has the subroutine. +# The subroutine within the file is called string. +# +# call=.string() There is a subroutine called string in the current file. +# +# When a subroutine is within a file, but is not the whole file, it is delimited +# as follows: +# +# .subr string +# +# . . . states for string subroutine . . . +# +# .end +# +# Option flags can be passed to subroutines which control preprocessor-like +# directives. For example: +# +# .ifdef dquote +# "\"" idle return +# .endif +# .ifdef squote +# "'" idle return +# .endif +# +# .else if also available. .ifdefs can be nested. + + +# Obsolete feature: the sync lines specification no longer matter. We now always parse +# from the beginning of the file. Here is the old description: +# +# Define no. sync lines +# You can say: +# -200 means 200 lines +# - means always start parsing from beginning of file when we lose sync +# if nothing is specified, the default is -50 +- + +# Define colors and attributes. Give a list of attributes, one +# background color and one foreground color (default is used if +# color is left out). +# +# Attributes: +# bold inverse blink dim underline italic +# +# Standard colors: +# +# Foreground: +# white cyan magenta blue yellow green red black +# +# Background: +# bg_white bg_cyan bg_magenta bg_blue bg_yellow bg_green bg_red bg_black +# +# For 16 color and 256 color xterms: "export TERM=xterm-16color", these +# brighter than normal colors are available: +# +# Note that you need an xterm which was compiled to support 16 or 256 colors +# and a matching termcap/terminfo entry for it. +# +# Foreground: +# WHITE CYAN MAGENTA BLUE YELLOW GREEN RED BLACK +# +# Background: +# bg_WHITE bg_CYAN bg_MAGENTA bg_BLUE bg_YELLOW bg_GREEN bg_RED bg_BLACK +# +# For 256 color xterm: "export TERM=xterm-256color", these become available: +# +# Note that you need an xterm which was compiled to support 256 colors and a +# matching termcap/terminfo entry for it. +# +# fg_RGB and bg_RGB, where R, G, and B range from 0 - 5. So: fg_500 is bright red. +# +# fg_NN and bg_NN give shades of grey, where the intensity, NN, ranges from 0 - 23. + +=Idle +=Bad bold red +=Preproc blue +=Define bold blue +=Comment green +=IncLocal cyan +=IncSystem bold cyan +=Constant cyan +=Escape bold cyan +=Type bold +=Keyword bold +=CppKeyword bold +=Brace magenta +=Control + +:reset Idle + * first noeat + " \t" reset + +:first Idle + * idle noeat + "#" pre recolor=-1 + +:pre Preproc + * preproc noeat + " \t" pre + "a-z" preident recolor=-1 buffer + +:preident Preproc + * preproc noeat strings + "define" predef + "include" preinc +done + "a-z" preident + +:preinc Preproc + * preinc + " \t" preinc_ws + "\n" reset + +:preinc_ws Preproc + * prebad recolor=-1 + " \t" preinc_ws + "\"" preinc_local recolor=-1 + "<" preinc_system recolor=-1 + +:preinc_local IncLocal string + * preinc_local + "\"\n" reset + +:preinc_system IncSystem string + * preinc_system + ">\n" reset + +:prebad Bad + * prebad + "\n" reset + + +:predef Preproc + * predef + " \t" predef_ws + "\n" reset + +:predef_ws Preproc + * prebad recolor=-1 + " \t" predef_ws + "\c" predef_ident recolor=-1 + +:predef_ident Define + * idle noeat + "\c" predef_ident + + +:preproc Preproc + * preproc + "\n" reset + "\\" preproc_cont + "/" preproc_slash + +:preproc_slash Preproc + * preproc noeat + "*" comment recolor=-2 + "/" line_comment recolor=-2 + +:preproc_cont Preproc + * preproc_cont + "\n" preproc + +# All following states are for when we're not in a preprocessor line + +:idle Idle + * idle + "\n" reset + "/" slash + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." maybe_float + "\"" string recolor=-1 + "'" char recolor=-1 + "\i" ident buffer + "\\" outside_escape recolor=-1 + "{}" brace recolor=-1 + ",:;=()><[]*&|!~+\-%^" control recolor=-1 + +:outside_escape Escape + * idle + +:brace Brace + * idle noeat + +:control Control + * idle noeat + +:slash Idle + * idle noeat recolor=-2 # Not sure about this + "*" comment recolor=-2 + "/" line_comment recolor=-2 + +:comment Comment comment + * comment + "*" maybe_end_comment + +:maybe_end_comment Comment comment + * comment + "/" idle + "*" maybe_end_comment + +:line_comment Comment comment + * line_comment + "\n" reset + +:first_digit Constant + * idle noeat + "xX" hex + "." float + "eE" epart + "0-7" octal + "89" bad_number recolor=-1 + +:bad_number Bad + * idle noeat + "0-9" bad_number + +:octal Constant + * idle noeat + "0-7" octal + "89" bad_number recolor=-1 + +:hex Constant + * idle noeat + "0-9A-Fa-f" hex + +:decimal Constant + * idle noeat + "0-9" decimal + "eE" epart + "." float + +:maybe_float Constant + * idle recolor=-2 noeat + "0-9" float recolor=-2 + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +:string Constant string + * string + "\"" idle + "\\" string_escape recolor=-1 + "%" string_control recolor=-1 + +:string_escape Escape string + * string + "x" string_hex + "0-7" string_octal2 + "\n" string recolor=-2 + +# \x will consume all successive hex digits (ANSI C). +:string_hex Escape string + * string noeat + "0-9a-fA-F" string_hex + +:string_octal2 Escape string + * string noeat + "0-7" string_octal3 + +:string_octal3 Escape string + * string noeat + "0-7" string + +:string_control Escape string + * string + "\"" string noeat + "\n" reset + "\\" string_escape recolor=-1 + "0-9.\-+ #hjILtz$" string_control + +:char Constant string + * char + "\n" reset + "'" idle + "\\" char_escape recolor=-1 + +:char_escape Escape string + * char + "x" char_hex + "0-7" char_octal2 + "\n" char recolor=-2 + +# \x will consume all successive hex digits (ANSI C). +:char_hex Escape string + * char noeat + "0-9a-fA-F" char_hex + +:char_octal2 Escape string + * char noeat + "0-7" char_octal3 + +:char_octal3 Escape string + * char noeat + "0-7" char + +:ident Idle + * idle noeat strings + "int" type + "float" type + "long" type + "short" type + "char" type + "double" type + "signed" type + "unsigned" type + "void" type + "static" type + "register" type + "extern" type + "inline" type + "auto" type + "const" type + "volatile" type + "if" kw + "else" kw + "while" kw + "for" kw + "break" kw + "continue" kw + "do" kw + "case" kw + "default" kw + "switch" kw + "goto" kw + "struct" kw + "enum" kw + "return" kw + "sizeof" kw + "typedef" kw + "union" kw + "asm" kw +# C++ keywords + #"asm" cppkw (listed above as a C keyword) + "bool" cppkw + "catch" cppkw + "class" cppkw + "const_cast" cppkw + "delete" cppkw + "dynamic_cast" cppkw + "explicit" cppkw + "false" cppkw + "friend" cppkw + #"inline" cppkw (listed above as a C keyword) + "mutable" cppkw + "namespace" cppkw + "new" cppkw + "operator" cppkw + "private" cppkw + "protected" cppkw + "public" cppkw + "reinterpret_cast" cppkw + "static_cast" cppkw + "template" cppkw + "this" cppkw + "throw" cppkw + "true" cppkw + "try" cppkw + "typeid" cppkw + "typename" cppkw + "using" cppkw + "virtual" cppkw + "wchar_t" type +# Non-Standard + "typeof" cppkw +done + "\c" ident + +:type Type + * idle noeat + +:kw Keyword + * idle noeat + +:cppkw CppKeyword + * idle noeat diff --git a/.joe/syntax/c.jsf~ b/.joe/syntax/c.jsf~ @@ -0,0 +1,515 @@ +# JOE syntax highlight file for C and C++ + +# A (deterministic) state machine which performs lexical analysis of C. +# (This is the "assembly language" of syntax highlighting. A separate +# program could be used to convert a regular expression NFA syntax into this +# format). + +# Each state begins with ':<name> <color-name> <context>' +# +# <color-name> is the color used for characters eaten by the state +# (really a symbol for a user definable color). +# +# <context> tells JOE if the current character is part of a comment or a string. +# This allows JOE to skip over comments and strings when matching characters +# such as parentheses. To use this feature, the -highlighter_context option +# must be applied to the files highlighted by the corresponding syntax. To +# apply the option, add it to ftyperc for those file entries. +# +# The valid contexts are: +# comment This character is part of a comment. Example: /* comment */ +# +# string This character is part of a string. Examples: "string" 'c' 'string' +# +# The comment and string delimiters themselves should be marked with the +# appropriate context. The context is considered to be part of the color, so +# the recolor=-N and recolormark options apply the context to previous +# characters. + +# The first state defined is the initial state. + +# Within a state, define transitions (jumps) to other states. Each +# jump has the form: <character-list> <target-state> [<option>s] + +# There are three ways to specify <character-list>s, either * for any +# character not otherwise specified, % or & to match the character in the +# delimiter match buffer or a literal list of characters within quotes +# (ranges and escape sequences allowed). When the next character matches +# any in the list, a jump to the target-state is taken and the character is +# eaten (we advance to the next character of the file to be colored). +# +# The * transition should be the first transition specified in the state. +# +# There are several options: +# noeat do not eat the character, instead feed it to the next state +# (this tends to make the states smaller, but be careful: you +# can make infinite loops). 'noeat' implies 'recolor=-1'. +# +# recolor=-N Recolor the past N characters with the color of the +# target-state. For example once /* is recognized as the +# start of C comment, you want to color the /* with the C +# comment color with recolor=-2. +# +# mark Mark beginning of a region with current position. +# +# markend Mark end of region. +# +# recolormark Recolor all of the characters in the marked region with +# the color of the target-state. If markend is not given, +# all of the characters up to the current position are recolored. +# Note that the marked region can not cross line boundaries and +# must be on the same line as recolormark. +# +# buffer start copying characters to a string buffer, beginning with this +# one (it's ok to not terminate buffering with a matching +# 'strings' option- the buffer is limited to leading 23 +# characters). +# +# save_c Save character in delimiter match buffer. +# +# save_s Copy string buffer to delimiter match buffer. +# +# strings A list of strings follows. If the buffer matches any of the +# given strings, a jump to the target-state in the string list +# is taken instead of the normal jump. +# +# istrings Same as strings, but case is ignored. +# +# Note: strings and istrings should be the last option on the +# line. They cause any options which follow them to be ignored. +# +# hold Stop buffering string- a future 'strings' or 'istrings' will +# look at contents of buffer at this point. Useful for distinguishing +# commands and function calls in some languages 'write 7' is a command +# 'write (' is a function call- hold lets us stop at the space and delay +# the string lookup until the ( or 7. +# +# The format of the string list is: +# +# "string" <target-state> [<options>s] +# "string" <target-state> [<options>s] +# "&" <target-state> [<options>s] # matches contents of delimiter match buffer +# done +# +# (all of the options above are allowed except "strings", "istrings" and "noeat". noeat is +# always implied after a matched string). +# +# Weirdness: only states have colors, not transitions. This means that you +# sometimes have to make dummy states with '* next-state noeat' just to get +# a color specification. +# +# Delimiter match buffer is for perl and shell: a regex in perl can be s<..>(...) +# and in shell you can say: <<EOS ....... EOS + +# New feature: subroutines +# +# Highlighter state machines can now make subroutine calls. The highlighter has +# a run-time stack that allows unlimited recursion. +# +# To call a subroutine, use the 'call' option: +# +# "\"" fred call=string(dquote) +# +# The subroutine called 'string' is called and the jump to 'fred' is +# ignored. The 'dquote' option is passed to the subroutine. +# +# The subroutine itself returns to the caller like this: +# "\"" whatever return +# +# If we're in a subroutine, the return is made. Otherwise the jump +# to 'whatever' is made. +# +# There are several ways of delimiting subroutines which show up in how it +# is called. Here are the options: +# +# call=string() A file called string.jsf is the subroutine. +# The entire file is the subroutine. The starting +# point is the first state in the file. +# +# call=library.string() A file called library.jsf has the subroutine. +# The subroutine within the file is called string. +# +# call=.string() There is a subroutine called string in the current file. +# +# When a subroutine is within a file, but is not the whole file, it is delimited +# as follows: +# +# .subr string +# +# . . . states for string subroutine . . . +# +# .end +# +# Option flags can be passed to subroutines which control preprocessor-like +# directives. For example: +# +# .ifdef dquote +# "\"" idle return +# .endif +# .ifdef squote +# "'" idle return +# .endif +# +# .else if also available. .ifdefs can be nested. + + +# Obsolete feature: the sync lines specification no longer matter. We now always parse +# from the beginning of the file. Here is the old description: +# +# Define no. sync lines +# You can say: +# -200 means 200 lines +# - means always start parsing from beginning of file when we lose sync +# if nothing is specified, the default is -50 +- + +# Define colors and attributes. Give a list of attributes, one +# background color and one foreground color (default is used if +# color is left out). +# +# Attributes: +# bold inverse blink dim underline italic +# +# Standard colors: +# +# Foreground: +# white cyan magenta blue yellow green red black +# +# Background: +# bg_white bg_cyan bg_magenta bg_blue bg_yellow bg_green bg_red bg_black +# +# For 16 color and 256 color xterms: "export TERM=xterm-16color", these +# brighter than normal colors are available: +# +# Note that you need an xterm which was compiled to support 16 or 256 colors +# and a matching termcap/terminfo entry for it. +# +# Foreground: +# WHITE CYAN MAGENTA BLUE YELLOW GREEN RED BLACK +# +# Background: +# bg_WHITE bg_CYAN bg_MAGENTA bg_BLUE bg_YELLOW bg_GREEN bg_RED bg_BLACK +# +# For 256 color xterm: "export TERM=xterm-256color", these become available: +# +# Note that you need an xterm which was compiled to support 256 colors and a +# matching termcap/terminfo entry for it. +# +# fg_RGB and bg_RGB, where R, G, and B range from 0 - 5. So: fg_500 is bright red. +# +# fg_NN and bg_NN give shades of grey, where the intensity, NN, ranges from 0 - 23. + +=Idle +=Bad bold red +=Preproc blue +=Define bold blue +=Comment green +=IncLocal cyan +=IncSystem bold cyan +=Constant magenta +=Escape bold cyan +=Type white +=Keyword white +=CppKeyword white +=Brace green +=Control cyan + +:reset Idle + * first noeat + " \t" reset + +:first Idle + * idle noeat + "#" pre recolor=-1 + +:pre Preproc + * preproc noeat + " \t" pre + "a-z" preident recolor=-1 buffer + +:preident Preproc + * preproc noeat strings + "define" predef + "include" preinc +done + "a-z" preident + +:preinc Preproc + * preinc + " \t" preinc_ws + "\n" reset + +:preinc_ws Preproc + * prebad recolor=-1 + " \t" preinc_ws + "\"" preinc_local recolor=-1 + "<" preinc_system recolor=-1 + +:preinc_local IncLocal string + * preinc_local + "\"\n" reset + +:preinc_system IncSystem string + * preinc_system + ">\n" reset + +:prebad Bad + * prebad + "\n" reset + + +:predef Preproc + * predef + " \t" predef_ws + "\n" reset + +:predef_ws Preproc + * prebad recolor=-1 + " \t" predef_ws + "\c" predef_ident recolor=-1 + +:predef_ident Define + * idle noeat + "\c" predef_ident + + +:preproc Preproc + * preproc + "\n" reset + "\\" preproc_cont + "/" preproc_slash + +:preproc_slash Preproc + * preproc noeat + "*" comment recolor=-2 + "/" line_comment recolor=-2 + +:preproc_cont Preproc + * preproc_cont + "\n" preproc + +# All following states are for when we're not in a preprocessor line + +:idle Idle + * idle + "\n" reset + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." maybe_float + "\"" string recolor=-1 + "'" char recolor=-1 + "\i" ident buffer + "\\" outside_escape recolor=-1 + "{}:,;" brace recolor=-1 + ",=()><[]*&|!~+\-%^\/" control recolor=-1 + "/" slash + + +:outside_escape Escape + * idle + +:brace Brace + * idle noeat + +:control Control + * idle noeat + +:slash Idle + * idle noeat recolor=-2 # Not sure about this + "*" comment recolor=-2 + "/" line_comment recolor=-2 + +:comment Comment comment + * comment + "*" maybe_end_comment + +:maybe_end_comment Comment comment + * comment + "/" idle + "*" maybe_end_comment + +:line_comment Comment comment + * line_comment + "\n" reset + +:first_digit Constant + * idle noeat + "xX" hex + "." float + "eE" epart + "0-7" octal + "89" bad_number recolor=-1 + +:bad_number Bad + * idle noeat + "0-9" bad_number + +:octal Constant + * idle noeat + "0-7" octal + "89" bad_number recolor=-1 + +:hex Constant + * idle noeat + "0-9A-Fa-f" hex + +:decimal Constant + * idle noeat + "0-9" decimal + "eE" epart + "." float + +:maybe_float Constant + * idle recolor=-2 noeat + "0-9" float recolor=-2 + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +:string Constant string + * string + "\"" idle + "\\" string_escape recolor=-1 + "%" string_control recolor=-1 + +:string_escape Escape string + * string + "x" string_hex + "0-7" string_octal2 + "\n" string recolor=-2 + +# \x will consume all successive hex digits (ANSI C). +:string_hex Escape string + * string noeat + "0-9a-fA-F" string_hex + +:string_octal2 Escape string + * string noeat + "0-7" string_octal3 + +:string_octal3 Escape string + * string noeat + "0-7" string + +:string_control Escape string + * string + "\"" string noeat + "\n" reset + "\\" string_escape recolor=-1 + "0-9.\-+ #hjILtz$" string_control + +:char Constant string + * char + "\n" reset + "'" idle + "\\" char_escape recolor=-1 + +:char_escape Escape string + * char + "x" char_hex + "0-7" char_octal2 + "\n" char recolor=-2 + +# \x will consume all successive hex digits (ANSI C). +:char_hex Escape string + * char noeat + "0-9a-fA-F" char_hex + +:char_octal2 Escape string + * char noeat + "0-7" char_octal3 + +:char_octal3 Escape string + * char noeat + "0-7" char + +:ident Idle + * idle noeat strings + "int" type + "float" type + "long" type + "short" type + "char" type + "double" type + "signed" type + "unsigned" type + "void" type + "static" type + "register" type + "extern" type + "inline" type + "auto" type + "const" type + "volatile" type + "if" kw + "else" kw + "while" kw + "for" kw + "break" kw + "continue" kw + "do" kw + "case" kw + "default" kw + "switch" kw + "goto" kw + "struct" kw + "enum" kw + "return" kw + "sizeof" kw + "typedef" kw + "union" kw + "asm" kw +# C++ keywords + #"asm" cppkw (listed above as a C keyword) + "bool" cppkw + "catch" cppkw + "class" cppkw + "const_cast" cppkw + "delete" cppkw + "dynamic_cast" cppkw + "explicit" cppkw + "false" cppkw + "friend" cppkw + #"inline" cppkw (listed above as a C keyword) + "mutable" cppkw + "namespace" cppkw + "new" cppkw + "operator" cppkw + "private" cppkw + "protected" cppkw + "public" cppkw + "reinterpret_cast" cppkw + "static_cast" cppkw + "template" cppkw + "this" cppkw + "throw" cppkw + "true" cppkw + "try" cppkw + "typeid" cppkw + "typename" cppkw + "using" cppkw + "virtual" cppkw + "wchar_t" type +# Non-Standard + "typeof" cppkw +done + "\c" ident + +:type Type + * idle noeat + +:kw Keyword + * idle noeat + +:cppkw CppKeyword + * idle noeat diff --git a/.joe/syntax/clojure.jsf b/.joe/syntax/clojure.jsf @@ -0,0 +1,1485 @@ +# JOE syntax highlight file for Clojure + +=Idle +=Comment green +=Escape bold cyan +=Constant cyan +=Bad bold red +=Keyword bold + +:reset Idle + * idle noeat call=.clojure() + +.subr clojure + +:idle Idle + * symbol mark buffer + " \t\f\n\r" idle + "(" idle call=.clojure(paren) + "[" idle call=.clojure(brack) + "{" idle call=.clojure(squiggly) +.ifdef paren + ")" idle return +.else + ")" stray recolor=-1 +.endif +.ifdef brack + "]" idle return +.else + "]" stray recolor=-1 +.endif +.ifdef squiggly + "}" idle return +.else + "}" stray recolor=-1 +.endif + ";" comment recolor=-1 + "1" one recolor=-1 + "2" two recolor=-1 + "8" eight recolor=-1 + "0345679" number recolor=-1 + "-" negative recolor=-1 mark buffer + "\"" string recolor=-1 + "#" pound + "'`^@~" quote + "\\" backslash recolor=-1 + "." maybe_float + +:stray Bad + * idle noeat + +:backslash Escape + * back_single buffer mark + "u" back_uni4 + "o" back_oct3 + + +:back_single Escape + * back_word recolor=-2 + "]}), \t\f\n\r;" idle noeat + +:back_word Bad + * back_word + "]}), \t\f\n\r;" idle noeat markend strings + "newline" good_literal recolormark + "space" good_literal recolormark + "tab" good_literal recolormark + "formfeed" good_literal recolormark + "backspace" good_literal recolormark + "return" goot_literal recolormark +done + +:good_literal Escape + * idle noeat + +:back_oct3 Escape + * bad noeat + "0-7" back_oct2 + +:back_oct2 Escape + * bad noeat + "0-7" back_oct1 + +:back_oct1 Escape + * bad noeat + "0-7" bad + +:back_uni4 Escape + * bad noeat + "0-9a-fA-F" back_uni3 + +:back_uni3 Escape + * bad noeat + "0-9a-fA-F" back_uni2 + +:back_uni2 Escape + * bad noeat + "0-9a-fA-F" back_uni1 + +:back_uni1 Escape + * bad noeat + "0-9a-fA-F" bad + +:negative Idle + * symbol noeat + "1" one recolor=-2 + "2" two recolor=-2 + "8" eight recolor=-2 + "0345679" number recolor=-2 + "." maybe_neg_float + +:symbol Idle + * symbol + "]}), \t\n;" ident_end noeat markend strings +# Symbols which are built-in values + "nil" value + "true" value + "false" value + "." common + "catch" common + "clojure.core/fn" common + "clojure.core/let" common + "clojure.core/loop" common + "def" common + "do" common + "finally" common + "fn" common + "if" common + "let" common + "loop" common + "monitor-enter" common + "monitor-exit" common + "new" common + "quote" common + "recur" common + "set!" common + "throw" common + "try" common + "var" common + "catch" common + "finally" common + "throw" common + "try" common + "case" common + "clojure.core/case" common + "clojure.core/cond" common + "clojure.core/cond->" common + "clojure.core/cond->>" common + "clojure.core/condp" common + "clojure.core/if-let" common + "clojure.core/if-not" common + "clojure.core/when" common + "clojure.core/when-first" common + "clojure.core/when-let" common + "clojure.core/when-not" common + "cond" common + "cond->" common + "cond->>" common + "condp" common + "if-let" common + "if-not" common + "when" common + "when-first" common + "when-let" common + "when-not" common + "clojure.core/doall" common + "clojure.core/dorun" common + "clojure.core/doseq" common + "clojure.core/dotimes" common + "clojure.core/while" common + "doall" common + "dorun" common + "doseq" common + "dotimes" common + "while" common + "clojure.core/definline" common + "clojure.core/definterface" common + "clojure.core/defmacro" common + "clojure.core/defmethod" common + "clojure.core/defmulti" common + "clojure.core/defn" common + "clojure.core/defn-" common + "clojure.core/defonce" common + "clojure.core/defprotocol" common + "clojure.core/defrecord" common + "clojure.core/defstruct" common + "clojure.core/deftype" common + "definline" common + "definterface" common + "defmacro" common + "defmethod" common + "defmulti" common + "defn" common + "defn-" common + "defonce" common + "defprotocol" common + "defrecord" common + "defstruct" common + "deftype" common + "->" common + "->>" common + ".." common + "amap" common + "and" common + "areduce" common + "as->" common + "assert" common + "binding" common + "bound-fn" common + "clojure.core/->" common + "clojure.core/->>" common + "clojure.core/.." common + "clojure.core/amap" common + "clojure.core/and" common + "clojure.core/areduce" common + "clojure.core/as->" common + "clojure.core/assert" common + "clojure.core/binding" common + "clojure.core/bound-fn" common + "clojure.core/comment" common + "clojure.core/declare" common + "clojure.core/delay" common + "clojure.core/dosync" common + "clojure.core/doto" common + "clojure.core/extend-protocol" common + "clojure.core/extend-type" common + "clojure.core/for" common + "clojure.core/future" common + "clojure.core/gen-class" common + "clojure.core/gen-interface" common + "clojure.core/import" common + "clojure.core/io!" common + "clojure.core/lazy-cat" common + "clojure.core/lazy-seq" common + "clojure.core/letfn" common + "clojure.core/locking" common + "clojure.core/memfn" common + "clojure.core/ns" common + "clojure.core/or" common + "clojure.core/proxy" common + "clojure.core/proxy-super" common + "clojure.core/pvalues" common + "clojure.core/refer-clojure" common + "clojure.core/reify" common + "clojure.core/some->" common + "clojure.core/some->>" common + "clojure.core/sync" common + "clojure.core/time" common + "clojure.core/with-bindings" common + "clojure.core/with-in-str" common + "clojure.core/with-loading-context" common + "clojure.core/with-local-vars" common + "clojure.core/with-open" common + "clojure.core/with-out-str" common + "clojure.core/with-precision" common + "clojure.core/with-redefs" common + "comment" common + "declare" common + "delay" common + "dosync" common + "doto" common + "extend-protocol" common + "extend-type" common + "for" common + "future" common + "gen-class" common + "gen-interface" common + "import" common + "io!" common + "lazy-cat" common + "lazy-seq" common + "letfn" common + "locking" common + "memfn" common + "ns" common + "or" common + "proxy" common + "proxy-super" common + "pvalues" common + "refer-clojure" common + "reify" common + "some->" common + "some->>" common + "sync" common + "time" common + "with-bindings" common + "with-in-str" common + "with-loading-context" common + "with-local-vars" common + "with-open" common + "with-out-str" common + "with-precision" common + "with-redefs" common + "*" common + "*'" common + "+" common + "+'" common + "-" common + "-'" common + "->ArrayChunk" common + "->Vec" common + "->VecNode" common + "->VecSeq" common + "-cache-protocol-fn" common + "-reset-methods" common + "/" common + "<" common + "<=" common + "=" common + "==" common + ">" common + ">=" common + "accessor" common + "aclone" common + "add-classpath" common + "add-watch" common + "agent" common + "agent-error" common + "agent-errors" common + "aget" common + "alength" common + "alias" common + "all-ns" common + "alter" common + "alter-meta!" common + "alter-var-root" common + "ancestors" common + "apply" common + "array-map" common + "aset" common + "aset-boolean" common + "aset-byte" common + "aset-char" common + "aset-double" common + "aset-float" common + "aset-int" common + "aset-long" common + "aset-short" common + "assoc" common + "assoc!" common + "assoc-in" common + "associative?" common + "atom" common + "await" common + "await-for" common + "await1" common + "bases" common + "bean" common + "bigdec" common + "bigint" common + "biginteger" common + "bit-and" common + "bit-and-not" common + "bit-clear" common + "bit-flip" common + "bit-not" common + "bit-or" common + "bit-set" common + "bit-shift-left" common + "bit-shift-right" common + "bit-test" common + "bit-xor" common + "boolean" common + "boolean-array" common + "booleans" common + "bound-fn*" common + "bound?" common + "butlast" common + "byte" common + "byte-array" common + "bytes" common + "cast" common + "char" common + "char-array" common + "char?" common + "chars" common + "chunk" common + "chunk-append" common + "chunk-buffer" common + "chunk-cons" common + "chunk-first" common + "chunk-next" common + "chunk-rest" common + "chunked-seq?" common + "class" common + "class?" common + "clear-agent-errors" common + "clojure-version" common + "clojure.core/*" common + "clojure.core/*'" common + "clojure.core/+" common + "clojure.core/+'" common + "clojure.core/-" common + "clojure.core/-'" common + "clojure.core/->ArrayChunk" common + "clojure.core/->Vec" common + "clojure.core/->VecNode" common + "clojure.core/->VecSeq" common + "clojure.core/-cache-protocol-fn" common + "clojure.core/-reset-methods" common + "clojure.core//" common + "clojure.core/<" common + "clojure.core/<=" common + "clojure.core/=" common + "clojure.core/==" common + "clojure.core/>" common + "clojure.core/>=" common + "clojure.core/accessor" common + "clojure.core/aclone" common + "clojure.core/add-classpath" common + "clojure.core/add-watch" common + "clojure.core/agent" common + "clojure.core/agent-error" common + "clojure.core/agent-errors" common + "clojure.core/aget" common + "clojure.core/alength" common + "clojure.core/alias" common + "clojure.core/all-ns" common + "clojure.core/alter" common + "clojure.core/alter-meta!" common + "clojure.core/alter-var-root" common + "clojure.core/ancestors" common + "clojure.core/apply" common + "clojure.core/array-map" common + "clojure.core/aset" common + "clojure.core/aset-boolean" common + "clojure.core/aset-byte" common + "clojure.core/aset-char" common + "clojure.core/aset-double" common + "clojure.core/aset-float" common + "clojure.core/aset-int" common + "clojure.core/aset-long" common + "clojure.core/aset-short" common + "clojure.core/assoc" common + "clojure.core/assoc!" common + "clojure.core/assoc-in" common + "clojure.core/associative?" common + "clojure.core/atom" common + "clojure.core/await" common + "clojure.core/await-for" common + "clojure.core/await1" common + "clojure.core/bases" common + "clojure.core/bean" common + "clojure.core/bigdec" common + "clojure.core/bigint" common + "clojure.core/biginteger" common + "clojure.core/bit-and" common + "clojure.core/bit-and-not" common + "clojure.core/bit-clear" common + "clojure.core/bit-flip" common + "clojure.core/bit-not" common + "clojure.core/bit-or" common + "clojure.core/bit-set" common + "clojure.core/bit-shift-left" common + "clojure.core/bit-shift-right" common + "clojure.core/bit-test" common + "clojure.core/bit-xor" common + "clojure.core/boolean" common + "clojure.core/boolean-array" common + "clojure.core/booleans" common + "clojure.core/bound-fn*" common + "clojure.core/bound?" common + "clojure.core/butlast" common + "clojure.core/byte" common + "clojure.core/byte-array" common + "clojure.core/bytes" common + "clojure.core/cast" common + "clojure.core/char" common + "clojure.core/char-array" common + "clojure.core/char?" common + "clojure.core/chars" common + "clojure.core/chunk" common + "clojure.core/chunk-append" common + "clojure.core/chunk-buffer" common + "clojure.core/chunk-cons" common + "clojure.core/chunk-first" common + "clojure.core/chunk-next" common + "clojure.core/chunk-rest" common + "clojure.core/chunked-seq?" common + "clojure.core/class" common + "clojure.core/class?" common + "clojure.core/clear-agent-errors" common + "clojure.core/clojure-version" common + "clojure.core/coll?" common + "clojure.core/commute" common + "clojure.core/comp" common + "clojure.core/comparator" common + "clojure.core/compare" common + "clojure.core/compare-and-set!" common + "clojure.core/compile" common + "clojure.core/complement" common + "clojure.core/concat" common + "clojure.core/conj" common + "clojure.core/conj!" common + "clojure.core/cons" common + "clojure.core/constantly" common + "clojure.core/construct-proxy" common + "clojure.core/contains?" common + "clojure.core/count" common + "clojure.core/counted?" common + "clojure.core/create-ns" common + "clojure.core/create-struct" common + "clojure.core/cycle" common + "clojure.core/dec" common + "clojure.core/dec'" common + "clojure.core/decimal?" common + "clojure.core/delay?" common + "clojure.core/deliver" common + "clojure.core/denominator" common + "clojure.core/deref" common + "clojure.core/derive" common + "clojure.core/descendants" common + "clojure.core/destructure" common + "clojure.core/disj" common + "clojure.core/disj!" common + "clojure.core/dissoc" common + "clojure.core/dissoc!" common + "clojure.core/distinct" common + "clojure.core/distinct?" common + "clojure.core/double" common + "clojure.core/double-array" common + "clojure.core/doubles" common + "clojure.core/drop" common + "clojure.core/drop-last" common + "clojure.core/drop-while" common + "clojure.core/empty" common + "clojure.core/empty?" common + "clojure.core/ensure" common + "clojure.core/enumeration-seq" common + "clojure.core/error-handler" common + "clojure.core/error-mode" common + "clojure.core/eval" common + "clojure.core/even?" common + "clojure.core/every-pred" common + "clojure.core/every?" common + "clojure.core/ex-data" common + "clojure.core/ex-info" common + "clojure.core/extend" common + "clojure.core/extenders" common + "clojure.core/extends?" common + "clojure.core/false?" common + "clojure.core/ffirst" common + "clojure.core/file-seq" common + "clojure.core/filter" common + "clojure.core/filterv" common + "clojure.core/find" common + "clojure.core/find-keyword" common + "clojure.core/find-ns" common + "clojure.core/find-protocol-impl" common + "clojure.core/find-protocol-method" common + "clojure.core/find-var" common + "clojure.core/first" common + "clojure.core/flatten" common + "clojure.core/float" common + "clojure.core/float-array" common + "clojure.core/float?" common + "clojure.core/floats" common + "clojure.core/flush" common + "clojure.core/fn?" common + "clojure.core/fnext" common + "clojure.core/fnil" common + "clojure.core/force" common + "clojure.core/format" common + "clojure.core/frequencies" common + "clojure.core/future-call" common + "clojure.core/future-cancel" common + "clojure.core/future-cancelled?" common + "clojure.core/future-done?" common + "clojure.core/future?" common + "clojure.core/gensym" common + "clojure.core/get" common + "clojure.core/get-in" common + "clojure.core/get-method" common + "clojure.core/get-proxy-class" common + "clojure.core/get-thread-bindings" common + "clojure.core/get-validator" common + "clojure.core/group-by" common + "clojure.core/hash" common + "clojure.core/hash-combine" common + "clojure.core/hash-map" common + "clojure.core/hash-set" common + "clojure.core/identical?" common + "clojure.core/identity" common + "clojure.core/ifn?" common + "clojure.core/in-ns" common + "clojure.core/inc" common + "clojure.core/inc'" common + "clojure.core/init-proxy" common + "clojure.core/instance?" common + "clojure.core/int" common + "clojure.core/int-array" common + "clojure.core/integer?" common + "clojure.core/interleave" common + "clojure.core/intern" common + "clojure.core/interpose" common + "clojure.core/into" common + "clojure.core/into-array" common + "clojure.core/ints" common + "clojure.core/isa?" common + "clojure.core/iterate" common + "clojure.core/iterator-seq" common + "clojure.core/juxt" common + "clojure.core/keep" common + "clojure.core/keep-indexed" common + "clojure.core/key" common + "clojure.core/keys" common + "clojure.core/keyword" common + "clojure.core/keyword?" common + "clojure.core/last" common + "clojure.core/line-seq" common + "clojure.core/list" common + "clojure.core/list*" common + "clojure.core/list?" common + "clojure.core/load" common + "clojure.core/load-file" common + "clojure.core/load-reader" common + "clojure.core/load-string" common + "clojure.core/loaded-libs" common + "clojure.core/long" common + "clojure.core/long-array" common + "clojure.core/longs" common + "clojure.core/macroexpand" common + "clojure.core/macroexpand-1" common + "clojure.core/make-array" common + "clojure.core/make-hierarchy" common + "clojure.core/map" common + "clojure.core/map-indexed" common + "clojure.core/map?" common + "clojure.core/mapcat" common + "clojure.core/mapv" common + "clojure.core/max" common + "clojure.core/max-key" common + "clojure.core/memoize" common + "clojure.core/merge" common + "clojure.core/merge-with" common + "clojure.core/meta" common + "clojure.core/method-sig" common + "clojure.core/methods" common + "clojure.core/min" common + "clojure.core/min-key" common + "clojure.core/mod" common + "clojure.core/munge" common + "clojure.core/name" common + "clojure.core/namespace" common + "clojure.core/namespace-munge" common + "clojure.core/neg?" common + "clojure.core/newline" common + "clojure.core/next" common + "clojure.core/nfirst" common + "clojure.core/nil?" common + "clojure.core/nnext" common + "clojure.core/not" common + "clojure.core/not-any?" common + "clojure.core/not-empty" common + "clojure.core/not-every?" common + "clojure.core/not=" common + "clojure.core/ns-aliases" common + "clojure.core/ns-imports" common + "clojure.core/ns-interns" common + "clojure.core/ns-map" common + "clojure.core/ns-name" common + "clojure.core/ns-publics" common + "clojure.core/ns-refers" common + "clojure.core/ns-resolve" common + "clojure.core/ns-unalias" common + "clojure.core/ns-unmap" common + "clojure.core/nth" common + "clojure.core/nthnext" common + "clojure.core/nthrest" common + "clojure.core/num" common + "clojure.core/number?" common + "clojure.core/numerator" common + "clojure.core/object-array" common + "clojure.core/odd?" common + "clojure.core/parents" common + "clojure.core/partial" common + "clojure.core/partition" common + "clojure.core/partition-all" common + "clojure.core/partition-by" common + "clojure.core/pcalls" common + "clojure.core/peek" common + "clojure.core/persistent!" common + "clojure.core/pmap" common + "clojure.core/pop" common + "clojure.core/pop!" common + "clojure.core/pop-thread-bindings" common + "clojure.core/pos?" common + "clojure.core/pr" common + "clojure.core/pr-str" common + "clojure.core/prefer-method" common + "clojure.core/prefers" common + "clojure.core/print" common + "clojure.core/print-ctor" common + "clojure.core/print-simple" common + "clojure.core/print-str" common + "clojure.core/printf" common + "clojure.core/println" common + "clojure.core/println-str" common + "clojure.core/prn" common + "clojure.core/prn-str" common + "clojure.core/promise" common + "clojure.core/proxy-call-with-super" common + "clojure.core/proxy-mappings" common + "clojure.core/proxy-name" common + "clojure.core/push-thread-bindings" common + "clojure.core/quot" common + "clojure.core/rand" common + "clojure.core/rand-int" common + "clojure.core/rand-nth" common + "clojure.core/range" common + "clojure.core/ratio?" common + "clojure.core/rational?" common + "clojure.core/rationalize" common + "clojure.core/re-find" common + "clojure.core/re-groups" common + "clojure.core/re-matcher" common + "clojure.core/re-matches" common + "clojure.core/re-pattern" common + "clojure.core/re-seq" common + "clojure.core/read" common + "clojure.core/read-line" common + "clojure.core/read-string" common + "clojure.core/realized?" common + "clojure.core/reduce" common + "clojure.core/reduce-kv" common + "clojure.core/reduced" common + "clojure.core/reduced?" common + "clojure.core/reductions" common + "clojure.core/ref" common + "clojure.core/ref-history-count" common + "clojure.core/ref-max-history" common + "clojure.core/ref-min-history" common + "clojure.core/ref-set" common + "clojure.core/refer" common + "clojure.core/release-pending-sends" common + "clojure.core/rem" common + "clojure.core/remove" common + "clojure.core/remove-all-methods" common + "clojure.core/remove-method" common + "clojure.core/remove-ns" common + "clojure.core/remove-watch" common + "clojure.core/repeat" common + "clojure.core/repeatedly" common + "clojure.core/replace" common + "clojure.core/replicate" common + "clojure.core/require" common + "clojure.core/reset!" common + "clojure.core/reset-meta!" common + "clojure.core/resolve" common + "clojure.core/rest" common + "clojure.core/restart-agent" common + "clojure.core/resultset-seq" common + "clojure.core/reverse" common + "clojure.core/reversible?" common + "clojure.core/rseq" common + "clojure.core/rsubseq" common + "clojure.core/satisfies?" common + "clojure.core/second" common + "clojure.core/select-keys" common + "clojure.core/send" common + "clojure.core/send-off" common + "clojure.core/send-via" common + "clojure.core/seq" common + "clojure.core/seq?" common + "clojure.core/seque" common + "clojure.core/sequence" common + "clojure.core/sequential?" common + "clojure.core/set" common + "clojure.core/set-agent-send-executor!" common + "clojure.core/set-agent-send-off-executor!" common + "clojure.core/set-error-handler!" common + "clojure.core/set-error-mode!" common + "clojure.core/set-validator!" common + "clojure.core/set?" common + "clojure.core/short" common + "clojure.core/short-array" common + "clojure.core/shorts" common + "clojure.core/shuffle" common + "clojure.core/shutdown-agents" common + "clojure.core/slurp" common + "clojure.core/some" common + "clojure.core/some-fn" common + "clojure.core/sort" common + "clojure.core/sort-by" common + "clojure.core/sorted-map" common + "clojure.core/sorted-map-by" common + "clojure.core/sorted-set" common + "clojure.core/sorted-set-by" common + "clojure.core/sorted?" common + "clojure.core/special-symbol?" common + "clojure.core/spit" common + "clojure.core/split-at" common + "clojure.core/split-with" common + "clojure.core/str" common + "clojure.core/string?" common + "clojure.core/struct" common + "clojure.core/struct-map" common + "clojure.core/subs" common + "clojure.core/subseq" common + "clojure.core/subvec" common + "clojure.core/supers" common + "clojure.core/swap!" common + "clojure.core/symbol" common + "clojure.core/symbol?" common + "clojure.core/take" common + "clojure.core/take-last" common + "clojure.core/take-nth" common + "clojure.core/take-while" common + "clojure.core/test" common + "clojure.core/the-ns" common + "clojure.core/thread-bound?" common + "clojure.core/to-array" common + "clojure.core/to-array-2d" common + "clojure.core/trampoline" common + "clojure.core/transient" common + "clojure.core/tree-seq" common + "clojure.core/true?" common + "clojure.core/type" common + "clojure.core/unchecked-add" common + "clojure.core/unchecked-add-int" common + "clojure.core/unchecked-byte" common + "clojure.core/unchecked-char" common + "clojure.core/unchecked-dec" common + "clojure.core/unchecked-dec-int" common + "clojure.core/unchecked-divide-int" common + "clojure.core/unchecked-double" common + "clojure.core/unchecked-float" common + "clojure.core/unchecked-inc" common + "clojure.core/unchecked-inc-int" common + "clojure.core/unchecked-int" common + "clojure.core/unchecked-long" common + "clojure.core/unchecked-multiply" common + "clojure.core/unchecked-multiply-int" common + "clojure.core/unchecked-negate" common + "clojure.core/unchecked-negate-int" common + "clojure.core/unchecked-remainder-int" common + "clojure.core/unchecked-short" common + "clojure.core/unchecked-subtract" common + "clojure.core/unchecked-subtract-int" common + "clojure.core/underive" common + "clojure.core/update-in" common + "clojure.core/update-proxy" common + "clojure.core/use" common + "clojure.core/val" common + "clojure.core/vals" common + "clojure.core/var-get" common + "clojure.core/var-set" common + "clojure.core/var?" common + "clojure.core/vary-meta" common + "clojure.core/vec" common + "clojure.core/vector" common + "clojure.core/vector-of" common + "clojure.core/vector?" common + "clojure.core/with-bindings*" common + "clojure.core/with-meta" common + "clojure.core/with-redefs-fn" common + "clojure.core/xml-seq" common + "clojure.core/zero?" common + "clojure.core/zipmap" common + "coll?" common + "commute" common + "comp" common + "comparator" common + "compare" common + "compare-and-set!" common + "compile" common + "complement" common + "concat" common + "conj" common + "conj!" common + "cons" common + "constantly" common + "construct-proxy" common + "contains?" common + "count" common + "counted?" common + "create-ns" common + "create-struct" common + "cycle" common + "dec" common + "dec'" common + "decimal?" common + "delay?" common + "deliver" common + "denominator" common + "deref" common + "derive" common + "descendants" common + "destructure" common + "disj" common + "disj!" common + "dissoc" common + "dissoc!" common + "distinct" common + "distinct?" common + "double" common + "double-array" common + "doubles" common + "drop" common + "drop-last" common + "drop-while" common + "empty" common + "empty?" common + "ensure" common + "enumeration-seq" common + "error-handler" common + "error-mode" common + "eval" common + "even?" common + "every-pred" common + "every?" common + "ex-data" common + "ex-info" common + "extend" common + "extenders" common + "extends?" common + "false?" common + "ffirst" common + "file-seq" common + "filter" common + "filterv" common + "find" common + "find-keyword" common + "find-ns" common + "find-protocol-impl" common + "find-protocol-method" common + "find-var" common + "first" common + "flatten" common + "float" common + "float-array" common + "float?" common + "floats" common + "flush" common + "fn?" common + "fnext" common + "fnil" common + "force" common + "format" common + "frequencies" common + "future-call" common + "future-cancel" common + "future-cancelled?" common + "future-done?" common + "future?" common + "gensym" common + "get" common + "get-in" common + "get-method" common + "get-proxy-class" common + "get-thread-bindings" common + "get-validator" common + "group-by" common + "hash" common + "hash-combine" common + "hash-map" common + "hash-set" common + "identical?" common + "identity" common + "ifn?" common + "in-ns" common + "inc" common + "inc'" common + "init-proxy" common + "instance?" common + "int" common + "int-array" common + "integer?" common + "interleave" common + "intern" common + "interpose" common + "into" common + "into-array" common + "ints" common + "isa?" common + "iterate" common + "iterator-seq" common + "juxt" common + "keep" common + "keep-indexed" common + "key" common + "keys" common + "keyword" common + "keyword?" common + "last" common + "line-seq" common + "list" common + "list*" common + "list?" common + "load" common + "load-file" common + "load-reader" common + "load-string" common + "loaded-libs" common + "long" common + "long-array" common + "longs" common + "macroexpand" common + "macroexpand-1" common + "make-array" common + "make-hierarchy" common + "map" common + "map-indexed" common + "map?" common + "mapcat" common + "mapv" common + "max" common + "max-key" common + "memoize" common + "merge" common + "merge-with" common + "meta" common + "method-sig" common + "methods" common + "min" common + "min-key" common + "mod" common + "munge" common + "name" common + "namespace" common + "namespace-munge" common + "neg?" common + "newline" common + "next" common + "nfirst" common + "nil?" common + "nnext" common + "not" common + "not-any?" common + "not-empty" common + "not-every?" common + "not=" common + "ns-aliases" common + "ns-imports" common + "ns-interns" common + "ns-map" common + "ns-name" common + "ns-publics" common + "ns-refers" common + "ns-resolve" common + "ns-unalias" common + "ns-unmap" common + "nth" common + "nthnext" common + "nthrest" common + "num" common + "number?" common + "numerator" common + "object-array" common + "odd?" common + "parents" common + "partial" common + "partition" common + "partition-all" common + "partition-by" common + "pcalls" common + "peek" common + "persistent!" common + "pmap" common + "pop" common + "pop!" common + "pop-thread-bindings" common + "pos?" common + "pr" common + "pr-str" common + "prefer-method" common + "prefers" common + "print" common + "print-ctor" common + "print-simple" common + "print-str" common + "printf" common + "println" common + "println-str" common + "prn" common + "prn-str" common + "promise" common + "proxy-call-with-super" common + "proxy-mappings" common + "proxy-name" common + "push-thread-bindings" common + "quot" common + "rand" common + "rand-int" common + "rand-nth" common + "range" common + "ratio?" common + "rational?" common + "rationalize" common + "re-find" common + "re-groups" common + "re-matcher" common + "re-matches" common + "re-pattern" common + "re-seq" common + "read" common + "read-line" common + "read-string" common + "realized?" common + "reduce" common + "reduce-kv" common + "reduced" common + "reduced?" common + "reductions" common + "ref" common + "ref-history-count" common + "ref-max-history" common + "ref-min-history" common + "ref-set" common + "refer" common + "release-pending-sends" common + "rem" common + "remove" common + "remove-all-methods" common + "remove-method" common + "remove-ns" common + "remove-watch" common + "repeat" common + "repeatedly" common + "replace" common + "replicate" common + "require" common + "reset!" common + "reset-meta!" common + "resolve" common + "rest" common + "restart-agent" common + "resultset-seq" common + "reverse" common + "reversible?" common + "rseq" common + "rsubseq" common + "satisfies?" common + "second" common + "select-keys" common + "send" common + "send-off" common + "send-via" common + "seq" common + "seq?" common + "seque" common + "sequence" common + "sequential?" common + "set" common + "set-agent-send-executor!" common + "set-agent-send-off-executor!" common + "set-error-handler!" common + "set-error-mode!" common + "set-validator!" common + "set?" common + "short" common + "short-array" common + "shorts" common + "shuffle" common + "shutdown-agents" common + "slurp" common + "some" common + "some-fn" common + "sort" common + "sort-by" common + "sorted-map" common + "sorted-map-by" common + "sorted-set" common + "sorted-set-by" common + "sorted?" common + "special-symbol?" common + "spit" common + "split-at" common + "split-with" common + "str" common + "string?" common + "struct" common + "struct-map" common + "subs" common + "subseq" common + "subvec" common + "supers" common + "swap!" common + "symbol" common + "symbol?" common + "take" common + "take-last" common + "take-nth" common + "take-while" common + "test" common + "the-ns" common + "thread-bound?" common + "to-array" common + "to-array-2d" common + "trampoline" common + "transient" common + "tree-seq" common + "true?" common + "type" common + "unchecked-add" common + "unchecked-add-int" common + "unchecked-byte" common + "unchecked-char" common + "unchecked-dec" common + "unchecked-dec-int" common + "unchecked-divide-int" common + "unchecked-double" common + "unchecked-float" common + "unchecked-inc" common + "unchecked-inc-int" common + "unchecked-int" common + "unchecked-long" common + "unchecked-multiply" common + "unchecked-multiply-int" common + "unchecked-negate" common + "unchecked-negate-int" common + "unchecked-remainder-int" common + "unchecked-short" common + "unchecked-subtract" common + "unchecked-subtract-int" common + "underive" common + "update-in" common + "update-proxy" common + "use" common + "val" common + "vals" common + "var-get" common + "var-set" common + "var?" common + "vary-meta" common + "vec" common + "vector" common + "vector-of" common + "vector?" common + "with-bindings*" common + "with-meta" common + "with-redefs-fn" common + "xml-seq" common + "zero?" common + "zipmap" common + "*1" common + "*2" common + "*3" common + "*agent*" common + "*allow-unresolved-vars*" common + "*assert*" common + "*clojure-version*" common + "*command-line-args*" common + "*compile-files*" common + "*compile-path*" common + "*compiler-options*" common + "*data-readers*" common + "*default-data-reader-fn*" common + "*e" common + "*err*" common + "*file*" common + "*flush-on-newline*" common + "*fn-loader*" common + "*in*" common + "*math-context*" common + "*ns*" common + "*out*" common + "*print-dup*" common + "*print-length*" common + "*print-level*" common + "*print-meta*" common + "*print-readably*" common + "*read-eval*" common + "*source-path*" common + "*unchecked-math*" common + "*use-context-classloader*" common + "*verbose-defrecords*" common + "*warn-on-reflection*" common + "EMPTY-NODE" common + "char-escape-string" common + "char-name-string" common + "clojure.core/*1" common + "clojure.core/*2" common + "clojure.core/*3" common + "clojure.core/*agent*" common + "clojure.core/*allow-unresolved-vars*" common + "clojure.core/*assert*" common + "clojure.core/*clojure-version*" common + "clojure.core/*command-line-args*" common + "clojure.core/*compile-files*" common + "clojure.core/*compile-path*" common + "clojure.core/*compiler-options*" common + "clojure.core/*data-readers*" common + "clojure.core/*default-data-reader-fn*" common + "clojure.core/*e" common + "clojure.core/*err*" common + "clojure.core/*file*" common + "clojure.core/*flush-on-newline*" common + "clojure.core/*fn-loader*" common + "clojure.core/*in*" common + "clojure.core/*math-context*" common + "clojure.core/*ns*" common + "clojure.core/*out*" common + "clojure.core/*print-dup*" common + "clojure.core/*print-length*" common + "clojure.core/*print-level*" common + "clojure.core/*print-meta*" common + "clojure.core/*print-readably*" common + "clojure.core/*read-eval*" common + "clojure.core/*source-path*" common + "clojure.core/*unchecked-math*" common + "clojure.core/*use-context-classloader*" common + "clojure.core/*verbose-defrecords*" common + "clojure.core/*warn-on-reflection*" common + "clojure.core/EMPTY-NODE" common + "clojure.core/char-escape-string" common + "clojure.core/char-name-string" common + "clojure.core/default-data-readers" common + "clojure.core/primitives-classnames" common + "clojure.core/print-dup" common + "clojure.core/print-method" common + "clojure.core/unquote" common + "clojure.core/unquote-splicing" common + "default-data-readers" common + "primitives-classnames" common + "print-dup" common + "print-method" common + "unquote" common + "unquote-splicing" common +done + +:value Constant + * idle noeat + +:common Keyword + * idle noeat + +:ident_end Idle + * idle noeat + +# Mark remainder of symbol as bad + +:bad Bad + * bad + ")]}, \t\f\n\r;" idle noeat + +# Skip quote.. + +:quote Idle + * idle noeat + +# Look for #_x, treat as comment +# For example #_(a b c) should be all commented out + +:pound Idle + * idle noeat + "_" pound_eat recolor=-2 + +:pound_eat Comment + * idle noeat + +:comment Comment + * comment + "\n" idle + +# Check some specific common bases + +:two Constant + * number noeat + "r" binary + +:eight Constant + * number noeat + "r" octal + +:one Constant + * number noeat + "0" ten + "6" sixteen + +:ten Constant + * number noeat + "r" decimal + +:sixteen Constant + * number noeat + "r" hex + +:hex Constant + * bad noeat + "NM" bad + "0-9a-fA-F" hex + +:octal Constant + * bad noeat + "NM" bad + "0-7" octal + +:binary Constant + * bad noeat + "NM" bad + "01" binary + +:decimal Constant + * bad noeat + "NM" bad + "0-9" decimal + +# Number, no r yet... + +:number Constant + * bad noeat + "NM" bad + "0-9" number + "r" integer + "." float + "/" ratio + +# we got the r + +:integer Constant + * bad noeat + "NM" bad + "0-9" integer + +# We have a decimal point only + +:maybe_neg_float Constant + * symbol recolor=-2 noeat + "0-9" float recolor=-2 + +:maybe_float Constant + * idle recolor=-2 noeat + "0-9" float recolor=-2 + +# We have number and decimal point + +:float Constant + * bad noeat + "M" bad + "eE" epart + "0-9" float + +:epart Constant + * bad noeat + "0-9+\-" enum + +:enum Constant + * bad noeat + "M" bad + "0-9" enum + +# Ratio + +:ratio Constant + * bad noeat + "0-9" ratio + +# Strings + +:string Constant + * string + "\"" idle + "\\" string_escape recolor=-1 + +:string_escape Escape + * string + "u" string_uni4 + "0-7" string_octal2 + "\n" string recolor=-2 + +:string_uni4 Escape + * string noeat + "0-9a-fA-F" string_uni3 + +:string_uni3 Escape + * string noeat + "0-9a-fA-F" string_uni2 + +:string_uni2 Escape + * string noeat + "0-9a-fA-F" string_uni1 + +:string_uni1 Escape + * string noeat + "0-9a-fA-F" string + +:string_octal2 Escape + * string noeat + "0-7" string_octal1 + +:string_octal1 Escape + * string noeat + "0-7" string + +.end diff --git a/.joe/syntax/clojure.jsf.in b/.joe/syntax/clojure.jsf.in @@ -0,0 +1,1485 @@ +# JOE syntax highlight file for Clojure + +=Idle +=Comment green +=Escape bold cyan +=Constant cyan +=Bad bold red +=Keyword bold + +:reset Idle + * idle noeat call=.clojure() + +.subr clojure + +:idle Idle + * symbol mark buffer + " \t\f\n\r" idle + "(" idle call=.clojure(paren) + "[" idle call=.clojure(brack) + "{" idle call=.clojure(squiggly) +.ifdef paren + ")" idle return +.else + ")" stray recolor=-1 +.endif +.ifdef brack + "]" idle return +.else + "]" stray recolor=-1 +.endif +.ifdef squiggly + "}" idle return +.else + "}" stray recolor=-1 +.endif + ";" comment recolor=-1 + "1" one recolor=-1 + "2" two recolor=-1 + "8" eight recolor=-1 + "0345679" number recolor=-1 + "-" negative recolor=-1 mark buffer + "\"" string recolor=-1 + "#" pound + "'`^@~" quote + "\\" backslash recolor=-1 + "." maybe_float + +:stray Bad + * idle noeat + +:backslash Escape + * back_single buffer mark + "u" back_uni4 + "o" back_oct3 + + +:back_single Escape + * back_word recolor=-2 + "]}), \t\f\n\r;" idle noeat + +:back_word Bad + * back_word + "]}), \t\f\n\r;" idle noeat markend strings + "newline" good_literal recolormark + "space" good_literal recolormark + "tab" good_literal recolormark + "formfeed" good_literal recolormark + "backspace" good_literal recolormark + "return" goot_literal recolormark +done + +:good_literal Escape + * idle noeat + +:back_oct3 Escape + * bad noeat + "0-7" back_oct2 + +:back_oct2 Escape + * bad noeat + "0-7" back_oct1 + +:back_oct1 Escape + * bad noeat + "0-7" bad + +:back_uni4 Escape + * bad noeat + "0-9a-fA-F" back_uni3 + +:back_uni3 Escape + * bad noeat + "0-9a-fA-F" back_uni2 + +:back_uni2 Escape + * bad noeat + "0-9a-fA-F" back_uni1 + +:back_uni1 Escape + * bad noeat + "0-9a-fA-F" bad + +:negative Idle + * symbol noeat + "1" one recolor=-2 + "2" two recolor=-2 + "8" eight recolor=-2 + "0345679" number recolor=-2 + "." maybe_neg_float + +:symbol Idle + * symbol + "]}), \t\n;" ident_end noeat markend strings +# Symbols which are built-in values + "nil" value + "true" value + "false" value + "." common + "catch" common + "clojure.core/fn" common + "clojure.core/let" common + "clojure.core/loop" common + "def" common + "do" common + "finally" common + "fn" common + "if" common + "let" common + "loop" common + "monitor-enter" common + "monitor-exit" common + "new" common + "quote" common + "recur" common + "set!" common + "throw" common + "try" common + "var" common + "catch" common + "finally" common + "throw" common + "try" common + "case" common + "clojure.core/case" common + "clojure.core/cond" common + "clojure.core/cond->" common + "clojure.core/cond->>" common + "clojure.core/condp" common + "clojure.core/if-let" common + "clojure.core/if-not" common + "clojure.core/when" common + "clojure.core/when-first" common + "clojure.core/when-let" common + "clojure.core/when-not" common + "cond" common + "cond->" common + "cond->>" common + "condp" common + "if-let" common + "if-not" common + "when" common + "when-first" common + "when-let" common + "when-not" common + "clojure.core/doall" common + "clojure.core/dorun" common + "clojure.core/doseq" common + "clojure.core/dotimes" common + "clojure.core/while" common + "doall" common + "dorun" common + "doseq" common + "dotimes" common + "while" common + "clojure.core/definline" common + "clojure.core/definterface" common + "clojure.core/defmacro" common + "clojure.core/defmethod" common + "clojure.core/defmulti" common + "clojure.core/defn" common + "clojure.core/defn-" common + "clojure.core/defonce" common + "clojure.core/defprotocol" common + "clojure.core/defrecord" common + "clojure.core/defstruct" common + "clojure.core/deftype" common + "definline" common + "definterface" common + "defmacro" common + "defmethod" common + "defmulti" common + "defn" common + "defn-" common + "defonce" common + "defprotocol" common + "defrecord" common + "defstruct" common + "deftype" common + "->" common + "->>" common + ".." common + "amap" common + "and" common + "areduce" common + "as->" common + "assert" common + "binding" common + "bound-fn" common + "clojure.core/->" common + "clojure.core/->>" common + "clojure.core/.." common + "clojure.core/amap" common + "clojure.core/and" common + "clojure.core/areduce" common + "clojure.core/as->" common + "clojure.core/assert" common + "clojure.core/binding" common + "clojure.core/bound-fn" common + "clojure.core/comment" common + "clojure.core/declare" common + "clojure.core/delay" common + "clojure.core/dosync" common + "clojure.core/doto" common + "clojure.core/extend-protocol" common + "clojure.core/extend-type" common + "clojure.core/for" common + "clojure.core/future" common + "clojure.core/gen-class" common + "clojure.core/gen-interface" common + "clojure.core/import" common + "clojure.core/io!" common + "clojure.core/lazy-cat" common + "clojure.core/lazy-seq" common + "clojure.core/letfn" common + "clojure.core/locking" common + "clojure.core/memfn" common + "clojure.core/ns" common + "clojure.core/or" common + "clojure.core/proxy" common + "clojure.core/proxy-super" common + "clojure.core/pvalues" common + "clojure.core/refer-clojure" common + "clojure.core/reify" common + "clojure.core/some->" common + "clojure.core/some->>" common + "clojure.core/sync" common + "clojure.core/time" common + "clojure.core/with-bindings" common + "clojure.core/with-in-str" common + "clojure.core/with-loading-context" common + "clojure.core/with-local-vars" common + "clojure.core/with-open" common + "clojure.core/with-out-str" common + "clojure.core/with-precision" common + "clojure.core/with-redefs" common + "comment" common + "declare" common + "delay" common + "dosync" common + "doto" common + "extend-protocol" common + "extend-type" common + "for" common + "future" common + "gen-class" common + "gen-interface" common + "import" common + "io!" common + "lazy-cat" common + "lazy-seq" common + "letfn" common + "locking" common + "memfn" common + "ns" common + "or" common + "proxy" common + "proxy-super" common + "pvalues" common + "refer-clojure" common + "reify" common + "some->" common + "some->>" common + "sync" common + "time" common + "with-bindings" common + "with-in-str" common + "with-loading-context" common + "with-local-vars" common + "with-open" common + "with-out-str" common + "with-precision" common + "with-redefs" common + "*" common + "*'" common + "+" common + "+'" common + "-" common + "-'" common + "->ArrayChunk" common + "->Vec" common + "->VecNode" common + "->VecSeq" common + "-cache-protocol-fn" common + "-reset-methods" common + "/" common + "<" common + "<=" common + "=" common + "==" common + ">" common + ">=" common + "accessor" common + "aclone" common + "add-classpath" common + "add-watch" common + "agent" common + "agent-error" common + "agent-errors" common + "aget" common + "alength" common + "alias" common + "all-ns" common + "alter" common + "alter-meta!" common + "alter-var-root" common + "ancestors" common + "apply" common + "array-map" common + "aset" common + "aset-boolean" common + "aset-byte" common + "aset-char" common + "aset-double" common + "aset-float" common + "aset-int" common + "aset-long" common + "aset-short" common + "assoc" common + "assoc!" common + "assoc-in" common + "associative?" common + "atom" common + "await" common + "await-for" common + "await1" common + "bases" common + "bean" common + "bigdec" common + "bigint" common + "biginteger" common + "bit-and" common + "bit-and-not" common + "bit-clear" common + "bit-flip" common + "bit-not" common + "bit-or" common + "bit-set" common + "bit-shift-left" common + "bit-shift-right" common + "bit-test" common + "bit-xor" common + "boolean" common + "boolean-array" common + "booleans" common + "bound-fn*" common + "bound?" common + "butlast" common + "byte" common + "byte-array" common + "bytes" common + "cast" common + "char" common + "char-array" common + "char?" common + "chars" common + "chunk" common + "chunk-append" common + "chunk-buffer" common + "chunk-cons" common + "chunk-first" common + "chunk-next" common + "chunk-rest" common + "chunked-seq?" common + "class" common + "class?" common + "clear-agent-errors" common + "clojure-version" common + "clojure.core/*" common + "clojure.core/*'" common + "clojure.core/+" common + "clojure.core/+'" common + "clojure.core/-" common + "clojure.core/-'" common + "clojure.core/->ArrayChunk" common + "clojure.core/->Vec" common + "clojure.core/->VecNode" common + "clojure.core/->VecSeq" common + "clojure.core/-cache-protocol-fn" common + "clojure.core/-reset-methods" common + "clojure.core//" common + "clojure.core/<" common + "clojure.core/<=" common + "clojure.core/=" common + "clojure.core/==" common + "clojure.core/>" common + "clojure.core/>=" common + "clojure.core/accessor" common + "clojure.core/aclone" common + "clojure.core/add-classpath" common + "clojure.core/add-watch" common + "clojure.core/agent" common + "clojure.core/agent-error" common + "clojure.core/agent-errors" common + "clojure.core/aget" common + "clojure.core/alength" common + "clojure.core/alias" common + "clojure.core/all-ns" common + "clojure.core/alter" common + "clojure.core/alter-meta!" common + "clojure.core/alter-var-root" common + "clojure.core/ancestors" common + "clojure.core/apply" common + "clojure.core/array-map" common + "clojure.core/aset" common + "clojure.core/aset-boolean" common + "clojure.core/aset-byte" common + "clojure.core/aset-char" common + "clojure.core/aset-double" common + "clojure.core/aset-float" common + "clojure.core/aset-int" common + "clojure.core/aset-long" common + "clojure.core/aset-short" common + "clojure.core/assoc" common + "clojure.core/assoc!" common + "clojure.core/assoc-in" common + "clojure.core/associative?" common + "clojure.core/atom" common + "clojure.core/await" common + "clojure.core/await-for" common + "clojure.core/await1" common + "clojure.core/bases" common + "clojure.core/bean" common + "clojure.core/bigdec" common + "clojure.core/bigint" common + "clojure.core/biginteger" common + "clojure.core/bit-and" common + "clojure.core/bit-and-not" common + "clojure.core/bit-clear" common + "clojure.core/bit-flip" common + "clojure.core/bit-not" common + "clojure.core/bit-or" common + "clojure.core/bit-set" common + "clojure.core/bit-shift-left" common + "clojure.core/bit-shift-right" common + "clojure.core/bit-test" common + "clojure.core/bit-xor" common + "clojure.core/boolean" common + "clojure.core/boolean-array" common + "clojure.core/booleans" common + "clojure.core/bound-fn*" common + "clojure.core/bound?" common + "clojure.core/butlast" common + "clojure.core/byte" common + "clojure.core/byte-array" common + "clojure.core/bytes" common + "clojure.core/cast" common + "clojure.core/char" common + "clojure.core/char-array" common + "clojure.core/char?" common + "clojure.core/chars" common + "clojure.core/chunk" common + "clojure.core/chunk-append" common + "clojure.core/chunk-buffer" common + "clojure.core/chunk-cons" common + "clojure.core/chunk-first" common + "clojure.core/chunk-next" common + "clojure.core/chunk-rest" common + "clojure.core/chunked-seq?" common + "clojure.core/class" common + "clojure.core/class?" common + "clojure.core/clear-agent-errors" common + "clojure.core/clojure-version" common + "clojure.core/coll?" common + "clojure.core/commute" common + "clojure.core/comp" common + "clojure.core/comparator" common + "clojure.core/compare" common + "clojure.core/compare-and-set!" common + "clojure.core/compile" common + "clojure.core/complement" common + "clojure.core/concat" common + "clojure.core/conj" common + "clojure.core/conj!" common + "clojure.core/cons" common + "clojure.core/constantly" common + "clojure.core/construct-proxy" common + "clojure.core/contains?" common + "clojure.core/count" common + "clojure.core/counted?" common + "clojure.core/create-ns" common + "clojure.core/create-struct" common + "clojure.core/cycle" common + "clojure.core/dec" common + "clojure.core/dec'" common + "clojure.core/decimal?" common + "clojure.core/delay?" common + "clojure.core/deliver" common + "clojure.core/denominator" common + "clojure.core/deref" common + "clojure.core/derive" common + "clojure.core/descendants" common + "clojure.core/destructure" common + "clojure.core/disj" common + "clojure.core/disj!" common + "clojure.core/dissoc" common + "clojure.core/dissoc!" common + "clojure.core/distinct" common + "clojure.core/distinct?" common + "clojure.core/double" common + "clojure.core/double-array" common + "clojure.core/doubles" common + "clojure.core/drop" common + "clojure.core/drop-last" common + "clojure.core/drop-while" common + "clojure.core/empty" common + "clojure.core/empty?" common + "clojure.core/ensure" common + "clojure.core/enumeration-seq" common + "clojure.core/error-handler" common + "clojure.core/error-mode" common + "clojure.core/eval" common + "clojure.core/even?" common + "clojure.core/every-pred" common + "clojure.core/every?" common + "clojure.core/ex-data" common + "clojure.core/ex-info" common + "clojure.core/extend" common + "clojure.core/extenders" common + "clojure.core/extends?" common + "clojure.core/false?" common + "clojure.core/ffirst" common + "clojure.core/file-seq" common + "clojure.core/filter" common + "clojure.core/filterv" common + "clojure.core/find" common + "clojure.core/find-keyword" common + "clojure.core/find-ns" common + "clojure.core/find-protocol-impl" common + "clojure.core/find-protocol-method" common + "clojure.core/find-var" common + "clojure.core/first" common + "clojure.core/flatten" common + "clojure.core/float" common + "clojure.core/float-array" common + "clojure.core/float?" common + "clojure.core/floats" common + "clojure.core/flush" common + "clojure.core/fn?" common + "clojure.core/fnext" common + "clojure.core/fnil" common + "clojure.core/force" common + "clojure.core/format" common + "clojure.core/frequencies" common + "clojure.core/future-call" common + "clojure.core/future-cancel" common + "clojure.core/future-cancelled?" common + "clojure.core/future-done?" common + "clojure.core/future?" common + "clojure.core/gensym" common + "clojure.core/get" common + "clojure.core/get-in" common + "clojure.core/get-method" common + "clojure.core/get-proxy-class" common + "clojure.core/get-thread-bindings" common + "clojure.core/get-validator" common + "clojure.core/group-by" common + "clojure.core/hash" common + "clojure.core/hash-combine" common + "clojure.core/hash-map" common + "clojure.core/hash-set" common + "clojure.core/identical?" common + "clojure.core/identity" common + "clojure.core/ifn?" common + "clojure.core/in-ns" common + "clojure.core/inc" common + "clojure.core/inc'" common + "clojure.core/init-proxy" common + "clojure.core/instance?" common + "clojure.core/int" common + "clojure.core/int-array" common + "clojure.core/integer?" common + "clojure.core/interleave" common + "clojure.core/intern" common + "clojure.core/interpose" common + "clojure.core/into" common + "clojure.core/into-array" common + "clojure.core/ints" common + "clojure.core/isa?" common + "clojure.core/iterate" common + "clojure.core/iterator-seq" common + "clojure.core/juxt" common + "clojure.core/keep" common + "clojure.core/keep-indexed" common + "clojure.core/key" common + "clojure.core/keys" common + "clojure.core/keyword" common + "clojure.core/keyword?" common + "clojure.core/last" common + "clojure.core/line-seq" common + "clojure.core/list" common + "clojure.core/list*" common + "clojure.core/list?" common + "clojure.core/load" common + "clojure.core/load-file" common + "clojure.core/load-reader" common + "clojure.core/load-string" common + "clojure.core/loaded-libs" common + "clojure.core/long" common + "clojure.core/long-array" common + "clojure.core/longs" common + "clojure.core/macroexpand" common + "clojure.core/macroexpand-1" common + "clojure.core/make-array" common + "clojure.core/make-hierarchy" common + "clojure.core/map" common + "clojure.core/map-indexed" common + "clojure.core/map?" common + "clojure.core/mapcat" common + "clojure.core/mapv" common + "clojure.core/max" common + "clojure.core/max-key" common + "clojure.core/memoize" common + "clojure.core/merge" common + "clojure.core/merge-with" common + "clojure.core/meta" common + "clojure.core/method-sig" common + "clojure.core/methods" common + "clojure.core/min" common + "clojure.core/min-key" common + "clojure.core/mod" common + "clojure.core/munge" common + "clojure.core/name" common + "clojure.core/namespace" common + "clojure.core/namespace-munge" common + "clojure.core/neg?" common + "clojure.core/newline" common + "clojure.core/next" common + "clojure.core/nfirst" common + "clojure.core/nil?" common + "clojure.core/nnext" common + "clojure.core/not" common + "clojure.core/not-any?" common + "clojure.core/not-empty" common + "clojure.core/not-every?" common + "clojure.core/not=" common + "clojure.core/ns-aliases" common + "clojure.core/ns-imports" common + "clojure.core/ns-interns" common + "clojure.core/ns-map" common + "clojure.core/ns-name" common + "clojure.core/ns-publics" common + "clojure.core/ns-refers" common + "clojure.core/ns-resolve" common + "clojure.core/ns-unalias" common + "clojure.core/ns-unmap" common + "clojure.core/nth" common + "clojure.core/nthnext" common + "clojure.core/nthrest" common + "clojure.core/num" common + "clojure.core/number?" common + "clojure.core/numerator" common + "clojure.core/object-array" common + "clojure.core/odd?" common + "clojure.core/parents" common + "clojure.core/partial" common + "clojure.core/partition" common + "clojure.core/partition-all" common + "clojure.core/partition-by" common + "clojure.core/pcalls" common + "clojure.core/peek" common + "clojure.core/persistent!" common + "clojure.core/pmap" common + "clojure.core/pop" common + "clojure.core/pop!" common + "clojure.core/pop-thread-bindings" common + "clojure.core/pos?" common + "clojure.core/pr" common + "clojure.core/pr-str" common + "clojure.core/prefer-method" common + "clojure.core/prefers" common + "clojure.core/print" common + "clojure.core/print-ctor" common + "clojure.core/print-simple" common + "clojure.core/print-str" common + "clojure.core/printf" common + "clojure.core/println" common + "clojure.core/println-str" common + "clojure.core/prn" common + "clojure.core/prn-str" common + "clojure.core/promise" common + "clojure.core/proxy-call-with-super" common + "clojure.core/proxy-mappings" common + "clojure.core/proxy-name" common + "clojure.core/push-thread-bindings" common + "clojure.core/quot" common + "clojure.core/rand" common + "clojure.core/rand-int" common + "clojure.core/rand-nth" common + "clojure.core/range" common + "clojure.core/ratio?" common + "clojure.core/rational?" common + "clojure.core/rationalize" common + "clojure.core/re-find" common + "clojure.core/re-groups" common + "clojure.core/re-matcher" common + "clojure.core/re-matches" common + "clojure.core/re-pattern" common + "clojure.core/re-seq" common + "clojure.core/read" common + "clojure.core/read-line" common + "clojure.core/read-string" common + "clojure.core/realized?" common + "clojure.core/reduce" common + "clojure.core/reduce-kv" common + "clojure.core/reduced" common + "clojure.core/reduced?" common + "clojure.core/reductions" common + "clojure.core/ref" common + "clojure.core/ref-history-count" common + "clojure.core/ref-max-history" common + "clojure.core/ref-min-history" common + "clojure.core/ref-set" common + "clojure.core/refer" common + "clojure.core/release-pending-sends" common + "clojure.core/rem" common + "clojure.core/remove" common + "clojure.core/remove-all-methods" common + "clojure.core/remove-method" common + "clojure.core/remove-ns" common + "clojure.core/remove-watch" common + "clojure.core/repeat" common + "clojure.core/repeatedly" common + "clojure.core/replace" common + "clojure.core/replicate" common + "clojure.core/require" common + "clojure.core/reset!" common + "clojure.core/reset-meta!" common + "clojure.core/resolve" common + "clojure.core/rest" common + "clojure.core/restart-agent" common + "clojure.core/resultset-seq" common + "clojure.core/reverse" common + "clojure.core/reversible?" common + "clojure.core/rseq" common + "clojure.core/rsubseq" common + "clojure.core/satisfies?" common + "clojure.core/second" common + "clojure.core/select-keys" common + "clojure.core/send" common + "clojure.core/send-off" common + "clojure.core/send-via" common + "clojure.core/seq" common + "clojure.core/seq?" common + "clojure.core/seque" common + "clojure.core/sequence" common + "clojure.core/sequential?" common + "clojure.core/set" common + "clojure.core/set-agent-send-executor!" common + "clojure.core/set-agent-send-off-executor!" common + "clojure.core/set-error-handler!" common + "clojure.core/set-error-mode!" common + "clojure.core/set-validator!" common + "clojure.core/set?" common + "clojure.core/short" common + "clojure.core/short-array" common + "clojure.core/shorts" common + "clojure.core/shuffle" common + "clojure.core/shutdown-agents" common + "clojure.core/slurp" common + "clojure.core/some" common + "clojure.core/some-fn" common + "clojure.core/sort" common + "clojure.core/sort-by" common + "clojure.core/sorted-map" common + "clojure.core/sorted-map-by" common + "clojure.core/sorted-set" common + "clojure.core/sorted-set-by" common + "clojure.core/sorted?" common + "clojure.core/special-symbol?" common + "clojure.core/spit" common + "clojure.core/split-at" common + "clojure.core/split-with" common + "clojure.core/str" common + "clojure.core/string?" common + "clojure.core/struct" common + "clojure.core/struct-map" common + "clojure.core/subs" common + "clojure.core/subseq" common + "clojure.core/subvec" common + "clojure.core/supers" common + "clojure.core/swap!" common + "clojure.core/symbol" common + "clojure.core/symbol?" common + "clojure.core/take" common + "clojure.core/take-last" common + "clojure.core/take-nth" common + "clojure.core/take-while" common + "clojure.core/test" common + "clojure.core/the-ns" common + "clojure.core/thread-bound?" common + "clojure.core/to-array" common + "clojure.core/to-array-2d" common + "clojure.core/trampoline" common + "clojure.core/transient" common + "clojure.core/tree-seq" common + "clojure.core/true?" common + "clojure.core/type" common + "clojure.core/unchecked-add" common + "clojure.core/unchecked-add-int" common + "clojure.core/unchecked-byte" common + "clojure.core/unchecked-char" common + "clojure.core/unchecked-dec" common + "clojure.core/unchecked-dec-int" common + "clojure.core/unchecked-divide-int" common + "clojure.core/unchecked-double" common + "clojure.core/unchecked-float" common + "clojure.core/unchecked-inc" common + "clojure.core/unchecked-inc-int" common + "clojure.core/unchecked-int" common + "clojure.core/unchecked-long" common + "clojure.core/unchecked-multiply" common + "clojure.core/unchecked-multiply-int" common + "clojure.core/unchecked-negate" common + "clojure.core/unchecked-negate-int" common + "clojure.core/unchecked-remainder-int" common + "clojure.core/unchecked-short" common + "clojure.core/unchecked-subtract" common + "clojure.core/unchecked-subtract-int" common + "clojure.core/underive" common + "clojure.core/update-in" common + "clojure.core/update-proxy" common + "clojure.core/use" common + "clojure.core/val" common + "clojure.core/vals" common + "clojure.core/var-get" common + "clojure.core/var-set" common + "clojure.core/var?" common + "clojure.core/vary-meta" common + "clojure.core/vec" common + "clojure.core/vector" common + "clojure.core/vector-of" common + "clojure.core/vector?" common + "clojure.core/with-bindings*" common + "clojure.core/with-meta" common + "clojure.core/with-redefs-fn" common + "clojure.core/xml-seq" common + "clojure.core/zero?" common + "clojure.core/zipmap" common + "coll?" common + "commute" common + "comp" common + "comparator" common + "compare" common + "compare-and-set!" common + "compile" common + "complement" common + "concat" common + "conj" common + "conj!" common + "cons" common + "constantly" common + "construct-proxy" common + "contains?" common + "count" common + "counted?" common + "create-ns" common + "create-struct" common + "cycle" common + "dec" common + "dec'" common + "decimal?" common + "delay?" common + "deliver" common + "denominator" common + "deref" common + "derive" common + "descendants" common + "destructure" common + "disj" common + "disj!" common + "dissoc" common + "dissoc!" common + "distinct" common + "distinct?" common + "double" common + "double-array" common + "doubles" common + "drop" common + "drop-last" common + "drop-while" common + "empty" common + "empty?" common + "ensure" common + "enumeration-seq" common + "error-handler" common + "error-mode" common + "eval" common + "even?" common + "every-pred" common + "every?" common + "ex-data" common + "ex-info" common + "extend" common + "extenders" common + "extends?" common + "false?" common + "ffirst" common + "file-seq" common + "filter" common + "filterv" common + "find" common + "find-keyword" common + "find-ns" common + "find-protocol-impl" common + "find-protocol-method" common + "find-var" common + "first" common + "flatten" common + "float" common + "float-array" common + "float?" common + "floats" common + "flush" common + "fn?" common + "fnext" common + "fnil" common + "force" common + "format" common + "frequencies" common + "future-call" common + "future-cancel" common + "future-cancelled?" common + "future-done?" common + "future?" common + "gensym" common + "get" common + "get-in" common + "get-method" common + "get-proxy-class" common + "get-thread-bindings" common + "get-validator" common + "group-by" common + "hash" common + "hash-combine" common + "hash-map" common + "hash-set" common + "identical?" common + "identity" common + "ifn?" common + "in-ns" common + "inc" common + "inc'" common + "init-proxy" common + "instance?" common + "int" common + "int-array" common + "integer?" common + "interleave" common + "intern" common + "interpose" common + "into" common + "into-array" common + "ints" common + "isa?" common + "iterate" common + "iterator-seq" common + "juxt" common + "keep" common + "keep-indexed" common + "key" common + "keys" common + "keyword" common + "keyword?" common + "last" common + "line-seq" common + "list" common + "list*" common + "list?" common + "load" common + "load-file" common + "load-reader" common + "load-string" common + "loaded-libs" common + "long" common + "long-array" common + "longs" common + "macroexpand" common + "macroexpand-1" common + "make-array" common + "make-hierarchy" common + "map" common + "map-indexed" common + "map?" common + "mapcat" common + "mapv" common + "max" common + "max-key" common + "memoize" common + "merge" common + "merge-with" common + "meta" common + "method-sig" common + "methods" common + "min" common + "min-key" common + "mod" common + "munge" common + "name" common + "namespace" common + "namespace-munge" common + "neg?" common + "newline" common + "next" common + "nfirst" common + "nil?" common + "nnext" common + "not" common + "not-any?" common + "not-empty" common + "not-every?" common + "not=" common + "ns-aliases" common + "ns-imports" common + "ns-interns" common + "ns-map" common + "ns-name" common + "ns-publics" common + "ns-refers" common + "ns-resolve" common + "ns-unalias" common + "ns-unmap" common + "nth" common + "nthnext" common + "nthrest" common + "num" common + "number?" common + "numerator" common + "object-array" common + "odd?" common + "parents" common + "partial" common + "partition" common + "partition-all" common + "partition-by" common + "pcalls" common + "peek" common + "persistent!" common + "pmap" common + "pop" common + "pop!" common + "pop-thread-bindings" common + "pos?" common + "pr" common + "pr-str" common + "prefer-method" common + "prefers" common + "print" common + "print-ctor" common + "print-simple" common + "print-str" common + "printf" common + "println" common + "println-str" common + "prn" common + "prn-str" common + "promise" common + "proxy-call-with-super" common + "proxy-mappings" common + "proxy-name" common + "push-thread-bindings" common + "quot" common + "rand" common + "rand-int" common + "rand-nth" common + "range" common + "ratio?" common + "rational?" common + "rationalize" common + "re-find" common + "re-groups" common + "re-matcher" common + "re-matches" common + "re-pattern" common + "re-seq" common + "read" common + "read-line" common + "read-string" common + "realized?" common + "reduce" common + "reduce-kv" common + "reduced" common + "reduced?" common + "reductions" common + "ref" common + "ref-history-count" common + "ref-max-history" common + "ref-min-history" common + "ref-set" common + "refer" common + "release-pending-sends" common + "rem" common + "remove" common + "remove-all-methods" common + "remove-method" common + "remove-ns" common + "remove-watch" common + "repeat" common + "repeatedly" common + "replace" common + "replicate" common + "require" common + "reset!" common + "reset-meta!" common + "resolve" common + "rest" common + "restart-agent" common + "resultset-seq" common + "reverse" common + "reversible?" common + "rseq" common + "rsubseq" common + "satisfies?" common + "second" common + "select-keys" common + "send" common + "send-off" common + "send-via" common + "seq" common + "seq?" common + "seque" common + "sequence" common + "sequential?" common + "set" common + "set-agent-send-executor!" common + "set-agent-send-off-executor!" common + "set-error-handler!" common + "set-error-mode!" common + "set-validator!" common + "set?" common + "short" common + "short-array" common + "shorts" common + "shuffle" common + "shutdown-agents" common + "slurp" common + "some" common + "some-fn" common + "sort" common + "sort-by" common + "sorted-map" common + "sorted-map-by" common + "sorted-set" common + "sorted-set-by" common + "sorted?" common + "special-symbol?" common + "spit" common + "split-at" common + "split-with" common + "str" common + "string?" common + "struct" common + "struct-map" common + "subs" common + "subseq" common + "subvec" common + "supers" common + "swap!" common + "symbol" common + "symbol?" common + "take" common + "take-last" common + "take-nth" common + "take-while" common + "test" common + "the-ns" common + "thread-bound?" common + "to-array" common + "to-array-2d" common + "trampoline" common + "transient" common + "tree-seq" common + "true?" common + "type" common + "unchecked-add" common + "unchecked-add-int" common + "unchecked-byte" common + "unchecked-char" common + "unchecked-dec" common + "unchecked-dec-int" common + "unchecked-divide-int" common + "unchecked-double" common + "unchecked-float" common + "unchecked-inc" common + "unchecked-inc-int" common + "unchecked-int" common + "unchecked-long" common + "unchecked-multiply" common + "unchecked-multiply-int" common + "unchecked-negate" common + "unchecked-negate-int" common + "unchecked-remainder-int" common + "unchecked-short" common + "unchecked-subtract" common + "unchecked-subtract-int" common + "underive" common + "update-in" common + "update-proxy" common + "use" common + "val" common + "vals" common + "var-get" common + "var-set" common + "var?" common + "vary-meta" common + "vec" common + "vector" common + "vector-of" common + "vector?" common + "with-bindings*" common + "with-meta" common + "with-redefs-fn" common + "xml-seq" common + "zero?" common + "zipmap" common + "*1" common + "*2" common + "*3" common + "*agent*" common + "*allow-unresolved-vars*" common + "*assert*" common + "*clojure-version*" common + "*command-line-args*" common + "*compile-files*" common + "*compile-path*" common + "*compiler-options*" common + "*data-readers*" common + "*default-data-reader-fn*" common + "*e" common + "*err*" common + "*file*" common + "*flush-on-newline*" common + "*fn-loader*" common + "*in*" common + "*math-context*" common + "*ns*" common + "*out*" common + "*print-dup*" common + "*print-length*" common + "*print-level*" common + "*print-meta*" common + "*print-readably*" common + "*read-eval*" common + "*source-path*" common + "*unchecked-math*" common + "*use-context-classloader*" common + "*verbose-defrecords*" common + "*warn-on-reflection*" common + "EMPTY-NODE" common + "char-escape-string" common + "char-name-string" common + "clojure.core/*1" common + "clojure.core/*2" common + "clojure.core/*3" common + "clojure.core/*agent*" common + "clojure.core/*allow-unresolved-vars*" common + "clojure.core/*assert*" common + "clojure.core/*clojure-version*" common + "clojure.core/*command-line-args*" common + "clojure.core/*compile-files*" common + "clojure.core/*compile-path*" common + "clojure.core/*compiler-options*" common + "clojure.core/*data-readers*" common + "clojure.core/*default-data-reader-fn*" common + "clojure.core/*e" common + "clojure.core/*err*" common + "clojure.core/*file*" common + "clojure.core/*flush-on-newline*" common + "clojure.core/*fn-loader*" common + "clojure.core/*in*" common + "clojure.core/*math-context*" common + "clojure.core/*ns*" common + "clojure.core/*out*" common + "clojure.core/*print-dup*" common + "clojure.core/*print-length*" common + "clojure.core/*print-level*" common + "clojure.core/*print-meta*" common + "clojure.core/*print-readably*" common + "clojure.core/*read-eval*" common + "clojure.core/*source-path*" common + "clojure.core/*unchecked-math*" common + "clojure.core/*use-context-classloader*" common + "clojure.core/*verbose-defrecords*" common + "clojure.core/*warn-on-reflection*" common + "clojure.core/EMPTY-NODE" common + "clojure.core/char-escape-string" common + "clojure.core/char-name-string" common + "clojure.core/default-data-readers" common + "clojure.core/primitives-classnames" common + "clojure.core/print-dup" common + "clojure.core/print-method" common + "clojure.core/unquote" common + "clojure.core/unquote-splicing" common + "default-data-readers" common + "primitives-classnames" common + "print-dup" common + "print-method" common + "unquote" common + "unquote-splicing" common +done + +:value Constant + * idle noeat + +:common Keyword + * idle noeat + +:ident_end Idle + * idle noeat + +# Mark remainder of symbol as bad + +:bad Bad + * bad + ")]}, \t\f\n\r;" idle noeat + +# Skip quote.. + +:quote Idle + * idle noeat + +# Look for #_x, treat as comment +# For example #_(a b c) should be all commented out + +:pound Idle + * idle noeat + "_" pound_eat recolor=-2 + +:pound_eat Comment + * idle noeat + +:comment Comment + * comment + "\n" idle + +# Check some specific common bases + +:two Constant + * number noeat + "r" binary + +:eight Constant + * number noeat + "r" octal + +:one Constant + * number noeat + "0" ten + "6" sixteen + +:ten Constant + * number noeat + "r" decimal + +:sixteen Constant + * number noeat + "r" hex + +:hex Constant + * bad noeat + "NM" bad + "0-9a-fA-F" hex + +:octal Constant + * bad noeat + "NM" bad + "0-7" octal + +:binary Constant + * bad noeat + "NM" bad + "01" binary + +:decimal Constant + * bad noeat + "NM" bad + "0-9" decimal + +# Number, no r yet... + +:number Constant + * bad noeat + "NM" bad + "0-9" number + "r" integer + "." float + "/" ratio + +# we got the r + +:integer Constant + * bad noeat + "NM" bad + "0-9" integer + +# We have a decimal point only + +:maybe_neg_float Constant + * symbol recolor=-2 noeat + "0-9" float recolor=-2 + +:maybe_float Constant + * idle recolor=-2 noeat + "0-9" float recolor=-2 + +# We have number and decimal point + +:float Constant + * bad noeat + "M" bad + "eE" epart + "0-9" float + +:epart Constant + * bad noeat + "0-9+\-" enum + +:enum Constant + * bad noeat + "M" bad + "0-9" enum + +# Ratio + +:ratio Constant + * bad noeat + "0-9" ratio + +# Strings + +:string Constant + * string + "\"" idle + "\\" string_escape recolor=-1 + +:string_escape Escape + * string + "u" string_uni4 + "0-7" string_octal2 + "\n" string recolor=-2 + +:string_uni4 Escape + * string noeat + "0-9a-fA-F" string_uni3 + +:string_uni3 Escape + * string noeat + "0-9a-fA-F" string_uni2 + +:string_uni2 Escape + * string noeat + "0-9a-fA-F" string_uni1 + +:string_uni1 Escape + * string noeat + "0-9a-fA-F" string + +:string_octal2 Escape + * string noeat + "0-7" string_octal1 + +:string_octal1 Escape + * string noeat + "0-7" string + +.end diff --git a/.joe/syntax/cobol.jsf b/.joe/syntax/cobol.jsf @@ -0,0 +1,673 @@ +# JOE syntax highlight file for COBOL + +=Idle +=Bad bold red +=Preproc blue +=Define bold blue +=Comment green +=IncLocal cyan +=IncSystem bold cyan +=Constant cyan +=Escape bold cyan +=Type bold +=Keyword bold + +:reset Idle + * idle noeat + "*" line_comment recolor=-1 + " \t" reset + +:line_comment Comment + * line_comment + "\n" reset + +# All following states are for when we're not in a preprocessor line + +:idle Idle + * idle + "\n" reset + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." maybe_float + "\"" string recolor=-1 + "'" char recolor=-1 + "a-zA-Z_" ident buffer + +:first_digit Constant + * idle noeat + "xX" hex + "." float + "eE" epart + "0-7" octal + "89" bad_number recolor=-1 + +:bad_number Bad + * idle noeat + "0-9" bad_number + +:octal Constant + * idle noeat + "0-7" octal + "89" bad_number recolor=-1 + +:hex Constant + * idle noeat + "0-9A-Fa-f" hex + +:decimal Constant + * idle noeat + "0-9" decimal + "eE" epart + "." float + +:maybe_float Constant + * idle recolor=-2 noeat + "0-9" float recolor=-2 + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +:string Constant + * string + "\"" idle + "\\" string_escape recolor=-1 + "%" string_control recolor=-1 + +:string_escape Escape + * string + "x" string_hex1 + "0-7" string_octal2 + "\n" string recolor=-2 + +:string_hex1 Escape + * string noeat + "0-9a-fA-F" string_hex2 + +:string_hex2 Escape + * string noeat + "0-9a-fA-F" string + +:string_octal2 Escape + * string noeat + "0-7" string_octal3 + +:string_octal3 Escape + * string noeat + "0-7" string + +:string_control Escape + * string_control + "\n" reset + "diouxXeEfFgGaAcspn%SC" string + +:char Constant + * char + "\n" reset + "'" idle + "\\" char_escape recolor=-1 + +:char_escape Escape + * char + "x" char_hex1 + "0-7" char_octal2 + "\n" char recolor=-2 + +:char_hex1 Escape + * char noeat + "0-9a-fA-F" char_hex2 + +:char_hex2 Escape + * char noeat + "0-9a-fA-F" char + +:char_octal2 Escape + * char noeat + "0-7" char_octal3 + +:char_octal3 Escape + * char noeat + "0-7" char + +:ident Idle + * idle noeat istrings + "accept" kw + "access" kw + "add" kw + "address" kw + "advancing" kw + "after" kw + "all" kw + "allowing" kw + "alphabet" kw + "alphabetic" kw + "alphabetic-lower" kw + "alphabetic-upper" kw + "alphanumeric" kw + "alphanumeric-edited" kw + "also" kw + "alter" kw + "alternate" kw + "and" kw + "any" kw + "apply" kw + "are" kw + "area" kw + "areas" kw + "arithmetic" kw + "ascending" kw + "assign" kw + "at" kw + "author" kw + "automatic" kw + "b-and" kw + "b-exor" kw + "b-less" kw + "b-not" kw + "b-or" kw + "basis" kw + "before" kw + "beginning" kw + "binary" kw + "bit" kw + "bits" kw + "blank" kw + "block" kw + "boolean" kw + "bottom" kw + "by" kw + "call" kw + "cancel" kw + "cbl" kw + "cd" kw + "cf" kw + "ch" kw + "character" kw + "characters" kw + "class" kw + "class-id" kw + "clock-units" kw + "close" kw + "cobol" kw + "code" kw + "code-set" kw + "collating" kw + "column" kw + "com-reg" kw + "comma" kw + "commit" kw + "common" kw + "communication" kw + "comp" kw + "comp-1" kw + "comp-2" kw + "comp-3" kw + "comp-4" kw + "comp-5" kw + "comp-6" kw + "comp-7" kw + "comp-8" kw + "comp-9" kw + "computational" kw + "computational-1" kw + "computational-2" kw + "computational-3" kw + "computational-4" kw + "computational-5" kw + "computational-6" kw + "computational-7" kw + "computational-8" kw + "computational-9" kw + "compute" kw + "configuration" kw + "connect" kw + "contained" kw + "contains" kw + "content" kw + "continue" kw + "control" kw + "controls" kw + "converting" kw + "copy" kw + "corr" kw + "corresponding" kw + "count" kw + "currency" kw + "current" kw + "cycle" kw + "data" kw + "date" kw + "date-compiled" kw + "date-written" kw + "day" kw + "day-of-week" kw + "db" kw + "db-access-control-key" kw + "db-data-name" kw + "db-exception" kw + "db-record-name" kw + "db-set-name" kw + "db-status" kw + "dbcs" kw + "de" kw + "debug-contents" kw + "debug-item" kw + "debug-line" kw + "debug-name" kw + "debug-sub-1" kw + "debug-sub-2" kw + "debug-sub-3" kw + "debugging" kw + "decimal-point" kw + "declaratives" kw + "default" kw + "delete" kw + "delimited" kw + "delimiter" kw + "depending" kw + "descending" kw + "destination" kw + "detail" kw + "disable" kw + "disconnect" kw + "display" kw + "display-1" kw + "display-2" kw + "display-3" kw + "display-4" kw + "display-5" kw + "display-6" kw + "display-7" kw + "display-8" kw + "display-9" kw + "divide" kw + "division" kw + "down" kw + "duplicate" kw + "duplicates" kw + "dynamic" kw + "egcs" kw + "egi" kw + "eject" kw + "else" kw + "emi" kw + "empty" kw + "enable" kw + "end" kw + "end-add" kw + "end-call" kw + "end-compute" kw + "end-delete" kw + "end-disable" kw + "end-divide" kw + "end-enable" kw + "end-evaluate" kw + "end-if" kw + "end-invoke" kw + "end-multiply" kw + "end-of-page" kw + "end-perform" kw + "end-read" kw + "end-receive" kw + "end-return" kw + "end-rewrite" kw + "end-search" kw + "end-send" kw + "end-start" kw + "end-string" kw + "end-subtract" kw + "end-transceive" kw + "end-unstring" kw + "end-write" kw + "ending" kw + "enter" kw + "entry" kw + "environment" kw + "eop" kw + "equal" kw + "equals" kw + "erase" kw + "error" kw + "esi" kw + "evaluate" kw + "every" kw + "exact" kw + "exceeds" kw + "exception" kw + "exclusive" kw + "exit" kw + "extend" kw + "external" kw + "false" const + "fd" kw + "fetch" kw + "file" kw + "file-control" kw + "filler" kw + "final" kw + "find" kw + "finish" kw + "first" kw + "footing" kw + "for" kw + "form" kw + "format" kw + "free" kw + "from" kw + "function" kw + "generate" kw + "get" kw + "giving" kw + "global" kw + "go" kw + "goback" kw + "greater" kw + "group" kw + "heading" kw + "high-value" const + "high-values" const + "i-o" kw + "i-o-control" kw + "id" kw + "identification" kw + "if" kw + "in" kw + "index" kw + "index-1" kw + "index-2" kw + "index-3" kw + "index-4" kw + "index-5" kw + "index-6" kw + "index-7" kw + "index-8" kw + "index-9" kw + "indexed" kw + "indicate" kw + "inherits" kw + "initial" kw + "initialize" kw + "initiate" kw + "input" kw + "input-output" kw + "insert" kw + "inspect" kw + "installation" kw + "into" kw + "invalid" kw + "invoke" kw + "is" kw + "just" kw + "justified" kw + "kanji" kw + "keep" kw + "key" kw + "label" kw + "last" kw + "ld" kw + "leading" kw + "left" kw + "length" kw + "less" kw + "limit" kw + "limits" kw + "linage" kw + "linage-counter" kw + "line" kw + "line-counter" kw + "lines" kw + "linkage" kw + "locally" kw + "local-storage" kw + "lock" kw + "low-value" const + "low-values" const + "member" kw + "memory" kw + "merge" kw + "message" kw + "metaclass" kw + "method" kw + "method-id" kw + "mode" kw + "modify" kw + "modules" kw + "more-labels" kw + "move" kw + "multiple" kw + "multiply" kw + "native" kw + "negative" kw + "next" kw + "no" kw + "normal" kw + "not" kw + "null" const + "nulls" const + "number" kw + "numeric" kw + "numeric-edited" kw + "object" kw + "object-computer" kw + "occurs" kw + "of" kw + "off" kw + "omitted" kw + "on" kw + "only" kw + "open" kw + "optional" kw + "or" kw + "order" kw + "organization" kw + "other" kw + "output" kw + "overflow" kw + "override" kw + "owner" kw + "packed-decimal" kw + "padding" kw + "page" kw + "page-counter" kw + "paragraph" kw + "password" kw + "perform" kw + "pf" kw + "ph" kw + "pic" kw + "picture" kw + "plus" kw + "pointer" kw + "position" kw + "positive" kw + "present" kw + "previous" kw + "printing" kw + "prior" kw + "procedure" kw + "procedure-pointer" kw + "procedures" kw + "proceed" kw + "processing" kw + "program" kw + "program-id" kw + "protected" kw + "purge" kw + "queue" kw + "quote" const + "quotes" const + "random" kw + "rd" kw + "read" kw + "ready" kw + "realm" kw + "receive" kw + "reconnect" kw + "record" kw + "record-name" kw + "recording" kw + "records" kw + "recursive" kw + "redefines" kw + "reel" kw + "reference" kw + "references" kw + "relation" kw + "relative" kw + "release" kw + "reload" kw + "remainder" kw + "removal" kw + "renames" kw + "repeated" kw + "replace" kw + "replacing" kw + "report" kw + "reporting" kw + "reports" kw + "repository" kw + "rerun" kw + "reserve" kw + "reset" kw + "retaining" kw + "retrieval" kw + "return" kw + "return-code" kw + "returning" kw + "reversed" kw + "rewind" kw + "rewrite" kw + "rf" kw + "rh" kw + "right" kw + "rollback" kw + "rounded" kw + "run" kw + "same" kw + "sd" kw + "search" kw + "section" kw + "security" kw + "segment" kw + "segment-limit" kw + "select" kw + "self" kw + "send" kw + "sentence" kw + "separate" kw + "sequence" kw + "sequential" kw + "service" kw + "session-id" kw + "set" kw + "shared" kw + "shift-in" kw + "shift-out" kw + "sign" kw + "size" kw + "skip1" kw + "skip2" kw + "skip3" kw + "sort" kw + "sort-control" kw + "sort-core-size" kw + "sort-file-size" kw + "sort-merge" kw + "sort-message" kw + "sort-mode-size" kw + "sort-return" kw + "source" kw + "source-computer" kw + "space" const + "spaces" const + "special-names" kw + "standard" kw + "standard-1" kw + "standard-2" kw + "standard-3" kw + "standard-4" kw + "start" kw + "status" kw + "stop" kw + "store" kw + "string" kw + "sub-queue-1" kw + "sub-queue-2" kw + "sub-queue-3" kw + "sub-schema" kw + "subtract" kw + "sum" kw + "super" kw + "suppress" kw + "symbolic" kw + "sync" kw + "synchronized" kw + "table" kw + "tally" kw + "tallying" kw + "tape" kw + "tenant" kw + "terminal" kw + "terminate" kw + "test" kw + "text" kw + "than" kw + "then" kw + "through" kw + "thru" kw + "time" kw + "timeout" kw + "times" kw + "title" kw + "to" kw + "top" kw + "trace" kw + "trailing" kw + "transceive" kw + "true" const + "type" kw + "unequal" kw + "unit" kw + "unstring" kw + "until" kw + "up" kw + "update" kw + "upon" kw + "usage" kw + "usage-mode" kw + "use" kw + "using" kw + "valid" kw + "validate" kw + "value" kw + "values" kw + "varying" kw + "wait" kw + "when" kw + "when-compiled" kw + "with" kw + "within" kw + "words" kw + "working-storage" kw + "write" kw + "write-only" kw + "zero" const + "zeroes" const + "zeros" const +done + "a-zA-Z0-9_\-" ident + +:kw Keyword + * idle noeat + +:const Constant + * idle noeat diff --git a/.joe/syntax/cobol.jsf.in b/.joe/syntax/cobol.jsf.in @@ -0,0 +1,673 @@ +# JOE syntax highlight file for COBOL + +=Idle +=Bad bold red +=Preproc blue +=Define bold blue +=Comment green +=IncLocal cyan +=IncSystem bold cyan +=Constant cyan +=Escape bold cyan +=Type bold +=Keyword bold + +:reset Idle + * idle noeat + "*" line_comment recolor=-1 + " \t" reset + +:line_comment Comment + * line_comment + "\n" reset + +# All following states are for when we're not in a preprocessor line + +:idle Idle + * idle + "\n" reset + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." maybe_float + "\"" string recolor=-1 + "'" char recolor=-1 + "a-zA-Z_" ident buffer + +:first_digit Constant + * idle noeat + "xX" hex + "." float + "eE" epart + "0-7" octal + "89" bad_number recolor=-1 + +:bad_number Bad + * idle noeat + "0-9" bad_number + +:octal Constant + * idle noeat + "0-7" octal + "89" bad_number recolor=-1 + +:hex Constant + * idle noeat + "0-9A-Fa-f" hex + +:decimal Constant + * idle noeat + "0-9" decimal + "eE" epart + "." float + +:maybe_float Constant + * idle recolor=-2 noeat + "0-9" float recolor=-2 + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +:string Constant + * string + "\"" idle + "\\" string_escape recolor=-1 + "%" string_control recolor=-1 + +:string_escape Escape + * string + "x" string_hex1 + "0-7" string_octal2 + "\n" string recolor=-2 + +:string_hex1 Escape + * string noeat + "0-9a-fA-F" string_hex2 + +:string_hex2 Escape + * string noeat + "0-9a-fA-F" string + +:string_octal2 Escape + * string noeat + "0-7" string_octal3 + +:string_octal3 Escape + * string noeat + "0-7" string + +:string_control Escape + * string_control + "\n" reset + "diouxXeEfFgGaAcspn%SC" string + +:char Constant + * char + "\n" reset + "'" idle + "\\" char_escape recolor=-1 + +:char_escape Escape + * char + "x" char_hex1 + "0-7" char_octal2 + "\n" char recolor=-2 + +:char_hex1 Escape + * char noeat + "0-9a-fA-F" char_hex2 + +:char_hex2 Escape + * char noeat + "0-9a-fA-F" char + +:char_octal2 Escape + * char noeat + "0-7" char_octal3 + +:char_octal3 Escape + * char noeat + "0-7" char + +:ident Idle + * idle noeat istrings + "accept" kw + "access" kw + "add" kw + "address" kw + "advancing" kw + "after" kw + "all" kw + "allowing" kw + "alphabet" kw + "alphabetic" kw + "alphabetic-lower" kw + "alphabetic-upper" kw + "alphanumeric" kw + "alphanumeric-edited" kw + "also" kw + "alter" kw + "alternate" kw + "and" kw + "any" kw + "apply" kw + "are" kw + "area" kw + "areas" kw + "arithmetic" kw + "ascending" kw + "assign" kw + "at" kw + "author" kw + "automatic" kw + "b-and" kw + "b-exor" kw + "b-less" kw + "b-not" kw + "b-or" kw + "basis" kw + "before" kw + "beginning" kw + "binary" kw + "bit" kw + "bits" kw + "blank" kw + "block" kw + "boolean" kw + "bottom" kw + "by" kw + "call" kw + "cancel" kw + "cbl" kw + "cd" kw + "cf" kw + "ch" kw + "character" kw + "characters" kw + "class" kw + "class-id" kw + "clock-units" kw + "close" kw + "cobol" kw + "code" kw + "code-set" kw + "collating" kw + "column" kw + "com-reg" kw + "comma" kw + "commit" kw + "common" kw + "communication" kw + "comp" kw + "comp-1" kw + "comp-2" kw + "comp-3" kw + "comp-4" kw + "comp-5" kw + "comp-6" kw + "comp-7" kw + "comp-8" kw + "comp-9" kw + "computational" kw + "computational-1" kw + "computational-2" kw + "computational-3" kw + "computational-4" kw + "computational-5" kw + "computational-6" kw + "computational-7" kw + "computational-8" kw + "computational-9" kw + "compute" kw + "configuration" kw + "connect" kw + "contained" kw + "contains" kw + "content" kw + "continue" kw + "control" kw + "controls" kw + "converting" kw + "copy" kw + "corr" kw + "corresponding" kw + "count" kw + "currency" kw + "current" kw + "cycle" kw + "data" kw + "date" kw + "date-compiled" kw + "date-written" kw + "day" kw + "day-of-week" kw + "db" kw + "db-access-control-key" kw + "db-data-name" kw + "db-exception" kw + "db-record-name" kw + "db-set-name" kw + "db-status" kw + "dbcs" kw + "de" kw + "debug-contents" kw + "debug-item" kw + "debug-line" kw + "debug-name" kw + "debug-sub-1" kw + "debug-sub-2" kw + "debug-sub-3" kw + "debugging" kw + "decimal-point" kw + "declaratives" kw + "default" kw + "delete" kw + "delimited" kw + "delimiter" kw + "depending" kw + "descending" kw + "destination" kw + "detail" kw + "disable" kw + "disconnect" kw + "display" kw + "display-1" kw + "display-2" kw + "display-3" kw + "display-4" kw + "display-5" kw + "display-6" kw + "display-7" kw + "display-8" kw + "display-9" kw + "divide" kw + "division" kw + "down" kw + "duplicate" kw + "duplicates" kw + "dynamic" kw + "egcs" kw + "egi" kw + "eject" kw + "else" kw + "emi" kw + "empty" kw + "enable" kw + "end" kw + "end-add" kw + "end-call" kw + "end-compute" kw + "end-delete" kw + "end-disable" kw + "end-divide" kw + "end-enable" kw + "end-evaluate" kw + "end-if" kw + "end-invoke" kw + "end-multiply" kw + "end-of-page" kw + "end-perform" kw + "end-read" kw + "end-receive" kw + "end-return" kw + "end-rewrite" kw + "end-search" kw + "end-send" kw + "end-start" kw + "end-string" kw + "end-subtract" kw + "end-transceive" kw + "end-unstring" kw + "end-write" kw + "ending" kw + "enter" kw + "entry" kw + "environment" kw + "eop" kw + "equal" kw + "equals" kw + "erase" kw + "error" kw + "esi" kw + "evaluate" kw + "every" kw + "exact" kw + "exceeds" kw + "exception" kw + "exclusive" kw + "exit" kw + "extend" kw + "external" kw + "false" const + "fd" kw + "fetch" kw + "file" kw + "file-control" kw + "filler" kw + "final" kw + "find" kw + "finish" kw + "first" kw + "footing" kw + "for" kw + "form" kw + "format" kw + "free" kw + "from" kw + "function" kw + "generate" kw + "get" kw + "giving" kw + "global" kw + "go" kw + "goback" kw + "greater" kw + "group" kw + "heading" kw + "high-value" const + "high-values" const + "i-o" kw + "i-o-control" kw + "id" kw + "identification" kw + "if" kw + "in" kw + "index" kw + "index-1" kw + "index-2" kw + "index-3" kw + "index-4" kw + "index-5" kw + "index-6" kw + "index-7" kw + "index-8" kw + "index-9" kw + "indexed" kw + "indicate" kw + "inherits" kw + "initial" kw + "initialize" kw + "initiate" kw + "input" kw + "input-output" kw + "insert" kw + "inspect" kw + "installation" kw + "into" kw + "invalid" kw + "invoke" kw + "is" kw + "just" kw + "justified" kw + "kanji" kw + "keep" kw + "key" kw + "label" kw + "last" kw + "ld" kw + "leading" kw + "left" kw + "length" kw + "less" kw + "limit" kw + "limits" kw + "linage" kw + "linage-counter" kw + "line" kw + "line-counter" kw + "lines" kw + "linkage" kw + "locally" kw + "local-storage" kw + "lock" kw + "low-value" const + "low-values" const + "member" kw + "memory" kw + "merge" kw + "message" kw + "metaclass" kw + "method" kw + "method-id" kw + "mode" kw + "modify" kw + "modules" kw + "more-labels" kw + "move" kw + "multiple" kw + "multiply" kw + "native" kw + "negative" kw + "next" kw + "no" kw + "normal" kw + "not" kw + "null" const + "nulls" const + "number" kw + "numeric" kw + "numeric-edited" kw + "object" kw + "object-computer" kw + "occurs" kw + "of" kw + "off" kw + "omitted" kw + "on" kw + "only" kw + "open" kw + "optional" kw + "or" kw + "order" kw + "organization" kw + "other" kw + "output" kw + "overflow" kw + "override" kw + "owner" kw + "packed-decimal" kw + "padding" kw + "page" kw + "page-counter" kw + "paragraph" kw + "password" kw + "perform" kw + "pf" kw + "ph" kw + "pic" kw + "picture" kw + "plus" kw + "pointer" kw + "position" kw + "positive" kw + "present" kw + "previous" kw + "printing" kw + "prior" kw + "procedure" kw + "procedure-pointer" kw + "procedures" kw + "proceed" kw + "processing" kw + "program" kw + "program-id" kw + "protected" kw + "purge" kw + "queue" kw + "quote" const + "quotes" const + "random" kw + "rd" kw + "read" kw + "ready" kw + "realm" kw + "receive" kw + "reconnect" kw + "record" kw + "record-name" kw + "recording" kw + "records" kw + "recursive" kw + "redefines" kw + "reel" kw + "reference" kw + "references" kw + "relation" kw + "relative" kw + "release" kw + "reload" kw + "remainder" kw + "removal" kw + "renames" kw + "repeated" kw + "replace" kw + "replacing" kw + "report" kw + "reporting" kw + "reports" kw + "repository" kw + "rerun" kw + "reserve" kw + "reset" kw + "retaining" kw + "retrieval" kw + "return" kw + "return-code" kw + "returning" kw + "reversed" kw + "rewind" kw + "rewrite" kw + "rf" kw + "rh" kw + "right" kw + "rollback" kw + "rounded" kw + "run" kw + "same" kw + "sd" kw + "search" kw + "section" kw + "security" kw + "segment" kw + "segment-limit" kw + "select" kw + "self" kw + "send" kw + "sentence" kw + "separate" kw + "sequence" kw + "sequential" kw + "service" kw + "session-id" kw + "set" kw + "shared" kw + "shift-in" kw + "shift-out" kw + "sign" kw + "size" kw + "skip1" kw + "skip2" kw + "skip3" kw + "sort" kw + "sort-control" kw + "sort-core-size" kw + "sort-file-size" kw + "sort-merge" kw + "sort-message" kw + "sort-mode-size" kw + "sort-return" kw + "source" kw + "source-computer" kw + "space" const + "spaces" const + "special-names" kw + "standard" kw + "standard-1" kw + "standard-2" kw + "standard-3" kw + "standard-4" kw + "start" kw + "status" kw + "stop" kw + "store" kw + "string" kw + "sub-queue-1" kw + "sub-queue-2" kw + "sub-queue-3" kw + "sub-schema" kw + "subtract" kw + "sum" kw + "super" kw + "suppress" kw + "symbolic" kw + "sync" kw + "synchronized" kw + "table" kw + "tally" kw + "tallying" kw + "tape" kw + "tenant" kw + "terminal" kw + "terminate" kw + "test" kw + "text" kw + "than" kw + "then" kw + "through" kw + "thru" kw + "time" kw + "timeout" kw + "times" kw + "title" kw + "to" kw + "top" kw + "trace" kw + "trailing" kw + "transceive" kw + "true" const + "type" kw + "unequal" kw + "unit" kw + "unstring" kw + "until" kw + "up" kw + "update" kw + "upon" kw + "usage" kw + "usage-mode" kw + "use" kw + "using" kw + "valid" kw + "validate" kw + "value" kw + "values" kw + "varying" kw + "wait" kw + "when" kw + "when-compiled" kw + "with" kw + "within" kw + "words" kw + "working-storage" kw + "write" kw + "write-only" kw + "zero" const + "zeroes" const + "zeros" const +done + "a-zA-Z0-9_\-" ident + +:kw Keyword + * idle noeat + +:const Constant + * idle noeat diff --git a/.joe/syntax/coffee.jsf b/.joe/syntax/coffee.jsf @@ -0,0 +1,531 @@ +# JOE syntax highlight file for Coffeescript + +# node = a.b.c /\s+/ seems to be allowed, foo +# need to recognize ... and .. +# include - as part of number? + +# after term: it's a regex if + +# suppress literals after . + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Operator bold +=Keyword bold +=Bad bold red + +:pre_idle Idle + * NULL noeat call=.coffee() + +.subr coffee + +:idle Idle + * idle + "(" idle call=.coffee(paren) + "[" idle call=.coffee(brack) + "{" idle call=.coffee(squiggly) +.ifdef paren + ")" idle return +.else + ")" stray recolor=-1 +.endif +.ifdef brack + "]" idle return +.else + "]" stray recolor=-1 +.endif +.ifdef squiggly + "}" idle return +.else + "}" stray recolor=-1 +.endif + "#" comment recolor=-1 + "0" zero recolor=-1 + "1-9" decimal recolor=-1 + "." decimal_point recolor=-1 + "\"" maybe_string recolor=-1 + "'" maybe_char recolor=-1 + "/" slash recolor=-1 + "@$\i" ident buffer + +:stray Bad + * idle + +:after_term Idle + * idle noeat + " \t" after_term_1 + "/" slash_after_term_0 + +# "foo/x" is division? +# "foo/ x" is division. + +:slash_after_term_0 Idle + * idle noeat + +:after_term_1 Idle + * idle noeat + " \t" after_term_1 + "/" slash_after_term_1 + +# "foo / x" is division +# "foo /x" is regex + +:slash_after_term_1 Idle + * sregex noeat + "/" slashslash + " = " idle noeat + +:comment Comment + * line_comment noeat + "#" maybe_block_comment + +:maybe_block_comment Comment + * line_comment noeat + "#" maybe_block_comment_1 + +# This is weird... #### is a line comment, but ### is a block comment + +:maybe_block_comment_1 Comment + * block_comment noeat + "#" line_comment + +:line_comment Comment + * line_comment + "\n" idle + +:block_comment Comment + * block_comment + "#" block_comment_1 + +:block_comment_1 Comment + * block_comment noeat + "#" block_comment_2 + +:block_comment_2 Comment + * block_comment noeat + "#" idle + +# Check for regex + +:slash Constant + * sregex noeat + "/" slashslash + +:slashslash Constant + * after_term noeat + "/" regex + +# Regex like this ///foo/// + +:regex Constant + * regex + "\\" regex_escape recolor=-1 + "#" regex_maybe_subst + "/" regexslash + +:regex_maybe_subst Constant + * regex noeat + "{" regex recolor=-2 call=.coffee(squiggly) + +:regexslash Constant + * regex noeat + "/" regexslashslash + +:regexslashslash Constant + * regex noeat + "/" after_term + +:regex_escape Escape + * regex + "x" regex_hex2 + "u" regex_hex4 + +:regex_uni Escape + * regex_uni + "}" regex + +:regex_hex4 Escape + * regex noeat + "{" regex_uni + "0-9a-fA-F" regex_hex3 + +:regex_hex3 Escape + * regex noeat + "0-9a-fA-F" regex_hex2 + +:regex_hex2 Escape + * regex noeat + "0-9a-fA-F" regex_hex1 + +:regex_hex1 Escape + * regex noeat + "0-9a-fA-F" regex + +# Regex like this: /foo/ + +:sregex Constant + * sregex + "\\" sregex_escape recolor=-1 + "#" sregex_maybe_subst + "/" after_term + +:sregex_maybe_subst Constant + * sregex noeat + "{" sregex call=.coffee(squiggly) recolor=-2 + +:sregex_escape Escape + * sregex + "x" sregex_hex2 + "u" sregex_hex4 + +:sregex_uni Escape + * sregex_uni + "}" sregex + +:sregex_hex4 Escape + * sregex noeat + "{" sregex_uni + "0-9a-fA-F" sregex_hex3 + +:sregex_hex3 Escape + * sregex noeat + "0-9a-fA-F" sregex_hex2 + +:sregex_hex2 Escape + * sregex noeat + "0-9a-fA-F" sregex_hex1 + +:sregex_hex1 Escape + * sregex noeat + "0-9a-fA-F" sregex + +# Numbers + +:bad_number Bad + * after_term noeat + "0-9" bad_number + +:zero Constant + * after_term noeat + "b" binary + "o" octal + "x" hex + "." maybe_float + "eE" epart + "0-9" decimal recolor=-1 + +:decimal_point Constant + * after_term noeat recolor=-2 + "." decimal_point_1 recolor=-2 + "\i" not_ident recolor=-2 + "0-9" float + +:not_ident Idle + * after_term noeat + "\c" not_ident + +:decimal_point_1 Idle + * idle noeat + "." idle + +:octal Constant + * after_term noeat + "0-7_" octal + "89" bad_number recolor=-1 + +:binary Constant + * after_term noeat + "01_" binary + "2-9" bad_number recolor=-1 + +:hex Constant + * after_term noeat + "0-9A-Fa-f_" hex + +:decimal Constant + * after_term noeat + "0-9_" decimal + "eE" epart + "." maybe_float + +:maybe_float Constant + * after_term noeat recolor=-2 + "." decimal_point_1 recolor=-2 + "eE" epart + "0-9_" float + +:float Constant + * after_term noeat + "eE" epart + "0-9_" float + +:epart Constant + * after_term noeat + "0-9+\-" enum + +:enum Constant + * after_term noeat + "0-9_" enum + +# strings like "hello" + +:maybe_string Constant + * string noeat + "\"" maybe_string_1 + +:maybe_string_1 Constant + * after_term noeat + "\"" stringstring + +:string Constant + * string + "\"" after_term + "#" string_maybe_subst + "\\" string_escape recolor=-1 + +:string_maybe_subst Constant + * string noeat + "{" string call=.coffee(squiggly) recolor=-2 + +:string_escape Escape + * string + "x" string_hex2 + "u" string_hex4 + +:string_uni Escape + * string_uni + "}" string + +:string_hex4 Escape + * string noeat + "{" string_uni + "0-9a-fA-F" string_hex3 + +:string_hex3 Escape + * string noeat + "0-9a-fA-F" string_hex2 + +:string_hex2 Escape + * string noeat + "0-9a-fA-F" string_hex1 + +:string_hex1 Escape + * string noeat + "0-9a-fA-F" string + +# Strings like """ foo """ + +:stringstring Constant + * stringstring + "\"" stringstring_1 + "#" stringstring_maybe_subst + "\\" stringstring_escape recolor=-1 + +:stringstring_1 Constant + * stringstring noeat + "\"" stringstring_2 + +:stringstring_2 Constant + * stringstring noeat + "\"" after_term + +:stringstring_maybe_subst Constant + * stringstring noeat + "{" stringstring call=.coffee(squiggly) recolor=-2 + +:stringstring_escape Escape + * stringstring + "x" stringstring_hex2 + "u" stringstring_hex4 + +:stringstring_uni Escape + * stringstring_uni + "}" stringstring + +:stringstring_hex4 Escape + * stringstring noeat + "{" stringstring_uni + "0-9a-fA-F" stringstring_hex3 + +:stringstring_hex3 Escape + * stringstring noeat + "0-9a-fA-F" stringstring_hex2 + +:stringstring_hex2 Escape + * stringstring noeat + "0-9a-fA-F" stringstring_hex1 + +:stringstring_hex1 Escape + * stringstring noeat + "0-9a-fA-F" stringstring + +# character constants like 'h' + +:maybe_char Constant + * char noeat + "'" maybe_char_1 + +:maybe_char_1 Constant + * after_term noeat + "'" charchar + +:char Constant + * char + "'" after_term + "\\" char_escape recolor=-1 + +:char_escape Escape + * char noeat + "x" char_hex2 + "u" char_hex4 + +:char_uni Escape + * char_uni + "}" char_done + +:char_hex4 Escape + * char noeat + "{" char_uni + "0-9a-fA-F" char_hex3 + +:char_hex3 Escape + * char noeat + "0-9a-fA-F" char_hex2 + +:char_hex2 Escape + * char noeat + "0-9a-fA-F" char_hex1 + +:char_hex1 Escape + * char noeat + "0-9a-fA-F" char + +# strings like this '''foo''' + +:charchar Constant + * charchar + "'" charchar_1 + "\\" charchar_escape recolor=-1 + +:charchar_1 Constant + * charchar noeat + "'" charchar_2 + +:charchar_2 Constant + * charchar noeat + "'" after_term + +:charchar_escape Escape + * charchar noeat + "x" charchar_hex2 + "u" charchar_hex4 + +:charchar_uni Escape + * charchar_uni + "}" charchar_done + +:charchar_hex4 Escape + * charchar noeat + "{" charchar_uni + "0-9a-fA-F" charchar_hex3 + +:charchar_hex3 Escape + * charchar noeat + "0-9a-fA-F" charchar_hex2 + +:charchar_hex2 Escape + * charchar noeat + "0-9a-fA-F" charchar_hex1 + +:charchar_hex1 Escape + * charchar noeat + "0-9a-fA-F" charchar + + +# Identifiers + +:ident Idle + * after_term noeat strings + "and" operator + "break" kw + "by" kw + "catch" kw + "class" kw + "continue" kw + "delete" kw + "debugger" kw + "do" kw + "else" kw + "extends" kw + "false" lit + "finally" kw + "for" kw + "if" kw + "in" kw + "instanceof" kw + "is" kw + "isnt" kw + "loop" kw + "new" kw + "no" lit + "not" operator + "null" lit + "off" lit + "of" kw + "on" lit + "or" operator + "return" kw + "super" kw + "switch" kw + "then" kw + "this" lit + "throw" kw + "true" lit + "try" kw + "typeof" kw + "undefined" lit + "unless" kw + "until" kw + "when" kw + "while" kw + "yes" lit + "yield" kw + "case" forbid + "default" forbid + "function" forbid + "var" forbid + "void" forbid + "with" forbid + "const" forbid + "let" forbid + "enum" forbid + "export" forbid + "import" forbid + "native" forbid + "implements" forbid + "interface" forbid + "package" forbid + "private" forbid + "protected" forbid + "public" forbid + "static" forbid + "arguments" forbid + "eval" forbid +done + "$\c" ident + +:kw Keyword + * idle noeat + +:forbid Keyword + * idle noeat + +:lit Constant + * after_term noeat + +:operator Operator + * idle noeat + +.end diff --git a/.joe/syntax/coffee.jsf.in b/.joe/syntax/coffee.jsf.in @@ -0,0 +1,531 @@ +# JOE syntax highlight file for Coffeescript + +# node = a.b.c /\s+/ seems to be allowed, foo +# need to recognize ... and .. +# include - as part of number? + +# after term: it's a regex if + +# suppress literals after . + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Operator bold +=Keyword bold +=Bad bold red + +:pre_idle Idle + * NULL noeat call=.coffee() + +.subr coffee + +:idle Idle + * idle + "(" idle call=.coffee(paren) + "[" idle call=.coffee(brack) + "{" idle call=.coffee(squiggly) +.ifdef paren + ")" idle return +.else + ")" stray recolor=-1 +.endif +.ifdef brack + "]" idle return +.else + "]" stray recolor=-1 +.endif +.ifdef squiggly + "}" idle return +.else + "}" stray recolor=-1 +.endif + "#" comment recolor=-1 + "0" zero recolor=-1 + "1-9" decimal recolor=-1 + "." decimal_point recolor=-1 + "\"" maybe_string recolor=-1 + "'" maybe_char recolor=-1 + "/" slash recolor=-1 + "@$\i" ident buffer + +:stray Bad + * idle + +:after_term Idle + * idle noeat + " \t" after_term_1 + "/" slash_after_term_0 + +# "foo/x" is division? +# "foo/ x" is division. + +:slash_after_term_0 Idle + * idle noeat + +:after_term_1 Idle + * idle noeat + " \t" after_term_1 + "/" slash_after_term_1 + +# "foo / x" is division +# "foo /x" is regex + +:slash_after_term_1 Idle + * sregex noeat + "/" slashslash + " = " idle noeat + +:comment Comment + * line_comment noeat + "#" maybe_block_comment + +:maybe_block_comment Comment + * line_comment noeat + "#" maybe_block_comment_1 + +# This is weird... #### is a line comment, but ### is a block comment + +:maybe_block_comment_1 Comment + * block_comment noeat + "#" line_comment + +:line_comment Comment + * line_comment + "\n" idle + +:block_comment Comment + * block_comment + "#" block_comment_1 + +:block_comment_1 Comment + * block_comment noeat + "#" block_comment_2 + +:block_comment_2 Comment + * block_comment noeat + "#" idle + +# Check for regex + +:slash Constant + * sregex noeat + "/" slashslash + +:slashslash Constant + * after_term noeat + "/" regex + +# Regex like this ///foo/// + +:regex Constant + * regex + "\\" regex_escape recolor=-1 + "#" regex_maybe_subst + "/" regexslash + +:regex_maybe_subst Constant + * regex noeat + "{" regex recolor=-2 call=.coffee(squiggly) + +:regexslash Constant + * regex noeat + "/" regexslashslash + +:regexslashslash Constant + * regex noeat + "/" after_term + +:regex_escape Escape + * regex + "x" regex_hex2 + "u" regex_hex4 + +:regex_uni Escape + * regex_uni + "}" regex + +:regex_hex4 Escape + * regex noeat + "{" regex_uni + "0-9a-fA-F" regex_hex3 + +:regex_hex3 Escape + * regex noeat + "0-9a-fA-F" regex_hex2 + +:regex_hex2 Escape + * regex noeat + "0-9a-fA-F" regex_hex1 + +:regex_hex1 Escape + * regex noeat + "0-9a-fA-F" regex + +# Regex like this: /foo/ + +:sregex Constant + * sregex + "\\" sregex_escape recolor=-1 + "#" sregex_maybe_subst + "/" after_term + +:sregex_maybe_subst Constant + * sregex noeat + "{" sregex call=.coffee(squiggly) recolor=-2 + +:sregex_escape Escape + * sregex + "x" sregex_hex2 + "u" sregex_hex4 + +:sregex_uni Escape + * sregex_uni + "}" sregex + +:sregex_hex4 Escape + * sregex noeat + "{" sregex_uni + "0-9a-fA-F" sregex_hex3 + +:sregex_hex3 Escape + * sregex noeat + "0-9a-fA-F" sregex_hex2 + +:sregex_hex2 Escape + * sregex noeat + "0-9a-fA-F" sregex_hex1 + +:sregex_hex1 Escape + * sregex noeat + "0-9a-fA-F" sregex + +# Numbers + +:bad_number Bad + * after_term noeat + "0-9" bad_number + +:zero Constant + * after_term noeat + "b" binary + "o" octal + "x" hex + "." maybe_float + "eE" epart + "0-9" decimal recolor=-1 + +:decimal_point Constant + * after_term noeat recolor=-2 + "." decimal_point_1 recolor=-2 + "\i" not_ident recolor=-2 + "0-9" float + +:not_ident Idle + * after_term noeat + "\c" not_ident + +:decimal_point_1 Idle + * idle noeat + "." idle + +:octal Constant + * after_term noeat + "0-7_" octal + "89" bad_number recolor=-1 + +:binary Constant + * after_term noeat + "01_" binary + "2-9" bad_number recolor=-1 + +:hex Constant + * after_term noeat + "0-9A-Fa-f_" hex + +:decimal Constant + * after_term noeat + "0-9_" decimal + "eE" epart + "." maybe_float + +:maybe_float Constant + * after_term noeat recolor=-2 + "." decimal_point_1 recolor=-2 + "eE" epart + "0-9_" float + +:float Constant + * after_term noeat + "eE" epart + "0-9_" float + +:epart Constant + * after_term noeat + "0-9+\-" enum + +:enum Constant + * after_term noeat + "0-9_" enum + +# strings like "hello" + +:maybe_string Constant + * string noeat + "\"" maybe_string_1 + +:maybe_string_1 Constant + * after_term noeat + "\"" stringstring + +:string Constant + * string + "\"" after_term + "#" string_maybe_subst + "\\" string_escape recolor=-1 + +:string_maybe_subst Constant + * string noeat + "{" string call=.coffee(squiggly) recolor=-2 + +:string_escape Escape + * string + "x" string_hex2 + "u" string_hex4 + +:string_uni Escape + * string_uni + "}" string + +:string_hex4 Escape + * string noeat + "{" string_uni + "0-9a-fA-F" string_hex3 + +:string_hex3 Escape + * string noeat + "0-9a-fA-F" string_hex2 + +:string_hex2 Escape + * string noeat + "0-9a-fA-F" string_hex1 + +:string_hex1 Escape + * string noeat + "0-9a-fA-F" string + +# Strings like """ foo """ + +:stringstring Constant + * stringstring + "\"" stringstring_1 + "#" stringstring_maybe_subst + "\\" stringstring_escape recolor=-1 + +:stringstring_1 Constant + * stringstring noeat + "\"" stringstring_2 + +:stringstring_2 Constant + * stringstring noeat + "\"" after_term + +:stringstring_maybe_subst Constant + * stringstring noeat + "{" stringstring call=.coffee(squiggly) recolor=-2 + +:stringstring_escape Escape + * stringstring + "x" stringstring_hex2 + "u" stringstring_hex4 + +:stringstring_uni Escape + * stringstring_uni + "}" stringstring + +:stringstring_hex4 Escape + * stringstring noeat + "{" stringstring_uni + "0-9a-fA-F" stringstring_hex3 + +:stringstring_hex3 Escape + * stringstring noeat + "0-9a-fA-F" stringstring_hex2 + +:stringstring_hex2 Escape + * stringstring noeat + "0-9a-fA-F" stringstring_hex1 + +:stringstring_hex1 Escape + * stringstring noeat + "0-9a-fA-F" stringstring + +# character constants like 'h' + +:maybe_char Constant + * char noeat + "'" maybe_char_1 + +:maybe_char_1 Constant + * after_term noeat + "'" charchar + +:char Constant + * char + "'" after_term + "\\" char_escape recolor=-1 + +:char_escape Escape + * char noeat + "x" char_hex2 + "u" char_hex4 + +:char_uni Escape + * char_uni + "}" char_done + +:char_hex4 Escape + * char noeat + "{" char_uni + "0-9a-fA-F" char_hex3 + +:char_hex3 Escape + * char noeat + "0-9a-fA-F" char_hex2 + +:char_hex2 Escape + * char noeat + "0-9a-fA-F" char_hex1 + +:char_hex1 Escape + * char noeat + "0-9a-fA-F" char + +# strings like this '''foo''' + +:charchar Constant + * charchar + "'" charchar_1 + "\\" charchar_escape recolor=-1 + +:charchar_1 Constant + * charchar noeat + "'" charchar_2 + +:charchar_2 Constant + * charchar noeat + "'" after_term + +:charchar_escape Escape + * charchar noeat + "x" charchar_hex2 + "u" charchar_hex4 + +:charchar_uni Escape + * charchar_uni + "}" charchar_done + +:charchar_hex4 Escape + * charchar noeat + "{" charchar_uni + "0-9a-fA-F" charchar_hex3 + +:charchar_hex3 Escape + * charchar noeat + "0-9a-fA-F" charchar_hex2 + +:charchar_hex2 Escape + * charchar noeat + "0-9a-fA-F" charchar_hex1 + +:charchar_hex1 Escape + * charchar noeat + "0-9a-fA-F" charchar + + +# Identifiers + +:ident Idle + * after_term noeat strings + "and" operator + "break" kw + "by" kw + "catch" kw + "class" kw + "continue" kw + "delete" kw + "debugger" kw + "do" kw + "else" kw + "extends" kw + "false" lit + "finally" kw + "for" kw + "if" kw + "in" kw + "instanceof" kw + "is" kw + "isnt" kw + "loop" kw + "new" kw + "no" lit + "not" operator + "null" lit + "off" lit + "of" kw + "on" lit + "or" operator + "return" kw + "super" kw + "switch" kw + "then" kw + "this" lit + "throw" kw + "true" lit + "try" kw + "typeof" kw + "undefined" lit + "unless" kw + "until" kw + "when" kw + "while" kw + "yes" lit + "yield" kw + "case" forbid + "default" forbid + "function" forbid + "var" forbid + "void" forbid + "with" forbid + "const" forbid + "let" forbid + "enum" forbid + "export" forbid + "import" forbid + "native" forbid + "implements" forbid + "interface" forbid + "package" forbid + "private" forbid + "protected" forbid + "public" forbid + "static" forbid + "arguments" forbid + "eval" forbid +done + "$\c" ident + +:kw Keyword + * idle noeat + +:forbid Keyword + * idle noeat + +:lit Constant + * after_term noeat + +:operator Operator + * idle noeat + +.end diff --git a/.joe/syntax/comment_todo.jsf b/.joe/syntax/comment_todo.jsf @@ -0,0 +1,29 @@ +# JOE syntax highlight file for highlighting TODO: FIXME: XXX: etc +# by Christian Nicolai (http://mycrobase.de) + +=Comment green +=CommentLabel bold green + +.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/.joe/syntax/comment_todo.jsf.in b/.joe/syntax/comment_todo.jsf.in @@ -0,0 +1,29 @@ +# JOE syntax highlight file for highlighting TODO: FIXME: XXX: etc +# by Christian Nicolai (http://mycrobase.de) + +=Comment green +=CommentLabel bold green + +.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/.joe/syntax/conf.jsf b/.joe/syntax/conf.jsf @@ -0,0 +1,85 @@ +# JOE syntax highlight file for typical UNIX configuration files + +=Idle +=Comment green +=String cyan +=Escape bold red +=Backtick blue + +:idle Idle + * idle + "#" comment recolor=-1 + "\"" string recolor=-1 + "'" single recolor=-1 + "\`" backtick recolor=-1 + "\\" escape recolor=-1 + +:escape Escape + * idle + +:comment Comment + * comment + "\n" idle + + +:string String + * string + "\"" idle + "\`" backtick_in_str recolor=-1 + "\\" string_escape recolor=-1 + +:string_escape Escape + * string + "\n" string recolor=-2 + +:backtick_in_str Backtick + * backtick_in_str + "\`" string + "\\" bt_escape_2 recolor=-1 + +:bt_escape_2 Escape + * backtick_in_str + "\n" backtick_in_str recolor=-2 + + +:single String + * single + "'" idle + "\\" single_escape recolor=-1 + +:single_escape Escape + * single + "\n" single recolor=-2 + + +:backtick Backtick + * backtick + "\`" idle + "\"" string_in_bt recolor=-1 + "'" single_in_bt recolor=-1 + "\\" bt_escape recolor=-1 + +:bt_escape Escape + * backtick + "\n" backtick recolor=-2 + + +:string_in_bt String + * string_in_bt + "\"" backtick + "\\" string_escape_b recolor=-1 + +:string_escape_b Escape + * string_in_bt + "\n" string_in_bt recolor=-2 + + +:single_in_bt String + * single_in_bt + "'" backtick + "\\" single_escape_b recolor=-1 + +:single_escape_b Escape + * single_in_bt + "\n" single_in_bt recolor=-2 + diff --git a/.joe/syntax/conf.jsf.in b/.joe/syntax/conf.jsf.in @@ -0,0 +1,85 @@ +# JOE syntax highlight file for typical UNIX configuration files + +=Idle +=Comment green +=String cyan +=Escape bold red +=Backtick blue + +:idle Idle + * idle + "#" comment recolor=-1 + "\"" string recolor=-1 + "'" single recolor=-1 + "\`" backtick recolor=-1 + "\\" escape recolor=-1 + +:escape Escape + * idle + +:comment Comment + * comment + "\n" idle + + +:string String + * string + "\"" idle + "\`" backtick_in_str recolor=-1 + "\\" string_escape recolor=-1 + +:string_escape Escape + * string + "\n" string recolor=-2 + +:backtick_in_str Backtick + * backtick_in_str + "\`" string + "\\" bt_escape_2 recolor=-1 + +:bt_escape_2 Escape + * backtick_in_str + "\n" backtick_in_str recolor=-2 + + +:single String + * single + "'" idle + "\\" single_escape recolor=-1 + +:single_escape Escape + * single + "\n" single recolor=-2 + + +:backtick Backtick + * backtick + "\`" idle + "\"" string_in_bt recolor=-1 + "'" single_in_bt recolor=-1 + "\\" bt_escape recolor=-1 + +:bt_escape Escape + * backtick + "\n" backtick recolor=-2 + + +:string_in_bt String + * string_in_bt + "\"" backtick + "\\" string_escape_b recolor=-1 + +:string_escape_b Escape + * string_in_bt + "\n" string_in_bt recolor=-2 + + +:single_in_bt String + * single_in_bt + "'" backtick + "\\" single_escape_b recolor=-1 + +:single_escape_b Escape + * single_in_bt + "\n" single_in_bt recolor=-2 + diff --git a/.joe/syntax/context.jsf b/.joe/syntax/context.jsf @@ -0,0 +1,61 @@ +# Identify title lines for status line context display + +=Idle +=Title cyan + +:idle Idle + * title_line buffer noeat recolor=-1 + "b" maybe_begin_1 buffer + "B" maybe_BEGIN_1 buffer + "\n" idle + "/" maybe_comment buffer + "-" maybe_comment_1 buffer + ";{} \t\r\f#" comment + +:maybe_comment Idle + * title_line noeat recolor=-1 + "/*" comment + +:maybe_comment_1 Idle + * title_line noeat recolor=-1 + "-" comment + +:title_line Title + * title_line + "\n" idle save_s + +:comment Idle + * comment + "\n" idle + +:maybe_begin_1 Idle + * title_line noeat recolor=-2 + "e" maybe_begin_2 + +:maybe_begin_2 Idle + * title_line noeat recolor=-3 + "g" maybe_begin_3 + +:maybe_begin_3 Idle + * title_line noeat recolor=-4 + "i" maybe_begin_4 + +:maybe_begin_4 Idle + * title_line noeat recolor=-5 + "n" comment + +:maybe_BEGIN_1 Idle + * title_line noeat recolor=-2 + "E" maybe_BEGIN_2 + +:maybe_BEGIN_2 Idle + * title_line noeat recolor=-3 + "G" maybe_BEGIN_3 + +:maybe_BEGIN_3 Idle + * title_line noeat recolor=-4 + "I" maybe_BEGIN_4 + +:maybe_BEGIN_4 Idle + * title_line noeat recolor=-5 + "N" comment diff --git a/.joe/syntax/context.jsf.in b/.joe/syntax/context.jsf.in @@ -0,0 +1,61 @@ +# Identify title lines for status line context display + +=Idle +=Title cyan + +:idle Idle + * title_line buffer noeat recolor=-1 + "b" maybe_begin_1 buffer + "B" maybe_BEGIN_1 buffer + "\n" idle + "/" maybe_comment buffer + "-" maybe_comment_1 buffer + ";{} \t\r\f#" comment + +:maybe_comment Idle + * title_line noeat recolor=-1 + "/*" comment + +:maybe_comment_1 Idle + * title_line noeat recolor=-1 + "-" comment + +:title_line Title + * title_line + "\n" idle save_s + +:comment Idle + * comment + "\n" idle + +:maybe_begin_1 Idle + * title_line noeat recolor=-2 + "e" maybe_begin_2 + +:maybe_begin_2 Idle + * title_line noeat recolor=-3 + "g" maybe_begin_3 + +:maybe_begin_3 Idle + * title_line noeat recolor=-4 + "i" maybe_begin_4 + +:maybe_begin_4 Idle + * title_line noeat recolor=-5 + "n" comment + +:maybe_BEGIN_1 Idle + * title_line noeat recolor=-2 + "E" maybe_BEGIN_2 + +:maybe_BEGIN_2 Idle + * title_line noeat recolor=-3 + "G" maybe_BEGIN_3 + +:maybe_BEGIN_3 Idle + * title_line noeat recolor=-4 + "I" maybe_BEGIN_4 + +:maybe_BEGIN_4 Idle + * title_line noeat recolor=-5 + "N" comment diff --git a/.joe/syntax/csh.jsf b/.joe/syntax/csh.jsf @@ -0,0 +1,233 @@ +# JOE syntax highlight file for csh + +# needs work: I just copied this from sh and +# changed the keywords. + +# Colors + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Keyword bold +=Var magenta + +# Syntax + +:idle Idle + * idle + "#" comment recolor=-1 + "\\" escape recolor=-1 + "$" subst recolor=-1 + "'" string_sq recolor=-1 + "\"" string_dq recolor=-1 + "\`" string_bq recolor=-1 + "a-zA-Z{}![" ident buffer + +:comment Comment + * comment + "\n" idle + +:escape Escape + * idle + +:subst Var + * idle + "{" subst_brack + "a-zA-Z_" subst_name + "0-9*@?\-$_!" idle + +:subst_name Var + * idle noeat recolor=-1 + "a-zA-Z0-9_" subst_name + +:subst_brack Var + * subst_brack + "}" idle + +# Simplest case: no quoting allowed +:string_sq Constant + * string_sq + "\'" idle + + +# double-quote: quoting, backqoutes and substitution allowed +:string_dq Constant + * string_dq + "$" string_dq_subst recolor=-1 + "\"" idle + "\\" string_dq_esc recolor=-1 + "`" string_dq_bq recolor=-1 + +:string_dq_subst Var + * string_dq noeat recolor=-2 + "$0-9!_\-?*@" string_dq + "a-zA-Z_" string_dq_subst_name + "{" string_dq_subst_brack + +:string_dq_subst_name Var + * string_dq recolor=-1 noeat + "a-zA-Z0-9_" string_dq_subst_name + +:string_dq_subst_brack Var + * string_dq_subst_brack + "}" string_dq + +:string_dq_esc Escape + * string_dq recolor=-2 + "$`\"\\" string_dq + "\n" string_dq recolor=-2 + +:string_dq_bq Constant + * string_dq_bq + "$" string_dq_bq_subst recolor=-1 + "\`" string_dq + "\\" string_dq_bq_esc recolor=-1 + +:string_dq_bq_subst Var + * string_dq_bq noeat recolor=-2 + "$0-9!_\-?*@" string_dq_bq + "a-zA-Z_" string_dq_bq_subst_name + "{" string_dq_bq_subst_brack + +:string_dq_bq_subst_name Var + * string_dq_bq recolor=-1 noeat + "a-zA-Z0-9_" string_dq_bq_subst_name + +:string_dq_bq_subst_brack Var + * string_dq_bq_subst_brack + "}" string_dq_bq + +:string_dq_bq_esc Escape + * string_dq_bq recolor=-2 + "$`\"\\" string_dq_bq + "\n" string_dq_bq recolor=-2 + + +# backquote +:string_bq Constant + * string_bq + "$" string_bq_subst recolor=-1 + "\`" idle + "\\" string_bq_esc recolor=-1 + +# escape in backquote +:string_bq_esc Escape + * string_bq recolor=-2 + "$`\"\\" string_bq + "\n" string_bq recolor=-2 + +# Substitution in a backquote +:string_bq_subst Var + * string_bq noeat recolor=-2 + "$0-9!_\-?*@" string_bq + "a-zA-Z_" string_bq_subst_name + "{" string_bq_subst_brack + +:string_bq_subst_name Var + * string_bq recolor=-1 noeat + "a-zA-Z0-9_" string_bq_subst_name + +:string_bq_subst_brack Var + * string_bq_subst_brack + "}" string_bq + + +:ident Idle + * idle noeat strings + "!" kw + "{" kw + "}" kw + "[" kw + "]" kw + "alias" kw + "alloc" kw + "bg" kw + "bindkey" kw + "break" kw + "breaksw" kw + "builtins" kw + "bye" kw + "case" kw + "cd" kw + "chdir" kw + "complete" kw + "continue" kw + "default" kw + "dirs" kw + "echo" kw + "echotc" kw + "else" kw + "end" kw + "endif" kw + "endsw" kw + "eval" kw + "exec" kw + "exit" kw + "fg" kw + "filetest" kw + "foreach" kw + "getspath" kw + "getxvers" kw + "glob" kw + "goto" kw + "hashstat" kw + "history" kw + "hup" kw + "if" kw + "inlib" kw + "jobs" kw + "kill" kw + "limit" kw + "log" kw + "login" kw + "logout" kw + "ls-F" kw + "migrate" kw + "newgrp" kw + "nice" kw + "nohup" kw + "notify" kw + "onintr" kw + "popd" kw + "printenv" kw + "pushd" kw + "rehash" kw + "repeat" kw + "rootnode" kw + "sched" kw + "set" kw + "setenv" kw + "setpath" kw + "setspath" kw + "settc" kw + "setty" kw + "setxvers" kw + "shift" kw + "source" kw + "stop" kw + "suspend" kw + "switch" kw + "case" kw + "telltc" kw + "time" kw + "umask" kw + "unalias" kw + "uncomplete" kw + "unhash" kw + "universe" kw + "unlimit" kw + "unset" kw + "unsetenv" kw + "ver" kw + "wait" kw + "warp" kw + "watchdog" kw + "where" kw + "which" kw + "while" kw +done + "a-zA-Z0-9\-" ident + +:kw Keyword + * idle noeat diff --git a/.joe/syntax/csh.jsf.in b/.joe/syntax/csh.jsf.in @@ -0,0 +1,233 @@ +# JOE syntax highlight file for csh + +# needs work: I just copied this from sh and +# changed the keywords. + +# Colors + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Keyword bold +=Var magenta + +# Syntax + +:idle Idle + * idle + "#" comment recolor=-1 + "\\" escape recolor=-1 + "$" subst recolor=-1 + "'" string_sq recolor=-1 + "\"" string_dq recolor=-1 + "\`" string_bq recolor=-1 + "a-zA-Z{}![" ident buffer + +:comment Comment + * comment + "\n" idle + +:escape Escape + * idle + +:subst Var + * idle + "{" subst_brack + "a-zA-Z_" subst_name + "0-9*@?\-$_!" idle + +:subst_name Var + * idle noeat recolor=-1 + "a-zA-Z0-9_" subst_name + +:subst_brack Var + * subst_brack + "}" idle + +# Simplest case: no quoting allowed +:string_sq Constant + * string_sq + "\'" idle + + +# double-quote: quoting, backqoutes and substitution allowed +:string_dq Constant + * string_dq + "$" string_dq_subst recolor=-1 + "\"" idle + "\\" string_dq_esc recolor=-1 + "`" string_dq_bq recolor=-1 + +:string_dq_subst Var + * string_dq noeat recolor=-2 + "$0-9!_\-?*@" string_dq + "a-zA-Z_" string_dq_subst_name + "{" string_dq_subst_brack + +:string_dq_subst_name Var + * string_dq recolor=-1 noeat + "a-zA-Z0-9_" string_dq_subst_name + +:string_dq_subst_brack Var + * string_dq_subst_brack + "}" string_dq + +:string_dq_esc Escape + * string_dq recolor=-2 + "$`\"\\" string_dq + "\n" string_dq recolor=-2 + +:string_dq_bq Constant + * string_dq_bq + "$" string_dq_bq_subst recolor=-1 + "\`" string_dq + "\\" string_dq_bq_esc recolor=-1 + +:string_dq_bq_subst Var + * string_dq_bq noeat recolor=-2 + "$0-9!_\-?*@" string_dq_bq + "a-zA-Z_" string_dq_bq_subst_name + "{" string_dq_bq_subst_brack + +:string_dq_bq_subst_name Var + * string_dq_bq recolor=-1 noeat + "a-zA-Z0-9_" string_dq_bq_subst_name + +:string_dq_bq_subst_brack Var + * string_dq_bq_subst_brack + "}" string_dq_bq + +:string_dq_bq_esc Escape + * string_dq_bq recolor=-2 + "$`\"\\" string_dq_bq + "\n" string_dq_bq recolor=-2 + + +# backquote +:string_bq Constant + * string_bq + "$" string_bq_subst recolor=-1 + "\`" idle + "\\" string_bq_esc recolor=-1 + +# escape in backquote +:string_bq_esc Escape + * string_bq recolor=-2 + "$`\"\\" string_bq + "\n" string_bq recolor=-2 + +# Substitution in a backquote +:string_bq_subst Var + * string_bq noeat recolor=-2 + "$0-9!_\-?*@" string_bq + "a-zA-Z_" string_bq_subst_name + "{" string_bq_subst_brack + +:string_bq_subst_name Var + * string_bq recolor=-1 noeat + "a-zA-Z0-9_" string_bq_subst_name + +:string_bq_subst_brack Var + * string_bq_subst_brack + "}" string_bq + + +:ident Idle + * idle noeat strings + "!" kw + "{" kw + "}" kw + "[" kw + "]" kw + "alias" kw + "alloc" kw + "bg" kw + "bindkey" kw + "break" kw + "breaksw" kw + "builtins" kw + "bye" kw + "case" kw + "cd" kw + "chdir" kw + "complete" kw + "continue" kw + "default" kw + "dirs" kw + "echo" kw + "echotc" kw + "else" kw + "end" kw + "endif" kw + "endsw" kw + "eval" kw + "exec" kw + "exit" kw + "fg" kw + "filetest" kw + "foreach" kw + "getspath" kw + "getxvers" kw + "glob" kw + "goto" kw + "hashstat" kw + "history" kw + "hup" kw + "if" kw + "inlib" kw + "jobs" kw + "kill" kw + "limit" kw + "log" kw + "login" kw + "logout" kw + "ls-F" kw + "migrate" kw + "newgrp" kw + "nice" kw + "nohup" kw + "notify" kw + "onintr" kw + "popd" kw + "printenv" kw + "pushd" kw + "rehash" kw + "repeat" kw + "rootnode" kw + "sched" kw + "set" kw + "setenv" kw + "setpath" kw + "setspath" kw + "settc" kw + "setty" kw + "setxvers" kw + "shift" kw + "source" kw + "stop" kw + "suspend" kw + "switch" kw + "case" kw + "telltc" kw + "time" kw + "umask" kw + "unalias" kw + "uncomplete" kw + "unhash" kw + "universe" kw + "unlimit" kw + "unset" kw + "unsetenv" kw + "ver" kw + "wait" kw + "warp" kw + "watchdog" kw + "where" kw + "which" kw + "while" kw +done + "a-zA-Z0-9\-" ident + +:kw Keyword + * idle noeat diff --git a/.joe/syntax/csharp.jsf b/.joe/syntax/csharp.jsf @@ -0,0 +1,460 @@ +# JOE syntax highlight file for C# +# Based on Java highlighter + +=Idle +=Preproc yellow +=Comment green +=DocComment bold blue +=Constant cyan +=Escape bold cyan +=Type bold blue +=Keyword blue +=Operator blue +=Bad bold red +=Brace magenta +=Control + +:begin Idle + * begin noeat call=.csharp() + +.subr csharp + +:reset Idle + * first noeat + " \t" reset + +:first Idle + * idle noeat + "#" pre recolor=-1 + +:pre Preproc + * pre noeat + "a-zA-Z" preident recolor=-1 buffer + " \t" pre + "\n" reset + +:preident Preproc + * preunknown strings + "if" prebody + "else" prebody + "elif" prebody + "endif" prebody + "region" preregion + "endregion" preregion + "define" predefine + "undef" predefine + "warning" preregion + "error" preregion + "line" prebody +done + "a-z" preident + +:prebody Preproc + * prebody + "\n" reset + +:preregion Preproc + * preregion_text + "\n" reset + +:preregion_text Constant + * preregion_text + "\n" reset + +:predefine Preproc + * predefine_text noeat + " \t" predefine + "\n" reset + +:predefine_text Constant + * predefine_text + " \t" predefine_value + "\n" reset + +:predefine_value Idle + * predefine_value + "\n" reset + +:preunknown Preproc + * preunknown + "\n" reset + +:idle Idle + * idle + "\n" reset + "/" slash + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." maybe_float + "\"" string recolor=-1 + "@" forcedliteral recolor=-1 + "'" char recolor=-1 + "\i" ident buffer + "{}" brace recolor=-1 + ",:;=()><[]*&|!~+\-%^" control recolor=-1 + +:maybe_done Control + * idle noeat + "/" idle noeat return recolor=-2 + +:brace Brace + * idle noeat + +:control Control + * idle noeat + +:forcedliteral Idle + * idle noeat + "\i" ident recolor=-2 + "\"" forcedstring recolor=-2 + +:forcedstring Constant + * forcedstring + "\"" forcedstringquot + +:forcedstringquot Constant + * idle noeat + "\"" forcedstring # @"This -> "" <- is a literal quote" + +:slash Idle + * idle noeat + "*" comment recolor=-2 + "/" maybe_line_comment recolor=-2 + +:comment Comment + * comment + "*" maybe_end_comment + +:maybe_end_comment Comment + * comment + "/" idle + "*" maybe_end_comment + +:maybe_line_comment Comment + * line_comment noeat recolor=-1 + "/" doc_comment recolor=-3 + +:line_comment Comment + * line_comment + "\n" reset + +:doc_comment DocComment + * doc_comment + "\n" reset + +:first_digit Constant + * idle noeat + "xX" hex + "." float + "eE" epart + "0-7" octal + "89" bad_number recolor=-1 + +:bad_number Bad + * idle noeat + "0-9" bad_number + +:octal Constant + * idle noeat + "0-7" octal + "89" bad_number recolor=-1 + +:hex Constant + * idle noeat + "0-9A-Fa-f" hex + +:decimal Constant + * idle noeat + "0-9" decimal + "eE" epart + "." float + +:maybe_float Constant + * idle recolor=-2 noeat + "0-9" float recolor=-2 + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +:string Constant + * string + "\"" idle + "\\" string_escape recolor=-1 + "{" maybe_string_control recolor=-1 + "}" maybe_control_end recolor=-1 + +:string_escape Escape + * string + "xu" string_hex_4 # Yes, \x has up to 4 numbers in C# + "U" string_hex_8 + "0-7" string_octal2 + "\n" string recolor=-2 + +# Eight all-purpose (hex/unicode short/unicode long) states for hexadecimal +# escape sequences + +:string_hex_8 Escape + * string noeat + "0-9a-fA-F" string_hex_7 + +:string_hex_7 Escape + * string noeat + "0-9a-fA-F" string_hex_6 + +:string_hex_6 Escape + * string noeat + "0-9a-fA-F" string_hex_5 + +:string_hex_5 Escape + * string noeat + "0-9a-fA-F" string_hex_4 + +:string_hex_4 Escape + * string noeat + "0-9a-fA-F" string_hex_3 + +:string_hex_3 Escape + * string noeat + "0-9a-fA-F" string_hex_2 + +:string_hex_2 Escape + * string noeat + "0-9a-fA-F" string_hex_1 + +:string_hex_1 Escape + * string noeat + "0-9a-fA-F" string + +:string_octal2 Escape + * string noeat + "0-7" string_octal3 + +:string_octal3 Escape + * string noeat + "0-7" string + +:maybe_string_control Escape + * string noeat recolor=-2 + "0-9" string_control + "{" string + +:string_control Escape + * string_control + "\"" string noeat + "}" string + +:maybe_control_end Escape + * string noeat recolor=-2 + "}" string + +:char Constant + * char + "\n" reset + "'" idle + "\\" char_escape recolor=-1 + +:char_escape Escape + * char + "xu" char_hex4 + "U" char_hex8 + "0-7" char_octal2 + "\n" char recolor=-2 + +:char_hex8 Escape + * char noeat + "0-9a-fA-F" char_hex7 + +:char_hex7 Escape + * char noeat + "0-9a-fA-F" char_hex6 + +:char_hex6 Escape + * char noeat + "0-9a-fA-F" char_hex5 + +:char_hex5 Escape + * char noeat + "0-9a-fA-F" char_hex4 + +:char_hex4 Escape + * char noeat + "0-9a-fA-F" char_hex3 + +:char_hex3 Escape + * char noeat + "0-9a-fA-F" char_hex2 + +:char_hex2 Escape + * char noeat + "0-9a-fA-F" char_hex1 + +:char_hex1 Escape + * char noeat + "0-9a-fA-F" char + +:char_octal2 Escape + * char noeat + "0-7" char_octal3 + +:char_octal3 Escape + * char noeat + "0-7" char + +:ident Idle # http://msdn.microsoft.com/en-us/library/x53a06bb.aspx + * idle noeat strings + "abstract" kw + "as" operator + "base" kw + "break" kw + "case" kw + "catch" kw + "checked" operator + "class" kw + "const" kw + "continue" kw + "default" kw + "delegate" kw + "do" kw + "else" kw + "enum" kw + "event" kw + "explicit" kw + "extern" kw + "finally" kw + "fixed" kw + "for" kw + "foreach" kw + "goto" kw + "if" kw + "implicit" kw + "in" operator + "interface" kw + "internal" kw + "is" kw + "lock" kw + "nameof" kw + "namespace" kw + "new" operator + "operator" kw + "out" kw + "override" kw + "params" kw + "private" kw + "protected" kw + "public" kw + "readonly" kw + "ref" kw + "return" kw + "sealed" kw + "sizeof" operator + "stackalloc" kw + "static" kw + "struct" kw + "switch" kw + "this" kw + "throw" kw + "try" kw + "typeof" operator + "unchecked" operator + "unsafe" kw + "using" kw + "virtual" kw + "volatile" kw + "while" kw + + # Types + + "bool" type + "Boolean" type + "byte" type + "Byte" type + "char" type + "Character" type + "decimal" type + "double" type + "Double" type + "float" type + "Float" type + "int" type + "Integer" type + "int16" type + "Int16" type + "int32" type + "Int32" type + "int64" type + "Int64" type + "long" type + "object" type + "Object" type + "sbyte" type + "short" type + "string" type + "String" type + "uint" type + "uint16" type + "uint32" type + "uint64" type + "ulong" type + "ushort" type + "void" type + + + # These are "contextual" keywords. Should try to do a better and + # and find the context (most are LINQ), but it may not be possible + # in all cases: + + "add" kw + "alias" kw + "ascending" kw + "async" kw + "await" kw + "descending" kw + "dynamic" type + "from" kw + "get" kw + "global" kw + "group" kw + "into" kw + "join" kw + "let" kw + "orderby" kw + "partial" kw + "remove" kw + "select" kw + "set" kw + "value" kw + "var" type + "where" kw + "yield" kw + + # Literals + + "true" lit + "false" lit + "null" lit +done + "\c" ident + +:type Type + * idle noeat + +:kw Keyword + * idle noeat + +:lit Constant + * idle noeat + +:operator Operator + * idle noeat + +.end diff --git a/.joe/syntax/csharp.jsf.in b/.joe/syntax/csharp.jsf.in @@ -0,0 +1,460 @@ +# JOE syntax highlight file for C# +# Based on Java highlighter + +=Idle +=Preproc yellow +=Comment green +=DocComment bold blue +=Constant cyan +=Escape bold cyan +=Type bold blue +=Keyword blue +=Operator blue +=Bad bold red +=Brace magenta +=Control + +:begin Idle + * begin noeat call=.csharp() + +.subr csharp + +:reset Idle + * first noeat + " \t" reset + +:first Idle + * idle noeat + "#" pre recolor=-1 + +:pre Preproc + * pre noeat + "a-zA-Z" preident recolor=-1 buffer + " \t" pre + "\n" reset + +:preident Preproc + * preunknown strings + "if" prebody + "else" prebody + "elif" prebody + "endif" prebody + "region" preregion + "endregion" preregion + "define" predefine + "undef" predefine + "warning" preregion + "error" preregion + "line" prebody +done + "a-z" preident + +:prebody Preproc + * prebody + "\n" reset + +:preregion Preproc + * preregion_text + "\n" reset + +:preregion_text Constant + * preregion_text + "\n" reset + +:predefine Preproc + * predefine_text noeat + " \t" predefine + "\n" reset + +:predefine_text Constant + * predefine_text + " \t" predefine_value + "\n" reset + +:predefine_value Idle + * predefine_value + "\n" reset + +:preunknown Preproc + * preunknown + "\n" reset + +:idle Idle + * idle + "\n" reset + "/" slash + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." maybe_float + "\"" string recolor=-1 + "@" forcedliteral recolor=-1 + "'" char recolor=-1 + "\i" ident buffer + "{}" brace recolor=-1 + ",:;=()><[]*&|!~+\-%^" control recolor=-1 + +:maybe_done Control + * idle noeat + "/" idle noeat return recolor=-2 + +:brace Brace + * idle noeat + +:control Control + * idle noeat + +:forcedliteral Idle + * idle noeat + "\i" ident recolor=-2 + "\"" forcedstring recolor=-2 + +:forcedstring Constant + * forcedstring + "\"" forcedstringquot + +:forcedstringquot Constant + * idle noeat + "\"" forcedstring # @"This -> "" <- is a literal quote" + +:slash Idle + * idle noeat + "*" comment recolor=-2 + "/" maybe_line_comment recolor=-2 + +:comment Comment + * comment + "*" maybe_end_comment + +:maybe_end_comment Comment + * comment + "/" idle + "*" maybe_end_comment + +:maybe_line_comment Comment + * line_comment noeat recolor=-1 + "/" doc_comment recolor=-3 + +:line_comment Comment + * line_comment + "\n" reset + +:doc_comment DocComment + * doc_comment + "\n" reset + +:first_digit Constant + * idle noeat + "xX" hex + "." float + "eE" epart + "0-7" octal + "89" bad_number recolor=-1 + +:bad_number Bad + * idle noeat + "0-9" bad_number + +:octal Constant + * idle noeat + "0-7" octal + "89" bad_number recolor=-1 + +:hex Constant + * idle noeat + "0-9A-Fa-f" hex + +:decimal Constant + * idle noeat + "0-9" decimal + "eE" epart + "." float + +:maybe_float Constant + * idle recolor=-2 noeat + "0-9" float recolor=-2 + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +:string Constant + * string + "\"" idle + "\\" string_escape recolor=-1 + "{" maybe_string_control recolor=-1 + "}" maybe_control_end recolor=-1 + +:string_escape Escape + * string + "xu" string_hex_4 # Yes, \x has up to 4 numbers in C# + "U" string_hex_8 + "0-7" string_octal2 + "\n" string recolor=-2 + +# Eight all-purpose (hex/unicode short/unicode long) states for hexadecimal +# escape sequences + +:string_hex_8 Escape + * string noeat + "0-9a-fA-F" string_hex_7 + +:string_hex_7 Escape + * string noeat + "0-9a-fA-F" string_hex_6 + +:string_hex_6 Escape + * string noeat + "0-9a-fA-F" string_hex_5 + +:string_hex_5 Escape + * string noeat + "0-9a-fA-F" string_hex_4 + +:string_hex_4 Escape + * string noeat + "0-9a-fA-F" string_hex_3 + +:string_hex_3 Escape + * string noeat + "0-9a-fA-F" string_hex_2 + +:string_hex_2 Escape + * string noeat + "0-9a-fA-F" string_hex_1 + +:string_hex_1 Escape + * string noeat + "0-9a-fA-F" string + +:string_octal2 Escape + * string noeat + "0-7" string_octal3 + +:string_octal3 Escape + * string noeat + "0-7" string + +:maybe_string_control Escape + * string noeat recolor=-2 + "0-9" string_control + "{" string + +:string_control Escape + * string_control + "\"" string noeat + "}" string + +:maybe_control_end Escape + * string noeat recolor=-2 + "}" string + +:char Constant + * char + "\n" reset + "'" idle + "\\" char_escape recolor=-1 + +:char_escape Escape + * char + "xu" char_hex4 + "U" char_hex8 + "0-7" char_octal2 + "\n" char recolor=-2 + +:char_hex8 Escape + * char noeat + "0-9a-fA-F" char_hex7 + +:char_hex7 Escape + * char noeat + "0-9a-fA-F" char_hex6 + +:char_hex6 Escape + * char noeat + "0-9a-fA-F" char_hex5 + +:char_hex5 Escape + * char noeat + "0-9a-fA-F" char_hex4 + +:char_hex4 Escape + * char noeat + "0-9a-fA-F" char_hex3 + +:char_hex3 Escape + * char noeat + "0-9a-fA-F" char_hex2 + +:char_hex2 Escape + * char noeat + "0-9a-fA-F" char_hex1 + +:char_hex1 Escape + * char noeat + "0-9a-fA-F" char + +:char_octal2 Escape + * char noeat + "0-7" char_octal3 + +:char_octal3 Escape + * char noeat + "0-7" char + +:ident Idle # http://msdn.microsoft.com/en-us/library/x53a06bb.aspx + * idle noeat strings + "abstract" kw + "as" operator + "base" kw + "break" kw + "case" kw + "catch" kw + "checked" operator + "class" kw + "const" kw + "continue" kw + "default" kw + "delegate" kw + "do" kw + "else" kw + "enum" kw + "event" kw + "explicit" kw + "extern" kw + "finally" kw + "fixed" kw + "for" kw + "foreach" kw + "goto" kw + "if" kw + "implicit" kw + "in" operator + "interface" kw + "internal" kw + "is" kw + "lock" kw + "nameof" kw + "namespace" kw + "new" operator + "operator" kw + "out" kw + "override" kw + "params" kw + "private" kw + "protected" kw + "public" kw + "readonly" kw + "ref" kw + "return" kw + "sealed" kw + "sizeof" operator + "stackalloc" kw + "static" kw + "struct" kw + "switch" kw + "this" kw + "throw" kw + "try" kw + "typeof" operator + "unchecked" operator + "unsafe" kw + "using" kw + "virtual" kw + "volatile" kw + "while" kw + + # Types + + "bool" type + "Boolean" type + "byte" type + "Byte" type + "char" type + "Character" type + "decimal" type + "double" type + "Double" type + "float" type + "Float" type + "int" type + "Integer" type + "int16" type + "Int16" type + "int32" type + "Int32" type + "int64" type + "Int64" type + "long" type + "object" type + "Object" type + "sbyte" type + "short" type + "string" type + "String" type + "uint" type + "uint16" type + "uint32" type + "uint64" type + "ulong" type + "ushort" type + "void" type + + + # These are "contextual" keywords. Should try to do a better and + # and find the context (most are LINQ), but it may not be possible + # in all cases: + + "add" kw + "alias" kw + "ascending" kw + "async" kw + "await" kw + "descending" kw + "dynamic" type + "from" kw + "get" kw + "global" kw + "group" kw + "into" kw + "join" kw + "let" kw + "orderby" kw + "partial" kw + "remove" kw + "select" kw + "set" kw + "value" kw + "var" type + "where" kw + "yield" kw + + # Literals + + "true" lit + "false" lit + "null" lit +done + "\c" ident + +:type Type + * idle noeat + +:kw Keyword + * idle noeat + +:lit Constant + * idle noeat + +:operator Operator + * idle noeat + +.end diff --git a/.joe/syntax/css.jsf b/.joe/syntax/css.jsf @@ -0,0 +1,168 @@ +# JOE syntax highlight file for CSS +# by Eric Lin + +# Define colors + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Keyword bold +=Bad bold red + +=Class yellow +=Id red +=Tag magenta +=HTML + +# from html.jsf to support <?php?> +=TagEdge green + +:begin Idle + * begin noeat call=.css() + +# +# For <style> in html +# + +.subr css + +:reset HTML + * reset + "<" maybe_done recolor=-1 + "/" slash + # prevent duplicate code + "#.a-zA-Z" selector noeat + "@" command recolor=-1 + +:maybe_done TagEdge + * reset_html noeat + "/" reset noeat return recolor=-2 +.ifdef php + "?%" rtn_php call=php.php() +.endif + +# fix needed to produce similar output without php +:reset_html HTML + * reset noeat recolor=-2 + +# this state allows php and perl to recolor the ?> %> or &> properly. +:rtn_php TagEdge + * reset noeat + +:slash Idle + * reset noeat + "*" comment recolor=-2 + +:comment Comment + * comment + "*" maybe_end_comment + +:maybe_end_comment Comment + * comment + "/" reset + "*" maybe_end_comment + +:command Idle + * command + ";" reset + "{" command_block + +:command_block Idle + * command_block + "}" reset + +# CSS selectors +:selector Idle + * selector + "#" id_sel recolor=-1 + "." class_sel recolor=-1 + "a-zA-Z" tag_sel recolor=-1 + ":" pseudo_class_sel recolor=-1 + "{" style_block recolor=-1 + +:id_sel Id + * selector noeat + "a-zA-Z0-9_-" id_sel + +:class_sel Class + * selector noeat + "a-zA-Z0-9_-" class_sel + +:tag_sel Tag + * selector noeat + "a-zA-Z0-9_-" tag_sel + "[" tag_sel_attr recolor=-1 + +:tag_sel_attr Idle + * tag_sel_attr + "]" selector + +:pseudo_class_sel Idle + * selector noeat + "a-zA-Z0-9_-" pseudo_class_sel + +# everything inside "{ ... }", containing many "key: value;" pairs +:style_block Idle + * style_block + "}" reset + "/" maybe_style_comment + "a-zA-Z-" style_word recolor=-1 + +:maybe_style_comment Idle + * style_block recolor=-1 + "*" style_comment recolor=-2 + +:style_comment Comment + * style_comment + "*" maybe_end_style_comment + +:maybe_end_style_comment Comment + * comment + "/" style_block + "*" maybe_end_style_comment + +# property-key +:style_word Keyword + * style_word + ":" style_value recolor=-1 + +# property-value +:style_value Idle + * style_value + ";" style_block + # treat } without previous ; like ;} + "}" style_block noeat + "#" color recolor=-1 + "0-9" decimal recolor=-1 + "." maybe_float + "a-zA-Z_" ident + +:color Constant + * style_value noeat + "0-9a-fA-F" color + +:decimal Constant + * style_value noeat + "0-9" decimal + "." float + "a-zA-Z%" decimal_unit + +:maybe_float Constant + * style_value noeat recolor=-2 + "0-9" float recolor=-2 + +:float Constant + * style_value noeat + "0-9" float + "a-zA-Z%" decimal_unit + +:decimal_unit Constant + * style_value noeat + "a-zA-Z" decimal_unit + +:ident Idle + * style_value noeat + "a-ZA-Z0-9_-" ident + +.end diff --git a/.joe/syntax/css.jsf.in b/.joe/syntax/css.jsf.in @@ -0,0 +1,168 @@ +# JOE syntax highlight file for CSS +# by Eric Lin + +# Define colors + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Keyword bold +=Bad bold red + +=Class yellow +=Id red +=Tag magenta +=HTML + +# from html.jsf to support <?php?> +=TagEdge green + +:begin Idle + * begin noeat call=.css() + +# +# For <style> in html +# + +.subr css + +:reset HTML + * reset + "<" maybe_done recolor=-1 + "/" slash + # prevent duplicate code + "#.a-zA-Z" selector noeat + "@" command recolor=-1 + +:maybe_done TagEdge + * reset_html noeat + "/" reset noeat return recolor=-2 +.ifdef php + "?%" rtn_php call=php.php() +.endif + +# fix needed to produce similar output without php +:reset_html HTML + * reset noeat recolor=-2 + +# this state allows php and perl to recolor the ?> %> or &> properly. +:rtn_php TagEdge + * reset noeat + +:slash Idle + * reset noeat + "*" comment recolor=-2 + +:comment Comment + * comment + "*" maybe_end_comment + +:maybe_end_comment Comment + * comment + "/" reset + "*" maybe_end_comment + +:command Idle + * command + ";" reset + "{" command_block + +:command_block Idle + * command_block + "}" reset + +# CSS selectors +:selector Idle + * selector + "#" id_sel recolor=-1 + "." class_sel recolor=-1 + "a-zA-Z" tag_sel recolor=-1 + ":" pseudo_class_sel recolor=-1 + "{" style_block recolor=-1 + +:id_sel Id + * selector noeat + "a-zA-Z0-9_-" id_sel + +:class_sel Class + * selector noeat + "a-zA-Z0-9_-" class_sel + +:tag_sel Tag + * selector noeat + "a-zA-Z0-9_-" tag_sel + "[" tag_sel_attr recolor=-1 + +:tag_sel_attr Idle + * tag_sel_attr + "]" selector + +:pseudo_class_sel Idle + * selector noeat + "a-zA-Z0-9_-" pseudo_class_sel + +# everything inside "{ ... }", containing many "key: value;" pairs +:style_block Idle + * style_block + "}" reset + "/" maybe_style_comment + "a-zA-Z-" style_word recolor=-1 + +:maybe_style_comment Idle + * style_block recolor=-1 + "*" style_comment recolor=-2 + +:style_comment Comment + * style_comment + "*" maybe_end_style_comment + +:maybe_end_style_comment Comment + * comment + "/" style_block + "*" maybe_end_style_comment + +# property-key +:style_word Keyword + * style_word + ":" style_value recolor=-1 + +# property-value +:style_value Idle + * style_value + ";" style_block + # treat } without previous ; like ;} + "}" style_block noeat + "#" color recolor=-1 + "0-9" decimal recolor=-1 + "." maybe_float + "a-zA-Z_" ident + +:color Constant + * style_value noeat + "0-9a-fA-F" color + +:decimal Constant + * style_value noeat + "0-9" decimal + "." float + "a-zA-Z%" decimal_unit + +:maybe_float Constant + * style_value noeat recolor=-2 + "0-9" float recolor=-2 + +:float Constant + * style_value noeat + "0-9" float + "a-zA-Z%" decimal_unit + +:decimal_unit Constant + * style_value noeat + "a-zA-Z" decimal_unit + +:ident Idle + * style_value noeat + "a-ZA-Z0-9_-" ident + +.end diff --git a/.joe/syntax/d.jsf b/.joe/syntax/d.jsf @@ -0,0 +1,537 @@ +# JOE syntax highlight file for D + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Type bold +=Keyword bold +=Operator bold +=Bad bold red +=Brace magenta +=Control + +=Methods + +:begin Idle + * begin noeat call=.d() + +.subr d + +:idle Idle + * idle + "(" idle call=.d(paren) + "[" idle call=.d(brack) + "{" do_brace recolor=-1 noeat +# "{" brace recolor=-1 call=.d(squiggly) +.ifdef paren + ")" idle return +.else + ")" stray recolor=-1 +.endif +.ifdef brack + "]" idle return +.else + "]" stray recolor=-1 +.endif +.ifdef squiggly + "}" brace recolor=-1 return +.else + "}" stray recolor=-1 +.endif + "\n" idle + "/" slash + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." maybe_float + "\"" string recolor=-1 + "'" char recolor=-1 + "\i" ident mark buffer + ",:;=><*&|!~+\-%^" control recolor=-1 + "r" maybe_rstring mark buffer + "x" maybe_xstring mark buffer + "q" maybe_qstring recolor=-1 mark buffer + "`" bstring recolor=-1 + +:do_brace Brace + * idle noeat + "{" brace call=.d(squiggly) + +:brace Brace + * idle noeat + +:stray Bad + * idle noeat + +:maybe_done Control + * idle noeat + "/" idle noeat return recolor=-2 + +:control Control + * idle noeat + +:slash Idle + * idle noeat + "*" comment recolor=-2 + "+" idle recolor=-2 call=.block_comment() + "/" line_comment recolor=-2 + +:comment Comment + * comment + # might be TODO label + "BFHNTX" comment noeat call=comment_todo.comment_todo() + "*" maybe_end_comment + +:maybe_end_comment Comment + * comment noeat + "/" idle + "*" maybe_end_comment + +:line_comment Comment + * line_comment + # might be TODO label + "BFHNTX" line_comment noeat call=comment_todo.comment_todo() + "\n" idle + +:int_postfix Constant + * idle noeat + "uU" int_postfix_1 + "L" int_postfix_2 + +:int_postfix_1 Constant + * idle noeat + "L" idle + +:int_postfix_2 Constant + * idle noeat + "uU" idle + +:float_postfix Constant + * idle noeat + "fF" float_postfix_1 + "L" float_postfix_1 + "i" idle + +:float_postfix_1 Constant + * idle noeat + "i" idle + +:first_digit Constant + * int_postfix noeat + "xX" hex + "bB" bin + "." float + "eE" epart + "0-9" decimal + +:bad_number Bad + * idle noeat + "0-9" bad_number + +:octal Constant + * int_postfix noeat + "0-7_" octal + "89" bad_number recolor=-1 + +:hex Constant + * int_postfix noeat + "0-9A-Fa-f_" hex + "." hexfloat + "pP" ppart + +:hexfloat Constant + * float_postfix noeat + "0-9A-Fa-f_" hexfloat + "pP" ppart + +:ppart Constant + * float_postfix noeat + "0-9+\-" pnum + +:pnum Constant + * float_postfix noeat + "0-9_" pnum + +:decimal Constant + * int_postfix noeat + "0-9_" decimal + "eE" epart + "." float + +:maybe_float Constant + * idle recolor=-2 noeat + "\i" not_ident recolor=-2 + "0-9" float recolor=-2 + +:not_ident Idle + * idle noeat + "\c" not_ident + +:float Constant + * float_postfix noeat + "eE" epart + "0-9_" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * float_postfix noeat + "0-9_" enum + +:maybe_qstring Brace + * ident recolor=-1 noeat + "{" brace call=.d(squiggly) + "\"" qdstring recolor=-2 + +:qdstring Constant + * qstring save_c + "\i" qdelim buffer + +:qdelim Constant + * qdelim_bad noeat save_s + "\c" qdelim + "\n" skipline noeat save_s + +:qdelim_bad Bad + * qdelim_bad + "\n" skipline noeat + +:skipline Constant + * skipline + "\n" next_line + +:todelim Constant + * todelim + "\n" next_line + "\"" next_line strings + "&" founddelim +done + +:founddelim Constant + * idle noeat + "\"" bad_line + +:bad_line Bad + * bad_line + "\n" idle + +# eat \n so it's not in string. +:next_line Constant + * todelim buffer + "\n" next_line + +:qstring Constant + * qstring + & qstring_1 + +:qstring_1 Constant + * qstring noeat + "\"" string_postfix + +:maybe_xstring Idle + * ident noeat + "\"" xstring recolor=-2 + +:xstring Constant + * bad_xstring recolor=-1 + " \t\r\n\f0-9A-Fa-f" xstring + "\"" string_postfix + +:bad_xstring Bad + * xstring noeat + +:maybe_rstring Idle + * ident noeat + "\"" rstring recolor=-2 + +:rstring Constant + * rstring + "\"" string_postfix + +:bstring Constant + * bstring + "`" string_postfix + +:string Constant + * string + "\"" string_postfix + "\\" string_escape recolor=-1 + "%" string_control recolor=-1 + +:string_postfix Constant + * idle noeat + "cwd" idle + +:string_escape Escape + * string + "U" string_hex8 + "u" string_hex4 + "x" string_hex2 + "0-7" string_octal2 + "\n" string recolor=-2 + +:string_hex8 Escape + * string noeat + "0-9a-fA-F" string_hex7 + +:string_hex7 Escape + * string noeat + "0-9a-fA-F" string_hex6 + +:string_hex6 Escape + * string noeat + "0-9a-fA-F" string_hex5 + +:string_hex5 Escape + * string noeat + "0-9a-fA-F" string_hex4 + +:string_hex4 Escape + * string noeat + "0-9a-fA-F" string_hex3 + +:string_hex3 Escape + * string noeat + "0-9a-fA-F" string_hex2 + +:string_hex2 Escape + * string noeat + "0-9a-fA-F" string_hex1 + +:string_hex1 Escape + * string noeat + "0-9a-fA-F" string + +:string_octal2 Escape + * string noeat + "0-7" string_octal1 + +:string_octal1 Escape + * string noeat + "0-7" string + +:string_control Escape + * string_control + "\n" idle + "\"" string noeat + "diouxXeEfFgGaAcspn%SCM" string + +:char Constant + * char_done + "'" idle + "\\" char_escape recolor=-1 + +:char_done Constant + * idle noeat recolor=-3 + "\'" idle + +:char_escape Escape + * char_done + "U" char_hex8 + "u" char_hex4 + "x" char_hex2 + "0-7" char_octal2 + +:char_hex8 Escape + * char_done noeat + "0-9a-fA-F" char_hex7 + +:char_hex7 Escape + * char_done noeat + "0-9a-fA-F" char_hex6 + +:char_hex6 Escape + * char_done noeat + "0-9a-fA-F" char_hex5 + +:char_hex5 Escape + * char_done noeat + "0-9a-fA-F" char_hex4 + +:char_hex4 Escape + * char_done noeat + "0-9a-fA-F" char_hex3 + +:char_hex3 Escape + * char_done noeat + "0-9a-fA-F" char_hex2 + +:char_hex2 Escape + * char_done noeat + "0-9a-fA-F" char_hex1 + +:char_hex1 Escape + * char_done noeat + "0-9a-fA-F" char_done + +:char_octal2 Escape + * char_done noeat + "0-7" char_octal1 + +:char_octal1 Escape + * char_done noeat + "0-7" char_done + +:ident Idle + * ident_end noeat recolormark strings + "abstract" kw + "alias" kw + "align" kw + "asm" kw + "assert" kw + "auto" kw + "body" kw + "bool" kw + "break" kw + "byte" kw + "case" kw + "cast" kw + "catch" kw + "cdouble" kw + "cent" kw + "cfloat" kw + "char" kw + "class" kw + "const" kw + "continue" kw + "creal" kw + "dchar" kw + "debug" kw + "default" kw + "delegate" kw + "delete" kw + "deprecated" kw + "do" kw + "double" kw + "else" kw + "enum" kw + "export" kw + "extern" kw + "false" kw + "final" kw + "finally" kw + "float" kw + "for" kw + "foreach" kw + "foreach_reverse" kw + "function" kw + "goto" kw + "idouble" kw + "if" kw + "ifloat" kw + "immutable" kw + "import" kw + "in" kw + "inout" kw + "int" kw + "interface" kw + "invariant" kw + "ireal" kw + "is" kw + "lazy" kw + "long" kw + "macro" kw + "mixin" kw + "module" kw + "new" kw + "nothrow" kw + "null" kw + "out" kw + "override" kw + "package" kw + "pragma" kw + "private" kw + "protected" kw + "public" kw + "pure" kw + "real" kw + "ref" kw + "return" kw + "scope" kw + "shared" kw + "short" kw + "static" kw + "struct" kw + "super" kw + "switch" kw + "synchronized" kw + "template" kw + "this" kw + "throw" kw + "true" kw + "try" kw + "typedef" kw + "typeid" kw + "typeof" kw + "ubyte" kw + "ucent" kw + "uint" kw + "ulong" kw + "union" kw + "unittest" kw + "ushort" kw + "version" kw + "void" kw + "volatile" kw + "wchar" kw + "while" kw + "with" kw + "__FILE__" kw + "__MODULE__" kw + "__LINE__" kw + "__FUNCTION__" kw + "__PRETTY_FUNCTION__" kw + "__gshared" kw + "__traits" kw + "__vector" kw + "__parameters" kw +done + "\c" ident + +:type Type + * idle noeat + +:kw Keyword + * idle noeat + +:bad_kw Bad + * idle noeat + +:lit Constant + * idle noeat + +:operator Operator + * idle noeat + +:ident_end Idle + * idle noeat + " " ident_end + "(" method_end noeat recolormark + +:method_end Methods + * idle noeat + +.end + +# Recursive block comments + +.subr block_comment + +:idle Comment + * idle + # might be TODO label + "BFHNTX" idle noeat call=comment_todo.comment_todo() + "+" maybe_done + "/" maybe_recur + +:maybe_done Comment + * idle noeat + "/" idle return + +:maybe_recur Comment + * idle noeat + "+" idle call=.block_comment() + +.end diff --git a/.joe/syntax/d.jsf.in b/.joe/syntax/d.jsf.in @@ -0,0 +1,537 @@ +# JOE syntax highlight file for D + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Type bold +=Keyword bold +=Operator bold +=Bad bold red +=Brace magenta +=Control + +=Methods + +:begin Idle + * begin noeat call=.d() + +.subr d + +:idle Idle + * idle + "(" idle call=.d(paren) + "[" idle call=.d(brack) + "{" do_brace recolor=-1 noeat +# "{" brace recolor=-1 call=.d(squiggly) +.ifdef paren + ")" idle return +.else + ")" stray recolor=-1 +.endif +.ifdef brack + "]" idle return +.else + "]" stray recolor=-1 +.endif +.ifdef squiggly + "}" brace recolor=-1 return +.else + "}" stray recolor=-1 +.endif + "\n" idle + "/" slash + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." maybe_float + "\"" string recolor=-1 + "'" char recolor=-1 + "\i" ident mark buffer + ",:;=><*&|!~+\-%^" control recolor=-1 + "r" maybe_rstring mark buffer + "x" maybe_xstring mark buffer + "q" maybe_qstring recolor=-1 mark buffer + "`" bstring recolor=-1 + +:do_brace Brace + * idle noeat + "{" brace call=.d(squiggly) + +:brace Brace + * idle noeat + +:stray Bad + * idle noeat + +:maybe_done Control + * idle noeat + "/" idle noeat return recolor=-2 + +:control Control + * idle noeat + +:slash Idle + * idle noeat + "*" comment recolor=-2 + "+" idle recolor=-2 call=.block_comment() + "/" line_comment recolor=-2 + +:comment Comment + * comment + # might be TODO label + "BFHNTX" comment noeat call=comment_todo.comment_todo() + "*" maybe_end_comment + +:maybe_end_comment Comment + * comment noeat + "/" idle + "*" maybe_end_comment + +:line_comment Comment + * line_comment + # might be TODO label + "BFHNTX" line_comment noeat call=comment_todo.comment_todo() + "\n" idle + +:int_postfix Constant + * idle noeat + "uU" int_postfix_1 + "L" int_postfix_2 + +:int_postfix_1 Constant + * idle noeat + "L" idle + +:int_postfix_2 Constant + * idle noeat + "uU" idle + +:float_postfix Constant + * idle noeat + "fF" float_postfix_1 + "L" float_postfix_1 + "i" idle + +:float_postfix_1 Constant + * idle noeat + "i" idle + +:first_digit Constant + * int_postfix noeat + "xX" hex + "bB" bin + "." float + "eE" epart + "0-9" decimal + +:bad_number Bad + * idle noeat + "0-9" bad_number + +:octal Constant + * int_postfix noeat + "0-7_" octal + "89" bad_number recolor=-1 + +:hex Constant + * int_postfix noeat + "0-9A-Fa-f_" hex + "." hexfloat + "pP" ppart + +:hexfloat Constant + * float_postfix noeat + "0-9A-Fa-f_" hexfloat + "pP" ppart + +:ppart Constant + * float_postfix noeat + "0-9+\-" pnum + +:pnum Constant + * float_postfix noeat + "0-9_" pnum + +:decimal Constant + * int_postfix noeat + "0-9_" decimal + "eE" epart + "." float + +:maybe_float Constant + * idle recolor=-2 noeat + "\i" not_ident recolor=-2 + "0-9" float recolor=-2 + +:not_ident Idle + * idle noeat + "\c" not_ident + +:float Constant + * float_postfix noeat + "eE" epart + "0-9_" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * float_postfix noeat + "0-9_" enum + +:maybe_qstring Brace + * ident recolor=-1 noeat + "{" brace call=.d(squiggly) + "\"" qdstring recolor=-2 + +:qdstring Constant + * qstring save_c + "\i" qdelim buffer + +:qdelim Constant + * qdelim_bad noeat save_s + "\c" qdelim + "\n" skipline noeat save_s + +:qdelim_bad Bad + * qdelim_bad + "\n" skipline noeat + +:skipline Constant + * skipline + "\n" next_line + +:todelim Constant + * todelim + "\n" next_line + "\"" next_line strings + "&" founddelim +done + +:founddelim Constant + * idle noeat + "\"" bad_line + +:bad_line Bad + * bad_line + "\n" idle + +# eat \n so it's not in string. +:next_line Constant + * todelim buffer + "\n" next_line + +:qstring Constant + * qstring + & qstring_1 + +:qstring_1 Constant + * qstring noeat + "\"" string_postfix + +:maybe_xstring Idle + * ident noeat + "\"" xstring recolor=-2 + +:xstring Constant + * bad_xstring recolor=-1 + " \t\r\n\f0-9A-Fa-f" xstring + "\"" string_postfix + +:bad_xstring Bad + * xstring noeat + +:maybe_rstring Idle + * ident noeat + "\"" rstring recolor=-2 + +:rstring Constant + * rstring + "\"" string_postfix + +:bstring Constant + * bstring + "`" string_postfix + +:string Constant + * string + "\"" string_postfix + "\\" string_escape recolor=-1 + "%" string_control recolor=-1 + +:string_postfix Constant + * idle noeat + "cwd" idle + +:string_escape Escape + * string + "U" string_hex8 + "u" string_hex4 + "x" string_hex2 + "0-7" string_octal2 + "\n" string recolor=-2 + +:string_hex8 Escape + * string noeat + "0-9a-fA-F" string_hex7 + +:string_hex7 Escape + * string noeat + "0-9a-fA-F" string_hex6 + +:string_hex6 Escape + * string noeat + "0-9a-fA-F" string_hex5 + +:string_hex5 Escape + * string noeat + "0-9a-fA-F" string_hex4 + +:string_hex4 Escape + * string noeat + "0-9a-fA-F" string_hex3 + +:string_hex3 Escape + * string noeat + "0-9a-fA-F" string_hex2 + +:string_hex2 Escape + * string noeat + "0-9a-fA-F" string_hex1 + +:string_hex1 Escape + * string noeat + "0-9a-fA-F" string + +:string_octal2 Escape + * string noeat + "0-7" string_octal1 + +:string_octal1 Escape + * string noeat + "0-7" string + +:string_control Escape + * string_control + "\n" idle + "\"" string noeat + "diouxXeEfFgGaAcspn%SCM" string + +:char Constant + * char_done + "'" idle + "\\" char_escape recolor=-1 + +:char_done Constant + * idle noeat recolor=-3 + "\'" idle + +:char_escape Escape + * char_done + "U" char_hex8 + "u" char_hex4 + "x" char_hex2 + "0-7" char_octal2 + +:char_hex8 Escape + * char_done noeat + "0-9a-fA-F" char_hex7 + +:char_hex7 Escape + * char_done noeat + "0-9a-fA-F" char_hex6 + +:char_hex6 Escape + * char_done noeat + "0-9a-fA-F" char_hex5 + +:char_hex5 Escape + * char_done noeat + "0-9a-fA-F" char_hex4 + +:char_hex4 Escape + * char_done noeat + "0-9a-fA-F" char_hex3 + +:char_hex3 Escape + * char_done noeat + "0-9a-fA-F" char_hex2 + +:char_hex2 Escape + * char_done noeat + "0-9a-fA-F" char_hex1 + +:char_hex1 Escape + * char_done noeat + "0-9a-fA-F" char_done + +:char_octal2 Escape + * char_done noeat + "0-7" char_octal1 + +:char_octal1 Escape + * char_done noeat + "0-7" char_done + +:ident Idle + * ident_end noeat recolormark strings + "abstract" kw + "alias" kw + "align" kw + "asm" kw + "assert" kw + "auto" kw + "body" kw + "bool" kw + "break" kw + "byte" kw + "case" kw + "cast" kw + "catch" kw + "cdouble" kw + "cent" kw + "cfloat" kw + "char" kw + "class" kw + "const" kw + "continue" kw + "creal" kw + "dchar" kw + "debug" kw + "default" kw + "delegate" kw + "delete" kw + "deprecated" kw + "do" kw + "double" kw + "else" kw + "enum" kw + "export" kw + "extern" kw + "false" kw + "final" kw + "finally" kw + "float" kw + "for" kw + "foreach" kw + "foreach_reverse" kw + "function" kw + "goto" kw + "idouble" kw + "if" kw + "ifloat" kw + "immutable" kw + "import" kw + "in" kw + "inout" kw + "int" kw + "interface" kw + "invariant" kw + "ireal" kw + "is" kw + "lazy" kw + "long" kw + "macro" kw + "mixin" kw + "module" kw + "new" kw + "nothrow" kw + "null" kw + "out" kw + "override" kw + "package" kw + "pragma" kw + "private" kw + "protected" kw + "public" kw + "pure" kw + "real" kw + "ref" kw + "return" kw + "scope" kw + "shared" kw + "short" kw + "static" kw + "struct" kw + "super" kw + "switch" kw + "synchronized" kw + "template" kw + "this" kw + "throw" kw + "true" kw + "try" kw + "typedef" kw + "typeid" kw + "typeof" kw + "ubyte" kw + "ucent" kw + "uint" kw + "ulong" kw + "union" kw + "unittest" kw + "ushort" kw + "version" kw + "void" kw + "volatile" kw + "wchar" kw + "while" kw + "with" kw + "__FILE__" kw + "__MODULE__" kw + "__LINE__" kw + "__FUNCTION__" kw + "__PRETTY_FUNCTION__" kw + "__gshared" kw + "__traits" kw + "__vector" kw + "__parameters" kw +done + "\c" ident + +:type Type + * idle noeat + +:kw Keyword + * idle noeat + +:bad_kw Bad + * idle noeat + +:lit Constant + * idle noeat + +:operator Operator + * idle noeat + +:ident_end Idle + * idle noeat + " " ident_end + "(" method_end noeat recolormark + +:method_end Methods + * idle noeat + +.end + +# Recursive block comments + +.subr block_comment + +:idle Comment + * idle + # might be TODO label + "BFHNTX" idle noeat call=comment_todo.comment_todo() + "+" maybe_done + "/" maybe_recur + +:maybe_done Comment + * idle noeat + "/" idle return + +:maybe_recur Comment + * idle noeat + "+" idle call=.block_comment() + +.end diff --git a/.joe/syntax/debian.jsf b/.joe/syntax/debian.jsf @@ -0,0 +1,67 @@ +# JOE syntax highlight file for apt's sources.list +# by Christian Nicolai (http://mycrobase.de) + +=Idle +=Comment green +=Keyword bold +=Bad bold red + +=URL cyan + +=SpacyURL bold cyan +=Distribution red +=Component magenta + +:line_start Idle + * line_rest noeat + "#" line_comment recolor=-1 + "a-zA-Z" deb recolor=-1 + +:line_rest Idle + * line_rest + "\n" line_start + +:line_comment Comment + * line_comment + "\n" line_start + +:deb Keyword + * deb + " \t" deb_url_pre + +# allow multiple spaces +:deb_url_pre Idle + * deb_url noeat + " \t" deb_url_pre + +:deb_url URL + * deb_url + "[" deb_spacy_url recolor=-1 + " \t" deb_distro_pre + +:deb_spacy_url SpacyURL + * deb_spacy_url + "]" deb_url + +# allow multiple spaces +:deb_distro_pre Idle + * deb_distro noeat + " \t" deb_distro_pre + +:deb_distro Distribution + * deb_distro + " \t" deb_component_pre + + # distro is the last obligatory part, + # components are all optional + "\n" line_start + +# allow multiple spaces +:deb_component_pre Idle + * deb_component noeat + " \t" deb_component_pre + +:deb_component Component + * deb_component + " \t" deb_component_pre + "\n" line_start diff --git a/.joe/syntax/debian.jsf.in b/.joe/syntax/debian.jsf.in @@ -0,0 +1,67 @@ +# JOE syntax highlight file for apt's sources.list +# by Christian Nicolai (http://mycrobase.de) + +=Idle +=Comment green +=Keyword bold +=Bad bold red + +=URL cyan + +=SpacyURL bold cyan +=Distribution red +=Component magenta + +:line_start Idle + * line_rest noeat + "#" line_comment recolor=-1 + "a-zA-Z" deb recolor=-1 + +:line_rest Idle + * line_rest + "\n" line_start + +:line_comment Comment + * line_comment + "\n" line_start + +:deb Keyword + * deb + " \t" deb_url_pre + +# allow multiple spaces +:deb_url_pre Idle + * deb_url noeat + " \t" deb_url_pre + +:deb_url URL + * deb_url + "[" deb_spacy_url recolor=-1 + " \t" deb_distro_pre + +:deb_spacy_url SpacyURL + * deb_spacy_url + "]" deb_url + +# allow multiple spaces +:deb_distro_pre Idle + * deb_distro noeat + " \t" deb_distro_pre + +:deb_distro Distribution + * deb_distro + " \t" deb_component_pre + + # distro is the last obligatory part, + # components are all optional + "\n" line_start + +# allow multiple spaces +:deb_component_pre Idle + * deb_component noeat + " \t" deb_component_pre + +:deb_component Component + * deb_component + " \t" deb_component_pre + "\n" line_start diff --git a/.joe/syntax/diff.jsf b/.joe/syntax/diff.jsf @@ -0,0 +1,422 @@ +# JOE syntax highlight file for diff/patch files +# +# 2007-05-11 : +# +# This file is just udiff.jsf, ndiff.jsf and cdiff.jsf merged together +# into one file, to handle cases where A) it's difficult to tell what +# type of diff might be inside the file to highlight and B) the file to +# highlight may contain hunks of different types of diffs (unlikely). +# Of course it can be used to replace the 3 abovementioned files +# completely. If you want that, you need to edit ftyperc accordingly. +# +# Dirk Schenkewitz <Dirk.Schenkewitz (AT) gmx.de> +# + + +# Color definitions +=Idle +=Garbage dim white +=DiffCmd blue +=FileOld bold red +=FileNew bold green +=HunkHead bold blue +=HunkMid bold blue +=DelLine red +=AddLine green +=ChgLine magenta +=CtxLine + + +:reset Idle + * garbage recolor=-1 + "\n" reset + "d" garbage buffer recolor=-1 # may be a "diff" command + "-" udiff_o1 # may start a unified diff hunk + "*" cdiff_o1 # may start a context diff hunk + "0-9" ndiff_r0 mark recolor=-1 # may start a "normal" diff hunk + +:garbage Garbage + * garbage strings + "diff" diff_cmd recolor=-3 +done + "\n" reset + +:diff_cmd DiffCmd + * diff_cmd + "\n" reset + +#---------------------------------------------- + +# unified diffs: + +:udiff_o1 Idle + * garbage recolor=-2 buffer + "-" udiff_o2 + +:udiff_o2 Idle + * garbage recolor=-3 buffer + "-" udiff_o3 + +:udiff_o3 Idle + * garbage recolor=-4 buffer + " " udiff_o4 + +:udiff_o4 Idle + * udiff_oldf recolor=-5 + " " garbage recolor=-5 buffer + +:udiff_n0 Idle + * garbage recolor=-1 buffer + "+" udiff_n1 + +:udiff_n1 Idle + * garbage recolor=-2 buffer + "+" udiff_n2 + +:udiff_n2 Idle + * garbage recolor=-3 buffer + "+" udiff_n3 + +:udiff_n3 Idle + * garbage recolor=-4 buffer + " " udiff_newf recolor=-4 + +:udiff_oldf FileOld + * udiff_oldf + "\n" udiff_n0 + +:udiff_newf FileNew + * udiff_newf + "\n" udiff_prehunk1 + +:udiff_prehunk1 Idle + * garbage + "@" udiff_prehunk2 + "\n" reset + +:udiff_prehunk2 Idle + * garbage recolor=-1 + "@" udiff_prehunk3 + "\n" reset + +:udiff_prehunk3 Idle + * garbage recolor=-1 + " " udiff_hunkhead recolor=-3 + "\n" reset + +:udiff_hunkhead HunkHead + * udiff_hunkhead + "\n" udiff_hunkbody + +:udiff_hunkbody Idle + * reset noeat + "d" garbage recolor=-1 buffer + "-" udiff_minus1 + "+" udiff_add recolor=-1 + " " udiff_ctx recolor=-1 + "@" udiff_prehunk2 + +:udiff_minus1 Idle + * udiff_del noeat recolor=-2 + "-" udiff_minus2 + +:udiff_minus2 Idle + * udiff_del noeat recolor=-3 + "-" udiff_minus3 + +:udiff_minus3 Idle + * udiff_del noeat recolor=-4 + " " udiff_minus4 + +:udiff_minus4 Idle + * udiff_oldf recolor=-5 + "\n" udiff_hunkbody + " " udiff_del recolor=-5 + +:udiff_del DelLine + * udiff_del + "\n" udiff_hunkbody + +:udiff_add AddLine + * udiff_add + "\n" udiff_hunkbody + +:udiff_ctx CtxLine + * udiff_ctx + "\n" udiff_hunkbody + +#---------------------------------------------- + +# "normal" diffs: + +:ndiff_r0 Idle + * garbage noeat recolormark + "0-9" ndiff_r0 + "," ndiff_r1 + "adc" ndiff_r2 + "\n" reset markend + +:ndiff_r1 Idle + * garbage recolormark + "0-9" ndiff_r1 + "adc" ndiff_r2 + "\n" reset markend + +:ndiff_r2 Idle + * garbage noeat recolormark + "0-9" ndiff_r2 + "," ndiff_r3 + "\n" ndiff_re noeat recolormark + +:ndiff_r3 Idle + * garbage noeat recolormark + "0-9" ndiff_r3 + "\n" ndiff_re noeat recolormark + +:ndiff_re HunkHead + "\n" ndiff_hunk0 + +:ndiff_hunk0 HunkHead + * reset noeat + "<" ndiff_o1 + ">" ndiff_n1 + "\\" ndiff_t1 + + +:ndiff_hunk1 HunkHead + * reset noeat + "<" ndiff_o1 + ">" ndiff_n1 + "-" ndiff_m1 recolor=-1 + "\\" ndiff_t1 + + +:ndiff_t1 Idle + * garbage recolor=-3 + "\n" reset + " " ndiff_txt recolor=-3 + +:ndiff_o1 Idle + * garbage recolor=-3 + "\n" reset + " " ndiff_del recolor=-3 + +:ndiff_n1 Idle + * garbage recolor=-3 + "\n" reset + " " ndiff_add recolor=-3 + +:ndiff_txt CtxLine + * ndiff_txt + "\n" ndiff_hunk1 + +:ndiff_del DelLine + * ndiff_del + "\n" ndiff_hunk1 + +:ndiff_add AddLine + * ndiff_add + "\n" ndiff_hunk1 + + +:ndiff_m1 Idle + * garbage recolor=-2 + "-" ndiff_m2 + "\n" reset recolor=-2 + +:ndiff_m2 Idle + * garbage recolor=-3 + "-" ndiff_m3 recolor=-3 + +:ndiff_m3 HunkMid + * garbage recolor=-4 + "\n" ndiff_hunk0 + +#---------------------------------------------- + +# context diffs: + +:cdiff_o1 Idle + * garbage recolor=-2 buffer + "*" cdiff_o2 + +:cdiff_o2 Idle + * garbage recolor=-3 buffer + "*" cdiff_o3 + +:cdiff_o3 Idle + * garbage recolor=-4 buffer + " " cdiff_o4 + +:cdiff_o4 Idle + * cdiff_oldf recolor=-5 + " " garbage recolor=-5 buffer + +:cdiff_oldf FileOld + * cdiff_oldf + "\n" cdiff_n0 + +:cdiff_n0 Idle + * garbage recolor=-1 buffer + "-" cdiff_n1 + +:cdiff_n1 Idle + * garbage recolor=-2 buffer + "-" cdiff_n2 + +:cdiff_n2 Idle + * garbage recolor=-3 buffer + "-" cdiff_n3 + +:cdiff_n3 Idle + * garbage recolor=-4 buffer + " " cdiff_newf recolor=-4 + +:cdiff_newf FileNew + * cdiff_newf + "\n" cdiff_prehunk0 + +:cdiff_prehunk0 Idle + * manystars buffer + +:manystars Idle + * garbage noeat strings + "***************" cdiff_prehunk1 +done + "*" manystars + + +:cdiff_prehunk1 HunkHead + * cdiff_ho0 + +:cdiff_ho0 Idle + * garbage recolor=-1 buffer + "*" cdiff_ho1 + +:cdiff_ho1 Idle + * garbage recolor=-2 buffer + "*" cdiff_ho2 + +:cdiff_ho2 Idle + * garbage recolor=-3 buffer + "*" cdiff_ho3 + +:cdiff_ho3 Idle + * garbage recolor=-4 buffer + " " cdiff_ho4 recolor=-4 mark + +:cdiff_ho4 HunkHead + * garbage recolormark buffer + "0-9," cdiff_ho4 + " " cdiff_ho5 recolormark buffer + "\n" reset markend + +:cdiff_ho5 HunkHead + * garbage recolor=-1 buffer + "*" cdiff_ho6 + +:cdiff_ho6 Idle + * garbage recolor=-2 buffer + "*" cdiff_ho7 + +:cdiff_ho7 Idle + * garbage recolor=-3 buffer + "*" cdiff_ho8 + +:cdiff_ho8 Idle + * garbage recolor=-4 buffer + "*" cdiff_ho9 recolor=-4 + +:cdiff_ho9 HunkHead + * garbage recolor=-5 buffer + "\n" cdiff_hunk + + +:cdiff_hn0 Idle + * garbage recolor=-1 buffer + "-" cdiff_hn1 + +:cdiff_hn1 Idle + * garbage recolor=-2 buffer + "-" cdiff_hn2 + +:cdiff_hn2 Idle + * garbage recolor=-3 buffer + "-" cdiff_hn3 + +:cdiff_hn3 Idle + * garbage recolor=-4 buffer + " " cdiff_hn4 recolor=-4 mark + +:cdiff_hn4 HunkHead + * garbage recolormark buffer + "0-9," cdiff_hn4 + " " cdiff_hn5 recolormark buffer + "\n" reset markend + +:cdiff_hn5 HunkHead + * garbage recolor=-1 buffer + "-" cdiff_hn6 + +:cdiff_hn6 Idle + * garbage recolor=-2 buffer + "-" cdiff_hn7 + +:cdiff_hn7 Idle + * garbage recolor=-3 buffer + "-" cdiff_hn8 + +:cdiff_hn8 Idle + * garbage recolor=-4 buffer + "-" cdiff_hn9 recolor=-4 + +:cdiff_hn9 HunkHead + * garbage recolor=-5 buffer + "\n" cdiff_hunk + + + +:cdiff_hunk Idle + * garbage recolor=-1 buffer + " " cdiff_h_c0 + "+" cdiff_h_p0 + "!" cdiff_h_x0 + "-" cdiff_h_m0 + "*" manystars buffer + +:cdiff_h_c0 Idle + * garbage recolor=-2 buffer + " " cdiff_h_c1 recolor=-2 + "\n" reset + +:cdiff_h_c1 CtxLine + * cdiff_h_c1 + "\n" cdiff_hunk + +:cdiff_h_p0 Idle + * garbage recolor=-2 buffer + " " cdiff_h_p1 recolor=-2 + "\n" reset + +:cdiff_h_p1 AddLine + * cdiff_h_p1 + "\n" cdiff_hunk + +:cdiff_h_x0 Idle + * garbage recolor=-2 buffer + " " cdiff_h_x1 recolor=-2 + "\n" reset + +:cdiff_h_x1 ChgLine + * cdiff_h_x1 + "\n" cdiff_hunk + +:cdiff_h_m0 Idle + * garbage recolor=-2 buffer + " " cdiff_h_m1 recolor=-2 + "-" cdiff_hn2 recolor=-2 + "\n" reset + +:cdiff_h_m1 DelLine + * cdiff_h_m1 + "\n" cdiff_hunk diff --git a/.joe/syntax/diff.jsf.in b/.joe/syntax/diff.jsf.in @@ -0,0 +1,422 @@ +# JOE syntax highlight file for diff/patch files +# +# 2007-05-11 : +# +# This file is just udiff.jsf, ndiff.jsf and cdiff.jsf merged together +# into one file, to handle cases where A) it's difficult to tell what +# type of diff might be inside the file to highlight and B) the file to +# highlight may contain hunks of different types of diffs (unlikely). +# Of course it can be used to replace the 3 abovementioned files +# completely. If you want that, you need to edit ftyperc accordingly. +# +# Dirk Schenkewitz <Dirk.Schenkewitz (AT) gmx.de> +# + + +# Color definitions +=Idle +=Garbage dim white +=DiffCmd blue +=FileOld bold red +=FileNew bold green +=HunkHead bold blue +=HunkMid bold blue +=DelLine red +=AddLine green +=ChgLine magenta +=CtxLine + + +:reset Idle + * garbage recolor=-1 + "\n" reset + "d" garbage buffer recolor=-1 # may be a "diff" command + "-" udiff_o1 # may start a unified diff hunk + "*" cdiff_o1 # may start a context diff hunk + "0-9" ndiff_r0 mark recolor=-1 # may start a "normal" diff hunk + +:garbage Garbage + * garbage strings + "diff" diff_cmd recolor=-3 +done + "\n" reset + +:diff_cmd DiffCmd + * diff_cmd + "\n" reset + +#---------------------------------------------- + +# unified diffs: + +:udiff_o1 Idle + * garbage recolor=-2 buffer + "-" udiff_o2 + +:udiff_o2 Idle + * garbage recolor=-3 buffer + "-" udiff_o3 + +:udiff_o3 Idle + * garbage recolor=-4 buffer + " " udiff_o4 + +:udiff_o4 Idle + * udiff_oldf recolor=-5 + " " garbage recolor=-5 buffer + +:udiff_n0 Idle + * garbage recolor=-1 buffer + "+" udiff_n1 + +:udiff_n1 Idle + * garbage recolor=-2 buffer + "+" udiff_n2 + +:udiff_n2 Idle + * garbage recolor=-3 buffer + "+" udiff_n3 + +:udiff_n3 Idle + * garbage recolor=-4 buffer + " " udiff_newf recolor=-4 + +:udiff_oldf FileOld + * udiff_oldf + "\n" udiff_n0 + +:udiff_newf FileNew + * udiff_newf + "\n" udiff_prehunk1 + +:udiff_prehunk1 Idle + * garbage + "@" udiff_prehunk2 + "\n" reset + +:udiff_prehunk2 Idle + * garbage recolor=-1 + "@" udiff_prehunk3 + "\n" reset + +:udiff_prehunk3 Idle + * garbage recolor=-1 + " " udiff_hunkhead recolor=-3 + "\n" reset + +:udiff_hunkhead HunkHead + * udiff_hunkhead + "\n" udiff_hunkbody + +:udiff_hunkbody Idle + * reset noeat + "d" garbage recolor=-1 buffer + "-" udiff_minus1 + "+" udiff_add recolor=-1 + " " udiff_ctx recolor=-1 + "@" udiff_prehunk2 + +:udiff_minus1 Idle + * udiff_del noeat recolor=-2 + "-" udiff_minus2 + +:udiff_minus2 Idle + * udiff_del noeat recolor=-3 + "-" udiff_minus3 + +:udiff_minus3 Idle + * udiff_del noeat recolor=-4 + " " udiff_minus4 + +:udiff_minus4 Idle + * udiff_oldf recolor=-5 + "\n" udiff_hunkbody + " " udiff_del recolor=-5 + +:udiff_del DelLine + * udiff_del + "\n" udiff_hunkbody + +:udiff_add AddLine + * udiff_add + "\n" udiff_hunkbody + +:udiff_ctx CtxLine + * udiff_ctx + "\n" udiff_hunkbody + +#---------------------------------------------- + +# "normal" diffs: + +:ndiff_r0 Idle + * garbage noeat recolormark + "0-9" ndiff_r0 + "," ndiff_r1 + "adc" ndiff_r2 + "\n" reset markend + +:ndiff_r1 Idle + * garbage recolormark + "0-9" ndiff_r1 + "adc" ndiff_r2 + "\n" reset markend + +:ndiff_r2 Idle + * garbage noeat recolormark + "0-9" ndiff_r2 + "," ndiff_r3 + "\n" ndiff_re noeat recolormark + +:ndiff_r3 Idle + * garbage noeat recolormark + "0-9" ndiff_r3 + "\n" ndiff_re noeat recolormark + +:ndiff_re HunkHead + "\n" ndiff_hunk0 + +:ndiff_hunk0 HunkHead + * reset noeat + "<" ndiff_o1 + ">" ndiff_n1 + "\\" ndiff_t1 + + +:ndiff_hunk1 HunkHead + * reset noeat + "<" ndiff_o1 + ">" ndiff_n1 + "-" ndiff_m1 recolor=-1 + "\\" ndiff_t1 + + +:ndiff_t1 Idle + * garbage recolor=-3 + "\n" reset + " " ndiff_txt recolor=-3 + +:ndiff_o1 Idle + * garbage recolor=-3 + "\n" reset + " " ndiff_del recolor=-3 + +:ndiff_n1 Idle + * garbage recolor=-3 + "\n" reset + " " ndiff_add recolor=-3 + +:ndiff_txt CtxLine + * ndiff_txt + "\n" ndiff_hunk1 + +:ndiff_del DelLine + * ndiff_del + "\n" ndiff_hunk1 + +:ndiff_add AddLine + * ndiff_add + "\n" ndiff_hunk1 + + +:ndiff_m1 Idle + * garbage recolor=-2 + "-" ndiff_m2 + "\n" reset recolor=-2 + +:ndiff_m2 Idle + * garbage recolor=-3 + "-" ndiff_m3 recolor=-3 + +:ndiff_m3 HunkMid + * garbage recolor=-4 + "\n" ndiff_hunk0 + +#---------------------------------------------- + +# context diffs: + +:cdiff_o1 Idle + * garbage recolor=-2 buffer + "*" cdiff_o2 + +:cdiff_o2 Idle + * garbage recolor=-3 buffer + "*" cdiff_o3 + +:cdiff_o3 Idle + * garbage recolor=-4 buffer + " " cdiff_o4 + +:cdiff_o4 Idle + * cdiff_oldf recolor=-5 + " " garbage recolor=-5 buffer + +:cdiff_oldf FileOld + * cdiff_oldf + "\n" cdiff_n0 + +:cdiff_n0 Idle + * garbage recolor=-1 buffer + "-" cdiff_n1 + +:cdiff_n1 Idle + * garbage recolor=-2 buffer + "-" cdiff_n2 + +:cdiff_n2 Idle + * garbage recolor=-3 buffer + "-" cdiff_n3 + +:cdiff_n3 Idle + * garbage recolor=-4 buffer + " " cdiff_newf recolor=-4 + +:cdiff_newf FileNew + * cdiff_newf + "\n" cdiff_prehunk0 + +:cdiff_prehunk0 Idle + * manystars buffer + +:manystars Idle + * garbage noeat strings + "***************" cdiff_prehunk1 +done + "*" manystars + + +:cdiff_prehunk1 HunkHead + * cdiff_ho0 + +:cdiff_ho0 Idle + * garbage recolor=-1 buffer + "*" cdiff_ho1 + +:cdiff_ho1 Idle + * garbage recolor=-2 buffer + "*" cdiff_ho2 + +:cdiff_ho2 Idle + * garbage recolor=-3 buffer + "*" cdiff_ho3 + +:cdiff_ho3 Idle + * garbage recolor=-4 buffer + " " cdiff_ho4 recolor=-4 mark + +:cdiff_ho4 HunkHead + * garbage recolormark buffer + "0-9," cdiff_ho4 + " " cdiff_ho5 recolormark buffer + "\n" reset markend + +:cdiff_ho5 HunkHead + * garbage recolor=-1 buffer + "*" cdiff_ho6 + +:cdiff_ho6 Idle + * garbage recolor=-2 buffer + "*" cdiff_ho7 + +:cdiff_ho7 Idle + * garbage recolor=-3 buffer + "*" cdiff_ho8 + +:cdiff_ho8 Idle + * garbage recolor=-4 buffer + "*" cdiff_ho9 recolor=-4 + +:cdiff_ho9 HunkHead + * garbage recolor=-5 buffer + "\n" cdiff_hunk + + +:cdiff_hn0 Idle + * garbage recolor=-1 buffer + "-" cdiff_hn1 + +:cdiff_hn1 Idle + * garbage recolor=-2 buffer + "-" cdiff_hn2 + +:cdiff_hn2 Idle + * garbage recolor=-3 buffer + "-" cdiff_hn3 + +:cdiff_hn3 Idle + * garbage recolor=-4 buffer + " " cdiff_hn4 recolor=-4 mark + +:cdiff_hn4 HunkHead + * garbage recolormark buffer + "0-9," cdiff_hn4 + " " cdiff_hn5 recolormark buffer + "\n" reset markend + +:cdiff_hn5 HunkHead + * garbage recolor=-1 buffer + "-" cdiff_hn6 + +:cdiff_hn6 Idle + * garbage recolor=-2 buffer + "-" cdiff_hn7 + +:cdiff_hn7 Idle + * garbage recolor=-3 buffer + "-" cdiff_hn8 + +:cdiff_hn8 Idle + * garbage recolor=-4 buffer + "-" cdiff_hn9 recolor=-4 + +:cdiff_hn9 HunkHead + * garbage recolor=-5 buffer + "\n" cdiff_hunk + + + +:cdiff_hunk Idle + * garbage recolor=-1 buffer + " " cdiff_h_c0 + "+" cdiff_h_p0 + "!" cdiff_h_x0 + "-" cdiff_h_m0 + "*" manystars buffer + +:cdiff_h_c0 Idle + * garbage recolor=-2 buffer + " " cdiff_h_c1 recolor=-2 + "\n" reset + +:cdiff_h_c1 CtxLine + * cdiff_h_c1 + "\n" cdiff_hunk + +:cdiff_h_p0 Idle + * garbage recolor=-2 buffer + " " cdiff_h_p1 recolor=-2 + "\n" reset + +:cdiff_h_p1 AddLine + * cdiff_h_p1 + "\n" cdiff_hunk + +:cdiff_h_x0 Idle + * garbage recolor=-2 buffer + " " cdiff_h_x1 recolor=-2 + "\n" reset + +:cdiff_h_x1 ChgLine + * cdiff_h_x1 + "\n" cdiff_hunk + +:cdiff_h_m0 Idle + * garbage recolor=-2 buffer + " " cdiff_h_m1 recolor=-2 + "-" cdiff_hn2 recolor=-2 + "\n" reset + +:cdiff_h_m1 DelLine + * cdiff_h_m1 + "\n" cdiff_hunk diff --git a/.joe/syntax/dockerfile.jsf b/.joe/syntax/dockerfile.jsf @@ -0,0 +1,168 @@ +# Barebones Dockerfile syntax for JOE. Doesn't handle more sophisticated sh syntax. + +=Idle +=Command bold +=Comment green +=Constant cyan +=Ident cyan +=Escape magenta +=Keyword bold +=Var bold cyan + +# Start of line is special +:start Idle + * idle + " \t" start + "#" comment noeat + "A-Za-z" command buffer noeat + "\n" start + +# Comments between commands +:comment Comment + * comment + "\n" start + +# Comments in the middle of a command +:comment_idle Comment + * comment_idle + "\n" idle + +# Start of line in the middle of "idle" mode (skips command recognition in case a comment +# comes in the middle of a RUN) +:start_idle Idle + * idle noeat + "#" comment_idle recolor=-1 + +# Generic middle-of-a-command +:idle Idle + * idle + "$" idle recolor=-1 call=.variable() + "\n" start + "\\" escape recolor=-1 + +:escape Escape + * idle recolor=-2 noeat + "\\\"" idle + "\r" escape + "\n" start_idle + +:command Idle + * idle noeat istrings + "FROM" from + "MAINTAINER" string_command + "RUN" list_command + "CMD" list_command + "LABEL" label + "EXPOSE" generic_command + "ENV" generic_command + "ADD" list_command + "COPY" list_command + "ENTRYPOINT" list_command + "VOLUME" list_command + "USER" string_command + "WORKDIR" string_command + "ARG" generic_command + "ONBUILD" generic_command + "STOPSIGNAL" generic_command +done + "a-zA-Z" command + +# EXPOSE, ENV, ARG, ONBUILD, STOPSIGNAL +:generic_command Command + * idle + +# MAINTAINER, USER, WORKDIR +:string_command Command + * string_command_data + +:string_command_data Ident + * string_command_data + "$" string_command_data recolor=-1 call=.variable() + "\n" start + +# FROM +:from Command + * from_image noeat + +:from_image Ident + * from_image + ":@" from_tag noeat + "\n" start + +:from_tag Idle + * from_tag + "\n" start + +# RUN, CMD, ADD, COPY, ENTRYPOINT, VOLUME +:list_command Command + * idle noeat + " \t" list_command + "[" array noeat + "\n" start + +:array Idle + * array + "[]" bracket noeat + "\"'" array recolor=-1 call=.string() save_c + "\n" start + +:comma Idle + * array noeat + +:bracket Escape + "]" idle + "[" array + +# LABEL +:label Command + * label_key + "\n" start + +:label_key Ident + * label_key + "=" label_value noeat + "\n" start + +:label_value Idle + * label_value + "\"" label_value recolor=-1 call=.string() save_c + "\n" start + +.subr variable + +:variable Var + * variable recolor=-2 return noeat + "A-Za-z_" variable_name + "{" variable_long + +:variable_name Var + * variable_name return noeat + "A-Za-z0-9_" variable_name + +:variable_long Var + * variable_long + & variable return noeat + "\n" variable return noeat + "}" variable return + ":" variable_after + +:variable_after Idle + * variable_after + & variable_after return noeat + "}" variable_long noeat + +.end + +.subr string + +:string Constant + * string + & string return + "\n" string return noeat + "\\" string_escape recolor=-1 + "$" string recolor=-1 call=.variable() + +:string_escape Escape + * string + +.end diff --git a/.joe/syntax/dockerfile.jsf.in b/.joe/syntax/dockerfile.jsf.in @@ -0,0 +1,168 @@ +# Barebones Dockerfile syntax for JOE. Doesn't handle more sophisticated sh syntax. + +=Idle +=Command bold +=Comment green +=Constant cyan +=Ident cyan +=Escape magenta +=Keyword bold +=Var bold cyan + +# Start of line is special +:start Idle + * idle + " \t" start + "#" comment noeat + "A-Za-z" command buffer noeat + "\n" start + +# Comments between commands +:comment Comment + * comment + "\n" start + +# Comments in the middle of a command +:comment_idle Comment + * comment_idle + "\n" idle + +# Start of line in the middle of "idle" mode (skips command recognition in case a comment +# comes in the middle of a RUN) +:start_idle Idle + * idle noeat + "#" comment_idle recolor=-1 + +# Generic middle-of-a-command +:idle Idle + * idle + "$" idle recolor=-1 call=.variable() + "\n" start + "\\" escape recolor=-1 + +:escape Escape + * idle recolor=-2 noeat + "\\\"" idle + "\r" escape + "\n" start_idle + +:command Idle + * idle noeat istrings + "FROM" from + "MAINTAINER" string_command + "RUN" list_command + "CMD" list_command + "LABEL" label + "EXPOSE" generic_command + "ENV" generic_command + "ADD" list_command + "COPY" list_command + "ENTRYPOINT" list_command + "VOLUME" list_command + "USER" string_command + "WORKDIR" string_command + "ARG" generic_command + "ONBUILD" generic_command + "STOPSIGNAL" generic_command +done + "a-zA-Z" command + +# EXPOSE, ENV, ARG, ONBUILD, STOPSIGNAL +:generic_command Command + * idle + +# MAINTAINER, USER, WORKDIR +:string_command Command + * string_command_data + +:string_command_data Ident + * string_command_data + "$" string_command_data recolor=-1 call=.variable() + "\n" start + +# FROM +:from Command + * from_image noeat + +:from_image Ident + * from_image + ":@" from_tag noeat + "\n" start + +:from_tag Idle + * from_tag + "\n" start + +# RUN, CMD, ADD, COPY, ENTRYPOINT, VOLUME +:list_command Command + * idle noeat + " \t" list_command + "[" array noeat + "\n" start + +:array Idle + * array + "[]" bracket noeat + "\"'" array recolor=-1 call=.string() save_c + "\n" start + +:comma Idle + * array noeat + +:bracket Escape + "]" idle + "[" array + +# LABEL +:label Command + * label_key + "\n" start + +:label_key Ident + * label_key + "=" label_value noeat + "\n" start + +:label_value Idle + * label_value + "\"" label_value recolor=-1 call=.string() save_c + "\n" start + +.subr variable + +:variable Var + * variable recolor=-2 return noeat + "A-Za-z_" variable_name + "{" variable_long + +:variable_name Var + * variable_name return noeat + "A-Za-z0-9_" variable_name + +:variable_long Var + * variable_long + & variable return noeat + "\n" variable return noeat + "}" variable return + ":" variable_after + +:variable_after Idle + * variable_after + & variable_after return noeat + "}" variable_long noeat + +.end + +.subr string + +:string Constant + * string + & string return + "\n" string return noeat + "\\" string_escape recolor=-1 + "$" string recolor=-1 call=.variable() + +:string_escape Escape + * string + +.end diff --git a/.joe/syntax/elixir.jsf b/.joe/syntax/elixir.jsf @@ -0,0 +1,276 @@ +# JOE syntax highlight file for Elixir + +# Written by Andrey Lisin (at gmail.com) + +# TODO +# - test attributes and docstrings highlighting +# - maybe highlight arithmetical operations +# - comprehensions highlighting + +# Changes +# - fix atom with underscore highlighting +# - distinct docstrings and module attributes + +=Idle +=Comment green +=Keyword bold +=Bif #fg_501 +=String cyan +=Extrapolation cyan bold +=Atom red +=Attribute #fg_505 +=ModAttr yellow #fg_141 +=Brace magenta #fg_440 +=Brack magenta #fg_311 +=Int cyan +=Def +=ModDef blue bold +=Underscore blue #fg_310 #brown + + +:idle Idle + * idle + "#" line_comment noeat + "a-zA-Z" ident noeat + "_" underscore recolor=-1 + "'" single_quoted recolor=-1 + "\"" double_quoted recolor=-1 + ":" atom recolor=-1 + "@" modattr recolor=-1 + "[]" brack recolor=-1 + "{}" brace recolor=-1 + "|" maybe_pipe + "\\" maybe_opt + "-" maybe_rarrow recolor=-1 + "<" maybe_larrow recolor=-1 + "0-9" decimal recolor=-1 + +:line_comment Comment + * line_comment + "\n" idle + +:single_quoted String + * single_quoted + "'" idle + +:double_quoted String + * double_quoted + "#" maybe_extrapolation + "\"" idle + +:maybe_extrapolation String + * double_quoted noeat + "{" extrapolation recolor=-2 + +:extrapolation Extrapolation + * extrapolation + "}" double_quoted + "\"" double_quoted noeat + +:atom Atom + * idle noeat + "a-zA-Z0-9_" atom + +:modattr ModAttr + * idle + "a-zA-Z0-9_" modattr + " " maybe_edoc + +:maybe_edoc Idle + * idle + " " maybe_edoc + "\"" string_dq_1 recolor=-1 + +:string_dq_1 String + * double_quoted recolor=-1 + "\"" string_dq_2 + +:string_dq_2 Comment + * idle + "\"" docstr_dq recolor=-3 + +:docstr_dq Comment + * docstr_dq + "\"" docstr_dq_1 + +:docstr_dq_1 Comment + * docstr_dq + "\"" docstr_dq_2 + +:docstr_dq_2 Comment + * docstr_dq + "\"" idle + + + +:brace Brace + * idle noeat + +:brack Brack + * idle noeat + +:maybe_larrow Idle + "-" arrow recolor=-2 + * idle noeat + +:maybe_rarrow Idle + ">" arrow recolor=-2 + * idle noeat + +:arrow Keyword + * idle noeat + +:maybe_pipe Idle + * idle + ">" pipe recolor=-2 + +:pipe Keyword + * idle noeat + +:maybe_opt Idle + * idle + "\\" opt recolor=-2 + +:opt Keyword + * idle noeat + +:decimal Int + * idle noeat + "0-9_" decimal + "." float + +:float Int + * idle noeat + "0-9" float + + + + +:underscore Underscore + * idle noeat + "a-zA-Z0-9?_" underscore + + +:ident Idle + * ident1 noeat buffer mark + +:ident1 Idle + * idle noeat strings + "def" start_def + "defp" start_def + "defmodule" start_mod_def + "defprotocol" start_def + "defmacro" start_def + "defmacrop" start_def + "defdelegate" start_def + "defexception" start_def + "defstruct" start_def + "defimpl" start_def + "defcallback" start_def + "import" start_mod_def + "require" start_mod_def + "test" start_def + "use" start_mod_def + "alias" start_mod_def + "end" kw + "do" kw + "if" kw + "else" kw + "unless" kw + "case" kw + "cond" kw + "true" kw + "false" kw + "fn" kw + "Agent" bif + "Application" bif + "Atom" bif + "Base" bif + "Behaviour" bif + "Bitwise" bif + "Builtin" bif + "Code" bif + "Dict" bif + "EEx" bif + "Elixir" bif + "Enum" bif + "ExUnit" bif + "Exception" bif + "File" bif + "File.Stat" bif + "File.Stream" bif + "Float" bif + "Function" bif + "GenEvent" bif + "GenServer" bif + "GenTCP" bif + "HashDict" bif + "HashSet" bif + "IO" bif + "IO.ANSI" bif + "IO.Stream" bif + "Inspect.Algebra" bif + "Inspect.Opts" bif + "Integer" bif + "Kernel" bif + "Kernel.ParallelCompiler" bif + "Kernel.ParallelRequire" bif + "Kernel.SpecialForms" bif + "Kernel.Typespec" bif + "Keyword" bif + "List" bif + "Macro" bif + "Macro.Env" bif + "Map" bif + "Math" bif + "Module" bif + "Node" bif + "OptionParser" bif + "OrdDict" bif + "Path" bif + "Port" bif + "Process" bif + "Protocol" bif + "Range" bif + "Record" bif + "Regex" bif + "Set" bif + "Stream" bif + "String" bif + "StringIO" bif + "Supervisor" bif + "Supervisor.Spec" bif + "System" bif + "Task" bif + "Task.Supervisor" bif + "Tuple" bif + "URI" bif + "UnboundMethod" bif + "Version" bif +done + "a-zA-Z_0-9" ident1 + ":" attr noeat recolormark + +:attr Attribute + * idle + +:kw Keyword + * idle noeat + +:bif Bif + * idle noeat + +:start_def Keyword + * def + +:def Def + * def + " (" idle recolor=-1 + +:start_mod_def Keyword + * moddef + +:moddef ModDef + * moddef + " " idle recolor=-1 + "\n" idle diff --git a/.joe/syntax/elixir.jsf.in b/.joe/syntax/elixir.jsf.in @@ -0,0 +1,276 @@ +# JOE syntax highlight file for Elixir + +# Written by Andrey Lisin (at gmail.com) + +# TODO +# - test attributes and docstrings highlighting +# - maybe highlight arithmetical operations +# - comprehensions highlighting + +# Changes +# - fix atom with underscore highlighting +# - distinct docstrings and module attributes + +=Idle +=Comment green +=Keyword bold +=Bif #fg_501 +=String cyan +=Extrapolation cyan bold +=Atom red +=Attribute #fg_505 +=ModAttr yellow #fg_141 +=Brace magenta #fg_440 +=Brack magenta #fg_311 +=Int cyan +=Def +=ModDef blue bold +=Underscore blue #fg_310 #brown + + +:idle Idle + * idle + "#" line_comment noeat + "a-zA-Z" ident noeat + "_" underscore recolor=-1 + "'" single_quoted recolor=-1 + "\"" double_quoted recolor=-1 + ":" atom recolor=-1 + "@" modattr recolor=-1 + "[]" brack recolor=-1 + "{}" brace recolor=-1 + "|" maybe_pipe + "\\" maybe_opt + "-" maybe_rarrow recolor=-1 + "<" maybe_larrow recolor=-1 + "0-9" decimal recolor=-1 + +:line_comment Comment + * line_comment + "\n" idle + +:single_quoted String + * single_quoted + "'" idle + +:double_quoted String + * double_quoted + "#" maybe_extrapolation + "\"" idle + +:maybe_extrapolation String + * double_quoted noeat + "{" extrapolation recolor=-2 + +:extrapolation Extrapolation + * extrapolation + "}" double_quoted + "\"" double_quoted noeat + +:atom Atom + * idle noeat + "a-zA-Z0-9_" atom + +:modattr ModAttr + * idle + "a-zA-Z0-9_" modattr + " " maybe_edoc + +:maybe_edoc Idle + * idle + " " maybe_edoc + "\"" string_dq_1 recolor=-1 + +:string_dq_1 String + * double_quoted recolor=-1 + "\"" string_dq_2 + +:string_dq_2 Comment + * idle + "\"" docstr_dq recolor=-3 + +:docstr_dq Comment + * docstr_dq + "\"" docstr_dq_1 + +:docstr_dq_1 Comment + * docstr_dq + "\"" docstr_dq_2 + +:docstr_dq_2 Comment + * docstr_dq + "\"" idle + + + +:brace Brace + * idle noeat + +:brack Brack + * idle noeat + +:maybe_larrow Idle + "-" arrow recolor=-2 + * idle noeat + +:maybe_rarrow Idle + ">" arrow recolor=-2 + * idle noeat + +:arrow Keyword + * idle noeat + +:maybe_pipe Idle + * idle + ">" pipe recolor=-2 + +:pipe Keyword + * idle noeat + +:maybe_opt Idle + * idle + "\\" opt recolor=-2 + +:opt Keyword + * idle noeat + +:decimal Int + * idle noeat + "0-9_" decimal + "." float + +:float Int + * idle noeat + "0-9" float + + + + +:underscore Underscore + * idle noeat + "a-zA-Z0-9?_" underscore + + +:ident Idle + * ident1 noeat buffer mark + +:ident1 Idle + * idle noeat strings + "def" start_def + "defp" start_def + "defmodule" start_mod_def + "defprotocol" start_def + "defmacro" start_def + "defmacrop" start_def + "defdelegate" start_def + "defexception" start_def + "defstruct" start_def + "defimpl" start_def + "defcallback" start_def + "import" start_mod_def + "require" start_mod_def + "test" start_def + "use" start_mod_def + "alias" start_mod_def + "end" kw + "do" kw + "if" kw + "else" kw + "unless" kw + "case" kw + "cond" kw + "true" kw + "false" kw + "fn" kw + "Agent" bif + "Application" bif + "Atom" bif + "Base" bif + "Behaviour" bif + "Bitwise" bif + "Builtin" bif + "Code" bif + "Dict" bif + "EEx" bif + "Elixir" bif + "Enum" bif + "ExUnit" bif + "Exception" bif + "File" bif + "File.Stat" bif + "File.Stream" bif + "Float" bif + "Function" bif + "GenEvent" bif + "GenServer" bif + "GenTCP" bif + "HashDict" bif + "HashSet" bif + "IO" bif + "IO.ANSI" bif + "IO.Stream" bif + "Inspect.Algebra" bif + "Inspect.Opts" bif + "Integer" bif + "Kernel" bif + "Kernel.ParallelCompiler" bif + "Kernel.ParallelRequire" bif + "Kernel.SpecialForms" bif + "Kernel.Typespec" bif + "Keyword" bif + "List" bif + "Macro" bif + "Macro.Env" bif + "Map" bif + "Math" bif + "Module" bif + "Node" bif + "OptionParser" bif + "OrdDict" bif + "Path" bif + "Port" bif + "Process" bif + "Protocol" bif + "Range" bif + "Record" bif + "Regex" bif + "Set" bif + "Stream" bif + "String" bif + "StringIO" bif + "Supervisor" bif + "Supervisor.Spec" bif + "System" bif + "Task" bif + "Task.Supervisor" bif + "Tuple" bif + "URI" bif + "UnboundMethod" bif + "Version" bif +done + "a-zA-Z_0-9" ident1 + ":" attr noeat recolormark + +:attr Attribute + * idle + +:kw Keyword + * idle noeat + +:bif Bif + * idle noeat + +:start_def Keyword + * def + +:def Def + * def + " (" idle recolor=-1 + +:start_mod_def Keyword + * moddef + +:moddef ModDef + * moddef + " " idle recolor=-1 + "\n" idle diff --git a/.joe/syntax/erb.jsf b/.joe/syntax/erb.jsf @@ -0,0 +1,32 @@ +# JOE syntax highlight file for plain ERB +# by Christian Nicolai (http://mycrobase.de) + +=Idle +=Keyword bold +=Bad bold red +=Brace magenta + +=ERB yellow + +:content Idle + * content + "<" maybe_erb_start + +:maybe_erb_start Idle + * content noeat + "%" maybe_erb_eq recolor=-2 + +:maybe_erb_eq ERB + * rtn_ruby noeat call=ruby.ruby(erb) + "=" rtn_ruby call=ruby.ruby(erb) + +:rtn_ruby ERB + * content noeat + +:erb ERB + * erb + "%" maybe_erb_end + +:maybe_erb_end ERB + * erb + ">" content diff --git a/.joe/syntax/erb.jsf.in b/.joe/syntax/erb.jsf.in @@ -0,0 +1,32 @@ +# JOE syntax highlight file for plain ERB +# by Christian Nicolai (http://mycrobase.de) + +=Idle +=Keyword bold +=Bad bold red +=Brace magenta + +=ERB yellow + +:content Idle + * content + "<" maybe_erb_start + +:maybe_erb_start Idle + * content noeat + "%" maybe_erb_eq recolor=-2 + +:maybe_erb_eq ERB + * rtn_ruby noeat call=ruby.ruby(erb) + "=" rtn_ruby call=ruby.ruby(erb) + +:rtn_ruby ERB + * content noeat + +:erb ERB + * erb + "%" maybe_erb_end + +:maybe_erb_end ERB + * erb + ">" content diff --git a/.joe/syntax/erlang.jsf b/.joe/syntax/erlang.jsf @@ -0,0 +1,500 @@ +# JOE syntax highlight file for Erlang +# by Christian Nicolai (http://mycrobase.de) +# with contributions from Jonas Rosling and Andrew Lisin + +# TODO Handle type information :: +# TODO implement subroutines for cleaner and more correct implementation. +# TODO Probably use less colors to be less distractive. + + +=Idle +=Comment green +=String cyan #fg_110 +=String_mod cyan bold #fg_200 bold +=String_esc cyan bold #fg_000 bold +=Int cyan #fg_033 +=Record blue #fg_530 +=Recatt +=Fun +=Module #fg_101 +=Keyword bold +=Guard #fg_200 +=Bif #fg_501 +=Type bold #fg_141 +=Brace magenta #fg_440 +=Brack magenta #fg_311 +=Macro #fg_330 +=Variable yellow #fg_310 +=Attribute red #fg_505 +=Char cyan #fg_330 bold + +:idle Idle + * idle + "A-Z_" variable noeat + "%" line_comment noeat + "\"" string recolor=-1 + "'" quoted_atom mark + "0-9" decimal recolor=-1 + "[]" brack recolor=-1 + "{}" brace recolor=-1 + "-" maybe_attribute buffer + "a-z" atom buffer mark noeat + "#" record recolor=-1 + "$" char recolor=-1 + "?" is_macro mark + "<|" lc buffer + +:lc Idle + * idle noeat strings + "<-" kw + "||" kw +done + "-<|" lc + +:pipe Idle + * idle noeat + "|" kw recolormark + +:is_macro Idle + * macro recolormark noeat + "a-zA-Z0-9_@" is_macro + +:macro Macro + * idle noeat + +:char Char + * idle + "\\" charesc + +:charesc Char + * idle + +:line_comment Comment + * line_comment + "@" is_edoc noeat buffer + "\n" idle + +:is_edoc Comment + * line_comment noeat strings + "@clear" edoc + "@docfile" edoc + "@headerfle" edoc + "@todo" edoc + "@TODO" edoc + "@type" edoc + "@reference" edoc + "@see" edoc + "@since" edoc + "@deprecated" edoc + "@hidden" edoc + "@private" edoc + "@equiv" edoc + "@throws" edoc + "@author" edoc + "@copyright" edoc + "@version" edoc + "@title" edoc + "@spec" edoc + "@doc" edoc + "@end" edoc +done + "A-Za-z@" is_edoc + +:edoc Keyword + * line_comment noeat + +:variable Variable + * idle noeat + "a-zA-Z0-9_" variable + +:record Record + * idle noeat + "a-z" rec noeat + "'" qtrec recolor=-1 + +:rec Record + * idle noeat + "a-zA-Z0-9_@" rec + "." recatt recolor=-1 + +:qtrec Record + * qtrec + "'" rec + +:recatt Recatt + * idle noeat + "a-zA-Z_" recatt + "#" record + +# STRINGS +:string String + * string + "\\" string_escape recolor=-1 + "~" string_ mark + "\"" idle + +:string_escape String_esc + * string + +:string_ String + * string_mod noeat + "0-9" string_f + "t" string_mod +:string_f String + * string_mod noeat + "0-9*" string_f + "." string_p + +:string_p String + * string_mod noeat + "0-9*" string_p + +:string_mod String + * string + "cfegswpWPBX#bx+ni" string_modifier recolormark noeat + +:string_modifier String_mod + * string +# END STRINGS +:decimal Int + * idle noeat + "0-9" decimal + "." float + "#" base + +:float Int + * idle noeat + "0-9" float + "Ee" eintval + +:base Int + * idle noeat + "0-9A-Fa-f" base + +:eintval Int + * eint noeat + "-" eint + +:eint Int + * idle noeat + "0-9" eint + +:brace Brace + * idle noeat + +:brack Brack + * idle noeat + +:maybe_attribute Idle + * idle noeat strings + "-module" attribute + "-export" attribute + "-import" attribute + "-compile" attribute + "-ifdef" attribute + "-endif" attribute + "-define" attribute + "-file" attribute + "-type" attribute + "-opaque" attribute + "-export_type" attribute + "-spec" attribute + "-author" attribute + "-copyright" attribute + "-include" attribute + "-include_lib" attribute + "-vsn" attribute + "-behaviour" attribute + "-behavior" attribute + "-record" attribute + "-on_load" attribute + "-connect_all" attribute + "-hidden" attribute + "-name" attribute + "-setcookie" attribute + "-sname" attribute + "-mode" attribute +done + "a-z_" maybe_attribute + +:attribute Attribute + * idle noeat + +:no_atom Idle + * idle noeat + " " no_atom + "(" function recolormark noeat + ":" module recolormark noeat + "/" funarity + +:module Module + * idle noeat + +:function Fun + * idle noeat + +:funarity Fun + * function recolormark noeat + "0-9" idle + +:kw Keyword + * idle noeat + +:guard Guard + * idle noeat + +:rterr Guard + * idle noeat + +:bif Bif + * idle recolormark noeat + " " bif + "(" idle noeat + +:type Type + * idle recolormark noeat + "(" idle noeat + ":" module recolormark noeat + +:quoted_atom Idle + * quoted_atom + "'" no_atom + +# This implementation is sort of funky. +# Most of the cases it's correct but some highlighting may be wrong. +# Should be looked over... +:atom Idle + * no_atom noeat strings + "after" kw + "and" kw + "andalso" kw + "band" kw + "begin" kw + "bnot" kw + "bor" kw + "bsl" kw + "bsr" kw + "bxor" kw + "case" kw + "catch" kw + "cond" kw + "div" kw + "end" kw + "fun" kw + "if" kw + "let" kw + "not" kw + "of" kw + "or" kw + "orelse" kw + "query" kw + "receive" kw + "rem" kw + "try" kw + "when" kw + "xor" kw + "any" type + "none" type + "pid" type + "port" type + "reference" type + "float" type + "atom" type + "binary" type + "integer" type + "list" type + "improper_list" type + "maybe_improper_list" type + "tuple" type + "term" type + "boolean" type + "byte" type + "char" type + "non_neg_integer" type + "pos_integer" type + "neg_integer" type + "number" type + "string" type + "nonempty_string" type + "iolist" type + "module" type + "mfa" type + #interfears with the bif "node" type + "timeout" type + "no_return" type + "badarg" rterr + "badarith" rterr + "badmatch" rterr + "function_clause" rterr + "case_clause" rterr + "if_clause" rterr + "try_clause" rterr + "undef" rterr + "badfun" rterr + "badarity" rterr + "timeout_value" rterr + "noproc" rterr + "nocatch" rterr + "system_limit" rterr + "is_atom" guard + "is_binary" guard + "is_bitstream" guard + "is_boolean" guard + "is_float" guard + "is_function" guard + "is_integer" guard + "is_list" guard + "is_number" guard + "is_pid" guard + "is_port" guard + "is_record" guard + "is_reference" guard + "is_tuple" guard + "abs" bif + "adler32" bif + "adler32_combine" bif + "append_element" bif + "apply" bif + "atom_to_binary" bif + "atom_to_list" bif + "binary_part" bif + "binary_to_atom" bif + "binary_to_existing_atom" bif + "binary_to_list" bif + "bitstring_to_list" bif + "binary_to_term" bif + "bit_size" bif + "bump_reductions" bif + "byte_size" bif + "cancel_timer" bif + "check_old_code" bif + "check_process_code" bif + "crc32" bif + "crc32_combine" bif + "date" bif + "decode_packet" bif + "delete_module" bif + "demonitor" bif + "disconnect_node" bif + "display" bif + "element" bif + "erase" bif + "error" bif + "exit" bif + "external_size" bif + "float" bif + "float_to_list" bif + "fun_info" bif + "fun_to_list" bif + "function_exported" bif + "garbage_collect" bif + "get" bif + "get_cookie" bif + "get_keys" bif + "get_stacktrace" bif + "group_leader" bif + "halt" bif + "hash" bif + "hd" bif + "hibernate" bif + "integer_to_list" bif + "iolist_to_binary" bif + "iolist_size" bif + "is_alive" bif + "is_builtin" bif + "is_process_alive" bif + "length" bif + "link" bif + "list_to_atom" bif + "list_to_binary" bif + "list_to_bitstring" bif + "list_to_existing_atom" bif + "list_to_float" bif + "list_to_integer" bif + "list_to_pid" bif + "list_to_tuple" bif + "load_module" bif + "load_nif" bif + "loaded" bif + "local_time" bif + "local_time_to_universaltime" bif + "make_ref" bif + "make_tuple" bif + "max" bif + "md5" bif + "md5_final" bif + "md5_init" bif + "md5_update" bif + "memory" bif + "min" bif + "module_loaded" bif + "monitor" bif + "monitor_node" bif + "nif_error" bif + "node" bif + "nodes" bif + "now" bif + "open_port" bif + "phash" bif + "phash2" bif + "pid_to_list" bif + "port_close" bif + "port_command" bif + "port_connect" bif + "port_control" bif + "port_call" bif + "port_info" bif + "port_to_list" bif + "ports" bif + "pre_loaded" bif + "process_display" bif + "process_flag" bif + "process_info" bif + "processes" bif + "purge_module" bif + "put" bif + "raise" bif + "read_timer" bif + "ref_to_list" bif + "register" bif + "registered" bif + "resume_process" bif + "round" bif + "self" bif + "send" bif + "send_after" bif + "send_nosuspend" bif + "set_cookie" bif + "setelement" bif + "size" bif + "spawn" bif + "spawn_link" bif + "spawn_monitor" bif + "spawn_opt" bif + "split_binary" bif + "start_timer" bif + "statistics" bif + "suspended_process" bif + "system_flag" bif + "system_info" bif + "system_monitor" bif + "system_profile" bif + "term_to_binary" bif + "throw" bif + "time" bif + "tl" bif + "trace" bif + "trace_deliviered" bif + "trace_info" bif + "trace_pattern" bif + "trunc" bif + "tuple_size" bif + "tuple_to_list" bif + "universaltime" bif + "universaltime_to_localtime" bif + "unlink" bif + "unregister" bif + "whereis" bif + "yield" bif +done + "a-zA-Z0-9_@" atom diff --git a/.joe/syntax/erlang.jsf.in b/.joe/syntax/erlang.jsf.in @@ -0,0 +1,500 @@ +# JOE syntax highlight file for Erlang +# by Christian Nicolai (http://mycrobase.de) +# with contributions from Jonas Rosling and Andrew Lisin + +# TODO Handle type information :: +# TODO implement subroutines for cleaner and more correct implementation. +# TODO Probably use less colors to be less distractive. + + +=Idle +=Comment green +=String cyan #fg_110 +=String_mod cyan bold #fg_200 bold +=String_esc cyan bold #fg_000 bold +=Int cyan #fg_033 +=Record blue #fg_530 +=Recatt +=Fun +=Module #fg_101 +=Keyword bold +=Guard #fg_200 +=Bif #fg_501 +=Type bold #fg_141 +=Brace magenta #fg_440 +=Brack magenta #fg_311 +=Macro #fg_330 +=Variable yellow #fg_310 +=Attribute red #fg_505 +=Char cyan #fg_330 bold + +:idle Idle + * idle + "A-Z_" variable noeat + "%" line_comment noeat + "\"" string recolor=-1 + "'" quoted_atom mark + "0-9" decimal recolor=-1 + "[]" brack recolor=-1 + "{}" brace recolor=-1 + "-" maybe_attribute buffer + "a-z" atom buffer mark noeat + "#" record recolor=-1 + "$" char recolor=-1 + "?" is_macro mark + "<|" lc buffer + +:lc Idle + * idle noeat strings + "<-" kw + "||" kw +done + "-<|" lc + +:pipe Idle + * idle noeat + "|" kw recolormark + +:is_macro Idle + * macro recolormark noeat + "a-zA-Z0-9_@" is_macro + +:macro Macro + * idle noeat + +:char Char + * idle + "\\" charesc + +:charesc Char + * idle + +:line_comment Comment + * line_comment + "@" is_edoc noeat buffer + "\n" idle + +:is_edoc Comment + * line_comment noeat strings + "@clear" edoc + "@docfile" edoc + "@headerfle" edoc + "@todo" edoc + "@TODO" edoc + "@type" edoc + "@reference" edoc + "@see" edoc + "@since" edoc + "@deprecated" edoc + "@hidden" edoc + "@private" edoc + "@equiv" edoc + "@throws" edoc + "@author" edoc + "@copyright" edoc + "@version" edoc + "@title" edoc + "@spec" edoc + "@doc" edoc + "@end" edoc +done + "A-Za-z@" is_edoc + +:edoc Keyword + * line_comment noeat + +:variable Variable + * idle noeat + "a-zA-Z0-9_" variable + +:record Record + * idle noeat + "a-z" rec noeat + "'" qtrec recolor=-1 + +:rec Record + * idle noeat + "a-zA-Z0-9_@" rec + "." recatt recolor=-1 + +:qtrec Record + * qtrec + "'" rec + +:recatt Recatt + * idle noeat + "a-zA-Z_" recatt + "#" record + +# STRINGS +:string String + * string + "\\" string_escape recolor=-1 + "~" string_ mark + "\"" idle + +:string_escape String_esc + * string + +:string_ String + * string_mod noeat + "0-9" string_f + "t" string_mod +:string_f String + * string_mod noeat + "0-9*" string_f + "." string_p + +:string_p String + * string_mod noeat + "0-9*" string_p + +:string_mod String + * string + "cfegswpWPBX#bx+ni" string_modifier recolormark noeat + +:string_modifier String_mod + * string +# END STRINGS +:decimal Int + * idle noeat + "0-9" decimal + "." float + "#" base + +:float Int + * idle noeat + "0-9" float + "Ee" eintval + +:base Int + * idle noeat + "0-9A-Fa-f" base + +:eintval Int + * eint noeat + "-" eint + +:eint Int + * idle noeat + "0-9" eint + +:brace Brace + * idle noeat + +:brack Brack + * idle noeat + +:maybe_attribute Idle + * idle noeat strings + "-module" attribute + "-export" attribute + "-import" attribute + "-compile" attribute + "-ifdef" attribute + "-endif" attribute + "-define" attribute + "-file" attribute + "-type" attribute + "-opaque" attribute + "-export_type" attribute + "-spec" attribute + "-author" attribute + "-copyright" attribute + "-include" attribute + "-include_lib" attribute + "-vsn" attribute + "-behaviour" attribute + "-behavior" attribute + "-record" attribute + "-on_load" attribute + "-connect_all" attribute + "-hidden" attribute + "-name" attribute + "-setcookie" attribute + "-sname" attribute + "-mode" attribute +done + "a-z_" maybe_attribute + +:attribute Attribute + * idle noeat + +:no_atom Idle + * idle noeat + " " no_atom + "(" function recolormark noeat + ":" module recolormark noeat + "/" funarity + +:module Module + * idle noeat + +:function Fun + * idle noeat + +:funarity Fun + * function recolormark noeat + "0-9" idle + +:kw Keyword + * idle noeat + +:guard Guard + * idle noeat + +:rterr Guard + * idle noeat + +:bif Bif + * idle recolormark noeat + " " bif + "(" idle noeat + +:type Type + * idle recolormark noeat + "(" idle noeat + ":" module recolormark noeat + +:quoted_atom Idle + * quoted_atom + "'" no_atom + +# This implementation is sort of funky. +# Most of the cases it's correct but some highlighting may be wrong. +# Should be looked over... +:atom Idle + * no_atom noeat strings + "after" kw + "and" kw + "andalso" kw + "band" kw + "begin" kw + "bnot" kw + "bor" kw + "bsl" kw + "bsr" kw + "bxor" kw + "case" kw + "catch" kw + "cond" kw + "div" kw + "end" kw + "fun" kw + "if" kw + "let" kw + "not" kw + "of" kw + "or" kw + "orelse" kw + "query" kw + "receive" kw + "rem" kw + "try" kw + "when" kw + "xor" kw + "any" type + "none" type + "pid" type + "port" type + "reference" type + "float" type + "atom" type + "binary" type + "integer" type + "list" type + "improper_list" type + "maybe_improper_list" type + "tuple" type + "term" type + "boolean" type + "byte" type + "char" type + "non_neg_integer" type + "pos_integer" type + "neg_integer" type + "number" type + "string" type + "nonempty_string" type + "iolist" type + "module" type + "mfa" type + #interfears with the bif "node" type + "timeout" type + "no_return" type + "badarg" rterr + "badarith" rterr + "badmatch" rterr + "function_clause" rterr + "case_clause" rterr + "if_clause" rterr + "try_clause" rterr + "undef" rterr + "badfun" rterr + "badarity" rterr + "timeout_value" rterr + "noproc" rterr + "nocatch" rterr + "system_limit" rterr + "is_atom" guard + "is_binary" guard + "is_bitstream" guard + "is_boolean" guard + "is_float" guard + "is_function" guard + "is_integer" guard + "is_list" guard + "is_number" guard + "is_pid" guard + "is_port" guard + "is_record" guard + "is_reference" guard + "is_tuple" guard + "abs" bif + "adler32" bif + "adler32_combine" bif + "append_element" bif + "apply" bif + "atom_to_binary" bif + "atom_to_list" bif + "binary_part" bif + "binary_to_atom" bif + "binary_to_existing_atom" bif + "binary_to_list" bif + "bitstring_to_list" bif + "binary_to_term" bif + "bit_size" bif + "bump_reductions" bif + "byte_size" bif + "cancel_timer" bif + "check_old_code" bif + "check_process_code" bif + "crc32" bif + "crc32_combine" bif + "date" bif + "decode_packet" bif + "delete_module" bif + "demonitor" bif + "disconnect_node" bif + "display" bif + "element" bif + "erase" bif + "error" bif + "exit" bif + "external_size" bif + "float" bif + "float_to_list" bif + "fun_info" bif + "fun_to_list" bif + "function_exported" bif + "garbage_collect" bif + "get" bif + "get_cookie" bif + "get_keys" bif + "get_stacktrace" bif + "group_leader" bif + "halt" bif + "hash" bif + "hd" bif + "hibernate" bif + "integer_to_list" bif + "iolist_to_binary" bif + "iolist_size" bif + "is_alive" bif + "is_builtin" bif + "is_process_alive" bif + "length" bif + "link" bif + "list_to_atom" bif + "list_to_binary" bif + "list_to_bitstring" bif + "list_to_existing_atom" bif + "list_to_float" bif + "list_to_integer" bif + "list_to_pid" bif + "list_to_tuple" bif + "load_module" bif + "load_nif" bif + "loaded" bif + "local_time" bif + "local_time_to_universaltime" bif + "make_ref" bif + "make_tuple" bif + "max" bif + "md5" bif + "md5_final" bif + "md5_init" bif + "md5_update" bif + "memory" bif + "min" bif + "module_loaded" bif + "monitor" bif + "monitor_node" bif + "nif_error" bif + "node" bif + "nodes" bif + "now" bif + "open_port" bif + "phash" bif + "phash2" bif + "pid_to_list" bif + "port_close" bif + "port_command" bif + "port_connect" bif + "port_control" bif + "port_call" bif + "port_info" bif + "port_to_list" bif + "ports" bif + "pre_loaded" bif + "process_display" bif + "process_flag" bif + "process_info" bif + "processes" bif + "purge_module" bif + "put" bif + "raise" bif + "read_timer" bif + "ref_to_list" bif + "register" bif + "registered" bif + "resume_process" bif + "round" bif + "self" bif + "send" bif + "send_after" bif + "send_nosuspend" bif + "set_cookie" bif + "setelement" bif + "size" bif + "spawn" bif + "spawn_link" bif + "spawn_monitor" bif + "spawn_opt" bif + "split_binary" bif + "start_timer" bif + "statistics" bif + "suspended_process" bif + "system_flag" bif + "system_info" bif + "system_monitor" bif + "system_profile" bif + "term_to_binary" bif + "throw" bif + "time" bif + "tl" bif + "trace" bif + "trace_deliviered" bif + "trace_info" bif + "trace_pattern" bif + "trunc" bif + "tuple_size" bif + "tuple_to_list" bif + "universaltime" bif + "universaltime_to_localtime" bif + "unlink" bif + "unregister" bif + "whereis" bif + "yield" bif +done + "a-zA-Z0-9_@" atom diff --git a/.joe/syntax/filename.jsf b/.joe/syntax/filename.jsf @@ -0,0 +1,21 @@ +# Filename highlighter + +=Idle +=Notused green + +:idle Idle + * filename noeat mark + +:filename Idle + * filename + "/" slash + "\n" idle + +:slash Idle + * filename + "/" restart noeat recolormark + "~" restart noeat recolormark + "\n" idle + +:restart Notused + * filename noeat mark diff --git a/.joe/syntax/filename.jsf.in b/.joe/syntax/filename.jsf.in @@ -0,0 +1,21 @@ +# Filename highlighter + +=Idle +=Notused green + +:idle Idle + * filename noeat mark + +:filename Idle + * filename + "/" slash + "\n" idle + +:slash Idle + * filename + "/" restart noeat recolormark + "~" restart noeat recolormark + "\n" idle + +:restart Notused + * filename noeat mark diff --git a/.joe/syntax/fortran.jsf b/.joe/syntax/fortran.jsf @@ -0,0 +1,807 @@ +# JOE syntax highlight file for FORTRAN +# Heavily improved by: Malte Thoma (thoma@uni-muenster.de) + +# Bugs: +# in: 4. eq. -- does not recognize the .eq. +# needs more intrinsics. + +=Idle +=Comment green +=Constant cyan +=Type red +=Keyword bold +=Intrinsic magenta +=Preproc blue +=Operator magenta +=Bad bold red + +# First character of line... + +:reset Idle + * idle noeat + "\n" reset + "cC*" comment recolor=-1 + "#" pre recolor=-1 + +:pre Preproc + * pre + "\n" reset + +:comment Comment + * comment + "\n" reset + +:idle Idle + * idle + "!" comment recolor=-1 + "\n" reset + "0-9" first_number recolor=-1 + "." have_dot + "'" string recolor=-1 + "a-zA-Z_" ident buffer + +:first_number Constant + * idle noeat + "0-9" first_number + "." second_start + "eEdD" epart + +:have_dot Constant + * idle recolor=-2 noeat + "0-9" second_number recolor=-2 + " \ta-zA-Z" operator1 noeat recolor=-2 + +# Color the left . + +:operator1 Operator + * operator buffer noeat + " \t" operator1 + +# Default color is Idle for unknown operator + +:operator Idle + * idle noeat + "a-zA-Z" operator + ". \t" unknown noeat istrings + "gt" op + "ge" op + "eq" op + "le" op + "ne" op + "lt" op + "and" op + "or" op + "llt" op + "lle" op + "lgt" op + "lge" op + "not" op + "false" const + "true" const +done + +# Eat the right . + +:unknown Operator + * idle + " \t" unknown + +:op Operator + * idle + " \t" op + +:const Constant + * idle + "." op noeat + " \t" const + +# For distrinuishing between 4.e1 and 4.eq. + +:second_start Constant + * idle noeat + "a-zA-Z" operator1 noeat recolor=-2 + "dD" epart + "eE" epart1 + "0-9" second_number + +:epart1 Constant + * idle noeat + "q" epart2 + "0-9+\-" enum + +:epart2 Idle + * idle noeat + ". \t" op noeat recolor=-4 + +:second_number Constant + * idle noeat + "eEdD" epart + "0-9" second_number + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +:string Constant + * string + "\n" reset + "'" maybe_end_string + +:maybe_end_string Constant + * idle noeat + "'" string + +:ident Idle + * idle noeat istrings + "allocate" kw + "allocatable" kw + "assign" kw + "assignment" kw + "backspace" kw + "block" kw + "blockdata" kw + "call" kw + "case" kw + "character" type + "close" kw + "common" kw + "complex" type + "contains" kw + "continue" kw + "cycle" kw + "data" kw + "deallocate" kw + "default" kw + "dimension" type + "do" kw + "double" type + "doubleprecision" type + "elemental" kw + "else" kw + "elseif" kw + "elsewhere" kw + "end" kw + "endblock" kw + "endblockdata" kw + "enddo" kw + "endfile" kw + "endforall" kw + "endif" kw + "endinterface" kw + "endmodule" kw + "endselect" kw + "endtype" kw + "endwhere" kw + "entry" kw + "equivalence" kw + "exit" kw + "external" kw + "forall" kw + "format" kw + "function" kw + "go" kw + "goto" kw + "if" kw + "implicit" kw + "implicit" kw + "in" kw + "inout" kw + "inquire" kw + "integer" type + "intent" kw + "interface" kw + "intrinsic" kw + "iolength" kw + "kind" kw + "logical" type + "module" kw + "namelist" kw + "none" kw + "nullify" kw + "only" kw + "open" kw + "optional" kw + "out" kw + "parameter" kw + "pause" kw + "pointer" kw + "precision" type + "print" kw + "private" kw + "procedure" kw + "program" kw + "publc" kw + "public" kw + "pure" kw + "read" kw + "real" type + "recursive" kw + "result" kw + "return" kw + "rewind" kw + "save" kw + "select" kw + "selectcase" kw + "sequence" kw + "stat" kw + "stop" kw + "subroutine" kw + "target" kw + "then" kw + "to" kw + "type" kw + "use" kw + "where" kw + "while" kw + "write" kw +done + "(" idle noeat istrings +# Keywords have to be duplicated here... + "allocate" kw + "allocatable" kw + "assign" kw + "assignment" kw + "backspace" kw + "block" kw + "blockdata" kw + "call" kw + "case" kw + "character" kw + "close" kw + "common" kw + "complex" kw + "contains" kw + "continue" kw + "cycle" kw + "data" kw + "deallocate" kw + "default" kw + "dimension" type + "do" kw + "double" type + "doubleprecision" type + "elemental" kw + "else" kw + "elseif" kw + "elsewhere" kw + "end" kw + "endblock" kw + "endblockdata" kw + "enddo" kw + "endfile" kw + "endforall" kw + "endif" kw + "endinterface" kw + "endmodule" kw + "endselect" kw + "endtype" kw + "endwhere" kw + "entry" kw + "equivalence" kw + "exit" kw + "external" kw + "forall" kw + "format" kw + "function" kw + "go" kw + "goto" kw + "if" kw + "implicit" kw + "implicit" kw + "in" kw + "inout" kw + "inquire" kw + "integer" kw + "intent" kw + "interface" kw + "intrinsic" kw + "iolength" kw + "kind" kw + "logical" type + "module" kw + "namelist" kw + "none" kw + "nullify" kw + "only" kw + "open" kw + "optional" kw + "out" kw + "parameter" kw + "pause" kw + "pointer" kw + "precision" type + "print" kw + "private" kw + "procedure" kw + "program" kw + "publc" kw + "public" kw + "pure" kw + "read" kw + "real" kw + "recursive" kw + "result" kw + "return" kw + "rewind" kw + "save" kw + "select" kw + "selectcase" kw + "sequence" kw + "stat" kw + "stop" kw + "subroutine" kw + "target" kw + "then" kw + "to" kw + "type" kw + "use" kw + "where" kw + "while" kw + "write" kw +# Here are instrinsics + "abs" intrinsic + "achar" intrinsic + "acos" intrinsic + "adjustl" intrinsic + "adjustr" intrinsic + "aimag" intrinsic + "aint" intrinsic + "all" intrinsic + "allocated" intrinsic + "alog" intrinsic + "alog10" intrinsic + "anint" intrinsic + "any" intrinsic + "asin" intrinsic + "associated" intrinsic + "atan" intrinsic + "atan2" intrinsic + "bit_size" intrinsic + "btest" intrinsic + "ceiling" intrinsic + "char" intrinsic + "cmplx" intrinsic + "conjg" intrinsic + "cos" intrinsic + "cosh" intrinsic + "count" intrinsic + "cpu_time" intrinsic + "cshift" intrinsic + "date_and_time" intrinsic + "dble" intrinsic + "digits" intrinsic + "dim" intrinsic + "dot_product" intrinsic + "dprod" intrinsic + "eoshift" intrinsic + "epsilon" intrinsic + "exp" intrinsic + "exponent" intrinsic + "false" intrinsic + "floor" intrinsic + "float" intrinsic + "fraction" intrinsic + "huge" intrinsic + "iachar" intrinsic + "iand" intrinsic + "ibclr" intrinsic + "ibits" intrinsic + "ibset" intrinsic + "ichar" intrinsic + "ieor" intrinsic + "index" intrinsic + "int" intrinsic + "int2" intrinsic + "ior" intrinsic + "ishft" intrinsic + "ishftc" intrinsic + "kind" intrinsic + "lbound" intrinsic + "len" intrinsic + "len_trim" intrinsic + "lge" intrinsic + "lgt" intrinsic + "lle" intrinsic + "llt" intrinsic + "log" intrinsic + "log10" intrinsic + "matmul" intrinsic + "max" intrinsic + "maxexponent" intrinsic + "maxloc" intrinsic + "maxval" intrinsic + "merge" intrinsic + "min" intrinsic + "minexponent" intrinsic + "minloc" intrinsic + "minval" intrinsic + "mod" intrinsic + "modulo" intrinsic + "mvbits" intrinsic + "nearest" intrinsic + "nint" intrinsic + "not" intrinsic + "null" intrinsic + "pack" intrinsic + "present" intrinsic + "product" intrinsic + "radix" intrinsic + "random_number" intrinsic + "random_seed" intrinsic + "range" intrinsic + "real" intrinsic + "repeat" intrinsic + "reshape" intrinsic + "rrspacing" intrinsic + "scale" intrinsic + "scan" intrinsic + "selected_int_kind" intrinsic + "selected_real_kind" intrinsic + "set_exponent" intrinsic + "shape" intrinsic + "sign" intrinsic + "sin" intrinsic + "sinh" intrinsic + "size" intrinsic + "spacing" intrinsic + "spread" intrinsic + "sqrt" intrinsic + "sum" intrinsic + "system_clock" intrinsic + "tan" intrinsic + "tanh" intrinsic + "tiny" intrinsic + "transfer" intrinsic + "transpose" intrinsic + "trim" intrinsic + "true" intrinsic + "ubound" intrinsic + "unpack" intrinsic + "verify" intrinsic +done + "a-zA-Z0-9_" ident + " \t" ws_ident hold + + +# Whitespace after an identifier... we wait to see if there is a "(" +:ws_ident Idle + * idle noeat istrings + "allocate" kw + "allocatable" kw + "assign" kw + "assignment" kw + "backspace" kw + "block" kw + "blockdata" kw + "call" kw + "case" kw + "character" type + "close" kw + "common" kw + "complex" type + "contains" kw + "continue" kw + "cycle" kw + "data" kw + "deallocate" kw + "default" kw + "dimension" type + "do" kw + "double" type + "doubleprecision" type + "elemental" kw + "else" kw + "elseif" kw + "elsewhere" kw + "end" kw + "endblock" kw + "endblockdata" kw + "enddo" kw + "endfile" kw + "endforall" kw + "endif" kw + "endinterface" kw + "endmodule" kw + "endselect" kw + "endtype" kw + "endwhere" kw + "entry" kw + "equivalence" kw + "exit" kw + "external" kw + "forall" kw + "format" kw + "function" kw + "go" kw + "goto" kw + "if" kw + "implicit" kw + "in" kw + "inout" kw + "inquire" kw + "integer" type + "intent" kw + "interface" kw + "intrinsic" kw + "iolength" kw + "kind" kw + "logical" type + "module" kw + "namelist" kw + "none" kw + "nullify" kw + "only" kw + "open" kw + "optional" kw + "out" kw + "parameter" kw + "pause" kw + "pointer" kw + "precision" type + "print" kw + "private" kw + "procedure" kw + "program" kw + "publc" kw + "public" kw + "pure" kw + "read" kw + "real" type + "recursive" kw + "result" kw + "return" kw + "rewind" kw + "save" kw + "select" kw + "selectcase" kw + "sequence" kw + "stat" kw + "stop" kw + "subroutine" kw + "target" kw + "then" kw + "to" kw + "type" kw + "use" kw + "where" kw + "while" kw + "write" kw +done + "(" idle noeat istrings +# Keywords have to be duplicated here... + "allocate" kw + "allocatable" kw + "assign" kw + "assignment" kw + "backspace" kw + "block" kw + "blockdata" kw + "call" kw + "case" kw + "character" type + "close" kw + "common" kw + "complex" type + "contains" kw + "continue" kw + "cycle" kw + "data" kw + "deallocate" kw + "default" kw + "dimension" type + "do" kw + "double" type + "doubleprecision" type + "elemental" kw + "else" kw + "elseif" kw + "elsewhere" kw + "end" kw + "endblock" kw + "endblockdata" kw + "enddo" kw + "endfile" kw + "endforall" kw + "endif" kw + "endinterface" kw + "endmodule" kw + "endselect" kw + "endtype" kw + "endwhere" kw + "entry" kw + "equivalence" kw + "exit" kw + "external" kw + "forall" kw + "format" kw + "function" kw + "go" kw + "goto" kw + "if" kw + "implicit" kw + "in" kw + "inout" kw + "inquire" kw + "integer" kw + "intent" kw + "interface" kw + "intrinsic" kw + "iolength" kw + "kind" kw + "logical" type + "module" kw + "namelist" kw + "none" kw + "nullify" kw + "only" kw + "open" kw + "optional" kw + "out" kw + "parameter" kw + "pause" kw + "pointer" kw + "precision" type + "print" kw + "private" kw + "procedure" kw + "program" kw + "publc" kw + "public" kw + "pure" kw + "read" kw + "real" type + "recursive" kw + "result" kw + "return" kw + "rewind" kw + "save" kw + "select" kw + "selectcase" kw + "sequence" kw + "stat" kw + "stop" kw + "subroutine" kw + "target" kw + "then" kw + "to" kw + "type" kw + "use" kw + "where" kw + "while" kw + "write" kw +# Here are instrinsics + "abs" intrinsic + "achar" intrinsic + "acos" intrinsic + "adjustl" intrinsic + "adjustr" intrinsic + "aimag" intrinsic + "aint" intrinsic + "all" intrinsic + "allocated" intrinsic + "alog" intrinsic + "alog10" intrinsic + "anint" intrinsic + "any" intrinsic + "asin" intrinsic + "associated" intrinsic + "atan" intrinsic + "atan2" intrinsic + "bit_size" intrinsic + "btest" intrinsic + "ceiling" intrinsic + "char" intrinsic + "cmplx" intrinsic + "conjg" intrinsic + "cos" intrinsic + "cosh" intrinsic + "count" intrinsic + "cpu_time" intrinsic + "cshift" intrinsic + "date_and_time" intrinsic + "dble" intrinsic + "digits" intrinsic + "dim" intrinsic + "dot_product" intrinsic + "dprod" intrinsic + "eoshift" intrinsic + "epsilon" intrinsic + "exp" intrinsic + "exponent" intrinsic + "false" intrinsic + "floor" intrinsic + "float" intrinsic + "fraction" intrinsic + "huge" intrinsic + "iachar" intrinsic + "iand" intrinsic + "ibclr" intrinsic + "ibits" intrinsic + "ibset" intrinsic + "ichar" intrinsic + "ieor" intrinsic + "index" intrinsic + "int" intrinsic + "int2" intrinsic + "ior" intrinsic + "ishft" intrinsic + "ishftc" intrinsic + "kind" intrinsic + "lbound" intrinsic + "len" intrinsic + "len_trim" intrinsic + "lge" intrinsic + "lgt" intrinsic + "lle" intrinsic + "llt" intrinsic + "log" intrinsic + "log10" intrinsic + "matmul" intrinsic + "max" intrinsic + "maxexponent" intrinsic + "maxloc" intrinsic + "maxval" intrinsic + "merge" intrinsic + "min" intrinsic + "minexponent" intrinsic + "minloc" intrinsic + "minval" intrinsic + "mod" intrinsic + "modulo" intrinsic + "mvbits" intrinsic + "nearest" intrinsic + "nint" intrinsic + "not" intrinsic + "null" intrinsic + "pack" intrinsic + "present" intrinsic + "product" intrinsic + "radix" intrinsic + "random_number" intrinsic + "random_seed" intrinsic + "range" intrinsic + "real" intrinsic + "repeat" intrinsic + "reshape" intrinsic + "rrspacing" intrinsic + "scale" intrinsic + "scan" intrinsic + "selected_int_kind" intrinsic + "selected_real_kind" intrinsic + "set_exponent" intrinsic + "shape" intrinsic + "sign" intrinsic + "sin" intrinsic + "sinh" intrinsic + "size" intrinsic + "spacing" intrinsic + "spread" intrinsic + "sqrt" intrinsic + "sum" intrinsic + "system_clock" intrinsic + "tan" intrinsic + "tanh" intrinsic + "tiny" intrinsic + "transfer" intrinsic + "transpose" intrinsic + "trim" intrinsic + "true" intrinsic + "ubound" intrinsic + "unpack" intrinsic + "verify" intrinsic +done + " \t" ws_ident + + +:intrinsic Intrinsic + * idle noeat + +:kw Keyword + * idle noeat + +:type Type + * idle noeat diff --git a/.joe/syntax/fortran.jsf.in b/.joe/syntax/fortran.jsf.in @@ -0,0 +1,807 @@ +# JOE syntax highlight file for FORTRAN +# Heavily improved by: Malte Thoma (thoma@uni-muenster.de) + +# Bugs: +# in: 4. eq. -- does not recognize the .eq. +# needs more intrinsics. + +=Idle +=Comment green +=Constant cyan +=Type red +=Keyword bold +=Intrinsic magenta +=Preproc blue +=Operator magenta +=Bad bold red + +# First character of line... + +:reset Idle + * idle noeat + "\n" reset + "cC*" comment recolor=-1 + "#" pre recolor=-1 + +:pre Preproc + * pre + "\n" reset + +:comment Comment + * comment + "\n" reset + +:idle Idle + * idle + "!" comment recolor=-1 + "\n" reset + "0-9" first_number recolor=-1 + "." have_dot + "'" string recolor=-1 + "a-zA-Z_" ident buffer + +:first_number Constant + * idle noeat + "0-9" first_number + "." second_start + "eEdD" epart + +:have_dot Constant + * idle recolor=-2 noeat + "0-9" second_number recolor=-2 + " \ta-zA-Z" operator1 noeat recolor=-2 + +# Color the left . + +:operator1 Operator + * operator buffer noeat + " \t" operator1 + +# Default color is Idle for unknown operator + +:operator Idle + * idle noeat + "a-zA-Z" operator + ". \t" unknown noeat istrings + "gt" op + "ge" op + "eq" op + "le" op + "ne" op + "lt" op + "and" op + "or" op + "llt" op + "lle" op + "lgt" op + "lge" op + "not" op + "false" const + "true" const +done + +# Eat the right . + +:unknown Operator + * idle + " \t" unknown + +:op Operator + * idle + " \t" op + +:const Constant + * idle + "." op noeat + " \t" const + +# For distrinuishing between 4.e1 and 4.eq. + +:second_start Constant + * idle noeat + "a-zA-Z" operator1 noeat recolor=-2 + "dD" epart + "eE" epart1 + "0-9" second_number + +:epart1 Constant + * idle noeat + "q" epart2 + "0-9+\-" enum + +:epart2 Idle + * idle noeat + ". \t" op noeat recolor=-4 + +:second_number Constant + * idle noeat + "eEdD" epart + "0-9" second_number + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +:string Constant + * string + "\n" reset + "'" maybe_end_string + +:maybe_end_string Constant + * idle noeat + "'" string + +:ident Idle + * idle noeat istrings + "allocate" kw + "allocatable" kw + "assign" kw + "assignment" kw + "backspace" kw + "block" kw + "blockdata" kw + "call" kw + "case" kw + "character" type + "close" kw + "common" kw + "complex" type + "contains" kw + "continue" kw + "cycle" kw + "data" kw + "deallocate" kw + "default" kw + "dimension" type + "do" kw + "double" type + "doubleprecision" type + "elemental" kw + "else" kw + "elseif" kw + "elsewhere" kw + "end" kw + "endblock" kw + "endblockdata" kw + "enddo" kw + "endfile" kw + "endforall" kw + "endif" kw + "endinterface" kw + "endmodule" kw + "endselect" kw + "endtype" kw + "endwhere" kw + "entry" kw + "equivalence" kw + "exit" kw + "external" kw + "forall" kw + "format" kw + "function" kw + "go" kw + "goto" kw + "if" kw + "implicit" kw + "implicit" kw + "in" kw + "inout" kw + "inquire" kw + "integer" type + "intent" kw + "interface" kw + "intrinsic" kw + "iolength" kw + "kind" kw + "logical" type + "module" kw + "namelist" kw + "none" kw + "nullify" kw + "only" kw + "open" kw + "optional" kw + "out" kw + "parameter" kw + "pause" kw + "pointer" kw + "precision" type + "print" kw + "private" kw + "procedure" kw + "program" kw + "publc" kw + "public" kw + "pure" kw + "read" kw + "real" type + "recursive" kw + "result" kw + "return" kw + "rewind" kw + "save" kw + "select" kw + "selectcase" kw + "sequence" kw + "stat" kw + "stop" kw + "subroutine" kw + "target" kw + "then" kw + "to" kw + "type" kw + "use" kw + "where" kw + "while" kw + "write" kw +done + "(" idle noeat istrings +# Keywords have to be duplicated here... + "allocate" kw + "allocatable" kw + "assign" kw + "assignment" kw + "backspace" kw + "block" kw + "blockdata" kw + "call" kw + "case" kw + "character" kw + "close" kw + "common" kw + "complex" kw + "contains" kw + "continue" kw + "cycle" kw + "data" kw + "deallocate" kw + "default" kw + "dimension" type + "do" kw + "double" type + "doubleprecision" type + "elemental" kw + "else" kw + "elseif" kw + "elsewhere" kw + "end" kw + "endblock" kw + "endblockdata" kw + "enddo" kw + "endfile" kw + "endforall" kw + "endif" kw + "endinterface" kw + "endmodule" kw + "endselect" kw + "endtype" kw + "endwhere" kw + "entry" kw + "equivalence" kw + "exit" kw + "external" kw + "forall" kw + "format" kw + "function" kw + "go" kw + "goto" kw + "if" kw + "implicit" kw + "implicit" kw + "in" kw + "inout" kw + "inquire" kw + "integer" kw + "intent" kw + "interface" kw + "intrinsic" kw + "iolength" kw + "kind" kw + "logical" type + "module" kw + "namelist" kw + "none" kw + "nullify" kw + "only" kw + "open" kw + "optional" kw + "out" kw + "parameter" kw + "pause" kw + "pointer" kw + "precision" type + "print" kw + "private" kw + "procedure" kw + "program" kw + "publc" kw + "public" kw + "pure" kw + "read" kw + "real" kw + "recursive" kw + "result" kw + "return" kw + "rewind" kw + "save" kw + "select" kw + "selectcase" kw + "sequence" kw + "stat" kw + "stop" kw + "subroutine" kw + "target" kw + "then" kw + "to" kw + "type" kw + "use" kw + "where" kw + "while" kw + "write" kw +# Here are instrinsics + "abs" intrinsic + "achar" intrinsic + "acos" intrinsic + "adjustl" intrinsic + "adjustr" intrinsic + "aimag" intrinsic + "aint" intrinsic + "all" intrinsic + "allocated" intrinsic + "alog" intrinsic + "alog10" intrinsic + "anint" intrinsic + "any" intrinsic + "asin" intrinsic + "associated" intrinsic + "atan" intrinsic + "atan2" intrinsic + "bit_size" intrinsic + "btest" intrinsic + "ceiling" intrinsic + "char" intrinsic + "cmplx" intrinsic + "conjg" intrinsic + "cos" intrinsic + "cosh" intrinsic + "count" intrinsic + "cpu_time" intrinsic + "cshift" intrinsic + "date_and_time" intrinsic + "dble" intrinsic + "digits" intrinsic + "dim" intrinsic + "dot_product" intrinsic + "dprod" intrinsic + "eoshift" intrinsic + "epsilon" intrinsic + "exp" intrinsic + "exponent" intrinsic + "false" intrinsic + "floor" intrinsic + "float" intrinsic + "fraction" intrinsic + "huge" intrinsic + "iachar" intrinsic + "iand" intrinsic + "ibclr" intrinsic + "ibits" intrinsic + "ibset" intrinsic + "ichar" intrinsic + "ieor" intrinsic + "index" intrinsic + "int" intrinsic + "int2" intrinsic + "ior" intrinsic + "ishft" intrinsic + "ishftc" intrinsic + "kind" intrinsic + "lbound" intrinsic + "len" intrinsic + "len_trim" intrinsic + "lge" intrinsic + "lgt" intrinsic + "lle" intrinsic + "llt" intrinsic + "log" intrinsic + "log10" intrinsic + "matmul" intrinsic + "max" intrinsic + "maxexponent" intrinsic + "maxloc" intrinsic + "maxval" intrinsic + "merge" intrinsic + "min" intrinsic + "minexponent" intrinsic + "minloc" intrinsic + "minval" intrinsic + "mod" intrinsic + "modulo" intrinsic + "mvbits" intrinsic + "nearest" intrinsic + "nint" intrinsic + "not" intrinsic + "null" intrinsic + "pack" intrinsic + "present" intrinsic + "product" intrinsic + "radix" intrinsic + "random_number" intrinsic + "random_seed" intrinsic + "range" intrinsic + "real" intrinsic + "repeat" intrinsic + "reshape" intrinsic + "rrspacing" intrinsic + "scale" intrinsic + "scan" intrinsic + "selected_int_kind" intrinsic + "selected_real_kind" intrinsic + "set_exponent" intrinsic + "shape" intrinsic + "sign" intrinsic + "sin" intrinsic + "sinh" intrinsic + "size" intrinsic + "spacing" intrinsic + "spread" intrinsic + "sqrt" intrinsic + "sum" intrinsic + "system_clock" intrinsic + "tan" intrinsic + "tanh" intrinsic + "tiny" intrinsic + "transfer" intrinsic + "transpose" intrinsic + "trim" intrinsic + "true" intrinsic + "ubound" intrinsic + "unpack" intrinsic + "verify" intrinsic +done + "a-zA-Z0-9_" ident + " \t" ws_ident hold + + +# Whitespace after an identifier... we wait to see if there is a "(" +:ws_ident Idle + * idle noeat istrings + "allocate" kw + "allocatable" kw + "assign" kw + "assignment" kw + "backspace" kw + "block" kw + "blockdata" kw + "call" kw + "case" kw + "character" type + "close" kw + "common" kw + "complex" type + "contains" kw + "continue" kw + "cycle" kw + "data" kw + "deallocate" kw + "default" kw + "dimension" type + "do" kw + "double" type + "doubleprecision" type + "elemental" kw + "else" kw + "elseif" kw + "elsewhere" kw + "end" kw + "endblock" kw + "endblockdata" kw + "enddo" kw + "endfile" kw + "endforall" kw + "endif" kw + "endinterface" kw + "endmodule" kw + "endselect" kw + "endtype" kw + "endwhere" kw + "entry" kw + "equivalence" kw + "exit" kw + "external" kw + "forall" kw + "format" kw + "function" kw + "go" kw + "goto" kw + "if" kw + "implicit" kw + "in" kw + "inout" kw + "inquire" kw + "integer" type + "intent" kw + "interface" kw + "intrinsic" kw + "iolength" kw + "kind" kw + "logical" type + "module" kw + "namelist" kw + "none" kw + "nullify" kw + "only" kw + "open" kw + "optional" kw + "out" kw + "parameter" kw + "pause" kw + "pointer" kw + "precision" type + "print" kw + "private" kw + "procedure" kw + "program" kw + "publc" kw + "public" kw + "pure" kw + "read" kw + "real" type + "recursive" kw + "result" kw + "return" kw + "rewind" kw + "save" kw + "select" kw + "selectcase" kw + "sequence" kw + "stat" kw + "stop" kw + "subroutine" kw + "target" kw + "then" kw + "to" kw + "type" kw + "use" kw + "where" kw + "while" kw + "write" kw +done + "(" idle noeat istrings +# Keywords have to be duplicated here... + "allocate" kw + "allocatable" kw + "assign" kw + "assignment" kw + "backspace" kw + "block" kw + "blockdata" kw + "call" kw + "case" kw + "character" type + "close" kw + "common" kw + "complex" type + "contains" kw + "continue" kw + "cycle" kw + "data" kw + "deallocate" kw + "default" kw + "dimension" type + "do" kw + "double" type + "doubleprecision" type + "elemental" kw + "else" kw + "elseif" kw + "elsewhere" kw + "end" kw + "endblock" kw + "endblockdata" kw + "enddo" kw + "endfile" kw + "endforall" kw + "endif" kw + "endinterface" kw + "endmodule" kw + "endselect" kw + "endtype" kw + "endwhere" kw + "entry" kw + "equivalence" kw + "exit" kw + "external" kw + "forall" kw + "format" kw + "function" kw + "go" kw + "goto" kw + "if" kw + "implicit" kw + "in" kw + "inout" kw + "inquire" kw + "integer" kw + "intent" kw + "interface" kw + "intrinsic" kw + "iolength" kw + "kind" kw + "logical" type + "module" kw + "namelist" kw + "none" kw + "nullify" kw + "only" kw + "open" kw + "optional" kw + "out" kw + "parameter" kw + "pause" kw + "pointer" kw + "precision" type + "print" kw + "private" kw + "procedure" kw + "program" kw + "publc" kw + "public" kw + "pure" kw + "read" kw + "real" type + "recursive" kw + "result" kw + "return" kw + "rewind" kw + "save" kw + "select" kw + "selectcase" kw + "sequence" kw + "stat" kw + "stop" kw + "subroutine" kw + "target" kw + "then" kw + "to" kw + "type" kw + "use" kw + "where" kw + "while" kw + "write" kw +# Here are instrinsics + "abs" intrinsic + "achar" intrinsic + "acos" intrinsic + "adjustl" intrinsic + "adjustr" intrinsic + "aimag" intrinsic + "aint" intrinsic + "all" intrinsic + "allocated" intrinsic + "alog" intrinsic + "alog10" intrinsic + "anint" intrinsic + "any" intrinsic + "asin" intrinsic + "associated" intrinsic + "atan" intrinsic + "atan2" intrinsic + "bit_size" intrinsic + "btest" intrinsic + "ceiling" intrinsic + "char" intrinsic + "cmplx" intrinsic + "conjg" intrinsic + "cos" intrinsic + "cosh" intrinsic + "count" intrinsic + "cpu_time" intrinsic + "cshift" intrinsic + "date_and_time" intrinsic + "dble" intrinsic + "digits" intrinsic + "dim" intrinsic + "dot_product" intrinsic + "dprod" intrinsic + "eoshift" intrinsic + "epsilon" intrinsic + "exp" intrinsic + "exponent" intrinsic + "false" intrinsic + "floor" intrinsic + "float" intrinsic + "fraction" intrinsic + "huge" intrinsic + "iachar" intrinsic + "iand" intrinsic + "ibclr" intrinsic + "ibits" intrinsic + "ibset" intrinsic + "ichar" intrinsic + "ieor" intrinsic + "index" intrinsic + "int" intrinsic + "int2" intrinsic + "ior" intrinsic + "ishft" intrinsic + "ishftc" intrinsic + "kind" intrinsic + "lbound" intrinsic + "len" intrinsic + "len_trim" intrinsic + "lge" intrinsic + "lgt" intrinsic + "lle" intrinsic + "llt" intrinsic + "log" intrinsic + "log10" intrinsic + "matmul" intrinsic + "max" intrinsic + "maxexponent" intrinsic + "maxloc" intrinsic + "maxval" intrinsic + "merge" intrinsic + "min" intrinsic + "minexponent" intrinsic + "minloc" intrinsic + "minval" intrinsic + "mod" intrinsic + "modulo" intrinsic + "mvbits" intrinsic + "nearest" intrinsic + "nint" intrinsic + "not" intrinsic + "null" intrinsic + "pack" intrinsic + "present" intrinsic + "product" intrinsic + "radix" intrinsic + "random_number" intrinsic + "random_seed" intrinsic + "range" intrinsic + "real" intrinsic + "repeat" intrinsic + "reshape" intrinsic + "rrspacing" intrinsic + "scale" intrinsic + "scan" intrinsic + "selected_int_kind" intrinsic + "selected_real_kind" intrinsic + "set_exponent" intrinsic + "shape" intrinsic + "sign" intrinsic + "sin" intrinsic + "sinh" intrinsic + "size" intrinsic + "spacing" intrinsic + "spread" intrinsic + "sqrt" intrinsic + "sum" intrinsic + "system_clock" intrinsic + "tan" intrinsic + "tanh" intrinsic + "tiny" intrinsic + "transfer" intrinsic + "transpose" intrinsic + "trim" intrinsic + "true" intrinsic + "ubound" intrinsic + "unpack" intrinsic + "verify" intrinsic +done + " \t" ws_ident + + +:intrinsic Intrinsic + * idle noeat + +:kw Keyword + * idle noeat + +:type Type + * idle noeat diff --git a/.joe/syntax/git-commit.jsf b/.joe/syntax/git-commit.jsf @@ -0,0 +1,21 @@ +# JOE syntax highlight file for Markdown +# by Christian Nicolai (http://mycrobase.de) + +=Idle +=Tag green +=Escape bold +=Bad bold red + +=Ignore green + +:line_start Idle + * idle noeat + "#" ignore recolor=-1 + +:idle Idle + * idle + "\n" line_start + +:ignore Ignore + * ignore + "\n" line_start diff --git a/.joe/syntax/git-commit.jsf.in b/.joe/syntax/git-commit.jsf.in @@ -0,0 +1,21 @@ +# JOE syntax highlight file for Markdown +# by Christian Nicolai (http://mycrobase.de) + +=Idle +=Tag green +=Escape bold +=Bad bold red + +=Ignore green + +:line_start Idle + * idle noeat + "#" ignore recolor=-1 + +:idle Idle + * idle + "\n" line_start + +:ignore Ignore + * ignore + "\n" line_start diff --git a/.joe/syntax/go.jsf b/.joe/syntax/go.jsf @@ -0,0 +1,368 @@ +# Google Go (golang) syntax +# (c) 2012 Matthias S. Benkmann +# License: http://creativecommons.org/licenses/by/3.0/deed.en_US + +# Small modifications by jjjordan to better suit white backgrounds and 16-color +# consoles. (Original colors commented out below) + +# Standard colors: +# +# Foreground: +# white cyan magenta blue yellow green red black +# +# Background: +# bg_white bg_cyan bg_magenta bg_blue bg_yellow bg_green bg_red bg_black +# +# +# For 16 color and 256 color xterms: "export TERM=xterm-16color", the following +# brighter than normal colors are available ( Note that you need an xterm which +# was compiled to support 16 or 256 colors and a matching termcap/terminfo entry +# for it.) +# +# Foreground: +# WHITE CYAN MAGENTA BLUE YELLOW GREEN RED BLACK +# +# Background: +# bg_WHITE bg_CYAN bg_MAGENTA bg_BLUE bg_YELLOW bg_GREEN bg_RED bg_BLACK +# +# +# For 256 color xterm: "export TERM=xterm-256color", the following become available +# ( Note that you need an xterm which was compiled to support 256 colors and a +# matching termcap/terminfo entry for it. ) +# +# fg_RGB and bg_RGB, where R, G, and B range from 0 - 5. So: fg_500 is bright red. +# +# fg_NN and bg_NN give shades of grey, where the intensity, NN, ranges from 0 - 23. + + +=Idle +=Error red bold +=Comment green #bold green +=SingleQuoted cyan +=DoubleQuoted cyan +=BackQuoted cyan +=Escape bold cyan +=Operator bold cyan +=Parentheses #bold yellow +=Brackets yellow +=Brace magenta #bold magenta +=Semicolon #bold yellow +=Period bold +=PeriodDecimal red +=Number red +=Constant red +=Comma #bold yellow +=Identifier #fg_333 +=ExportedIdentifier #fg_444 +=Keyword bold +=Type bold +=BuiltinFunction bold + +##################### main ######################### +:main Idle + * keyword_or_identifier noeat buffer + " \t" main + "\n" main + "/" maybe_comment recolor=-1 + "'" single_quoted recolor=-1 + "\"" double_quoted recolor=-1 + "`" back_quoted recolor=-1 + "+&=!|*^<>:%-" operator noeat + "()" parentheses noeat + "[]" brackets noeat + "{}" curlies noeat + ";" semicolon noeat + "," comma noeat + "." period + "0" number0 recolor=-1 + "1-9" float recolor=-1 + "#$@~" error noeat + +#################### error ########################## +:error Error + * error + "\n" main + "/" maybe_comment_err recolor=-1 + +:maybe_comment_err Operator + * error noeat recolor=-2 + "/" line_comment recolor=-2 + "*" block_comment recolor=-2 + +################## comments ######################### +:maybe_comment Operator + * main noeat + "/" line_comment recolor=-2 + "*" block_comment recolor=-2 + +:line_comment Comment + * line_comment + "\n" main + +:block_comment Comment + * block_comment + "*" maybe_end_block_comment + +:maybe_end_block_comment Comment + * block_comment noeat + "/" main + +################ strings ############################ +:single_quoted SingleQuoted + * single_quoted + "'" main + "\\" single_quoted call=.escape() recolor=-1 + "\n" error + +:double_quoted DoubleQuoted + * double_quoted + "\"" main + "\\" double_quoted call=.escape() recolor=-1 + "\n" error + +:back_quoted BackQuoted + * back_quoted + "`" main + +################### operators ####################### +:operator Operator + * main + +:parentheses Parentheses + * main + +:brackets Brackets + * main + +:curlies Brace + * main + +:semicolon Semicolon + * main + +:comma Comma + * main + +##################### period ####################### + +:period Period + * period_other noeat recolor=-2 + "0-9" period_decimal noeat recolor=-2 + +:period_other Period + * main noeat + +:period_decimal PeriodDecimal + * float_no_period noeat + + +################### numbers #################### +:float_no_period Number + * end_of_number noeat + "0-9" float_no_period + "eE" integer + +:integer Number + * error noeat + "+-" unsigned + "0-9" unsigned_or_end + +:unsigned Number + * error noeat + "0-9" unsigned_or_end + +:unsigned_or_end Number + * end_of_number noeat + "0-9" unsigned_or_end + +:end_of_number Number + * main noeat + "i" main # imaginary number suffix + +:number0 Number + * end_of_number noeat + "xX" hex + "." period_decimal recolor=-1 + # 099i is a valid imaginary number, 099.0 is a valid float, + # but 099 is an invalid octal. + #We don't check for this and simply lump both cases together. + "0-9" float + +:hex Number + * main noeat + "0-9a-fA-F" hex + +:float Number + * end_of_number noeat + "0-9" float + "." period_decimal recolor=-1 + "eE" integer + +################# keywords and identifiers ########################## +:keyword_or_identifier Identifier + * identifier + "\p{Lu}\p{Lt}" exported_identifier recolor=-1 + "\p{Ll}\p{Lo}\p{Pc}\p{Nl}" keyword_or_identifier2 + +:exported_identifier ExportedIdentifier + * exported_identifier + "\x01-/:-@[-^`{-\x7f" main noeat + +:identifier Identifier + * identifier + "\x01-/:-@[-^`{-\x7f" main noeat + +:keyword_or_identifier2 Identifier + * identifier + "\c" keyword_or_identifier2 + "\x01-/:-@[-^`{-\x7f" main noeat hold strings + "_" keyword + "break" keyword + "default" keyword + "func" keyword + "interface" keyword + "select" keyword + "case" keyword + "defer" keyword + "go" keyword + "map" keyword + "struct" keyword + "chan" keyword + "else" keyword + "goto" keyword + "package" keyword + "switch" keyword + "const" keyword + "fallthrough" keyword + "if" keyword + "range" keyword + "type" keyword + "continue" keyword + "for" keyword + "import" keyword + "return" keyword + "var" keyword + + "true" constant + "false" constant + "nil" constant + "iota" constant + + "byte" type + "rune" type + "int" type + "uint" type + "uintptr" type + "uint8" type + "uint16" type + "uint32" type + "uint64" type + "int8" type + "int16" type + "int32" type + "int64" type + "float32" type + "float64" type + "complex64" type + "complex128" type + "bool" type + "string" type + "error" type + + "delete" builtin + "make" builtin + "len" builtin + "cap" builtin + "new" builtin + "copy" builtin + "append" builtin + "close" builtin + "complex" builtin + "imag" builtin + "panic" builtin + "print" builtin + "println" builtin + "real" builtin + "recover" builtin + done + +:keyword Keyword + * main noeat + +:constant Constant + * main noeat + +:type Type + * main noeat + +:builtin BuiltinFunction + * main noeat + + + + +########################## .subr escape START ###################################### +.subr escape +:esc Escape + * esc_err noeat + "abfnrtv'\"" whatever return + # For some reason joe doesn't interpret \\ properly if merged with the + # previous case. So create a separate case for it. + "\\" whatever return + "x" hex2 + "u" hex4 + "U" hex8 + "0-3" oct2 + +:hex8 Escape + * esc_err noeat + "a-fA-F0-9" hex7 + +:hex7 Escape + * esc_err noeat + "a-fA-F0-9" hex6 + +:hex6 Escape + * esc_err noeat + "a-fA-F0-9" hex5 + +:hex5 Escape + * esc_err noeat + "a-fA-F0-9" hex4 + +:hex4 Escape + * esc_err noeat + "a-fA-F0-9" hex3 + +:hex3 Escape + * esc_err noeat + "a-fA-F0-9" hex2 + +:hex2 Escape + * esc_err noeat + "a-fA-F0-9" hex1 + +:hex1 Escape + * esc_err noeat + "a-fA-F0-9" whatever return + +:oct2 Escape + * esc_err noeat + "0-7" oct1 + +:oct1 Escape + * esc_err noeat + "0-7" whatever return + +:esc_err Error + * esc_err return + "\n" esc_err_newline noeat recolor=-2 + +:esc_err_newline Error + * esc_err return noeat + + +.end +########################## .subr escape END ###################################### + + diff --git a/.joe/syntax/go.jsf.in b/.joe/syntax/go.jsf.in @@ -0,0 +1,368 @@ +# Google Go (golang) syntax +# (c) 2012 Matthias S. Benkmann +# License: http://creativecommons.org/licenses/by/3.0/deed.en_US + +# Small modifications by jjjordan to better suit white backgrounds and 16-color +# consoles. (Original colors commented out below) + +# Standard colors: +# +# Foreground: +# white cyan magenta blue yellow green red black +# +# Background: +# bg_white bg_cyan bg_magenta bg_blue bg_yellow bg_green bg_red bg_black +# +# +# For 16 color and 256 color xterms: "export TERM=xterm-16color", the following +# brighter than normal colors are available ( Note that you need an xterm which +# was compiled to support 16 or 256 colors and a matching termcap/terminfo entry +# for it.) +# +# Foreground: +# WHITE CYAN MAGENTA BLUE YELLOW GREEN RED BLACK +# +# Background: +# bg_WHITE bg_CYAN bg_MAGENTA bg_BLUE bg_YELLOW bg_GREEN bg_RED bg_BLACK +# +# +# For 256 color xterm: "export TERM=xterm-256color", the following become available +# ( Note that you need an xterm which was compiled to support 256 colors and a +# matching termcap/terminfo entry for it. ) +# +# fg_RGB and bg_RGB, where R, G, and B range from 0 - 5. So: fg_500 is bright red. +# +# fg_NN and bg_NN give shades of grey, where the intensity, NN, ranges from 0 - 23. + + +=Idle +=Error red bold +=Comment green #bold green +=SingleQuoted cyan +=DoubleQuoted cyan +=BackQuoted cyan +=Escape bold cyan +=Operator bold cyan +=Parentheses #bold yellow +=Brackets yellow +=Brace magenta #bold magenta +=Semicolon #bold yellow +=Period bold +=PeriodDecimal red +=Number red +=Constant red +=Comma #bold yellow +=Identifier #fg_333 +=ExportedIdentifier #fg_444 +=Keyword bold +=Type bold +=BuiltinFunction bold + +##################### main ######################### +:main Idle + * keyword_or_identifier noeat buffer + " \t" main + "\n" main + "/" maybe_comment recolor=-1 + "'" single_quoted recolor=-1 + "\"" double_quoted recolor=-1 + "`" back_quoted recolor=-1 + "+&=!|*^<>:%-" operator noeat + "()" parentheses noeat + "[]" brackets noeat + "{}" curlies noeat + ";" semicolon noeat + "," comma noeat + "." period + "0" number0 recolor=-1 + "1-9" float recolor=-1 + "#$@~" error noeat + +#################### error ########################## +:error Error + * error + "\n" main + "/" maybe_comment_err recolor=-1 + +:maybe_comment_err Operator + * error noeat recolor=-2 + "/" line_comment recolor=-2 + "*" block_comment recolor=-2 + +################## comments ######################### +:maybe_comment Operator + * main noeat + "/" line_comment recolor=-2 + "*" block_comment recolor=-2 + +:line_comment Comment + * line_comment + "\n" main + +:block_comment Comment + * block_comment + "*" maybe_end_block_comment + +:maybe_end_block_comment Comment + * block_comment noeat + "/" main + +################ strings ############################ +:single_quoted SingleQuoted + * single_quoted + "'" main + "\\" single_quoted call=.escape() recolor=-1 + "\n" error + +:double_quoted DoubleQuoted + * double_quoted + "\"" main + "\\" double_quoted call=.escape() recolor=-1 + "\n" error + +:back_quoted BackQuoted + * back_quoted + "`" main + +################### operators ####################### +:operator Operator + * main + +:parentheses Parentheses + * main + +:brackets Brackets + * main + +:curlies Brace + * main + +:semicolon Semicolon + * main + +:comma Comma + * main + +##################### period ####################### + +:period Period + * period_other noeat recolor=-2 + "0-9" period_decimal noeat recolor=-2 + +:period_other Period + * main noeat + +:period_decimal PeriodDecimal + * float_no_period noeat + + +################### numbers #################### +:float_no_period Number + * end_of_number noeat + "0-9" float_no_period + "eE" integer + +:integer Number + * error noeat + "+-" unsigned + "0-9" unsigned_or_end + +:unsigned Number + * error noeat + "0-9" unsigned_or_end + +:unsigned_or_end Number + * end_of_number noeat + "0-9" unsigned_or_end + +:end_of_number Number + * main noeat + "i" main # imaginary number suffix + +:number0 Number + * end_of_number noeat + "xX" hex + "." period_decimal recolor=-1 + # 099i is a valid imaginary number, 099.0 is a valid float, + # but 099 is an invalid octal. + #We don't check for this and simply lump both cases together. + "0-9" float + +:hex Number + * main noeat + "0-9a-fA-F" hex + +:float Number + * end_of_number noeat + "0-9" float + "." period_decimal recolor=-1 + "eE" integer + +################# keywords and identifiers ########################## +:keyword_or_identifier Identifier + * identifier + "\p{Lu}\p{Lt}" exported_identifier recolor=-1 + "\p{Ll}\p{Lo}\p{Pc}\p{Nl}" keyword_or_identifier2 + +:exported_identifier ExportedIdentifier + * exported_identifier + "\x01-/:-@[-^`{-\x7f" main noeat + +:identifier Identifier + * identifier + "\x01-/:-@[-^`{-\x7f" main noeat + +:keyword_or_identifier2 Identifier + * identifier + "\c" keyword_or_identifier2 + "\x01-/:-@[-^`{-\x7f" main noeat hold strings + "_" keyword + "break" keyword + "default" keyword + "func" keyword + "interface" keyword + "select" keyword + "case" keyword + "defer" keyword + "go" keyword + "map" keyword + "struct" keyword + "chan" keyword + "else" keyword + "goto" keyword + "package" keyword + "switch" keyword + "const" keyword + "fallthrough" keyword + "if" keyword + "range" keyword + "type" keyword + "continue" keyword + "for" keyword + "import" keyword + "return" keyword + "var" keyword + + "true" constant + "false" constant + "nil" constant + "iota" constant + + "byte" type + "rune" type + "int" type + "uint" type + "uintptr" type + "uint8" type + "uint16" type + "uint32" type + "uint64" type + "int8" type + "int16" type + "int32" type + "int64" type + "float32" type + "float64" type + "complex64" type + "complex128" type + "bool" type + "string" type + "error" type + + "delete" builtin + "make" builtin + "len" builtin + "cap" builtin + "new" builtin + "copy" builtin + "append" builtin + "close" builtin + "complex" builtin + "imag" builtin + "panic" builtin + "print" builtin + "println" builtin + "real" builtin + "recover" builtin + done + +:keyword Keyword + * main noeat + +:constant Constant + * main noeat + +:type Type + * main noeat + +:builtin BuiltinFunction + * main noeat + + + + +########################## .subr escape START ###################################### +.subr escape +:esc Escape + * esc_err noeat + "abfnrtv'\"" whatever return + # For some reason joe doesn't interpret \\ properly if merged with the + # previous case. So create a separate case for it. + "\\" whatever return + "x" hex2 + "u" hex4 + "U" hex8 + "0-3" oct2 + +:hex8 Escape + * esc_err noeat + "a-fA-F0-9" hex7 + +:hex7 Escape + * esc_err noeat + "a-fA-F0-9" hex6 + +:hex6 Escape + * esc_err noeat + "a-fA-F0-9" hex5 + +:hex5 Escape + * esc_err noeat + "a-fA-F0-9" hex4 + +:hex4 Escape + * esc_err noeat + "a-fA-F0-9" hex3 + +:hex3 Escape + * esc_err noeat + "a-fA-F0-9" hex2 + +:hex2 Escape + * esc_err noeat + "a-fA-F0-9" hex1 + +:hex1 Escape + * esc_err noeat + "a-fA-F0-9" whatever return + +:oct2 Escape + * esc_err noeat + "0-7" oct1 + +:oct1 Escape + * esc_err noeat + "0-7" whatever return + +:esc_err Error + * esc_err return + "\n" esc_err_newline noeat recolor=-2 + +:esc_err_newline Error + * esc_err return noeat + + +.end +########################## .subr escape END ###################################### + + diff --git a/.joe/syntax/groovy.jsf b/.joe/syntax/groovy.jsf @@ -0,0 +1,471 @@ +# JOE syntax highlight file for Groovy + +=Idle +=Comment green +=Shebang yellow +=Constant cyan +=Escape bold cyan +=Operator bold +=Keyword bold +=Bad bold red +=Var yellow +=Brace magenta + +=ProcArg #yellow +=ClassMember yellow #fg_310 # brown +=GlobalVar #yellow +=ClassDecl bold blue + +:pre_idle Idle + * NULL noeat call=.groovy() + +.subr groovy + +# #! allowed on first line + +:reset Idle + * idle noeat + "#" maybe_shebang + +:maybe_shebang Idle + * idle noeat + "!" shebang recolor=-2 + +:shebang Shebang + * shebang + "\n" idle + +:idle Idle + * idle + "{}" brace recolor=-1 + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." ident_no_kw + "\"" double_quote recolor=-1 + "'" single_quote recolor=-1 + "/" maybe_regex recolor=-1 + "$" not_string buffer + "\i" ident buffer + +# / / regex not allowed after terms + +:after_term Idle + * idle noeat + " \t)" after_term + "/" slash_after_term + +:slash_after_term Idle + * idle noeat + "/" line_comment recolor=-2 + "*" comment recolor=-2 + +:maybe_regex Constant + * regex noeat + "*" comment recolor=-2 + "/" line_comment recolor=-2 + +:regex Constant + * regex + "\\" regex_quote recolor=-1 + "/" after_term + "$" maybe_regex_subst recolor=-1 + +:maybe_regex_subst Constant + * regex noeat + "\i" regex_subst1 recolor=-2 + "{" regex_subst recolor=-2 + +:regex_subst Escape + * regex_subst + "}" regex + +:regex_subst1 Escape + * regex noeat + ".\c" regex_subst1 + +:regex_quote Escape + * regex + +:not_string Idle + * idle noeat + "\c" global_var recolor=-2 + "/" dstring recolor=-2 + +:brace Brace + * idle noeat + +:comment Comment + * comment + "*" maybe_end_comment + +:maybe_end_comment Comment + * comment + "/" idle + "*" maybe_end_comment + +:line_comment Comment + * line_comment + "\n" idle + +:end_of_file_comment Comment + * end_of_file_comment + +:first_digit Constant + * after_term noeat + "x" hex + "b" binary + "." float + "eE" epart + "0-7" octal + "89" bad_number recolor=-1 + "gGlLiIdDfF" after_term + +:bad_number Bad + * after_term noeat + "0-9" bad_number + +:octal Constant + * after_term noeat + "0-7_" octal + "89" bad_number recolor=-1 + +:binary Constant + * after_term noeat + "01_" binary + "2-9" bad_number recolor=-1 + +:hex Constant + * after_term noeat + "0-9A-Fa-f_" hex + +:decimal Constant + * after_term noeat + "0-9_" decimal + "eE" epart + "." float + "gGlLiIdDfF" after_term + +:float Constant + * after_term noeat + "eE" epart + "0-9_" float + "gGlLiIdDfF" after_term + +:epart Constant + * after_term noeat + "0-9+\-" enum + +:enum Constant + * after_term noeat + "0-9_" enum + "gGlLiIdDfF" after_term + +# Distinguish between " and """ + +:double_quote Constant + * string noeat + "\"" double_quote_1 + +:double_quote_1 Constant + * after_term noeat + "\"" tstring + +# strings like "hello" +# interpolation allowed +# line crossing not allowed + +:string Constant + * string + "\"" after_term + "\n" after_term + "\\" string_escape recolor=-1 + "$" maybe_string_subst recolor=-1 + +:maybe_string_subst Constant + * string noeat + "\i" string_subst1 recolor=-2 + "{" string_subst recolor=-2 + +:string_subst Escape + * string_subst + "}" string + +:string_subst1 Escape + * string noeat + ".\c" string_subst1 + +:string_escape Escape + * string + "x" string_hex2 + "u" string_hex4 + "0-7" string_octal2 + "\n" string recolor=-2 + +:string_hex4 Escape + * string noeat + "0-9a-fA-F" string_hex3 + +:string_hex3 Escape + * string noeat + "0-9a-fA-F" string_hex2 + +:string_hex2 Escape + * string noeat + "0-9a-fA-F" string_hex1 + +:string_hex1 Escape + * string noeat + "0-9a-fA-F" string + +:string_octal2 Escape + * string noeat + "0-7" string_octal1 + +:string_octal1 Escape + * string noeat + "0-7" string + +# tstrings like "hello" +# interpolation allowed +# line crossing not allowed + +:tstring Constant + * tstring + "\"" tstring_maybe_done + "\\" tstring_escape recolor=-1 + "$" maybe_tstring_subst recolor=-1 + +:tstring_maybe_done Constant + * tstring noeat + "\"" tstring_maybe_done_2 + +:tstring_maybe_done_2 Constant + * tstring noeat + "\"" after_term + +:maybe_tstring_subst Constant + * tstring noeat + "\i" tstring_subst1 recolor=-2 + "{" tstring_subst recolor=-2 + +:tstring_subst Escape + * tstring_subst + "}" tstring + +:tstring_subst1 Escape + * tstring noeat + ".\c" tstring_subst1 + +:tstring_escape Escape + * tstring + "x" tstring_hex2 + "u" tstring_hex4 + "0-7" tstring_octal2 + "\n" tstring recolor=-2 + +:tstring_hex4 Escape + * tstring noeat + "0-9a-fA-F" tstring_hex3 + +:tstring_hex3 Escape + * tstring noeat + "0-9a-fA-F" tstring_hex2 + +:tstring_hex2 Escape + * tstring noeat + "0-9a-fA-F" tstring_hex1 + +:tstring_hex1 Escape + * tstring noeat + "0-9a-fA-F" tstring + +:tstring_octal2 Escape + * tstring noeat + "0-7" tstring_octal1 + +:tstring_octal1 Escape + * tstring noeat + "0-7" tstring + +# strings like: $/sdfsdf/$ +# interpolation allowed + +:dstring Constant + * dstring + "$" dstring_esc recolor=-1 + "/" dstring_maybe_done + +:dstring_maybe_done Constant + * dstring noeat + "$" after_term + +:dstring_esc Escape + * dstring + "/" dstring_esc_slash + +:dstring_esc_slash Escape + * dstring noeat recolor=-1 + "$" dstring + +:single_quote Constant + * char noeat + "\'" single_quote_1 + +:single_quote_1 Constant + * after_term noeat + "\'" tchar + +# strings like 'hello' +# no interpolation +# no line crossing + +:char Constant + * char + "\n" after_term + "\'" after_term + "\\" char_escape recolor=-1 + +:char_escape Escape + * char + "x" char_hex2 + "u" char_hex4 + "0-7" char_octal2 + "\n" char recolor=-2 + +:char_hex4 Escape + * char noeat + "0-9a-fA-F" char_hex3 + +:char_hex3 Escape + * char noeat + "0-9a-fA-F" char_hex2 + +:char_hex2 Escape + * char noeat + "0-9a-fA-F" char_hex1 + +:char_hex1 Escape + * char noeat + "0-9a-fA-F" char + +:char_octal2 Escape + * char noeat + "0-7" char_octal1 + +:char_octal1 Escape + * char noeat + "0-7" char + +# strings like 'hello' +# no interpolation +# no line crossing + +:tchar Constant + * tchar + "\'" after_term + "\\" tchar_escape recolor=-1 + +:tchar_maybe_done Constant + * tchar noeat + "\'" tchar_maybe_done_2 + +:tchar_maybe_done_2 Constant + * tchar noeat + "\'" after_term + +:tchar_escape Escape + * tchar + "x" tchar_hex2 + "u" tchar_hex4 + "0-7" tchar_octal2 + "\n" tchar recolor=-2 + +:tchar_hex4 Escape + * tchar noeat + "0-9a-fA-F" tchar_hex3 + +:tchar_hex3 Escape + * tchar noeat + "0-9a-fA-F" tchar_hex2 + +:tchar_hex2 Escape + * tchar noeat + "0-9a-fA-F" tchar_hex1 + +:tchar_hex1 Escape + * tchar noeat + "0-9a-fA-F" tchar + +:tchar_octal2 Escape + * tchar noeat + "0-7" tchar_octal1 + +:tchar_octal1 Escape + * tchar noeat + "0-7" tchar + +:ident_no_kw Idle + * after_term noeat + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "\i" ident_no_kw1 + +:ident_no_kw1 Idle + * after_term noeat + "\c" ident_no_kw1 + +:ident Idle + * after_term noeat strings + "as" operator + "assert" kw + "break" kw + "case" kw + "catch" kw + "class" kw + "const" kw + "continue" kw + "def" kw + "default" kw + "do" kw + "else" kw + "enum" kw + "extends" kw + "finally" kw + "for" kw + "goto" kw + "if" kw + "implements" kw + "import" kw + "in" operator + "instanceof" kw + "interface" kw + "new" operator + "package" kw + "return" kw + "super" kw + "switch" kw + "throw" kw + "throws" kw + "trait" kw + "try" kw + "while" kw + "true" lit + "false" lit + "null" lit +done + "\c" ident + +:kw Keyword + * idle noeat + +:lit Constant + * idle noeat + +:operator Operator + * idle noeat + +:global_var GlobalVar + * idle noeat + "\c" global_var + +.end diff --git a/.joe/syntax/groovy.jsf.in b/.joe/syntax/groovy.jsf.in @@ -0,0 +1,471 @@ +# JOE syntax highlight file for Groovy + +=Idle +=Comment green +=Shebang yellow +=Constant cyan +=Escape bold cyan +=Operator bold +=Keyword bold +=Bad bold red +=Var yellow +=Brace magenta + +=ProcArg #yellow +=ClassMember yellow #fg_310 # brown +=GlobalVar #yellow +=ClassDecl bold blue + +:pre_idle Idle + * NULL noeat call=.groovy() + +.subr groovy + +# #! allowed on first line + +:reset Idle + * idle noeat + "#" maybe_shebang + +:maybe_shebang Idle + * idle noeat + "!" shebang recolor=-2 + +:shebang Shebang + * shebang + "\n" idle + +:idle Idle + * idle + "{}" brace recolor=-1 + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." ident_no_kw + "\"" double_quote recolor=-1 + "'" single_quote recolor=-1 + "/" maybe_regex recolor=-1 + "$" not_string buffer + "\i" ident buffer + +# / / regex not allowed after terms + +:after_term Idle + * idle noeat + " \t)" after_term + "/" slash_after_term + +:slash_after_term Idle + * idle noeat + "/" line_comment recolor=-2 + "*" comment recolor=-2 + +:maybe_regex Constant + * regex noeat + "*" comment recolor=-2 + "/" line_comment recolor=-2 + +:regex Constant + * regex + "\\" regex_quote recolor=-1 + "/" after_term + "$" maybe_regex_subst recolor=-1 + +:maybe_regex_subst Constant + * regex noeat + "\i" regex_subst1 recolor=-2 + "{" regex_subst recolor=-2 + +:regex_subst Escape + * regex_subst + "}" regex + +:regex_subst1 Escape + * regex noeat + ".\c" regex_subst1 + +:regex_quote Escape + * regex + +:not_string Idle + * idle noeat + "\c" global_var recolor=-2 + "/" dstring recolor=-2 + +:brace Brace + * idle noeat + +:comment Comment + * comment + "*" maybe_end_comment + +:maybe_end_comment Comment + * comment + "/" idle + "*" maybe_end_comment + +:line_comment Comment + * line_comment + "\n" idle + +:end_of_file_comment Comment + * end_of_file_comment + +:first_digit Constant + * after_term noeat + "x" hex + "b" binary + "." float + "eE" epart + "0-7" octal + "89" bad_number recolor=-1 + "gGlLiIdDfF" after_term + +:bad_number Bad + * after_term noeat + "0-9" bad_number + +:octal Constant + * after_term noeat + "0-7_" octal + "89" bad_number recolor=-1 + +:binary Constant + * after_term noeat + "01_" binary + "2-9" bad_number recolor=-1 + +:hex Constant + * after_term noeat + "0-9A-Fa-f_" hex + +:decimal Constant + * after_term noeat + "0-9_" decimal + "eE" epart + "." float + "gGlLiIdDfF" after_term + +:float Constant + * after_term noeat + "eE" epart + "0-9_" float + "gGlLiIdDfF" after_term + +:epart Constant + * after_term noeat + "0-9+\-" enum + +:enum Constant + * after_term noeat + "0-9_" enum + "gGlLiIdDfF" after_term + +# Distinguish between " and """ + +:double_quote Constant + * string noeat + "\"" double_quote_1 + +:double_quote_1 Constant + * after_term noeat + "\"" tstring + +# strings like "hello" +# interpolation allowed +# line crossing not allowed + +:string Constant + * string + "\"" after_term + "\n" after_term + "\\" string_escape recolor=-1 + "$" maybe_string_subst recolor=-1 + +:maybe_string_subst Constant + * string noeat + "\i" string_subst1 recolor=-2 + "{" string_subst recolor=-2 + +:string_subst Escape + * string_subst + "}" string + +:string_subst1 Escape + * string noeat + ".\c" string_subst1 + +:string_escape Escape + * string + "x" string_hex2 + "u" string_hex4 + "0-7" string_octal2 + "\n" string recolor=-2 + +:string_hex4 Escape + * string noeat + "0-9a-fA-F" string_hex3 + +:string_hex3 Escape + * string noeat + "0-9a-fA-F" string_hex2 + +:string_hex2 Escape + * string noeat + "0-9a-fA-F" string_hex1 + +:string_hex1 Escape + * string noeat + "0-9a-fA-F" string + +:string_octal2 Escape + * string noeat + "0-7" string_octal1 + +:string_octal1 Escape + * string noeat + "0-7" string + +# tstrings like "hello" +# interpolation allowed +# line crossing not allowed + +:tstring Constant + * tstring + "\"" tstring_maybe_done + "\\" tstring_escape recolor=-1 + "$" maybe_tstring_subst recolor=-1 + +:tstring_maybe_done Constant + * tstring noeat + "\"" tstring_maybe_done_2 + +:tstring_maybe_done_2 Constant + * tstring noeat + "\"" after_term + +:maybe_tstring_subst Constant + * tstring noeat + "\i" tstring_subst1 recolor=-2 + "{" tstring_subst recolor=-2 + +:tstring_subst Escape + * tstring_subst + "}" tstring + +:tstring_subst1 Escape + * tstring noeat + ".\c" tstring_subst1 + +:tstring_escape Escape + * tstring + "x" tstring_hex2 + "u" tstring_hex4 + "0-7" tstring_octal2 + "\n" tstring recolor=-2 + +:tstring_hex4 Escape + * tstring noeat + "0-9a-fA-F" tstring_hex3 + +:tstring_hex3 Escape + * tstring noeat + "0-9a-fA-F" tstring_hex2 + +:tstring_hex2 Escape + * tstring noeat + "0-9a-fA-F" tstring_hex1 + +:tstring_hex1 Escape + * tstring noeat + "0-9a-fA-F" tstring + +:tstring_octal2 Escape + * tstring noeat + "0-7" tstring_octal1 + +:tstring_octal1 Escape + * tstring noeat + "0-7" tstring + +# strings like: $/sdfsdf/$ +# interpolation allowed + +:dstring Constant + * dstring + "$" dstring_esc recolor=-1 + "/" dstring_maybe_done + +:dstring_maybe_done Constant + * dstring noeat + "$" after_term + +:dstring_esc Escape + * dstring + "/" dstring_esc_slash + +:dstring_esc_slash Escape + * dstring noeat recolor=-1 + "$" dstring + +:single_quote Constant + * char noeat + "\'" single_quote_1 + +:single_quote_1 Constant + * after_term noeat + "\'" tchar + +# strings like 'hello' +# no interpolation +# no line crossing + +:char Constant + * char + "\n" after_term + "\'" after_term + "\\" char_escape recolor=-1 + +:char_escape Escape + * char + "x" char_hex2 + "u" char_hex4 + "0-7" char_octal2 + "\n" char recolor=-2 + +:char_hex4 Escape + * char noeat + "0-9a-fA-F" char_hex3 + +:char_hex3 Escape + * char noeat + "0-9a-fA-F" char_hex2 + +:char_hex2 Escape + * char noeat + "0-9a-fA-F" char_hex1 + +:char_hex1 Escape + * char noeat + "0-9a-fA-F" char + +:char_octal2 Escape + * char noeat + "0-7" char_octal1 + +:char_octal1 Escape + * char noeat + "0-7" char + +# strings like 'hello' +# no interpolation +# no line crossing + +:tchar Constant + * tchar + "\'" after_term + "\\" tchar_escape recolor=-1 + +:tchar_maybe_done Constant + * tchar noeat + "\'" tchar_maybe_done_2 + +:tchar_maybe_done_2 Constant + * tchar noeat + "\'" after_term + +:tchar_escape Escape + * tchar + "x" tchar_hex2 + "u" tchar_hex4 + "0-7" tchar_octal2 + "\n" tchar recolor=-2 + +:tchar_hex4 Escape + * tchar noeat + "0-9a-fA-F" tchar_hex3 + +:tchar_hex3 Escape + * tchar noeat + "0-9a-fA-F" tchar_hex2 + +:tchar_hex2 Escape + * tchar noeat + "0-9a-fA-F" tchar_hex1 + +:tchar_hex1 Escape + * tchar noeat + "0-9a-fA-F" tchar + +:tchar_octal2 Escape + * tchar noeat + "0-7" tchar_octal1 + +:tchar_octal1 Escape + * tchar noeat + "0-7" tchar + +:ident_no_kw Idle + * after_term noeat + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "\i" ident_no_kw1 + +:ident_no_kw1 Idle + * after_term noeat + "\c" ident_no_kw1 + +:ident Idle + * after_term noeat strings + "as" operator + "assert" kw + "break" kw + "case" kw + "catch" kw + "class" kw + "const" kw + "continue" kw + "def" kw + "default" kw + "do" kw + "else" kw + "enum" kw + "extends" kw + "finally" kw + "for" kw + "goto" kw + "if" kw + "implements" kw + "import" kw + "in" operator + "instanceof" kw + "interface" kw + "new" operator + "package" kw + "return" kw + "super" kw + "switch" kw + "throw" kw + "throws" kw + "trait" kw + "try" kw + "while" kw + "true" lit + "false" lit + "null" lit +done + "\c" ident + +:kw Keyword + * idle noeat + +:lit Constant + * idle noeat + +:operator Operator + * idle noeat + +:global_var GlobalVar + * idle noeat + "\c" global_var + +.end diff --git a/.joe/syntax/haml.jsf b/.joe/syntax/haml.jsf @@ -0,0 +1,122 @@ +# JOE syntax highlight file for Haml +# by Christian Nicolai (http://mycrobase.de) + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Bad bold red +=Brace magenta + +=Tag blue +=Class yellow +=Id green +=Doctype bold magenta +=Filter blue + +:line_start Idle + * idle noeat + # eat indent + " " line_start + "\\" escape_first recolor=-1 + "!" doctype1 + "%" tag recolor=-1 + # implicit <div> + ".#" after_tag noeat + "/" html_comment recolor=-1 + ":" filter recolor=-1 + +:escape_first Constant + * idle_no_ruby + +:idle Constant + * idle_no_ruby + "\n" line_start + "#" maybe_subst + "\\" maybe_subst_escape + "=~-" ruby_call noeat + "&!" maybe_esc_ruby_call + +:idle_no_ruby Constant + * idle_no_ruby + "\n" line_start + "#" maybe_subst + "\\" maybe_subst_escape + +:doctype1 Idle + * idle recolor=-2 + "=" esc_ruby_call recolor=-2 + "!" doctype2 + +:doctype2 Idle + * idle recolor=-3 + "!" doctype3 recolor=-3 + +:doctype3 Doctype + * doctype3 + "\n" line_start + +:tag Tag + * idle noeat + "a-zA-Z0-9_-" tag + ".#{(/" after_tag noeat + +:after_tag Idle + * idle noeat + "." class recolor=-1 + "#" id recolor=-1 + "{" attrA + "(" attrB + "/" tag_close recolor=-1 + +:class Class + * after_tag noeat + "a-zA-Z0-9_-" class + +:id Id + * after_tag noeat + "a-zA-Z0-9_-" id + +:attrA Idle + * attrA + "}" after_tag + +:attrB Idle + * attrB + ")" after_tag + +:tag_close Tag + * idle noeat + +:html_comment Comment + * html_comment + "\n" line_start + +:ruby_call Idle + * line_start call=ruby.ruby(haml) + +:maybe_esc_ruby_call Constant + * idle_no_ruby + "=" esc_ruby_call recolor=-2 + +:esc_ruby_call Idle + * line_start call=ruby.ruby(haml) + "=" esc_ruby_call2 + +:esc_ruby_call2 Idle + * line_start call=ruby.ruby(haml) + +:maybe_subst Constant + * idle_no_ruby + "{" subst recolor=-2 + +:subst Escape + * subst + "}" idle_no_ruby + +:maybe_subst_escape Constant + * idle_no_ruby + +:filter Filter + * idle + "a-zA-Z0-9_" filter diff --git a/.joe/syntax/haml.jsf.in b/.joe/syntax/haml.jsf.in @@ -0,0 +1,122 @@ +# JOE syntax highlight file for Haml +# by Christian Nicolai (http://mycrobase.de) + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Bad bold red +=Brace magenta + +=Tag blue +=Class yellow +=Id green +=Doctype bold magenta +=Filter blue + +:line_start Idle + * idle noeat + # eat indent + " " line_start + "\\" escape_first recolor=-1 + "!" doctype1 + "%" tag recolor=-1 + # implicit <div> + ".#" after_tag noeat + "/" html_comment recolor=-1 + ":" filter recolor=-1 + +:escape_first Constant + * idle_no_ruby + +:idle Constant + * idle_no_ruby + "\n" line_start + "#" maybe_subst + "\\" maybe_subst_escape + "=~-" ruby_call noeat + "&!" maybe_esc_ruby_call + +:idle_no_ruby Constant + * idle_no_ruby + "\n" line_start + "#" maybe_subst + "\\" maybe_subst_escape + +:doctype1 Idle + * idle recolor=-2 + "=" esc_ruby_call recolor=-2 + "!" doctype2 + +:doctype2 Idle + * idle recolor=-3 + "!" doctype3 recolor=-3 + +:doctype3 Doctype + * doctype3 + "\n" line_start + +:tag Tag + * idle noeat + "a-zA-Z0-9_-" tag + ".#{(/" after_tag noeat + +:after_tag Idle + * idle noeat + "." class recolor=-1 + "#" id recolor=-1 + "{" attrA + "(" attrB + "/" tag_close recolor=-1 + +:class Class + * after_tag noeat + "a-zA-Z0-9_-" class + +:id Id + * after_tag noeat + "a-zA-Z0-9_-" id + +:attrA Idle + * attrA + "}" after_tag + +:attrB Idle + * attrB + ")" after_tag + +:tag_close Tag + * idle noeat + +:html_comment Comment + * html_comment + "\n" line_start + +:ruby_call Idle + * line_start call=ruby.ruby(haml) + +:maybe_esc_ruby_call Constant + * idle_no_ruby + "=" esc_ruby_call recolor=-2 + +:esc_ruby_call Idle + * line_start call=ruby.ruby(haml) + "=" esc_ruby_call2 + +:esc_ruby_call2 Idle + * line_start call=ruby.ruby(haml) + +:maybe_subst Constant + * idle_no_ruby + "{" subst recolor=-2 + +:subst Escape + * subst + "}" idle_no_ruby + +:maybe_subst_escape Constant + * idle_no_ruby + +:filter Filter + * idle + "a-zA-Z0-9_" filter diff --git a/.joe/syntax/haskell.jsf b/.joe/syntax/haskell.jsf @@ -0,0 +1,435 @@ +# JOE syntax highlight file for Haskell + +# Define colors +# +# bold inverse blink dim underline italic +# white cyan magenta blue yellow green red black +# bg_white bg_cyan bg_magenta bg_blue bg_yellow bg_green bg_red bg_black + +# not too colorfull to not distract user +=Idle +=Special bold +=ConId bold yellow +=ModId +=VarId +=VarSym +=ReservedId bold +=Comment green +=Pragma bold green +=Error bg_red black +=FloatNumber bold cyan +=DecNumber bold cyan +=HexNumber cyan +=OctNumber cyan +=CharLit cyan +=StringLit cyan +=StringGap bg_cyan black +=EscapedChar bold cyan + +:reset Idle + * reset + "a-z_" varid buffer recolor=-1 + "A-Z" conormodid mark recolor=-1 + ":" consym buffer recolor=-1 + "!#$%&*+./<=>?@\\^|~" varsym buffer recolor=-1 + "-" dashorvarsym mark buffer recolor=-1 + "(),;[]`}" special recolor=-1 + "{" specialorncomment recolor=-1 + "0-9" integerstart mark noeat + "\'" charlit recolor=-1 + "\"" strlit recolor=-1 + +:special Special + * reset noeat + +:specialorncomment Special + * reset noeat + "-" ncommentstart recolor=-2 + +:ncommentstart Comment + * reset noeat call=.comment() + "#" pragma recolor=-3 + +.subr comment + +:ncomment Comment + * ncomment + "-" ncommentmaybeend + "{" ncommentmaybenest + +:ncommentmaybeend Comment + * ncomment noeat + "}" ncomment return + +:ncommentmaybenest Comment + * ncomment noeat + "-" ncomment call=.comment() + +.end + +:pragma Pragma + * pragma + "#" pragmamaybeend1 + "-" pragmamaybebadend + +:pragmamaybeend1 Pragma + * pragma noeat + "-" pragmamaybeend2 + +:pragmamaybeend2 Pragma + * pragma noeat + "}" reset + +:pragmamaybebadend Error + * pragma noeat + "}" errorstate recolor=-2 + +:errorstate Error + * reset + +:conormodid ConId + * reset noeat + "." probablymodid recolor=-1 + "a-zA-Z0-9'_" conormodid + +# give it color varid to color the dot in case it is *not* a modid in the +# right color +:probablymodid VarSym + * ismodid noeat recolormark recolor=-1 + " \t\r\n\v\f" reset + +:ismodid ModId + * reset noeat + +:varid VarId + * reset noeat strings + "case" reservedid + "class" reservedid + "data" reservedid + "default" reservedid + "deriving" reservedid + "do" reservedid + "else" reservedid + "if" reservedid + "import" reservedid + "infix" reservedid + "infixl" reservedid + "infixr" reservedid + "instance" reservedid + "let" reservedid + "module" reservedid + "newtype" reservedid + "of" reservedid + "then" reservedid + "type" reservedid + "where" reservedid + "_" reservedid +done + "a-zA-Z0-9_'" varid + +:reservedid ReservedId + * reset noeat + + +:consym ConId + * reset noeat strings + ":" reservedid + "::" reservedid +done + "-!#$%&*+./<=>?@\\^|~:" consym + +:varsym VarSym + * reset noeat strings + ".." reservedid + "=" reservedid + "\\" reservedid + "|" reservedid + "<-" reservedid + "->" reservedid + "@" reservedid + "~" reservedid +done + "-!#$%&*+./<=>?@\\^|~:" varsym + +:dashorvarsym VarSym + * varsym noeat + "-" dashdash hold + +:dashdash VarSym + * linecomment recolormark noeat + "!#$%&*+./<=>?@\\^|~:" varsym + "-" dashdash + +:linecomment Comment + * linecomment + "\n" reset + +:integerstart DecNumber + * decnum + "0" intdispatch + +:decnum DecNumber + * reset noeat + "." floatmaybemant + "e" floatexponentstart + "0-9" decnum + +:intdispatch DecNumber + * decnum noeat + "oO" octstart + "xX" hexstart + +# Catch "0o " which is "integer 0" "symbol o" "whitespace" +# and "0oo" which is "integer 0" "symbol oo" +:octstart OctNumber + * varid noeat recolor=-2 + "0-7" octint recolor=-3 + +# Catch "0o08" which is "(octal) integer 0" "integer 8" +:octint OctNumber + * reset noeat + "0-7" octint + +:hexstart HexNumber + * varid noeat recolor=-2 + "0-9a-fA-F" hexint recolor=-3 + +:hexint HexNumber + * reset noeat + "0-9a-fA-F" hexint + +# default jumps to varsym because the dot that sent us here is the first +# char of a symbol. +:floatmaybemant FloatNumber + * varsym noeat recolor=-2 + "0-9" floatmantissa recolormark + +:floatmantissa FloatNumber + * reset noeat + "0-9" floatmantissa + "eE" floatexponentstart + +# after an 'e' +# default jump is for identifiers starting with e directly pasted to a +# number +# recolormark is needed in the case we got here from decnum +:floatexponentstart FloatNumber + * varid noeat recolor=-2 + "+-" floatexponentstart2 + "0-9" floatexponent recolormark + +# in case of non-digit: +# the e is a one-char-identifier, the + or - is the start of a symbol +:floatexponentstart2 FloatNumber + * unrollfloat noeat recolor=-3 + "0-9" floatexponent recolormark + +:floatexponent FloatNumber + * reset noeat + "0-9" floatexponent + +# the error is just for testing... +:unrollfloat VarId + * varsym noeat recolor=-2 + +:charlit CharLit + * charlitend + "\n" errorstate noeat recolor=-2 + "\'" errorstate noeat recolor=-2 + "\\" escape_charlit mark recolor=-1 + +:charlitend CharLit + * charliterror noeat + "\'" reset + +:escape_charlit EscapedChar + * charliterror recolor=-2 + "0-9" escdecchar + "o" escoctcharstart + "x" eschexcharstart + "abfnrtv\\\"\'" charlitend + "A-Z" escasciichar buffer + "^" escasciictrlchar + +:escoctcharstart EscapedChar + * charliterror recolor=-3 noeat + "0-7" escoctchar + +:escoctchar EscapedChar + * charlitend noeat + "0-7" escoctchar + +:escdecchar EscapedChar + * charlitend noeat + "0-9" escdecchar + +:eschexcharstart EscapedChar + * charliterror recolor=-3 noeat + "0-9a-fA-F" eschexchar + +:eschexchar EscapedChar + * charlitend noeat + "0-9a-fA-F" eschexchar + +:escascnotfoundchar EscapedChar + * charliterror recolormark noeat + "A-Z" escasciichar + +:escasciichar EscapedChar + * charliterror recolormark + "A-Z'" escascnotfoundchar noeat strings + "NUL" asciidonechar + "STX" asciidonechar + "ETX" asciidonechar + "EOT" asciidonechar + "ENQ" asciidonechar + "ACK" asciidonechar + "BEL" asciidonechar + "BS" asciidonechar + "HT" asciidonechar + "LF" asciidonechar + "VT" asciidonechar + "FF" asciidonechar + "CR" asciidonechar + "SO" asciiSOchar + "SI" asciidonechar + "DLE" asciidonechar + "DC1" asciidonechar + "DC2" asciidonechar + "DC3" asciidonechar + "DC4" asciidonechar + "NAK" asciidonechar + "SYN" asciidonechar + "ETB" asciidonechar + "CAN" asciidonechar + "EM" asciidonechar + "SUB" asciidonechar + "ESC" asciidonechar + "FS" asciidonechar + "GS" asciidonechar + "RS" asciidonechar + "US" asciidonechar + "SP" asciidonechar + "DEL" asciidonechar +done + +:asciiSOchar EscapedChar + * charliterror recolormark + "'" charlitend noeat + "H" charlitend + +:escasciictrlchar EscapedChar + * charliterror noeat recolor=-3 + "A-Z@[\\]^_" charlitend + +:asciidonechar EscapedChar + * charlitend noeat + +:charliterror Error + * charliterror + "\'" charlitend noeat + +# now for string literals + +:strlit StringLit + * strlit + "\"" reset + "\n" errorstate noeat recolor=-2 + "\\" escape_strlit mark recolor=-1 + +:escape_strlit EscapedChar + * strliterror recolor=-2 + "0-9" escdecstr + "o" escoctstrstart + "x" eschexstrstart + "abfnrtv\\\"\'&" strlit + "A-Z" escasciistr buffer + "^" escasciictrlstr + " \t\n\r\v" stringgap recolor=-2 + +:escoctstrstart EscapedChar + * strliterror recolor=-3 noeat + "0-7" escoctstr + +:escoctstr EscapedChar + * strlit noeat + "0-7" escoctstr + +:escdecstr EscapedChar + * strlit noeat + "0-9" escdecstr + +:eschexstrstart EscapedChar + * strliterror recolor=-3 noeat + "0-9a-fA-F" eschexstr + +:eschexstr EscapedChar + * strlit noeat + "0-9a-fA-F" eschexstr + +:escascnotfoundstr EscapedChar + * strliterror recolormark noeat + "A-Z" escasciistr + +:escasciistr EscapedChar + * strliterror noeat recolormark + "A-Z\"" escascnotfoundstr noeat strings + "NUL" asciidonestr + "STX" asciidonestr + "ETX" asciidonestr + "EOT" asciidonestr + "ENQ" asciidonestr + "ACK" asciidonestr + "BEL" asciidonestr + "BS" asciidonestr + "HT" asciidonestr + "LF" asciidonestr + "VT" asciidonestr + "FF" asciidonestr + "CR" asciidonestr + "SO" asciiSOstr + "SI" asciidonestr + "DLE" asciidonestr + "DC1" asciidonestr + "DC2" asciidonestr + "DC3" asciidonestr + "DC4" asciidonestr + "NAK" asciidonestr + "SYN" asciidonestr + "ETB" asciidonestr + "CAN" asciidonestr + "EM" asciidonestr + "SUB" asciidonestr + "ESC" asciidonestr + "FS" asciidonestr + "GS" asciidonestr + "RS" asciidonestr + "US" asciidonestr + "SP" asciidonestr + "DEL" asciidonestr +done + +:asciiSOstr EscapedChar + * strlit noeat + "H" strlit + +:escasciictrlstr EscapedChar + * strliterror noeat recolor=-3 + "A-Z@[\\]^_" strlit + +:asciidonestr EscapedChar + * strlit noeat + +:stringgap StringGap + * strgaperror recolor=-1 + "\\" strlit + " \n\r\t\v" stringgap + +:strgaperror Error + * strgaperror + "\\" strlit + "\"" reset + +:strliterror Error + * strlit noeat + diff --git a/.joe/syntax/haskell.jsf.in b/.joe/syntax/haskell.jsf.in @@ -0,0 +1,435 @@ +# JOE syntax highlight file for Haskell + +# Define colors +# +# bold inverse blink dim underline italic +# white cyan magenta blue yellow green red black +# bg_white bg_cyan bg_magenta bg_blue bg_yellow bg_green bg_red bg_black + +# not too colorfull to not distract user +=Idle +=Special bold +=ConId bold yellow +=ModId +=VarId +=VarSym +=ReservedId bold +=Comment green +=Pragma bold green +=Error bg_red black +=FloatNumber bold cyan +=DecNumber bold cyan +=HexNumber cyan +=OctNumber cyan +=CharLit cyan +=StringLit cyan +=StringGap bg_cyan black +=EscapedChar bold cyan + +:reset Idle + * reset + "a-z_" varid buffer recolor=-1 + "A-Z" conormodid mark recolor=-1 + ":" consym buffer recolor=-1 + "!#$%&*+./<=>?@\\^|~" varsym buffer recolor=-1 + "-" dashorvarsym mark buffer recolor=-1 + "(),;[]`}" special recolor=-1 + "{" specialorncomment recolor=-1 + "0-9" integerstart mark noeat + "\'" charlit recolor=-1 + "\"" strlit recolor=-1 + +:special Special + * reset noeat + +:specialorncomment Special + * reset noeat + "-" ncommentstart recolor=-2 + +:ncommentstart Comment + * reset noeat call=.comment() + "#" pragma recolor=-3 + +.subr comment + +:ncomment Comment + * ncomment + "-" ncommentmaybeend + "{" ncommentmaybenest + +:ncommentmaybeend Comment + * ncomment noeat + "}" ncomment return + +:ncommentmaybenest Comment + * ncomment noeat + "-" ncomment call=.comment() + +.end + +:pragma Pragma + * pragma + "#" pragmamaybeend1 + "-" pragmamaybebadend + +:pragmamaybeend1 Pragma + * pragma noeat + "-" pragmamaybeend2 + +:pragmamaybeend2 Pragma + * pragma noeat + "}" reset + +:pragmamaybebadend Error + * pragma noeat + "}" errorstate recolor=-2 + +:errorstate Error + * reset + +:conormodid ConId + * reset noeat + "." probablymodid recolor=-1 + "a-zA-Z0-9'_" conormodid + +# give it color varid to color the dot in case it is *not* a modid in the +# right color +:probablymodid VarSym + * ismodid noeat recolormark recolor=-1 + " \t\r\n\v\f" reset + +:ismodid ModId + * reset noeat + +:varid VarId + * reset noeat strings + "case" reservedid + "class" reservedid + "data" reservedid + "default" reservedid + "deriving" reservedid + "do" reservedid + "else" reservedid + "if" reservedid + "import" reservedid + "infix" reservedid + "infixl" reservedid + "infixr" reservedid + "instance" reservedid + "let" reservedid + "module" reservedid + "newtype" reservedid + "of" reservedid + "then" reservedid + "type" reservedid + "where" reservedid + "_" reservedid +done + "a-zA-Z0-9_'" varid + +:reservedid ReservedId + * reset noeat + + +:consym ConId + * reset noeat strings + ":" reservedid + "::" reservedid +done + "-!#$%&*+./<=>?@\\^|~:" consym + +:varsym VarSym + * reset noeat strings + ".." reservedid + "=" reservedid + "\\" reservedid + "|" reservedid + "<-" reservedid + "->" reservedid + "@" reservedid + "~" reservedid +done + "-!#$%&*+./<=>?@\\^|~:" varsym + +:dashorvarsym VarSym + * varsym noeat + "-" dashdash hold + +:dashdash VarSym + * linecomment recolormark noeat + "!#$%&*+./<=>?@\\^|~:" varsym + "-" dashdash + +:linecomment Comment + * linecomment + "\n" reset + +:integerstart DecNumber + * decnum + "0" intdispatch + +:decnum DecNumber + * reset noeat + "." floatmaybemant + "e" floatexponentstart + "0-9" decnum + +:intdispatch DecNumber + * decnum noeat + "oO" octstart + "xX" hexstart + +# Catch "0o " which is "integer 0" "symbol o" "whitespace" +# and "0oo" which is "integer 0" "symbol oo" +:octstart OctNumber + * varid noeat recolor=-2 + "0-7" octint recolor=-3 + +# Catch "0o08" which is "(octal) integer 0" "integer 8" +:octint OctNumber + * reset noeat + "0-7" octint + +:hexstart HexNumber + * varid noeat recolor=-2 + "0-9a-fA-F" hexint recolor=-3 + +:hexint HexNumber + * reset noeat + "0-9a-fA-F" hexint + +# default jumps to varsym because the dot that sent us here is the first +# char of a symbol. +:floatmaybemant FloatNumber + * varsym noeat recolor=-2 + "0-9" floatmantissa recolormark + +:floatmantissa FloatNumber + * reset noeat + "0-9" floatmantissa + "eE" floatexponentstart + +# after an 'e' +# default jump is for identifiers starting with e directly pasted to a +# number +# recolormark is needed in the case we got here from decnum +:floatexponentstart FloatNumber + * varid noeat recolor=-2 + "+-" floatexponentstart2 + "0-9" floatexponent recolormark + +# in case of non-digit: +# the e is a one-char-identifier, the + or - is the start of a symbol +:floatexponentstart2 FloatNumber + * unrollfloat noeat recolor=-3 + "0-9" floatexponent recolormark + +:floatexponent FloatNumber + * reset noeat + "0-9" floatexponent + +# the error is just for testing... +:unrollfloat VarId + * varsym noeat recolor=-2 + +:charlit CharLit + * charlitend + "\n" errorstate noeat recolor=-2 + "\'" errorstate noeat recolor=-2 + "\\" escape_charlit mark recolor=-1 + +:charlitend CharLit + * charliterror noeat + "\'" reset + +:escape_charlit EscapedChar + * charliterror recolor=-2 + "0-9" escdecchar + "o" escoctcharstart + "x" eschexcharstart + "abfnrtv\\\"\'" charlitend + "A-Z" escasciichar buffer + "^" escasciictrlchar + +:escoctcharstart EscapedChar + * charliterror recolor=-3 noeat + "0-7" escoctchar + +:escoctchar EscapedChar + * charlitend noeat + "0-7" escoctchar + +:escdecchar EscapedChar + * charlitend noeat + "0-9" escdecchar + +:eschexcharstart EscapedChar + * charliterror recolor=-3 noeat + "0-9a-fA-F" eschexchar + +:eschexchar EscapedChar + * charlitend noeat + "0-9a-fA-F" eschexchar + +:escascnotfoundchar EscapedChar + * charliterror recolormark noeat + "A-Z" escasciichar + +:escasciichar EscapedChar + * charliterror recolormark + "A-Z'" escascnotfoundchar noeat strings + "NUL" asciidonechar + "STX" asciidonechar + "ETX" asciidonechar + "EOT" asciidonechar + "ENQ" asciidonechar + "ACK" asciidonechar + "BEL" asciidonechar + "BS" asciidonechar + "HT" asciidonechar + "LF" asciidonechar + "VT" asciidonechar + "FF" asciidonechar + "CR" asciidonechar + "SO" asciiSOchar + "SI" asciidonechar + "DLE" asciidonechar + "DC1" asciidonechar + "DC2" asciidonechar + "DC3" asciidonechar + "DC4" asciidonechar + "NAK" asciidonechar + "SYN" asciidonechar + "ETB" asciidonechar + "CAN" asciidonechar + "EM" asciidonechar + "SUB" asciidonechar + "ESC" asciidonechar + "FS" asciidonechar + "GS" asciidonechar + "RS" asciidonechar + "US" asciidonechar + "SP" asciidonechar + "DEL" asciidonechar +done + +:asciiSOchar EscapedChar + * charliterror recolormark + "'" charlitend noeat + "H" charlitend + +:escasciictrlchar EscapedChar + * charliterror noeat recolor=-3 + "A-Z@[\\]^_" charlitend + +:asciidonechar EscapedChar + * charlitend noeat + +:charliterror Error + * charliterror + "\'" charlitend noeat + +# now for string literals + +:strlit StringLit + * strlit + "\"" reset + "\n" errorstate noeat recolor=-2 + "\\" escape_strlit mark recolor=-1 + +:escape_strlit EscapedChar + * strliterror recolor=-2 + "0-9" escdecstr + "o" escoctstrstart + "x" eschexstrstart + "abfnrtv\\\"\'&" strlit + "A-Z" escasciistr buffer + "^" escasciictrlstr + " \t\n\r\v" stringgap recolor=-2 + +:escoctstrstart EscapedChar + * strliterror recolor=-3 noeat + "0-7" escoctstr + +:escoctstr EscapedChar + * strlit noeat + "0-7" escoctstr + +:escdecstr EscapedChar + * strlit noeat + "0-9" escdecstr + +:eschexstrstart EscapedChar + * strliterror recolor=-3 noeat + "0-9a-fA-F" eschexstr + +:eschexstr EscapedChar + * strlit noeat + "0-9a-fA-F" eschexstr + +:escascnotfoundstr EscapedChar + * strliterror recolormark noeat + "A-Z" escasciistr + +:escasciistr EscapedChar + * strliterror noeat recolormark + "A-Z\"" escascnotfoundstr noeat strings + "NUL" asciidonestr + "STX" asciidonestr + "ETX" asciidonestr + "EOT" asciidonestr + "ENQ" asciidonestr + "ACK" asciidonestr + "BEL" asciidonestr + "BS" asciidonestr + "HT" asciidonestr + "LF" asciidonestr + "VT" asciidonestr + "FF" asciidonestr + "CR" asciidonestr + "SO" asciiSOstr + "SI" asciidonestr + "DLE" asciidonestr + "DC1" asciidonestr + "DC2" asciidonestr + "DC3" asciidonestr + "DC4" asciidonestr + "NAK" asciidonestr + "SYN" asciidonestr + "ETB" asciidonestr + "CAN" asciidonestr + "EM" asciidonestr + "SUB" asciidonestr + "ESC" asciidonestr + "FS" asciidonestr + "GS" asciidonestr + "RS" asciidonestr + "US" asciidonestr + "SP" asciidonestr + "DEL" asciidonestr +done + +:asciiSOstr EscapedChar + * strlit noeat + "H" strlit + +:escasciictrlstr EscapedChar + * strliterror noeat recolor=-3 + "A-Z@[\\]^_" strlit + +:asciidonestr EscapedChar + * strlit noeat + +:stringgap StringGap + * strgaperror recolor=-1 + "\\" strlit + " \n\r\t\v" stringgap + +:strgaperror Error + * strgaperror + "\\" strlit + "\"" reset + +:strliterror Error + * strlit noeat + diff --git a/.joe/syntax/html.jsf b/.joe/syntax/html.jsf @@ -0,0 +1,1345 @@ +# JOE syntax highlight file for HTML + +# +# Note: +# * <script>..</script> and <style>..</style> +# blocks are assumed to be html-encoded, not raw. +# To make them raw, you should enclose them within <!-- -->. +# +# * "#" and "+" are lited as mistakes in unquoted tag values, +# although there exist (broken) programs that generate them. +# +# * Recognizes html-entities and lites mistakes in them. +# +# * SGML comments are parsed in the SGML way. This means there +# must be an even amount of "--" markers within the tag. +# +# * Recognizes 1018 different named entities. The list has been +# copied from some version of Lynx. Most browsers don't recognize +# that many. +# +# Todo: +# * tag name recognition +# * tag parameter name recognition +# * inline stylesheet and javascript highlighting +# (hard to do fool-proof, because the value may be entity-encoded). +# + +# Colours +=Background +=Text +=TagEdge green +=TagName green #cyan +=TagParam #green +=TagDelim #bold green +=TagValue cyan +=TagEntity bold blue +=SGMLtag magenta +=XML_pi yellow +=Entity bold blue +=Mystery bold yellow bg_red inverse + +# Call HTML highlighter subroutine + +:first Background + * call_failed noeat call=.html() + +:call_failed Mystery + * call_failed + +# +# HTML highlighter as a subroutine +# + +.subr html + +:reset Background + * idle noeat +.ifdef mason + "%" reset call=perl.perl(mason_line) +.endif + +# Rules +:idle Background + * idle + "\n" reset + "<" tag_begin recolor=-1 + "&" idle call=.entity() recolor=-1 +:mistake_idle Mystery + * idle noeat + +# Tags +:tag_begin TagEdge + * tag_name_first buffer noeat recolor=-1 + "/" tag_name_first buffer +.ifdef mason + "&" rtn_php call=perl.perl(mason_block) +.endif + "!" sgml_tag recolor=-2 +.ifdef php + "?%" rtn_php call=php.php() +.else + "?" xml_pi recolor=-2 +.endif +.ifdef erb + "%" maybe_erb_eq +.endif + +# this state allows php and perl to recolor the ?> %> or &> properly. +:rtn_php TagEdge + * idle noeat + +:maybe_erb_eq TagEdge + * rtn_php noeat call=ruby.ruby(erb) + "=" rtn_php call=ruby.ruby(erb) + +:tag_name_first Mystery + * tag_idle noeat + "-A-Za-z0-9._:" tag_name recolor=-1 + +:tag_name TagName + * tag_idle noeat strings + "script" stag_enter_idle + "style" ytag_enter_idle +done + "-A-Za-z0-9._:" tag_name + +:tag_idle Background + * mistake_tag recolor=-1 + "<" tag_maybe_php recolor=-1 + " \t \n" tag_idle + "/" tag_end recolor=-1 + ">" tag_end noeat recolor=-1 + "-A-Za-z0-9._:" tag_param noeat recolor=-1 + +:tag_maybe_php Mystery + * tag_idle + "?" tag_call_php recolor=-2 + +:tag_call_php TagEdge + * rtn_php_tag noeat call=php.php() + +:rtn_php_tag TagEdge + * tag_idle noeat + +:tag_param TagParam + * tag_idle noeat recolor=-1 + "-A-Za-z0-9._:" tag_param + "=" tag_delim recolor=-1 + +:tag_delim TagDelim + * mistake_tag noeat recolor=-1 + "\"" tag_idle call=.tag_value_quoted(dquote) recolor=-1 + "'" tag_idle call=.tag_value_quoted(squote) recolor=-1 + "-A-Za-z0-9._:" tag_value noeat recolor=-1 + +:tag_value TagValue + * tag_idle noeat recolor=-1 + "-A-Za-z0-9._:" tag_value + +:tag_end TagEdge + * idle + +:mistake_tag Mystery + * tag_idle noeat + +# We're about to entry a script... + +:stag_enter_idle TagName + * stag_idle noeat + +:stag_idle Background + * smistake_tag recolor=-1 + " \t \n" stag_idle + "/" stag_end recolor=-1 + ">" stag_end noeat recolor=-1 + "-A-Za-z0-9._:" stag_param noeat recolor=-1 + +:stag_param TagParam + * stag_idle noeat recolor=-1 + "-A-Za-z0-9._:" stag_param + "=" stag_delim recolor=-1 + +:stag_delim TagDelim + * smistake_tag noeat recolor=-1 + "\"" stag_idle call=.tag_value_quoted(dquote) recolor=-1 + "'" stag_idle call=.tag_value_quoted(squote) recolor=-1 + "-A-Za-z0-9._:" stag_value noeat recolor=-1 + +:stag_value TagValue + * stag_idle noeat recolor=-1 + "-A-Za-z0-9._:" stag_value + +:stag_end TagEdge +.ifdef php + * tag_begin call=js.js(php) +.else + * tag_begin call=js.js(html) +.endif + +:stag_done TagEdge + * tag_name_first buffer noeat + +:smistake_tag Mystery + * stag_idle noeat + +# We're about to entry a script... + +:ytag_enter_idle TagName + * ytag_idle noeat + +:ytag_idle Background + * ymistake_tag recolor=-1 + " \t \n" ytag_idle + "/" ytag_end recolor=-1 + ">" ytag_end noeat recolor=-1 + "-A-Za-z0-9._:" ytag_param noeat recolor=-1 + +:ytag_param TagParam + * ytag_idle noeat recolor=-1 + "-A-Za-z0-9._:" ytag_param + "=" ytag_delim recolor=-1 + +:ytag_delim TagDelim + * ymistake_tag noeat recolor=-1 + "\"" ytag_idle call=.tag_value_quoted(dquote) recolor=-1 + "'" ytag_idle call=.tag_value_quoted(squote) recolor=-1 + "-A-Za-z0-9._:" ytag_value noeat recolor=-1 + +:ytag_value TagValue + * ytag_idle noeat recolor=-1 + "-A-Za-z0-9._:" ytag_value + +:ytag_end TagEdge +.ifdef php + * tag_begin call=css.css(php) +.else + * tag_begin call=css.css() +.endif + +:ytag_done TagEdge + * tag_name_first buffer noeat + +:ymistake_tag Mystery + * ytag_idle noeat + +# SGML and comments +:sgml_tag SGMLtag + * sgml_tag + "-" sgml_tag_maybe_comment + ">" sgml_end noeat recolor=-1 +:sgml_tag_maybe_comment SGMLtag + * sgml_tag + "-" sgml_tag_comment +:sgml_tag_comment SGMLtag + * sgml_tag_comment + "-" sgml_tag_maybe_comment_end +:sgml_tag_maybe_comment_end SGMLtag + * sgml_tag_comment + "-" sgml_tag +:sgml_end SGMLtag + * idle + +# XML processing info +:xml_pi XML_pi + * xml_pi + "?" xml_pi_maybe_end +:xml_pi_maybe_end XML_pi + * xml_pi + "?" xml_pi_maybe_end + ">" xml_pi_end noeat recolor=-1 +:xml_pi_end XML_pi + * idle + +.end + +# +# Quoted string tag values +# + +.subr tag_value_quoted + +:tag_value_quoted TagValue + * tag_value_quoted +.ifdef dquote + "\"" tag_value_quoted return +.endif +.ifdef squote + "'" tag_value_quoted return +.endif + "<" tag_value_maybe_php + +:tag_value_maybe_php TagValue + * tag_value_quoted noeat + "?" tag_value_call_php recolor=-2 + +:tag_value_call_php TagEdge + * tag_value_rtn_php noeat call=php.php() + +:tag_value_rtn_php TagEdge + * tag_value_quoted noeat + +# Too many non-html things can be in quotes to do this... +# "&" tag_value_quoted call=.entity() recolor=-1 + +:mistake_tag_value Mystery + * tag_value_quoted noeat + +.end + + +# +# Entity parser +# + +.subr entity + +# Entities within plain content +:entity Entity + * entity_name noeat buffer recolor=-1 + "#" entity_numeric_begin +:entity_numeric_begin Entity + * entity_numeric noeat + "x" entity_hex +:entity_numeric Entity + * mistake_idle noeat recolor=-1 + "0-9" entity_numeric + ";" entity_end noeat recolor=-1 +:entity_hex Entity + * mistake_idle noeat recolor=-1 + "0-9a-fA-F" entity_hex + ";" entity_end noeat recolor=-1 +:entity_end Entity + * entity return + +:entity_name Mystery + * mistake_idle noeat recolor=-1 strings + "AElig" entity_ok + "Aacgr" entity_ok + "Aacute" entity_ok + "Abreve" entity_ok + "Acirc" entity_ok + "Acy" entity_ok + "Agr" entity_ok + "Agrave" entity_ok + "Alpha" entity_ok + "Amacr" entity_ok + "Aogon" entity_ok + "Aring" entity_ok + "Atilde" entity_ok + "Auml" entity_ok + "Barwed" entity_ok + "Bcy" entity_ok + "Beta" entity_ok + "Bgr" entity_ok + "CHcy" entity_ok + "Cacute" entity_ok + "Cap" entity_ok + "Ccaron" entity_ok + "Ccedil" entity_ok + "Ccirc" entity_ok + "Cdot" entity_ok + "Chi" entity_ok + "Cup" entity_ok + "DJcy" entity_ok + "DScy" entity_ok + "DZcy" entity_ok + "Dagger" entity_ok + "Dcaron" entity_ok + "Dcy" entity_ok + "Delta" entity_ok + "Dgr" entity_ok + "Dot" entity_ok + "DotDot" entity_ok + "Dstrok" entity_ok + "EEacgr" entity_ok + "EEgr" entity_ok + "ENG" entity_ok + "ETH" entity_ok + "Eacgr" entity_ok + "Eacute" entity_ok + "Ecaron" entity_ok + "Ecirc" entity_ok + "Ecy" entity_ok + "Edot" entity_ok + "Egr" entity_ok + "Egrave" entity_ok + "Emacr" entity_ok + "Eogon" entity_ok + "Epsilon" entity_ok + "Eta" entity_ok + "Euml" entity_ok + "Fcy" entity_ok + "GJcy" entity_ok + "Gamma" entity_ok + "Gbreve" entity_ok + "Gcedil" entity_ok + "Gcirc" entity_ok + "Gcy" entity_ok + "Gdot" entity_ok + "Gg" entity_ok + "Ggr" entity_ok + "Gt" entity_ok + "HARDcy" entity_ok + "Hcirc" entity_ok + "Hstrok" entity_ok + "IEcy" entity_ok + "IJlig" entity_ok + "IOcy" entity_ok + "Iacgr" entity_ok + "Iacute" entity_ok + "Icirc" entity_ok + "Icy" entity_ok + "Idigr" entity_ok + "Idot" entity_ok + "Igr" entity_ok + "Igrave" entity_ok + "Imacr" entity_ok + "Iogon" entity_ok + "Iota" entity_ok + "Itilde" entity_ok + "Iukcy" entity_ok + "Iuml" entity_ok + "Jcirc" entity_ok + "Jcy" entity_ok + "Jsercy" entity_ok + "Jukcy" entity_ok + "KHcy" entity_ok + "KHgr" entity_ok + "KJcy" entity_ok + "Kappa" entity_ok + "Kcedil" entity_ok + "Kcy" entity_ok + "Kgr" entity_ok + "LJcy" entity_ok + "Lacute" entity_ok + "Lambda" entity_ok + "Larr" entity_ok + "Lcaron" entity_ok + "Lcedil" entity_ok + "Lcy" entity_ok + "Lgr" entity_ok + "Ll" entity_ok + "Lmidot" entity_ok + "Lstrok" entity_ok + "Lt" entity_ok + "Mcy" entity_ok + "Mgr" entity_ok + "Mu" entity_ok + "NJcy" entity_ok + "Nacute" entity_ok + "Ncaron" entity_ok + "Ncedil" entity_ok + "Ncy" entity_ok + "Ngr" entity_ok + "Ntilde" entity_ok + "Nu" entity_ok + "OElig" entity_ok + "OHacgr" entity_ok + "OHgr" entity_ok + "Oacgr" entity_ok + "Oacute" entity_ok + "Ocirc" entity_ok + "Ocy" entity_ok + "Odblac" entity_ok + "Ogr" entity_ok + "Ograve" entity_ok + "Omacr" entity_ok + "Omega" entity_ok + "Omicron" entity_ok + "Oslash" entity_ok + "Otilde" entity_ok + "Ouml" entity_ok + "PHgr" entity_ok + "PSgr" entity_ok + "Pcy" entity_ok + "Pgr" entity_ok + "Phi" entity_ok + "Pi" entity_ok + "Prime" entity_ok + "Psi" entity_ok + "Racute" entity_ok + "Rarr" entity_ok + "Rcaron" entity_ok + "Rcedil" entity_ok + "Rcy" entity_ok + "Rgr" entity_ok + "Rho" entity_ok + "SHCHcy" entity_ok + "SHcy" entity_ok + "SOFTcy" entity_ok + "Sacute" entity_ok + "Scaron" entity_ok + "Scedil" entity_ok + "Scirc" entity_ok + "Scy" entity_ok + "Sgr" entity_ok + "Sigma" entity_ok + "Sub" entity_ok + "Sup" entity_ok + "THORN" entity_ok + "THgr" entity_ok + "TSHcy" entity_ok + "TScy" entity_ok + "Tau" entity_ok + "Tcaron" entity_ok + "Tcedil" entity_ok + "Tcy" entity_ok + "Tgr" entity_ok + "Theta" entity_ok + "Tstrok" entity_ok + "Uacgr" entity_ok + "Uacute" entity_ok + "Ubrcy" entity_ok + "Ubreve" entity_ok + "Ucirc" entity_ok + "Ucy" entity_ok + "Udblac" entity_ok + "Udigr" entity_ok + "Ugr" entity_ok + "Ugrave" entity_ok + "Umacr" entity_ok + "Uogon" entity_ok + "Upsi" entity_ok + "Upsilon" entity_ok + "Uring" entity_ok + "Utilde" entity_ok + "Uuml" entity_ok + "Vcy" entity_ok + "Vdash" entity_ok + "Verbar" entity_ok + "Vvdash" entity_ok + "Wcirc" entity_ok + "Xgr" entity_ok + "Xi" entity_ok + "YAcy" entity_ok + "YIcy" entity_ok + "YUcy" entity_ok + "Yacute" entity_ok + "Ycirc" entity_ok + "Ycy" entity_ok + "Yuml" entity_ok + "ZHcy" entity_ok + "Zacute" entity_ok + "Zcaron" entity_ok + "Zcy" entity_ok + "Zdot" entity_ok + "Zeta" entity_ok + "Zgr" entity_ok + "aacgr" entity_ok + "aacute" entity_ok + "abreve" entity_ok + "acirc" entity_ok + "acute" entity_ok + "acy" entity_ok + "aelig" entity_ok + "agr" entity_ok + "agrave" entity_ok + "alefsym" entity_ok + "aleph" entity_ok + "alpha" entity_ok + "amacr" entity_ok + "amalg" entity_ok + "amp" entity_ok + "and" entity_ok + "ang" entity_ok + "ang90" entity_ok + "angmsd" entity_ok + "angsph" entity_ok + "angst" entity_ok + "aogon" entity_ok + "ap" entity_ok + "ape" entity_ok + "apos" entity_ok + "aring" entity_ok + "ast" entity_ok + "asymp" entity_ok + "atilde" entity_ok + "auml" entity_ok + "b.Delta" entity_ok + "b.Gamma" entity_ok + "b.Lambda" entity_ok + "b.Omega" entity_ok + "b.Phi" entity_ok + "b.Pi" entity_ok + "b.Psi" entity_ok + "b.Sigma" entity_ok + "b.Theta" entity_ok + "b.Upsi" entity_ok + "b.Xi" entity_ok + "b.alpha" entity_ok + "b.beta" entity_ok + "b.chi" entity_ok + "b.delta" entity_ok + "b.epsi" entity_ok + "b.epsis" entity_ok + "b.epsiv" entity_ok + "b.eta" entity_ok + "b.gamma" entity_ok + "b.gammad" entity_ok + "b.iota" entity_ok + "b.kappa" entity_ok + "b.kappav" entity_ok + "b.lambda" entity_ok + "b.mu" entity_ok + "b.nu" entity_ok + "b.omega" entity_ok + "b.phis" entity_ok + "b.phiv" entity_ok + "b.pi" entity_ok + "b.piv" entity_ok + "b.psi" entity_ok + "b.rho" entity_ok + "b.rhov" entity_ok + "b.sigma" entity_ok + "b.sigmav" entity_ok + "b.tau" entity_ok + "b.thetas" entity_ok + "b.thetav" entity_ok + "b.upsi" entity_ok + "b.xi" entity_ok + "b.zeta" entity_ok + "barwed" entity_ok + "bcong" entity_ok + "bcy" entity_ok + "bdquo" entity_ok + "becaus" entity_ok + "bepsi" entity_ok + "bernou" entity_ok + "beta" entity_ok + "beth" entity_ok + "bgr" entity_ok + "blank" entity_ok + "blk12" entity_ok + "blk14" entity_ok + "blk34" entity_ok + "block" entity_ok + "bottom" entity_ok + "bowtie" entity_ok + "boxDL" entity_ok + "boxDR" entity_ok + "boxDl" entity_ok + "boxDr" entity_ok + "boxH" entity_ok + "boxHD" entity_ok + "boxHU" entity_ok + "boxHd" entity_ok + "boxHu" entity_ok + "boxUL" entity_ok + "boxUR" entity_ok + "boxUl" entity_ok + "boxUr" entity_ok + "boxV" entity_ok + "boxVH" entity_ok + "boxVL" entity_ok + "boxVR" entity_ok + "boxVh" entity_ok + "boxVl" entity_ok + "boxVr" entity_ok + "boxdL" entity_ok + "boxdR" entity_ok + "boxdl" entity_ok + "boxdr" entity_ok + "boxh" entity_ok + "boxhD" entity_ok + "boxhU" entity_ok + "boxhd" entity_ok + "boxhu" entity_ok + "boxuL" entity_ok + "boxuR" entity_ok + "boxul" entity_ok + "boxur" entity_ok + "boxv" entity_ok + "boxvH" entity_ok + "boxvL" entity_ok + "boxvR" entity_ok + "boxvh" entity_ok + "boxvl" entity_ok + "boxvr" entity_ok + "bprime" entity_ok + "breve" entity_ok + "brkbar" entity_ok + "brvbar" entity_ok + "bsim" entity_ok + "bsime" entity_ok + "bsol" entity_ok + "bull" entity_ok + "bump" entity_ok + "bumpe" entity_ok + "cacute" entity_ok + "cap" entity_ok + "caret" entity_ok + "caron" entity_ok + "ccaron" entity_ok + "ccedil" entity_ok + "ccirc" entity_ok + "cdot" entity_ok + "cedil" entity_ok + "cent" entity_ok + "chcy" entity_ok + "check" entity_ok + "chi" entity_ok + "cir" entity_ok + "circ" entity_ok + "cire" entity_ok + "clubs" entity_ok + "colon" entity_ok + "colone" entity_ok + "comma" entity_ok + "commat" entity_ok + "comp" entity_ok + "compfn" entity_ok + "cong" entity_ok + "conint" entity_ok + "coprod" entity_ok + "copy" entity_ok + "copysr" entity_ok + "crarr" entity_ok + "cross" entity_ok + "cuepr" entity_ok + "cuesc" entity_ok + "cularr" entity_ok + "cup" entity_ok + "cupre" entity_ok + "curarr" entity_ok + "curren" entity_ok + "cuvee" entity_ok + "cuwed" entity_ok + "dArr" entity_ok + "dagger" entity_ok + "daleth" entity_ok + "darr" entity_ok + "darr2" entity_ok + "dash" entity_ok + "dashv" entity_ok + "dblac" entity_ok + "dcaron" entity_ok + "dcy" entity_ok + "deg" entity_ok + "delta" entity_ok + "dgr" entity_ok + "dharl" entity_ok + "dharr" entity_ok + "diam" entity_ok + "diams" entity_ok + "die" entity_ok + "divide" entity_ok + "divonx" entity_ok + "djcy" entity_ok + "dlarr" entity_ok + "dlcorn" entity_ok + "dlcrop" entity_ok + "dollar" entity_ok + "dot" entity_ok + "drarr" entity_ok + "drcorn" entity_ok + "drcrop" entity_ok + "dscy" entity_ok + "dstrok" entity_ok + "dtri" entity_ok + "dtrif" entity_ok + "dzcy" entity_ok + "eDot" entity_ok + "eacgr" entity_ok + "eacute" entity_ok + "ecaron" entity_ok + "ecir" entity_ok + "ecirc" entity_ok + "ecolon" entity_ok + "ecy" entity_ok + "edot" entity_ok + "eeacgr" entity_ok + "eegr" entity_ok + "efDot" entity_ok + "egr" entity_ok + "egrave" entity_ok + "egs" entity_ok + "ell" entity_ok + "els" entity_ok + "emacr" entity_ok + "emdash" entity_ok + "empty" entity_ok + "emsp" entity_ok + "emsp13" entity_ok + "emsp14" entity_ok + "endash" entity_ok + "eng" entity_ok + "ensp" entity_ok + "eogon" entity_ok + "epsi" entity_ok + "epsilon" entity_ok + "epsis" entity_ok + "epsiv" entity_ok + "equals" entity_ok + "equiv" entity_ok + "erDot" entity_ok + "esdot" entity_ok + "eta" entity_ok + "eth" entity_ok + "euml" entity_ok + "euro" entity_ok + "excl" entity_ok + "exist" entity_ok + "fcy" entity_ok + "female" entity_ok + "ffilig" entity_ok + "fflig" entity_ok + "ffllig" entity_ok + "filig" entity_ok + "fjlig" entity_ok + "flat" entity_ok + "fllig" entity_ok + "fnof" entity_ok + "forall" entity_ok + "fork" entity_ok + "frac12" entity_ok + "frac13" entity_ok + "frac14" entity_ok + "frac15" entity_ok + "frac16" entity_ok + "frac18" entity_ok + "frac23" entity_ok + "frac25" entity_ok + "frac34" entity_ok + "frac35" entity_ok + "frac38" entity_ok + "frac45" entity_ok + "frac56" entity_ok + "frac58" entity_ok + "frac78" entity_ok + "frasl" entity_ok + "frown" entity_ok + "gE" entity_ok + "gEl" entity_ok + "gacute" entity_ok + "gamma" entity_ok + "gammad" entity_ok + "gap" entity_ok + "gbreve" entity_ok + "gcedil" entity_ok + "gcirc" entity_ok + "gcy" entity_ok + "gdot" entity_ok + "ge" entity_ok + "gel" entity_ok + "ges" entity_ok + "ggr" entity_ok + "gimel" entity_ok + "gjcy" entity_ok + "gl" entity_ok + "gnE" entity_ok + "gnap" entity_ok + "gne" entity_ok + "gnsim" entity_ok + "grave" entity_ok + "gsdot" entity_ok + "gsim" entity_ok + "gt" entity_ok + "gvnE" entity_ok + "hArr" entity_ok + "hairsp" entity_ok + "half" entity_ok + "hamilt" entity_ok + "hardcy" entity_ok + "harr" entity_ok + "harrw" entity_ok + "hcirc" entity_ok + "hearts" entity_ok + "hellip" entity_ok + "hibar" entity_ok + "horbar" entity_ok + "hstrok" entity_ok + "hybull" entity_ok + "hyphen" entity_ok + "iacgr" entity_ok + "iacute" entity_ok + "icirc" entity_ok + "icy" entity_ok + "idiagr" entity_ok + "idigr" entity_ok + "iecy" entity_ok + "iexcl" entity_ok + "iff" entity_ok + "igr" entity_ok + "igrave" entity_ok + "ijlig" entity_ok + "imacr" entity_ok + "image" entity_ok + "incare" entity_ok + "infin" entity_ok + "inodot" entity_ok + "int" entity_ok + "intcal" entity_ok + "iocy" entity_ok + "iogon" entity_ok + "iota" entity_ok + "iquest" entity_ok + "isin" entity_ok + "itilde" entity_ok + "iukcy" entity_ok + "iuml" entity_ok + "jcirc" entity_ok + "jcy" entity_ok + "jnodot" entity_ok + "jsercy" entity_ok + "jukcy" entity_ok + "kappa" entity_ok + "kappav" entity_ok + "kcedil" entity_ok + "kcy" entity_ok + "kgr" entity_ok + "kgreen" entity_ok + "khcy" entity_ok + "khgr" entity_ok + "kjcy" entity_ok + "lAarr" entity_ok + "lArr" entity_ok + "lE" entity_ok + "lEg" entity_ok + "lacute" entity_ok + "lagran" entity_ok + "lambda" entity_ok + "lang" entity_ok + "lap" entity_ok + "laquo" entity_ok + "larr" entity_ok + "larr2" entity_ok + "larrhk" entity_ok + "larrlp" entity_ok + "larrtl" entity_ok + "lcaron" entity_ok + "lcedil" entity_ok + "lceil" entity_ok + "lcub" entity_ok + "lcy" entity_ok + "ldot" entity_ok + "ldquo" entity_ok + "ldquor" entity_ok + "le" entity_ok + "leg" entity_ok + "les" entity_ok + "lfloor" entity_ok + "lg" entity_ok + "lgr" entity_ok + "lhard" entity_ok + "lharu" entity_ok + "lhblk" entity_ok + "ljcy" entity_ok + "lmidot" entity_ok + "lnE" entity_ok + "lnap" entity_ok + "lne" entity_ok + "lnsim" entity_ok + "lowast" entity_ok + "lowbar" entity_ok + "loz" entity_ok + "loz" entity_ok + "lozf" entity_ok + "lpar" entity_ok + "lpargt" entity_ok + "lrarr2" entity_ok + "lrhar2" entity_ok + "lrm" entity_ok + "lsaquo" entity_ok + "lsh" entity_ok + "lsim" entity_ok + "lsqb" entity_ok + "lsquo" entity_ok + "lsquor" entity_ok + "lstrok" entity_ok + "lt" entity_ok + "lthree" entity_ok + "ltimes" entity_ok + "ltri" entity_ok + "ltrie" entity_ok + "ltrif" entity_ok + "lvnE" entity_ok + "macr" entity_ok + "male" entity_ok + "malt" entity_ok + "map" entity_ok + "marker" entity_ok + "mcy" entity_ok + "mdash" entity_ok + "mgr" entity_ok + "micro" entity_ok + "mid" entity_ok + "middot" entity_ok + "minus" entity_ok + "minusb" entity_ok + "mldr" entity_ok + "mnplus" entity_ok + "models" entity_ok + "mu" entity_ok + "mumap" entity_ok + "nVDash" entity_ok + "nVdash" entity_ok + "nabla" entity_ok + "nacute" entity_ok + "nap" entity_ok + "napos" entity_ok + "natur" entity_ok + "nbsp" entity_ok + "ncaron" entity_ok + "ncedil" entity_ok + "ncong" entity_ok + "ncy" entity_ok + "ndash" entity_ok + "ne" entity_ok + "nearr" entity_ok + "nequiv" entity_ok + "nexist" entity_ok + "ngE" entity_ok + "nge" entity_ok + "nges" entity_ok + "ngr" entity_ok + "ngt" entity_ok + "nhArr" entity_ok + "nharr" entity_ok + "ni" entity_ok + "njcy" entity_ok + "nlArr" entity_ok + "nlE" entity_ok + "nlarr" entity_ok + "nldr" entity_ok + "nle" entity_ok + "nles" entity_ok + "nlt" entity_ok + "nltri" entity_ok + "nltrie" entity_ok + "nmid" entity_ok + "not" entity_ok + "notin" entity_ok + "npar" entity_ok + "npr" entity_ok + "npre" entity_ok + "nrArr" entity_ok + "nrarr" entity_ok + "nrtri" entity_ok + "nrtrie" entity_ok + "nsc" entity_ok + "nsce" entity_ok + "nsim" entity_ok + "nsime" entity_ok + "nsmid" entity_ok + "nspar" entity_ok + "nsub" entity_ok + "nsubE" entity_ok + "nsube" entity_ok + "nsup" entity_ok + "nsupE" entity_ok + "nsupe" entity_ok + "ntilde" entity_ok + "nu" entity_ok + "num" entity_ok + "numero" entity_ok + "numsp" entity_ok + "nvDash" entity_ok + "nvdash" entity_ok + "nwarr" entity_ok + "oS" entity_ok + "oacgr" entity_ok + "oacute" entity_ok + "oast" entity_ok + "ocir" entity_ok + "ocirc" entity_ok + "ocy" entity_ok + "odash" entity_ok + "odblac" entity_ok + "odot" entity_ok + "oelig" entity_ok + "ogon" entity_ok + "ogr" entity_ok + "ograve" entity_ok + "ohacgr" entity_ok + "ohgr" entity_ok + "ohm" entity_ok + "olarr" entity_ok + "oline" entity_ok + "omacr" entity_ok + "omega" entity_ok + "omicron" entity_ok + "ominus" entity_ok + "oplus" entity_ok + "or" entity_ok + "orarr" entity_ok + "order" entity_ok + "ordf" entity_ok + "ordm" entity_ok + "oslash" entity_ok + "osol" entity_ok + "otilde" entity_ok + "otimes" entity_ok + "ouml" entity_ok + "par" entity_ok + "para" entity_ok + "part" entity_ok + "pcy" entity_ok + "percnt" entity_ok + "period" entity_ok + "permil" entity_ok + "perp" entity_ok + "pgr" entity_ok + "phgr" entity_ok + "phi" entity_ok + "phis" entity_ok + "phiv" entity_ok + "phmmat" entity_ok + "phone" entity_ok + "pi" entity_ok + "piv" entity_ok + "planck" entity_ok + "plus" entity_ok + "plusb" entity_ok + "plusdo" entity_ok + "plusmn" entity_ok + "pound" entity_ok + "pr" entity_ok + "prap" entity_ok + "pre" entity_ok + "prime" entity_ok + "prnE" entity_ok + "prnap" entity_ok + "prnsim" entity_ok + "prod" entity_ok + "prop" entity_ok + "prsim" entity_ok + "psgr" entity_ok + "psi" entity_ok + "puncsp" entity_ok + "quest" entity_ok + "quot" entity_ok + "rAarr" entity_ok + "rArr" entity_ok + "racute" entity_ok + "radic" entity_ok + "rang" entity_ok + "raquo" entity_ok + "rarr" entity_ok + "rarr2" entity_ok + "rarrhk" entity_ok + "rarrlp" entity_ok + "rarrtl" entity_ok + "rarrw" entity_ok + "rcaron" entity_ok + "rcedil" entity_ok + "rceil" entity_ok + "rcub" entity_ok + "rcy" entity_ok + "rdquo" entity_ok + "rdquor" entity_ok + "real" entity_ok + "rect" entity_ok + "reg" entity_ok + "rfloor" entity_ok + "rgr" entity_ok + "rhard" entity_ok + "rharu" entity_ok + "rho" entity_ok + "rhov" entity_ok + "ring" entity_ok + "rlarr2" entity_ok + "rlhar2" entity_ok + "rlm" entity_ok + "rpar" entity_ok + "rpargt" entity_ok + "rsaquo" entity_ok + "rsh" entity_ok + "rsqb" entity_ok + "rsquo" entity_ok + "rsquor" entity_ok + "rthree" entity_ok + "rtimes" entity_ok + "rtri" entity_ok + "rtrie" entity_ok + "rtrif" entity_ok + "rx" entity_ok + "sacute" entity_ok + "samalg" entity_ok + "sbquo" entity_ok + "sbsol" entity_ok + "sc" entity_ok + "scap" entity_ok + "scaron" entity_ok + "sccue" entity_ok + "sce" entity_ok + "scedil" entity_ok + "scirc" entity_ok + "scnE" entity_ok + "scnap" entity_ok + "scnsim" entity_ok + "scsim" entity_ok + "scy" entity_ok + "sdot" entity_ok + "sdotb" entity_ok + "sect" entity_ok + "semi" entity_ok + "setmn" entity_ok + "sext" entity_ok + "sfgr" entity_ok + "sfrown" entity_ok + "sgr" entity_ok + "sharp" entity_ok + "shchcy" entity_ok + "shcy" entity_ok + "shy" entity_ok + "sigma" entity_ok + "sigmaf" entity_ok + "sigmav" entity_ok + "sim" entity_ok + "sime" entity_ok + "smid" entity_ok + "smile" entity_ok + "softcy" entity_ok + "sol" entity_ok + "spades" entity_ok + "spar" entity_ok + "sqcap" entity_ok + "sqcup" entity_ok + "sqsub" entity_ok + "sqsube" entity_ok + "sqsup" entity_ok + "sqsupe" entity_ok + "squ" entity_ok + "square" entity_ok + "squf" entity_ok + "ssetmn" entity_ok + "ssmile" entity_ok + "sstarf" entity_ok + "star" entity_ok + "starf" entity_ok + "sub" entity_ok + "subE" entity_ok + "sube" entity_ok + "subnE" entity_ok + "subne" entity_ok + "sum" entity_ok + "sung" entity_ok + "sup" entity_ok + "sup1" entity_ok + "sup2" entity_ok + "sup3" entity_ok + "supE" entity_ok + "supe" entity_ok + "supnE" entity_ok + "supne" entity_ok + "szlig" entity_ok + "target" entity_ok + "tau" entity_ok + "tcaron" entity_ok + "tcedil" entity_ok + "tcy" entity_ok + "tdot" entity_ok + "telrec" entity_ok + "tgr" entity_ok + "there4" entity_ok + "theta" entity_ok + "thetas" entity_ok + "thetasym" entity_ok + "thetav" entity_ok + "thgr" entity_ok + "thinsp" entity_ok + "thkap" entity_ok + "thksim" entity_ok + "thorn" entity_ok + "tilde" entity_ok + "times" entity_ok + "timesb" entity_ok + "top" entity_ok + "tprime" entity_ok + "trade" entity_ok + "trie" entity_ok + "tscy" entity_ok + "tshcy" entity_ok + "tstrok" entity_ok + "twixt" entity_ok + "uArr" entity_ok + "uacgr" entity_ok + "uacute" entity_ok + "uarr" entity_ok + "uarr2" entity_ok + "ubrcy" entity_ok + "ubreve" entity_ok + "ucirc" entity_ok + "ucy" entity_ok + "udblac" entity_ok + "udiagr" entity_ok + "udigr" entity_ok + "ugr" entity_ok + "ugrave" entity_ok + "uharl" entity_ok + "uharr" entity_ok + "uhblk" entity_ok + "ulcorn" entity_ok + "ulcrop" entity_ok + "umacr" entity_ok + "uml" entity_ok + "uogon" entity_ok + "uplus" entity_ok + "upsi" entity_ok + "upsih" entity_ok + "upsilon" entity_ok + "urcorn" entity_ok + "urcrop" entity_ok + "uring" entity_ok + "utilde" entity_ok + "utri" entity_ok + "utrif" entity_ok + "uuml" entity_ok + "vArr" entity_ok + "vDash" entity_ok + "varr" entity_ok + "vcy" entity_ok + "vdash" entity_ok + "veebar" entity_ok + "vellip" entity_ok + "verbar" entity_ok + "vltri" entity_ok + "vprime" entity_ok + "vprop" entity_ok + "vrtri" entity_ok + "vsubnE" entity_ok + "vsubne" entity_ok + "vsupnE" entity_ok + "vsupne" entity_ok + "wcirc" entity_ok + "wedgeq" entity_ok + "weierp" entity_ok + "wreath" entity_ok + "xcirc" entity_ok + "xdtri" entity_ok + "xgr" entity_ok + "xhArr" entity_ok + "xharr" entity_ok + "xi" entity_ok + "xlArr" entity_ok + "xrArr" entity_ok + "xutri" entity_ok + "yacute" entity_ok + "yacy" entity_ok + "ycirc" entity_ok + "ycy" entity_ok + "yen" entity_ok + "yicy" entity_ok + "yucy" entity_ok + "yuml" entity_ok + "zacute" entity_ok + "zcaron" entity_ok + "zcy" entity_ok + "zdot" entity_ok + "zeta" entity_ok + "zgr" entity_ok + "zhcy" entity_ok + "zwj" entity_ok + "zwnj" entity_ok +done + ".0-9A-Za-z" entity_name + +:entity_ok Entity + * mistake_entity noeat recolor=-1 + ";" entity_end noeat recolor=-1 + +:mistake_entity Mystery + * idle noeat + +.end diff --git a/.joe/syntax/html.jsf.in b/.joe/syntax/html.jsf.in @@ -0,0 +1,1345 @@ +# JOE syntax highlight file for HTML + +# +# Note: +# * <script>..</script> and <style>..</style> +# blocks are assumed to be html-encoded, not raw. +# To make them raw, you should enclose them within <!-- -->. +# +# * "#" and "+" are lited as mistakes in unquoted tag values, +# although there exist (broken) programs that generate them. +# +# * Recognizes html-entities and lites mistakes in them. +# +# * SGML comments are parsed in the SGML way. This means there +# must be an even amount of "--" markers within the tag. +# +# * Recognizes 1018 different named entities. The list has been +# copied from some version of Lynx. Most browsers don't recognize +# that many. +# +# Todo: +# * tag name recognition +# * tag parameter name recognition +# * inline stylesheet and javascript highlighting +# (hard to do fool-proof, because the value may be entity-encoded). +# + +# Colours +=Background +=Text +=TagEdge green +=TagName green #cyan +=TagParam #green +=TagDelim #bold green +=TagValue cyan +=TagEntity bold blue +=SGMLtag magenta +=XML_pi yellow +=Entity bold blue +=Mystery bold yellow bg_red inverse + +# Call HTML highlighter subroutine + +:first Background + * call_failed noeat call=.html() + +:call_failed Mystery + * call_failed + +# +# HTML highlighter as a subroutine +# + +.subr html + +:reset Background + * idle noeat +.ifdef mason + "%" reset call=perl.perl(mason_line) +.endif + +# Rules +:idle Background + * idle + "\n" reset + "<" tag_begin recolor=-1 + "&" idle call=.entity() recolor=-1 +:mistake_idle Mystery + * idle noeat + +# Tags +:tag_begin TagEdge + * tag_name_first buffer noeat recolor=-1 + "/" tag_name_first buffer +.ifdef mason + "&" rtn_php call=perl.perl(mason_block) +.endif + "!" sgml_tag recolor=-2 +.ifdef php + "?%" rtn_php call=php.php() +.else + "?" xml_pi recolor=-2 +.endif +.ifdef erb + "%" maybe_erb_eq +.endif + +# this state allows php and perl to recolor the ?> %> or &> properly. +:rtn_php TagEdge + * idle noeat + +:maybe_erb_eq TagEdge + * rtn_php noeat call=ruby.ruby(erb) + "=" rtn_php call=ruby.ruby(erb) + +:tag_name_first Mystery + * tag_idle noeat + "-A-Za-z0-9._:" tag_name recolor=-1 + +:tag_name TagName + * tag_idle noeat strings + "script" stag_enter_idle + "style" ytag_enter_idle +done + "-A-Za-z0-9._:" tag_name + +:tag_idle Background + * mistake_tag recolor=-1 + "<" tag_maybe_php recolor=-1 + " \t \n" tag_idle + "/" tag_end recolor=-1 + ">" tag_end noeat recolor=-1 + "-A-Za-z0-9._:" tag_param noeat recolor=-1 + +:tag_maybe_php Mystery + * tag_idle + "?" tag_call_php recolor=-2 + +:tag_call_php TagEdge + * rtn_php_tag noeat call=php.php() + +:rtn_php_tag TagEdge + * tag_idle noeat + +:tag_param TagParam + * tag_idle noeat recolor=-1 + "-A-Za-z0-9._:" tag_param + "=" tag_delim recolor=-1 + +:tag_delim TagDelim + * mistake_tag noeat recolor=-1 + "\"" tag_idle call=.tag_value_quoted(dquote) recolor=-1 + "'" tag_idle call=.tag_value_quoted(squote) recolor=-1 + "-A-Za-z0-9._:" tag_value noeat recolor=-1 + +:tag_value TagValue + * tag_idle noeat recolor=-1 + "-A-Za-z0-9._:" tag_value + +:tag_end TagEdge + * idle + +:mistake_tag Mystery + * tag_idle noeat + +# We're about to entry a script... + +:stag_enter_idle TagName + * stag_idle noeat + +:stag_idle Background + * smistake_tag recolor=-1 + " \t \n" stag_idle + "/" stag_end recolor=-1 + ">" stag_end noeat recolor=-1 + "-A-Za-z0-9._:" stag_param noeat recolor=-1 + +:stag_param TagParam + * stag_idle noeat recolor=-1 + "-A-Za-z0-9._:" stag_param + "=" stag_delim recolor=-1 + +:stag_delim TagDelim + * smistake_tag noeat recolor=-1 + "\"" stag_idle call=.tag_value_quoted(dquote) recolor=-1 + "'" stag_idle call=.tag_value_quoted(squote) recolor=-1 + "-A-Za-z0-9._:" stag_value noeat recolor=-1 + +:stag_value TagValue + * stag_idle noeat recolor=-1 + "-A-Za-z0-9._:" stag_value + +:stag_end TagEdge +.ifdef php + * tag_begin call=js.js(php) +.else + * tag_begin call=js.js(html) +.endif + +:stag_done TagEdge + * tag_name_first buffer noeat + +:smistake_tag Mystery + * stag_idle noeat + +# We're about to entry a script... + +:ytag_enter_idle TagName + * ytag_idle noeat + +:ytag_idle Background + * ymistake_tag recolor=-1 + " \t \n" ytag_idle + "/" ytag_end recolor=-1 + ">" ytag_end noeat recolor=-1 + "-A-Za-z0-9._:" ytag_param noeat recolor=-1 + +:ytag_param TagParam + * ytag_idle noeat recolor=-1 + "-A-Za-z0-9._:" ytag_param + "=" ytag_delim recolor=-1 + +:ytag_delim TagDelim + * ymistake_tag noeat recolor=-1 + "\"" ytag_idle call=.tag_value_quoted(dquote) recolor=-1 + "'" ytag_idle call=.tag_value_quoted(squote) recolor=-1 + "-A-Za-z0-9._:" ytag_value noeat recolor=-1 + +:ytag_value TagValue + * ytag_idle noeat recolor=-1 + "-A-Za-z0-9._:" ytag_value + +:ytag_end TagEdge +.ifdef php + * tag_begin call=css.css(php) +.else + * tag_begin call=css.css() +.endif + +:ytag_done TagEdge + * tag_name_first buffer noeat + +:ymistake_tag Mystery + * ytag_idle noeat + +# SGML and comments +:sgml_tag SGMLtag + * sgml_tag + "-" sgml_tag_maybe_comment + ">" sgml_end noeat recolor=-1 +:sgml_tag_maybe_comment SGMLtag + * sgml_tag + "-" sgml_tag_comment +:sgml_tag_comment SGMLtag + * sgml_tag_comment + "-" sgml_tag_maybe_comment_end +:sgml_tag_maybe_comment_end SGMLtag + * sgml_tag_comment + "-" sgml_tag +:sgml_end SGMLtag + * idle + +# XML processing info +:xml_pi XML_pi + * xml_pi + "?" xml_pi_maybe_end +:xml_pi_maybe_end XML_pi + * xml_pi + "?" xml_pi_maybe_end + ">" xml_pi_end noeat recolor=-1 +:xml_pi_end XML_pi + * idle + +.end + +# +# Quoted string tag values +# + +.subr tag_value_quoted + +:tag_value_quoted TagValue + * tag_value_quoted +.ifdef dquote + "\"" tag_value_quoted return +.endif +.ifdef squote + "'" tag_value_quoted return +.endif + "<" tag_value_maybe_php + +:tag_value_maybe_php TagValue + * tag_value_quoted noeat + "?" tag_value_call_php recolor=-2 + +:tag_value_call_php TagEdge + * tag_value_rtn_php noeat call=php.php() + +:tag_value_rtn_php TagEdge + * tag_value_quoted noeat + +# Too many non-html things can be in quotes to do this... +# "&" tag_value_quoted call=.entity() recolor=-1 + +:mistake_tag_value Mystery + * tag_value_quoted noeat + +.end + + +# +# Entity parser +# + +.subr entity + +# Entities within plain content +:entity Entity + * entity_name noeat buffer recolor=-1 + "#" entity_numeric_begin +:entity_numeric_begin Entity + * entity_numeric noeat + "x" entity_hex +:entity_numeric Entity + * mistake_idle noeat recolor=-1 + "0-9" entity_numeric + ";" entity_end noeat recolor=-1 +:entity_hex Entity + * mistake_idle noeat recolor=-1 + "0-9a-fA-F" entity_hex + ";" entity_end noeat recolor=-1 +:entity_end Entity + * entity return + +:entity_name Mystery + * mistake_idle noeat recolor=-1 strings + "AElig" entity_ok + "Aacgr" entity_ok + "Aacute" entity_ok + "Abreve" entity_ok + "Acirc" entity_ok + "Acy" entity_ok + "Agr" entity_ok + "Agrave" entity_ok + "Alpha" entity_ok + "Amacr" entity_ok + "Aogon" entity_ok + "Aring" entity_ok + "Atilde" entity_ok + "Auml" entity_ok + "Barwed" entity_ok + "Bcy" entity_ok + "Beta" entity_ok + "Bgr" entity_ok + "CHcy" entity_ok + "Cacute" entity_ok + "Cap" entity_ok + "Ccaron" entity_ok + "Ccedil" entity_ok + "Ccirc" entity_ok + "Cdot" entity_ok + "Chi" entity_ok + "Cup" entity_ok + "DJcy" entity_ok + "DScy" entity_ok + "DZcy" entity_ok + "Dagger" entity_ok + "Dcaron" entity_ok + "Dcy" entity_ok + "Delta" entity_ok + "Dgr" entity_ok + "Dot" entity_ok + "DotDot" entity_ok + "Dstrok" entity_ok + "EEacgr" entity_ok + "EEgr" entity_ok + "ENG" entity_ok + "ETH" entity_ok + "Eacgr" entity_ok + "Eacute" entity_ok + "Ecaron" entity_ok + "Ecirc" entity_ok + "Ecy" entity_ok + "Edot" entity_ok + "Egr" entity_ok + "Egrave" entity_ok + "Emacr" entity_ok + "Eogon" entity_ok + "Epsilon" entity_ok + "Eta" entity_ok + "Euml" entity_ok + "Fcy" entity_ok + "GJcy" entity_ok + "Gamma" entity_ok + "Gbreve" entity_ok + "Gcedil" entity_ok + "Gcirc" entity_ok + "Gcy" entity_ok + "Gdot" entity_ok + "Gg" entity_ok + "Ggr" entity_ok + "Gt" entity_ok + "HARDcy" entity_ok + "Hcirc" entity_ok + "Hstrok" entity_ok + "IEcy" entity_ok + "IJlig" entity_ok + "IOcy" entity_ok + "Iacgr" entity_ok + "Iacute" entity_ok + "Icirc" entity_ok + "Icy" entity_ok + "Idigr" entity_ok + "Idot" entity_ok + "Igr" entity_ok + "Igrave" entity_ok + "Imacr" entity_ok + "Iogon" entity_ok + "Iota" entity_ok + "Itilde" entity_ok + "Iukcy" entity_ok + "Iuml" entity_ok + "Jcirc" entity_ok + "Jcy" entity_ok + "Jsercy" entity_ok + "Jukcy" entity_ok + "KHcy" entity_ok + "KHgr" entity_ok + "KJcy" entity_ok + "Kappa" entity_ok + "Kcedil" entity_ok + "Kcy" entity_ok + "Kgr" entity_ok + "LJcy" entity_ok + "Lacute" entity_ok + "Lambda" entity_ok + "Larr" entity_ok + "Lcaron" entity_ok + "Lcedil" entity_ok + "Lcy" entity_ok + "Lgr" entity_ok + "Ll" entity_ok + "Lmidot" entity_ok + "Lstrok" entity_ok + "Lt" entity_ok + "Mcy" entity_ok + "Mgr" entity_ok + "Mu" entity_ok + "NJcy" entity_ok + "Nacute" entity_ok + "Ncaron" entity_ok + "Ncedil" entity_ok + "Ncy" entity_ok + "Ngr" entity_ok + "Ntilde" entity_ok + "Nu" entity_ok + "OElig" entity_ok + "OHacgr" entity_ok + "OHgr" entity_ok + "Oacgr" entity_ok + "Oacute" entity_ok + "Ocirc" entity_ok + "Ocy" entity_ok + "Odblac" entity_ok + "Ogr" entity_ok + "Ograve" entity_ok + "Omacr" entity_ok + "Omega" entity_ok + "Omicron" entity_ok + "Oslash" entity_ok + "Otilde" entity_ok + "Ouml" entity_ok + "PHgr" entity_ok + "PSgr" entity_ok + "Pcy" entity_ok + "Pgr" entity_ok + "Phi" entity_ok + "Pi" entity_ok + "Prime" entity_ok + "Psi" entity_ok + "Racute" entity_ok + "Rarr" entity_ok + "Rcaron" entity_ok + "Rcedil" entity_ok + "Rcy" entity_ok + "Rgr" entity_ok + "Rho" entity_ok + "SHCHcy" entity_ok + "SHcy" entity_ok + "SOFTcy" entity_ok + "Sacute" entity_ok + "Scaron" entity_ok + "Scedil" entity_ok + "Scirc" entity_ok + "Scy" entity_ok + "Sgr" entity_ok + "Sigma" entity_ok + "Sub" entity_ok + "Sup" entity_ok + "THORN" entity_ok + "THgr" entity_ok + "TSHcy" entity_ok + "TScy" entity_ok + "Tau" entity_ok + "Tcaron" entity_ok + "Tcedil" entity_ok + "Tcy" entity_ok + "Tgr" entity_ok + "Theta" entity_ok + "Tstrok" entity_ok + "Uacgr" entity_ok + "Uacute" entity_ok + "Ubrcy" entity_ok + "Ubreve" entity_ok + "Ucirc" entity_ok + "Ucy" entity_ok + "Udblac" entity_ok + "Udigr" entity_ok + "Ugr" entity_ok + "Ugrave" entity_ok + "Umacr" entity_ok + "Uogon" entity_ok + "Upsi" entity_ok + "Upsilon" entity_ok + "Uring" entity_ok + "Utilde" entity_ok + "Uuml" entity_ok + "Vcy" entity_ok + "Vdash" entity_ok + "Verbar" entity_ok + "Vvdash" entity_ok + "Wcirc" entity_ok + "Xgr" entity_ok + "Xi" entity_ok + "YAcy" entity_ok + "YIcy" entity_ok + "YUcy" entity_ok + "Yacute" entity_ok + "Ycirc" entity_ok + "Ycy" entity_ok + "Yuml" entity_ok + "ZHcy" entity_ok + "Zacute" entity_ok + "Zcaron" entity_ok + "Zcy" entity_ok + "Zdot" entity_ok + "Zeta" entity_ok + "Zgr" entity_ok + "aacgr" entity_ok + "aacute" entity_ok + "abreve" entity_ok + "acirc" entity_ok + "acute" entity_ok + "acy" entity_ok + "aelig" entity_ok + "agr" entity_ok + "agrave" entity_ok + "alefsym" entity_ok + "aleph" entity_ok + "alpha" entity_ok + "amacr" entity_ok + "amalg" entity_ok + "amp" entity_ok + "and" entity_ok + "ang" entity_ok + "ang90" entity_ok + "angmsd" entity_ok + "angsph" entity_ok + "angst" entity_ok + "aogon" entity_ok + "ap" entity_ok + "ape" entity_ok + "apos" entity_ok + "aring" entity_ok + "ast" entity_ok + "asymp" entity_ok + "atilde" entity_ok + "auml" entity_ok + "b.Delta" entity_ok + "b.Gamma" entity_ok + "b.Lambda" entity_ok + "b.Omega" entity_ok + "b.Phi" entity_ok + "b.Pi" entity_ok + "b.Psi" entity_ok + "b.Sigma" entity_ok + "b.Theta" entity_ok + "b.Upsi" entity_ok + "b.Xi" entity_ok + "b.alpha" entity_ok + "b.beta" entity_ok + "b.chi" entity_ok + "b.delta" entity_ok + "b.epsi" entity_ok + "b.epsis" entity_ok + "b.epsiv" entity_ok + "b.eta" entity_ok + "b.gamma" entity_ok + "b.gammad" entity_ok + "b.iota" entity_ok + "b.kappa" entity_ok + "b.kappav" entity_ok + "b.lambda" entity_ok + "b.mu" entity_ok + "b.nu" entity_ok + "b.omega" entity_ok + "b.phis" entity_ok + "b.phiv" entity_ok + "b.pi" entity_ok + "b.piv" entity_ok + "b.psi" entity_ok + "b.rho" entity_ok + "b.rhov" entity_ok + "b.sigma" entity_ok + "b.sigmav" entity_ok + "b.tau" entity_ok + "b.thetas" entity_ok + "b.thetav" entity_ok + "b.upsi" entity_ok + "b.xi" entity_ok + "b.zeta" entity_ok + "barwed" entity_ok + "bcong" entity_ok + "bcy" entity_ok + "bdquo" entity_ok + "becaus" entity_ok + "bepsi" entity_ok + "bernou" entity_ok + "beta" entity_ok + "beth" entity_ok + "bgr" entity_ok + "blank" entity_ok + "blk12" entity_ok + "blk14" entity_ok + "blk34" entity_ok + "block" entity_ok + "bottom" entity_ok + "bowtie" entity_ok + "boxDL" entity_ok + "boxDR" entity_ok + "boxDl" entity_ok + "boxDr" entity_ok + "boxH" entity_ok + "boxHD" entity_ok + "boxHU" entity_ok + "boxHd" entity_ok + "boxHu" entity_ok + "boxUL" entity_ok + "boxUR" entity_ok + "boxUl" entity_ok + "boxUr" entity_ok + "boxV" entity_ok + "boxVH" entity_ok + "boxVL" entity_ok + "boxVR" entity_ok + "boxVh" entity_ok + "boxVl" entity_ok + "boxVr" entity_ok + "boxdL" entity_ok + "boxdR" entity_ok + "boxdl" entity_ok + "boxdr" entity_ok + "boxh" entity_ok + "boxhD" entity_ok + "boxhU" entity_ok + "boxhd" entity_ok + "boxhu" entity_ok + "boxuL" entity_ok + "boxuR" entity_ok + "boxul" entity_ok + "boxur" entity_ok + "boxv" entity_ok + "boxvH" entity_ok + "boxvL" entity_ok + "boxvR" entity_ok + "boxvh" entity_ok + "boxvl" entity_ok + "boxvr" entity_ok + "bprime" entity_ok + "breve" entity_ok + "brkbar" entity_ok + "brvbar" entity_ok + "bsim" entity_ok + "bsime" entity_ok + "bsol" entity_ok + "bull" entity_ok + "bump" entity_ok + "bumpe" entity_ok + "cacute" entity_ok + "cap" entity_ok + "caret" entity_ok + "caron" entity_ok + "ccaron" entity_ok + "ccedil" entity_ok + "ccirc" entity_ok + "cdot" entity_ok + "cedil" entity_ok + "cent" entity_ok + "chcy" entity_ok + "check" entity_ok + "chi" entity_ok + "cir" entity_ok + "circ" entity_ok + "cire" entity_ok + "clubs" entity_ok + "colon" entity_ok + "colone" entity_ok + "comma" entity_ok + "commat" entity_ok + "comp" entity_ok + "compfn" entity_ok + "cong" entity_ok + "conint" entity_ok + "coprod" entity_ok + "copy" entity_ok + "copysr" entity_ok + "crarr" entity_ok + "cross" entity_ok + "cuepr" entity_ok + "cuesc" entity_ok + "cularr" entity_ok + "cup" entity_ok + "cupre" entity_ok + "curarr" entity_ok + "curren" entity_ok + "cuvee" entity_ok + "cuwed" entity_ok + "dArr" entity_ok + "dagger" entity_ok + "daleth" entity_ok + "darr" entity_ok + "darr2" entity_ok + "dash" entity_ok + "dashv" entity_ok + "dblac" entity_ok + "dcaron" entity_ok + "dcy" entity_ok + "deg" entity_ok + "delta" entity_ok + "dgr" entity_ok + "dharl" entity_ok + "dharr" entity_ok + "diam" entity_ok + "diams" entity_ok + "die" entity_ok + "divide" entity_ok + "divonx" entity_ok + "djcy" entity_ok + "dlarr" entity_ok + "dlcorn" entity_ok + "dlcrop" entity_ok + "dollar" entity_ok + "dot" entity_ok + "drarr" entity_ok + "drcorn" entity_ok + "drcrop" entity_ok + "dscy" entity_ok + "dstrok" entity_ok + "dtri" entity_ok + "dtrif" entity_ok + "dzcy" entity_ok + "eDot" entity_ok + "eacgr" entity_ok + "eacute" entity_ok + "ecaron" entity_ok + "ecir" entity_ok + "ecirc" entity_ok + "ecolon" entity_ok + "ecy" entity_ok + "edot" entity_ok + "eeacgr" entity_ok + "eegr" entity_ok + "efDot" entity_ok + "egr" entity_ok + "egrave" entity_ok + "egs" entity_ok + "ell" entity_ok + "els" entity_ok + "emacr" entity_ok + "emdash" entity_ok + "empty" entity_ok + "emsp" entity_ok + "emsp13" entity_ok + "emsp14" entity_ok + "endash" entity_ok + "eng" entity_ok + "ensp" entity_ok + "eogon" entity_ok + "epsi" entity_ok + "epsilon" entity_ok + "epsis" entity_ok + "epsiv" entity_ok + "equals" entity_ok + "equiv" entity_ok + "erDot" entity_ok + "esdot" entity_ok + "eta" entity_ok + "eth" entity_ok + "euml" entity_ok + "euro" entity_ok + "excl" entity_ok + "exist" entity_ok + "fcy" entity_ok + "female" entity_ok + "ffilig" entity_ok + "fflig" entity_ok + "ffllig" entity_ok + "filig" entity_ok + "fjlig" entity_ok + "flat" entity_ok + "fllig" entity_ok + "fnof" entity_ok + "forall" entity_ok + "fork" entity_ok + "frac12" entity_ok + "frac13" entity_ok + "frac14" entity_ok + "frac15" entity_ok + "frac16" entity_ok + "frac18" entity_ok + "frac23" entity_ok + "frac25" entity_ok + "frac34" entity_ok + "frac35" entity_ok + "frac38" entity_ok + "frac45" entity_ok + "frac56" entity_ok + "frac58" entity_ok + "frac78" entity_ok + "frasl" entity_ok + "frown" entity_ok + "gE" entity_ok + "gEl" entity_ok + "gacute" entity_ok + "gamma" entity_ok + "gammad" entity_ok + "gap" entity_ok + "gbreve" entity_ok + "gcedil" entity_ok + "gcirc" entity_ok + "gcy" entity_ok + "gdot" entity_ok + "ge" entity_ok + "gel" entity_ok + "ges" entity_ok + "ggr" entity_ok + "gimel" entity_ok + "gjcy" entity_ok + "gl" entity_ok + "gnE" entity_ok + "gnap" entity_ok + "gne" entity_ok + "gnsim" entity_ok + "grave" entity_ok + "gsdot" entity_ok + "gsim" entity_ok + "gt" entity_ok + "gvnE" entity_ok + "hArr" entity_ok + "hairsp" entity_ok + "half" entity_ok + "hamilt" entity_ok + "hardcy" entity_ok + "harr" entity_ok + "harrw" entity_ok + "hcirc" entity_ok + "hearts" entity_ok + "hellip" entity_ok + "hibar" entity_ok + "horbar" entity_ok + "hstrok" entity_ok + "hybull" entity_ok + "hyphen" entity_ok + "iacgr" entity_ok + "iacute" entity_ok + "icirc" entity_ok + "icy" entity_ok + "idiagr" entity_ok + "idigr" entity_ok + "iecy" entity_ok + "iexcl" entity_ok + "iff" entity_ok + "igr" entity_ok + "igrave" entity_ok + "ijlig" entity_ok + "imacr" entity_ok + "image" entity_ok + "incare" entity_ok + "infin" entity_ok + "inodot" entity_ok + "int" entity_ok + "intcal" entity_ok + "iocy" entity_ok + "iogon" entity_ok + "iota" entity_ok + "iquest" entity_ok + "isin" entity_ok + "itilde" entity_ok + "iukcy" entity_ok + "iuml" entity_ok + "jcirc" entity_ok + "jcy" entity_ok + "jnodot" entity_ok + "jsercy" entity_ok + "jukcy" entity_ok + "kappa" entity_ok + "kappav" entity_ok + "kcedil" entity_ok + "kcy" entity_ok + "kgr" entity_ok + "kgreen" entity_ok + "khcy" entity_ok + "khgr" entity_ok + "kjcy" entity_ok + "lAarr" entity_ok + "lArr" entity_ok + "lE" entity_ok + "lEg" entity_ok + "lacute" entity_ok + "lagran" entity_ok + "lambda" entity_ok + "lang" entity_ok + "lap" entity_ok + "laquo" entity_ok + "larr" entity_ok + "larr2" entity_ok + "larrhk" entity_ok + "larrlp" entity_ok + "larrtl" entity_ok + "lcaron" entity_ok + "lcedil" entity_ok + "lceil" entity_ok + "lcub" entity_ok + "lcy" entity_ok + "ldot" entity_ok + "ldquo" entity_ok + "ldquor" entity_ok + "le" entity_ok + "leg" entity_ok + "les" entity_ok + "lfloor" entity_ok + "lg" entity_ok + "lgr" entity_ok + "lhard" entity_ok + "lharu" entity_ok + "lhblk" entity_ok + "ljcy" entity_ok + "lmidot" entity_ok + "lnE" entity_ok + "lnap" entity_ok + "lne" entity_ok + "lnsim" entity_ok + "lowast" entity_ok + "lowbar" entity_ok + "loz" entity_ok + "loz" entity_ok + "lozf" entity_ok + "lpar" entity_ok + "lpargt" entity_ok + "lrarr2" entity_ok + "lrhar2" entity_ok + "lrm" entity_ok + "lsaquo" entity_ok + "lsh" entity_ok + "lsim" entity_ok + "lsqb" entity_ok + "lsquo" entity_ok + "lsquor" entity_ok + "lstrok" entity_ok + "lt" entity_ok + "lthree" entity_ok + "ltimes" entity_ok + "ltri" entity_ok + "ltrie" entity_ok + "ltrif" entity_ok + "lvnE" entity_ok + "macr" entity_ok + "male" entity_ok + "malt" entity_ok + "map" entity_ok + "marker" entity_ok + "mcy" entity_ok + "mdash" entity_ok + "mgr" entity_ok + "micro" entity_ok + "mid" entity_ok + "middot" entity_ok + "minus" entity_ok + "minusb" entity_ok + "mldr" entity_ok + "mnplus" entity_ok + "models" entity_ok + "mu" entity_ok + "mumap" entity_ok + "nVDash" entity_ok + "nVdash" entity_ok + "nabla" entity_ok + "nacute" entity_ok + "nap" entity_ok + "napos" entity_ok + "natur" entity_ok + "nbsp" entity_ok + "ncaron" entity_ok + "ncedil" entity_ok + "ncong" entity_ok + "ncy" entity_ok + "ndash" entity_ok + "ne" entity_ok + "nearr" entity_ok + "nequiv" entity_ok + "nexist" entity_ok + "ngE" entity_ok + "nge" entity_ok + "nges" entity_ok + "ngr" entity_ok + "ngt" entity_ok + "nhArr" entity_ok + "nharr" entity_ok + "ni" entity_ok + "njcy" entity_ok + "nlArr" entity_ok + "nlE" entity_ok + "nlarr" entity_ok + "nldr" entity_ok + "nle" entity_ok + "nles" entity_ok + "nlt" entity_ok + "nltri" entity_ok + "nltrie" entity_ok + "nmid" entity_ok + "not" entity_ok + "notin" entity_ok + "npar" entity_ok + "npr" entity_ok + "npre" entity_ok + "nrArr" entity_ok + "nrarr" entity_ok + "nrtri" entity_ok + "nrtrie" entity_ok + "nsc" entity_ok + "nsce" entity_ok + "nsim" entity_ok + "nsime" entity_ok + "nsmid" entity_ok + "nspar" entity_ok + "nsub" entity_ok + "nsubE" entity_ok + "nsube" entity_ok + "nsup" entity_ok + "nsupE" entity_ok + "nsupe" entity_ok + "ntilde" entity_ok + "nu" entity_ok + "num" entity_ok + "numero" entity_ok + "numsp" entity_ok + "nvDash" entity_ok + "nvdash" entity_ok + "nwarr" entity_ok + "oS" entity_ok + "oacgr" entity_ok + "oacute" entity_ok + "oast" entity_ok + "ocir" entity_ok + "ocirc" entity_ok + "ocy" entity_ok + "odash" entity_ok + "odblac" entity_ok + "odot" entity_ok + "oelig" entity_ok + "ogon" entity_ok + "ogr" entity_ok + "ograve" entity_ok + "ohacgr" entity_ok + "ohgr" entity_ok + "ohm" entity_ok + "olarr" entity_ok + "oline" entity_ok + "omacr" entity_ok + "omega" entity_ok + "omicron" entity_ok + "ominus" entity_ok + "oplus" entity_ok + "or" entity_ok + "orarr" entity_ok + "order" entity_ok + "ordf" entity_ok + "ordm" entity_ok + "oslash" entity_ok + "osol" entity_ok + "otilde" entity_ok + "otimes" entity_ok + "ouml" entity_ok + "par" entity_ok + "para" entity_ok + "part" entity_ok + "pcy" entity_ok + "percnt" entity_ok + "period" entity_ok + "permil" entity_ok + "perp" entity_ok + "pgr" entity_ok + "phgr" entity_ok + "phi" entity_ok + "phis" entity_ok + "phiv" entity_ok + "phmmat" entity_ok + "phone" entity_ok + "pi" entity_ok + "piv" entity_ok + "planck" entity_ok + "plus" entity_ok + "plusb" entity_ok + "plusdo" entity_ok + "plusmn" entity_ok + "pound" entity_ok + "pr" entity_ok + "prap" entity_ok + "pre" entity_ok + "prime" entity_ok + "prnE" entity_ok + "prnap" entity_ok + "prnsim" entity_ok + "prod" entity_ok + "prop" entity_ok + "prsim" entity_ok + "psgr" entity_ok + "psi" entity_ok + "puncsp" entity_ok + "quest" entity_ok + "quot" entity_ok + "rAarr" entity_ok + "rArr" entity_ok + "racute" entity_ok + "radic" entity_ok + "rang" entity_ok + "raquo" entity_ok + "rarr" entity_ok + "rarr2" entity_ok + "rarrhk" entity_ok + "rarrlp" entity_ok + "rarrtl" entity_ok + "rarrw" entity_ok + "rcaron" entity_ok + "rcedil" entity_ok + "rceil" entity_ok + "rcub" entity_ok + "rcy" entity_ok + "rdquo" entity_ok + "rdquor" entity_ok + "real" entity_ok + "rect" entity_ok + "reg" entity_ok + "rfloor" entity_ok + "rgr" entity_ok + "rhard" entity_ok + "rharu" entity_ok + "rho" entity_ok + "rhov" entity_ok + "ring" entity_ok + "rlarr2" entity_ok + "rlhar2" entity_ok + "rlm" entity_ok + "rpar" entity_ok + "rpargt" entity_ok + "rsaquo" entity_ok + "rsh" entity_ok + "rsqb" entity_ok + "rsquo" entity_ok + "rsquor" entity_ok + "rthree" entity_ok + "rtimes" entity_ok + "rtri" entity_ok + "rtrie" entity_ok + "rtrif" entity_ok + "rx" entity_ok + "sacute" entity_ok + "samalg" entity_ok + "sbquo" entity_ok + "sbsol" entity_ok + "sc" entity_ok + "scap" entity_ok + "scaron" entity_ok + "sccue" entity_ok + "sce" entity_ok + "scedil" entity_ok + "scirc" entity_ok + "scnE" entity_ok + "scnap" entity_ok + "scnsim" entity_ok + "scsim" entity_ok + "scy" entity_ok + "sdot" entity_ok + "sdotb" entity_ok + "sect" entity_ok + "semi" entity_ok + "setmn" entity_ok + "sext" entity_ok + "sfgr" entity_ok + "sfrown" entity_ok + "sgr" entity_ok + "sharp" entity_ok + "shchcy" entity_ok + "shcy" entity_ok + "shy" entity_ok + "sigma" entity_ok + "sigmaf" entity_ok + "sigmav" entity_ok + "sim" entity_ok + "sime" entity_ok + "smid" entity_ok + "smile" entity_ok + "softcy" entity_ok + "sol" entity_ok + "spades" entity_ok + "spar" entity_ok + "sqcap" entity_ok + "sqcup" entity_ok + "sqsub" entity_ok + "sqsube" entity_ok + "sqsup" entity_ok + "sqsupe" entity_ok + "squ" entity_ok + "square" entity_ok + "squf" entity_ok + "ssetmn" entity_ok + "ssmile" entity_ok + "sstarf" entity_ok + "star" entity_ok + "starf" entity_ok + "sub" entity_ok + "subE" entity_ok + "sube" entity_ok + "subnE" entity_ok + "subne" entity_ok + "sum" entity_ok + "sung" entity_ok + "sup" entity_ok + "sup1" entity_ok + "sup2" entity_ok + "sup3" entity_ok + "supE" entity_ok + "supe" entity_ok + "supnE" entity_ok + "supne" entity_ok + "szlig" entity_ok + "target" entity_ok + "tau" entity_ok + "tcaron" entity_ok + "tcedil" entity_ok + "tcy" entity_ok + "tdot" entity_ok + "telrec" entity_ok + "tgr" entity_ok + "there4" entity_ok + "theta" entity_ok + "thetas" entity_ok + "thetasym" entity_ok + "thetav" entity_ok + "thgr" entity_ok + "thinsp" entity_ok + "thkap" entity_ok + "thksim" entity_ok + "thorn" entity_ok + "tilde" entity_ok + "times" entity_ok + "timesb" entity_ok + "top" entity_ok + "tprime" entity_ok + "trade" entity_ok + "trie" entity_ok + "tscy" entity_ok + "tshcy" entity_ok + "tstrok" entity_ok + "twixt" entity_ok + "uArr" entity_ok + "uacgr" entity_ok + "uacute" entity_ok + "uarr" entity_ok + "uarr2" entity_ok + "ubrcy" entity_ok + "ubreve" entity_ok + "ucirc" entity_ok + "ucy" entity_ok + "udblac" entity_ok + "udiagr" entity_ok + "udigr" entity_ok + "ugr" entity_ok + "ugrave" entity_ok + "uharl" entity_ok + "uharr" entity_ok + "uhblk" entity_ok + "ulcorn" entity_ok + "ulcrop" entity_ok + "umacr" entity_ok + "uml" entity_ok + "uogon" entity_ok + "uplus" entity_ok + "upsi" entity_ok + "upsih" entity_ok + "upsilon" entity_ok + "urcorn" entity_ok + "urcrop" entity_ok + "uring" entity_ok + "utilde" entity_ok + "utri" entity_ok + "utrif" entity_ok + "uuml" entity_ok + "vArr" entity_ok + "vDash" entity_ok + "varr" entity_ok + "vcy" entity_ok + "vdash" entity_ok + "veebar" entity_ok + "vellip" entity_ok + "verbar" entity_ok + "vltri" entity_ok + "vprime" entity_ok + "vprop" entity_ok + "vrtri" entity_ok + "vsubnE" entity_ok + "vsubne" entity_ok + "vsupnE" entity_ok + "vsupne" entity_ok + "wcirc" entity_ok + "wedgeq" entity_ok + "weierp" entity_ok + "wreath" entity_ok + "xcirc" entity_ok + "xdtri" entity_ok + "xgr" entity_ok + "xhArr" entity_ok + "xharr" entity_ok + "xi" entity_ok + "xlArr" entity_ok + "xrArr" entity_ok + "xutri" entity_ok + "yacute" entity_ok + "yacy" entity_ok + "ycirc" entity_ok + "ycy" entity_ok + "yen" entity_ok + "yicy" entity_ok + "yucy" entity_ok + "yuml" entity_ok + "zacute" entity_ok + "zcaron" entity_ok + "zcy" entity_ok + "zdot" entity_ok + "zeta" entity_ok + "zgr" entity_ok + "zhcy" entity_ok + "zwj" entity_ok + "zwnj" entity_ok +done + ".0-9A-Za-z" entity_name + +:entity_ok Entity + * mistake_entity noeat recolor=-1 + ";" entity_end noeat recolor=-1 + +:mistake_entity Mystery + * idle noeat + +.end diff --git a/.joe/syntax/htmlerb.jsf b/.joe/syntax/htmlerb.jsf @@ -0,0 +1,12 @@ +# JOE syntax highlight file for HTML embedded ERB +# by Christian Nicolai (http://mycrobase.de) + +=Idle +=Keyword bold +=Bad bold red +=Brace magenta + +=ERB yellow + +:begin Idle + * NULL noeat call=html.html(erb) diff --git a/.joe/syntax/htmlerb.jsf.in b/.joe/syntax/htmlerb.jsf.in @@ -0,0 +1,12 @@ +# JOE syntax highlight file for HTML embedded ERB +# by Christian Nicolai (http://mycrobase.de) + +=Idle +=Keyword bold +=Bad bold red +=Brace magenta + +=ERB yellow + +:begin Idle + * NULL noeat call=html.html(erb) diff --git a/.joe/syntax/ini.jsf b/.joe/syntax/ini.jsf @@ -0,0 +1,77 @@ +# JOE syntax highlight file for INI files +# by Christian Nicolai (http://mycrobase.de) + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Bad bold red + +=Key +=Separator bold +=Section bold magenta + +:line_start Idle + * key noeat + "\n" line_start + " \t\r" line_start # leading spaces + ";#" line_comment recolor=-1 + "[" section recolor=-1 + "=" missing_key recolor=-1 + +:line_comment Comment + * line_comment + "\n" line_start + +:section Section + * section + "]" section_end + "\n" section_unexp_end recolor=-2 + +:section_end Bad + * section_end + "\n" line_start + +:section_unexp_end Bad + * line_start noeat + +:missing_key Bad + * value_pre noeat + +:key Key + * key + " \t\r" key_post noeat + "=" sep recolor=-1 + "\n" key_error recolor=-2 + +:key_post Idle + * value_pre noeat + " \t\r" key_post + "=" sep recolor=-1 + +:key_error Bad + * key noeat + +:sep Separator + * value_pre noeat + +:value_pre Idle + * value noeat + " \t\r" value_pre + +:value Constant + * value + "\\" value_esc + "\n" line_start + " " maybe_comment recolor=-1 + +:value_esc Escape + * value + "\n" value_error recolor=-2 + +:value_error Bad + * value noeat + +:maybe_comment Idle + * value noeat + ";#" line_comment recolor=-1 diff --git a/.joe/syntax/ini.jsf.in b/.joe/syntax/ini.jsf.in @@ -0,0 +1,77 @@ +# JOE syntax highlight file for INI files +# by Christian Nicolai (http://mycrobase.de) + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Bad bold red + +=Key +=Separator bold +=Section bold magenta + +:line_start Idle + * key noeat + "\n" line_start + " \t\r" line_start # leading spaces + ";#" line_comment recolor=-1 + "[" section recolor=-1 + "=" missing_key recolor=-1 + +:line_comment Comment + * line_comment + "\n" line_start + +:section Section + * section + "]" section_end + "\n" section_unexp_end recolor=-2 + +:section_end Bad + * section_end + "\n" line_start + +:section_unexp_end Bad + * line_start noeat + +:missing_key Bad + * value_pre noeat + +:key Key + * key + " \t\r" key_post noeat + "=" sep recolor=-1 + "\n" key_error recolor=-2 + +:key_post Idle + * value_pre noeat + " \t\r" key_post + "=" sep recolor=-1 + +:key_error Bad + * key noeat + +:sep Separator + * value_pre noeat + +:value_pre Idle + * value noeat + " \t\r" value_pre + +:value Constant + * value + "\\" value_esc + "\n" line_start + " " maybe_comment recolor=-1 + +:value_esc Escape + * value + "\n" value_error recolor=-2 + +:value_error Bad + * value noeat + +:maybe_comment Idle + * value noeat + ";#" line_comment recolor=-1 diff --git a/.joe/syntax/iptables.jsf b/.joe/syntax/iptables.jsf @@ -0,0 +1,129 @@ +# JOE syntax highlight file for ip(6)tables-save and -restore +# by Christian Nicolai (http://mycrobase.de) + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Bad bold red + +=Table bold +=Policy bold blue +=Option yellow +=Module blue + +:line_start Idle + * rest noeat + "#" line_comment recolor=-1 + "*" maybe_table buffer + ":" default_policy recolor=-1 + "C" maybe_commit buffer + "-" command + +:rest Idle + * rest + "\n" line_start + +:line_comment Comment + * line_comment + "\n" line_start + +:maybe_table Idle + * bad noeat strings + "*filter" table_name + "*mangle" table_name + "*nat" table_name + "*raw" table_name +done + "a-z" maybe_table + +:table_name Table + * bad noeat + "\n" line_start + +:default_policy Policy + * default_policy + "\n" line_start + +:maybe_commit Idle + * bad noeat strings + "COMMIT" commit +done + "A-Z" maybe_commit + +:commit Table + * bad noeat + "\n" line_start + +:command Idle + * bad noeat + "ADINX" chain_name_pre + +:chain_name_pre Idle + * chain_name noeat + " " chain_name_pre + +:chain_name Option + * chain_name + " " rule_spec noeat + "\n" line_start + +:rule_spec Idle + * rule_option noeat + " " rule_spec + "\n" line_start + +:rule_option Idle + * rule_option + " " rule_spec noeat + "\n" line_start + "-" rule_flag + +:rule_flag Idle + * rule_option + "-" rule_flag_flag + "iojp" rule_iojp_pre + "sd" rule_sd_pre + "m" rule_m_pre + +:rule_flag_flag Idle + * rule_flag_flag1 buffer + +:rule_flag_flag1 Idle + * rule_option noeat strings + "sport" rule_sd_pre + "dport" rule_sd_pre +done + "a-z-_" rule_flag_flag1 + + +:rule_iojp_pre Idle + * rule_iojp noeat + " " rule_iojp_pre + +:rule_iojp Option + * rule_iojp + " " rule_option noeat + "\n" line_start + +:rule_sd_pre Idle + * rule_sd noeat + " " rule_sd_pre + +:rule_sd Constant + * rule_sd + " " rule_option noeat + "\n" line_start + +:rule_m_pre Idle + * rule_m noeat + " " rule_m_pre + +:rule_m Module + * rule_m + " " rule_option noeat + "\n" line_start + +:bad Bad + * bad + "\n" line_start diff --git a/.joe/syntax/iptables.jsf.in b/.joe/syntax/iptables.jsf.in @@ -0,0 +1,129 @@ +# JOE syntax highlight file for ip(6)tables-save and -restore +# by Christian Nicolai (http://mycrobase.de) + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Bad bold red + +=Table bold +=Policy bold blue +=Option yellow +=Module blue + +:line_start Idle + * rest noeat + "#" line_comment recolor=-1 + "*" maybe_table buffer + ":" default_policy recolor=-1 + "C" maybe_commit buffer + "-" command + +:rest Idle + * rest + "\n" line_start + +:line_comment Comment + * line_comment + "\n" line_start + +:maybe_table Idle + * bad noeat strings + "*filter" table_name + "*mangle" table_name + "*nat" table_name + "*raw" table_name +done + "a-z" maybe_table + +:table_name Table + * bad noeat + "\n" line_start + +:default_policy Policy + * default_policy + "\n" line_start + +:maybe_commit Idle + * bad noeat strings + "COMMIT" commit +done + "A-Z" maybe_commit + +:commit Table + * bad noeat + "\n" line_start + +:command Idle + * bad noeat + "ADINX" chain_name_pre + +:chain_name_pre Idle + * chain_name noeat + " " chain_name_pre + +:chain_name Option + * chain_name + " " rule_spec noeat + "\n" line_start + +:rule_spec Idle + * rule_option noeat + " " rule_spec + "\n" line_start + +:rule_option Idle + * rule_option + " " rule_spec noeat + "\n" line_start + "-" rule_flag + +:rule_flag Idle + * rule_option + "-" rule_flag_flag + "iojp" rule_iojp_pre + "sd" rule_sd_pre + "m" rule_m_pre + +:rule_flag_flag Idle + * rule_flag_flag1 buffer + +:rule_flag_flag1 Idle + * rule_option noeat strings + "sport" rule_sd_pre + "dport" rule_sd_pre +done + "a-z-_" rule_flag_flag1 + + +:rule_iojp_pre Idle + * rule_iojp noeat + " " rule_iojp_pre + +:rule_iojp Option + * rule_iojp + " " rule_option noeat + "\n" line_start + +:rule_sd_pre Idle + * rule_sd noeat + " " rule_sd_pre + +:rule_sd Constant + * rule_sd + " " rule_option noeat + "\n" line_start + +:rule_m_pre Idle + * rule_m noeat + " " rule_m_pre + +:rule_m Module + * rule_m + " " rule_option noeat + "\n" line_start + +:bad Bad + * bad + "\n" line_start diff --git a/.joe/syntax/java.jsf b/.joe/syntax/java.jsf @@ -0,0 +1,274 @@ +# JOE syntax highlight file for JAVA + +# Needs: improve escape parsing + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Type bold +=Keyword bold +=Operator bold +=Bad bold red +=Brace magenta +=Control + +=Methods + +:begin Idle + * begin noeat call=.java() + +# +# Java as a subroute- for use as java script in html +# + +.subr java + +:idle Idle + * idle + "\n" idle + "/" slash + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." maybe_float + "\"" string recolor=-1 + "'" char recolor=-1 + "\i\p{Sc}" ident mark buffer + "{}" brace recolor=-1 + ",:;=()><[]*&|!~+\-%^" control recolor=-1 + +:maybe_done Control + * idle noeat + "/" idle noeat return recolor=-2 + +:brace Brace + * idle noeat + +:control Control + * idle noeat + +:slash Idle + * idle noeat + "*" comment recolor=-2 + "/" line_comment recolor=-2 + +:comment Comment + * comment + # might be TODO label + "BFHNTX" comment noeat call=comment_todo.comment_todo() + "*" maybe_end_comment + +:maybe_end_comment Comment + * comment noeat + "/" idle + "*" maybe_end_comment + +:line_comment Comment + * line_comment + # might be TODO label + "BFHNTX" line_comment noeat call=comment_todo.comment_todo() + "\n" idle + +:first_digit Constant + * idle noeat + "xX" hex + "." float + "eE" epart + "0-7" octal + "89" bad_number recolor=-1 + +:bad_number Bad + * idle noeat + "0-9" bad_number + +:octal Constant + * idle noeat + "0-7" octal + "89" bad_number recolor=-1 + +:hex Constant + * idle noeat + "0-9A-Fa-f" hex + +:decimal Constant + * idle noeat + "0-9" decimal + "eE" epart + "." float + +:maybe_float Constant + * idle recolor=-2 noeat + "0-9" float recolor=-2 + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +:string Constant + * string + "\"" idle + "\\" string_escape recolor=-1 + "%" string_control recolor=-1 + +:string_escape Escape + * string + "u" string_uni1 + "0-7" string_octal2 + "\n" string recolor=-2 + +:string_uni1 Escape + * string noeat + "0-9a-fA-F" string_uni2 + +:string_uni2 Escape + * string noeat + "0-9a-fA-F" string_uni3 + +:string_uni3 Escape + * string noeat + "0-9a-fA-F" string_uni4 + +:string_uni4 Escape + * string noeat + "0-9a-fA-F" string + +:string_octal2 Escape + * string noeat + "0-7" string_octal3 + +:string_octal3 Escape + * string noeat + "0-7" string + +:string_control Escape + * string_control + "\n" reset + "diouxXeEfFgGaAcspn%SC" string + +:char Constant + * char + "\n" reset + "'" idle + "\\" char_escape recolor=-1 + +:char_escape Escape + * char + "u" char_uni1 + "0-7" char_octal2 + "\n" char recolor=-2 + +:char_uni1 Escape + * char noeat + "0-9a-fA-F" char_uni2 + +:char_uni2 Escape + * char noeat + "0-9a-fA-F" char_uni3 + +:char_uni3 Escape + * char noeat + "0-9a-fA-F" char_uni4 + +:char_uni4 Escape + * char noeat + "0-9a-fA-F" char + +:char_octal2 Escape + * char noeat + "0-7" char_octal3 + +:char_octal3 Escape + * char noeat + "0-7" char + +:ident Idle + * ident_end noeat markend strings + "abstract" kw + "assert" kw + "boolean" type + "break" kw + "byte" type + "case" kw + "catch" kw + "char" type + "class" kw + "const" bad_kw + "continue" kw + "default" kw + "do" kw + "double" type + "else" kw + "enum" kw + "extends" kw + "false" lit + "final" kw + "finally" kw + "float" type + "for" kw + "goto" bad_kw + "if" kw + "implements" kw + "import" kw + "instanceof" operator + "int" type + "interface" kw + "long" type + "native" kw + "new" operator + "null" lit + "package" kw + "private" kw + "protected" kw + "public" kw + "return" kw + "short" type + "static" kw + "strictfp" kw + "super" kw + "switch" kw + "synchronized" kw + "this" kw + "throw" kw + "throws" kw + "transient" kw + "true" lit + "try" kw + "void" kw + "volatile" kw + "while" kw +done + "\c\p{Sc}" ident + +:type Type + * idle noeat + +:kw Keyword + * idle noeat + +:bad_kw Bad + * idle noeat + +:lit Constant + * idle noeat + +:operator Operator + * idle noeat + +:ident_end Idle + * idle noeat + " " ident_end + "(" method_end noeat recolormark + +:method_end Methods + * idle noeat + +.end diff --git a/.joe/syntax/java.jsf.in b/.joe/syntax/java.jsf.in @@ -0,0 +1,274 @@ +# JOE syntax highlight file for JAVA + +# Needs: improve escape parsing + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Type bold +=Keyword bold +=Operator bold +=Bad bold red +=Brace magenta +=Control + +=Methods + +:begin Idle + * begin noeat call=.java() + +# +# Java as a subroute- for use as java script in html +# + +.subr java + +:idle Idle + * idle + "\n" idle + "/" slash + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." maybe_float + "\"" string recolor=-1 + "'" char recolor=-1 + "\i\p{Sc}" ident mark buffer + "{}" brace recolor=-1 + ",:;=()><[]*&|!~+\-%^" control recolor=-1 + +:maybe_done Control + * idle noeat + "/" idle noeat return recolor=-2 + +:brace Brace + * idle noeat + +:control Control + * idle noeat + +:slash Idle + * idle noeat + "*" comment recolor=-2 + "/" line_comment recolor=-2 + +:comment Comment + * comment + # might be TODO label + "BFHNTX" comment noeat call=comment_todo.comment_todo() + "*" maybe_end_comment + +:maybe_end_comment Comment + * comment noeat + "/" idle + "*" maybe_end_comment + +:line_comment Comment + * line_comment + # might be TODO label + "BFHNTX" line_comment noeat call=comment_todo.comment_todo() + "\n" idle + +:first_digit Constant + * idle noeat + "xX" hex + "." float + "eE" epart + "0-7" octal + "89" bad_number recolor=-1 + +:bad_number Bad + * idle noeat + "0-9" bad_number + +:octal Constant + * idle noeat + "0-7" octal + "89" bad_number recolor=-1 + +:hex Constant + * idle noeat + "0-9A-Fa-f" hex + +:decimal Constant + * idle noeat + "0-9" decimal + "eE" epart + "." float + +:maybe_float Constant + * idle recolor=-2 noeat + "0-9" float recolor=-2 + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +:string Constant + * string + "\"" idle + "\\" string_escape recolor=-1 + "%" string_control recolor=-1 + +:string_escape Escape + * string + "u" string_uni1 + "0-7" string_octal2 + "\n" string recolor=-2 + +:string_uni1 Escape + * string noeat + "0-9a-fA-F" string_uni2 + +:string_uni2 Escape + * string noeat + "0-9a-fA-F" string_uni3 + +:string_uni3 Escape + * string noeat + "0-9a-fA-F" string_uni4 + +:string_uni4 Escape + * string noeat + "0-9a-fA-F" string + +:string_octal2 Escape + * string noeat + "0-7" string_octal3 + +:string_octal3 Escape + * string noeat + "0-7" string + +:string_control Escape + * string_control + "\n" reset + "diouxXeEfFgGaAcspn%SC" string + +:char Constant + * char + "\n" reset + "'" idle + "\\" char_escape recolor=-1 + +:char_escape Escape + * char + "u" char_uni1 + "0-7" char_octal2 + "\n" char recolor=-2 + +:char_uni1 Escape + * char noeat + "0-9a-fA-F" char_uni2 + +:char_uni2 Escape + * char noeat + "0-9a-fA-F" char_uni3 + +:char_uni3 Escape + * char noeat + "0-9a-fA-F" char_uni4 + +:char_uni4 Escape + * char noeat + "0-9a-fA-F" char + +:char_octal2 Escape + * char noeat + "0-7" char_octal3 + +:char_octal3 Escape + * char noeat + "0-7" char + +:ident Idle + * ident_end noeat markend strings + "abstract" kw + "assert" kw + "boolean" type + "break" kw + "byte" type + "case" kw + "catch" kw + "char" type + "class" kw + "const" bad_kw + "continue" kw + "default" kw + "do" kw + "double" type + "else" kw + "enum" kw + "extends" kw + "false" lit + "final" kw + "finally" kw + "float" type + "for" kw + "goto" bad_kw + "if" kw + "implements" kw + "import" kw + "instanceof" operator + "int" type + "interface" kw + "long" type + "native" kw + "new" operator + "null" lit + "package" kw + "private" kw + "protected" kw + "public" kw + "return" kw + "short" type + "static" kw + "strictfp" kw + "super" kw + "switch" kw + "synchronized" kw + "this" kw + "throw" kw + "throws" kw + "transient" kw + "true" lit + "try" kw + "void" kw + "volatile" kw + "while" kw +done + "\c\p{Sc}" ident + +:type Type + * idle noeat + +:kw Keyword + * idle noeat + +:bad_kw Bad + * idle noeat + +:lit Constant + * idle noeat + +:operator Operator + * idle noeat + +:ident_end Idle + * idle noeat + " " ident_end + "(" method_end noeat recolormark + +:method_end Methods + * idle noeat + +.end diff --git a/.joe/syntax/joerc.jsf b/.joe/syntax/joerc.jsf @@ -0,0 +1,115 @@ +# JOE syntax highlight file for typical UNIX configuration files + +=Idle +=Comment green +=String cyan +=Escape bold cyan +=Bad bold red + +:idle Idle + * not_comment + "\n" idle + " " comment + "-" option + "\"" keybind_string recolor=-1 + "\i" keybind + +:keybind Idle + * keybind + "\"" keybind_string recolor=-1 + "\n" idle + "," keybind_after_comma + " " keybind1 + +:keybind_after_comma Idle + * keybind noeat + " " keybind_after_comma + "\n" keybind_after_comma + +:keybind_string String + * keybind_string + "\\" keybind_escape recolor=-1 + "\"" keybind + +:keybind_escape Escape + * keybind_string + +:keybind1 Idle + * keybind2 + "\n" idle + " " keybind1 + +:keybind2 Idle + * keybind2 + "\n" idle + " " comment noeat + " " maybe_com + +:maybe_com Idle + * keybind2 noeat + " " comment noeat + +:option Idle + * bad recolor=-1 + "-" option + "\i" ident buffer + +:ident Idle + * comment noeat strings + "backpath" sopt + "lines" nopt + "baud" nopt + "columns" nopt + "skiptop" nopt + "text_color" sopt + "status_color" sopt + "help_color" sopt + "menu_color" sopt + "prompt_color" sopt + "msg_color" sopt + "lmsg" sopt + "rmsg" sopt + "cpara" sopt + "encoding" sopt + "syntax" sopt + "indentc" nopt + "istep" nopt + "lmargin" nopt + "rmargin" nopt + "keymap" sopt + "mfirst" sopt + "mnew" sopt + "mold" sopt + "msnew" sopt + "msold" sopt + "text_delimiters" sopt +done + "\c" ident + +:sopt Idle + * dosopt noeat + +:dosopt String + * dosopt + "\n" idle + +:nopt Idle + * bad recolor=-1 + " " nopt + "0-9" nopt1 recolor=-1 + +:nopt1 String + * comment noeat + "0-9" nopt1 + +:bad Bad + * bad + "\n" idle + +:comment Comment + * comment + "\n" idle + +:not_comment Idle + * not_comment + "\n" idle diff --git a/.joe/syntax/joerc.jsf.in b/.joe/syntax/joerc.jsf.in @@ -0,0 +1,115 @@ +# JOE syntax highlight file for typical UNIX configuration files + +=Idle +=Comment green +=String cyan +=Escape bold cyan +=Bad bold red + +:idle Idle + * not_comment + "\n" idle + " " comment + "-" option + "\"" keybind_string recolor=-1 + "\i" keybind + +:keybind Idle + * keybind + "\"" keybind_string recolor=-1 + "\n" idle + "," keybind_after_comma + " " keybind1 + +:keybind_after_comma Idle + * keybind noeat + " " keybind_after_comma + "\n" keybind_after_comma + +:keybind_string String + * keybind_string + "\\" keybind_escape recolor=-1 + "\"" keybind + +:keybind_escape Escape + * keybind_string + +:keybind1 Idle + * keybind2 + "\n" idle + " " keybind1 + +:keybind2 Idle + * keybind2 + "\n" idle + " " comment noeat + " " maybe_com + +:maybe_com Idle + * keybind2 noeat + " " comment noeat + +:option Idle + * bad recolor=-1 + "-" option + "\i" ident buffer + +:ident Idle + * comment noeat strings + "backpath" sopt + "lines" nopt + "baud" nopt + "columns" nopt + "skiptop" nopt + "text_color" sopt + "status_color" sopt + "help_color" sopt + "menu_color" sopt + "prompt_color" sopt + "msg_color" sopt + "lmsg" sopt + "rmsg" sopt + "cpara" sopt + "encoding" sopt + "syntax" sopt + "indentc" nopt + "istep" nopt + "lmargin" nopt + "rmargin" nopt + "keymap" sopt + "mfirst" sopt + "mnew" sopt + "mold" sopt + "msnew" sopt + "msold" sopt + "text_delimiters" sopt +done + "\c" ident + +:sopt Idle + * dosopt noeat + +:dosopt String + * dosopt + "\n" idle + +:nopt Idle + * bad recolor=-1 + " " nopt + "0-9" nopt1 recolor=-1 + +:nopt1 String + * comment noeat + "0-9" nopt1 + +:bad Bad + * bad + "\n" idle + +:comment Comment + * comment + "\n" idle + +:not_comment Idle + * not_comment + "\n" idle diff --git a/.joe/syntax/js.jsf b/.joe/syntax/js.jsf @@ -0,0 +1,704 @@ +# JOE syntax highlight file for JavaScript +# by Christian Nicolai (http://mycrobase.de) and Rebecca Turner + +# Define colors + +=Idle +=Comment green +=Constant cyan +=String cyan +=StringEscape bold cyan +=Regexp cyan +=RegexpEscape bold cyan +=RegexpOptions cyan +=Number cyan +=Type bold +=CustomType +=Keyword bold +=Global bold +=Exports +=ExportItem +=Operator bold +=Bad inverse bold red +=Brace magenta +=Assign bold +=Paren +=Bracket +=Semicolon +=Comma +=PropSep +=Syntax +=Ident +=Method + +# from html.jsf to support embedded languages +=TagEdge green + +:begin Idle + * begin noeat call=.js() + "#" shebang recolor=-1 + +:shebang Comment + * shebang + "\n" begin + +.subr js + +:idle Idle + * idle + "/" re_or_comment recolor=-1 + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." maybe_float + "\"" after_term call=.string() recolor=-1 save_c + "'" after_term call=.string() recolor=-1 save_c + "`" after_term call=.string(template) recolor=-1 + "A-Z" type_match mark buffer recolor=-1 + "$a-z_" ident mark buffer recolor=-1 + "{}" brace recolor=-1 + "()" paren noeat recolor=-1 + ";" semicolon recolor=-1 + "," comma recolor=-1 + "=" assign_maybe recolor=-1 + "[]" bracket noeat recolor=-1 + "\-" subtract recolor=-1 + "+" add recolor=-1 + "*|&^%" mutate_maybe recolor=-1 + ":?~" syntax recolor=-1 +.ifdef html + "<" maybe_done recolor=-1 + ">!" eqmixer_maybe recolor=-1 +.else +.ifdef php + "<" maybe_done recolor=-1 + ">!" eqmixer_maybe recolor=-1 +.else +.ifdef mason + "<" maybe_done recolor=-1 + ">!" eqmixer_maybe recolor=-1 +.else + "<>!" eqmixer_maybe recolor=-1 +.endif +.endif +.endif + +:subtract Assign + * mutate_maybe noeat + "\-" assign recolor=-2 + +:add Assign + * mutate_maybe noeat + "+" assign recolor=-2 + +:mutate_maybe Assign + * syntax recolor=-2 noeat + "=" assign recolor=-2 + +:syntax Syntax + * idle recolor=-1 noeat + +:assign Assign + * idle recolor=-1 noeat + +:eqmixer_maybe Syntax + * idle recolor=-1 noeat + "=" eqmixer_maybe + +:assign_maybe Assign + * idle recolor=-1 noeat + "=" equality recolor=-2 + +:equality Syntax + * idle recolor=-1 noeat + "=" syntax + +:maybe_done TagEdge + * eqmixer_maybe noeat + "/" idle noeat return recolor=-2 +.ifdef php + "?" rtn_embed call=php.php() +.endif +.ifdef mason + "&%" rtn_embed call=perl.perl() +.endif + +:rtn_embed TagEdge + * idle noeat + +:no_regex Idle + * idle noeat + "/" maybe_comment recolor=-1 + " " no_regex + +:after_term Idle + * after_term + "\n" idle + "/" maybe_comment recolor=-1 + "." prop_sep recolor=-1 +.ifdef typescript + "\"'A-Za-z_0-9" idle noeat +.else + "a-z" infix_operator buffer recolor=-1 + "\"'A-Z_0-9" bad_after_term recolor=-1 +.endif + "{}" brace recolor=-1 + "()" paren noeat recolor=-1 + ";" semicolon recolor=-1 + "=" assign_maybe recolor=-1 + "," comma recolor=-1 + "[]" bracket noeat recolor=-1 + "\-" subtract recolor=-1 + "+" add recolor=-1 + "*|&^%" mutate_maybe recolor=-1 + ":?~" syntax recolor=-1 +.ifdef html + "<" maybe_done recolor=-1 + ">!" eqmixer_maybe recolor=-1 +.else +.ifdef php + "<" maybe_done recolor=-1 + ">!" eqmixer_maybe recolor=-1 +.else +.ifdef mason + "<" maybe_done recolor=-1 + ">!" eqmixer_maybe recolor=-1 +.else + "<>!" eqmixer_maybe recolor=-1 +.endif +.endif +.endif + +:ident_only Idle + * bad_after_term recolor=-1 + "A-Z" type_match mark buffer recolor=-1 + "$a-z_" ident mark buffer recolor=-1 + " \t" ident_only + "\n" idle + +:bad_after_term Bad + * after_term noeat markend strings +done + "\"'" after_term + "a-zA-Z0-9_." bad_after_term + +:re_or_comment Syntax + * regex noeat recolor=-2 + "*/" maybe_comment noeat + +:maybe_comment Syntax + * syntax noeat + "*" comment recolor=-2 + "/" line_comment recolor=-2 + "=" assign recolor=-2 + +:comment Comment + * comment + # might be TODO label + "BFHNTX" comment noeat call=comment_todo.comment_todo() + "*" maybe_end_comment + +:maybe_end_comment Comment + * comment noeat + "/" idle + "*" maybe_end_comment + +:line_comment Comment + * line_comment + # might be TODO label + "BFHNTX" line_comment noeat call=comment_todo.comment_todo() + "\n" idle + +:regex Regexp + * regex + "\\" regex_quote recolor=-1 + "[" regex_charclass + "/" regex_mod + "\n" regex_bad + +:regex_quote RegexpEscape + * regex + "\n" regex_bad + +:regex_charclass Regexp + * regex_charclass + "\\" regex_cc_quote recolor=-1 + "\n" regex_bad_cc + "]" regex + +:regex_cc_quote RegexpEscape + * regex_charclass + "\n" regex_bad_cc + +:regex_bad Bad + * regex_bad + "\\" regex_bad_quote + "[" regex_bad_cc + "/" after_term + +:regex_bad_quote Bad + * regex_bad + +:regex_bad_cc Bad + * regex_bad_cc + "\\" regex_bad_quote_cc + "]" regex_bad + +:regex_bad_quote_cc Bad + * regex_bad_cc + +:regex_mod RegexpOptions + * after_term noeat + "igm" regex_mod + +:brace Brace + * idle noeat + +:paren Paren + "(" idle + ")" no_regex + +:bracket Bracket + "[" idle + "]" after_term + +:syntax Syntax + * idle noeat + +:comma Comma + * idle noeat + +:semicolon Semicolon + * idle noeat + +:first_digit Number + * after_term noeat + "xX" hex + "." float + "eE" epart + "0-7" octal + "89" bad_number recolor=-1 + +:bad_number Bad + * after_term noeat + "0-9" bad_number + +:octal Number + * after_term noeat + "0-7" octal + "89" bad_number recolor=-1 + +:hex Number + * after_term noeat + "0-9A-Fa-f" hex + +:decimal Number + * after_term noeat + "0-9" decimal + "eE" epart + "." float + +:maybe_float Number + * prop_sep noeat recolor=-2 +.ifdef typescript + "." ellipsis recolor=-2 +.endif + "0-9" float recolor=-2 + +:prop_sep PropSep + * ident_only noeat + +:float Number + * after_term noeat + "eE" epart + "0-9" float + +:epart Number + * after_term noeat + "0-9+\-" enum + +:enum Number + * after_term noeat + "0-9" enum + +:infix_operator Bad + * bad_op noeat markend strings + "in" operator + "instanceof" operator + "of" operator +done + "a-zA-Z0-9_" infix_operator + +.ifdef typescript +:ellipsis Idle + * bad_after_term recolor=-3 + "." ident_only +.endif + +:bad_op Bad + * idle noeat + "a-zA-Z0-9_" bad_op + +:operator Operator + * idle noeat + +:type_match CustomType + * type_end noeat markend strings + "Infinity" lit + "NaN" lit + "Array" type + "ArrayBuffer" type + "Boolean" type + "DataView" type + "Date" type + "Error" type + "EvalError" type + "Function" type + "Float32Array" type + "Float64Array" type + "Int16Array" type + "Int32Array" type + "Int8Array" type + "JSON" type + "Math" type + "Number" type + "Object" type + "RangeError" type + "ReferenceError" type + "RegExp" type + "String" type + "SyntaxError" type + "TypeError" type + "Uint16Array" type + "Uint32Array" type + "Uint8Array" type + "Uint8ClampedArray" type + "URIError" type + # node.js + "Buffer" type +done + "a-zA-Z0-9_" type_match + +:type_end Idle + * after_term noeat + " " type_end + "." prop_sep recolor=-1 + +.ifdef typescript + +:ident Ident + * ident_end noeat markend strings + "delete" operator + "in" operator + "instanceof" operator + "typeof" operator + "new" operator + "arguments" kw + "break" kw + "case" kw + "catch" kw + "continue" kw + "default" kw + "do" kw + "else" kw + "finally" kw + "for" kw + "function" kw + "if" kw + "let" kw + "of" kw + "return" kw + "switch" kw + "throw" kw + "try" kw + "var" kw + "void" kw + "while" kw + "with" kw + "false" lit + "null" lit + "true" lit + "decodeURI" global + "decodeURIComponent" global + "encodeURI" global + "encodeURIComponent" global + "escape" global + "eval" global + "isFinite" global + "isNaN" global + "parseFloat" global + "parseInt" global + "undefined" global + "unescape" global + "setImmediate" global + "this" quasikw + "prototype" quasikw + # node.js + "exports" export + "module" global + "process" global + "global" global + "console" global + "setTimeout" global + "setInterval" global + "clearInterval" global + "clearTimeout" global + "require" quasikw + "__filename" quasikw + "__dirname" quasikw + "const" kw + # By convention... + "self" quasikw + + # Typescript-specific + "abstract" kw + "as" kw + "async" kw + "await" kw + "class" kw + "constructor" kw + "declare" kw + "enum" kw + "extends" kw + "export" kw + "from" kw + "get" kw + "implements" kw + "import" kw + "instanceof" kw + "interface" kw + "is" kw + "module" kw + "namespace" kw + "private" kw + "public" kw + "require" kw + "set" kw + "static" kw + "super" kw + "typeof" kw + + "any" type + "boolean" type + "number" type + "string" type + +done + "$a-zA-Z0-9_" ident + +.else + +:ident Ident + * ident_end noeat markend strings + "delete" operator + "in" operator + "instanceof" operator + "typeof" operator + "new" operator + "arguments" kw + "break" kw + "case" kw + "catch" kw + "continue" kw + "default" kw + "do" kw + "else" kw + "finally" kw + "for" kw + "function" kw + "if" kw + "let" kw + "of" kw + "return" kw + "switch" kw + "throw" kw + "try" kw + "var" kw + "void" kw + "while" kw + "with" kw + "false" lit + "null" lit + "true" lit + "decodeURI" global + "decodeURIComponent" global + "encodeURI" global + "encodeURIComponent" global + "escape" global + "eval" global + "isFinite" global + "isNaN" global + "parseFloat" global + "parseInt" global + "undefined" global + "unescape" global + "setImmediate" global + "this" quasikw + "prototype" quasikw + # node.js + "exports" export + "module" global + "process" global + "global" global + "console" global + "setTimeout" global + "setInterval" global + "clearInterval" global + "clearTimeout" global + "require" quasikw + "__filename" quasikw + "__dirname" quasikw + "const" kw + # By convention... + "self" quasikw +done + "$a-zA-Z0-9_" ident + +.endif + +:ident_end Idle + * after_term noeat + " " ident_end + "." prop_sep recolor=-1 + "(" method_start recolor=-1 + +:method_start Paren + * method_end noeat recolormark + +:method_end Method + * idle noeat + +:type Type + * after_term noeat + +:kw Keyword + * idle noeat + +:quasikw Keyword + * after_term noeat + +:global Global + * after_term noeat + +:export Exports + * export_end noeat + +:export_end Exports + * after_term noeat + " " export_end + "." export_item_start + +:export_item_start ExportItem + * bad_after_term recolor=-1 noeat + " " export_item_start + "a-zA-Z_" export_item + +:export_item ExportItem + * after_term noeat + "a-zA-Z0-9_" export_item + +:lit Constant + * lit_end noeat + +:lit_end Constant + * after_term noeat + " " lit_end + "." prop_sep recolor=-1 + +.end + +.subr string + +:string String + * string_body noeat mark + +:string_body String + * string + "\n" string_bad +.ifdef template + "$" string_template + "`" after_term return # save_c saves ` as ' (by-design) +.else + & after_term return +.endif + "\\" string_escape recolor=-1 + +:string_bad Bad + * string_bad + "\\" string_bad_escape +.ifdef template + "`" after_term return +.else + & after_term return +.endif + +:string_bad_escape Bad + * string_bad + +:string_template StringEscape + * string_bad + "{" string_template_expr + +:string_template_expr Type + * string_template_expr +.ifdef template + "`" string_body noeat +.else + & string_body noeat +.endif + "}" string_template_end noeat + +:string_template_end StringEscape + * string + +:string_escape StringEscape + * string + "x" string_hex1 + "u" string_uni1 + "0-7" string_octal2 + "\n" string_bad noeat + +:string_hex1 StringEscape + * string noeat + "0-9a-fA-F" string_hex2 + +:string_hex2 StringEscape + * string noeat + "0-9a-fA-F" string + +:string_uni1 StringEscape + * string noeat + "{" string_uni_brackets + "0-9a-fA-F" string_uni2 + +:string_uni2 StringEscape + * string noeat + "0-9a-fA-F" string_uni3 + +:string_uni3 StringEscape + * string noeat + "0-9a-fA-F" string_uni4 + +:string_uni4 StringEscape + * string noeat + "0-9a-fA-F" string + +:string_uni_brackets StringEscape + * string_bad_escape noeat +.ifdef template + "`" string noeat +.else + & string noeat +.endif + "}" string + "0-9a-fA-F" string_uni_brackets + +:string_octal2 StringEscape + * string noeat + "0-7" string_octal3 + +:string_octal3 StringEscape + * string noeat + "0-7" string + +.end + diff --git a/.joe/syntax/js.jsf.in b/.joe/syntax/js.jsf.in @@ -0,0 +1,704 @@ +# JOE syntax highlight file for JavaScript +# by Christian Nicolai (http://mycrobase.de) and Rebecca Turner + +# Define colors + +=Idle +=Comment green +=Constant cyan +=String cyan +=StringEscape bold cyan +=Regexp cyan +=RegexpEscape bold cyan +=RegexpOptions cyan +=Number cyan +=Type bold +=CustomType +=Keyword bold +=Global bold +=Exports +=ExportItem +=Operator bold +=Bad inverse bold red +=Brace magenta +=Assign bold +=Paren +=Bracket +=Semicolon +=Comma +=PropSep +=Syntax +=Ident +=Method + +# from html.jsf to support embedded languages +=TagEdge green + +:begin Idle + * begin noeat call=.js() + "#" shebang recolor=-1 + +:shebang Comment + * shebang + "\n" begin + +.subr js + +:idle Idle + * idle + "/" re_or_comment recolor=-1 + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." maybe_float + "\"" after_term call=.string() recolor=-1 save_c + "'" after_term call=.string() recolor=-1 save_c + "`" after_term call=.string(template) recolor=-1 + "A-Z" type_match mark buffer recolor=-1 + "$a-z_" ident mark buffer recolor=-1 + "{}" brace recolor=-1 + "()" paren noeat recolor=-1 + ";" semicolon recolor=-1 + "," comma recolor=-1 + "=" assign_maybe recolor=-1 + "[]" bracket noeat recolor=-1 + "\-" subtract recolor=-1 + "+" add recolor=-1 + "*|&^%" mutate_maybe recolor=-1 + ":?~" syntax recolor=-1 +.ifdef html + "<" maybe_done recolor=-1 + ">!" eqmixer_maybe recolor=-1 +.else +.ifdef php + "<" maybe_done recolor=-1 + ">!" eqmixer_maybe recolor=-1 +.else +.ifdef mason + "<" maybe_done recolor=-1 + ">!" eqmixer_maybe recolor=-1 +.else + "<>!" eqmixer_maybe recolor=-1 +.endif +.endif +.endif + +:subtract Assign + * mutate_maybe noeat + "\-" assign recolor=-2 + +:add Assign + * mutate_maybe noeat + "+" assign recolor=-2 + +:mutate_maybe Assign + * syntax recolor=-2 noeat + "=" assign recolor=-2 + +:syntax Syntax + * idle recolor=-1 noeat + +:assign Assign + * idle recolor=-1 noeat + +:eqmixer_maybe Syntax + * idle recolor=-1 noeat + "=" eqmixer_maybe + +:assign_maybe Assign + * idle recolor=-1 noeat + "=" equality recolor=-2 + +:equality Syntax + * idle recolor=-1 noeat + "=" syntax + +:maybe_done TagEdge + * eqmixer_maybe noeat + "/" idle noeat return recolor=-2 +.ifdef php + "?" rtn_embed call=php.php() +.endif +.ifdef mason + "&%" rtn_embed call=perl.perl() +.endif + +:rtn_embed TagEdge + * idle noeat + +:no_regex Idle + * idle noeat + "/" maybe_comment recolor=-1 + " " no_regex + +:after_term Idle + * after_term + "\n" idle + "/" maybe_comment recolor=-1 + "." prop_sep recolor=-1 +.ifdef typescript + "\"'A-Za-z_0-9" idle noeat +.else + "a-z" infix_operator buffer recolor=-1 + "\"'A-Z_0-9" bad_after_term recolor=-1 +.endif + "{}" brace recolor=-1 + "()" paren noeat recolor=-1 + ";" semicolon recolor=-1 + "=" assign_maybe recolor=-1 + "," comma recolor=-1 + "[]" bracket noeat recolor=-1 + "\-" subtract recolor=-1 + "+" add recolor=-1 + "*|&^%" mutate_maybe recolor=-1 + ":?~" syntax recolor=-1 +.ifdef html + "<" maybe_done recolor=-1 + ">!" eqmixer_maybe recolor=-1 +.else +.ifdef php + "<" maybe_done recolor=-1 + ">!" eqmixer_maybe recolor=-1 +.else +.ifdef mason + "<" maybe_done recolor=-1 + ">!" eqmixer_maybe recolor=-1 +.else + "<>!" eqmixer_maybe recolor=-1 +.endif +.endif +.endif + +:ident_only Idle + * bad_after_term recolor=-1 + "A-Z" type_match mark buffer recolor=-1 + "$a-z_" ident mark buffer recolor=-1 + " \t" ident_only + "\n" idle + +:bad_after_term Bad + * after_term noeat markend strings +done + "\"'" after_term + "a-zA-Z0-9_." bad_after_term + +:re_or_comment Syntax + * regex noeat recolor=-2 + "*/" maybe_comment noeat + +:maybe_comment Syntax + * syntax noeat + "*" comment recolor=-2 + "/" line_comment recolor=-2 + "=" assign recolor=-2 + +:comment Comment + * comment + # might be TODO label + "BFHNTX" comment noeat call=comment_todo.comment_todo() + "*" maybe_end_comment + +:maybe_end_comment Comment + * comment noeat + "/" idle + "*" maybe_end_comment + +:line_comment Comment + * line_comment + # might be TODO label + "BFHNTX" line_comment noeat call=comment_todo.comment_todo() + "\n" idle + +:regex Regexp + * regex + "\\" regex_quote recolor=-1 + "[" regex_charclass + "/" regex_mod + "\n" regex_bad + +:regex_quote RegexpEscape + * regex + "\n" regex_bad + +:regex_charclass Regexp + * regex_charclass + "\\" regex_cc_quote recolor=-1 + "\n" regex_bad_cc + "]" regex + +:regex_cc_quote RegexpEscape + * regex_charclass + "\n" regex_bad_cc + +:regex_bad Bad + * regex_bad + "\\" regex_bad_quote + "[" regex_bad_cc + "/" after_term + +:regex_bad_quote Bad + * regex_bad + +:regex_bad_cc Bad + * regex_bad_cc + "\\" regex_bad_quote_cc + "]" regex_bad + +:regex_bad_quote_cc Bad + * regex_bad_cc + +:regex_mod RegexpOptions + * after_term noeat + "igm" regex_mod + +:brace Brace + * idle noeat + +:paren Paren + "(" idle + ")" no_regex + +:bracket Bracket + "[" idle + "]" after_term + +:syntax Syntax + * idle noeat + +:comma Comma + * idle noeat + +:semicolon Semicolon + * idle noeat + +:first_digit Number + * after_term noeat + "xX" hex + "." float + "eE" epart + "0-7" octal + "89" bad_number recolor=-1 + +:bad_number Bad + * after_term noeat + "0-9" bad_number + +:octal Number + * after_term noeat + "0-7" octal + "89" bad_number recolor=-1 + +:hex Number + * after_term noeat + "0-9A-Fa-f" hex + +:decimal Number + * after_term noeat + "0-9" decimal + "eE" epart + "." float + +:maybe_float Number + * prop_sep noeat recolor=-2 +.ifdef typescript + "." ellipsis recolor=-2 +.endif + "0-9" float recolor=-2 + +:prop_sep PropSep + * ident_only noeat + +:float Number + * after_term noeat + "eE" epart + "0-9" float + +:epart Number + * after_term noeat + "0-9+\-" enum + +:enum Number + * after_term noeat + "0-9" enum + +:infix_operator Bad + * bad_op noeat markend strings + "in" operator + "instanceof" operator + "of" operator +done + "a-zA-Z0-9_" infix_operator + +.ifdef typescript +:ellipsis Idle + * bad_after_term recolor=-3 + "." ident_only +.endif + +:bad_op Bad + * idle noeat + "a-zA-Z0-9_" bad_op + +:operator Operator + * idle noeat + +:type_match CustomType + * type_end noeat markend strings + "Infinity" lit + "NaN" lit + "Array" type + "ArrayBuffer" type + "Boolean" type + "DataView" type + "Date" type + "Error" type + "EvalError" type + "Function" type + "Float32Array" type + "Float64Array" type + "Int16Array" type + "Int32Array" type + "Int8Array" type + "JSON" type + "Math" type + "Number" type + "Object" type + "RangeError" type + "ReferenceError" type + "RegExp" type + "String" type + "SyntaxError" type + "TypeError" type + "Uint16Array" type + "Uint32Array" type + "Uint8Array" type + "Uint8ClampedArray" type + "URIError" type + # node.js + "Buffer" type +done + "a-zA-Z0-9_" type_match + +:type_end Idle + * after_term noeat + " " type_end + "." prop_sep recolor=-1 + +.ifdef typescript + +:ident Ident + * ident_end noeat markend strings + "delete" operator + "in" operator + "instanceof" operator + "typeof" operator + "new" operator + "arguments" kw + "break" kw + "case" kw + "catch" kw + "continue" kw + "default" kw + "do" kw + "else" kw + "finally" kw + "for" kw + "function" kw + "if" kw + "let" kw + "of" kw + "return" kw + "switch" kw + "throw" kw + "try" kw + "var" kw + "void" kw + "while" kw + "with" kw + "false" lit + "null" lit + "true" lit + "decodeURI" global + "decodeURIComponent" global + "encodeURI" global + "encodeURIComponent" global + "escape" global + "eval" global + "isFinite" global + "isNaN" global + "parseFloat" global + "parseInt" global + "undefined" global + "unescape" global + "setImmediate" global + "this" quasikw + "prototype" quasikw + # node.js + "exports" export + "module" global + "process" global + "global" global + "console" global + "setTimeout" global + "setInterval" global + "clearInterval" global + "clearTimeout" global + "require" quasikw + "__filename" quasikw + "__dirname" quasikw + "const" kw + # By convention... + "self" quasikw + + # Typescript-specific + "abstract" kw + "as" kw + "async" kw + "await" kw + "class" kw + "constructor" kw + "declare" kw + "enum" kw + "extends" kw + "export" kw + "from" kw + "get" kw + "implements" kw + "import" kw + "instanceof" kw + "interface" kw + "is" kw + "module" kw + "namespace" kw + "private" kw + "public" kw + "require" kw + "set" kw + "static" kw + "super" kw + "typeof" kw + + "any" type + "boolean" type + "number" type + "string" type + +done + "$a-zA-Z0-9_" ident + +.else + +:ident Ident + * ident_end noeat markend strings + "delete" operator + "in" operator + "instanceof" operator + "typeof" operator + "new" operator + "arguments" kw + "break" kw + "case" kw + "catch" kw + "continue" kw + "default" kw + "do" kw + "else" kw + "finally" kw + "for" kw + "function" kw + "if" kw + "let" kw + "of" kw + "return" kw + "switch" kw + "throw" kw + "try" kw + "var" kw + "void" kw + "while" kw + "with" kw + "false" lit + "null" lit + "true" lit + "decodeURI" global + "decodeURIComponent" global + "encodeURI" global + "encodeURIComponent" global + "escape" global + "eval" global + "isFinite" global + "isNaN" global + "parseFloat" global + "parseInt" global + "undefined" global + "unescape" global + "setImmediate" global + "this" quasikw + "prototype" quasikw + # node.js + "exports" export + "module" global + "process" global + "global" global + "console" global + "setTimeout" global + "setInterval" global + "clearInterval" global + "clearTimeout" global + "require" quasikw + "__filename" quasikw + "__dirname" quasikw + "const" kw + # By convention... + "self" quasikw +done + "$a-zA-Z0-9_" ident + +.endif + +:ident_end Idle + * after_term noeat + " " ident_end + "." prop_sep recolor=-1 + "(" method_start recolor=-1 + +:method_start Paren + * method_end noeat recolormark + +:method_end Method + * idle noeat + +:type Type + * after_term noeat + +:kw Keyword + * idle noeat + +:quasikw Keyword + * after_term noeat + +:global Global + * after_term noeat + +:export Exports + * export_end noeat + +:export_end Exports + * after_term noeat + " " export_end + "." export_item_start + +:export_item_start ExportItem + * bad_after_term recolor=-1 noeat + " " export_item_start + "a-zA-Z_" export_item + +:export_item ExportItem + * after_term noeat + "a-zA-Z0-9_" export_item + +:lit Constant + * lit_end noeat + +:lit_end Constant + * after_term noeat + " " lit_end + "." prop_sep recolor=-1 + +.end + +.subr string + +:string String + * string_body noeat mark + +:string_body String + * string + "\n" string_bad +.ifdef template + "$" string_template + "`" after_term return # save_c saves ` as ' (by-design) +.else + & after_term return +.endif + "\\" string_escape recolor=-1 + +:string_bad Bad + * string_bad + "\\" string_bad_escape +.ifdef template + "`" after_term return +.else + & after_term return +.endif + +:string_bad_escape Bad + * string_bad + +:string_template StringEscape + * string_bad + "{" string_template_expr + +:string_template_expr Type + * string_template_expr +.ifdef template + "`" string_body noeat +.else + & string_body noeat +.endif + "}" string_template_end noeat + +:string_template_end StringEscape + * string + +:string_escape StringEscape + * string + "x" string_hex1 + "u" string_uni1 + "0-7" string_octal2 + "\n" string_bad noeat + +:string_hex1 StringEscape + * string noeat + "0-9a-fA-F" string_hex2 + +:string_hex2 StringEscape + * string noeat + "0-9a-fA-F" string + +:string_uni1 StringEscape + * string noeat + "{" string_uni_brackets + "0-9a-fA-F" string_uni2 + +:string_uni2 StringEscape + * string noeat + "0-9a-fA-F" string_uni3 + +:string_uni3 StringEscape + * string noeat + "0-9a-fA-F" string_uni4 + +:string_uni4 StringEscape + * string noeat + "0-9a-fA-F" string + +:string_uni_brackets StringEscape + * string_bad_escape noeat +.ifdef template + "`" string noeat +.else + & string noeat +.endif + "}" string + "0-9a-fA-F" string_uni_brackets + +:string_octal2 StringEscape + * string noeat + "0-7" string_octal3 + +:string_octal3 StringEscape + * string noeat + "0-7" string + +.end + diff --git a/.joe/syntax/jsf.jsf b/.joe/syntax/jsf.jsf @@ -0,0 +1,784 @@ +# JOE Syntax-Highlighting Description +# for +# JOE Syntax-Highlighting Descriptions +# +# Author: Charles J. Tabony +# Date: 2007-2-13 +# +# This is a highlighting description for files like this one. +# +# When CHECKING is defined, it is very aggressive about error checking. The +# idea is that anywhere the highlighted file contains a syntax error, at least +# one visible character should be highlighted as Bad. While that feature is +# useful for finding syntax errors, it is annoying when editing a file, since +# nearly everything is an error until you finish typing it. +# +# In order to not annoy people by default, but keep the option of strictly +# checking syntax, I predicated the stricter checking on the CHECKING parameter. +# By default, things that are incomplete are generally not marked as errors. +# Only things that appear to be actual mistakes are highlighted as Bad. To +# enable the stricter checking, one can highlight the file with the jsf_check +# syntax. jsf_check.jsf simply calls the entire jsf.jsf file with CHECKING +# defined. +# +# The idea is for authors of a jsf file to edit their file, highlight it with +# jsf_check, and then look for any red characters. That way they can check for +# syntax errors before testing the changes. + + + + +##################### +# Color Definitions # +##################### + +=Idle +=Comment green +=Conditional blue +=Parameter bold blue +=Keyword bold +=Color yellow +=StandardColor bold +=State +=Subr magenta +=Literal cyan +=Escape bold cyan +=Bad bold red + + + + +################## +# Initial States # +################## + +# This is a dummy state that simply jumps to comment_or_bad. It is here so that +# when this file calls itself with the STRINGS parameter defined, comment_or_bad +# will effectively be the initial state. comment_or_bad should be the initial +# state because strings and istrings options can only be used as the last option +# of a transition. +.ifdef STRINGS +:strings_initial Idle + * comment_or_bad noeat +.endif + +# Each new line (that is not considered bad from the beginning) begins in the +# idle state. The first non-whitespace character determines what the rest of +# the line should contain. Following a strings or istrings option, only strings +# and comments are allowed until the word "done" denotes the end of the list. +:idle Idle + * bad noeat + " \t\n" idle +.ifdef STRINGS +.else + "-" sync_lines_first + "." conditional_first mark recolor=-1 + "=" color_definition_first + ":" state_first + "*&%" special_character recolor=-1 +.endif + "\"" string recolor=-1 +.ifdef STRINGS + "\i" special_word mark recolor=-1 buffer +.endif + "#" comment recolor=-1 + + +############## +# Sync Lines # +############## + +# Following a '-' should be either the number of sync lines or nothing (meaning +# unlimited). Nothing else other than a comment should appear on the same line. +.ifdef STRINGS +# A sync lines directive should not appear between "[i]strings" and "done". +.else +# If we see a non-digit or a '0', then we have seen the entire sync lines +# directive. The only thing that may appear on the rest of the line is a +# comment. Otherwise there may be more digits in the number. +:sync_lines_first Literal + * comment_or_bad noeat + "0" comment_or_bad + "1-9" sync_lines + +# Highlight the remainder of the number. +:sync_lines Literal + * comment_or_bad noeat + "0-9" sync_lines +.endif + + +########################## +# Conditional Directives # +########################## + +# Following a '.' should be a conditional directive. +.ifdef STRINGS +# A conditional directive should not appear between "[i]strings" and "done". +.else +# Start buffering the conditional directive. +:conditional_first Conditional + * conditional noeat buffer + +# Recognize the set of conditional directives. +:conditional Idle + * conditional_unknown noeat strings + "ifdef" ifdef_color + "else" conditional_color + "endif" conditional_color + "subr" subr_color + "end" conditional_color + done + "\c" conditional + +# We encountered what looks like a conditional directive but is unrecognized as +# such. +:conditional_unknown Idle +.ifdef CHECKING + * bad_line recolormark noeat +.else + * comment_or_bad noeat +.endif + +# We saw a conditional directive that does not take an argument. Nothing else +# other than a comment should appear on the same line. +:conditional_color Conditional + * comment_or_bad noeat + +# We saw a ".ifdef" which must be followed by a parameter. +:ifdef_color Conditional + * need_parameter noeat + +# We loop over whitespace until we see the first character of the parameter. +:need_parameter Idle + * bad noeat + " \t" need_parameter + "\i" parameter recolor=-1 + +# Now we highlight the remainder of the parameter. +:parameter Parameter + * comment_or_bad noeat + "\c" parameter + +# The following three states are identical to the previous three except the +# color. +:subr_color Conditional + * need_subr noeat + +:need_subr Idle + * bad noeat + " \t" need_subr + "\i" subr recolor=-1 + +:subr Subr + * comment_or_bad noeat + "\c" subr +.endif + + +#################### +# Color Definition # +#################### + +# Following an '=' should be a color definition. +.ifdef STRINGS +# Color definitions should not appear between "[i]strings" and "done". +.else +# A color name must have at least one character. +:color_definition_first Color + * color_definition + " \t#\n" bad noeat + +# Highlight any remaining characters until we see whitespace, a comment, or a +# newline. +:color_definition Color + * color_definition + " \t#\n" colors_ws noeat + +# The color name may be followed by zero or more standard colors or attributes, +# ending in a comment or newline. +:colors_ws Idle + * color_bad recolor=-1 + " \t" colors_ws + "\i" color mark recolor=-1 buffer + "#\n" comment noeat + +# Here we recognize the attributes and standard color names. None of the +# attributes or standard color names contain a digit except fg_NNN and bg_NNN, +# which are handled specially below. +:color Idle + * color_unknown noeat strings + "inverse" color_color + "underline" color_color + "bold" color_color + "italic" color_color + "blink" color_color + "dim" color_color + "white" color_color + "cyan" color_color + "magenta" color_color + "blue" color_color + "yellow" color_color + "green" color_color + "red" color_color + "black" color_color + "bg_white" color_color + "bg_cyan" color_color + "bg_magenta" color_color + "bg_blue" color_color + "bg_yellow" color_color + "bg_green" color_color + "bg_red" color_color + "bg_black" color_color + "WHITE" color_color + "CYAN" color_color + "MAGENTA" color_color + "BLUE" color_color + "YELLOW" color_color + "GREEN" color_color + "RED" color_color + "BLACK" color_color + "bg_WHITE" color_color + "bg_CYAN" color_color + "bg_MAGENTA" color_color + "bg_BLUE" color_color + "bg_YELLOW" color_color + "bg_GREEN" color_color + "bg_RED" color_color + "bg_BLACK" color_color + "fg_" color_number_first + "bg_" color_number_first + done + "\c" color + +# We encountered what looks like a standard color but is unrecognized as such. +:color_unknown Idle +.ifdef CHECKING + * color_bad recolormark noeat +.else + * colors_ws noeat +.endif + +# Here we have seen either "fg_" or "bg_". We now expect to find a number. The +# number should either be a one to two digit number, representing greyscale +# intensity, in the range 0-23, or a three digit number, where each digit is in +# the range 0-5 and represents the intensity of red, green, and blue +# respectively. +:color_number_first Idle +.ifdef CHECKING + * color_bad recolormark noeat +.else + * color_bad noeat +.endif + "0" color_zero + "1" color_one + "2" color_two + "3-5" color_number_second + "6-9" color_end + +# The first digit is a zero, thus we either have a greyscale intensity of 0, in +# which case we should not see any more digits, or we have the first RGB digit, +# in which case we should see two more ditits in the range 0-5. +:color_zero Idle +.ifdef CHECKING + * color_bad recolormark noeat +.else + * color_bad noeat +.endif + "0-5" color_rgb_third + " \t#\n" color_color recolormark noeat + +# The first digit is a one. If we see whitespace or a comment, then we have a +# greyscale intensity of 1. If we see a digit 6-9, then we have a greyscale +# intensity of 16-19. If we see a digit 0-5, then we either have a greyscale +# intensity of 10-15 or an RGB value. +:color_one Idle +.ifdef CHECKING + * color_bad recolormark noeat +.else + * color_bad noeat +.endif + "0-5" color_number_third + "6-9" color_end + " \t#\n" color_color recolormark noeat + +# The first digit is a two. If we see whitespace or a comment, then we have a +# greyscale intensity of 2. If we see a digit 4-5, then we have the first two +# digits of an RGB value. If we see a digit 0-3, then we either have a +# greyscale intensity of 20-23 or an RGB value. +:color_two Idle +.ifdef CHECKING + * color_bad recolormark noeat +.else + * color_bad noeat +.endif + "0-3" color_number_third + "4-5" color_rgb_third + " \t#\n" color_color recolormark noeat + +# We have seen one digit that could be either the greyscale intensity or the +# first RGB digit. If we see any more digits, they we must have an RGB value, +# because otherwise the number would be outside the range 0-23. +:color_number_second Idle +.ifdef CHECKING + * color_bad recolormark noeat +.else + * color_bad noeat +.endif + "0-5" color_rgb_third + " \t#\n" color_color recolormark noeat + +# We have seen two digits that could be either the greyscale intensity or the +# first two RGB digits. If we see any more digits, they we must have an RGB +# value, because otherwise the number would be outside the range 0-23. +:color_number_third Idle +.ifdef CHECKING + * color_bad recolormark noeat +.else + * color_bad noeat +.endif + "0-5" color_end + " \t#\n" color_color recolormark noeat + +# We have seen two digits, both 0-5, that either start with zero or are outside +# the range 0-23. Thus we expect a third 0-5 digit. +:color_rgb_third Idle +.ifdef CHECKING + * color_bad recolormark noeat +.else + * color_bad noeat +.endif + "0-5" color_end + +# We have seen "fg_" or "bg_" followed by one to three digits. Any more digits +# would either be too many or make the number out of range. We now expect to +# see whitespace, a comment, or a newline. +:color_end Idle +.ifdef CHECKING + * color_bad recolormark noeat +.else + * color_bad noeat +.endif + " \t#\n" color_color recolormark noeat + +# This is a dummy state that simply provides the highlighting color for the +# standard color or attribute and jumps to colors_ws without consuming any +# characters. +:color_color StandardColor + * colors_ws noeat + +# We have encountered something that is not recognized as a standard color or +# attribute. Continue to highlight characters as Bad until we see whitespace, a +# comment, or a newline. +:color_bad Bad + * color_bad + " \t#\n" colors_ws noeat +.endif + + +######### +# State # +######### + +# Following a ':' should be a state definition. +.ifdef STRINGS +# New states should not appear between "[i]strings" and "done". +.else +# A state name must begin with an alpha character or an underscore. +:state_first State + * bad noeat + "\i" state + +# Subsequent characters in a state name must be alpha-numeric or underscores. +:state State + * bad noeat + "\c" state + " \t" need_state_color recolor=-1 + +# A state must have a color. +:need_state_color Idle + * state_color recolor=-1 + " \t" need_state_color + "#\n" bad noeat + +# Highlight any remaining characters until we see whitespace, a comment, or a +# newline. +:state_color Color + * state_color + " \t" context_ws recolor=-1 + "#\n" comment_or_bad noeat + +# Following the state color, there might be one or more contexts. Loop over +# whitespace until we find something else. +:context_ws Idle + * comment_or_bad noeat + " \t" context_ws + "\i" context mark recolor=-1 buffer + +# Here we recognize the possible contexts. +:context Idle + * context_unknown noeat strings + "comment" context_color + "string" context_color + done + "\c" context + +# We encountered what looks like a context but is unrecognized as such. +:context_unknown Idle +.ifdef CHECKING + * context_bad recolormark noeat +.else + * context_ws noeat +.endif + +# We encountered a valid context. +:context_color Keyword + * context_ws noeat + +# We saw something that is not a valid context name with checking enabled. +# Continue to highlight it as Bad until we see whitespace or a comment. +:context_bad Bad + * context_bad + " \t#\n" context_ws noeat +.endif + + +############## +# Transition # +############## + +# A state transition starts with a '*', an '&', or a string. +.ifdef STRINGS +# Transitions must start with a string between "[i]strings" and "done". +.else +# We saw either a '*' or an '&'. Now we need the next state. +:special_character Keyword + * need_next_state noeat +.endif + +# We are in a string. Continue until we see the close quote or a newline. +# Highlight escaped characters within the string differently. They start with a +# '\'. +:string Literal string + * string + "\\" escape recolor=-1 + "\"" need_next_state +.ifdef CHECKING + "\n" bad +.else + "\n" bad noeat +.endif + +# Highlight an escaped character within a string. +:escape Escape string + * string + +# Loop over whitespace until we see the first character of the next state. +:need_next_state Idle + * bad noeat + " \t" need_next_state + "\i" next_state recolor=-1 + +# Now we highlight the remainder of the next state. +:next_state State + * bad noeat + "\c" next_state + " \t" options_ws + "#\n" comment noeat + +# Following the next state should be zero or more options. Loop over whitespace +# until we find an option, comment, or newline. +:options_ws Idle + * option_bad recolor=-1 + " \t" options_ws + "\i" option mark recolor=-1 buffer + "#\n" comment noeat + +# Here we recognize the possible options. The strings and istrings options +# cannot be used between "[i]strings" and "done". Since conditional directives +# cannot be used between "[i]strings" and "done" either, the list must be +# duplicated, once without and once with the strings and istrings options. +:option Idle +.ifdef STRINGS + * option_unknown recolormark noeat strings + "noeat" option_color + "recolor" recolor_color + "mark" option_color + "markend" option_color + "recolormark" option_color + "buffer" option_color + "save_c" option_color + "save_s" option_color + "hold" option_color + "call" call_color + "return" option_color + "reset" option_color + done +.else + * option_unknown recolormark noeat strings + "noeat" option_color + "recolor" recolor_color + "mark" option_color + "markend" option_color + "recolormark" option_color + "buffer" option_color + "save_c" option_color + "save_s" option_color + "strings" strings_color + "istrings" strings_color + "hold" option_color + "call" call_color + "return" option_color + "reset" option_color + done +.endif + "\c" option + +# We encountered what looks like an option but is unrecognized as such. +:option_unknown Idle +.ifdef CHECKING + * option_bad recolormark noeat +.else + * options_ws noeat +.endif + +# We have encountered an option that does not take an argument. Highlight it +# and continue to look for more options. +:option_color Keyword + * options_ws noeat + +.ifdef STRINGS +# The strings and istrings options cannot be used between "[i]strings" and +# "done". +.else +# The strings and istrings options are followed by a list of transitions. +# Rather than duplicate all of the states that highlight transitions, we call +# this entire file as a subroutine and use the STRINGS parameter to disable +# everything else and enable the done keyword. We return to the comment_or_bad +# state since we will return after seeing the done keyword, and nothing but a +# comment should follow the done keyword. +:strings_color Keyword + * comment_or_bad noeat call=jsf(STRINGS) +.endif + +# Highlight the recolor option. +:recolor_color Keyword + * recolor_equal noeat + +# The recolor option must be followed by an '='. Loop over whitespace until we +# find one. +:recolor_equal Idle +.ifdef CHECKING + * option_bad recolormark noeat +.else + * options_ws noeat +.endif + " \t" recolor_equal + "=" recolor_minus mark + +# The recolor option takes an integer argument, and that integer must be +# negative. Thus the '=' must be followed by a minus sign. Loop over +# whitespace until we find one. +:recolor_minus Idle +.ifdef CHECKING + * option_bad recolormark noeat +.else + * options_ws noeat +.endif + " \t" recolor_minus + "-" recolor_amount_first mark recolor=-1 + +# The first digit of the argument to recolor must be non-zero. +:recolor_amount_first Literal +.ifdef CHECKING + * option_bad recolormark noeat +.else + * options_ws recolormark noeat + "0" option_bad recolormark noeat +.endif + "1-9" recolor_amount + +# Keep highlighting digits until we see something else. +:recolor_amount Literal + * option_bad recolormark recolor=-1 + "0-9" recolor_amount + " \t#\n" options_ws noeat + +# Highlight the call option. +:call_color Keyword + * call_equal noeat + +# The call option must be followed by an '='. Loop over whitespace until we +# find one. +:call_equal Idle +.ifdef CHECKING + * option_bad recolormark noeat +.else + * options_ws noeat +.endif + " \t" call_equal + "=" call_file_or_dot mark + +# The first part of the argument to the call option is the name of the file +# containing the subroutine or a '.', implying the current file. Loop over +# whitespace until we see one of those two things. +:call_file_or_dot Idle +.ifdef CHECKING + * option_bad recolormark noeat +.else + * options_ws noeat +.endif + " \t" call_file_or_dot + "\i" call_file mark recolor=-1 + "." call_dot mark + +# Highlight the remainder of the file name. The file name can be followed by a +# '.', which must then be followed by the name of a subroutine, or by a list of +# parameters in parentheses. The '.', if present, cannot have whitespace on +# either side. +:call_file Subr +.ifdef CHECKING + * option_bad recolormark noeat +.else + * options_ws noeat +.endif + "\c" call_file + "." call_dot mark recolor=-1 + " \t(" call_open_paren noeat + +# We saw a '.'. The next character must start the name of a subroutine. +:call_dot Idle +.ifdef CHECKING + * option_bad recolormark noeat +.else + * options_ws noeat +.endif + "(" call_dot_bad recolormark noeat + "\i" call_subr mark recolor=-1 + +# We have seen a dot followed by an open parenthesis. A dot must be followed by +# a subroutine name. Highlight the dot as Bad. +:call_dot_bad Bad + * call_open_paren noeat + +# Highlight the remainder of the subroutine name. Following the subroutine name +# must be a list of parameters in parentheses, possibly preceded by whitespace. +:call_subr Subr +.ifdef CHECKING + * option_bad recolormark noeat +.else + * options_ws noeat +.endif + "\c" call_subr + " \t(" call_open_paren noeat + +# Loop over whitespace until we find the open parenthesis. +:call_open_paren Idle +.ifdef CHECKING + * option_bad recolormark noeat +.else + * options_ws noeat +.endif + " \t" call_open_paren + "(" call_parameters_ws + +# The list of parameters is delimited by whitespace. Loop over whitespace until +# we find either the beginning of a parameter or a close parenthesis. We should +# not see a comment or newline since the list should be terminated by a close +# parenthesis. +:call_parameters_ws Idle + * call_parameter_bad recolor=-1 + " \t" call_parameters_ws + "-" call_parameter_undef + "\i" call_parameter recolor=-1 + ")" options_ws + "#\n" bad noeat + +# We saw a "-". The next character should start the parameter being undefined. +:call_parameter_undef Parameter + * call_parameters_ws noeat + "\i" call_parameter recolor=-2 + +# Highlight the remainder of the parameter. +:call_parameter Parameter + * call_parameters_ws noeat + "\c" call_parameter + +# We saw something that is not a valid parameter name. Continue to highlight it +# as Bad until we see whitespace. +:call_parameter_bad Bad + * call_parameter_bad + ") \t#\n" call_parameters_ws noeat + +# We saw something that is not a valid option name. Continue to highlight it as +# Bad until we see whitespace or a comment. +:option_bad Bad + * option_bad + " \t#\n" options_ws noeat + + +######## +# Done # +######## + +.ifdef STRINGS +# The special word, "done", can only be used after a strings or istrings option. +# Recognize the done keyword. +:special_word Idle + * bad_line recolormark noeat strings + "done" done_color + done + "\c" special_word + +# Highlight the done keyword and return to highlighting things normally, since +# the list of strings has been terminated. +:done_color Keyword + * comment_or_bad return noeat +.endif + + +################## +# Comment or Bad # +################## + +# We have seen everything that should appear on the current line except an +# optional comment. Loop over whitespace until we find a comment or newline. +:comment_or_bad Idle + * bad noeat + " \t" comment_or_bad + "#\n" comment noeat + + +########### +# Comment # +########### + +# Continue to highlight the comment until the end of the line. +:comment Comment comment + * comment + "\n" idle + + +####### +# Bad # +####### + +.ifdef CHECKING +# We have encountered incorrect syntax. Loop over whitespace until we see the +# first visible character. Highlight that character and the rest of the line as +# Bad. +:bad Bad + * bad_line + " \t\n" bad +.else +# When not performing strict checking, don't go searching for the next visible +# character to highlight as Bad. Simply highlight the rest of the line as Bad, +# even if it is invisible. +:bad Bad + * bad_line noeat +.endif + +# Continue to highlight everything as Bad until the end of the line. +:bad_line Bad + * bad_line + "\n" idle diff --git a/.joe/syntax/jsf.jsf.in b/.joe/syntax/jsf.jsf.in @@ -0,0 +1,784 @@ +# JOE Syntax-Highlighting Description +# for +# JOE Syntax-Highlighting Descriptions +# +# Author: Charles J. Tabony +# Date: 2007-2-13 +# +# This is a highlighting description for files like this one. +# +# When CHECKING is defined, it is very aggressive about error checking. The +# idea is that anywhere the highlighted file contains a syntax error, at least +# one visible character should be highlighted as Bad. While that feature is +# useful for finding syntax errors, it is annoying when editing a file, since +# nearly everything is an error until you finish typing it. +# +# In order to not annoy people by default, but keep the option of strictly +# checking syntax, I predicated the stricter checking on the CHECKING parameter. +# By default, things that are incomplete are generally not marked as errors. +# Only things that appear to be actual mistakes are highlighted as Bad. To +# enable the stricter checking, one can highlight the file with the jsf_check +# syntax. jsf_check.jsf simply calls the entire jsf.jsf file with CHECKING +# defined. +# +# The idea is for authors of a jsf file to edit their file, highlight it with +# jsf_check, and then look for any red characters. That way they can check for +# syntax errors before testing the changes. + + + + +##################### +# Color Definitions # +##################### + +=Idle +=Comment green +=Conditional blue +=Parameter bold blue +=Keyword bold +=Color yellow +=StandardColor bold +=State +=Subr magenta +=Literal cyan +=Escape bold cyan +=Bad bold red + + + + +################## +# Initial States # +################## + +# This is a dummy state that simply jumps to comment_or_bad. It is here so that +# when this file calls itself with the STRINGS parameter defined, comment_or_bad +# will effectively be the initial state. comment_or_bad should be the initial +# state because strings and istrings options can only be used as the last option +# of a transition. +.ifdef STRINGS +:strings_initial Idle + * comment_or_bad noeat +.endif + +# Each new line (that is not considered bad from the beginning) begins in the +# idle state. The first non-whitespace character determines what the rest of +# the line should contain. Following a strings or istrings option, only strings +# and comments are allowed until the word "done" denotes the end of the list. +:idle Idle + * bad noeat + " \t\n" idle +.ifdef STRINGS +.else + "-" sync_lines_first + "." conditional_first mark recolor=-1 + "=" color_definition_first + ":" state_first + "*&%" special_character recolor=-1 +.endif + "\"" string recolor=-1 +.ifdef STRINGS + "\i" special_word mark recolor=-1 buffer +.endif + "#" comment recolor=-1 + + +############## +# Sync Lines # +############## + +# Following a '-' should be either the number of sync lines or nothing (meaning +# unlimited). Nothing else other than a comment should appear on the same line. +.ifdef STRINGS +# A sync lines directive should not appear between "[i]strings" and "done". +.else +# If we see a non-digit or a '0', then we have seen the entire sync lines +# directive. The only thing that may appear on the rest of the line is a +# comment. Otherwise there may be more digits in the number. +:sync_lines_first Literal + * comment_or_bad noeat + "0" comment_or_bad + "1-9" sync_lines + +# Highlight the remainder of the number. +:sync_lines Literal + * comment_or_bad noeat + "0-9" sync_lines +.endif + + +########################## +# Conditional Directives # +########################## + +# Following a '.' should be a conditional directive. +.ifdef STRINGS +# A conditional directive should not appear between "[i]strings" and "done". +.else +# Start buffering the conditional directive. +:conditional_first Conditional + * conditional noeat buffer + +# Recognize the set of conditional directives. +:conditional Idle + * conditional_unknown noeat strings + "ifdef" ifdef_color + "else" conditional_color + "endif" conditional_color + "subr" subr_color + "end" conditional_color + done + "\c" conditional + +# We encountered what looks like a conditional directive but is unrecognized as +# such. +:conditional_unknown Idle +.ifdef CHECKING + * bad_line recolormark noeat +.else + * comment_or_bad noeat +.endif + +# We saw a conditional directive that does not take an argument. Nothing else +# other than a comment should appear on the same line. +:conditional_color Conditional + * comment_or_bad noeat + +# We saw a ".ifdef" which must be followed by a parameter. +:ifdef_color Conditional + * need_parameter noeat + +# We loop over whitespace until we see the first character of the parameter. +:need_parameter Idle + * bad noeat + " \t" need_parameter + "\i" parameter recolor=-1 + +# Now we highlight the remainder of the parameter. +:parameter Parameter + * comment_or_bad noeat + "\c" parameter + +# The following three states are identical to the previous three except the +# color. +:subr_color Conditional + * need_subr noeat + +:need_subr Idle + * bad noeat + " \t" need_subr + "\i" subr recolor=-1 + +:subr Subr + * comment_or_bad noeat + "\c" subr +.endif + + +#################### +# Color Definition # +#################### + +# Following an '=' should be a color definition. +.ifdef STRINGS +# Color definitions should not appear between "[i]strings" and "done". +.else +# A color name must have at least one character. +:color_definition_first Color + * color_definition + " \t#\n" bad noeat + +# Highlight any remaining characters until we see whitespace, a comment, or a +# newline. +:color_definition Color + * color_definition + " \t#\n" colors_ws noeat + +# The color name may be followed by zero or more standard colors or attributes, +# ending in a comment or newline. +:colors_ws Idle + * color_bad recolor=-1 + " \t" colors_ws + "\i" color mark recolor=-1 buffer + "#\n" comment noeat + +# Here we recognize the attributes and standard color names. None of the +# attributes or standard color names contain a digit except fg_NNN and bg_NNN, +# which are handled specially below. +:color Idle + * color_unknown noeat strings + "inverse" color_color + "underline" color_color + "bold" color_color + "italic" color_color + "blink" color_color + "dim" color_color + "white" color_color + "cyan" color_color + "magenta" color_color + "blue" color_color + "yellow" color_color + "green" color_color + "red" color_color + "black" color_color + "bg_white" color_color + "bg_cyan" color_color + "bg_magenta" color_color + "bg_blue" color_color + "bg_yellow" color_color + "bg_green" color_color + "bg_red" color_color + "bg_black" color_color + "WHITE" color_color + "CYAN" color_color + "MAGENTA" color_color + "BLUE" color_color + "YELLOW" color_color + "GREEN" color_color + "RED" color_color + "BLACK" color_color + "bg_WHITE" color_color + "bg_CYAN" color_color + "bg_MAGENTA" color_color + "bg_BLUE" color_color + "bg_YELLOW" color_color + "bg_GREEN" color_color + "bg_RED" color_color + "bg_BLACK" color_color + "fg_" color_number_first + "bg_" color_number_first + done + "\c" color + +# We encountered what looks like a standard color but is unrecognized as such. +:color_unknown Idle +.ifdef CHECKING + * color_bad recolormark noeat +.else + * colors_ws noeat +.endif + +# Here we have seen either "fg_" or "bg_". We now expect to find a number. The +# number should either be a one to two digit number, representing greyscale +# intensity, in the range 0-23, or a three digit number, where each digit is in +# the range 0-5 and represents the intensity of red, green, and blue +# respectively. +:color_number_first Idle +.ifdef CHECKING + * color_bad recolormark noeat +.else + * color_bad noeat +.endif + "0" color_zero + "1" color_one + "2" color_two + "3-5" color_number_second + "6-9" color_end + +# The first digit is a zero, thus we either have a greyscale intensity of 0, in +# which case we should not see any more digits, or we have the first RGB digit, +# in which case we should see two more ditits in the range 0-5. +:color_zero Idle +.ifdef CHECKING + * color_bad recolormark noeat +.else + * color_bad noeat +.endif + "0-5" color_rgb_third + " \t#\n" color_color recolormark noeat + +# The first digit is a one. If we see whitespace or a comment, then we have a +# greyscale intensity of 1. If we see a digit 6-9, then we have a greyscale +# intensity of 16-19. If we see a digit 0-5, then we either have a greyscale +# intensity of 10-15 or an RGB value. +:color_one Idle +.ifdef CHECKING + * color_bad recolormark noeat +.else + * color_bad noeat +.endif + "0-5" color_number_third + "6-9" color_end + " \t#\n" color_color recolormark noeat + +# The first digit is a two. If we see whitespace or a comment, then we have a +# greyscale intensity of 2. If we see a digit 4-5, then we have the first two +# digits of an RGB value. If we see a digit 0-3, then we either have a +# greyscale intensity of 20-23 or an RGB value. +:color_two Idle +.ifdef CHECKING + * color_bad recolormark noeat +.else + * color_bad noeat +.endif + "0-3" color_number_third + "4-5" color_rgb_third + " \t#\n" color_color recolormark noeat + +# We have seen one digit that could be either the greyscale intensity or the +# first RGB digit. If we see any more digits, they we must have an RGB value, +# because otherwise the number would be outside the range 0-23. +:color_number_second Idle +.ifdef CHECKING + * color_bad recolormark noeat +.else + * color_bad noeat +.endif + "0-5" color_rgb_third + " \t#\n" color_color recolormark noeat + +# We have seen two digits that could be either the greyscale intensity or the +# first two RGB digits. If we see any more digits, they we must have an RGB +# value, because otherwise the number would be outside the range 0-23. +:color_number_third Idle +.ifdef CHECKING + * color_bad recolormark noeat +.else + * color_bad noeat +.endif + "0-5" color_end + " \t#\n" color_color recolormark noeat + +# We have seen two digits, both 0-5, that either start with zero or are outside +# the range 0-23. Thus we expect a third 0-5 digit. +:color_rgb_third Idle +.ifdef CHECKING + * color_bad recolormark noeat +.else + * color_bad noeat +.endif + "0-5" color_end + +# We have seen "fg_" or "bg_" followed by one to three digits. Any more digits +# would either be too many or make the number out of range. We now expect to +# see whitespace, a comment, or a newline. +:color_end Idle +.ifdef CHECKING + * color_bad recolormark noeat +.else + * color_bad noeat +.endif + " \t#\n" color_color recolormark noeat + +# This is a dummy state that simply provides the highlighting color for the +# standard color or attribute and jumps to colors_ws without consuming any +# characters. +:color_color StandardColor + * colors_ws noeat + +# We have encountered something that is not recognized as a standard color or +# attribute. Continue to highlight characters as Bad until we see whitespace, a +# comment, or a newline. +:color_bad Bad + * color_bad + " \t#\n" colors_ws noeat +.endif + + +######### +# State # +######### + +# Following a ':' should be a state definition. +.ifdef STRINGS +# New states should not appear between "[i]strings" and "done". +.else +# A state name must begin with an alpha character or an underscore. +:state_first State + * bad noeat + "\i" state + +# Subsequent characters in a state name must be alpha-numeric or underscores. +:state State + * bad noeat + "\c" state + " \t" need_state_color recolor=-1 + +# A state must have a color. +:need_state_color Idle + * state_color recolor=-1 + " \t" need_state_color + "#\n" bad noeat + +# Highlight any remaining characters until we see whitespace, a comment, or a +# newline. +:state_color Color + * state_color + " \t" context_ws recolor=-1 + "#\n" comment_or_bad noeat + +# Following the state color, there might be one or more contexts. Loop over +# whitespace until we find something else. +:context_ws Idle + * comment_or_bad noeat + " \t" context_ws + "\i" context mark recolor=-1 buffer + +# Here we recognize the possible contexts. +:context Idle + * context_unknown noeat strings + "comment" context_color + "string" context_color + done + "\c" context + +# We encountered what looks like a context but is unrecognized as such. +:context_unknown Idle +.ifdef CHECKING + * context_bad recolormark noeat +.else + * context_ws noeat +.endif + +# We encountered a valid context. +:context_color Keyword + * context_ws noeat + +# We saw something that is not a valid context name with checking enabled. +# Continue to highlight it as Bad until we see whitespace or a comment. +:context_bad Bad + * context_bad + " \t#\n" context_ws noeat +.endif + + +############## +# Transition # +############## + +# A state transition starts with a '*', an '&', or a string. +.ifdef STRINGS +# Transitions must start with a string between "[i]strings" and "done". +.else +# We saw either a '*' or an '&'. Now we need the next state. +:special_character Keyword + * need_next_state noeat +.endif + +# We are in a string. Continue until we see the close quote or a newline. +# Highlight escaped characters within the string differently. They start with a +# '\'. +:string Literal string + * string + "\\" escape recolor=-1 + "\"" need_next_state +.ifdef CHECKING + "\n" bad +.else + "\n" bad noeat +.endif + +# Highlight an escaped character within a string. +:escape Escape string + * string + +# Loop over whitespace until we see the first character of the next state. +:need_next_state Idle + * bad noeat + " \t" need_next_state + "\i" next_state recolor=-1 + +# Now we highlight the remainder of the next state. +:next_state State + * bad noeat + "\c" next_state + " \t" options_ws + "#\n" comment noeat + +# Following the next state should be zero or more options. Loop over whitespace +# until we find an option, comment, or newline. +:options_ws Idle + * option_bad recolor=-1 + " \t" options_ws + "\i" option mark recolor=-1 buffer + "#\n" comment noeat + +# Here we recognize the possible options. The strings and istrings options +# cannot be used between "[i]strings" and "done". Since conditional directives +# cannot be used between "[i]strings" and "done" either, the list must be +# duplicated, once without and once with the strings and istrings options. +:option Idle +.ifdef STRINGS + * option_unknown recolormark noeat strings + "noeat" option_color + "recolor" recolor_color + "mark" option_color + "markend" option_color + "recolormark" option_color + "buffer" option_color + "save_c" option_color + "save_s" option_color + "hold" option_color + "call" call_color + "return" option_color + "reset" option_color + done +.else + * option_unknown recolormark noeat strings + "noeat" option_color + "recolor" recolor_color + "mark" option_color + "markend" option_color + "recolormark" option_color + "buffer" option_color + "save_c" option_color + "save_s" option_color + "strings" strings_color + "istrings" strings_color + "hold" option_color + "call" call_color + "return" option_color + "reset" option_color + done +.endif + "\c" option + +# We encountered what looks like an option but is unrecognized as such. +:option_unknown Idle +.ifdef CHECKING + * option_bad recolormark noeat +.else + * options_ws noeat +.endif + +# We have encountered an option that does not take an argument. Highlight it +# and continue to look for more options. +:option_color Keyword + * options_ws noeat + +.ifdef STRINGS +# The strings and istrings options cannot be used between "[i]strings" and +# "done". +.else +# The strings and istrings options are followed by a list of transitions. +# Rather than duplicate all of the states that highlight transitions, we call +# this entire file as a subroutine and use the STRINGS parameter to disable +# everything else and enable the done keyword. We return to the comment_or_bad +# state since we will return after seeing the done keyword, and nothing but a +# comment should follow the done keyword. +:strings_color Keyword + * comment_or_bad noeat call=jsf(STRINGS) +.endif + +# Highlight the recolor option. +:recolor_color Keyword + * recolor_equal noeat + +# The recolor option must be followed by an '='. Loop over whitespace until we +# find one. +:recolor_equal Idle +.ifdef CHECKING + * option_bad recolormark noeat +.else + * options_ws noeat +.endif + " \t" recolor_equal + "=" recolor_minus mark + +# The recolor option takes an integer argument, and that integer must be +# negative. Thus the '=' must be followed by a minus sign. Loop over +# whitespace until we find one. +:recolor_minus Idle +.ifdef CHECKING + * option_bad recolormark noeat +.else + * options_ws noeat +.endif + " \t" recolor_minus + "-" recolor_amount_first mark recolor=-1 + +# The first digit of the argument to recolor must be non-zero. +:recolor_amount_first Literal +.ifdef CHECKING + * option_bad recolormark noeat +.else + * options_ws recolormark noeat + "0" option_bad recolormark noeat +.endif + "1-9" recolor_amount + +# Keep highlighting digits until we see something else. +:recolor_amount Literal + * option_bad recolormark recolor=-1 + "0-9" recolor_amount + " \t#\n" options_ws noeat + +# Highlight the call option. +:call_color Keyword + * call_equal noeat + +# The call option must be followed by an '='. Loop over whitespace until we +# find one. +:call_equal Idle +.ifdef CHECKING + * option_bad recolormark noeat +.else + * options_ws noeat +.endif + " \t" call_equal + "=" call_file_or_dot mark + +# The first part of the argument to the call option is the name of the file +# containing the subroutine or a '.', implying the current file. Loop over +# whitespace until we see one of those two things. +:call_file_or_dot Idle +.ifdef CHECKING + * option_bad recolormark noeat +.else + * options_ws noeat +.endif + " \t" call_file_or_dot + "\i" call_file mark recolor=-1 + "." call_dot mark + +# Highlight the remainder of the file name. The file name can be followed by a +# '.', which must then be followed by the name of a subroutine, or by a list of +# parameters in parentheses. The '.', if present, cannot have whitespace on +# either side. +:call_file Subr +.ifdef CHECKING + * option_bad recolormark noeat +.else + * options_ws noeat +.endif + "\c" call_file + "." call_dot mark recolor=-1 + " \t(" call_open_paren noeat + +# We saw a '.'. The next character must start the name of a subroutine. +:call_dot Idle +.ifdef CHECKING + * option_bad recolormark noeat +.else + * options_ws noeat +.endif + "(" call_dot_bad recolormark noeat + "\i" call_subr mark recolor=-1 + +# We have seen a dot followed by an open parenthesis. A dot must be followed by +# a subroutine name. Highlight the dot as Bad. +:call_dot_bad Bad + * call_open_paren noeat + +# Highlight the remainder of the subroutine name. Following the subroutine name +# must be a list of parameters in parentheses, possibly preceded by whitespace. +:call_subr Subr +.ifdef CHECKING + * option_bad recolormark noeat +.else + * options_ws noeat +.endif + "\c" call_subr + " \t(" call_open_paren noeat + +# Loop over whitespace until we find the open parenthesis. +:call_open_paren Idle +.ifdef CHECKING + * option_bad recolormark noeat +.else + * options_ws noeat +.endif + " \t" call_open_paren + "(" call_parameters_ws + +# The list of parameters is delimited by whitespace. Loop over whitespace until +# we find either the beginning of a parameter or a close parenthesis. We should +# not see a comment or newline since the list should be terminated by a close +# parenthesis. +:call_parameters_ws Idle + * call_parameter_bad recolor=-1 + " \t" call_parameters_ws + "-" call_parameter_undef + "\i" call_parameter recolor=-1 + ")" options_ws + "#\n" bad noeat + +# We saw a "-". The next character should start the parameter being undefined. +:call_parameter_undef Parameter + * call_parameters_ws noeat + "\i" call_parameter recolor=-2 + +# Highlight the remainder of the parameter. +:call_parameter Parameter + * call_parameters_ws noeat + "\c" call_parameter + +# We saw something that is not a valid parameter name. Continue to highlight it +# as Bad until we see whitespace. +:call_parameter_bad Bad + * call_parameter_bad + ") \t#\n" call_parameters_ws noeat + +# We saw something that is not a valid option name. Continue to highlight it as +# Bad until we see whitespace or a comment. +:option_bad Bad + * option_bad + " \t#\n" options_ws noeat + + +######## +# Done # +######## + +.ifdef STRINGS +# The special word, "done", can only be used after a strings or istrings option. +# Recognize the done keyword. +:special_word Idle + * bad_line recolormark noeat strings + "done" done_color + done + "\c" special_word + +# Highlight the done keyword and return to highlighting things normally, since +# the list of strings has been terminated. +:done_color Keyword + * comment_or_bad return noeat +.endif + + +################## +# Comment or Bad # +################## + +# We have seen everything that should appear on the current line except an +# optional comment. Loop over whitespace until we find a comment or newline. +:comment_or_bad Idle + * bad noeat + " \t" comment_or_bad + "#\n" comment noeat + + +########### +# Comment # +########### + +# Continue to highlight the comment until the end of the line. +:comment Comment comment + * comment + "\n" idle + + +####### +# Bad # +####### + +.ifdef CHECKING +# We have encountered incorrect syntax. Loop over whitespace until we see the +# first visible character. Highlight that character and the rest of the line as +# Bad. +:bad Bad + * bad_line + " \t\n" bad +.else +# When not performing strict checking, don't go searching for the next visible +# character to highlight as Bad. Simply highlight the rest of the line as Bad, +# even if it is invisible. +:bad Bad + * bad_line noeat +.endif + +# Continue to highlight everything as Bad until the end of the line. +:bad_line Bad + * bad_line + "\n" idle diff --git a/.joe/syntax/jsf_check.jsf b/.joe/syntax/jsf_check.jsf @@ -0,0 +1,6 @@ +# See jsf.jsf + +=Idle + +:initial Idle + * initial noeat call=jsf(CHECKING) diff --git a/.joe/syntax/jsf_check.jsf.in b/.joe/syntax/jsf_check.jsf.in @@ -0,0 +1,6 @@ +# See jsf.jsf + +=Idle + +:initial Idle + * initial noeat call=jsf(CHECKING) diff --git a/.joe/syntax/json.jsf b/.joe/syntax/json.jsf @@ -0,0 +1,261 @@ +# JSON highlighter per json.org + +# Written by Rebecca Turner (@ReBecaOrg) + +# Define colors + +=Idle +=Comma +=PairSep +=Bracket magenta +=Brace magenta +=Number cyan +=String cyan +=StringEscape cyan bold +=Boolean cyan +=Null cyan + +=Bad red bold inverse # Syntax errors detected by the highlighter + +=ERROR bold yellow bg_red # Errors in the highlighter itself + +:json Idle + * end noeat call=.value() + " \t\n" json + +:end Idle + * endBAD noeat + " \t\n" end + +:endBAD Bad + * end + +.subr value + +:value Idle + * valueBAD noeat + "\"" end noeat call=.string() + "-0-9" end noeat call=.number() + "tfn" end noeat call=.bareword() + "{" end noeat call=.object() + "[" end noeat call=.array() + +:valueBAD Bad + * value + +:end Idle + * NULL noeat return + +.end + +.subr object + +:object Brace + * objectBAD noeat + "{" maybeempty + +:objectBAD ERROR + * end + +:maybeempty Brace + * key noeat + " \t\n" maybeempty + "}" end recolor=-1 + +:key Idle + * keyBAD noeat + "\"" pairsep noeat call=.string() + " \t\n" key + +:keyBAD Bad + * key + +:pairsep PairSep + * pairsepBAD noeat + ":" value + " \t\n" pairsep + +:pairsepBAD Bad + * pairsep + +:value Idle + * nextpair noeat call=.value() + " \t\n" value + +:nextpair Comma + * nextpairBAD noeat + "}" end recolor=-1 + "," key + " \t\n" nextpair + +:nextpairBAD Bad + * nextpair + +:end Brace + * NULL noeat return +.end + +.subr array + +:array Bracket + * arrayBAD noeat + "[" maybeempty + +:arrayBAD ERROR + * end + +:maybeempty Bracket + * value noeat + " \t\n" maybeempty + "]" end recolor=-1 + +:value Idle + * nextvalue noeat call=.value() + " \t\n" value + +:nextvalue Comma + * nextvalueBAD noeat + "]" end recolor=-1 + "," value + " \t\n" nextvalue + +:nextvalueBAD Bad + * nextvalue + +:end Bracket + * NULL noeat return + +.end + +.subr string + +:string String + * stringBAD noeat + "\"" body + +:stringBAD ERROR + * end + +:body String + * body + "\"" end + "\\" escape recolor=-1 + +:escape StringEscape + * escapeBAD recolor=-2 noeat + "\"/bfnrt\\" body + "u" unicode1 + +:escapeBAD Bad + * body + +:unicode1 StringEscape + * unicodeBAD recolor=-3 noeat + "0-9a-fA-F" unicode2 + +:unicode2 StringEscape + * unicodeBAD recolor=-4 noeat + "0-9a-fA-F" unicode3 + +:unicode3 StringEscape + * unicodeBAD recolor=-5 noeat + "0-9a-fA-F" unicode4 + +:unicode4 StringEscape + * unicodeBAD recolor=-6 noeat + "0-9a-fA-F" body + +:unicodeBAD Bad + * body + +:end Idle + * NULL noeat return + +.end + +.subr bareword + +:bareword Idle + * body noeat mark buffer + +:body Bad + * end noeat markend strings + "true" boolean + "false" boolean + "null" null + +done + "truefalsn" body + +:boolean Boolean + * end noeat + +:null Null + * end noeat + +:end Idle + * NULL noeat return + +.end + +.subr number + +:number Number + * numberBAD + "0-9" numberA noeat + "-" numberA + +:numberBAD ERROR + * end + +:numberA Number + "0" decimalpoint + "1-9" integer + +:integer Number + * end noeat + "0-9" integer + "." decimalpoint + "eE" exponentpart + +:decimalpoint Number + * end noeat + "0-9" decimalpointBAD + "eE" exponentpart + "." decimalpart + +:decimalpointBAD Bad + * end + +:decimalpart Number + * decimalpartBAD + "0-9" decimalpartA + +:decimalpartBAD Bad + * end + +:decimalpartA Number + * end noeat + "0-9" decimalpartA + "eE" exponentpart + +:exponentpart Number + * exponentpartBAD + "-+" exponentpartA + "0-9" exponentpartB + +:exponentpartBAD Bad + * end + +:exponentpartA Number + * exponentpartBAD + "0-9" exponentpartB + +:exponentpartB Number + * end noeat + "0-9" exponentpartB + +:end Idle + * NULL noeat return + +.end diff --git a/.joe/syntax/json.jsf.in b/.joe/syntax/json.jsf.in @@ -0,0 +1,261 @@ +# JSON highlighter per json.org + +# Written by Rebecca Turner (@ReBecaOrg) + +# Define colors + +=Idle +=Comma +=PairSep +=Bracket magenta +=Brace magenta +=Number cyan +=String cyan +=StringEscape cyan bold +=Boolean cyan +=Null cyan + +=Bad red bold inverse # Syntax errors detected by the highlighter + +=ERROR bold yellow bg_red # Errors in the highlighter itself + +:json Idle + * end noeat call=.value() + " \t\n" json + +:end Idle + * endBAD noeat + " \t\n" end + +:endBAD Bad + * end + +.subr value + +:value Idle + * valueBAD noeat + "\"" end noeat call=.string() + "-0-9" end noeat call=.number() + "tfn" end noeat call=.bareword() + "{" end noeat call=.object() + "[" end noeat call=.array() + +:valueBAD Bad + * value + +:end Idle + * NULL noeat return + +.end + +.subr object + +:object Brace + * objectBAD noeat + "{" maybeempty + +:objectBAD ERROR + * end + +:maybeempty Brace + * key noeat + " \t\n" maybeempty + "}" end recolor=-1 + +:key Idle + * keyBAD noeat + "\"" pairsep noeat call=.string() + " \t\n" key + +:keyBAD Bad + * key + +:pairsep PairSep + * pairsepBAD noeat + ":" value + " \t\n" pairsep + +:pairsepBAD Bad + * pairsep + +:value Idle + * nextpair noeat call=.value() + " \t\n" value + +:nextpair Comma + * nextpairBAD noeat + "}" end recolor=-1 + "," key + " \t\n" nextpair + +:nextpairBAD Bad + * nextpair + +:end Brace + * NULL noeat return +.end + +.subr array + +:array Bracket + * arrayBAD noeat + "[" maybeempty + +:arrayBAD ERROR + * end + +:maybeempty Bracket + * value noeat + " \t\n" maybeempty + "]" end recolor=-1 + +:value Idle + * nextvalue noeat call=.value() + " \t\n" value + +:nextvalue Comma + * nextvalueBAD noeat + "]" end recolor=-1 + "," value + " \t\n" nextvalue + +:nextvalueBAD Bad + * nextvalue + +:end Bracket + * NULL noeat return + +.end + +.subr string + +:string String + * stringBAD noeat + "\"" body + +:stringBAD ERROR + * end + +:body String + * body + "\"" end + "\\" escape recolor=-1 + +:escape StringEscape + * escapeBAD recolor=-2 noeat + "\"/bfnrt\\" body + "u" unicode1 + +:escapeBAD Bad + * body + +:unicode1 StringEscape + * unicodeBAD recolor=-3 noeat + "0-9a-fA-F" unicode2 + +:unicode2 StringEscape + * unicodeBAD recolor=-4 noeat + "0-9a-fA-F" unicode3 + +:unicode3 StringEscape + * unicodeBAD recolor=-5 noeat + "0-9a-fA-F" unicode4 + +:unicode4 StringEscape + * unicodeBAD recolor=-6 noeat + "0-9a-fA-F" body + +:unicodeBAD Bad + * body + +:end Idle + * NULL noeat return + +.end + +.subr bareword + +:bareword Idle + * body noeat mark buffer + +:body Bad + * end noeat markend strings + "true" boolean + "false" boolean + "null" null + +done + "truefalsn" body + +:boolean Boolean + * end noeat + +:null Null + * end noeat + +:end Idle + * NULL noeat return + +.end + +.subr number + +:number Number + * numberBAD + "0-9" numberA noeat + "-" numberA + +:numberBAD ERROR + * end + +:numberA Number + "0" decimalpoint + "1-9" integer + +:integer Number + * end noeat + "0-9" integer + "." decimalpoint + "eE" exponentpart + +:decimalpoint Number + * end noeat + "0-9" decimalpointBAD + "eE" exponentpart + "." decimalpart + +:decimalpointBAD Bad + * end + +:decimalpart Number + * decimalpartBAD + "0-9" decimalpartA + +:decimalpartBAD Bad + * end + +:decimalpartA Number + * end noeat + "0-9" decimalpartA + "eE" exponentpart + +:exponentpart Number + * exponentpartBAD + "-+" exponentpartA + "0-9" exponentpartB + +:exponentpartBAD Bad + * end + +:exponentpartA Number + * exponentpartBAD + "0-9" exponentpartB + +:exponentpartB Number + * end noeat + "0-9" exponentpartB + +:end Idle + * NULL noeat return + +.end diff --git a/.joe/syntax/lisp.jsf b/.joe/syntax/lisp.jsf @@ -0,0 +1,26 @@ +# JOE syntax highlight file for LISP + +# Needs lots of work... + +=Idle +=Comment green +=String cyan +=Escape bold cyan + +:idle Idle + * idle + ";" comment recolor=-1 + "\"" string recolor=-1 + +:comment Comment + * comment + "\n" idle + +:string String + * string + "\"" idle + "\\" string_escape recolor=-1 + +:string_escape Escape + * string + "\n" string recolor=-2 diff --git a/.joe/syntax/lisp.jsf.in b/.joe/syntax/lisp.jsf.in @@ -0,0 +1,26 @@ +# JOE syntax highlight file for LISP + +# Needs lots of work... + +=Idle +=Comment green +=String cyan +=Escape bold cyan + +:idle Idle + * idle + ";" comment recolor=-1 + "\"" string recolor=-1 + +:comment Comment + * comment + "\n" idle + +:string String + * string + "\"" idle + "\\" string_escape recolor=-1 + +:string_escape Escape + * string + "\n" string recolor=-2 diff --git a/.joe/syntax/lua.jsf b/.joe/syntax/lua.jsf @@ -0,0 +1,316 @@ +# JOE syntax highlight file for LUA + +=Idle +=Bad bold red +=Comment green +=Constant cyan +=Escape bold cyan +=Keyword bold + +:idle Idle + * idle + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." maybe_float + "\"" string recolor=-1 + "'" char recolor=-1 + "\i" ident buffer + "-" maybe_comment + "[" maybe_lua_string + +:maybe_lua_string Idle + * idle noeat + "[" lua_string_0 recolor=-2 + "=" maybe_lua_1 + +:maybe_lua_1 Idle + * idle noeat + "[" lua_string_1 recolor=-3 + "=" maybe_lua_2 + +:maybe_lua_2 Idle + * idle noeat + "[" lua_string_2 recolor=-4 + "=" maybe_lua_3 + +:maybe_lua_3 Idle + * idle noeat + "[" lua_string_3 recolor=-5 + +:lua_string_0 Constant + * lua_string_0 + "]" lua_string_0_maybe_done + +:lua_string_0_maybe_done Constant + * lua_string_0 noeat + "]" idle + +:lua_string_1 Constant + * lua_string_1 + "]" lua_string_1_maybe_donea + +:lua_string_1_maybe_donea Constant + * lua_string_1 noeat + "=" lua_string_1_maybe_done + +:lua_string_1_maybe_done Constant + * lua_string_1 noeat + "]" idle + +:lua_string_2 Constant + * lua_string_2 + "]" lua_string_2_maybe_donea + +:lua_string_2_maybe_donea Constant + * lua_string_2 noeat + "=" lua_string_2_maybe_doneb + +:lua_string_2_maybe_doneb Constant + * lua_string_2 noeat + "=" lua_string_2_maybe_done + +:lua_string_2_maybe_done Constant + * lua_string_2 noeat + "]" idle + +:lua_string_3 Constant + * lua_string_3 + "]" lua_string_3_maybe_donea + +:lua_string_3_maybe_donea Constant + * lua_string_3 noeat + "=" lua_string_3_maybe_doneb + +:lua_string_3_maybe_doneb Constant + * lua_string_3 noeat + "=" lua_string_3_maybe_donec + +:lua_string_3_maybe_donec Constant + * lua_string_3 noeat + "=" lua_string_3_maybe_done + +:lua_string_3_maybe_done Constant + * lua_string_3 noeat + "]" idle + +:maybe_comment Idle + * idle noeat + "-" maybe_long_comment recolor=-2 + +:maybe_long_comment Comment + * line_comment noeat + "[" maybe_long_comment_0 + +:maybe_long_comment_0 Comment + * line_comment noeat + "=" maybe_long_comment_1 + "[" long_comment_0 + +:maybe_long_comment_1 Comment + * line_comment noeat + "=" maybe_long_comment_2 + "[" long_comment_1 + +:maybe_long_comment_2 Comment + * line_comment noeat + "=" maybe_long_comment_3 + "[" long_comment_2 + +:maybe_long_comment_3 Comment + * line_comment noeat + "[" long_comment_3 + +:long_comment_0 Comment + * long_comment_0 + "]" maybe_done_comment_0 + +:maybe_done_comment_0 Comment + * long_comment_0 noeat + "]" idle + +:long_comment_1 Comment + * long_comment_1 + "]" maybe_done_comment_1a + +:maybe_done_comment_1a Comment + * long_comment_1 noeat + "=" maybe_done_comment_1 + +:maybe_done_comment_1 Comment + * long_comment_1 noeat + "]" idle + +:long_comment_2 Comment + * long_comment_2 + "]" maybe_done_comment_2a + +:maybe_done_comment_2a Comment + * long_comment_2 noeat + "=" maybe_done_comment_2b + +:maybe_done_comment_2b Comment + * long_comment_2 noeat + "=" maybe_done_comment_2 + +:maybe_done_comment_2 Comment + * long_comment_2 noeat + "]" idle + +:long_comment_3 Comment + * long_comment_3 + "]" maybe_done_comment_3a + +:maybe_done_comment_3a Comment + * long_comment_3 noeat + "=" maybe_done_comment_3b + +:maybe_done_comment_3b Comment + * long_comment_3 noeat + "=" maybe_done_comment_3c + +:maybe_done_comment_3c Comment + * long_comment_3 noeat + "=" maybe_done_comment_3 + +:maybe_done_comment_3 Comment + * long_comment_2 noeat + "]" idle + +:line_comment Comment + * line_comment + "\n" idle + +:first_digit Constant + * idle noeat + "xX" hex + "." float + "eE" epart + "0-7" octal + "89" bad_number recolor=-1 + +:bad_number Bad + * idle noeat + "0-9" bad_number + +:octal Constant + * idle noeat + "0-7" octal + "89" bad_number recolor=-1 + +:hex Constant + * idle noeat + "0-9A-Fa-f" hex + +:decimal Constant + * idle noeat + "0-9" decimal + "eE" epart + "." float + +:maybe_float Constant + * idle recolor=-2 noeat + "0-9" float recolor=-2 + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +:string Constant + * string + "\"" idle + "\\" string_escape recolor=-1 + "%" string_control recolor=-1 + +:string_escape Escape + * string + "x" string_hex1 + "0-7" string_octal2 + "\n" string recolor=-2 + +:string_hex1 Escape + * string noeat + "0-9a-fA-F" string_hex2 + +:string_hex2 Escape + * string noeat + "0-9a-fA-F" string + +:string_octal2 Escape + * string noeat + "0-7" string_octal3 + +:string_octal3 Escape + * string noeat + "0-7" string + +:string_control Escape + * string + "\"" string noeat + "\n" reset + "0-9.\-+ #hjILtz$" string_control + +:char Constant + * char + "\n" reset + "'" idle + "\\" char_escape recolor=-1 + +:char_escape Escape + * char + "x" char_hex1 + "0-7" char_octal2 + "\n" char recolor=-2 + +:char_hex1 Escape + * char noeat + "0-9a-fA-F" char_hex2 + +:char_hex2 Escape + * char noeat + "0-9a-fA-F" char + +:char_octal2 Escape + * char noeat + "0-7" char_octal3 + +:char_octal3 Escape + * char noeat + "0-7" char + +:ident Idle + * idle noeat strings + "and" kw + "end" kw + "in" kw + "repeat" kw + "break" kw + "false" kw + "local" kw + "return" kw + "do" kw + "for" kw + "nil" kw + "then" kw + "else" kw + "function" kw + "not" kw + "true" kw + "elseif" kw + "if" kw + "or" kw + "until" kw + "while" kw +done + "\c" ident + +:kw Keyword + * idle noeat diff --git a/.joe/syntax/lua.jsf.in b/.joe/syntax/lua.jsf.in @@ -0,0 +1,316 @@ +# JOE syntax highlight file for LUA + +=Idle +=Bad bold red +=Comment green +=Constant cyan +=Escape bold cyan +=Keyword bold + +:idle Idle + * idle + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." maybe_float + "\"" string recolor=-1 + "'" char recolor=-1 + "\i" ident buffer + "-" maybe_comment + "[" maybe_lua_string + +:maybe_lua_string Idle + * idle noeat + "[" lua_string_0 recolor=-2 + "=" maybe_lua_1 + +:maybe_lua_1 Idle + * idle noeat + "[" lua_string_1 recolor=-3 + "=" maybe_lua_2 + +:maybe_lua_2 Idle + * idle noeat + "[" lua_string_2 recolor=-4 + "=" maybe_lua_3 + +:maybe_lua_3 Idle + * idle noeat + "[" lua_string_3 recolor=-5 + +:lua_string_0 Constant + * lua_string_0 + "]" lua_string_0_maybe_done + +:lua_string_0_maybe_done Constant + * lua_string_0 noeat + "]" idle + +:lua_string_1 Constant + * lua_string_1 + "]" lua_string_1_maybe_donea + +:lua_string_1_maybe_donea Constant + * lua_string_1 noeat + "=" lua_string_1_maybe_done + +:lua_string_1_maybe_done Constant + * lua_string_1 noeat + "]" idle + +:lua_string_2 Constant + * lua_string_2 + "]" lua_string_2_maybe_donea + +:lua_string_2_maybe_donea Constant + * lua_string_2 noeat + "=" lua_string_2_maybe_doneb + +:lua_string_2_maybe_doneb Constant + * lua_string_2 noeat + "=" lua_string_2_maybe_done + +:lua_string_2_maybe_done Constant + * lua_string_2 noeat + "]" idle + +:lua_string_3 Constant + * lua_string_3 + "]" lua_string_3_maybe_donea + +:lua_string_3_maybe_donea Constant + * lua_string_3 noeat + "=" lua_string_3_maybe_doneb + +:lua_string_3_maybe_doneb Constant + * lua_string_3 noeat + "=" lua_string_3_maybe_donec + +:lua_string_3_maybe_donec Constant + * lua_string_3 noeat + "=" lua_string_3_maybe_done + +:lua_string_3_maybe_done Constant + * lua_string_3 noeat + "]" idle + +:maybe_comment Idle + * idle noeat + "-" maybe_long_comment recolor=-2 + +:maybe_long_comment Comment + * line_comment noeat + "[" maybe_long_comment_0 + +:maybe_long_comment_0 Comment + * line_comment noeat + "=" maybe_long_comment_1 + "[" long_comment_0 + +:maybe_long_comment_1 Comment + * line_comment noeat + "=" maybe_long_comment_2 + "[" long_comment_1 + +:maybe_long_comment_2 Comment + * line_comment noeat + "=" maybe_long_comment_3 + "[" long_comment_2 + +:maybe_long_comment_3 Comment + * line_comment noeat + "[" long_comment_3 + +:long_comment_0 Comment + * long_comment_0 + "]" maybe_done_comment_0 + +:maybe_done_comment_0 Comment + * long_comment_0 noeat + "]" idle + +:long_comment_1 Comment + * long_comment_1 + "]" maybe_done_comment_1a + +:maybe_done_comment_1a Comment + * long_comment_1 noeat + "=" maybe_done_comment_1 + +:maybe_done_comment_1 Comment + * long_comment_1 noeat + "]" idle + +:long_comment_2 Comment + * long_comment_2 + "]" maybe_done_comment_2a + +:maybe_done_comment_2a Comment + * long_comment_2 noeat + "=" maybe_done_comment_2b + +:maybe_done_comment_2b Comment + * long_comment_2 noeat + "=" maybe_done_comment_2 + +:maybe_done_comment_2 Comment + * long_comment_2 noeat + "]" idle + +:long_comment_3 Comment + * long_comment_3 + "]" maybe_done_comment_3a + +:maybe_done_comment_3a Comment + * long_comment_3 noeat + "=" maybe_done_comment_3b + +:maybe_done_comment_3b Comment + * long_comment_3 noeat + "=" maybe_done_comment_3c + +:maybe_done_comment_3c Comment + * long_comment_3 noeat + "=" maybe_done_comment_3 + +:maybe_done_comment_3 Comment + * long_comment_2 noeat + "]" idle + +:line_comment Comment + * line_comment + "\n" idle + +:first_digit Constant + * idle noeat + "xX" hex + "." float + "eE" epart + "0-7" octal + "89" bad_number recolor=-1 + +:bad_number Bad + * idle noeat + "0-9" bad_number + +:octal Constant + * idle noeat + "0-7" octal + "89" bad_number recolor=-1 + +:hex Constant + * idle noeat + "0-9A-Fa-f" hex + +:decimal Constant + * idle noeat + "0-9" decimal + "eE" epart + "." float + +:maybe_float Constant + * idle recolor=-2 noeat + "0-9" float recolor=-2 + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +:string Constant + * string + "\"" idle + "\\" string_escape recolor=-1 + "%" string_control recolor=-1 + +:string_escape Escape + * string + "x" string_hex1 + "0-7" string_octal2 + "\n" string recolor=-2 + +:string_hex1 Escape + * string noeat + "0-9a-fA-F" string_hex2 + +:string_hex2 Escape + * string noeat + "0-9a-fA-F" string + +:string_octal2 Escape + * string noeat + "0-7" string_octal3 + +:string_octal3 Escape + * string noeat + "0-7" string + +:string_control Escape + * string + "\"" string noeat + "\n" reset + "0-9.\-+ #hjILtz$" string_control + +:char Constant + * char + "\n" reset + "'" idle + "\\" char_escape recolor=-1 + +:char_escape Escape + * char + "x" char_hex1 + "0-7" char_octal2 + "\n" char recolor=-2 + +:char_hex1 Escape + * char noeat + "0-9a-fA-F" char_hex2 + +:char_hex2 Escape + * char noeat + "0-9a-fA-F" char + +:char_octal2 Escape + * char noeat + "0-7" char_octal3 + +:char_octal3 Escape + * char noeat + "0-7" char + +:ident Idle + * idle noeat strings + "and" kw + "end" kw + "in" kw + "repeat" kw + "break" kw + "false" kw + "local" kw + "return" kw + "do" kw + "for" kw + "nil" kw + "then" kw + "else" kw + "function" kw + "not" kw + "true" kw + "elseif" kw + "if" kw + "or" kw + "until" kw + "while" kw +done + "\c" ident + +:kw Keyword + * idle noeat diff --git a/.joe/syntax/m4.jsf b/.joe/syntax/m4.jsf @@ -0,0 +1,121 @@ +# m4 + +=Idle +=Comment green +=Constant cyan +=Var magenta +=Brace bold magenta +=Kw bold + +:start Idle + * start noeat call=.m4() + +.subr m4 + +.ifdef quote +:idle Constant +.else +:idle Idle +.endif + * idle + "[" idle recolor=-1 call=.m4(quote -brace) +# "[" idle recolor=-1 call=.quote() + "a-zA-Z_" ident buffer mark +.ifdef quote + "]" idle return +.endif +.ifdef brace + ")" endbrace recolor=-1 +.endif + +:quote Constant + * quote + "]" idle + +:endbrace Brace + * idle noeat return + +.ifdef quote +:ident Constant +.else +:ident Idle +.endif + * maybe_macro noeat strings + "builtin" maybe_kw + "changecom" maybe_kw + "changequote" maybe_kw + "changeword" maybe_kw + "debugfile" maybe_kw + "debugmode" maybe_kw + "decr" maybe_kw + "define" maybe_kw + "defn" maybe_kw + "divert" maybe_kw + "divnum" maybe_kw + "dnl" comment + "dumpdef" maybe_kw + "errprint" maybe_kw + "esyscmd" maybe_kw + "eval" maybe_kw + "file" maybe_kw + "format" maybe_kw + "ifdef" maybe_kw + "ifelse" maybe_kw + "include" maybe_kw + "incr" maybe_kw + "index" maybe_kw + "indir" maybe_kw + "len" maybe_kw + "line" maybe_kw + "m4exit" maybe_kw + "m4wrap" maybe_kw + "maketemp" maybe_kw + "patsubst" maybe_kw + "popdef" maybe_kw + "pushdef" maybe_kw + "regexp" maybe_kw + "shift" maybe_kw + "sinclude" maybe_kw + "substr" maybe_kw + "syscmd" maybe_kw + "sysval" maybe_kw + "traceoff" maybe_kw + "traceon" maybe_kw + "translit" maybe_kw + "undefine" maybe_kw + "undivert" maybe_kw +done + "a-zA-Z0-9_" ident + +:maybe_macro Idle + * idle noeat + "(" macro recolormark noeat + +:maybe_kw Idle + * idle noeat + "(" kw recolormark noeat + +:kw Kw + * idle noeat + "(" macro noeat + +:comment Comment + * comment + "\n" idle + +:macro Var + * idle noeat + "(" brace recolor=-1 + +:brace Brace + * idle noeat call=.m4(brace -quote) + +.end + +.subr quote +:idle Constant + * idle + "]" idle return + "[" idle call=.quote() + +.end diff --git a/.joe/syntax/m4.jsf.in b/.joe/syntax/m4.jsf.in @@ -0,0 +1,121 @@ +# m4 + +=Idle +=Comment green +=Constant cyan +=Var magenta +=Brace bold magenta +=Kw bold + +:start Idle + * start noeat call=.m4() + +.subr m4 + +.ifdef quote +:idle Constant +.else +:idle Idle +.endif + * idle + "[" idle recolor=-1 call=.m4(quote -brace) +# "[" idle recolor=-1 call=.quote() + "a-zA-Z_" ident buffer mark +.ifdef quote + "]" idle return +.endif +.ifdef brace + ")" endbrace recolor=-1 +.endif + +:quote Constant + * quote + "]" idle + +:endbrace Brace + * idle noeat return + +.ifdef quote +:ident Constant +.else +:ident Idle +.endif + * maybe_macro noeat strings + "builtin" maybe_kw + "changecom" maybe_kw + "changequote" maybe_kw + "changeword" maybe_kw + "debugfile" maybe_kw + "debugmode" maybe_kw + "decr" maybe_kw + "define" maybe_kw + "defn" maybe_kw + "divert" maybe_kw + "divnum" maybe_kw + "dnl" comment + "dumpdef" maybe_kw + "errprint" maybe_kw + "esyscmd" maybe_kw + "eval" maybe_kw + "file" maybe_kw + "format" maybe_kw + "ifdef" maybe_kw + "ifelse" maybe_kw + "include" maybe_kw + "incr" maybe_kw + "index" maybe_kw + "indir" maybe_kw + "len" maybe_kw + "line" maybe_kw + "m4exit" maybe_kw + "m4wrap" maybe_kw + "maketemp" maybe_kw + "patsubst" maybe_kw + "popdef" maybe_kw + "pushdef" maybe_kw + "regexp" maybe_kw + "shift" maybe_kw + "sinclude" maybe_kw + "substr" maybe_kw + "syscmd" maybe_kw + "sysval" maybe_kw + "traceoff" maybe_kw + "traceon" maybe_kw + "translit" maybe_kw + "undefine" maybe_kw + "undivert" maybe_kw +done + "a-zA-Z0-9_" ident + +:maybe_macro Idle + * idle noeat + "(" macro recolormark noeat + +:maybe_kw Idle + * idle noeat + "(" kw recolormark noeat + +:kw Kw + * idle noeat + "(" macro noeat + +:comment Comment + * comment + "\n" idle + +:macro Var + * idle noeat + "(" brace recolor=-1 + +:brace Brace + * idle noeat call=.m4(brace -quote) + +.end + +.subr quote +:idle Constant + * idle + "]" idle return + "[" idle call=.quote() + +.end diff --git a/.joe/syntax/mail.jsf b/.joe/syntax/mail.jsf @@ -0,0 +1,197 @@ +# JOE syntax highlight file for typical UNIX mail files +# 2004-04-25 Tomas Szepe <szepe@pinerecords.com> + +# Improved to handle quote characters commonly seen on Usenet, and +# highlighting of the more frequently edited mail and news headers, with +# some sanity checking of the same. +# 2004-06-26 Jeff Hurwit <darkmoon@verizon.net> + +- + +=Idle +=Head bold +=HdTo red bg_white +=HdFrom bold red +=HdSbj bold magenta +=HdDate bold +=HdRRT black bg_white +=HdGrp bold white bg_red +=HdFuT bold red bg_yellow +=HdBad bold red +=Quot1 green bg_white +=Quot2 bold blue bg_white +=Sign bold magenta + +# Start in headers. We know we're out at the first blank line. + +:first Idle + * hbol noeat + "\n" newline + ">|:~}#]" newline noeat + +# Require header +# "\n" nohead + +:nohead HdBad + * nohead + +:hbol Idle + * hbad recolor=-1 + "\n" newline + "A-Z" bufhdrs buffer + "-" newline noeat + +:hbad HdBad + * hbad + "\n" hbol + +:hlbad HdBad + * hbol + +:bufhdrs Idle + * hbad recolor=-1 + "\n" hlbad noeat recolor=-2 + "-_a-zA-Z0-9" bufhdrs + ":" headers hold + +:headers Idle + * hbad recolor=-1 + " \n" hnocolor noeat strings + "To" hsto recolor=-2 + "Cc" hsto recolor=-2 + "Bcc" hsto recolor=-2 + "From" hsfrom recolor=-2 + "Subject" hssbj recolor=-2 + "Date" hsdate recolor=-2 + "Return-Receipt-To" hsrrecp recolor=-2 + "Newsgroups" hsgroups recolor=-2 + "Followup-To" hsfolup recolor=-2 +done + +:hnocolor Idle + * hnocolor + "\n" cont_nocolor + +:cont_nocolor Idle + * hbol noeat + " \t" hnocolor recolor=-1 + +:hsto Head + * hto + "\n" hbol + +:hto HdTo + * hto + "\n" cont_to + +:cont_to HdTo + * hbol noeat + " \t" hto recolor=-1 + +:hsfrom Head + * hfrom + "\n" hbol + +:hfrom HdFrom + * hfrom + "\n" hbol + +:hssbj Head + * hsbj + "\n" hbol + +:hsbj HdSbj + * hsbj + "\n" cont_sbj + +:cont_sbj HdSbj + * hbol noeat + " \t" hsbj recolor=-1 + +:hsdate Head + * hdate + "\n" hbol + +:hdate HdDate + * hdate + "\n" hbol + +:hsrrecp Head + * hrrecp + "\n" hbol + +:hrrecp HdRRT + * hrrecp + "\n" hbol + +:hsgroups Head + * hgroups + "\n" hbol + +:hgroups HdGrp + * hgroups + "\n" hbol + +:hsfolup Head + * hfolup + "\n" hbol + +:hfolup HdFuT + * hfolup + "\n" hbol + +# body of the message + +:newline Idle + * knocolor + "\n" newline + ">|:~}#]" q1 recolor=-1 + "-" maybesign1 recolor=-1 + +:maybesign1 Quot1 + * q1 + " \t" q1 + "\n" newline recolor=-1 + ">|:~}#]" q2 recolor=-1 + "-" maybesign2 recolor=-1 + +:maybesign2 Quot2 + * q2 + "\t" q2 + "\n" newline recolor=-1 + " " maybesign3 recolor=-1 + ">|:~}#]" q1 recolor=-1 + "-" knocolor recolor=-3 + +:maybesign3 Quot2 + * q2 + " \t" q2 + "\n" sign recolor=-4 + "->|:~}#]" q1 recolor=-1 + +:sign Sign + * sign + +:q1 Quot1 + * kq1 + "\n" newline + " \t" q1 + "->|:~}#]" q2 recolor=-1 + +:q2 Quot2 + * kq2 + "\n" newline + " \t" q2 + "->|:~}#]" q1 recolor=-1 + +:knocolor Idle + * knocolor + "\n" newline + +:kq1 Quot1 + * kq1 + "\n" newline + +:kq2 Quot2 + * kq2 + "\n" newline diff --git a/.joe/syntax/mail.jsf.in b/.joe/syntax/mail.jsf.in @@ -0,0 +1,197 @@ +# JOE syntax highlight file for typical UNIX mail files +# 2004-04-25 Tomas Szepe <szepe@pinerecords.com> + +# Improved to handle quote characters commonly seen on Usenet, and +# highlighting of the more frequently edited mail and news headers, with +# some sanity checking of the same. +# 2004-06-26 Jeff Hurwit <darkmoon@verizon.net> + +- + +=Idle +=Head bold +=HdTo red bg_white +=HdFrom bold red +=HdSbj bold magenta +=HdDate bold +=HdRRT black bg_white +=HdGrp bold white bg_red +=HdFuT bold red bg_yellow +=HdBad bold red +=Quot1 green bg_white +=Quot2 bold blue bg_white +=Sign bold magenta + +# Start in headers. We know we're out at the first blank line. + +:first Idle + * hbol noeat + "\n" newline + ">|:~}#]" newline noeat + +# Require header +# "\n" nohead + +:nohead HdBad + * nohead + +:hbol Idle + * hbad recolor=-1 + "\n" newline + "A-Z" bufhdrs buffer + "-" newline noeat + +:hbad HdBad + * hbad + "\n" hbol + +:hlbad HdBad + * hbol + +:bufhdrs Idle + * hbad recolor=-1 + "\n" hlbad noeat recolor=-2 + "-_a-zA-Z0-9" bufhdrs + ":" headers hold + +:headers Idle + * hbad recolor=-1 + " \n" hnocolor noeat strings + "To" hsto recolor=-2 + "Cc" hsto recolor=-2 + "Bcc" hsto recolor=-2 + "From" hsfrom recolor=-2 + "Subject" hssbj recolor=-2 + "Date" hsdate recolor=-2 + "Return-Receipt-To" hsrrecp recolor=-2 + "Newsgroups" hsgroups recolor=-2 + "Followup-To" hsfolup recolor=-2 +done + +:hnocolor Idle + * hnocolor + "\n" cont_nocolor + +:cont_nocolor Idle + * hbol noeat + " \t" hnocolor recolor=-1 + +:hsto Head + * hto + "\n" hbol + +:hto HdTo + * hto + "\n" cont_to + +:cont_to HdTo + * hbol noeat + " \t" hto recolor=-1 + +:hsfrom Head + * hfrom + "\n" hbol + +:hfrom HdFrom + * hfrom + "\n" hbol + +:hssbj Head + * hsbj + "\n" hbol + +:hsbj HdSbj + * hsbj + "\n" cont_sbj + +:cont_sbj HdSbj + * hbol noeat + " \t" hsbj recolor=-1 + +:hsdate Head + * hdate + "\n" hbol + +:hdate HdDate + * hdate + "\n" hbol + +:hsrrecp Head + * hrrecp + "\n" hbol + +:hrrecp HdRRT + * hrrecp + "\n" hbol + +:hsgroups Head + * hgroups + "\n" hbol + +:hgroups HdGrp + * hgroups + "\n" hbol + +:hsfolup Head + * hfolup + "\n" hbol + +:hfolup HdFuT + * hfolup + "\n" hbol + +# body of the message + +:newline Idle + * knocolor + "\n" newline + ">|:~}#]" q1 recolor=-1 + "-" maybesign1 recolor=-1 + +:maybesign1 Quot1 + * q1 + " \t" q1 + "\n" newline recolor=-1 + ">|:~}#]" q2 recolor=-1 + "-" maybesign2 recolor=-1 + +:maybesign2 Quot2 + * q2 + "\t" q2 + "\n" newline recolor=-1 + " " maybesign3 recolor=-1 + ">|:~}#]" q1 recolor=-1 + "-" knocolor recolor=-3 + +:maybesign3 Quot2 + * q2 + " \t" q2 + "\n" sign recolor=-4 + "->|:~}#]" q1 recolor=-1 + +:sign Sign + * sign + +:q1 Quot1 + * kq1 + "\n" newline + " \t" q1 + "->|:~}#]" q2 recolor=-1 + +:q2 Quot2 + * kq2 + "\n" newline + " \t" q2 + "->|:~}#]" q1 recolor=-1 + +:knocolor Idle + * knocolor + "\n" newline + +:kq1 Quot1 + * kq1 + "\n" newline + +:kq2 Quot2 + * kq2 + "\n" newline diff --git a/.joe/syntax/mason.jsf b/.joe/syntax/mason.jsf @@ -0,0 +1,8 @@ +# JOE syntax file for Mason + +=Idle + +# Call HTML with mason flag. It will call perl. + +:idle Idle + * idle noeat call=html.html(mason) diff --git a/.joe/syntax/mason.jsf.in b/.joe/syntax/mason.jsf.in @@ -0,0 +1,8 @@ +# JOE syntax file for Mason + +=Idle + +# Call HTML with mason flag. It will call perl. + +:idle Idle + * idle noeat call=html.html(mason) diff --git a/.joe/syntax/matlab.jsf b/.joe/syntax/matlab.jsf @@ -0,0 +1,74 @@ +# joe Matlab syntax highlighting +# Created by Gustav Stenberg 2007-10-30 +# + +=Idle +=Comment green +=Keyword blue +=String magenta +=Secondary magenta +=Error red +=Command yellow + +:idle Idle + * idle + "%" comment recolor=-1 + "\'" string mark recolor=-1 + "a-zA-Z_." ident buffer + "!" command recolor=-1 + "([{" parent buffer + +:command Command + * command + "\n" idle + +:comment Comment + * comment + "\n" idle + +:keyword Keyword + * idle noeat + +:keywordc Keyword + * comment + "\n" idle + +:parent Idle + * parent + ")]}" idle + +:string Error + * string + "\'" stringdone recolormark recolor=-1 + "\n" idle + +:stringdone String + * idle recolor=-1 + +:secondary Secondary + * idle noeat + "a-zA-Z_0-9. " secondary + "\n;:=!\"\'+-,*(){}[]&\\\|/~" idle recolor=-1 + +:ident Idle + * secondary noeat strings + "..." keywordc + "break" keyword + "case" keyword + "catch" keyword + "continue" keyword + "else" keyword + "elseif" keyword + "end" keyword + "for" keyword + "function" keyword + "global" keyword + "if" keyword + "otherwise" keyword + "persistent" keyword + "return" keyword + "switch" keyword + "try" keyword + "while" keyword +done + "a-zA-Z0-9_." ident diff --git a/.joe/syntax/matlab.jsf.in b/.joe/syntax/matlab.jsf.in @@ -0,0 +1,74 @@ +# joe Matlab syntax highlighting +# Created by Gustav Stenberg 2007-10-30 +# + +=Idle +=Comment green +=Keyword blue +=String magenta +=Secondary magenta +=Error red +=Command yellow + +:idle Idle + * idle + "%" comment recolor=-1 + "\'" string mark recolor=-1 + "a-zA-Z_." ident buffer + "!" command recolor=-1 + "([{" parent buffer + +:command Command + * command + "\n" idle + +:comment Comment + * comment + "\n" idle + +:keyword Keyword + * idle noeat + +:keywordc Keyword + * comment + "\n" idle + +:parent Idle + * parent + ")]}" idle + +:string Error + * string + "\'" stringdone recolormark recolor=-1 + "\n" idle + +:stringdone String + * idle recolor=-1 + +:secondary Secondary + * idle noeat + "a-zA-Z_0-9. " secondary + "\n;:=!\"\'+-,*(){}[]&\\\|/~" idle recolor=-1 + +:ident Idle + * secondary noeat strings + "..." keywordc + "break" keyword + "case" keyword + "catch" keyword + "continue" keyword + "else" keyword + "elseif" keyword + "end" keyword + "for" keyword + "function" keyword + "global" keyword + "if" keyword + "otherwise" keyword + "persistent" keyword + "return" keyword + "switch" keyword + "try" keyword + "while" keyword +done + "a-zA-Z0-9_." ident diff --git a/.joe/syntax/md.jsf b/.joe/syntax/md.jsf @@ -0,0 +1,135 @@ +# JOE syntax highlight file for Markdown +# by Christian Nicolai (http://mycrobase.de) + +# And yes, this *is* a joke :p + +# bold parsing is not that perfect since this works: **bold__ + +=Idle +=Tag green +=Escape bold +=Bad bold red + +=Bold bold +=Headline bold yellow +=Quote green +=Code green +=List yellow +=LinkDesc green +=Link blue +=Rule inverse + +:line_start Idle + * idle noeat + "#" headline_prefix recolor=-1 + ">" quote recolor=-1 + " " maybe_code1 + "\t" code + "-*" maybe_list + +:idle Idle + * idle + "\n" line_start + "<" tag recolor=-1 + "\\" escape recolor=-1 + "*_" maybe_bold1 + "[" maybe_link_desc1 + +:headline_prefix Idle + * headline + "#" headline_prefix + +:headline Headline + * headline + "\n" line_start + +:quote Quote + * quote + "\n" line_start + +:maybe_code1 Idle + * idle + " " maybe_code2 + +:maybe_code2 Idle + * idle + " " maybe_code3 + +:maybe_code3 Idle + * idle + " " code recolor=-4 + +:code Code + * code + "\n" line_start + +:maybe_list Idle + * idle + " " list + "-*" maybe_rule1 + +:list List + * list + "\n" line_start + +:maybe_rule1 Idle + * idle + "-*" rule recolor=-3 + +:rule Rule + * rule + "\n" line_start + +:tag Tag + * idle + "a-z0-9 /" tag + ">" idle + +# do escaping of *_ and so on +:escape Escape + * idle + +:maybe_bold1 Idle + * idle noeat + "*_" bold recolor=-2 + +:bold Bold + * bold + "\n" line_start # end if we reach newline during bold + "*_" maybe_end_bold + +:maybe_end_bold Bold + * bold + "*_" end_bold + +:end_bold Bold + * idle noeat + +:maybe_link_desc1 Idle + * maybe_link_desc mark + +:maybe_link_desc Idle + * maybe_link_desc + "]" maybe_end_link_desc markend + +:maybe_end_link_desc Idle + * idle + "(" link_inline1 recolormark + "[" link_ref1 recolormark + +:link_inline1 LinkDesc + * link_inline noeat + +:link_inline Link + * link_inline + ")" link_end noeat + +:link_ref1 LinkDesc + * link_ref noeat + +:link_ref Link + * link_ref + "]" link_end noeat + +:link_end Idle + * idle diff --git a/.joe/syntax/md.jsf.in b/.joe/syntax/md.jsf.in @@ -0,0 +1,135 @@ +# JOE syntax highlight file for Markdown +# by Christian Nicolai (http://mycrobase.de) + +# And yes, this *is* a joke :p + +# bold parsing is not that perfect since this works: **bold__ + +=Idle +=Tag green +=Escape bold +=Bad bold red + +=Bold bold +=Headline bold yellow +=Quote green +=Code green +=List yellow +=LinkDesc green +=Link blue +=Rule inverse + +:line_start Idle + * idle noeat + "#" headline_prefix recolor=-1 + ">" quote recolor=-1 + " " maybe_code1 + "\t" code + "-*" maybe_list + +:idle Idle + * idle + "\n" line_start + "<" tag recolor=-1 + "\\" escape recolor=-1 + "*_" maybe_bold1 + "[" maybe_link_desc1 + +:headline_prefix Idle + * headline + "#" headline_prefix + +:headline Headline + * headline + "\n" line_start + +:quote Quote + * quote + "\n" line_start + +:maybe_code1 Idle + * idle + " " maybe_code2 + +:maybe_code2 Idle + * idle + " " maybe_code3 + +:maybe_code3 Idle + * idle + " " code recolor=-4 + +:code Code + * code + "\n" line_start + +:maybe_list Idle + * idle + " " list + "-*" maybe_rule1 + +:list List + * list + "\n" line_start + +:maybe_rule1 Idle + * idle + "-*" rule recolor=-3 + +:rule Rule + * rule + "\n" line_start + +:tag Tag + * idle + "a-z0-9 /" tag + ">" idle + +# do escaping of *_ and so on +:escape Escape + * idle + +:maybe_bold1 Idle + * idle noeat + "*_" bold recolor=-2 + +:bold Bold + * bold + "\n" line_start # end if we reach newline during bold + "*_" maybe_end_bold + +:maybe_end_bold Bold + * bold + "*_" end_bold + +:end_bold Bold + * idle noeat + +:maybe_link_desc1 Idle + * maybe_link_desc mark + +:maybe_link_desc Idle + * maybe_link_desc + "]" maybe_end_link_desc markend + +:maybe_end_link_desc Idle + * idle + "(" link_inline1 recolormark + "[" link_ref1 recolormark + +:link_inline1 LinkDesc + * link_inline noeat + +:link_inline Link + * link_inline + ")" link_end noeat + +:link_ref1 LinkDesc + * link_ref noeat + +:link_ref Link + * link_ref + "]" link_end noeat + +:link_end Idle + * idle diff --git a/.joe/syntax/ocaml.jsf b/.joe/syntax/ocaml.jsf @@ -0,0 +1,476 @@ +# JOE syntax highlight file for OCaml + +# A (deterministic) state machine which performs lexical analysis of OCaml. +# (This is the "assembly language" of syntax highlighting. A separate +# program could be used to convert a regular expression NFA syntax into this +# format). + +# Each state begins with ':<name> <color-name>' +# <color-name> is the color used for characters eaten by the state +# (really a symbol for a user definable color). + +# The first state defined is the initial state. + +# Within a state, define transitions (jumps) to other states. Each +# jump has the form: <character-list> <target-state> [<option>s] + +# There are two ways to specify <character-list>s, either * for any +# character not otherwise specified, or a literal list of characters within +# quotes (ranges and escape sequences allows). When the next character +# matches any in the list, a jump to the target-state is taken and the +# character is eaten (we advance to the next character of the file to be +# colored). +# +# The * transition should be the first transition specified in the state. +# +# There are several options: +# noeat do not eat the character, instead feed it to the next state +# (this tends to make the states smaller, but be careful: you +# can make infinite loops). 'noeat' implies 'recolor=-1'. +# +# recolor=-N Recolor the past N characters with the color of the +# target-state. For example once /* is recognized as the +# start of C comment, you want to color the /* with the C +# comment color. +# +# buffer start copying characters to a buffer, beginning with this +# one (it's ok to not terminate buffering with a matching +# 'strings' option- the buffer is limited to leading 19 +# characters). +# +# strings A list of strings follows. If the buffer matches any of the +# given strings, a jump to the target-state in the string list +# is taken instead of the normal jump. +# +# istrings Same as strings, but case is ignored. +# +# hold Stop buffering string- a future 'strings' or 'istrings' will +# look at contents of buffer at this point. Useful for distinguishing +# commands and function calls in some languages 'write 7' is a command +# 'write (' is a function call- hold lets us stop at the space and delay +# the string lookup until the ( or 7. +# +# The format of the string list is: +# +# "string" <target-state> [<options>s] +# "string" <target-state> [<options>s] +# done +# +# (all of the options above are allowed except "strings", "istrings" and "noeat". noeat is +# always implied after a matched string). +# +# Weirdness: only states have colors, not transitions. This means that you +# sometimes have to make dummy states with '* next-state noeat' just to get +# a color specification. + +# Define no. sync lines +# You can say: +# -200 means 200 lines +# - means always start parsing from beginning of file when we lose sync +# if nothing is specified, the default is -50 + +# Define colors +# +# bold inverse blink dim underline italic +# white cyan magenta blue yellow green red black +# bg_white bg_cyan bg_magenta bg_blue bg_yellow bg_green bg_red bg_black + +=Expr +=Bad bold red +=Comment green +=Literal cyan +=Escape bold cyan +=Type bold +=Keyword bold +=Operator blue +=Control magenta +=CapId blue +=LowId +=Stdlib bold blue + +# Bugs: +# = in some contexts is a control, not an operator (let, etc) +# "type" keyword introduces a type = type + +:expr Expr + * expr + "#.,)];" control recolor=-1 + "!?" prefixop recolor=-1 + "=<>@^&+*/$%" infixop recolor=-1 + "\-" minus recolor=-1 + "~" tilde recolor=-1 + "[" brace recolor=-1 + "|" pipe recolor=-1 + ":" colon recolor=-1 + "(" bracket recolor=-1 + "0" zero recolor=-1 + "1-9" decimal recolor=-1 + "\"" string recolor=-1 + "\'" char recolor=-1 + "a-z_" lowid buffer recolor=-1 + "A-Z`" capid buffer recolor=-1 + +:bad Bad + * expr + +:control Control + * expr noeat + +:prefixop Operator + * operator noeat + +:infixop Operator + * operator noeat + +:operator Operator + * expr noeat + "!?~=<>@^|&+*/$%.:\-" operator + +:minus Operator + * operator noeat + "0" zero recolor=-2 + "1-9" decimal recolor=-2 + +:tilde Operator + * prefixop noeat + "a-z" opparam noeat + +:opparam LowId + * expr noeat + "a-zA-Z0-9_'" opparam + ":" control + +:brace Control + * expr noeat + "|" expr + +:pipe Operator + * infixop noeat + "]" pipeclose recolor=-2 + +:pipeclose Control + * expr noeat + +:colon Operator + * type1 noeat + "=" assign recolor=-2 + +:assign Operator + * expr noeat + +:bracket Control + * expr noeat + "*" comment1 recolor=-2 + +:zero Literal + * expr noeat + "0-9_" decimal + "b" binaryl buffer + "B" binaryh buffer + "o" octall buffer + "O" octalh buffer + "x" hexl buffer + "X" hexh buffer + "e" epartl buffer + "E" eparth buffer + "." float + +:decimal Literal + * expr noeat + "0-9_" decimal + "." float + "e" epartl buffer + "E" eparth buffer + +:binaryl Literal + * lowid noeat recolor=-2 + "01" binary +:binaryh Literal + * capid noeat recolor=-2 + "01" binary +:binary Literal + * expr noeat + "01_" binary + +:octall Literal + * lowid noeat recolor=-2 + "0-7" octal +:octalh Literal + * capid noeat recolor=-2 + "0-7" octal +:octal Literal + * expr noeat + "0-7_" octal + +:hexl Literal + * lowid noeat recolor=-2 + "0-9a-fA-F" hex +:hexh Literal + * capid noeat recolor=-2 + "0-9a-fA-F" hex +:hex Literal + * expr noeat + "0-9a-fA-F_" hex + +:float Literal + * expr noeat + "0-9_" float + "e" epartl buffer + "E" eparth buffer + +:epartl Literal + * lowid noeat recolor=-2 + "0-9" enum + "+\-" enum1 +:eparth Literal + * capid noeat recolor=-2 + "0-9" enum + "+\-" enum1 + +:enum1 Literal + * bad noeat + "0-9_" enum +:enum Literal + * expr noeat + "0-9_" enum + +:string Literal + * string + "\"" expr + "\\" string_escape recolor=-1 + "%" string_control recolor=-1 + +:string_escape Escape + * string + "x" string_hex1 + "0-7" string_octal2 + +:string_hex1 Escape + * string noeat + "0-9a-fA-F" string_hex2 + +:string_hex2 Escape + * string noeat + "0-9a-fA-F" string + +:string_octal2 Escape + * string noeat + "0-7" string_octal3 + +:string_octal3 Escape + * string noeat + "0-7" string + +:string_control Escape + * string_control + "\"" string noeat + "diouxXeEfFgGaAcspn%SC" string + +:char Literal + * charend + "\\" char_escape recolor=-1 + +:charend Literal + * bad noeat + "\'" expr + +:char_escape Escape + * charend + "x" char_hex1 + "0-7" char_octal2 + +:char_hex1 Escape + * bad noeat + "0-9a-fA-F" char_hex2 + +:char_hex2 Escape + * charend noeat + "0-9a-fA-F" charend + +:char_octal2 Escape + * charend noeat + "0-7" char_octal3 + +:char_octal3 Escape + * charend noeat + "0-7" charend + +:lowid LowId + * expr noeat strings + "_" kw + "and" kw + "as" kw + "assert" kw + "begin" kw + "class" kw + "constraint" kw + "do" kw + "done" kw + "downto" kw + "else" kw + "end" kw + "exception" kw + "external" kw + "false" kw + "for" kw + "fun" kw + "function" kw + "functor" kw + "if" kw + "in" kw + "include" kw + "inherit" kw + "initializer" kw + "lazy" kw + "let" kw + "match" kw + "method" kw + "module" kw + "mutable" kw + "new" kw + "object" kw + "of" kw + "open" kw + "private" kw + "raise" kw # technically not, but ... + "rec" kw + "sig" kw + "struct" kw + "then" kw + "to" kw + "true" kw + "try" kw + "type" kw + "val" kw + "virtual" kw + "when" kw + "while" kw + "with" kw + "asr" operatorkw + "land" operatorkw + "lor" operatorkw + "lsl" operatorkw + "lsr" operatorkw + "lxor" operatorkw + "mod" operatorkw + "or" operatorkw +done + "a-zA-Z0-9_'" lowid + +:kw Keyword + * expr noeat + +:operatorkw Operator + * expr noeat + +:capid CapId + * expr noeat strings + "Arg" stdlib + "Array" stdlib + "ArrayLabels" stdlib + "Buffer" stdlib + "Callback" stdlib + "Char" stdlib + "Complex" stdlib + "Digest" stdlib + "Filename" stdlib + "Format" stdlib + "Gc" stdlib + "Genlex" stdlib + "Hashtbl" stdlib + "Int32" stdlib + "Int64" stdlib + "Lazy" stdlib + "Lexing" stdlib + "List" stdlib + "ListLabels" stdlib + "Map" stdlib + "Marshal" stdlib + "MoreLabels" stdlib + "Nativeint" stdlib + "Oo" stdlib + "Parsing" stdlib + "Printexc" stdlib + "Printf" stdlib + "Queue" stdlib + "Random" stdlib + "Scanf" stdlib + "Set" stdlib + "Sort" stdlib + "Stack" stdlib + "StdLabels" stdlib + "Stream" stdlib + "String" stdlib + "StringLabels" stdlib + "Sys" stdlib + "Weak" stdlib +done + "a-zA-Z0-9_'" capid + +:stdlib Stdlib + * expr noeat + +:type1 Type + * expr noeat + "a-z *>'\t\-" type1 + "(" type2 + +:type2 Type + * expr noeat + "a-z *>'\t\-" type2 + "(" type3 + ")" type1 + +:type3 Type + * expr noeat + "a-z *>'\t\-" type3 + "(" type4 + ")" type2 + +:type4 Type + * expr noeat + "a-z *>'\t\-" type4 + "(" expr # too deep nesting + ")" type2 + +:comment1 Comment + * comment1 + "(" nestcomment1 + "*" endcomment1 + +:nestcomment1 Comment + * comment1 + "*" comment2 + +:endcomment1 Comment + * comment1 + ")" expr + "*" endcomment1 + +:comment2 Comment + * comment2 + "(" nestcomment2 + "*" endcomment2 + +:nestcomment2 Comment + * comment2 + "*" comment3 + +:endcomment2 Comment + * comment2 + ")" comment1 + "*" endcomment2 + +:comment3 Comment + * comment3 + "(" nestcomment3 + "*" endcomment3 + +:nestcomment3 Comment + * comment3 + "*" expr # too deep nesting + +:endcomment3 Comment + * comment3 + ")" comment2 + "*" endcomment3 diff --git a/.joe/syntax/ocaml.jsf.in b/.joe/syntax/ocaml.jsf.in @@ -0,0 +1,476 @@ +# JOE syntax highlight file for OCaml + +# A (deterministic) state machine which performs lexical analysis of OCaml. +# (This is the "assembly language" of syntax highlighting. A separate +# program could be used to convert a regular expression NFA syntax into this +# format). + +# Each state begins with ':<name> <color-name>' +# <color-name> is the color used for characters eaten by the state +# (really a symbol for a user definable color). + +# The first state defined is the initial state. + +# Within a state, define transitions (jumps) to other states. Each +# jump has the form: <character-list> <target-state> [<option>s] + +# There are two ways to specify <character-list>s, either * for any +# character not otherwise specified, or a literal list of characters within +# quotes (ranges and escape sequences allows). When the next character +# matches any in the list, a jump to the target-state is taken and the +# character is eaten (we advance to the next character of the file to be +# colored). +# +# The * transition should be the first transition specified in the state. +# +# There are several options: +# noeat do not eat the character, instead feed it to the next state +# (this tends to make the states smaller, but be careful: you +# can make infinite loops). 'noeat' implies 'recolor=-1'. +# +# recolor=-N Recolor the past N characters with the color of the +# target-state. For example once /* is recognized as the +# start of C comment, you want to color the /* with the C +# comment color. +# +# buffer start copying characters to a buffer, beginning with this +# one (it's ok to not terminate buffering with a matching +# 'strings' option- the buffer is limited to leading 19 +# characters). +# +# strings A list of strings follows. If the buffer matches any of the +# given strings, a jump to the target-state in the string list +# is taken instead of the normal jump. +# +# istrings Same as strings, but case is ignored. +# +# hold Stop buffering string- a future 'strings' or 'istrings' will +# look at contents of buffer at this point. Useful for distinguishing +# commands and function calls in some languages 'write 7' is a command +# 'write (' is a function call- hold lets us stop at the space and delay +# the string lookup until the ( or 7. +# +# The format of the string list is: +# +# "string" <target-state> [<options>s] +# "string" <target-state> [<options>s] +# done +# +# (all of the options above are allowed except "strings", "istrings" and "noeat". noeat is +# always implied after a matched string). +# +# Weirdness: only states have colors, not transitions. This means that you +# sometimes have to make dummy states with '* next-state noeat' just to get +# a color specification. + +# Define no. sync lines +# You can say: +# -200 means 200 lines +# - means always start parsing from beginning of file when we lose sync +# if nothing is specified, the default is -50 + +# Define colors +# +# bold inverse blink dim underline italic +# white cyan magenta blue yellow green red black +# bg_white bg_cyan bg_magenta bg_blue bg_yellow bg_green bg_red bg_black + +=Expr +=Bad bold red +=Comment green +=Literal cyan +=Escape bold cyan +=Type bold +=Keyword bold +=Operator blue +=Control magenta +=CapId blue +=LowId +=Stdlib bold blue + +# Bugs: +# = in some contexts is a control, not an operator (let, etc) +# "type" keyword introduces a type = type + +:expr Expr + * expr + "#.,)];" control recolor=-1 + "!?" prefixop recolor=-1 + "=<>@^&+*/$%" infixop recolor=-1 + "\-" minus recolor=-1 + "~" tilde recolor=-1 + "[" brace recolor=-1 + "|" pipe recolor=-1 + ":" colon recolor=-1 + "(" bracket recolor=-1 + "0" zero recolor=-1 + "1-9" decimal recolor=-1 + "\"" string recolor=-1 + "\'" char recolor=-1 + "a-z_" lowid buffer recolor=-1 + "A-Z`" capid buffer recolor=-1 + +:bad Bad + * expr + +:control Control + * expr noeat + +:prefixop Operator + * operator noeat + +:infixop Operator + * operator noeat + +:operator Operator + * expr noeat + "!?~=<>@^|&+*/$%.:\-" operator + +:minus Operator + * operator noeat + "0" zero recolor=-2 + "1-9" decimal recolor=-2 + +:tilde Operator + * prefixop noeat + "a-z" opparam noeat + +:opparam LowId + * expr noeat + "a-zA-Z0-9_'" opparam + ":" control + +:brace Control + * expr noeat + "|" expr + +:pipe Operator + * infixop noeat + "]" pipeclose recolor=-2 + +:pipeclose Control + * expr noeat + +:colon Operator + * type1 noeat + "=" assign recolor=-2 + +:assign Operator + * expr noeat + +:bracket Control + * expr noeat + "*" comment1 recolor=-2 + +:zero Literal + * expr noeat + "0-9_" decimal + "b" binaryl buffer + "B" binaryh buffer + "o" octall buffer + "O" octalh buffer + "x" hexl buffer + "X" hexh buffer + "e" epartl buffer + "E" eparth buffer + "." float + +:decimal Literal + * expr noeat + "0-9_" decimal + "." float + "e" epartl buffer + "E" eparth buffer + +:binaryl Literal + * lowid noeat recolor=-2 + "01" binary +:binaryh Literal + * capid noeat recolor=-2 + "01" binary +:binary Literal + * expr noeat + "01_" binary + +:octall Literal + * lowid noeat recolor=-2 + "0-7" octal +:octalh Literal + * capid noeat recolor=-2 + "0-7" octal +:octal Literal + * expr noeat + "0-7_" octal + +:hexl Literal + * lowid noeat recolor=-2 + "0-9a-fA-F" hex +:hexh Literal + * capid noeat recolor=-2 + "0-9a-fA-F" hex +:hex Literal + * expr noeat + "0-9a-fA-F_" hex + +:float Literal + * expr noeat + "0-9_" float + "e" epartl buffer + "E" eparth buffer + +:epartl Literal + * lowid noeat recolor=-2 + "0-9" enum + "+\-" enum1 +:eparth Literal + * capid noeat recolor=-2 + "0-9" enum + "+\-" enum1 + +:enum1 Literal + * bad noeat + "0-9_" enum +:enum Literal + * expr noeat + "0-9_" enum + +:string Literal + * string + "\"" expr + "\\" string_escape recolor=-1 + "%" string_control recolor=-1 + +:string_escape Escape + * string + "x" string_hex1 + "0-7" string_octal2 + +:string_hex1 Escape + * string noeat + "0-9a-fA-F" string_hex2 + +:string_hex2 Escape + * string noeat + "0-9a-fA-F" string + +:string_octal2 Escape + * string noeat + "0-7" string_octal3 + +:string_octal3 Escape + * string noeat + "0-7" string + +:string_control Escape + * string_control + "\"" string noeat + "diouxXeEfFgGaAcspn%SC" string + +:char Literal + * charend + "\\" char_escape recolor=-1 + +:charend Literal + * bad noeat + "\'" expr + +:char_escape Escape + * charend + "x" char_hex1 + "0-7" char_octal2 + +:char_hex1 Escape + * bad noeat + "0-9a-fA-F" char_hex2 + +:char_hex2 Escape + * charend noeat + "0-9a-fA-F" charend + +:char_octal2 Escape + * charend noeat + "0-7" char_octal3 + +:char_octal3 Escape + * charend noeat + "0-7" charend + +:lowid LowId + * expr noeat strings + "_" kw + "and" kw + "as" kw + "assert" kw + "begin" kw + "class" kw + "constraint" kw + "do" kw + "done" kw + "downto" kw + "else" kw + "end" kw + "exception" kw + "external" kw + "false" kw + "for" kw + "fun" kw + "function" kw + "functor" kw + "if" kw + "in" kw + "include" kw + "inherit" kw + "initializer" kw + "lazy" kw + "let" kw + "match" kw + "method" kw + "module" kw + "mutable" kw + "new" kw + "object" kw + "of" kw + "open" kw + "private" kw + "raise" kw # technically not, but ... + "rec" kw + "sig" kw + "struct" kw + "then" kw + "to" kw + "true" kw + "try" kw + "type" kw + "val" kw + "virtual" kw + "when" kw + "while" kw + "with" kw + "asr" operatorkw + "land" operatorkw + "lor" operatorkw + "lsl" operatorkw + "lsr" operatorkw + "lxor" operatorkw + "mod" operatorkw + "or" operatorkw +done + "a-zA-Z0-9_'" lowid + +:kw Keyword + * expr noeat + +:operatorkw Operator + * expr noeat + +:capid CapId + * expr noeat strings + "Arg" stdlib + "Array" stdlib + "ArrayLabels" stdlib + "Buffer" stdlib + "Callback" stdlib + "Char" stdlib + "Complex" stdlib + "Digest" stdlib + "Filename" stdlib + "Format" stdlib + "Gc" stdlib + "Genlex" stdlib + "Hashtbl" stdlib + "Int32" stdlib + "Int64" stdlib + "Lazy" stdlib + "Lexing" stdlib + "List" stdlib + "ListLabels" stdlib + "Map" stdlib + "Marshal" stdlib + "MoreLabels" stdlib + "Nativeint" stdlib + "Oo" stdlib + "Parsing" stdlib + "Printexc" stdlib + "Printf" stdlib + "Queue" stdlib + "Random" stdlib + "Scanf" stdlib + "Set" stdlib + "Sort" stdlib + "Stack" stdlib + "StdLabels" stdlib + "Stream" stdlib + "String" stdlib + "StringLabels" stdlib + "Sys" stdlib + "Weak" stdlib +done + "a-zA-Z0-9_'" capid + +:stdlib Stdlib + * expr noeat + +:type1 Type + * expr noeat + "a-z *>'\t\-" type1 + "(" type2 + +:type2 Type + * expr noeat + "a-z *>'\t\-" type2 + "(" type3 + ")" type1 + +:type3 Type + * expr noeat + "a-z *>'\t\-" type3 + "(" type4 + ")" type2 + +:type4 Type + * expr noeat + "a-z *>'\t\-" type4 + "(" expr # too deep nesting + ")" type2 + +:comment1 Comment + * comment1 + "(" nestcomment1 + "*" endcomment1 + +:nestcomment1 Comment + * comment1 + "*" comment2 + +:endcomment1 Comment + * comment1 + ")" expr + "*" endcomment1 + +:comment2 Comment + * comment2 + "(" nestcomment2 + "*" endcomment2 + +:nestcomment2 Comment + * comment2 + "*" comment3 + +:endcomment2 Comment + * comment2 + ")" comment1 + "*" endcomment2 + +:comment3 Comment + * comment3 + "(" nestcomment3 + "*" endcomment3 + +:nestcomment3 Comment + * comment3 + "*" expr # too deep nesting + +:endcomment3 Comment + * comment3 + ")" comment2 + "*" endcomment3 diff --git a/.joe/syntax/pascal.jsf b/.joe/syntax/pascal.jsf @@ -0,0 +1,223 @@ +# PASCAL highlighter for JOE +# With support for Delphi and FPC by Michael Van Canneyt + +=Idle +=Comment green +=Constant cyan +=Type bold +=Keyword bold +=Operator bold +=Function bold +=Bad bold red + +:idle Idle + * idle + "\i" ident buffer + "(" maybe_comment + "/" maybe_linecomment + "{" comment recolor=-1 + "'" string recolor=-1 + "$" maybe_hex_number + "%" maybe_bin_number + "&" maybe_oct_number + "0-9" number recolor=-1 + +# Comments + +:maybe_comment Idle + * idle noeat + "*" comment recolor=-2 + +:maybe_linecomment Idle + * idle noeat + "/" line_comment recolor=-2 + +:line_comment Comment + * line_comment + "\n" reset + +:comment Comment + * comment + "*" maybe_end_comment + "}" idle + +:maybe_end_comment Comment + * comment noeat + ")" idle + +# String constant + +:string Constant + * string + "\n" idle + "'" maybe_end_string + +:maybe_end_string Constant + * idle recolor=-1 noeat + "'" string + +# Numeric constant + +:maybe_hex_number Idle + * idle noeat + "0-9A-Fa-f" hex_number recolor=-2 + +:maybe_bin_number Idle + * idle noeat + "01" bin_number recolor=-2 + +:maybe_oct_number Idle + * idle noeat + "0-7" oct_number recolor=-2 + +:bad Bad + * idle noeat + +:hex_number Constant + * idle noeat + "0-9" hex_number + "a-fA-F" hex_number + +:bin_number Constant + * idle noeat + "01" bin_number + "2-9" bad recolor=-1 + +:oct_number Constant + * idle noeat + "0-7" oct_number + "89" bad recolor=-1 + +:number Constant + * idle noeat + "0-9" number + "eE" epart + "." dot + +:dot Constant + * idle noeat + "0-9" float + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + + +# Keywords + +:ident Idle + * idle noeat istrings + "and" operator + "array" type + "begin" kw + "case" kw + "const" kw + "div" operator + "do" kw + "downto" kw + "else" kw + "end" kw + "file" kw + "for" kw + "function" kw + "goto" kw + "if" kw + "in" kw + "label" kw + "mod" operator + "nil" word_constant + "not" operator + "of" kw + "or" operator + "packed" kw + "procedure" kw + "program" kw + "record" kw + "repeat" kw + "set" kw + "then" kw + "type" kw + "until" kw + "var" kw + "while" kw + "with" kw +# Delphi keywords + "to" kw + "try" kw + "finally" kw + "raise" kw + "absolute" kw + "cdecl" kw + "stdcall" kw + "register" kw + "interface" kw + "library" kw + "constructor" kw + "destructor" kw + "dispinterface" kw + "inherited" kw + "public" kw + "private" kw + "published" kw + "protected" kw + "initialization" kw + "finalization" kw + "class" kw + "object" kw + "resourcestring" kw + "property" kw + "threadvar" kw + "integer" type + "boolean" type + "real" type + "char" type + "string" type + "text" type + "abs" function + "atan" function + "arctan" function + "concat" function + "cos" function + "eof" function + "eoln" function + "exp" function + "insert" function + "length" function + "ln" function + "log" function + "odd" function + "ord" function + "page" function + "pred" function + "round" function + "sin" function + "sqr" function + "sqrt" function + "succ" function + "trun" function +done + "\c" ident + +:kw Keyword + * idle noeat + +:type Type + * idle noeat + +:operator Operator + * idle noeat + +:word_constant Constant + * idle noeat + +:function Function + * idle noeat diff --git a/.joe/syntax/pascal.jsf.in b/.joe/syntax/pascal.jsf.in @@ -0,0 +1,223 @@ +# PASCAL highlighter for JOE +# With support for Delphi and FPC by Michael Van Canneyt + +=Idle +=Comment green +=Constant cyan +=Type bold +=Keyword bold +=Operator bold +=Function bold +=Bad bold red + +:idle Idle + * idle + "\i" ident buffer + "(" maybe_comment + "/" maybe_linecomment + "{" comment recolor=-1 + "'" string recolor=-1 + "$" maybe_hex_number + "%" maybe_bin_number + "&" maybe_oct_number + "0-9" number recolor=-1 + +# Comments + +:maybe_comment Idle + * idle noeat + "*" comment recolor=-2 + +:maybe_linecomment Idle + * idle noeat + "/" line_comment recolor=-2 + +:line_comment Comment + * line_comment + "\n" reset + +:comment Comment + * comment + "*" maybe_end_comment + "}" idle + +:maybe_end_comment Comment + * comment noeat + ")" idle + +# String constant + +:string Constant + * string + "\n" idle + "'" maybe_end_string + +:maybe_end_string Constant + * idle recolor=-1 noeat + "'" string + +# Numeric constant + +:maybe_hex_number Idle + * idle noeat + "0-9A-Fa-f" hex_number recolor=-2 + +:maybe_bin_number Idle + * idle noeat + "01" bin_number recolor=-2 + +:maybe_oct_number Idle + * idle noeat + "0-7" oct_number recolor=-2 + +:bad Bad + * idle noeat + +:hex_number Constant + * idle noeat + "0-9" hex_number + "a-fA-F" hex_number + +:bin_number Constant + * idle noeat + "01" bin_number + "2-9" bad recolor=-1 + +:oct_number Constant + * idle noeat + "0-7" oct_number + "89" bad recolor=-1 + +:number Constant + * idle noeat + "0-9" number + "eE" epart + "." dot + +:dot Constant + * idle noeat + "0-9" float + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + + +# Keywords + +:ident Idle + * idle noeat istrings + "and" operator + "array" type + "begin" kw + "case" kw + "const" kw + "div" operator + "do" kw + "downto" kw + "else" kw + "end" kw + "file" kw + "for" kw + "function" kw + "goto" kw + "if" kw + "in" kw + "label" kw + "mod" operator + "nil" word_constant + "not" operator + "of" kw + "or" operator + "packed" kw + "procedure" kw + "program" kw + "record" kw + "repeat" kw + "set" kw + "then" kw + "type" kw + "until" kw + "var" kw + "while" kw + "with" kw +# Delphi keywords + "to" kw + "try" kw + "finally" kw + "raise" kw + "absolute" kw + "cdecl" kw + "stdcall" kw + "register" kw + "interface" kw + "library" kw + "constructor" kw + "destructor" kw + "dispinterface" kw + "inherited" kw + "public" kw + "private" kw + "published" kw + "protected" kw + "initialization" kw + "finalization" kw + "class" kw + "object" kw + "resourcestring" kw + "property" kw + "threadvar" kw + "integer" type + "boolean" type + "real" type + "char" type + "string" type + "text" type + "abs" function + "atan" function + "arctan" function + "concat" function + "cos" function + "eof" function + "eoln" function + "exp" function + "insert" function + "length" function + "ln" function + "log" function + "odd" function + "ord" function + "page" function + "pred" function + "round" function + "sin" function + "sqr" function + "sqrt" function + "succ" function + "trun" function +done + "\c" ident + +:kw Keyword + * idle noeat + +:type Type + * idle noeat + +:operator Operator + * idle noeat + +:word_constant Constant + * idle noeat + +:function Function + * idle noeat diff --git a/.joe/syntax/perl.jsf b/.joe/syntax/perl.jsf @@ -0,0 +1,461 @@ +# JOE syntax highlight file for Perl + +# Define colors + +=Idle +=Preproc blue +=Comment green +=POD green +=Constant cyan +=Escape bold cyan +=Type bold +=Keyword bold +=Bad bold red +=Var yellow + + +:begin Idle + * begin noeat call=.perl() + +# +# Perl as a subroutine for Mason +# + +.subr perl + +# Detect pod + +:idle Idle + * idle1 noeat +.ifdef mason_line + "\n" idle return +.else + "\n" idle +.endif + "=" pod_start + +# allow keywords + +:idle1 Idle + * idle1 + "#" line_comment_i recolor=-1 + "\n" idle noeat + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." maybe_float + "\"" string recolor=-1 + "'" char recolor=-1 + "`" backtick recolor=-1 + "<" maybe_inc + "$" not_string buffer +.ifdef mason_block + "&%" perl_maybe_done buffer + "-@\i" ident buffer +.else + "/" regex recolor=-1 + "-\i@%&" ident buffer +.endif + +:perl_maybe_done Idle + * ident noeat + ">" idle1 recolor=-2 return + +# prevent keywords + +:rest Idle + * rest + "({;~" idle1 + "#" line_comment recolor=-1 + "\n" idle noeat + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." maybe_float + "\"" string recolor=-1 + "'" char recolor=-1 + "`" backtick recolor=-1 + "$" not_string buffer + "<" maybe_inc +.ifdef mason_block + "&%" perl_maybe_done buffer + "\i@" maybe_string buffer +.else + "\i@%&" maybe_string buffer +.endif + +:pod_start Idle + * pod_start + "\n" pod_block + +:pod_block POD + * pod_block + "=" pod_ident buffer + +:pod_ident POD + * pod_block noeat strings + "=cut" rest +done + "\c" pod_ident + +:maybe_inc Idle + * rest noeat +.ifdef mason_block + "/" perl_maybe_done_2 +.endif + "<" maybe_inc1 + +:perl_maybe_done_2 Idle + * perl_idle noeat + "a-z" perl_maybe_done_2 + ">" idle + + +:maybe_inc1 Idle + * rest noeat + " " maybe_inc1 + "'\"" quoted_inc_start save_c recolor=-1 + "\i" inc buffer noeat + +:quoted_inc_start Var + * quoted_inc buffer + +:quoted_inc Var + * quoted_inc + & skipline save_s + +:inc Var + * skipline save_s noeat + "\c" inc + +# Should be treated as a normal line here... + +:skipline Idle + * skipline + "\n" next_line + +:todelim Constant + * todelim + "\n" next_line strings + "&" founddelim +done + +# eat \n so it's not in string. +:next_line Constant + * todelim buffer + "\n" next_line + +:founddelim Var + * idle noeat + +:regex Constant + * regex + "\\" regex_quote recolor=-1 + "/" rest + +:regex_quote Escape + * regex + +:not_string Idle + * rest noeat + "\i" ident + "\"'`#" rest + +:line_comment Comment + * line_comment + "\n" rest + +:line_comment_i Comment + * line_comment_i + "\n" idle noeat + +:end_of_file_comment Comment + * end_of_file_comment + +:first_digit Constant + * rest noeat + "x" hex + "b" binary + "." float + "eE" epart + "0-7" octal + "89" bad_number recolor=-1 + +:bad_number Bad + * rest noeat + "0-9" bad_number + +:octal Constant + * rest noeat + "0-7_" octal + "89" bad_number recolor=-1 + +:binary Constant + * rest noeat + "01_" binary + "2-9" bad_number recolor=-1 + +:hex Constant + * rest noeat + "0-9A-Fa-f_" hex + +:decimal Constant + * rest noeat + "0-9_" decimal + "eE" epart + "." float + +:maybe_float Constant + * rest recolor=-2 noeat + "0-9" float recolor=-2 + +:float Constant + * rest noeat + "eE" epart + "0-9_" float + +:epart Constant + * rest noeat + "0-9+\-" enum + +:enum Constant + * rest noeat + "0-9_" enum + +:string Constant + * string + "\"" rest + "\\" string_escape recolor=-1 + "$@" string_subst recolor=-1 + +:string_subst Escape + * string noeat recolor=-1 + "\c" string_subst + +:string_escape Escape + * string + "x" string_hex1 + "c" string_ctrl + "N" string_named + "0-7" string_octal2 + "\n" string recolor=-2 + +:string_named Escape + * string + "{" string_named_rest + +:string_named_rest Escape + * string_named_rest + "}" string + +:string_ctrl Escape + * string + +:string_hex1 Escape + * string noeat + "{" string_unicode + "0-9a-fA-F" string_hex2 + +:string_unicode Escape + * string_unicode + "}" string + +:string_hex2 Escape + * string noeat + "0-9a-fA-F" string + +:string_octal2 Escape + * string noeat + "0-7" string_octal3 + +:string_octal3 Escape + * string noeat + "0-7" string + +:char Constant + * char + "\n" idle noeat + "'" rest + "\\" char_escape recolor=-1 + +:char_escape Escape + * char recolor=-2 + "\\'" char + +:backtick Constant + * backtick + "`" rest + "\\" backtick_escape recolor=-1 + "$@" backtick_subst recolor=-1 + +:backtick_subst Escape + * backtick noeat recolor=-1 + "\c" backtick_subst + +:backtick_escape Escape + * backtick + "x" backtick_hex1 + "c" backtick_ctrl + "N" backtick_named + "0-7" backtick_octal2 + "\n" backtick recolor=-2 + +:backtick_named Escape + * backtick + "{" backtick_named_rest + +:backtick_named_rest Escape + * backtick_named_rest + "}" backtick + +:backtick_ctrl Escape + * backtick + +:backtick_hex1 Escape + * backtick noeat + "{" backtick_unicode + "0-9a-fA-F" backtick_hex2 + +:backtick_unicode Escape + * backtick_unicode + "}" backtick + +:backtick_hex2 Escape + * backtick noeat + "0-9a-fA-F" backtick + +:backtick_octal2 Escape + * backtick noeat + "0-7" backtick_octal3 + +:backtick_octal3 Escape + * backtick noeat + "0-7" backtick + +:ident Idle + * rest noeat strings + "BEGIN" kw + "END" kw + "if" kw + "unless" kw + "while" kw + "until" kw + "foreach" kw + "sub" kw + "my" kw + "do" kw + "if" kw + "else" kw + "elsif" kw + "for" kw + "continue" kw + "last" kw + "print" kw + "reset" kw + "die" kw + "goto" kw + "require" kw + "use" kw + "eval" kw + "redo" kw + "next" kw + "warn" kw + "return" kw + "printf" kw + "close" kw + "package" kw + "m" match + "qr" match + "qq" match + "qx" match + "qw" match + "q" match + "s" subst + "tr" subst + "y" subst + "__END__" end_of_file_comment + "__DATA__" end_of_file_comment +done + "\c" ident + +:maybe_string Idle + * rest noeat strings + "qr" match + "qq" match + "qx" match + "qw" match + "q" match +done + "\c" maybe_string + +:type Type + * rest noeat + +:kw Keyword + * rest noeat + +:match Idle + * inmatch save_c recolor=-1 + " " match + +:inmatch Constant + * inmatch + % inmatch call=.inmatch() + & rest + "\\" inmatch_quote recolor=-1 + +:inmatch_quote Escape + * inmatch + +:subst Idle + * insubst save_c recolor=-1 + "<([{`" delim_insubst save_c recolor=-1 + " " subst + +:insubst Constant + * insubst + & inrepl + "\\" insubst_quote recolor=-1 + +:insubst_quote Escape + * insubst + +:inrepl Constant + * inrepl + & rest + "\\" inrepl_quote + +:inrepl_quote Escape + * inrepl + +:delim_insubst Constant + * delim_insubst + & delim_repl + "\\" delim_quote + +:delim_quote Escape + * delim_insubst + +:delim_repl Constant + * repl save_c recolor=-1 + " " delim_repl + +:repl Constant + * repl + & rest + "\\" repl_quote + +:repl_quote Escape + * repl + +.end + +.subr inmatch + +:inmatch Constant + * inmatch + % inmatch call=.inmatch() + & inmatch return + "\\" inmatch_quote recolor=-1 + +:inmatch_quote Escape + * inmatch +.end diff --git a/.joe/syntax/perl.jsf.in b/.joe/syntax/perl.jsf.in @@ -0,0 +1,461 @@ +# JOE syntax highlight file for Perl + +# Define colors + +=Idle +=Preproc blue +=Comment green +=POD green +=Constant cyan +=Escape bold cyan +=Type bold +=Keyword bold +=Bad bold red +=Var yellow + + +:begin Idle + * begin noeat call=.perl() + +# +# Perl as a subroutine for Mason +# + +.subr perl + +# Detect pod + +:idle Idle + * idle1 noeat +.ifdef mason_line + "\n" idle return +.else + "\n" idle +.endif + "=" pod_start + +# allow keywords + +:idle1 Idle + * idle1 + "#" line_comment_i recolor=-1 + "\n" idle noeat + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." maybe_float + "\"" string recolor=-1 + "'" char recolor=-1 + "`" backtick recolor=-1 + "<" maybe_inc + "$" not_string buffer +.ifdef mason_block + "&%" perl_maybe_done buffer + "-@\i" ident buffer +.else + "/" regex recolor=-1 + "-\i@%&" ident buffer +.endif + +:perl_maybe_done Idle + * ident noeat + ">" idle1 recolor=-2 return + +# prevent keywords + +:rest Idle + * rest + "({;~" idle1 + "#" line_comment recolor=-1 + "\n" idle noeat + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." maybe_float + "\"" string recolor=-1 + "'" char recolor=-1 + "`" backtick recolor=-1 + "$" not_string buffer + "<" maybe_inc +.ifdef mason_block + "&%" perl_maybe_done buffer + "\i@" maybe_string buffer +.else + "\i@%&" maybe_string buffer +.endif + +:pod_start Idle + * pod_start + "\n" pod_block + +:pod_block POD + * pod_block + "=" pod_ident buffer + +:pod_ident POD + * pod_block noeat strings + "=cut" rest +done + "\c" pod_ident + +:maybe_inc Idle + * rest noeat +.ifdef mason_block + "/" perl_maybe_done_2 +.endif + "<" maybe_inc1 + +:perl_maybe_done_2 Idle + * perl_idle noeat + "a-z" perl_maybe_done_2 + ">" idle + + +:maybe_inc1 Idle + * rest noeat + " " maybe_inc1 + "'\"" quoted_inc_start save_c recolor=-1 + "\i" inc buffer noeat + +:quoted_inc_start Var + * quoted_inc buffer + +:quoted_inc Var + * quoted_inc + & skipline save_s + +:inc Var + * skipline save_s noeat + "\c" inc + +# Should be treated as a normal line here... + +:skipline Idle + * skipline + "\n" next_line + +:todelim Constant + * todelim + "\n" next_line strings + "&" founddelim +done + +# eat \n so it's not in string. +:next_line Constant + * todelim buffer + "\n" next_line + +:founddelim Var + * idle noeat + +:regex Constant + * regex + "\\" regex_quote recolor=-1 + "/" rest + +:regex_quote Escape + * regex + +:not_string Idle + * rest noeat + "\i" ident + "\"'`#" rest + +:line_comment Comment + * line_comment + "\n" rest + +:line_comment_i Comment + * line_comment_i + "\n" idle noeat + +:end_of_file_comment Comment + * end_of_file_comment + +:first_digit Constant + * rest noeat + "x" hex + "b" binary + "." float + "eE" epart + "0-7" octal + "89" bad_number recolor=-1 + +:bad_number Bad + * rest noeat + "0-9" bad_number + +:octal Constant + * rest noeat + "0-7_" octal + "89" bad_number recolor=-1 + +:binary Constant + * rest noeat + "01_" binary + "2-9" bad_number recolor=-1 + +:hex Constant + * rest noeat + "0-9A-Fa-f_" hex + +:decimal Constant + * rest noeat + "0-9_" decimal + "eE" epart + "." float + +:maybe_float Constant + * rest recolor=-2 noeat + "0-9" float recolor=-2 + +:float Constant + * rest noeat + "eE" epart + "0-9_" float + +:epart Constant + * rest noeat + "0-9+\-" enum + +:enum Constant + * rest noeat + "0-9_" enum + +:string Constant + * string + "\"" rest + "\\" string_escape recolor=-1 + "$@" string_subst recolor=-1 + +:string_subst Escape + * string noeat recolor=-1 + "\c" string_subst + +:string_escape Escape + * string + "x" string_hex1 + "c" string_ctrl + "N" string_named + "0-7" string_octal2 + "\n" string recolor=-2 + +:string_named Escape + * string + "{" string_named_rest + +:string_named_rest Escape + * string_named_rest + "}" string + +:string_ctrl Escape + * string + +:string_hex1 Escape + * string noeat + "{" string_unicode + "0-9a-fA-F" string_hex2 + +:string_unicode Escape + * string_unicode + "}" string + +:string_hex2 Escape + * string noeat + "0-9a-fA-F" string + +:string_octal2 Escape + * string noeat + "0-7" string_octal3 + +:string_octal3 Escape + * string noeat + "0-7" string + +:char Constant + * char + "\n" idle noeat + "'" rest + "\\" char_escape recolor=-1 + +:char_escape Escape + * char recolor=-2 + "\\'" char + +:backtick Constant + * backtick + "`" rest + "\\" backtick_escape recolor=-1 + "$@" backtick_subst recolor=-1 + +:backtick_subst Escape + * backtick noeat recolor=-1 + "\c" backtick_subst + +:backtick_escape Escape + * backtick + "x" backtick_hex1 + "c" backtick_ctrl + "N" backtick_named + "0-7" backtick_octal2 + "\n" backtick recolor=-2 + +:backtick_named Escape + * backtick + "{" backtick_named_rest + +:backtick_named_rest Escape + * backtick_named_rest + "}" backtick + +:backtick_ctrl Escape + * backtick + +:backtick_hex1 Escape + * backtick noeat + "{" backtick_unicode + "0-9a-fA-F" backtick_hex2 + +:backtick_unicode Escape + * backtick_unicode + "}" backtick + +:backtick_hex2 Escape + * backtick noeat + "0-9a-fA-F" backtick + +:backtick_octal2 Escape + * backtick noeat + "0-7" backtick_octal3 + +:backtick_octal3 Escape + * backtick noeat + "0-7" backtick + +:ident Idle + * rest noeat strings + "BEGIN" kw + "END" kw + "if" kw + "unless" kw + "while" kw + "until" kw + "foreach" kw + "sub" kw + "my" kw + "do" kw + "if" kw + "else" kw + "elsif" kw + "for" kw + "continue" kw + "last" kw + "print" kw + "reset" kw + "die" kw + "goto" kw + "require" kw + "use" kw + "eval" kw + "redo" kw + "next" kw + "warn" kw + "return" kw + "printf" kw + "close" kw + "package" kw + "m" match + "qr" match + "qq" match + "qx" match + "qw" match + "q" match + "s" subst + "tr" subst + "y" subst + "__END__" end_of_file_comment + "__DATA__" end_of_file_comment +done + "\c" ident + +:maybe_string Idle + * rest noeat strings + "qr" match + "qq" match + "qx" match + "qw" match + "q" match +done + "\c" maybe_string + +:type Type + * rest noeat + +:kw Keyword + * rest noeat + +:match Idle + * inmatch save_c recolor=-1 + " " match + +:inmatch Constant + * inmatch + % inmatch call=.inmatch() + & rest + "\\" inmatch_quote recolor=-1 + +:inmatch_quote Escape + * inmatch + +:subst Idle + * insubst save_c recolor=-1 + "<([{`" delim_insubst save_c recolor=-1 + " " subst + +:insubst Constant + * insubst + & inrepl + "\\" insubst_quote recolor=-1 + +:insubst_quote Escape + * insubst + +:inrepl Constant + * inrepl + & rest + "\\" inrepl_quote + +:inrepl_quote Escape + * inrepl + +:delim_insubst Constant + * delim_insubst + & delim_repl + "\\" delim_quote + +:delim_quote Escape + * delim_insubst + +:delim_repl Constant + * repl save_c recolor=-1 + " " delim_repl + +:repl Constant + * repl + & rest + "\\" repl_quote + +:repl_quote Escape + * repl + +.end + +.subr inmatch + +:inmatch Constant + * inmatch + % inmatch call=.inmatch() + & inmatch return + "\\" inmatch_quote recolor=-1 + +:inmatch_quote Escape + * inmatch +.end diff --git a/.joe/syntax/php.jsf b/.joe/syntax/php.jsf @@ -0,0 +1,293 @@ +# JOE syntax highlight file for PHP +# modified by Eric Lin + +# TODO: +# * heredoc support (as good as possible) +# * highlight function and class names? + +# Define no. sync lines +# You can say: +# -200 means 200 lines +# - means always start parsing from beginning of file when we lose sync +# if nothing is specified, the default is -50 + +- + +# Define colors + +=Idle +=Comment green +=Constant cyan +=Constant_sq blue +=Escape bold cyan +=Keyword bold +=Var red +=Methods bold + +# Call HTML highlighter. It will call the PHP highlighter subroutine in this file. + +:begin Idle + * call_failed noeat call=html.html(php) + +:call_failed Var + * call_failed + +# PHP highlighter. + +.subr php + +:idle Idle + * idle + "<" idle_done + "?" idle_qmark + "%" idle_hash + "#" sh_comment recolor=-1 + "/" slash + "0-9" first_digit recolor=-1 + "'" string_sq recolor=-1 + "\"" string_dq recolor=-1 + "\`" string_bq recolor=-1 + "\i" ident buffer + "$" php_var recolor=-1 + "-" maybe_method + "{}" brace recolor=-1 + +:idle_done Idle + * idle noeat + "/" idle noeat recolor=-2 return + "<" idle_here + +:idle_here Idle + * idle noeat + "<" here_doc + +:here_doc Idle + * idle noeat + " " here_doc + "\i" here_name buffer + +:here_name Idle + * inhere_doc save_s + "\c" here_name + +:inhere_doc Constant + * inhere_not_eol + "\n" inhere_doc + "\i" inhere_name buffer + +:inhere_not_eol Constant + * inhere_not_eol + "\n" inhere_doc + +:inhere_name Constant + * inhere_doc + ";" inhere_doc strings + "&" idle +done + "\c" inhere_name + +:brace Methods + * idle noeat + +:php_var Var + * idle noeat + "\c" php_var + +:var_indqstring Var + * string_dq recolor=-1 + "\i" var_indqstring + "\"" string_dq noeat + "\\" string_dq_esc recolor=-1 + +:var_inbqstring Var + * string_bq recolor=-1 + "\i" var_inbqstring + "\`" string_sq noeat + "\\" string_bq_esc recolor=-1 + +:maybe_method Methods + * idle recolor=-1 + "?" idle_qmark + "%" idle_hash + "#" sh_comment recolor=-1 + "/" slash + "0-9" first_digit recolor=-1 + "'" string_sq recolor=-1 + "\"" string_dq recolor=-1 + "\i" ident buffer + "$" php_var recolor=-1 + "{}" brace recolor=-1 + ">" method recolor=-2 + +:method Methods + * idle recolor=-1 + "\i" method recolor=-1 + +:idle_qmark Idle + * idle noeat + ">" idle recolor=-2 return + +:idle_hash Idle + * idle noeat + ">" idle recolor=-2 return + +:sh_comment Comment + * sh_comment + "\n" idle + +:slash Idle + * idle noeat + "*" comment recolor=-2 + "/" line_comment recolor=-2 + +:comment Comment + * comment + "*" maybe_end_comment + +:maybe_end_comment Comment + * comment + "/" idle + "*" maybe_end_comment + +:line_comment Comment + * line_comment + "\n" idle + + +:string_sq Constant_sq + * string_sq + "\'" idle + "\\" string_sq_esc recolor=-1 + +:string_sq_esc Escape + * string_sq + "\n" string_sq recolor=-2 + +:string_dq Constant + * string_dq + "$" var_indqstring recolor=-1 + "\"" idle + "\\" string_dq_esc recolor=-1 + +:string_dq_esc Escape + * string_dq + "\n" string_dq recolor=-2 + +:string_bq Constant + * string_bq + "$" var_inbqstring recolor=-1 + "\`" idle + "\\" string_bq_esc recolor=-1 + +:string_bq_esc Escape + * string_bq + "\n" string_bq recolor=-2 + +:first_digit Constant + * idle noeat + "xX" hex + "." float + "0" octal + "1-9" first_number + +:octal Constant + * idle noeat + "0-7" octal + +:hex Constant + * idle noeat + "0-9A-Fa-f" hex + +:first_number Constant + * idle noeat + "0-9" first_number + "." float + +:maybe_float Constant + * idle recolor=-2 noeat + "0-9" float recolor=-2 + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +:ident Idle + * idle noeat strings + "addslashes" meth + "array" meth + "array_keys" meth + "count" meth + "date" meth + "chr" meth + "empty" meth + "end" meth + "header" meth + "highlight_file" meth + "htmlspecialchars" meth + "isset" meth + "shuffle" meth + "strip_tags" meth + "strlen" meth + "strpos" meth + "strrpos" meth + "substr" meth + "trim" meth + "and" kw + "as" kw + "break" kw + "case" kw + "class" kw + "continue" kw + "declare" kw + "default" kw + "die" kw + "do" kw + "echo" kw + "else" kw + "elseif" kw + "eval" kw + "exception" kw + "exit" kw + "extends" kw + "for" kw + "foreach" kw + "function" kw + "global" kw + "if" kw + "include" kw + "include_once" kw + "list" kw + "new" kw + "or" kw + "print" kw + "private" kw + "public" kw + "require" kw + "require_once" kw + "return" kw + "static" kw + "switch" kw + "unset" kw + "while" kw +done + "\c" ident + +:kw Keyword + * idle noeat + +:meth Methods + * idle noeat + +:var Var + * mark noeat + +.end diff --git a/.joe/syntax/php.jsf.in b/.joe/syntax/php.jsf.in @@ -0,0 +1,293 @@ +# JOE syntax highlight file for PHP +# modified by Eric Lin + +# TODO: +# * heredoc support (as good as possible) +# * highlight function and class names? + +# Define no. sync lines +# You can say: +# -200 means 200 lines +# - means always start parsing from beginning of file when we lose sync +# if nothing is specified, the default is -50 + +- + +# Define colors + +=Idle +=Comment green +=Constant cyan +=Constant_sq blue +=Escape bold cyan +=Keyword bold +=Var red +=Methods bold + +# Call HTML highlighter. It will call the PHP highlighter subroutine in this file. + +:begin Idle + * call_failed noeat call=html.html(php) + +:call_failed Var + * call_failed + +# PHP highlighter. + +.subr php + +:idle Idle + * idle + "<" idle_done + "?" idle_qmark + "%" idle_hash + "#" sh_comment recolor=-1 + "/" slash + "0-9" first_digit recolor=-1 + "'" string_sq recolor=-1 + "\"" string_dq recolor=-1 + "\`" string_bq recolor=-1 + "\i" ident buffer + "$" php_var recolor=-1 + "-" maybe_method + "{}" brace recolor=-1 + +:idle_done Idle + * idle noeat + "/" idle noeat recolor=-2 return + "<" idle_here + +:idle_here Idle + * idle noeat + "<" here_doc + +:here_doc Idle + * idle noeat + " " here_doc + "\i" here_name buffer + +:here_name Idle + * inhere_doc save_s + "\c" here_name + +:inhere_doc Constant + * inhere_not_eol + "\n" inhere_doc + "\i" inhere_name buffer + +:inhere_not_eol Constant + * inhere_not_eol + "\n" inhere_doc + +:inhere_name Constant + * inhere_doc + ";" inhere_doc strings + "&" idle +done + "\c" inhere_name + +:brace Methods + * idle noeat + +:php_var Var + * idle noeat + "\c" php_var + +:var_indqstring Var + * string_dq recolor=-1 + "\i" var_indqstring + "\"" string_dq noeat + "\\" string_dq_esc recolor=-1 + +:var_inbqstring Var + * string_bq recolor=-1 + "\i" var_inbqstring + "\`" string_sq noeat + "\\" string_bq_esc recolor=-1 + +:maybe_method Methods + * idle recolor=-1 + "?" idle_qmark + "%" idle_hash + "#" sh_comment recolor=-1 + "/" slash + "0-9" first_digit recolor=-1 + "'" string_sq recolor=-1 + "\"" string_dq recolor=-1 + "\i" ident buffer + "$" php_var recolor=-1 + "{}" brace recolor=-1 + ">" method recolor=-2 + +:method Methods + * idle recolor=-1 + "\i" method recolor=-1 + +:idle_qmark Idle + * idle noeat + ">" idle recolor=-2 return + +:idle_hash Idle + * idle noeat + ">" idle recolor=-2 return + +:sh_comment Comment + * sh_comment + "\n" idle + +:slash Idle + * idle noeat + "*" comment recolor=-2 + "/" line_comment recolor=-2 + +:comment Comment + * comment + "*" maybe_end_comment + +:maybe_end_comment Comment + * comment + "/" idle + "*" maybe_end_comment + +:line_comment Comment + * line_comment + "\n" idle + + +:string_sq Constant_sq + * string_sq + "\'" idle + "\\" string_sq_esc recolor=-1 + +:string_sq_esc Escape + * string_sq + "\n" string_sq recolor=-2 + +:string_dq Constant + * string_dq + "$" var_indqstring recolor=-1 + "\"" idle + "\\" string_dq_esc recolor=-1 + +:string_dq_esc Escape + * string_dq + "\n" string_dq recolor=-2 + +:string_bq Constant + * string_bq + "$" var_inbqstring recolor=-1 + "\`" idle + "\\" string_bq_esc recolor=-1 + +:string_bq_esc Escape + * string_bq + "\n" string_bq recolor=-2 + +:first_digit Constant + * idle noeat + "xX" hex + "." float + "0" octal + "1-9" first_number + +:octal Constant + * idle noeat + "0-7" octal + +:hex Constant + * idle noeat + "0-9A-Fa-f" hex + +:first_number Constant + * idle noeat + "0-9" first_number + "." float + +:maybe_float Constant + * idle recolor=-2 noeat + "0-9" float recolor=-2 + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +:ident Idle + * idle noeat strings + "addslashes" meth + "array" meth + "array_keys" meth + "count" meth + "date" meth + "chr" meth + "empty" meth + "end" meth + "header" meth + "highlight_file" meth + "htmlspecialchars" meth + "isset" meth + "shuffle" meth + "strip_tags" meth + "strlen" meth + "strpos" meth + "strrpos" meth + "substr" meth + "trim" meth + "and" kw + "as" kw + "break" kw + "case" kw + "class" kw + "continue" kw + "declare" kw + "default" kw + "die" kw + "do" kw + "echo" kw + "else" kw + "elseif" kw + "eval" kw + "exception" kw + "exit" kw + "extends" kw + "for" kw + "foreach" kw + "function" kw + "global" kw + "if" kw + "include" kw + "include_once" kw + "list" kw + "new" kw + "or" kw + "print" kw + "private" kw + "public" kw + "require" kw + "require_once" kw + "return" kw + "static" kw + "switch" kw + "unset" kw + "while" kw +done + "\c" ident + +:kw Keyword + * idle noeat + +:meth Methods + * idle noeat + +:var Var + * mark noeat + +.end diff --git a/.joe/syntax/powershell.jsf b/.joe/syntax/powershell.jsf @@ -0,0 +1,259 @@ +# PowerShell syntax highlighting for Joe's Own Editor +# Oskar Liljeblad <oskar@osk.mine.nu>, 2014-02-11 +# +# PowerShell is the poor man's[1] replacement for a real shell such as Bash. +# [1] Someone who has to use Windows for whatever reason. +# +# Reference: http://www.microsoft.com/en-us/download/details.aspx?id=36389 +# Status: +# 1 100% +# 2.1 100% +# 2.2.1 100% except signature support +# 2.2.2 100% +# 2.2.3 100% except requires support +# 2.2.4 100% +# 2.3.1 100% +# 2.3.2 100% except automatic variables +# 2.3.3 100% no coloring +# 2.3.4 100% no coloring +# 2.3.5 100% no coloring +# 2.3.6 100% + +=Idle +=Comment green +=Constant cyan +=ConstEscape bold cyan +=Keyword bold +=Var magenta +=VarEscape bold magenta + +:idle Idle + * idle + "#" comment recolor=-1 + "$" var recolor=-1 + "@" var_array recolor=-1 + "<" idle1 + "\"" string_dq recolor=-1 + "'" string_sq recolor=-1 + "@" idle2 + "a-zA-Z_-" ident buffer + +:idle1 Idle + * idle noeat + "#" delim_comment recolor=-2 + +:idle2 Idle + * idle noeat + "\"" herestr_dq recolor=-2 + "'" herestr_sq recolor=-2 + +:comment Comment + * comment + "\r\n" idle + +:var_array Var + * idle noeat + "$?^" idle + "a-zA-Z_" var_name + +:var Var + * idle noeat + "{" var_brack + "$?^" idle + "a-zA-Z_" var_name + +:var_name Var + * idle noeat recolor=-1 + "a-zA-Z0-9_:?" var_name + +:var_brack Var + * var_brack + "`" var_escape recolor=-1 + "}" idle + +:var_escape VarEscape + * var_brack + +:delim_comment Comment + * delim_comment + "#" delim_comment1 + +:delim_comment1 Comment + * delim_comment noeat + ">" idle + +:kw Keyword + * idle noeat + +:string_dq Constant + * string_dq + "\"\n" idle + "$" string_dq_subst recolor=-1 + "`" string_dq_esc recolor=-1 + +:string_dq_subst Var + * string_dq noeat recolor=-2 + "a-zA-Z_" string_dq_subst_name + "{" string_dq_subst_brack + "(" string_dq_subst_parens + "`" string_dq_subst_escape recolor=-1 + +:string_dq_subst_name Var + * string_dq recolor=-1 noeat + "a-zA-Z0-9_:" string_dq_subst_name + "`" string_dq_subst_escape recolor=-1 + +:string_dq_subst_escape VarEscape + * string_dq_subst_name + +:string_dq_subst_brack Var + * string_dq_subst_brack + "}" string_dq + +:string_dq_subst_parens Var + * string_dq_sustr_parens + ")" string_dq + +:string_sq Constant + * string_sq + "\'\n" idle + +:string_dq_esc ConstEscape + * string_dq + +:string_sq_esc ConstEscape + * string_sq + +:herestr_dq Constant + * herestr_dq + "\"" herestr_dq1 + "$" herestr_dq_subst recolor=-1 + +:herestr_dq1 Constant + * herestr_dq noeat + "@" idle + +:herestr_dq_subst Var + * herestr_dq noeat recolor=-2 + "a-zA-Z_" herestr_dq_subst_name + "(" herestr_dq_subst_parens + "`" herestr_dq_subst_escape recolor=-1 + +:herestr_dq_subst_name Var + * herestr_dq recolor=-1 noeat + "a-zA-Z0-9_:" herestr_dq_subst_name + "`" herestr_dq_subst_escape recolor=-1 + +:herestr_dq_subst_escape VarEscape + * herestr_dq_subst_name + +:herestr_dq_subst_parens Var + * herestr_dq_subst_parens + ")" herestr_dq + +:herestr_sq Constant + * herestr_sq + "\'" herestr_sq1 + +:herestr_sq1 Constant + * herestr_sq noeat + "@" idle + +:ident Idle + * idle noeat istrings + "-and" kw + "-band" kw + "-bnot" kw + "-bor" kw + "-bxor" kw + "-not" kw + "-or" kw + "-xor" kw + "-f" kw + "-as" kw + "-ccontains" kw + "-ceq" kw + "-cge" kw + "-cgt" kw + "-cle" kw + "-clike" kw + "-clt" kw + "-cmatch" kw + "-cne" kw + "-cnotcontains" kw + "-cnotlike" kw + "-cnotmatch" kw + "-contains" kw + "-creplace" kw + "-csplit" kw + "-eq" kw + "-ge" kw + "-gt" kw + "-icontains" kw + "-ieq" kw + "-ige" kw + "-igt" kw + "-ile" kw + "-ilike" kw + "-ilt" kw + "-imatch" kw + "-in" kw + "-ine" kw + "-inotcontains" kw + "-inotlike" kw + "-inotmatch" kw + "-ireplace" kw + "-is" kw + "-isnot" kw + "-isplit" kw + "-join" kw + "-le" kw + "-like" kw + "-lt" kw + "-match" kw + "-ne" kw + "-notcontains" kw + "-notin" kw + "-notlike" kw + "-notmatch" kw + "-replace" kw + "-shl" kw + "-shr" kw + "-split" kw + "begin" kw + "break" kw + "catch" kw + "class" kw + "continue" kw + "data" kw + "define" kw + "do" kw + "dynamicparam" kw + "else" kw + "elseif" kw + "end" kw + "exit" kw + "filter" kw + "finally" kw + "for" kw + "foreach" kw + "from" kw + "function" kw + "if" kw + "in" kw + "inlinescript" kw + "parallel" kw + "param" kw + "process" kw + "return" kw + "switch" kw + "throw" kw + "trap" kw + "try" kw + "until" kw + "using" kw + "var" kw + "while" kw + "workflow" kw +done + "a-zA-Z_" ident diff --git a/.joe/syntax/powershell.jsf.in b/.joe/syntax/powershell.jsf.in @@ -0,0 +1,259 @@ +# PowerShell syntax highlighting for Joe's Own Editor +# Oskar Liljeblad <oskar@osk.mine.nu>, 2014-02-11 +# +# PowerShell is the poor man's[1] replacement for a real shell such as Bash. +# [1] Someone who has to use Windows for whatever reason. +# +# Reference: http://www.microsoft.com/en-us/download/details.aspx?id=36389 +# Status: +# 1 100% +# 2.1 100% +# 2.2.1 100% except signature support +# 2.2.2 100% +# 2.2.3 100% except requires support +# 2.2.4 100% +# 2.3.1 100% +# 2.3.2 100% except automatic variables +# 2.3.3 100% no coloring +# 2.3.4 100% no coloring +# 2.3.5 100% no coloring +# 2.3.6 100% + +=Idle +=Comment green +=Constant cyan +=ConstEscape bold cyan +=Keyword bold +=Var magenta +=VarEscape bold magenta + +:idle Idle + * idle + "#" comment recolor=-1 + "$" var recolor=-1 + "@" var_array recolor=-1 + "<" idle1 + "\"" string_dq recolor=-1 + "'" string_sq recolor=-1 + "@" idle2 + "a-zA-Z_-" ident buffer + +:idle1 Idle + * idle noeat + "#" delim_comment recolor=-2 + +:idle2 Idle + * idle noeat + "\"" herestr_dq recolor=-2 + "'" herestr_sq recolor=-2 + +:comment Comment + * comment + "\r\n" idle + +:var_array Var + * idle noeat + "$?^" idle + "a-zA-Z_" var_name + +:var Var + * idle noeat + "{" var_brack + "$?^" idle + "a-zA-Z_" var_name + +:var_name Var + * idle noeat recolor=-1 + "a-zA-Z0-9_:?" var_name + +:var_brack Var + * var_brack + "`" var_escape recolor=-1 + "}" idle + +:var_escape VarEscape + * var_brack + +:delim_comment Comment + * delim_comment + "#" delim_comment1 + +:delim_comment1 Comment + * delim_comment noeat + ">" idle + +:kw Keyword + * idle noeat + +:string_dq Constant + * string_dq + "\"\n" idle + "$" string_dq_subst recolor=-1 + "`" string_dq_esc recolor=-1 + +:string_dq_subst Var + * string_dq noeat recolor=-2 + "a-zA-Z_" string_dq_subst_name + "{" string_dq_subst_brack + "(" string_dq_subst_parens + "`" string_dq_subst_escape recolor=-1 + +:string_dq_subst_name Var + * string_dq recolor=-1 noeat + "a-zA-Z0-9_:" string_dq_subst_name + "`" string_dq_subst_escape recolor=-1 + +:string_dq_subst_escape VarEscape + * string_dq_subst_name + +:string_dq_subst_brack Var + * string_dq_subst_brack + "}" string_dq + +:string_dq_subst_parens Var + * string_dq_sustr_parens + ")" string_dq + +:string_sq Constant + * string_sq + "\'\n" idle + +:string_dq_esc ConstEscape + * string_dq + +:string_sq_esc ConstEscape + * string_sq + +:herestr_dq Constant + * herestr_dq + "\"" herestr_dq1 + "$" herestr_dq_subst recolor=-1 + +:herestr_dq1 Constant + * herestr_dq noeat + "@" idle + +:herestr_dq_subst Var + * herestr_dq noeat recolor=-2 + "a-zA-Z_" herestr_dq_subst_name + "(" herestr_dq_subst_parens + "`" herestr_dq_subst_escape recolor=-1 + +:herestr_dq_subst_name Var + * herestr_dq recolor=-1 noeat + "a-zA-Z0-9_:" herestr_dq_subst_name + "`" herestr_dq_subst_escape recolor=-1 + +:herestr_dq_subst_escape VarEscape + * herestr_dq_subst_name + +:herestr_dq_subst_parens Var + * herestr_dq_subst_parens + ")" herestr_dq + +:herestr_sq Constant + * herestr_sq + "\'" herestr_sq1 + +:herestr_sq1 Constant + * herestr_sq noeat + "@" idle + +:ident Idle + * idle noeat istrings + "-and" kw + "-band" kw + "-bnot" kw + "-bor" kw + "-bxor" kw + "-not" kw + "-or" kw + "-xor" kw + "-f" kw + "-as" kw + "-ccontains" kw + "-ceq" kw + "-cge" kw + "-cgt" kw + "-cle" kw + "-clike" kw + "-clt" kw + "-cmatch" kw + "-cne" kw + "-cnotcontains" kw + "-cnotlike" kw + "-cnotmatch" kw + "-contains" kw + "-creplace" kw + "-csplit" kw + "-eq" kw + "-ge" kw + "-gt" kw + "-icontains" kw + "-ieq" kw + "-ige" kw + "-igt" kw + "-ile" kw + "-ilike" kw + "-ilt" kw + "-imatch" kw + "-in" kw + "-ine" kw + "-inotcontains" kw + "-inotlike" kw + "-inotmatch" kw + "-ireplace" kw + "-is" kw + "-isnot" kw + "-isplit" kw + "-join" kw + "-le" kw + "-like" kw + "-lt" kw + "-match" kw + "-ne" kw + "-notcontains" kw + "-notin" kw + "-notlike" kw + "-notmatch" kw + "-replace" kw + "-shl" kw + "-shr" kw + "-split" kw + "begin" kw + "break" kw + "catch" kw + "class" kw + "continue" kw + "data" kw + "define" kw + "do" kw + "dynamicparam" kw + "else" kw + "elseif" kw + "end" kw + "exit" kw + "filter" kw + "finally" kw + "for" kw + "foreach" kw + "from" kw + "function" kw + "if" kw + "in" kw + "inlinescript" kw + "parallel" kw + "param" kw + "process" kw + "return" kw + "switch" kw + "throw" kw + "trap" kw + "try" kw + "until" kw + "using" kw + "var" kw + "while" kw + "workflow" kw +done + "a-zA-Z_" ident diff --git a/.joe/syntax/prolog.jsf b/.joe/syntax/prolog.jsf @@ -0,0 +1,155 @@ +# JOE syntax highlight file for Prolog +# by Christian Nicolai (http://mycrobase.de) + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Keyword bold +=Bad bold red + +=Brace #magenta +=Variable #yellow +=Predicate red + +:idle Idle + * idle + "\n" idle + "%" line_comment recolor=-1 + "/" maybe_comment + "0-9" first_digit recolor=-1 + "'" string_sq_1 recolor=-1 + "\"" string_dq_1 recolor=-1 + + # marking -> predicate hilite + # buffering -> keyword hilite + "a-z" atom mark buffer + + "A-Z" variable recolor=-1 + "_" _variable + "[]" brace recolor=-1 + +:line_comment Comment + * line_comment + "\n" idle + +:maybe_comment Idle + * idle noeat + "*" comment recolor=-2 + +:comment Comment + * comment + "*" maybe_end_comment + +:maybe_end_comment Comment + * comment + "/" idle + "*" maybe_end_comment + +:brace Brace + * idle noeat + +:string_sq_1 Constant + * string_sq noeat + +:string_sq Constant + * string_sq + "\'" idle + "\\" string_sq_esc recolor=-1 + +:string_sq_esc Escape + * string_sq + "\n" string_sq recolor=-2 + +:string_dq_1 Constant + * string_dq noeat + +:string_dq Constant + * string_dq + "\"" idle + "\\" string_dq_esc recolor=-1 + +:string_dq_esc Escape + * string_dq + "\n" string_dq recolor=-2 + +:first_digit Constant + * idle noeat + # no float support +# "." float + "0-9" first_number + +:first_number Constant + * idle noeat + "0-9" first_number + "." float + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +# list of keywords includes some predicates... +:atom Idle + * atom_end noeat markend strings + "append" kw + "atom" kw + "atomic" kw + "call" kw + "catch" kw + "clause" kw + "close" kw + "fail" kw + "findall" kw + "float" kw + "halt" kw + "integer" kw + "is" kw + "member" kw + "nl" kw + "nonvar" kw + "number" kw + "once" kw + "op" kw + "open" kw + "read" kw + "repeat" kw + "throw" kw + "true" kw + "var" kw + "write" kw +done + "a-zA-Z0-9_" atom + +:kw Keyword + * idle noeat + +:atom_end Idle + * idle noeat + " " atom_end + "(" pred_end recolormark + ":" maybe_pred_end + +:pred_end Predicate + * idle noeat + +:maybe_pred_end Idle + * idle noeat + "-" pred_end recolormark + +:variable Variable + * idle noeat + "a-zA-Z0-9_" variable + +:_variable Idle + * idle noeat + # if it's not only _, color it + "a-zA-Z0-9_" variable recolor=-2 diff --git a/.joe/syntax/prolog.jsf.in b/.joe/syntax/prolog.jsf.in @@ -0,0 +1,155 @@ +# JOE syntax highlight file for Prolog +# by Christian Nicolai (http://mycrobase.de) + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Keyword bold +=Bad bold red + +=Brace #magenta +=Variable #yellow +=Predicate red + +:idle Idle + * idle + "\n" idle + "%" line_comment recolor=-1 + "/" maybe_comment + "0-9" first_digit recolor=-1 + "'" string_sq_1 recolor=-1 + "\"" string_dq_1 recolor=-1 + + # marking -> predicate hilite + # buffering -> keyword hilite + "a-z" atom mark buffer + + "A-Z" variable recolor=-1 + "_" _variable + "[]" brace recolor=-1 + +:line_comment Comment + * line_comment + "\n" idle + +:maybe_comment Idle + * idle noeat + "*" comment recolor=-2 + +:comment Comment + * comment + "*" maybe_end_comment + +:maybe_end_comment Comment + * comment + "/" idle + "*" maybe_end_comment + +:brace Brace + * idle noeat + +:string_sq_1 Constant + * string_sq noeat + +:string_sq Constant + * string_sq + "\'" idle + "\\" string_sq_esc recolor=-1 + +:string_sq_esc Escape + * string_sq + "\n" string_sq recolor=-2 + +:string_dq_1 Constant + * string_dq noeat + +:string_dq Constant + * string_dq + "\"" idle + "\\" string_dq_esc recolor=-1 + +:string_dq_esc Escape + * string_dq + "\n" string_dq recolor=-2 + +:first_digit Constant + * idle noeat + # no float support +# "." float + "0-9" first_number + +:first_number Constant + * idle noeat + "0-9" first_number + "." float + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +# list of keywords includes some predicates... +:atom Idle + * atom_end noeat markend strings + "append" kw + "atom" kw + "atomic" kw + "call" kw + "catch" kw + "clause" kw + "close" kw + "fail" kw + "findall" kw + "float" kw + "halt" kw + "integer" kw + "is" kw + "member" kw + "nl" kw + "nonvar" kw + "number" kw + "once" kw + "op" kw + "open" kw + "read" kw + "repeat" kw + "throw" kw + "true" kw + "var" kw + "write" kw +done + "a-zA-Z0-9_" atom + +:kw Keyword + * idle noeat + +:atom_end Idle + * idle noeat + " " atom_end + "(" pred_end recolormark + ":" maybe_pred_end + +:pred_end Predicate + * idle noeat + +:maybe_pred_end Idle + * idle noeat + "-" pred_end recolormark + +:variable Variable + * idle noeat + "a-zA-Z0-9_" variable + +:_variable Idle + * idle noeat + # if it's not only _, color it + "a-zA-Z0-9_" variable recolor=-2 diff --git a/.joe/syntax/properties.jsf b/.joe/syntax/properties.jsf @@ -0,0 +1,86 @@ +# JOE syntax highlight file for properties files +# by Christian Nicolai (http://mycrobase.de) + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Bad bold red + +=Key +=KeyEscape bold +=Separator bold + +:line_start Idle + * key noeat + "\n" line_start + " \t\r" line_start # leading spaces + "#!" line_comment recolor=-1 + "=:" missing_key recolor=-1 + +:line_comment Comment + * line_comment + "\n" line_start + +:missing_key Bad + * value_pre noeat + +:key Key + * key + "\\" key_esc recolor=-1 + " \t\r" key_post noeat + "=:" sep recolor=-1 + "\n" key_error recolor=-2 + +# one escaped char +:key_esc KeyEscape + * key + "\n" key_error recolor=-2 + +:key_post Idle + * value_pre noeat + " \t\r" key_post + "=:" sep recolor=-1 + +:key_error Bad + * key noeat + +:sep Separator + * value_pre noeat + +:value_pre Idle + * value noeat + " \t\r" value_pre + +:value Constant + * value + "\\" value_esc recolor=-1 + "\n" line_start + +:value_esc Escape + * value_error recolor=-2 + "u" value_unicode_hex1 + "\n" value_cont + +:value_unicode_hex1 Escape + * value_error recolor=-3 + "A-Fa-f0-9" value_unicode_hex2 + +:value_unicode_hex2 Escape + * value_error recolor=-4 + "A-Fa-f0-9" value_unicode_hex3 + +:value_unicode_hex3 Escape + * value_error recolor=-5 + "A-Fa-f0-9" value_unicode_hex4 + +:value_unicode_hex4 Escape + * value_error recolor=-6 + "A-Fa-f0-9" value + +:value_cont Constant + * value + " \t\r" value_cont # leading spaces + +:value_error Bad + * value noeat diff --git a/.joe/syntax/properties.jsf.in b/.joe/syntax/properties.jsf.in @@ -0,0 +1,86 @@ +# JOE syntax highlight file for properties files +# by Christian Nicolai (http://mycrobase.de) + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Bad bold red + +=Key +=KeyEscape bold +=Separator bold + +:line_start Idle + * key noeat + "\n" line_start + " \t\r" line_start # leading spaces + "#!" line_comment recolor=-1 + "=:" missing_key recolor=-1 + +:line_comment Comment + * line_comment + "\n" line_start + +:missing_key Bad + * value_pre noeat + +:key Key + * key + "\\" key_esc recolor=-1 + " \t\r" key_post noeat + "=:" sep recolor=-1 + "\n" key_error recolor=-2 + +# one escaped char +:key_esc KeyEscape + * key + "\n" key_error recolor=-2 + +:key_post Idle + * value_pre noeat + " \t\r" key_post + "=:" sep recolor=-1 + +:key_error Bad + * key noeat + +:sep Separator + * value_pre noeat + +:value_pre Idle + * value noeat + " \t\r" value_pre + +:value Constant + * value + "\\" value_esc recolor=-1 + "\n" line_start + +:value_esc Escape + * value_error recolor=-2 + "u" value_unicode_hex1 + "\n" value_cont + +:value_unicode_hex1 Escape + * value_error recolor=-3 + "A-Fa-f0-9" value_unicode_hex2 + +:value_unicode_hex2 Escape + * value_error recolor=-4 + "A-Fa-f0-9" value_unicode_hex3 + +:value_unicode_hex3 Escape + * value_error recolor=-5 + "A-Fa-f0-9" value_unicode_hex4 + +:value_unicode_hex4 Escape + * value_error recolor=-6 + "A-Fa-f0-9" value + +:value_cont Constant + * value + " \t\r" value_cont # leading spaces + +:value_error Bad + * value noeat diff --git a/.joe/syntax/ps.jsf b/.joe/syntax/ps.jsf @@ -0,0 +1,380 @@ +# JOE syntax highlight file for Postscript + +=Idle +=Bad bold red +=Preproc blue +=Define bold blue +=Comment green +=IncLocal cyan +=IncSystem bold cyan +=Constant cyan +=Escape bold cyan +=Type bold +=Keyword bold + +:idle Idle + * idle + "%" line_comment recolor=-1 + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." maybe_float + "(<" string recolor=-1 save_c + "a-zA-Z_" ident buffer + +:line_comment Comment + * line_comment + "\n" idle + +:first_digit Constant + * idle noeat + "xX" hex + "." float + "eE" epart + "0-7" octal + "89" bad_number recolor=-1 + +:bad_number Bad + * idle noeat + "0-9" bad_number + +:octal Constant + * idle noeat + "0-7" octal + "89" bad_number recolor=-1 + +:hex Constant + * idle noeat + "0-9A-Fa-f" hex + +:decimal Constant + * idle noeat + "0-9" decimal + "eE" epart + "." float + +:maybe_float Constant + * idle recolor=-2 noeat + "0-9" float recolor=-2 + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +:string Constant + * string + & idle + "\\" string_escape recolor=-1 + "%" string_control recolor=-1 + +:string_escape Escape + * string + "x" string_hex1 + "0-7" string_octal2 + "\n" string recolor=-2 + +:string_hex1 Escape + * string noeat + "0-9a-fA-F" string_hex2 + +:string_hex2 Escape + * string noeat + "0-9a-fA-F" string + +:string_octal2 Escape + * string noeat + "0-7" string_octal3 + +:string_octal3 Escape + * string noeat + "0-7" string + +:string_control Escape + * string_control + "\n" idle + "diouxXeEfFgGaAcspn%SC" string + +:ident Idle + * idle noeat istrings + "exch" kw + "pop" kw + "copy" kw + "dup" kw + "index" kw + "roll" kw + "clear" kw + "count" kw + "mark" kw + "cleartomark" kw + "countomark" kw + "add" kw + "div" kw + "sub" kw + "idiv" kw + "mul" kw + "mod" kw + "abs" kw + "neg" kw + "ceiling" kw + "floor" kw + "round" kw + "truncate" kw + "sqrt" kw + "atan" kw + "cos" kw + "sin" kw + "exp" kw + "ln" kw + "log" kw + "rand" kw + "srand" kw + "rrand" kw + "array" kw + "length" kw + "get" kw + "put" kw + "getinterval" kw + "putinterval" kw + "aload" kw + "astore" kw + "copy" kw + "forall" kw + "dict" kw + "length" kw + "maxlength" kw + "begin" kw + "end" kw + "def" kw + "load" kw + "store" kw + "get" kw + "put" kw + "known" kw + "where" kw + "copy" kw + "forall" kw + "errordict" kw + "systemdict" kw + "userdict" kw + "currentdict" kw + "countdictstack" kw + "dictstack" kw + "string" kw + "length" kw + "get" kw + "put" kw + "getinterval" kw + "putinterval" kw + "copy" kw + "forall" kw + "anchorsearch" kw + "search" kw + "token" kw + "eq" kw + "ne" kw + "ge" kw + "gt" kw + "le" kw + "lt" kw + "and" kw + "not" kw + "or" kw + "xor" kw + "true" const + "false" const + "bitshift" kw + "exec" kw + "if" kw + "ifelse" kw + "for" kw + "repeat" kw + "loop" kw + "exit" kw + "stop" kw + "stopped" kw + "countexecstack" kw + "execstack" kw + "quit" kw + "start" kw + "type" kw + "cvlit" kw + "cvx" kw + "xcheck" kw + "executeonly" kw + "noaccess" kw + "readonly" kw + "rcheck" kw + "wcheck" kw + "cvi" kw + "cvn" kw + "cvr" kw + "cvrs" kw + "cvs" kw + "file" kw + "closefile" kw + "read" kw + "write" kw + "readhexstring" kw + "writehexstring" kw + "readstring" kw + "writestring" kw + "readline" kw + "token" kw + "bytesavailable" kw + "flush" kw + "flushfile" kw + "resetfile" kw + "status" kw + "run" kw + "currentfile" kw + "print" kw + "stack" kw + "pstack" kw + "prompt" kw + "echo" kw + "save" kw + "restore" kw + "vmstatus" kw + "bind" kw + "null" kw + "usertime" kw + "version" kw + "gsave" kw + "grestore" kw + "grestoreall" kw + "initgraphics" kw + "setlinewidth" kw + "currentlinewidth" kw + "setlinecap" kw + "currentlinecap" kw + "setlinejoin" kw + "currentlinejoin" kw + "setmiterlimit" kw + "currentmiterlimit" kw + "setdash" kw + "currentdash" kw + "setflat" kw + "currentflat" kw + "setgray" kw + "currentgray" kw + "sethsbcolor" kw + "currenthsbcolor" kw + "setrgbcolor" kw + "currentrgbcolor" kw + "setscreen" kw + "currentscreen" kw + "settransfer" kw + "currenttransfer" kw + "matrix" kw + "initmatrix" kw + "identmatrix" kw + "defaultmatrix" kw + "currentmatrix" kw + "setmatrix" kw + "translate" kw + "translate" kw + "scale" kw + "scale" kw + "rotate" kw + "concat" kw + "concatmatrix" kw + "transform" kw + "transform" kw + "dtransform" kw + "dtransform" kw + "itransform" kw + "itransform" kw + "idtransform" kw + "idtransform" kw + "invertmatrix" kw + "newpath" kw + "currentpoint" kw + "moveto" kw + "rmoveto" kw + "lineto" kw + "rlineto" kw + "arc" kw + "arcn" kw + "arcto" kw + "curveto" kw + "rcurveto" kw + "closepath" kw + "flattenpath" kw + "reversepath" kw + "strokepath" kw + "charpath" kw + "clippath" kw + "pathbbox" kw + "pathforall" kw + "initclip" kw + "clip" kw + "eoclip" kw + "erasepage" kw + "fill" kw + "eofill" kw + "stroke" kw + "image" kw + "imagemask" kw + "showpage" kw + "copypage" kw + "banddevice" kw + "framedevice" kw + "nulldevice" kw + "renderbands" kw + "definefont" kw + "findfont" kw + "scalefont" kw + "makefont" kw + "setfont" kw + "currentfont" kw + "show" kw + "ashow" kw + "widthshow" kw + "awidthshow" kw + "kshow" kw + "stringwidth" kw + "cachestatus" kw + "setcachedevice" kw + "setcharwidth" kw + "setcachelimit" kw + "dictfull" kw + "dictstackoverflow" kw + "dictstackunderflow" kw + "execstackoverflow" kw + "handleerror" kw + "interrupt" kw + "invalidaccess" kw + "invalidexit" kw + "invalidfileaccess" kw + "invalidfont" kw + "invalidrestore" kw + "ioerror" kw + "limitcheck" kw + "nocurrentpoint" kw + "rangecheck" kw + "stackoverflow" kw + "stackunderflow" kw + "syntaxerror" kw + "timeout" kw + "typecheck" kw + "undefined" kw + "undefinedfilename" kw + "undefinedresult" kw + "unmatchedmark" kw + "unregistered" kw +done + "a-zA-Z0-9_\-" ident + +:kw Keyword + * idle noeat + +:const Constant + * idle noeat diff --git a/.joe/syntax/ps.jsf.in b/.joe/syntax/ps.jsf.in @@ -0,0 +1,380 @@ +# JOE syntax highlight file for Postscript + +=Idle +=Bad bold red +=Preproc blue +=Define bold blue +=Comment green +=IncLocal cyan +=IncSystem bold cyan +=Constant cyan +=Escape bold cyan +=Type bold +=Keyword bold + +:idle Idle + * idle + "%" line_comment recolor=-1 + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." maybe_float + "(<" string recolor=-1 save_c + "a-zA-Z_" ident buffer + +:line_comment Comment + * line_comment + "\n" idle + +:first_digit Constant + * idle noeat + "xX" hex + "." float + "eE" epart + "0-7" octal + "89" bad_number recolor=-1 + +:bad_number Bad + * idle noeat + "0-9" bad_number + +:octal Constant + * idle noeat + "0-7" octal + "89" bad_number recolor=-1 + +:hex Constant + * idle noeat + "0-9A-Fa-f" hex + +:decimal Constant + * idle noeat + "0-9" decimal + "eE" epart + "." float + +:maybe_float Constant + * idle recolor=-2 noeat + "0-9" float recolor=-2 + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +:string Constant + * string + & idle + "\\" string_escape recolor=-1 + "%" string_control recolor=-1 + +:string_escape Escape + * string + "x" string_hex1 + "0-7" string_octal2 + "\n" string recolor=-2 + +:string_hex1 Escape + * string noeat + "0-9a-fA-F" string_hex2 + +:string_hex2 Escape + * string noeat + "0-9a-fA-F" string + +:string_octal2 Escape + * string noeat + "0-7" string_octal3 + +:string_octal3 Escape + * string noeat + "0-7" string + +:string_control Escape + * string_control + "\n" idle + "diouxXeEfFgGaAcspn%SC" string + +:ident Idle + * idle noeat istrings + "exch" kw + "pop" kw + "copy" kw + "dup" kw + "index" kw + "roll" kw + "clear" kw + "count" kw + "mark" kw + "cleartomark" kw + "countomark" kw + "add" kw + "div" kw + "sub" kw + "idiv" kw + "mul" kw + "mod" kw + "abs" kw + "neg" kw + "ceiling" kw + "floor" kw + "round" kw + "truncate" kw + "sqrt" kw + "atan" kw + "cos" kw + "sin" kw + "exp" kw + "ln" kw + "log" kw + "rand" kw + "srand" kw + "rrand" kw + "array" kw + "length" kw + "get" kw + "put" kw + "getinterval" kw + "putinterval" kw + "aload" kw + "astore" kw + "copy" kw + "forall" kw + "dict" kw + "length" kw + "maxlength" kw + "begin" kw + "end" kw + "def" kw + "load" kw + "store" kw + "get" kw + "put" kw + "known" kw + "where" kw + "copy" kw + "forall" kw + "errordict" kw + "systemdict" kw + "userdict" kw + "currentdict" kw + "countdictstack" kw + "dictstack" kw + "string" kw + "length" kw + "get" kw + "put" kw + "getinterval" kw + "putinterval" kw + "copy" kw + "forall" kw + "anchorsearch" kw + "search" kw + "token" kw + "eq" kw + "ne" kw + "ge" kw + "gt" kw + "le" kw + "lt" kw + "and" kw + "not" kw + "or" kw + "xor" kw + "true" const + "false" const + "bitshift" kw + "exec" kw + "if" kw + "ifelse" kw + "for" kw + "repeat" kw + "loop" kw + "exit" kw + "stop" kw + "stopped" kw + "countexecstack" kw + "execstack" kw + "quit" kw + "start" kw + "type" kw + "cvlit" kw + "cvx" kw + "xcheck" kw + "executeonly" kw + "noaccess" kw + "readonly" kw + "rcheck" kw + "wcheck" kw + "cvi" kw + "cvn" kw + "cvr" kw + "cvrs" kw + "cvs" kw + "file" kw + "closefile" kw + "read" kw + "write" kw + "readhexstring" kw + "writehexstring" kw + "readstring" kw + "writestring" kw + "readline" kw + "token" kw + "bytesavailable" kw + "flush" kw + "flushfile" kw + "resetfile" kw + "status" kw + "run" kw + "currentfile" kw + "print" kw + "stack" kw + "pstack" kw + "prompt" kw + "echo" kw + "save" kw + "restore" kw + "vmstatus" kw + "bind" kw + "null" kw + "usertime" kw + "version" kw + "gsave" kw + "grestore" kw + "grestoreall" kw + "initgraphics" kw + "setlinewidth" kw + "currentlinewidth" kw + "setlinecap" kw + "currentlinecap" kw + "setlinejoin" kw + "currentlinejoin" kw + "setmiterlimit" kw + "currentmiterlimit" kw + "setdash" kw + "currentdash" kw + "setflat" kw + "currentflat" kw + "setgray" kw + "currentgray" kw + "sethsbcolor" kw + "currenthsbcolor" kw + "setrgbcolor" kw + "currentrgbcolor" kw + "setscreen" kw + "currentscreen" kw + "settransfer" kw + "currenttransfer" kw + "matrix" kw + "initmatrix" kw + "identmatrix" kw + "defaultmatrix" kw + "currentmatrix" kw + "setmatrix" kw + "translate" kw + "translate" kw + "scale" kw + "scale" kw + "rotate" kw + "concat" kw + "concatmatrix" kw + "transform" kw + "transform" kw + "dtransform" kw + "dtransform" kw + "itransform" kw + "itransform" kw + "idtransform" kw + "idtransform" kw + "invertmatrix" kw + "newpath" kw + "currentpoint" kw + "moveto" kw + "rmoveto" kw + "lineto" kw + "rlineto" kw + "arc" kw + "arcn" kw + "arcto" kw + "curveto" kw + "rcurveto" kw + "closepath" kw + "flattenpath" kw + "reversepath" kw + "strokepath" kw + "charpath" kw + "clippath" kw + "pathbbox" kw + "pathforall" kw + "initclip" kw + "clip" kw + "eoclip" kw + "erasepage" kw + "fill" kw + "eofill" kw + "stroke" kw + "image" kw + "imagemask" kw + "showpage" kw + "copypage" kw + "banddevice" kw + "framedevice" kw + "nulldevice" kw + "renderbands" kw + "definefont" kw + "findfont" kw + "scalefont" kw + "makefont" kw + "setfont" kw + "currentfont" kw + "show" kw + "ashow" kw + "widthshow" kw + "awidthshow" kw + "kshow" kw + "stringwidth" kw + "cachestatus" kw + "setcachedevice" kw + "setcharwidth" kw + "setcachelimit" kw + "dictfull" kw + "dictstackoverflow" kw + "dictstackunderflow" kw + "execstackoverflow" kw + "handleerror" kw + "interrupt" kw + "invalidaccess" kw + "invalidexit" kw + "invalidfileaccess" kw + "invalidfont" kw + "invalidrestore" kw + "ioerror" kw + "limitcheck" kw + "nocurrentpoint" kw + "rangecheck" kw + "stackoverflow" kw + "stackunderflow" kw + "syntaxerror" kw + "timeout" kw + "typecheck" kw + "undefined" kw + "undefinedfilename" kw + "undefinedresult" kw + "unmatchedmark" kw + "unregistered" kw +done + "a-zA-Z0-9_\-" ident + +:kw Keyword + * idle noeat + +:const Constant + * idle noeat diff --git a/.joe/syntax/puppet.jsf b/.joe/syntax/puppet.jsf @@ -0,0 +1,160 @@ +# JOE syntax highlight file for Puppet +# by Christian Nicolai (http://mycrobase.de) + +=Idle +=Comment green +=CommentLabel bold green +=Constant cyan +=Escape bold cyan +=Type bold +=Keyword bold +=Bad bold red +=Var yellow #fg_310 # brown +=Brace magenta + +=KeywordAttr bold + +:idle Idle + * idle + "\n" idle + "#" line_comment recolor=-1 + "{[]}" brace recolor=-1 + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "\"" string recolor=-1 + "'" char recolor=-1 + "/" slash + "$" variable recolor=-1 + "A-Z" type recolor=-1 + "a-z" ident buffer + +:line_comment Comment + * line_comment + "\n" idle + +:comment Comment + * comment + "*" maybe_end_comment + +:maybe_end_comment Comment + * comment noeat + "/" idle + "*" maybe_end_comment + +:brace Brace + * idle noeat + +# that's not completely accurate since a regex may start with a * too +:slash Idle + * regex noeat recolor=-2 + "*" comment recolor=-2 + +:first_digit Constant + * idle noeat + "0-7" octal + "89" bad_number recolor=-1 + +:bad_number Bad + * idle noeat + "0-9" bad_number + +:octal Constant + * idle noeat + "0-7_" octal + "89" bad_number recolor=-1 + +:decimal Constant + * idle noeat + "0-9_" decimal + +:char Constant + * char + "'" idle + +:string Constant + * string + "\"" idle + "$" maybe_string_subst recolor=-1 + +:maybe_string_subst Constant + * string noeat + "{" string_subst recolor=-2 + +:string_subst Escape + * string_subst + "}" string + +:regex Constant + * regex + "\\" regex_quote recolor=-1 + "/" idle + +:regex_quote Escape + * regex + +:variable Var + * idle noeat + "a-zA-Z0-9_" variable + +:type Type + * idle noeat + "a-zA-Z0-9_" type + +:ident Idle + * idle noeat strings + "case" kw + "class" kw + "define" kw + "else" kw + "elsif" kw + "false" kw + "if" kw + "in" kw + "inherits" kw + "true" kw + "undef" kw + # prominent attrs + "ensure" kw_attr + "default" kw_attr + # methods + "alert" method + "create_resources" method + "crit" method + "debug" method + "defined" method + "emerg" method + "err" method + "extlookup" method + "fail" method + "file" method + "fqdn_rand" method + "generate" method + "include" method + "info" method + "inline_template" method + "md5" method + "notice" method + "realize" method + "regsubst" method + "require" method + "search" method + "sha1" method + "shellquote" method + "split" method + "sprintf" method + "tag" method + "tagged" method + "template" method + "versioncmp" method + "warning" method +done + "a-zA-Z0-9_" ident + +:kw Keyword + * idle noeat + +:kw_attr KeywordAttr + * idle noeat + +:method Keyword + * idle noeat diff --git a/.joe/syntax/puppet.jsf.in b/.joe/syntax/puppet.jsf.in @@ -0,0 +1,160 @@ +# JOE syntax highlight file for Puppet +# by Christian Nicolai (http://mycrobase.de) + +=Idle +=Comment green +=CommentLabel bold green +=Constant cyan +=Escape bold cyan +=Type bold +=Keyword bold +=Bad bold red +=Var yellow #fg_310 # brown +=Brace magenta + +=KeywordAttr bold + +:idle Idle + * idle + "\n" idle + "#" line_comment recolor=-1 + "{[]}" brace recolor=-1 + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "\"" string recolor=-1 + "'" char recolor=-1 + "/" slash + "$" variable recolor=-1 + "A-Z" type recolor=-1 + "a-z" ident buffer + +:line_comment Comment + * line_comment + "\n" idle + +:comment Comment + * comment + "*" maybe_end_comment + +:maybe_end_comment Comment + * comment noeat + "/" idle + "*" maybe_end_comment + +:brace Brace + * idle noeat + +# that's not completely accurate since a regex may start with a * too +:slash Idle + * regex noeat recolor=-2 + "*" comment recolor=-2 + +:first_digit Constant + * idle noeat + "0-7" octal + "89" bad_number recolor=-1 + +:bad_number Bad + * idle noeat + "0-9" bad_number + +:octal Constant + * idle noeat + "0-7_" octal + "89" bad_number recolor=-1 + +:decimal Constant + * idle noeat + "0-9_" decimal + +:char Constant + * char + "'" idle + +:string Constant + * string + "\"" idle + "$" maybe_string_subst recolor=-1 + +:maybe_string_subst Constant + * string noeat + "{" string_subst recolor=-2 + +:string_subst Escape + * string_subst + "}" string + +:regex Constant + * regex + "\\" regex_quote recolor=-1 + "/" idle + +:regex_quote Escape + * regex + +:variable Var + * idle noeat + "a-zA-Z0-9_" variable + +:type Type + * idle noeat + "a-zA-Z0-9_" type + +:ident Idle + * idle noeat strings + "case" kw + "class" kw + "define" kw + "else" kw + "elsif" kw + "false" kw + "if" kw + "in" kw + "inherits" kw + "true" kw + "undef" kw + # prominent attrs + "ensure" kw_attr + "default" kw_attr + # methods + "alert" method + "create_resources" method + "crit" method + "debug" method + "defined" method + "emerg" method + "err" method + "extlookup" method + "fail" method + "file" method + "fqdn_rand" method + "generate" method + "include" method + "info" method + "inline_template" method + "md5" method + "notice" method + "realize" method + "regsubst" method + "require" method + "search" method + "sha1" method + "shellquote" method + "split" method + "sprintf" method + "tag" method + "tagged" method + "template" method + "versioncmp" method + "warning" method +done + "a-zA-Z0-9_" ident + +:kw Keyword + * idle noeat + +:kw_attr KeywordAttr + * idle noeat + +:method Keyword + * idle noeat diff --git a/.joe/syntax/python.jsf b/.joe/syntax/python.jsf @@ -0,0 +1,292 @@ +# JOE syntax highlight file for Python + +=Idle +=Comment green +=Docstring green +=DocstringLabel bold green +=DocEscape bold cyan +=Constant cyan +=Escape bold cyan +=Keyword bold +=Bad bold red +=Brace magenta + +=PrivateMember yellow #fg_310 # brown +=Decorator red +=Declaration bold blue + +:idle Idle + * idle + "#" comment recolor=-1 + "0-9" first_digit recolor=-1 + "'\"" string_quot_1 recolor=-1 save_c + "\i" ident noeat + "{}" brace recolor=-1 + "@" decorator recolor=-1 + +:brace Brace + * idle noeat + +# annotations +:decorator Decorator + * decorator + " (\t\r\n" idle noeat + +:comment Comment comment + * comment + # might be TODO label + "BFHNTX" comment noeat call=comment_todo.comment_todo() + "\n" idle + +:first_digit Constant + * idle noeat + "xX" hex + "." float + "eE" epart + "0-9" first_number + +:hex Constant + * idle noeat + "0-9A-Fa-f" hex + +:first_number Constant + * idle noeat + "0-9" first_number + "." float + +:maybe_float Constant + * idle recolor=-2 noeat + "0-9" float recolor=-2 + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +:ident Idle + * ident1 noeat buffer + "_" priv_member recolor=-1 + +:ident1 Idle + * idle noeat strings + "and" kw + "as" kw + "assert" kw + "break" kw + "class" declkw + "continue" kw + "def" declkw + "del" kw + "elif" kw + "else" kw + "except" kw + "exec" kw + "finally" kw + "for" kw + "from" kw + "global" kw + "if" kw + "import" kw + "in" kw + "is" kw + "lambda" kw + "not" kw + "or" kw + "pass" kw + "print" kw + "raise" kw + "return" kw + "try" kw + "while" kw + "with" kw + "yield" kw + + # quasi-keywords + "False" lit + "None" lit + "True" lit +done + "'\"" idle noeat istrings + "u" string_pre + "b" string_pre + "r" string_raw_pre + "br" string_raw_pre + "rb" string_raw_pre +done + "\c" ident1 + +:kw Keyword + * idle noeat + +:lit Keyword + * idle noeat + +:declkw Keyword + * idle noeat recolor=-1 + "\i" declkw + " \t" declname_1 + +:declname_1 Declaration + * declname + "_" priv_member recolor=-1 + +:declname Declaration + * idle noeat recolor=-1 + "\c" declname + +:priv_member PrivateMember + * idle noeat + "\c" priv_member + +# Handle string prefixes up to the string itself. +:string_pre Constant + * idle noeat + "'\"" string_quot_1 save_c + +:string_raw_pre Constant + * idle noeat + "'\"" string_quot_raw_1 save_c + +# Differentiate between docstrings and regular strings, carrying with it raw state +:string_quot_1 Constant + * idle call=.string() noeat + & string_quot_2 + +:string_quot_2 Constant + * idle noeat + & idle call=.string(docstring) recolor=-3 + +:string_quot_raw_1 Constant + * idle call=.string(raw) + & string_quot_raw_2 + +:string_quot_raw_2 Constant + * idle noeat + & idle call=.string(docstring raw) recolor=-3 + +.subr string + +.ifdef docstring # Long strings +:string Docstring string + * string + "BFHNTX" string noeat call=.comment_todo_docstr() +.ifdef raw +.else + "\\" string_esc mark +.endif + & doc_end_1 + +:doc_end_1 Docstring + * string noeat + & doc_end_2 + +:doc_end_2 Docstring + * string noeat + & string return + +.else # Short strings + +:string Constant string + * string + "\n" string return +.ifdef raw +.else + "\\" string_esc mark +.endif + & string return + +.endif + +:string_esc Constant + * string_esc_done + "x" string_hex2 + "u" string_hex4 + "U" string_hex8 + "0-7" string_octal2 + "\n" string_esc_done + +# Recolor whole escape sequence based on whether this is a docstring. +:string_esc_done Constant + * string_esc_really_done noeat markend recolormark + +.ifdef docstring +:string_esc_really_done DocEscape + * string noeat +.else +:string_esc_really_done Escape + * string noeat +.endif + +:string_hex1 Escape + * string_esc_done noeat + "0-9a-fA-F" string_esc_done + +:string_hex2 Escape + * string_esc_done noeat + "0-9a-fA-F" string_hex1 + +:string_hex3 Escape + * string_esc_done noeat + "0-9a-fA-F" string_hex2 + +:string_hex4 Escape + * string_esc_done noeat + "0-9a-fA-F" string_hex3 + +:string_hex5 Escape + * string_esc_done noeat + "0-9a-fA-F" string_hex4 + +:string_hex6 Escape + * string_esc_done noeat + "0-9a-fA-F" string_hex5 + +:string_hex7 Escape + * string_esc_done noeat + "0-9a-fA-F" string_hex6 + +:string_hex8 Escape + * string_esc_done noeat + "0-9a-fA-F" string_hex7 + +:string_octal1 Escape + * string_esc_done noeat + "0-7" string_esc_done + +:string_octal2 Escape + * string_esc_done noeat + "0-7" string_octal1 + +.end + +.subr comment_todo_docstr +# initial state +:comment_todo_init Docstring + * comment_todo_guess buffer + +# highlight common TODO labels +:comment_todo_guess Docstring + * 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 Docstring + * NULL noeat return + +:comment_todo DocstringLabel + * NULL noeat return +.end diff --git a/.joe/syntax/python.jsf.in b/.joe/syntax/python.jsf.in @@ -0,0 +1,292 @@ +# JOE syntax highlight file for Python + +=Idle +=Comment green +=Docstring green +=DocstringLabel bold green +=DocEscape bold cyan +=Constant cyan +=Escape bold cyan +=Keyword bold +=Bad bold red +=Brace magenta + +=PrivateMember yellow #fg_310 # brown +=Decorator red +=Declaration bold blue + +:idle Idle + * idle + "#" comment recolor=-1 + "0-9" first_digit recolor=-1 + "'\"" string_quot_1 recolor=-1 save_c + "\i" ident noeat + "{}" brace recolor=-1 + "@" decorator recolor=-1 + +:brace Brace + * idle noeat + +# annotations +:decorator Decorator + * decorator + " (\t\r\n" idle noeat + +:comment Comment comment + * comment + # might be TODO label + "BFHNTX" comment noeat call=comment_todo.comment_todo() + "\n" idle + +:first_digit Constant + * idle noeat + "xX" hex + "." float + "eE" epart + "0-9" first_number + +:hex Constant + * idle noeat + "0-9A-Fa-f" hex + +:first_number Constant + * idle noeat + "0-9" first_number + "." float + +:maybe_float Constant + * idle recolor=-2 noeat + "0-9" float recolor=-2 + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +:ident Idle + * ident1 noeat buffer + "_" priv_member recolor=-1 + +:ident1 Idle + * idle noeat strings + "and" kw + "as" kw + "assert" kw + "break" kw + "class" declkw + "continue" kw + "def" declkw + "del" kw + "elif" kw + "else" kw + "except" kw + "exec" kw + "finally" kw + "for" kw + "from" kw + "global" kw + "if" kw + "import" kw + "in" kw + "is" kw + "lambda" kw + "not" kw + "or" kw + "pass" kw + "print" kw + "raise" kw + "return" kw + "try" kw + "while" kw + "with" kw + "yield" kw + + # quasi-keywords + "False" lit + "None" lit + "True" lit +done + "'\"" idle noeat istrings + "u" string_pre + "b" string_pre + "r" string_raw_pre + "br" string_raw_pre + "rb" string_raw_pre +done + "\c" ident1 + +:kw Keyword + * idle noeat + +:lit Keyword + * idle noeat + +:declkw Keyword + * idle noeat recolor=-1 + "\i" declkw + " \t" declname_1 + +:declname_1 Declaration + * declname + "_" priv_member recolor=-1 + +:declname Declaration + * idle noeat recolor=-1 + "\c" declname + +:priv_member PrivateMember + * idle noeat + "\c" priv_member + +# Handle string prefixes up to the string itself. +:string_pre Constant + * idle noeat + "'\"" string_quot_1 save_c + +:string_raw_pre Constant + * idle noeat + "'\"" string_quot_raw_1 save_c + +# Differentiate between docstrings and regular strings, carrying with it raw state +:string_quot_1 Constant + * idle call=.string() noeat + & string_quot_2 + +:string_quot_2 Constant + * idle noeat + & idle call=.string(docstring) recolor=-3 + +:string_quot_raw_1 Constant + * idle call=.string(raw) + & string_quot_raw_2 + +:string_quot_raw_2 Constant + * idle noeat + & idle call=.string(docstring raw) recolor=-3 + +.subr string + +.ifdef docstring # Long strings +:string Docstring string + * string + "BFHNTX" string noeat call=.comment_todo_docstr() +.ifdef raw +.else + "\\" string_esc mark +.endif + & doc_end_1 + +:doc_end_1 Docstring + * string noeat + & doc_end_2 + +:doc_end_2 Docstring + * string noeat + & string return + +.else # Short strings + +:string Constant string + * string + "\n" string return +.ifdef raw +.else + "\\" string_esc mark +.endif + & string return + +.endif + +:string_esc Constant + * string_esc_done + "x" string_hex2 + "u" string_hex4 + "U" string_hex8 + "0-7" string_octal2 + "\n" string_esc_done + +# Recolor whole escape sequence based on whether this is a docstring. +:string_esc_done Constant + * string_esc_really_done noeat markend recolormark + +.ifdef docstring +:string_esc_really_done DocEscape + * string noeat +.else +:string_esc_really_done Escape + * string noeat +.endif + +:string_hex1 Escape + * string_esc_done noeat + "0-9a-fA-F" string_esc_done + +:string_hex2 Escape + * string_esc_done noeat + "0-9a-fA-F" string_hex1 + +:string_hex3 Escape + * string_esc_done noeat + "0-9a-fA-F" string_hex2 + +:string_hex4 Escape + * string_esc_done noeat + "0-9a-fA-F" string_hex3 + +:string_hex5 Escape + * string_esc_done noeat + "0-9a-fA-F" string_hex4 + +:string_hex6 Escape + * string_esc_done noeat + "0-9a-fA-F" string_hex5 + +:string_hex7 Escape + * string_esc_done noeat + "0-9a-fA-F" string_hex6 + +:string_hex8 Escape + * string_esc_done noeat + "0-9a-fA-F" string_hex7 + +:string_octal1 Escape + * string_esc_done noeat + "0-7" string_esc_done + +:string_octal2 Escape + * string_esc_done noeat + "0-7" string_octal1 + +.end + +.subr comment_todo_docstr +# initial state +:comment_todo_init Docstring + * comment_todo_guess buffer + +# highlight common TODO labels +:comment_todo_guess Docstring + * 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 Docstring + * NULL noeat return + +:comment_todo DocstringLabel + * NULL noeat return +.end diff --git a/.joe/syntax/r.jsf b/.joe/syntax/r.jsf @@ -0,0 +1,168 @@ +# JOE syntax highlight file for R + +=Idle +=Bad bold red +=Preproc blue +=Define bold blue +=Comment green +=IncLocal cyan +=IncSystem bold cyan +=Constant cyan +=Escape bold cyan +=Type bold +=Keyword bold +=CppKeyword bold +=Brace magenta +=Control + +:idle Idle + * idle + "#" line_comment recolor=-1 + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." maybe_float buffer + "\"" string recolor=-1 + "'" char recolor=-1 + "\p{L}\p{Nl}" ident buffer + "\\" outside_escape recolor=-1 + "{}" brace recolor=-1 + "/,:;=()><[]*&|!~+\-%^" control recolor=-1 + +:outside_escape Escape + * idle + +:brace Brace + * idle noeat + +:control Control + * idle noeat + +:line_comment Comment comment + * line_comment + "\n" idle + +:first_digit Constant + * idle noeat + "xX" hex + "." float + "eE" epart + "0-9" decimal + "L" idle + +:hex Constant + * idle noeat + "0-9A-Fa-f" hex + +:decimal Constant + * idle noeat + "0-9" decimal + "eE" epart + "." float + "L" idle + +:maybe_float Constant + * idle recolor=-2 noeat + "\i." ident recolor=-2 + "0-9" float recolor=-2 + +:float Constant + * idle noeat + "eE" epart + "0-9" float + "L" idle + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + "L" idle + +:string Constant string + * string + "\"" idle + "\\" string_escape recolor=-1 + "%" string_control recolor=-1 + +:string_escape Escape string + * string + "x" string_hex + "0-7" string_octal2 + "\n" string recolor=-2 + +# \x will consume all successive hex digits (ANSI C). +:string_hex Escape string + * string noeat + "0-9a-fA-F" string_hex + +:string_octal2 Escape string + * string noeat + "0-7" string_octal3 + +:string_octal3 Escape string + * string noeat + "0-7" string + +:string_control Escape string + * string + "\"" string noeat + "\n" idle + "\\" string_escape recolor=-1 + "0-9.\-+ #hjILtz$" string_control + +:char Constant string + * char + "\n" idle + "'" idle + "\\" char_escape recolor=-1 + +:char_escape Escape string + * char + "x" char_hex + "0-7" char_octal2 + "\n" char recolor=-2 + +# \x will consume all successive hex digits (ANSI C). +:char_hex Escape string + * char noeat + "0-9a-fA-F" char_hex + +:char_octal2 Escape string + * char noeat + "0-7" char_octal3 + +:char_octal3 Escape string + * char noeat + "0-7" char + +:ident Idle + * idle noeat strings + "TRUE" val + "FALSE" val + "NULL" val + "Inf" val + "NaN" val + "NA" val + "NA_integer_" val + "NA_real_" val + "NA_complex_" val + "NA_character_" val + "if" kw + "else" kw + "repeat" kw + "while" kw + "function" kw + "for" kw + "in" kw + "next" kw + "break" kw +done + "\c." ident + +:val Constant + * idle noeat + +:kw Keyword + * idle noeat diff --git a/.joe/syntax/r.jsf.in b/.joe/syntax/r.jsf.in @@ -0,0 +1,168 @@ +# JOE syntax highlight file for R + +=Idle +=Bad bold red +=Preproc blue +=Define bold blue +=Comment green +=IncLocal cyan +=IncSystem bold cyan +=Constant cyan +=Escape bold cyan +=Type bold +=Keyword bold +=CppKeyword bold +=Brace magenta +=Control + +:idle Idle + * idle + "#" line_comment recolor=-1 + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." maybe_float buffer + "\"" string recolor=-1 + "'" char recolor=-1 + "\p{L}\p{Nl}" ident buffer + "\\" outside_escape recolor=-1 + "{}" brace recolor=-1 + "/,:;=()><[]*&|!~+\-%^" control recolor=-1 + +:outside_escape Escape + * idle + +:brace Brace + * idle noeat + +:control Control + * idle noeat + +:line_comment Comment comment + * line_comment + "\n" idle + +:first_digit Constant + * idle noeat + "xX" hex + "." float + "eE" epart + "0-9" decimal + "L" idle + +:hex Constant + * idle noeat + "0-9A-Fa-f" hex + +:decimal Constant + * idle noeat + "0-9" decimal + "eE" epart + "." float + "L" idle + +:maybe_float Constant + * idle recolor=-2 noeat + "\i." ident recolor=-2 + "0-9" float recolor=-2 + +:float Constant + * idle noeat + "eE" epart + "0-9" float + "L" idle + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + "L" idle + +:string Constant string + * string + "\"" idle + "\\" string_escape recolor=-1 + "%" string_control recolor=-1 + +:string_escape Escape string + * string + "x" string_hex + "0-7" string_octal2 + "\n" string recolor=-2 + +# \x will consume all successive hex digits (ANSI C). +:string_hex Escape string + * string noeat + "0-9a-fA-F" string_hex + +:string_octal2 Escape string + * string noeat + "0-7" string_octal3 + +:string_octal3 Escape string + * string noeat + "0-7" string + +:string_control Escape string + * string + "\"" string noeat + "\n" idle + "\\" string_escape recolor=-1 + "0-9.\-+ #hjILtz$" string_control + +:char Constant string + * char + "\n" idle + "'" idle + "\\" char_escape recolor=-1 + +:char_escape Escape string + * char + "x" char_hex + "0-7" char_octal2 + "\n" char recolor=-2 + +# \x will consume all successive hex digits (ANSI C). +:char_hex Escape string + * char noeat + "0-9a-fA-F" char_hex + +:char_octal2 Escape string + * char noeat + "0-7" char_octal3 + +:char_octal3 Escape string + * char noeat + "0-7" char + +:ident Idle + * idle noeat strings + "TRUE" val + "FALSE" val + "NULL" val + "Inf" val + "NaN" val + "NA" val + "NA_integer_" val + "NA_real_" val + "NA_complex_" val + "NA_character_" val + "if" kw + "else" kw + "repeat" kw + "while" kw + "function" kw + "for" kw + "in" kw + "next" kw + "break" kw +done + "\c." ident + +:val Constant + * idle noeat + +:kw Keyword + * idle noeat diff --git a/.joe/syntax/rexx.jsf b/.joe/syntax/rexx.jsf @@ -0,0 +1,81 @@ +# JOE syntax highlight file for REXX + +=Idle +=Bad bold red +=Comment green +=Constant cyan +=Escape bold cyan +=Keyword bold + +:idle Idle + * idle + "\"" dquote recolor=-1 + "'" squote recolor=-1 + "a-zA-Z.!?@_0-9" symbol buffer + "/" idle call=.maybe_comment() + +:symbol Idle + * idle noeat istrings + "address" kw + "arg" kw + "call" kw + "do" kw + "drop" kw + "exit" kw + "if" kw + "interpret" kw + "iterate" kw + "leave" kw + "nop" kw + "numeric" kw + "options" kw + "parse" kw + "procedure" kw + "pull" kw + "push" kw + "queue" kw + "return" kw + "say" kw + "select" kw + "signal" kw + "trace" kw + "upper" kw + "then" kw + "end" kw + "else" kw + "when" kw + "otherwise" kw +done + "a-zA-Z.!?@_0-9" symbol + +:kw Keyword + * idle noeat + +:squote Constant + * squote + "'" idle + +:dquote Constant + * dquote + "\"" idle + +# +# Subroutine to parse recursive /* */ comments +# + +.subr maybe_comment + +:maybe_comment Idle + * maybe_comment return noeat + "*" comment recolor=-2 + +:comment Comment + * comment + "*" maybe_done + "/" comment call=.maybe_comment() + +:maybe_done Comment + * comment noeat + "/" comment return + +.end diff --git a/.joe/syntax/rexx.jsf.in b/.joe/syntax/rexx.jsf.in @@ -0,0 +1,81 @@ +# JOE syntax highlight file for REXX + +=Idle +=Bad bold red +=Comment green +=Constant cyan +=Escape bold cyan +=Keyword bold + +:idle Idle + * idle + "\"" dquote recolor=-1 + "'" squote recolor=-1 + "a-zA-Z.!?@_0-9" symbol buffer + "/" idle call=.maybe_comment() + +:symbol Idle + * idle noeat istrings + "address" kw + "arg" kw + "call" kw + "do" kw + "drop" kw + "exit" kw + "if" kw + "interpret" kw + "iterate" kw + "leave" kw + "nop" kw + "numeric" kw + "options" kw + "parse" kw + "procedure" kw + "pull" kw + "push" kw + "queue" kw + "return" kw + "say" kw + "select" kw + "signal" kw + "trace" kw + "upper" kw + "then" kw + "end" kw + "else" kw + "when" kw + "otherwise" kw +done + "a-zA-Z.!?@_0-9" symbol + +:kw Keyword + * idle noeat + +:squote Constant + * squote + "'" idle + +:dquote Constant + * dquote + "\"" idle + +# +# Subroutine to parse recursive /* */ comments +# + +.subr maybe_comment + +:maybe_comment Idle + * maybe_comment return noeat + "*" comment recolor=-2 + +:comment Comment + * comment + "*" maybe_done + "/" comment call=.maybe_comment() + +:maybe_done Comment + * comment noeat + "/" comment return + +.end diff --git a/.joe/syntax/ruby.jsf b/.joe/syntax/ruby.jsf @@ -0,0 +1,641 @@ +# JOE syntax highlight file for Ruby + +# Glitches: +# <<EOF1, <<EOF2 is not working. Only EOF1 is seen. It should wait for the +# EOF2. + +=Idle +=Comment green +=POD green +=Constant cyan +=Escape bold cyan +=Type bold +=Keyword bold +=Bad bold red +=Var yellow +=Brace magenta + +=Symbol red +=SymbolEscape bold red +=ProcArg #yellow +=ClassMember yellow #fg_310 # brown +=GlobalVar #yellow +=ClassDecl bold blue + +# Detect pod + +:pre_idle Idle + * NULL noeat call=.ruby() + +.subr ruby + +:idle Idle + * rest noeat + "=" pod_start + +# Rest of line + +:rest Idle + * rest + "(" after_term call=.ruby(paren) + "[" after_term call=.ruby(brack) + "{" do_brace recolor=-1 noeat +.ifdef paren + ")" rest return +.else + ")" stray recolor=-1 +.endif +.ifdef brack + "]" rest return +.else + "]" stray recolor=-1 +.endif +.ifdef squiggly + "}" brace recolor=-1 return +.else + "}" stray recolor=-1 +.endif + "#" line_comment recolor=-1 +.ifdef haml + "\n" NULL return +.else + "\n" idle +.endif + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." ident_no_kw + "\"" string recolor=-1 + "'" char recolor=-1 + "`" backtick recolor=-1 + "/" regex recolor=-1 + "<" maybe_inc + "$" not_string buffer + "%" pstring + "\i" ident buffer + "?" opr + + # higher level, ruby specific + ":" maybe_symbol +# "|" proc_arg + "@" class_member1 + +:opr Idle + * rest noeat + "/" rest + "%" rest + +:do_brace Brace + * rest noeat + "{" brace call=.ruby(squiggly) + +:brace Brace + * after_term noeat + +:stray Bad + * rest + + +# / / regex not allowed after terms + +:after_term Idle + * rest noeat + " \t" after_term +.ifdef erb + "/" rest + "%" after_term_erb_end +.else + "/%" rest +.endif + +:after_term_erb_end Idle + * rest noeat + ">" NULL recolor=-2 return + +:pod_start Idle + * pod_start + "\n" pod_block + +:pod_block POD + * pod_block + "=" pod_ident buffer + +:pod_ident POD + * pod_block noeat strings + "=end" rest +done + "\c" pod_ident + +:maybe_inc Idle + * after_term noeat + "<" maybe_inc1 + +:maybe_inc1 Idle + * after_term noeat + "-" allow_space + "'\"" quoted_inc_start save_c recolor=-1 + "\i" inc buffer noeat + +:allow_space Idle + * after_term noeat + "'\"" quoted_inc_start_allow save_c recolor=-1 + "\i" inc_allow buffer noeat + +:quoted_inc_start Var + * quoted_inc buffer + +:quoted_inc_start_allow Var + * quoted_inc_allow buffer + +:quoted_inc Var + * quoted_inc + & skipline save_s + +:quoted_inc_allow Var + * quoted_inc_allow + & skipline_allow save_s + +:inc Var + * skipline save_s noeat + "\c" inc + +:inc_allow Var + * skipline_allow save_s noeat + "\c" inc_allow + +# Should be treated as a normal line here... + +:skipline Idle + * skipline + "\n" next_line + +:skipline_allow Idle + * skipline_allow + "\n" next_line_allow + +:todelim Constant + * todelim + "\n" next_line strings + "&" founddelim +done + +:todelim_allow Constant + * todelim_allow + "\n" next_line_allow strings + "&" founddelim +done + +# eat \n so it's not in string. +:next_line Constant + * todelim buffer + "\n" next_line + +:next_line_allow Constant + * todelim_allow buffer + " \t\n" next_line_allow + +:founddelim Var + * idle noeat + +:regex Constant + * regex + "\\" regex_quote recolor=-1 + "/" after_term + +:regex_quote Escape + * regex + +:not_string Idle + * rest noeat + "\c" global_var recolor=-2 + "\"'`#/" rest + +:brace Brace + * rest noeat + +:line_comment Comment + * line_comment +.ifdef erb + "%" line_comment_maybe_erb_end +.endif + # might be TODO label + "BFHNTX" line_comment noeat call=comment_todo.comment_todo() +.ifdef haml + "\n" NULL return +.else + "\n" idle +.endif + +:line_comment_maybe_erb_end Comment + ">" NULL recolor=-2 return + +:end_of_file_comment Comment + * end_of_file_comment + +:first_digit Constant + * after_term noeat + "x" hex + "b" binary + "." maybe_float + "eE" epart + "0-7" octal + "89" bad_number recolor=-1 + +:bad_number Bad + * after_term noeat + "0-9" bad_number + +:octal Constant + * after_term noeat + "0-7_" octal + "89" bad_number recolor=-1 + +:binary Constant + * after_term noeat + "01_" binary + "2-9" bad_number recolor=-1 + +:hex Constant + * after_term noeat + "0-9A-Fa-f_" hex + +:decimal Constant + * after_term noeat + "0-9_" decimal + "eE" epart + "." maybe_float + +:maybe_float Idle + * after_term noeat recolor=-2 + "0-9" float noeat + +:float Constant + * after_term noeat + "eE" epart + "0-9_" float + +:epart Constant + * after_term noeat + "0-9+\-" enum + +:enum Constant + * after_term noeat + "0-9_" enum + +:string Constant + * string + "\"" after_term + "\\" string_escape recolor=-1 + "#" maybe_string_subst recolor=-1 + +:maybe_string_subst Constant + * string noeat + "{" string_subst recolor=-2 call=.ruby(squiggly) + +:string_subst Idle + * string noeat + +:string_escape Escape + * string + "x" string_hex1 + "c" string_ctrl + "N" string_named + "0-7" string_octal2 + "\n" string recolor=-2 + +:string_named Escape + * string + "{" string_named_rest + +:string_named_rest Escape + * string_named_rest + "}" string + +:string_ctrl Escape + * string + +:string_hex1 Escape + * string noeat + "{" string_unicode + "0-9a-fA-F" string_hex2 + +:string_unicode Escape + * string_unicode + "}" string + +:string_hex2 Escape + * string noeat + "0-9a-fA-F" string + +:string_octal2 Escape + * string noeat + "0-7" string_octal3 + +:string_octal3 Escape + * string noeat + "0-7" string + +# Only \\ and \' allowed in single quoted strings + +:char Constant + * char + "\n" reset + "'" after_term + "\\" char_escape recolor=-1 + +:char_escape Escape + * char recolor=-2 + "\\'" char + +:backtick Constant + * backtick + "`" after_term + "\\" backtick_escape recolor=-1 + "$@" backtick_subst recolor=-1 + +:backtick_subst Escape + * backtick noeat recolor=-1 + "\c" backtick_subst + +:backtick_escape Escape + * backtick + "x" backtick_hex1 + "c" backtick_ctrl + "N" backtick_named + "0-7" backtick_octal2 + "\n" backtick recolor=-2 + +:backtick_named Escape + * backtick + "{" backtick_named_rest + +:backtick_named_rest Escape + * backtick_named_rest + "}" backtick + +:backtick_ctrl Escape + * backtick + +:backtick_hex1 Escape + * backtick noeat + "{" backtick_unicode + "0-9a-fA-F" backtick_hex2 + +:backtick_unicode Escape + * backtick_unicode + "}" backtick + +:backtick_hex2 Escape + * backtick noeat + "0-9a-fA-F" backtick + +:backtick_octal2 Escape + * backtick noeat + "0-7" backtick_octal3 + +:backtick_octal3 Escape + * backtick noeat + "0-7" backtick + +:ident_no_kw Idle + * after_term noeat + "0" first_digit recolor=-2 + "1-9" decimal recolor=-2 + "\i" ident_no_kw1 + +:ident_no_kw1 Idle + * after_term noeat + "\c?!" ident_no_kw1 + +:ident Idle + * after_term noeat strings + "BEGIN" kw + "END" kw + "alias" kw_after + "and" kw + "begin" kw + "break" kw + "case" kw + "catch" kw + "class" kw_class + "def" kw_after + "defined" kw + "do" kw + "else" kw + "elsif" kw + "end" kw + "ensure" kw + "fail" kw + "false" kw + "for" kw + "if" kw + "in" kw + "lambda" kw + "module" kw + "next" kw + "nil" kw + "not" kw + "or" kw + "private" kw + "proc" kw + "protected" kw + "public" kw + "raise" kw + "redo" kw + "rescue" kw + "retry" kw + "return" kw + "self" kw_after + "super" kw + "then" kw + "throw" kw + "true" kw + "undef" kw + "unless" kw + "until" kw + "when" kw + "while" kw + "yield" kw + # quasi-keywords (Module or Kernel methods) + "require" kw + "autoload" kw + "extend" kw + "include" kw + "puts" kw + "exit" kw + "attr_accessor" kw + "attr_reader" kw + "attr_writer" kw + "module_function" kw +done + # allowing ?! is not nearly correct but fixes more than + # it destructs + "\c?!" ident + +:kw Keyword + * rest noeat + +# Handle case of def / +:kw_after Keyword + * after_term noeat + +:kw_class Keyword + * rest noeat + " \t\n" kw_class_space + +:kw_class_space Idle + * rest noeat + # first char should be uppercase letter + "\i" kw_class_decl noeat + " \t\n" kw_class_space + +:kw_class_decl ClassDecl + * rest noeat + "\c" kw_class_decl + +:pstring Idle + * match noeat + " \t" after_term noeat + "xrsqQwW" match +.ifdef erb + ">" NULL recolor=-2 return +.endif + +:match Idle + * inmatch save_c recolor=-1 + " \t" match + +:inmatch Constant + * inmatch + & after_term + % inmatch call=.inmatch_recur() + "#" inmatch_maybe_subst + "\\" inmatch_quote recolor=-1 + +:inmatch_maybe_subst Constant + * inmatch noeat + "{" inmatch_subst recolor=-2 call=.ruby(squiggly) + +:inmatch_subst Idle + * inmatch noeat + +:inmatch_quote Escape + * inmatch + +:subst Idle + * insubst save_c recolor=-1 + "<([{`" delim_insubst save_c recolor=-1 + " \t" subst + +:insubst Constant + * insubst + & inrepl + "\\" insubst_quote recolor=-1 + +:insubst_quote Escape + * insubst + +:inrepl Constant + * inrepl + & after_term + "\\" inrepl_quote + +:inrepl_quote Escape + * inrepl + +:delim_insubst Constant + * delim_insubst + & delim_repl + "\\" delim_quote + +:delim_quote Escape + * delim_insubst + +:delim_repl Constant + * repl save_c recolor=-1 + " \t" delim_repl + +:repl Constant + * repl + & after_term + "\\" repl_quote + +:repl_quote Escape + * repl + +:maybe_symbol Idle + * rest noeat + # prevent wrong Module::Member detection + ":" rest + # first char mustn't be 0-9 + "\i" symbol recolor=-2 + "\"" symbol_str recolor=-2 + "'" symbol_str_sq recolor=-2 + "/" rest + +:symbol Symbol + * rest noeat + "\c?!" symbol + +:symbol_str Symbol + * symbol_str + "\"" after_term + "#" symbol_maybe_str_subst recolor=-1 + +:symbol_maybe_str_subst Symbol + * symbol_str + "{" symbol_str_subst recolor=-2 call=.ruby(squiggly) + +:symbol_str_subst Idle + * symbol_str noeat + +:symbol_str_sq Symbol + * symbol_str_sq + "'" after_term + +:proc_arg ProcArg + * rest noeat + "," proc_arg_sep noeat + "\i" proc_arg + +:proc_arg_sep Idle + * proc_arg + +:class_member1 Idle + * rest noeat + "\i" class_member recolor=-2 + "@" class_member2 + +:class_member2 ClassMember + * rest noeat + "\i" class_member recolor=-3 + +:class_member ClassMember + * after_term noeat + "\c" class_member + +:global_var GlobalVar + * after_term noeat + "\c" global_var + +.end + +.subr inmatch_recur + +:inmatch Constant + * inmatch + & after_term return + % inmatch call=.inmatch_recur() + "#" inmatch_maybe_subst + "\\" inmatch_quote recolor=-1 + +:inmatch_maybe_subst Constant + * inmatch noeat + "{" inmatch_subst recolor=-2 call=.ruby(squiggly) + +:inmatch_subst Idle + * inmatch noeat + +:inmatch_quote Escape + * inmatch + +.end diff --git a/.joe/syntax/ruby.jsf.in b/.joe/syntax/ruby.jsf.in @@ -0,0 +1,641 @@ +# JOE syntax highlight file for Ruby + +# Glitches: +# <<EOF1, <<EOF2 is not working. Only EOF1 is seen. It should wait for the +# EOF2. + +=Idle +=Comment green +=POD green +=Constant cyan +=Escape bold cyan +=Type bold +=Keyword bold +=Bad bold red +=Var yellow +=Brace magenta + +=Symbol red +=SymbolEscape bold red +=ProcArg #yellow +=ClassMember yellow #fg_310 # brown +=GlobalVar #yellow +=ClassDecl bold blue + +# Detect pod + +:pre_idle Idle + * NULL noeat call=.ruby() + +.subr ruby + +:idle Idle + * rest noeat + "=" pod_start + +# Rest of line + +:rest Idle + * rest + "(" after_term call=.ruby(paren) + "[" after_term call=.ruby(brack) + "{" do_brace recolor=-1 noeat +.ifdef paren + ")" rest return +.else + ")" stray recolor=-1 +.endif +.ifdef brack + "]" rest return +.else + "]" stray recolor=-1 +.endif +.ifdef squiggly + "}" brace recolor=-1 return +.else + "}" stray recolor=-1 +.endif + "#" line_comment recolor=-1 +.ifdef haml + "\n" NULL return +.else + "\n" idle +.endif + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." ident_no_kw + "\"" string recolor=-1 + "'" char recolor=-1 + "`" backtick recolor=-1 + "/" regex recolor=-1 + "<" maybe_inc + "$" not_string buffer + "%" pstring + "\i" ident buffer + "?" opr + + # higher level, ruby specific + ":" maybe_symbol +# "|" proc_arg + "@" class_member1 + +:opr Idle + * rest noeat + "/" rest + "%" rest + +:do_brace Brace + * rest noeat + "{" brace call=.ruby(squiggly) + +:brace Brace + * after_term noeat + +:stray Bad + * rest + + +# / / regex not allowed after terms + +:after_term Idle + * rest noeat + " \t" after_term +.ifdef erb + "/" rest + "%" after_term_erb_end +.else + "/%" rest +.endif + +:after_term_erb_end Idle + * rest noeat + ">" NULL recolor=-2 return + +:pod_start Idle + * pod_start + "\n" pod_block + +:pod_block POD + * pod_block + "=" pod_ident buffer + +:pod_ident POD + * pod_block noeat strings + "=end" rest +done + "\c" pod_ident + +:maybe_inc Idle + * after_term noeat + "<" maybe_inc1 + +:maybe_inc1 Idle + * after_term noeat + "-" allow_space + "'\"" quoted_inc_start save_c recolor=-1 + "\i" inc buffer noeat + +:allow_space Idle + * after_term noeat + "'\"" quoted_inc_start_allow save_c recolor=-1 + "\i" inc_allow buffer noeat + +:quoted_inc_start Var + * quoted_inc buffer + +:quoted_inc_start_allow Var + * quoted_inc_allow buffer + +:quoted_inc Var + * quoted_inc + & skipline save_s + +:quoted_inc_allow Var + * quoted_inc_allow + & skipline_allow save_s + +:inc Var + * skipline save_s noeat + "\c" inc + +:inc_allow Var + * skipline_allow save_s noeat + "\c" inc_allow + +# Should be treated as a normal line here... + +:skipline Idle + * skipline + "\n" next_line + +:skipline_allow Idle + * skipline_allow + "\n" next_line_allow + +:todelim Constant + * todelim + "\n" next_line strings + "&" founddelim +done + +:todelim_allow Constant + * todelim_allow + "\n" next_line_allow strings + "&" founddelim +done + +# eat \n so it's not in string. +:next_line Constant + * todelim buffer + "\n" next_line + +:next_line_allow Constant + * todelim_allow buffer + " \t\n" next_line_allow + +:founddelim Var + * idle noeat + +:regex Constant + * regex + "\\" regex_quote recolor=-1 + "/" after_term + +:regex_quote Escape + * regex + +:not_string Idle + * rest noeat + "\c" global_var recolor=-2 + "\"'`#/" rest + +:brace Brace + * rest noeat + +:line_comment Comment + * line_comment +.ifdef erb + "%" line_comment_maybe_erb_end +.endif + # might be TODO label + "BFHNTX" line_comment noeat call=comment_todo.comment_todo() +.ifdef haml + "\n" NULL return +.else + "\n" idle +.endif + +:line_comment_maybe_erb_end Comment + ">" NULL recolor=-2 return + +:end_of_file_comment Comment + * end_of_file_comment + +:first_digit Constant + * after_term noeat + "x" hex + "b" binary + "." maybe_float + "eE" epart + "0-7" octal + "89" bad_number recolor=-1 + +:bad_number Bad + * after_term noeat + "0-9" bad_number + +:octal Constant + * after_term noeat + "0-7_" octal + "89" bad_number recolor=-1 + +:binary Constant + * after_term noeat + "01_" binary + "2-9" bad_number recolor=-1 + +:hex Constant + * after_term noeat + "0-9A-Fa-f_" hex + +:decimal Constant + * after_term noeat + "0-9_" decimal + "eE" epart + "." maybe_float + +:maybe_float Idle + * after_term noeat recolor=-2 + "0-9" float noeat + +:float Constant + * after_term noeat + "eE" epart + "0-9_" float + +:epart Constant + * after_term noeat + "0-9+\-" enum + +:enum Constant + * after_term noeat + "0-9_" enum + +:string Constant + * string + "\"" after_term + "\\" string_escape recolor=-1 + "#" maybe_string_subst recolor=-1 + +:maybe_string_subst Constant + * string noeat + "{" string_subst recolor=-2 call=.ruby(squiggly) + +:string_subst Idle + * string noeat + +:string_escape Escape + * string + "x" string_hex1 + "c" string_ctrl + "N" string_named + "0-7" string_octal2 + "\n" string recolor=-2 + +:string_named Escape + * string + "{" string_named_rest + +:string_named_rest Escape + * string_named_rest + "}" string + +:string_ctrl Escape + * string + +:string_hex1 Escape + * string noeat + "{" string_unicode + "0-9a-fA-F" string_hex2 + +:string_unicode Escape + * string_unicode + "}" string + +:string_hex2 Escape + * string noeat + "0-9a-fA-F" string + +:string_octal2 Escape + * string noeat + "0-7" string_octal3 + +:string_octal3 Escape + * string noeat + "0-7" string + +# Only \\ and \' allowed in single quoted strings + +:char Constant + * char + "\n" reset + "'" after_term + "\\" char_escape recolor=-1 + +:char_escape Escape + * char recolor=-2 + "\\'" char + +:backtick Constant + * backtick + "`" after_term + "\\" backtick_escape recolor=-1 + "$@" backtick_subst recolor=-1 + +:backtick_subst Escape + * backtick noeat recolor=-1 + "\c" backtick_subst + +:backtick_escape Escape + * backtick + "x" backtick_hex1 + "c" backtick_ctrl + "N" backtick_named + "0-7" backtick_octal2 + "\n" backtick recolor=-2 + +:backtick_named Escape + * backtick + "{" backtick_named_rest + +:backtick_named_rest Escape + * backtick_named_rest + "}" backtick + +:backtick_ctrl Escape + * backtick + +:backtick_hex1 Escape + * backtick noeat + "{" backtick_unicode + "0-9a-fA-F" backtick_hex2 + +:backtick_unicode Escape + * backtick_unicode + "}" backtick + +:backtick_hex2 Escape + * backtick noeat + "0-9a-fA-F" backtick + +:backtick_octal2 Escape + * backtick noeat + "0-7" backtick_octal3 + +:backtick_octal3 Escape + * backtick noeat + "0-7" backtick + +:ident_no_kw Idle + * after_term noeat + "0" first_digit recolor=-2 + "1-9" decimal recolor=-2 + "\i" ident_no_kw1 + +:ident_no_kw1 Idle + * after_term noeat + "\c?!" ident_no_kw1 + +:ident Idle + * after_term noeat strings + "BEGIN" kw + "END" kw + "alias" kw_after + "and" kw + "begin" kw + "break" kw + "case" kw + "catch" kw + "class" kw_class + "def" kw_after + "defined" kw + "do" kw + "else" kw + "elsif" kw + "end" kw + "ensure" kw + "fail" kw + "false" kw + "for" kw + "if" kw + "in" kw + "lambda" kw + "module" kw + "next" kw + "nil" kw + "not" kw + "or" kw + "private" kw + "proc" kw + "protected" kw + "public" kw + "raise" kw + "redo" kw + "rescue" kw + "retry" kw + "return" kw + "self" kw_after + "super" kw + "then" kw + "throw" kw + "true" kw + "undef" kw + "unless" kw + "until" kw + "when" kw + "while" kw + "yield" kw + # quasi-keywords (Module or Kernel methods) + "require" kw + "autoload" kw + "extend" kw + "include" kw + "puts" kw + "exit" kw + "attr_accessor" kw + "attr_reader" kw + "attr_writer" kw + "module_function" kw +done + # allowing ?! is not nearly correct but fixes more than + # it destructs + "\c?!" ident + +:kw Keyword + * rest noeat + +# Handle case of def / +:kw_after Keyword + * after_term noeat + +:kw_class Keyword + * rest noeat + " \t\n" kw_class_space + +:kw_class_space Idle + * rest noeat + # first char should be uppercase letter + "\i" kw_class_decl noeat + " \t\n" kw_class_space + +:kw_class_decl ClassDecl + * rest noeat + "\c" kw_class_decl + +:pstring Idle + * match noeat + " \t" after_term noeat + "xrsqQwW" match +.ifdef erb + ">" NULL recolor=-2 return +.endif + +:match Idle + * inmatch save_c recolor=-1 + " \t" match + +:inmatch Constant + * inmatch + & after_term + % inmatch call=.inmatch_recur() + "#" inmatch_maybe_subst + "\\" inmatch_quote recolor=-1 + +:inmatch_maybe_subst Constant + * inmatch noeat + "{" inmatch_subst recolor=-2 call=.ruby(squiggly) + +:inmatch_subst Idle + * inmatch noeat + +:inmatch_quote Escape + * inmatch + +:subst Idle + * insubst save_c recolor=-1 + "<([{`" delim_insubst save_c recolor=-1 + " \t" subst + +:insubst Constant + * insubst + & inrepl + "\\" insubst_quote recolor=-1 + +:insubst_quote Escape + * insubst + +:inrepl Constant + * inrepl + & after_term + "\\" inrepl_quote + +:inrepl_quote Escape + * inrepl + +:delim_insubst Constant + * delim_insubst + & delim_repl + "\\" delim_quote + +:delim_quote Escape + * delim_insubst + +:delim_repl Constant + * repl save_c recolor=-1 + " \t" delim_repl + +:repl Constant + * repl + & after_term + "\\" repl_quote + +:repl_quote Escape + * repl + +:maybe_symbol Idle + * rest noeat + # prevent wrong Module::Member detection + ":" rest + # first char mustn't be 0-9 + "\i" symbol recolor=-2 + "\"" symbol_str recolor=-2 + "'" symbol_str_sq recolor=-2 + "/" rest + +:symbol Symbol + * rest noeat + "\c?!" symbol + +:symbol_str Symbol + * symbol_str + "\"" after_term + "#" symbol_maybe_str_subst recolor=-1 + +:symbol_maybe_str_subst Symbol + * symbol_str + "{" symbol_str_subst recolor=-2 call=.ruby(squiggly) + +:symbol_str_subst Idle + * symbol_str noeat + +:symbol_str_sq Symbol + * symbol_str_sq + "'" after_term + +:proc_arg ProcArg + * rest noeat + "," proc_arg_sep noeat + "\i" proc_arg + +:proc_arg_sep Idle + * proc_arg + +:class_member1 Idle + * rest noeat + "\i" class_member recolor=-2 + "@" class_member2 + +:class_member2 ClassMember + * rest noeat + "\i" class_member recolor=-3 + +:class_member ClassMember + * after_term noeat + "\c" class_member + +:global_var GlobalVar + * after_term noeat + "\c" global_var + +.end + +.subr inmatch_recur + +:inmatch Constant + * inmatch + & after_term return + % inmatch call=.inmatch_recur() + "#" inmatch_maybe_subst + "\\" inmatch_quote recolor=-1 + +:inmatch_maybe_subst Constant + * inmatch noeat + "{" inmatch_subst recolor=-2 call=.ruby(squiggly) + +:inmatch_subst Idle + * inmatch noeat + +:inmatch_quote Escape + * inmatch + +.end diff --git a/.joe/syntax/rust.jsf b/.joe/syntax/rust.jsf @@ -0,0 +1,321 @@ +# JOE syntax highlight file for Rust + +=Idle +=Comment green +=Shebang yellow +=Constant cyan +=Escape bold cyan +=Operator bold +=Keyword bold +=Bad bold red +=Var yellow +=Brace magenta + +=ProcArg #yellow +=ClassMember yellow #fg_310 # brown +=GlobalVar #yellow +=ClassDecl bold blue + +:pre_idle Idle + * NULL noeat call=.rust() + +.subr rust + +# #! allowed on first line + +:idle Idle + * idle + "{}" brace recolor=-1 + "0" zero recolor=-1 + "1-9" decimal recolor=-1 + "." decimal_point recolor=-1 + "\"" string recolor=-1 + "'" char recolor=-1 + "/" slash recolor=-1 + "\i" ident buffer + "b" maybe_byte_string buffer + "r" maybe_raw_string buffer + +:maybe_byte_string Idle + * ident noeat + "'" char recolor=-2 + "\"" string recolor=-2 + "r" maybe_byte_raw_string + +:maybe_raw_string Idle + * ident noeat + "#" should_be_raw_string recolor=-2 + +:maybe_byte_raw_string Idle + * ident noeat + "#" should_be_raw_string recolor=-3 + +:slash Constant + * idle noeat + "*" comment recolor=-2 + "/" line_comment recolor=-2 + +:brace Brace + * idle noeat + +:comment Comment + * comment + "*" maybe_end_comment + +:maybe_end_comment Comment + * comment + "/" idle + "*" maybe_end_comment + +:line_comment Comment + * line_comment + "\n" idle + +# Numbers + +:bad_number Bad + * idle noeat + "0-9" bad_number + +:zero Constant + * idle noeat + "b" binary + "o" octal + "x" hex + "." float + "eE" epart + "0-9" decimal recolor=-1 + "ui" int_suffix + "f" float_suffix + +:decimal_point Constant + * idle noeat recolor=-2 + "0-9" float + +:octal Constant + * idle noeat + "0-7_" octal + "89" bad_number recolor=-1 + "ui" int_suffix + +:binary Constant + * idle noeat + "01_" binary + "2-9" bad_number recolor=-1 + "ui" int_suffix + +:hex Constant + * idle noeat + "0-9A-Fa-f_" hex + "ui" int_suffix + +:decimal Constant + * idle noeat + "0-9_" decimal + "eE" epart + "." float + "ui" int_suffix + "f" float_suffix + +:float Constant + * idle noeat + "eE" epart + "0-9_" float + "ui" int_suffix + "f" float_suffix + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9_" enum + "ui" int_suffix + "f" float_suffix + +:float_suffix Constant + * bad_number noeat recolor=-1 + "3" float_suffix_1 + "6" float_suffix_2 + +:float_suffix_1 Constant + * bad_number noeat recolor=-1 + "2" idle + +:float_suffix_2 Constant + * bad_number noeat recolor=-1 + "4" idle + +:int_suffix Constant + * bad_number noeat recolor=-1 + "3" int_suffix_1 + "6" int_suffix_2 + "s" int_suffix_3 + +:int_suffix_1 Constant + * bad_number noeat recolor=-1 + "2" idle + +:int_suffix_2 Constant + * bad_number noeat recolor=-1 + "4" idle + +:int_suffix_3 Constant + * bad_number noeat recolor=-2 + "i" int_suffix_4 + +:int_suffix_4 Constant + * bad_number noeat recolor=-3 + "z" int_suffix_5 + +:int_suffix_5 Constant + * bad_number noeat recolor=-4 + "e" idle + +# strings like #"hello"# + +:should_be_raw_string Constant + * idle noeat + "\"" raw_string + +:raw_string Constant + * raw_string + "\"" raw_string_maybe_done + +:raw_string_maybe_done Constant + * raw_string noeat + "#" idle + +# strings like "hello" + +:string Constant + * string + "\"" idle + "\\" string_escape recolor=-1 + +:string_escape Escape + * string + "x" string_hex2 + "u" string_maybe_uni + +:string_maybe_uni Escape + * string noeat + "{" string_uni + +:string_uni Escape + * string_uni + "}" string + +:string_hex2 Escape + * string noeat + "0-9a-fA-F" string_hex1 + +:string_hex1 Escape + * string noeat + "0-9a-fA-F" string + +# character constants like 'h' + +:char Constant + * char_done + "\\" char_escape recolor=-1 + +:char_done Constant + * idle noeat recolor=-3 + "\'" idle + +:char_escape Escape + * char_done noeat + "x" char_hex2 + "u" char_maybe_uni + +:char_maybe_uni Escape + * char_done noeat + "{" char_uni + +:char_uni Escape + * char_uni + "}" char_done + +:char_hex2 Escape + * char_done noeat + "0-9a-fA-F" char_hex1 + +:char_hex1 Escape + * char_done noeat + "0-9a-fA-F" char + +# Identifiers + +:ident Idle + * idle noeat strings + "abstract" kw + "alignof" kw + "as" operator + "become" kw + "box" kw + "break" kw + "const" kw + "continue" kw + "crate" kw + "do" kw + "else" kw + "enum" kw + "extern" kw + "false" lit + "final" kw + "fn" kw + "for" kw + "if" kw + "impl" kw + "in" operator + "let" kw + "loop" kw + "macro" kw + "match" kw + "mod" kw + "move" kw + "mut" kw + "offsetof" kw + "override" kw + "priv" kw + "proc" kw + "pub" kw + "pure" kw + "ref" kw + "return" kw + "Self" kw + "self" kw + "sizeof" kw + "static" kw + "struct" kw + "super" kw + "trait" kw + "true" lit + "type" kw + "typeof" kw + "unsafe" kw + "unsized" kw + "use" kw + "virtual" kw + "where" kw + "while" kw + "yield" kw +done + "\c" ident + +:kw Keyword + * idle noeat + +:lit Constant + * idle noeat + +:operator Operator + * idle noeat + +:global_var GlobalVar + * idle noeat + "\c" global_var + +.end diff --git a/.joe/syntax/rust.jsf.in b/.joe/syntax/rust.jsf.in @@ -0,0 +1,321 @@ +# JOE syntax highlight file for Rust + +=Idle +=Comment green +=Shebang yellow +=Constant cyan +=Escape bold cyan +=Operator bold +=Keyword bold +=Bad bold red +=Var yellow +=Brace magenta + +=ProcArg #yellow +=ClassMember yellow #fg_310 # brown +=GlobalVar #yellow +=ClassDecl bold blue + +:pre_idle Idle + * NULL noeat call=.rust() + +.subr rust + +# #! allowed on first line + +:idle Idle + * idle + "{}" brace recolor=-1 + "0" zero recolor=-1 + "1-9" decimal recolor=-1 + "." decimal_point recolor=-1 + "\"" string recolor=-1 + "'" char recolor=-1 + "/" slash recolor=-1 + "\i" ident buffer + "b" maybe_byte_string buffer + "r" maybe_raw_string buffer + +:maybe_byte_string Idle + * ident noeat + "'" char recolor=-2 + "\"" string recolor=-2 + "r" maybe_byte_raw_string + +:maybe_raw_string Idle + * ident noeat + "#" should_be_raw_string recolor=-2 + +:maybe_byte_raw_string Idle + * ident noeat + "#" should_be_raw_string recolor=-3 + +:slash Constant + * idle noeat + "*" comment recolor=-2 + "/" line_comment recolor=-2 + +:brace Brace + * idle noeat + +:comment Comment + * comment + "*" maybe_end_comment + +:maybe_end_comment Comment + * comment + "/" idle + "*" maybe_end_comment + +:line_comment Comment + * line_comment + "\n" idle + +# Numbers + +:bad_number Bad + * idle noeat + "0-9" bad_number + +:zero Constant + * idle noeat + "b" binary + "o" octal + "x" hex + "." float + "eE" epart + "0-9" decimal recolor=-1 + "ui" int_suffix + "f" float_suffix + +:decimal_point Constant + * idle noeat recolor=-2 + "0-9" float + +:octal Constant + * idle noeat + "0-7_" octal + "89" bad_number recolor=-1 + "ui" int_suffix + +:binary Constant + * idle noeat + "01_" binary + "2-9" bad_number recolor=-1 + "ui" int_suffix + +:hex Constant + * idle noeat + "0-9A-Fa-f_" hex + "ui" int_suffix + +:decimal Constant + * idle noeat + "0-9_" decimal + "eE" epart + "." float + "ui" int_suffix + "f" float_suffix + +:float Constant + * idle noeat + "eE" epart + "0-9_" float + "ui" int_suffix + "f" float_suffix + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9_" enum + "ui" int_suffix + "f" float_suffix + +:float_suffix Constant + * bad_number noeat recolor=-1 + "3" float_suffix_1 + "6" float_suffix_2 + +:float_suffix_1 Constant + * bad_number noeat recolor=-1 + "2" idle + +:float_suffix_2 Constant + * bad_number noeat recolor=-1 + "4" idle + +:int_suffix Constant + * bad_number noeat recolor=-1 + "3" int_suffix_1 + "6" int_suffix_2 + "s" int_suffix_3 + +:int_suffix_1 Constant + * bad_number noeat recolor=-1 + "2" idle + +:int_suffix_2 Constant + * bad_number noeat recolor=-1 + "4" idle + +:int_suffix_3 Constant + * bad_number noeat recolor=-2 + "i" int_suffix_4 + +:int_suffix_4 Constant + * bad_number noeat recolor=-3 + "z" int_suffix_5 + +:int_suffix_5 Constant + * bad_number noeat recolor=-4 + "e" idle + +# strings like #"hello"# + +:should_be_raw_string Constant + * idle noeat + "\"" raw_string + +:raw_string Constant + * raw_string + "\"" raw_string_maybe_done + +:raw_string_maybe_done Constant + * raw_string noeat + "#" idle + +# strings like "hello" + +:string Constant + * string + "\"" idle + "\\" string_escape recolor=-1 + +:string_escape Escape + * string + "x" string_hex2 + "u" string_maybe_uni + +:string_maybe_uni Escape + * string noeat + "{" string_uni + +:string_uni Escape + * string_uni + "}" string + +:string_hex2 Escape + * string noeat + "0-9a-fA-F" string_hex1 + +:string_hex1 Escape + * string noeat + "0-9a-fA-F" string + +# character constants like 'h' + +:char Constant + * char_done + "\\" char_escape recolor=-1 + +:char_done Constant + * idle noeat recolor=-3 + "\'" idle + +:char_escape Escape + * char_done noeat + "x" char_hex2 + "u" char_maybe_uni + +:char_maybe_uni Escape + * char_done noeat + "{" char_uni + +:char_uni Escape + * char_uni + "}" char_done + +:char_hex2 Escape + * char_done noeat + "0-9a-fA-F" char_hex1 + +:char_hex1 Escape + * char_done noeat + "0-9a-fA-F" char + +# Identifiers + +:ident Idle + * idle noeat strings + "abstract" kw + "alignof" kw + "as" operator + "become" kw + "box" kw + "break" kw + "const" kw + "continue" kw + "crate" kw + "do" kw + "else" kw + "enum" kw + "extern" kw + "false" lit + "final" kw + "fn" kw + "for" kw + "if" kw + "impl" kw + "in" operator + "let" kw + "loop" kw + "macro" kw + "match" kw + "mod" kw + "move" kw + "mut" kw + "offsetof" kw + "override" kw + "priv" kw + "proc" kw + "pub" kw + "pure" kw + "ref" kw + "return" kw + "Self" kw + "self" kw + "sizeof" kw + "static" kw + "struct" kw + "super" kw + "trait" kw + "true" lit + "type" kw + "typeof" kw + "unsafe" kw + "unsized" kw + "use" kw + "virtual" kw + "where" kw + "while" kw + "yield" kw +done + "\c" ident + +:kw Keyword + * idle noeat + +:lit Constant + * idle noeat + +:operator Operator + * idle noeat + +:global_var GlobalVar + * idle noeat + "\c" global_var + +.end diff --git a/.joe/syntax/scala.jsf b/.joe/syntax/scala.jsf @@ -0,0 +1,325 @@ +# JOE syntax highlight file for JAVA + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Type bold +=Keyword bold +=Operator bold +=Bad bold red +=Brace magenta +=Control + +=Methods + +:begin Idle + * begin noeat call=.scala() + +.subr scala + +:idle Idle + * idle + "\n" idle + "/" slash + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." maybe_float + "\"" maybe_string recolor=-1 + "'" char recolor=-1 + "\i\p{Sc}" ident mark buffer + "{}" brace recolor=-1 + ",:;=()><[]*&|!~+\-%^" control recolor=-1 + +:maybe_done Control + * idle noeat + "/" idle noeat return recolor=-2 + +:brace Brace + * idle noeat + +:control Control + * idle noeat + +:slash Idle + * idle noeat + "*" comment recolor=-2 + "/" line_comment recolor=-2 + +:comment Comment + * comment + # might be TODO label + "BFHNTX" comment noeat call=comment_todo.comment_todo() + "*" maybe_end_comment + +:maybe_end_comment Comment + * comment noeat + "/" idle + "*" maybe_end_comment + +:line_comment Comment + * line_comment + # might be TODO label + "BFHNTX" line_comment noeat call=comment_todo.comment_todo() + "\n" idle + +:first_digit Constant + * idle noeat + "lLfF" idle + "xX" hex + "." float + "eE" epart + "0-7" octal + "89" bad_number recolor=-1 + +:bad_number Bad + * idle noeat + "0-9" bad_number + +:octal Constant + * idle noeat + "0-7" octal + "89" bad_number recolor=-1 + "lL" idle + +:hex Constant + * idle noeat + "0-9A-Fa-f" hex + "lL" idle + +:decimal Constant + * idle noeat + "0-9" decimal + "lLfF" idle + "eE" epart + "." float + +:maybe_float Constant + * idle recolor=-2 noeat + "\i\p{Sc}" not_ident recolor=-2 + "0-9" float recolor=-2 + +:not_ident Idle + * idle noeat + "\c\p{Sc}" not_ident + +:float Constant + * idle noeat + "eE" epart + "0-9" float + "fFlL" idle + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + "fFlL" idle + +:maybe_string Constant + * string noeat + "\"" maybe_string_1 + +:maybe_string_1 Constant + * idle noeat + "\"" stringstring + +:string Constant + * string + "\"" idle + "\\" string_escape recolor=-1 + "%" string_control recolor=-1 + +:string_escape Escape + * string + "u" string_uni1 + "0-7" string_octal2 + "\n" string recolor=-2 + +:string_uni1 Escape + * string noeat + "0-9a-fA-F" string_uni2 + +:string_uni2 Escape + * string noeat + "0-9a-fA-F" string_uni3 + +:string_uni3 Escape + * string noeat + "0-9a-fA-F" string_uni4 + +:string_uni4 Escape + * string noeat + "0-9a-fA-F" string + +:string_octal2 Escape + * string noeat + "0-7" string_octal3 + +:string_octal3 Escape + * string noeat + "0-7" string + +:string_control Escape + * string_control + "\n" idle + "\"" string noeat + "diouxXeEfFgGaAcspn%SCM" string + +:stringstring Constant + * stringstring + "\"" stringstring_1 + "\\" stringstring_escape recolor=-1 + "%" stringstring_control recolor=-1 + +:stringstring_1 Constant + * stringstring noeat + "\"" stringstring_2 + +:stringstring_2 Constant + * stringstring noeat + "\"" idle + +:stringstring_escape Escape + * stringstring + "u" stringstring_uni1 + "0-7" stringstring_octal2 + "\n" stringstring recolor=-2 + +:stringstring_uni1 Escape + * stringstring noeat + "0-9a-fA-F" stringstring_uni2 + +:stringstring_uni2 Escape + * stringstring noeat + "0-9a-fA-F" stringstring_uni3 + +:stringstring_uni3 Escape + * stringstring noeat + "0-9a-fA-F" stringstring_uni4 + +:stringstring_uni4 Escape + * stringstring noeat + "0-9a-fA-F" stringstring + +:stringstring_octal2 Escape + * stringstring noeat + "0-7" stringstring_octal3 + +:stringstring_octal3 Escape + * stringstring noeat + "0-7" stringstring + +:stringstring_control Escape + * stringstring_control + "\n" idle + "\"" stringstring noeat + "diouxXeEfFgGaAcspn%SCM" stringstring + +:char Constant + * char_done + "'" idle + "\\" char_escape recolor=-1 + +:char_done Constant + * idle noeat recolor=-3 + "\'" idle + +:char_escape Escape + * char_done + "u" char_uni1 + "0-7" char_octal2 + +:char_uni1 Escape + * char_done noeat + "0-9a-fA-F" char_uni2 + +:char_uni2 Escape + * char_done noeat + "0-9a-fA-F" char_uni3 + +:char_uni3 Escape + * char_done noeat + "0-9a-fA-F" char_uni4 + +:char_uni4 Escape + * char_done noeat + "0-9a-fA-F" char_done + +:char_octal2 Escape + * char_done noeat + "0-7" char_octal3 + +:char_octal3 Escape + * char_done noeat + "0-7" char_done + +:ident Idle + * ident_end noeat markend strings + "abstract" kw + "case" kw + "catch" kw + "class" kw + "def" kw + "do" kw + "else" kw + "false" lit + "final" kw + "finally" kw + "for" kw + "forSome" kw + "if" kw + "implicit" kw + "import" kw + "lazy" kw + "match" kw + "new" operator + "null" lit + "object" kw + "override" kw + "package" kw + "private" kw + "protected" kw + "return" kw + "sealed" kw + "super" kw + "this" kw + "throw" kw + "trait" kw + "try" kw + "true" lit + "type" kw + "val" kw + "var" kw + "while" kw + "with" kw + "yield" kw +done + "\c\p{Sc}" ident + +:type Type + * idle noeat + +:kw Keyword + * idle noeat + +:bad_kw Bad + * idle noeat + +:lit Constant + * idle noeat + +:operator Operator + * idle noeat + +:ident_end Idle + * idle noeat + " " ident_end + "(" method_end noeat recolormark + +:method_end Methods + * idle noeat + +.end diff --git a/.joe/syntax/scala.jsf.in b/.joe/syntax/scala.jsf.in @@ -0,0 +1,325 @@ +# JOE syntax highlight file for JAVA + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Type bold +=Keyword bold +=Operator bold +=Bad bold red +=Brace magenta +=Control + +=Methods + +:begin Idle + * begin noeat call=.scala() + +.subr scala + +:idle Idle + * idle + "\n" idle + "/" slash + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." maybe_float + "\"" maybe_string recolor=-1 + "'" char recolor=-1 + "\i\p{Sc}" ident mark buffer + "{}" brace recolor=-1 + ",:;=()><[]*&|!~+\-%^" control recolor=-1 + +:maybe_done Control + * idle noeat + "/" idle noeat return recolor=-2 + +:brace Brace + * idle noeat + +:control Control + * idle noeat + +:slash Idle + * idle noeat + "*" comment recolor=-2 + "/" line_comment recolor=-2 + +:comment Comment + * comment + # might be TODO label + "BFHNTX" comment noeat call=comment_todo.comment_todo() + "*" maybe_end_comment + +:maybe_end_comment Comment + * comment noeat + "/" idle + "*" maybe_end_comment + +:line_comment Comment + * line_comment + # might be TODO label + "BFHNTX" line_comment noeat call=comment_todo.comment_todo() + "\n" idle + +:first_digit Constant + * idle noeat + "lLfF" idle + "xX" hex + "." float + "eE" epart + "0-7" octal + "89" bad_number recolor=-1 + +:bad_number Bad + * idle noeat + "0-9" bad_number + +:octal Constant + * idle noeat + "0-7" octal + "89" bad_number recolor=-1 + "lL" idle + +:hex Constant + * idle noeat + "0-9A-Fa-f" hex + "lL" idle + +:decimal Constant + * idle noeat + "0-9" decimal + "lLfF" idle + "eE" epart + "." float + +:maybe_float Constant + * idle recolor=-2 noeat + "\i\p{Sc}" not_ident recolor=-2 + "0-9" float recolor=-2 + +:not_ident Idle + * idle noeat + "\c\p{Sc}" not_ident + +:float Constant + * idle noeat + "eE" epart + "0-9" float + "fFlL" idle + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + "fFlL" idle + +:maybe_string Constant + * string noeat + "\"" maybe_string_1 + +:maybe_string_1 Constant + * idle noeat + "\"" stringstring + +:string Constant + * string + "\"" idle + "\\" string_escape recolor=-1 + "%" string_control recolor=-1 + +:string_escape Escape + * string + "u" string_uni1 + "0-7" string_octal2 + "\n" string recolor=-2 + +:string_uni1 Escape + * string noeat + "0-9a-fA-F" string_uni2 + +:string_uni2 Escape + * string noeat + "0-9a-fA-F" string_uni3 + +:string_uni3 Escape + * string noeat + "0-9a-fA-F" string_uni4 + +:string_uni4 Escape + * string noeat + "0-9a-fA-F" string + +:string_octal2 Escape + * string noeat + "0-7" string_octal3 + +:string_octal3 Escape + * string noeat + "0-7" string + +:string_control Escape + * string_control + "\n" idle + "\"" string noeat + "diouxXeEfFgGaAcspn%SCM" string + +:stringstring Constant + * stringstring + "\"" stringstring_1 + "\\" stringstring_escape recolor=-1 + "%" stringstring_control recolor=-1 + +:stringstring_1 Constant + * stringstring noeat + "\"" stringstring_2 + +:stringstring_2 Constant + * stringstring noeat + "\"" idle + +:stringstring_escape Escape + * stringstring + "u" stringstring_uni1 + "0-7" stringstring_octal2 + "\n" stringstring recolor=-2 + +:stringstring_uni1 Escape + * stringstring noeat + "0-9a-fA-F" stringstring_uni2 + +:stringstring_uni2 Escape + * stringstring noeat + "0-9a-fA-F" stringstring_uni3 + +:stringstring_uni3 Escape + * stringstring noeat + "0-9a-fA-F" stringstring_uni4 + +:stringstring_uni4 Escape + * stringstring noeat + "0-9a-fA-F" stringstring + +:stringstring_octal2 Escape + * stringstring noeat + "0-7" stringstring_octal3 + +:stringstring_octal3 Escape + * stringstring noeat + "0-7" stringstring + +:stringstring_control Escape + * stringstring_control + "\n" idle + "\"" stringstring noeat + "diouxXeEfFgGaAcspn%SCM" stringstring + +:char Constant + * char_done + "'" idle + "\\" char_escape recolor=-1 + +:char_done Constant + * idle noeat recolor=-3 + "\'" idle + +:char_escape Escape + * char_done + "u" char_uni1 + "0-7" char_octal2 + +:char_uni1 Escape + * char_done noeat + "0-9a-fA-F" char_uni2 + +:char_uni2 Escape + * char_done noeat + "0-9a-fA-F" char_uni3 + +:char_uni3 Escape + * char_done noeat + "0-9a-fA-F" char_uni4 + +:char_uni4 Escape + * char_done noeat + "0-9a-fA-F" char_done + +:char_octal2 Escape + * char_done noeat + "0-7" char_octal3 + +:char_octal3 Escape + * char_done noeat + "0-7" char_done + +:ident Idle + * ident_end noeat markend strings + "abstract" kw + "case" kw + "catch" kw + "class" kw + "def" kw + "do" kw + "else" kw + "false" lit + "final" kw + "finally" kw + "for" kw + "forSome" kw + "if" kw + "implicit" kw + "import" kw + "lazy" kw + "match" kw + "new" operator + "null" lit + "object" kw + "override" kw + "package" kw + "private" kw + "protected" kw + "return" kw + "sealed" kw + "super" kw + "this" kw + "throw" kw + "trait" kw + "try" kw + "true" lit + "type" kw + "val" kw + "var" kw + "while" kw + "with" kw + "yield" kw +done + "\c\p{Sc}" ident + +:type Type + * idle noeat + +:kw Keyword + * idle noeat + +:bad_kw Bad + * idle noeat + +:lit Constant + * idle noeat + +:operator Operator + * idle noeat + +:ident_end Idle + * idle noeat + " " ident_end + "(" method_end noeat recolormark + +:method_end Methods + * idle noeat + +.end diff --git a/.joe/syntax/sed.jsf b/.joe/syntax/sed.jsf @@ -0,0 +1,144 @@ +# Fancy "sed" highlighter + +# Bugs: delimiter should be ignored in [...] +# +# it would be nice if this did more correct +# error checking for the sed programmer + +- + +=Idle +=Comment green +=String cyan +=Escape bold cyan +=Bad red +=Keyword bold +=Delimiter magenta + +# Zero address commands: # : } +# Zero or one address: = a i q r +# Range address: { b t c d D h H g G x l n N p P s w y + +:idle Idle + * cmd noeat + " " idle + "\n" idle + "0-9" first_addr recolor=-1 + "$" first_eof recolor=-1 + "/" first_regex_c recolor=-1 + +:first_eof String + * first_addr_done noeat + +:first_regex_c Delimiter + * first_regex noeat + +:first_regex String + * first_regex + "\\" first_regex_quote recolor=-1 + "/" first_regex_e recolor=-1 + +:first_regex_e Delimiter + * first_addr_done noeat + +:first_regex_quote Escape + * first_regex + +:first_addr String + * first_addr_done noeat + "0-9" first_addr + +:first_addr_done Idle + * cmd noeat + "," second_addr_start + +:second_addr_start Idle + * bad noeat + "0-9" second_addr recolor=-1 + "$" second_eof recolor=-1 + "/" second_regex recolor=-1 + +:second_eof String + * cmd noeat + +:second_regex String + * second_regex + "/" cmd + +:second_addr String + * cmd noeat + "0-9" second_addr + +:bad Bad + * bad + "\n" idle + +:cmd Delimiter + * the_cmd noeat + " " cmd + "!" the_cmd + +:the_cmd Idle + * bad noeat + " " the_cmd + ";" next noeat + "#" comment recolor=-1 + "sy" accepts recolor=-1 + "{" accepto recolor=-1 + "aic" accept recolor=-1 + "=:}rqbtdDhHgGxlnNpPw" acceptc recolor=-1 + +:accepto Keyword + * idle noeat + +:accept Keyword + * next noeat + +:acceptc Keyword + * nextallow noeat + +:accepts Keyword + * subst noeat + +:subst Delimiter + * subst_rest save_c + +:subst_rest String + * subst_rest + & subst_rest_2_c recolor=-1 + "\\" subst_rest_quote recolor=-1 + +:subst_rest_quote Escape + * subst_rest + +:subst_rest_2_c Delimiter + * subst_rest_2 noeat + +:subst_rest_2 String + * subst_rest_2 + & next_c recolor=-1 + "\\" subst_rest_2_quote recolor=-1 + +:next_c Delimiter + * nextallow noeat + +:subst_rest_2_quote Escape + * subst_rest_2 + +:nextallow Idle + * nextallow + "\n" idle + ";" idle + "#" comment recolor=-1 + +:next Idle + * next + "\n" idle + "\\" continue + +:continue Idle + * next + +:comment Comment + * comment + "\n" idle diff --git a/.joe/syntax/sed.jsf.in b/.joe/syntax/sed.jsf.in @@ -0,0 +1,144 @@ +# Fancy "sed" highlighter + +# Bugs: delimiter should be ignored in [...] +# +# it would be nice if this did more correct +# error checking for the sed programmer + +- + +=Idle +=Comment green +=String cyan +=Escape bold cyan +=Bad red +=Keyword bold +=Delimiter magenta + +# Zero address commands: # : } +# Zero or one address: = a i q r +# Range address: { b t c d D h H g G x l n N p P s w y + +:idle Idle + * cmd noeat + " " idle + "\n" idle + "0-9" first_addr recolor=-1 + "$" first_eof recolor=-1 + "/" first_regex_c recolor=-1 + +:first_eof String + * first_addr_done noeat + +:first_regex_c Delimiter + * first_regex noeat + +:first_regex String + * first_regex + "\\" first_regex_quote recolor=-1 + "/" first_regex_e recolor=-1 + +:first_regex_e Delimiter + * first_addr_done noeat + +:first_regex_quote Escape + * first_regex + +:first_addr String + * first_addr_done noeat + "0-9" first_addr + +:first_addr_done Idle + * cmd noeat + "," second_addr_start + +:second_addr_start Idle + * bad noeat + "0-9" second_addr recolor=-1 + "$" second_eof recolor=-1 + "/" second_regex recolor=-1 + +:second_eof String + * cmd noeat + +:second_regex String + * second_regex + "/" cmd + +:second_addr String + * cmd noeat + "0-9" second_addr + +:bad Bad + * bad + "\n" idle + +:cmd Delimiter + * the_cmd noeat + " " cmd + "!" the_cmd + +:the_cmd Idle + * bad noeat + " " the_cmd + ";" next noeat + "#" comment recolor=-1 + "sy" accepts recolor=-1 + "{" accepto recolor=-1 + "aic" accept recolor=-1 + "=:}rqbtdDhHgGxlnNpPw" acceptc recolor=-1 + +:accepto Keyword + * idle noeat + +:accept Keyword + * next noeat + +:acceptc Keyword + * nextallow noeat + +:accepts Keyword + * subst noeat + +:subst Delimiter + * subst_rest save_c + +:subst_rest String + * subst_rest + & subst_rest_2_c recolor=-1 + "\\" subst_rest_quote recolor=-1 + +:subst_rest_quote Escape + * subst_rest + +:subst_rest_2_c Delimiter + * subst_rest_2 noeat + +:subst_rest_2 String + * subst_rest_2 + & next_c recolor=-1 + "\\" subst_rest_2_quote recolor=-1 + +:next_c Delimiter + * nextallow noeat + +:subst_rest_2_quote Escape + * subst_rest_2 + +:nextallow Idle + * nextallow + "\n" idle + ";" idle + "#" comment recolor=-1 + +:next Idle + * next + "\n" idle + "\\" continue + +:continue Idle + * next + +:comment Comment + * comment + "\n" idle diff --git a/.joe/syntax/sh.jsf b/.joe/syntax/sh.jsf @@ -0,0 +1,343 @@ +# JOE syntax highlight file for sh/ksh/bash + +# Think about: +# $'....' +# $(...) +# ${...} + +# cat <<EOF xxxxxx +# xxxxx should be interpreted as other arguments for 'cat'. + +# Colors + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Keyword bold +=Var magenta + +# Syntax + +:idle Idle + * idle +# ")" subst_char recolor=-1 + "`" subst_char recolor=-1 + "#" comment recolor=-1 + "\\" escape recolor=-1 + "$" subst recolor=-1 + "'" string_sq recolor=-1 + "\"" string_dq recolor=-1 + "<" maybe_inc + "0-9" maybe_base recolor=-1 + "a-zA-Z{}![_" ident buffer + +:subst_char Var + * idle noeat + +:maybe_inc Idle + * idle noeat + "<" maybe_inc1 + +:maybe_inc1 Idle + * inc buffer noeat + "\"" inc_quote + "'" inc_quote + " " maybe_inc1 + "\n" toeof + "`&()\\|;<>" idle noeat + "\\" skipquote + "-" skipminus + +:skipminus Idle + * inc1 buffer noeat + " " skipminus + "\\" skipquote + "\"" inc1_quote + "'" inc1_quote + "`&()\\|;<>\n" idle noeat + +:skipquote Idle + * inc buffer noeat + "`&()\\|;'\"<> \n" idle noeat + +# All of these are for case of leading - + +:inc1 Var + * inc1 + "`&()\\|;'\"<> \n" skipline1 noeat save_s + +:inc1_quote Var + * inc1 buffer noeat + +:skipline1 Idle + * skipline1 + "\n" next_line1 + +:todelim1 Constant + * todelim1 + "\n" next_line1 strings + "&" founddelim1 +done + +:next_line1 Constant + * todelim1 buffer + "\t" next_line1 + "\n" next_line1 + +:founddelim1 Var + * idle noeat + +# No leading - + +:inc Var + * inc + "`&()\\|;'\"<> \n" skipline noeat save_s + +:inc_quote Var + * inc noeat buffer + +# Should be treated as a normal line here... + +:skipline Idle + * skipline + "\n" next_line + +:todelim Constant + * todelim + "\n" next_line strings + "&" founddelim +done + +# eat \n so it's not in string. +:next_line Constant + * todelim buffer + "\n" next_line + +:founddelim Var + * idle noeat + +# << with no word. Rest of file is a constant. + +:toeof Constant + * toeof + +:comment Comment comment + * comment + "\n" idle + +:escape Escape + * idle + +:subst Var + * idle noeat + "(" idle recolor=-2 # don't try for now + "\"" string_dq recolor=-2 + "\'" string_sq recolor=-2 + "{" subst_brack + "a-zA-Z_" subst_name + "0-9*@?\-$_!#" idle + +:subst_name Var + * idle noeat recolor=-1 + "a-zA-Z0-9_" subst_name + +:subst_brack Var + * subst_brack + "}" idle + +# Simplest case: no quoting allowed +:string_sq Constant string + * string_sq + "\'" idle + + +# double-quote: quoting, backqoutes and substitution allowed +:string_dq Constant string + * string_dq + "$" string_dq_subst recolor=-1 + "\"" idle + "\\" string_dq_esc recolor=-1 + "`" string_dq_bq recolor=-1 + +:string_dq_subst Var string + * string_dq noeat recolor=-2 + "$0-9!_\-?*@" string_dq + "a-zA-Z_" string_dq_subst_name + "{" string_dq_subst_brack + +:string_dq_subst_name Var string + * string_dq recolor=-1 noeat + "a-zA-Z0-9_" string_dq_subst_name + +:string_dq_subst_brack Var string + * string_dq_subst_brack + "}" string_dq + +:string_dq_esc Escape string + * string_dq recolor=-2 + "$`\"\\" string_dq + "\n" string_dq recolor=-2 + +:string_dq_bq Constant string + * string_dq_bq + "$" string_dq_bq_subst recolor=-1 + "\`" string_dq + "\\" string_dq_bq_esc recolor=-1 + +:string_dq_bq_subst Var string + * string_dq_bq noeat recolor=-2 + "$0-9!_\-?*@" string_dq_bq + "a-zA-Z_" string_dq_bq_subst_name + "{" string_dq_bq_subst_brack + +:string_dq_bq_subst_name Var string + * string_dq_bq recolor=-1 noeat + "a-zA-Z0-9_" string_dq_bq_subst_name + +:string_dq_bq_subst_brack Var string + * string_dq_bq_subst_brack + "}" string_dq_bq + +:string_dq_bq_esc Escape string + * string_dq_bq recolor=-2 + "$`\"\\" string_dq_bq + "\n" string_dq_bq recolor=-2 + + +# backquote +:string_bq Constant + * string_bq + "$" string_bq_subst recolor=-1 + "\`" idle + "\\" string_bq_esc recolor=-1 + +# escape in backquote +:string_bq_esc Escape + * string_bq recolor=-2 + "$`\"\\" string_bq + "\n" string_bq recolor=-2 + +# Substitution in a backquote +:string_bq_subst Var + * string_bq noeat recolor=-2 + "$0-9!_\-?*@" string_bq + "a-zA-Z_" string_bq_subst_name + "{" string_bq_subst_brack + +:string_bq_subst_name Var + * string_bq recolor=-1 noeat + "a-zA-Z0-9_" string_bq_subst_name + +:string_bq_subst_brack Var + * string_bq_subst_brack + "}" string_bq + +:maybe_base Idle + * idle noeat + "#" idle + "0-9" maybe_base + +:ident Idle + * idle noeat strings + "!" bang + "{" kw + "}" kw + "[" kw + "]" kw +# primary keywords + "case" kw + "do" kw + "done" kw + "elif" kw + "else" kw + "esac" kw + "fi" kw + "for" kw + "if" kw + "in" kw + "then" kw + "until" kw + "while" kw +# I think these are basically keywords too + "break" kw + "continue" kw + "return" kw + "eval" kw + "exec" kw + "exit" kw + "test" kw # doesn't have to be a shell command +# variable management + "shift" kw + "unset" kw + "export" kw + "readonly" kw +# input + "read" kw +# job control (not likely to be used in scripts) + "bg" kw + "fg" kw + "jobs" kw + "suspend" kw +# job control (useful in scripts) + "kill" kw + "wait" kw +# environment control + "cd" kw + "chdir" kw + "pwd" kw + "ulimit" kw + "umask" kw +# signal handling + "trap" kw +# misc shell control + "hash" kw + "type" kw + "times" kw + "set" kw +# shell builtins + "echo" kw + "getopts" kw + "login" kw # not bash (logout is) + "newgrp" kw # not in bash + "stop" kw # not in bash (suspends a process) +# additional ksh builtins + "alias" kw + "select" kw + "function" kw + "command" kw + "fc" kw + "let" kw + "print" kw + "unalias" kw + "whence" kw + "history" kw + "time" kw + "typeset" kw + "local" kw +# additional bash builtins + "source" kw + "bind" kw + "builtin" kw + "compgen" kw + "complete" kw + "declare" kw + "dirs" kw + "disown" kw + "enable" kw + "help" kw + "logout" kw + "popd" kw + "printf" kw + "pushd" kw + "shopt" kw +done + "a-zA-Z0-9_" ident + +:kw Keyword + * idle noeat + +:bang Keyword + * idle noeat + "#" idle + "!" bang diff --git a/.joe/syntax/sh.jsf.in b/.joe/syntax/sh.jsf.in @@ -0,0 +1,343 @@ +# JOE syntax highlight file for sh/ksh/bash + +# Think about: +# $'....' +# $(...) +# ${...} + +# cat <<EOF xxxxxx +# xxxxx should be interpreted as other arguments for 'cat'. + +# Colors + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Keyword bold +=Var magenta + +# Syntax + +:idle Idle + * idle +# ")" subst_char recolor=-1 + "`" subst_char recolor=-1 + "#" comment recolor=-1 + "\\" escape recolor=-1 + "$" subst recolor=-1 + "'" string_sq recolor=-1 + "\"" string_dq recolor=-1 + "<" maybe_inc + "0-9" maybe_base recolor=-1 + "a-zA-Z{}![_" ident buffer + +:subst_char Var + * idle noeat + +:maybe_inc Idle + * idle noeat + "<" maybe_inc1 + +:maybe_inc1 Idle + * inc buffer noeat + "\"" inc_quote + "'" inc_quote + " " maybe_inc1 + "\n" toeof + "`&()\\|;<>" idle noeat + "\\" skipquote + "-" skipminus + +:skipminus Idle + * inc1 buffer noeat + " " skipminus + "\\" skipquote + "\"" inc1_quote + "'" inc1_quote + "`&()\\|;<>\n" idle noeat + +:skipquote Idle + * inc buffer noeat + "`&()\\|;'\"<> \n" idle noeat + +# All of these are for case of leading - + +:inc1 Var + * inc1 + "`&()\\|;'\"<> \n" skipline1 noeat save_s + +:inc1_quote Var + * inc1 buffer noeat + +:skipline1 Idle + * skipline1 + "\n" next_line1 + +:todelim1 Constant + * todelim1 + "\n" next_line1 strings + "&" founddelim1 +done + +:next_line1 Constant + * todelim1 buffer + "\t" next_line1 + "\n" next_line1 + +:founddelim1 Var + * idle noeat + +# No leading - + +:inc Var + * inc + "`&()\\|;'\"<> \n" skipline noeat save_s + +:inc_quote Var + * inc noeat buffer + +# Should be treated as a normal line here... + +:skipline Idle + * skipline + "\n" next_line + +:todelim Constant + * todelim + "\n" next_line strings + "&" founddelim +done + +# eat \n so it's not in string. +:next_line Constant + * todelim buffer + "\n" next_line + +:founddelim Var + * idle noeat + +# << with no word. Rest of file is a constant. + +:toeof Constant + * toeof + +:comment Comment comment + * comment + "\n" idle + +:escape Escape + * idle + +:subst Var + * idle noeat + "(" idle recolor=-2 # don't try for now + "\"" string_dq recolor=-2 + "\'" string_sq recolor=-2 + "{" subst_brack + "a-zA-Z_" subst_name + "0-9*@?\-$_!#" idle + +:subst_name Var + * idle noeat recolor=-1 + "a-zA-Z0-9_" subst_name + +:subst_brack Var + * subst_brack + "}" idle + +# Simplest case: no quoting allowed +:string_sq Constant string + * string_sq + "\'" idle + + +# double-quote: quoting, backqoutes and substitution allowed +:string_dq Constant string + * string_dq + "$" string_dq_subst recolor=-1 + "\"" idle + "\\" string_dq_esc recolor=-1 + "`" string_dq_bq recolor=-1 + +:string_dq_subst Var string + * string_dq noeat recolor=-2 + "$0-9!_\-?*@" string_dq + "a-zA-Z_" string_dq_subst_name + "{" string_dq_subst_brack + +:string_dq_subst_name Var string + * string_dq recolor=-1 noeat + "a-zA-Z0-9_" string_dq_subst_name + +:string_dq_subst_brack Var string + * string_dq_subst_brack + "}" string_dq + +:string_dq_esc Escape string + * string_dq recolor=-2 + "$`\"\\" string_dq + "\n" string_dq recolor=-2 + +:string_dq_bq Constant string + * string_dq_bq + "$" string_dq_bq_subst recolor=-1 + "\`" string_dq + "\\" string_dq_bq_esc recolor=-1 + +:string_dq_bq_subst Var string + * string_dq_bq noeat recolor=-2 + "$0-9!_\-?*@" string_dq_bq + "a-zA-Z_" string_dq_bq_subst_name + "{" string_dq_bq_subst_brack + +:string_dq_bq_subst_name Var string + * string_dq_bq recolor=-1 noeat + "a-zA-Z0-9_" string_dq_bq_subst_name + +:string_dq_bq_subst_brack Var string + * string_dq_bq_subst_brack + "}" string_dq_bq + +:string_dq_bq_esc Escape string + * string_dq_bq recolor=-2 + "$`\"\\" string_dq_bq + "\n" string_dq_bq recolor=-2 + + +# backquote +:string_bq Constant + * string_bq + "$" string_bq_subst recolor=-1 + "\`" idle + "\\" string_bq_esc recolor=-1 + +# escape in backquote +:string_bq_esc Escape + * string_bq recolor=-2 + "$`\"\\" string_bq + "\n" string_bq recolor=-2 + +# Substitution in a backquote +:string_bq_subst Var + * string_bq noeat recolor=-2 + "$0-9!_\-?*@" string_bq + "a-zA-Z_" string_bq_subst_name + "{" string_bq_subst_brack + +:string_bq_subst_name Var + * string_bq recolor=-1 noeat + "a-zA-Z0-9_" string_bq_subst_name + +:string_bq_subst_brack Var + * string_bq_subst_brack + "}" string_bq + +:maybe_base Idle + * idle noeat + "#" idle + "0-9" maybe_base + +:ident Idle + * idle noeat strings + "!" bang + "{" kw + "}" kw + "[" kw + "]" kw +# primary keywords + "case" kw + "do" kw + "done" kw + "elif" kw + "else" kw + "esac" kw + "fi" kw + "for" kw + "if" kw + "in" kw + "then" kw + "until" kw + "while" kw +# I think these are basically keywords too + "break" kw + "continue" kw + "return" kw + "eval" kw + "exec" kw + "exit" kw + "test" kw # doesn't have to be a shell command +# variable management + "shift" kw + "unset" kw + "export" kw + "readonly" kw +# input + "read" kw +# job control (not likely to be used in scripts) + "bg" kw + "fg" kw + "jobs" kw + "suspend" kw +# job control (useful in scripts) + "kill" kw + "wait" kw +# environment control + "cd" kw + "chdir" kw + "pwd" kw + "ulimit" kw + "umask" kw +# signal handling + "trap" kw +# misc shell control + "hash" kw + "type" kw + "times" kw + "set" kw +# shell builtins + "echo" kw + "getopts" kw + "login" kw # not bash (logout is) + "newgrp" kw # not in bash + "stop" kw # not in bash (suspends a process) +# additional ksh builtins + "alias" kw + "select" kw + "function" kw + "command" kw + "fc" kw + "let" kw + "print" kw + "unalias" kw + "whence" kw + "history" kw + "time" kw + "typeset" kw + "local" kw +# additional bash builtins + "source" kw + "bind" kw + "builtin" kw + "compgen" kw + "complete" kw + "declare" kw + "dirs" kw + "disown" kw + "enable" kw + "help" kw + "logout" kw + "popd" kw + "printf" kw + "pushd" kw + "shopt" kw +done + "a-zA-Z0-9_" ident + +:kw Keyword + * idle noeat + +:bang Keyword + * idle noeat + "#" idle + "!" bang diff --git a/.joe/syntax/sieve.jsf b/.joe/syntax/sieve.jsf @@ -0,0 +1,106 @@ +# JOE syntax highlight file for Sieve +# by Christian Nicolai (http://mycrobase.de) + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Keyword bold +=Bad bold red +=Brace magenta + +=TaggedArgument red + +:idle Idle + * idle + "#" line_comment recolor=-1 + "/" maybe_comment + "1-9" decimal recolor=-1 + "\"" string recolor=-1 + "[]{}" brace recolor=-1 + ":" maybe_tagged_arg + "a-zA-Z_" ident buffer + +:brace Brace + * idle noeat + +:line_comment Comment + * line_comment + "\n" idle + +:maybe_comment Idle + * idle noeat + "*" comment recolor=-2 + +:comment Comment + * comment + "*" maybe_end_comment + +:maybe_end_comment Comment + * comment noeat + "/" idle + +:decimal Constant + * idle noeat + "0-9" decimal + "KMG" decimal_suffix + +:decimal_suffix Constant + * idle noeat + +:string Constant + * string + "\"" idle + "\\" string_escape recolor=-1 + +:string_escape Escape + * string_bad_escape recolor=-1 + "\\" string + "\"" string + +:string_bad_escape Bad + * string noeat + +:maybe_tagged_arg Idle + * idle noeat + "a-zA-Z_" tagged_arg recolor=-2 + +:tagged_arg TaggedArgument + * idle noeat + "a-zA-Z0-9_" tagged_arg + +:ident Idle + * idle noeat strings + # control" + "else" kw + "elsif" kw + "if" kw + "require" kw + "stop" kw + # commands + "discard" cmd + "fileinto" cmd + "keep" cmd + "redirect" cmd + # tests + "address" test + "allof" test + "anyof" test + "envelope" test + "exists" test + "false" test + "header" test + "not" test + "size" test + "true" test +done + "a-zA-Z0-9_" ident + +:kw Keyword + * idle noeat + +:cmd Idle + * idle noeat + +:test Idle + * idle noeat diff --git a/.joe/syntax/sieve.jsf.in b/.joe/syntax/sieve.jsf.in @@ -0,0 +1,106 @@ +# JOE syntax highlight file for Sieve +# by Christian Nicolai (http://mycrobase.de) + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Keyword bold +=Bad bold red +=Brace magenta + +=TaggedArgument red + +:idle Idle + * idle + "#" line_comment recolor=-1 + "/" maybe_comment + "1-9" decimal recolor=-1 + "\"" string recolor=-1 + "[]{}" brace recolor=-1 + ":" maybe_tagged_arg + "a-zA-Z_" ident buffer + +:brace Brace + * idle noeat + +:line_comment Comment + * line_comment + "\n" idle + +:maybe_comment Idle + * idle noeat + "*" comment recolor=-2 + +:comment Comment + * comment + "*" maybe_end_comment + +:maybe_end_comment Comment + * comment noeat + "/" idle + +:decimal Constant + * idle noeat + "0-9" decimal + "KMG" decimal_suffix + +:decimal_suffix Constant + * idle noeat + +:string Constant + * string + "\"" idle + "\\" string_escape recolor=-1 + +:string_escape Escape + * string_bad_escape recolor=-1 + "\\" string + "\"" string + +:string_bad_escape Bad + * string noeat + +:maybe_tagged_arg Idle + * idle noeat + "a-zA-Z_" tagged_arg recolor=-2 + +:tagged_arg TaggedArgument + * idle noeat + "a-zA-Z0-9_" tagged_arg + +:ident Idle + * idle noeat strings + # control" + "else" kw + "elsif" kw + "if" kw + "require" kw + "stop" kw + # commands + "discard" cmd + "fileinto" cmd + "keep" cmd + "redirect" cmd + # tests + "address" test + "allof" test + "anyof" test + "envelope" test + "exists" test + "false" test + "header" test + "not" test + "size" test + "true" test +done + "a-zA-Z0-9_" ident + +:kw Keyword + * idle noeat + +:cmd Idle + * idle noeat + +:test Idle + * idle noeat diff --git a/.joe/syntax/skill.jsf b/.joe/syntax/skill.jsf @@ -0,0 +1,92 @@ +# JOE syntax highlight file for SKILL +# Based on the very rudimentary lisp syntax file +# Written by Joachim Fenkes <skill dot jsf at dojoe dot net> in 2005 + +=Idle +=Comment green +=String cyan +=Escape bold cyan +=Bracket bold +=Symbol bold blue +=Keyword bold +=Number bold magenta +=Bad bold red + +:idle Idle + * idle + ";" comment recolor=-1 + "\"" string recolor=-1 + "/" slash + "()[]{}" bracket recolor=-1 + "'" maybe_symbol recolor=-1 + "a-zA-Z_" maybe_keyword buffer + "0-9" number recolor=-1 + +:maybe_keyword Idle + * idle noeat strings + "list" keyword + "procedure" keyword + "while" keyword + "foreach" keyword + "if" keyword + "for" keyword + "when" keyword + "unless" keyword + "cond" keyword + "defun" keyword + "let" keyword + "prog" keyword + "else" keyword + "then" keyword + "case" keyword + "caseq" keyword + "nil" keyword + "t" keyword +done + "0-9a-zA-Z_" maybe_keyword + +:number Number + * idle noeat + "0-9." number + +:slash Idle + * idle + "/" slash + "*" mcomment recolor=-2 + +:comment Comment + * comment + "\n" idle + +:mcomment Comment + * mcomment + "*" maybe_end_mcomment + +:maybe_end_mcomment Comment + * mcomment + "*" maybe_end_mcomment + "/" idle + +:string String + * string + "\"" idle + "\\" string_escape recolor=-1 + +:string_escape Escape + * string + "\n" string recolor=-2 + +:bracket Bracket + * idle noeat + +:maybe_symbol Idle + * symbol recolor=-2 + "(){}" bracket recolor=-2 + +:symbol Symbol + * symbol + " \t\n" idle recolor=-1 + ")" bracket recolor=-1 + +:keyword Keyword + * idle noeat diff --git a/.joe/syntax/skill.jsf.in b/.joe/syntax/skill.jsf.in @@ -0,0 +1,92 @@ +# JOE syntax highlight file for SKILL +# Based on the very rudimentary lisp syntax file +# Written by Joachim Fenkes <skill dot jsf at dojoe dot net> in 2005 + +=Idle +=Comment green +=String cyan +=Escape bold cyan +=Bracket bold +=Symbol bold blue +=Keyword bold +=Number bold magenta +=Bad bold red + +:idle Idle + * idle + ";" comment recolor=-1 + "\"" string recolor=-1 + "/" slash + "()[]{}" bracket recolor=-1 + "'" maybe_symbol recolor=-1 + "a-zA-Z_" maybe_keyword buffer + "0-9" number recolor=-1 + +:maybe_keyword Idle + * idle noeat strings + "list" keyword + "procedure" keyword + "while" keyword + "foreach" keyword + "if" keyword + "for" keyword + "when" keyword + "unless" keyword + "cond" keyword + "defun" keyword + "let" keyword + "prog" keyword + "else" keyword + "then" keyword + "case" keyword + "caseq" keyword + "nil" keyword + "t" keyword +done + "0-9a-zA-Z_" maybe_keyword + +:number Number + * idle noeat + "0-9." number + +:slash Idle + * idle + "/" slash + "*" mcomment recolor=-2 + +:comment Comment + * comment + "\n" idle + +:mcomment Comment + * mcomment + "*" maybe_end_mcomment + +:maybe_end_mcomment Comment + * mcomment + "*" maybe_end_mcomment + "/" idle + +:string String + * string + "\"" idle + "\\" string_escape recolor=-1 + +:string_escape Escape + * string + "\n" string recolor=-2 + +:bracket Bracket + * idle noeat + +:maybe_symbol Idle + * symbol recolor=-2 + "(){}" bracket recolor=-2 + +:symbol Symbol + * symbol + " \t\n" idle recolor=-1 + ")" bracket recolor=-1 + +:keyword Keyword + * idle noeat diff --git a/.joe/syntax/sml.jsf b/.joe/syntax/sml.jsf @@ -0,0 +1,391 @@ +# JOE syntax highlight file for SML + +# A (deterministic) state machine which performs lexical analysis of SML. +# (This is the "assembly language" of syntax highlighting. A separate +# program could be used to convert a regular expression NFA syntax into this +# format). + +# Each state begins with ':<name> <color-name>' +# <color-name> is the color used for characters eaten by the state +# (really a symbol for a user definable color). + +# The first state defined is the initial state. + +# Within a state, define transitions (jumps) to other states. Each +# jump has the form: <character-list> <target-state> [<option>s] + +# There are two ways to specify <character-list>s, either * for any +# character not otherwise specified, or a literal list of characters within +# quotes (ranges and escape sequences allows). When the next character +# matches any in the list, a jump to the target-state is taken and the +# character is eaten (we advance to the next character of the file to be +# colored). +# +# The * transition should be the first transition specified in the state. +# +# There are several options: +# noeat do not eat the character, instead feed it to the next state +# (this tends to make the states smaller, but be careful: you +# can make infinite loops). 'noeat' implies 'recolor=-1'. +# +# recolor=-N Recolor the past N characters with the color of the +# target-state. For example once /* is recognized as the +# start of C comment, you want to color the /* with the C +# comment color. +# +# buffer start copying characters to a buffer, beginning with this +# one (it's ok to not terminate buffering with a matching +# 'strings' option- the buffer is limited to leading 19 +# characters). +# +# strings A list of strings follows. If the buffer matches any of the +# given strings, a jump to the target-state in the string list +# is taken instead of the normal jump. +# +# istrings Same as strings, but case is ignored. +# +# hold Stop buffering string- a future 'strings' or 'istrings' will +# look at contents of buffer at this point. Useful for distinguishing +# commands and function calls in some languages 'write 7' is a command +# 'write (' is a function call- hold lets us stop at the space and delay +# the string lookup until the ( or 7. +# +# The format of the string list is: +# +# "string" <target-state> [<options>s] +# "string" <target-state> [<options>s] +# done +# +# (all of the options above are allowed except "strings", "istrings" and "noeat". noeat is +# always implied after a matched string). +# +# Weirdness: only states have colors, not transitions. This means that you +# sometimes have to make dummy states with '* next-state noeat' just to get +# a color specification. + +# Define no. sync lines +# You can say: +# -200 means 200 lines +# - means always start parsing from beginning of file when we lose sync +# if nothing is specified, the default is -50 + +# Define colors +# +# bold inverse blink dim underline italic +# white cyan magenta blue yellow green red black +# bg_white bg_cyan bg_magenta bg_blue bg_yellow bg_green bg_red bg_black + +=Expr +=Bad bg_red +=Comment green +=Literal cyan +=Escape bold cyan +=Type blue +=Keyword bold +=Operator bold black +=Control green +=Id + +:expr Expr + * expr + ".,[{})];" control recolor=-1 # . or ... both control + "(" bracket recolor=-1 + "_" underline recolor=-1 + "!%&$+/:<=>?@`^|*\-" operator buffer recolor=-1 + "#" hash recolor=-1 + "~" tilde recolor=-1 + "0" zero recolor=-1 + "1-9" decimal recolor=-1 + "\"" string recolor=-1 + "a-zA-Z" id buffer recolor=-1 + +:bad Bad + * expr + +:control Control + * expr noeat + +:bracket Control + * expr noeat + "*" comment1 recolor=-2 + +:underline Keyword + * expr noeat + "a-zA-Z" kw + +:operator Operator + * expr noeat strings + ":>" colon + ":" colon + "::" control # can be overloaded, but you would burn in hell + ":=" control # ditto + "=" control # only in some contexts is it _really_ control + "->" control + "=>" control + "|" control +done + "!%&$+/:<=>?@~`^|#*\-" operator + +:colon Control + * type1 noeat + +:hash Control + * expr noeat + "!%&$+/:<=>?@~`^|#*\-" operator recolor=-2 + "\"" string recolor=-2 + +:tilde Operator + * expr noeat + "!%&$+/:<=>?@~`^|#*\-" operator + "0" zero recolor=-2 + "1-9" decimal recolor=-2 + +:zero Literal + * expr noeat + "0-9" decimal + "w" word buffer + "x" hex1 buffer + "e" epart buffer + "E" epart buffer + "." float1 + +:word Literal + * id noeat recolor=-2 + "0-9" decimal + "x" hexword + +:hexword Literal + * id noeat recolor=-3 + "0-9a-fA-F" hex + +:hex1 Literal + * id noeat recolor=-2 + "0-9a-fA-F" hex + +:hex Literal + * expr noeat + "0-9a-fA-F" hex + +:decimal Literal + * expr noeat + "0-9" decimal + "." float1 + "e" epart buffer + "E" epart buffer + +# trailing digits required in SML (unlike OCaml) +:float1 Literal + * bad noeat + "0-9" float + +:float Literal + * expr noeat + "0-9" float + "e" epart buffer + "E" epart buffer + +:epart Literal + * id noeat recolor=-2 + "0-9" enum + "~" epart # bug: 3e~~3 + +:enum Literal + * expr noeat + "0-9" enum + +:string Literal + * string + "\"" expr + "\n" bad + "\\" string_escape recolor=-1 + +:string_escape Escape + * bad noeat + "abfnrtv\"\\" string + "^" string_carret + "u" string_hex1 + "0-9" string_decimal2 + "\n\r\f\t " string_eatws + +:string_carret Escape + * bad noeat + "ABCDEFGHIJKLMNOPQRSTUVWXYZ\\^_" string + +:string_eatws Escape + * bad noeat + "\n\r\f\t " string_eatws + "\\" string + +:string_hex1 Escape + * bad noeat + "0-9a-fA-F" string_hex2 + +:string_hex2 Escape + * bad noeat + "0-9a-fA-F" string_hex3 + +:string_hex3 Escape + * bad noeat + "0-9a-fA-F" string_hex4 + +:string_hex4 Escape + * bad noeat + "0-9a-fA-F" string + +:string_decimal2 Escape + * bad noeat + "0-9" string_decimal3 + +:string_decimal3 Escape + * bad noeat + "0-9" string + +:id Id + * expr noeat strings + "_" kw + "ann" kw + "and" kw + "as" kw + "case" kw + "do" kw + "else" kw + "end" kw + "exception" kw + "fn" kw + "fun" kw + "functor" kw + "handle" kw + "if" kw + "in" kw + "include" kw + "infix" kw + "infixr" kw + "let" kw + "local" kw + "nil" kw + "nonfix" kw + "of" kw + "op" kw + "open" kw + "raise" kw + "rec" kw + "sharing" kw + "sig" kw + "signature" kw + "struct" kw + "structure" kw + "then" kw + "val" kw + "where" kw + "while" kw + "with" kw + "abstype" kwtype + "datatype" kwtype + "eqtype" kwtype + "type" kwtype + "withtype" kwtype + "before" operatorkw + "o" operatorkw + "orelse" operatorkw + "andalso" operatorkw + "div" operatorkw + "mod" operatorkw +done + "a-zA-Z0-9_'" id + +:kw Keyword + * expr noeat + "a-zA-Z0-9_'" kw + +:operatorkw Operator + * expr noeat + +:kwtype Keyword + * kwtype1 noeat + +:kwtype1 Type + * expr noeat + "=" typeval recolor=-1 + "a-zA-Z0-9_'., :|*>\t\-" kwtype1 + "({" kwtype2 + +:kwtype2 Type + * expr noeat + ")}" kwtype1 + "a-zA-Z0-9_'., :|*>\t\n\-" kwtype2 + "({" kwtype3 + +:kwtype3 Type + * expr noeat + ")}" kwtype2 + "a-zA-Z0-9_'., :|*>\t\n\-" kwtype3 + "({" expr # too deep nesting + +:typeval Control + * type1 noeat + " \t\n" typeval + +:type1 Type + * expr noeat + "a-zA-Z0-9_'., :|*>\t\-" type1 + "({" type2 + +:type2 Type + * expr noeat + ")}" type1 + "a-zA-Z0-9_'., :|*>\t\n\-" type2 + "({" type3 + +:type3 Type + * expr noeat + ")}" type2 + "a-zA-Z0-9_'., :|*>\t\n\-" type3 + "({" type4 + +:type4 Type + * expr noeat + ")}" type3 + "a-zA-Z0-9_'., :|*>\t\n\-" type4 + "({" expr # too deep nesting + +:comment1 Comment + * comment1 + "(" nestcomment1 + "*" endcomment1 + +:nestcomment1 Comment + * comment1 + "*" comment2 + +:endcomment1 Comment + * comment1 + ")" expr + "*" endcomment1 + +:comment2 Comment + * comment2 + "(" nestcomment2 + "*" endcomment2 + +:nestcomment2 Comment + * comment2 + "*" comment3 + +:endcomment2 Comment + * comment2 + ")" comment1 + "*" endcomment2 + +:comment3 Comment + * comment3 + "(" nestcomment3 + "*" endcomment3 + +:nestcomment3 Comment + * comment3 + "*" expr # too deep nesting + +:endcomment3 Comment + * comment3 + ")" comment2 + "*" endcomment3 diff --git a/.joe/syntax/sml.jsf.in b/.joe/syntax/sml.jsf.in @@ -0,0 +1,391 @@ +# JOE syntax highlight file for SML + +# A (deterministic) state machine which performs lexical analysis of SML. +# (This is the "assembly language" of syntax highlighting. A separate +# program could be used to convert a regular expression NFA syntax into this +# format). + +# Each state begins with ':<name> <color-name>' +# <color-name> is the color used for characters eaten by the state +# (really a symbol for a user definable color). + +# The first state defined is the initial state. + +# Within a state, define transitions (jumps) to other states. Each +# jump has the form: <character-list> <target-state> [<option>s] + +# There are two ways to specify <character-list>s, either * for any +# character not otherwise specified, or a literal list of characters within +# quotes (ranges and escape sequences allows). When the next character +# matches any in the list, a jump to the target-state is taken and the +# character is eaten (we advance to the next character of the file to be +# colored). +# +# The * transition should be the first transition specified in the state. +# +# There are several options: +# noeat do not eat the character, instead feed it to the next state +# (this tends to make the states smaller, but be careful: you +# can make infinite loops). 'noeat' implies 'recolor=-1'. +# +# recolor=-N Recolor the past N characters with the color of the +# target-state. For example once /* is recognized as the +# start of C comment, you want to color the /* with the C +# comment color. +# +# buffer start copying characters to a buffer, beginning with this +# one (it's ok to not terminate buffering with a matching +# 'strings' option- the buffer is limited to leading 19 +# characters). +# +# strings A list of strings follows. If the buffer matches any of the +# given strings, a jump to the target-state in the string list +# is taken instead of the normal jump. +# +# istrings Same as strings, but case is ignored. +# +# hold Stop buffering string- a future 'strings' or 'istrings' will +# look at contents of buffer at this point. Useful for distinguishing +# commands and function calls in some languages 'write 7' is a command +# 'write (' is a function call- hold lets us stop at the space and delay +# the string lookup until the ( or 7. +# +# The format of the string list is: +# +# "string" <target-state> [<options>s] +# "string" <target-state> [<options>s] +# done +# +# (all of the options above are allowed except "strings", "istrings" and "noeat". noeat is +# always implied after a matched string). +# +# Weirdness: only states have colors, not transitions. This means that you +# sometimes have to make dummy states with '* next-state noeat' just to get +# a color specification. + +# Define no. sync lines +# You can say: +# -200 means 200 lines +# - means always start parsing from beginning of file when we lose sync +# if nothing is specified, the default is -50 + +# Define colors +# +# bold inverse blink dim underline italic +# white cyan magenta blue yellow green red black +# bg_white bg_cyan bg_magenta bg_blue bg_yellow bg_green bg_red bg_black + +=Expr +=Bad bg_red +=Comment green +=Literal cyan +=Escape bold cyan +=Type blue +=Keyword bold +=Operator bold black +=Control green +=Id + +:expr Expr + * expr + ".,[{})];" control recolor=-1 # . or ... both control + "(" bracket recolor=-1 + "_" underline recolor=-1 + "!%&$+/:<=>?@`^|*\-" operator buffer recolor=-1 + "#" hash recolor=-1 + "~" tilde recolor=-1 + "0" zero recolor=-1 + "1-9" decimal recolor=-1 + "\"" string recolor=-1 + "a-zA-Z" id buffer recolor=-1 + +:bad Bad + * expr + +:control Control + * expr noeat + +:bracket Control + * expr noeat + "*" comment1 recolor=-2 + +:underline Keyword + * expr noeat + "a-zA-Z" kw + +:operator Operator + * expr noeat strings + ":>" colon + ":" colon + "::" control # can be overloaded, but you would burn in hell + ":=" control # ditto + "=" control # only in some contexts is it _really_ control + "->" control + "=>" control + "|" control +done + "!%&$+/:<=>?@~`^|#*\-" operator + +:colon Control + * type1 noeat + +:hash Control + * expr noeat + "!%&$+/:<=>?@~`^|#*\-" operator recolor=-2 + "\"" string recolor=-2 + +:tilde Operator + * expr noeat + "!%&$+/:<=>?@~`^|#*\-" operator + "0" zero recolor=-2 + "1-9" decimal recolor=-2 + +:zero Literal + * expr noeat + "0-9" decimal + "w" word buffer + "x" hex1 buffer + "e" epart buffer + "E" epart buffer + "." float1 + +:word Literal + * id noeat recolor=-2 + "0-9" decimal + "x" hexword + +:hexword Literal + * id noeat recolor=-3 + "0-9a-fA-F" hex + +:hex1 Literal + * id noeat recolor=-2 + "0-9a-fA-F" hex + +:hex Literal + * expr noeat + "0-9a-fA-F" hex + +:decimal Literal + * expr noeat + "0-9" decimal + "." float1 + "e" epart buffer + "E" epart buffer + +# trailing digits required in SML (unlike OCaml) +:float1 Literal + * bad noeat + "0-9" float + +:float Literal + * expr noeat + "0-9" float + "e" epart buffer + "E" epart buffer + +:epart Literal + * id noeat recolor=-2 + "0-9" enum + "~" epart # bug: 3e~~3 + +:enum Literal + * expr noeat + "0-9" enum + +:string Literal + * string + "\"" expr + "\n" bad + "\\" string_escape recolor=-1 + +:string_escape Escape + * bad noeat + "abfnrtv\"\\" string + "^" string_carret + "u" string_hex1 + "0-9" string_decimal2 + "\n\r\f\t " string_eatws + +:string_carret Escape + * bad noeat + "ABCDEFGHIJKLMNOPQRSTUVWXYZ\\^_" string + +:string_eatws Escape + * bad noeat + "\n\r\f\t " string_eatws + "\\" string + +:string_hex1 Escape + * bad noeat + "0-9a-fA-F" string_hex2 + +:string_hex2 Escape + * bad noeat + "0-9a-fA-F" string_hex3 + +:string_hex3 Escape + * bad noeat + "0-9a-fA-F" string_hex4 + +:string_hex4 Escape + * bad noeat + "0-9a-fA-F" string + +:string_decimal2 Escape + * bad noeat + "0-9" string_decimal3 + +:string_decimal3 Escape + * bad noeat + "0-9" string + +:id Id + * expr noeat strings + "_" kw + "ann" kw + "and" kw + "as" kw + "case" kw + "do" kw + "else" kw + "end" kw + "exception" kw + "fn" kw + "fun" kw + "functor" kw + "handle" kw + "if" kw + "in" kw + "include" kw + "infix" kw + "infixr" kw + "let" kw + "local" kw + "nil" kw + "nonfix" kw + "of" kw + "op" kw + "open" kw + "raise" kw + "rec" kw + "sharing" kw + "sig" kw + "signature" kw + "struct" kw + "structure" kw + "then" kw + "val" kw + "where" kw + "while" kw + "with" kw + "abstype" kwtype + "datatype" kwtype + "eqtype" kwtype + "type" kwtype + "withtype" kwtype + "before" operatorkw + "o" operatorkw + "orelse" operatorkw + "andalso" operatorkw + "div" operatorkw + "mod" operatorkw +done + "a-zA-Z0-9_'" id + +:kw Keyword + * expr noeat + "a-zA-Z0-9_'" kw + +:operatorkw Operator + * expr noeat + +:kwtype Keyword + * kwtype1 noeat + +:kwtype1 Type + * expr noeat + "=" typeval recolor=-1 + "a-zA-Z0-9_'., :|*>\t\-" kwtype1 + "({" kwtype2 + +:kwtype2 Type + * expr noeat + ")}" kwtype1 + "a-zA-Z0-9_'., :|*>\t\n\-" kwtype2 + "({" kwtype3 + +:kwtype3 Type + * expr noeat + ")}" kwtype2 + "a-zA-Z0-9_'., :|*>\t\n\-" kwtype3 + "({" expr # too deep nesting + +:typeval Control + * type1 noeat + " \t\n" typeval + +:type1 Type + * expr noeat + "a-zA-Z0-9_'., :|*>\t\-" type1 + "({" type2 + +:type2 Type + * expr noeat + ")}" type1 + "a-zA-Z0-9_'., :|*>\t\n\-" type2 + "({" type3 + +:type3 Type + * expr noeat + ")}" type2 + "a-zA-Z0-9_'., :|*>\t\n\-" type3 + "({" type4 + +:type4 Type + * expr noeat + ")}" type3 + "a-zA-Z0-9_'., :|*>\t\n\-" type4 + "({" expr # too deep nesting + +:comment1 Comment + * comment1 + "(" nestcomment1 + "*" endcomment1 + +:nestcomment1 Comment + * comment1 + "*" comment2 + +:endcomment1 Comment + * comment1 + ")" expr + "*" endcomment1 + +:comment2 Comment + * comment2 + "(" nestcomment2 + "*" endcomment2 + +:nestcomment2 Comment + * comment2 + "*" comment3 + +:endcomment2 Comment + * comment2 + ")" comment1 + "*" endcomment2 + +:comment3 Comment + * comment3 + "(" nestcomment3 + "*" endcomment3 + +:nestcomment3 Comment + * comment3 + "*" expr # too deep nesting + +:endcomment3 Comment + * comment3 + ")" comment2 + "*" endcomment3 diff --git a/.joe/syntax/spec.jsf b/.joe/syntax/spec.jsf @@ -0,0 +1,149 @@ +# JOE syntax highlight file for RPM spec files +# from Suse, joe-3.5-20.src.rpm + +# some text sections are _very_ long (e.g. %changelog) +-4000 + +=Idle +=Colon blue +=Macro bold blue +=CtrlMacro bold cyan +=Comment green +=Variable cyan +=Text dim white +=Section red +=Shell magenta +=Shell2 bold magenta +=ShellCmd yellow +=ShellRedir bold yellow + +:idle Idle + * idle + "%" expr recolor=-1 + "\n" colident + "#" comment recolor=-1 + "$" shellexpr recolor=-1 + +:colident Colon + * idle noeat recolor=-100 + ":" idle + "A-Za-z0-9" colident + +:shellbracemagic Shell2 + * shellbraceexpr +:shellbraceexpr Shell + * shellexpr + "a-zA-Z_0-9 " shellbraceexpr + ":?!+-/" shellbracemagic noeat +:shellexpr Shell + * idle + "a-zA-Z_0-9" shellexpr + "{[" shellbraceexpr + "}]" idle + "(" shellexpr2 + ")" idle +:shellexpr2 Shell + * shellcmds recolor=-1 + "(" shellmath + ")" shellexpr noeat +:shellmathops Shell2 + * shellmath +:shellmathvar Shell2 + * shellmath + "a-zA-Z_0-9{}[]" shellmathvar +:shellmath Shell + * idle + "+=/%*-" shellmathops noeat + "0-9 " shellmath + "$" shellmathvar recolor=-1 + ")" shellexpr2 +:shellcmds ShellCmd + * shellcmds + "|&><" shellredirs noeat + ")" shellexpr recolor=-1 +:shellredirs ShellRedir + * shellcmds + +:expr Macro + * idle recolor=-1 + "%" idle + " \t" expr + "a-zA-Z_0-9" exprident recolor=-1 buffer + "{" exprvar recolor=-1 + "(" shellexpr noeat + +:exprident Variable + * idle noeat recolor=-1 strings + "define" define + "description" textsection + "changelog" textsection + "build" section + "install" section + "clean" section + "files" section + "package" section + "prep" section + "pre" section + "post" section + "postun" section + "preun" section + "setup" macro + "patch" macronum + "dir" macro + "config" macro + "doc" macro + "defattr" macro + "ifarch" ctrlmacro + "ifnarch" ctrlmacro + "endif" ctrlmacro + "else" ctrlmacro + "if" ctrlmacro +done + "a-zA-Z_" exprident + +:section Section + * idle + +:macronum Macro + * idle recolor=-1 + "0-9" macronum recolor=-1 + +:macro Macro + * idle recolor=-1 + +:ctrlmacro CtrlMacro + * idle recolor=-1 + +:define Macro + * defineident noeat recolor=-1 + " \t" define + "\n" idle noeat + +:defineident Variable + * defineident + " \t\n" idle noeat + +:exprvar Variable + * exprvar + "}" idle + +:textsection Section + * textsection2 noeat + +:textsection2 Idle + * textsection2 + "\n" textsection3 + +:textsection3 Text + * textsection3 + "%" textsection4 recolor=-1 + +:textsection4 Text + * expr noeat recolor=-2 + "%" textsection3 + +:comment Comment + * comment + "\n" idle noeat + + diff --git a/.joe/syntax/spec.jsf.in b/.joe/syntax/spec.jsf.in @@ -0,0 +1,149 @@ +# JOE syntax highlight file for RPM spec files +# from Suse, joe-3.5-20.src.rpm + +# some text sections are _very_ long (e.g. %changelog) +-4000 + +=Idle +=Colon blue +=Macro bold blue +=CtrlMacro bold cyan +=Comment green +=Variable cyan +=Text dim white +=Section red +=Shell magenta +=Shell2 bold magenta +=ShellCmd yellow +=ShellRedir bold yellow + +:idle Idle + * idle + "%" expr recolor=-1 + "\n" colident + "#" comment recolor=-1 + "$" shellexpr recolor=-1 + +:colident Colon + * idle noeat recolor=-100 + ":" idle + "A-Za-z0-9" colident + +:shellbracemagic Shell2 + * shellbraceexpr +:shellbraceexpr Shell + * shellexpr + "a-zA-Z_0-9 " shellbraceexpr + ":?!+-/" shellbracemagic noeat +:shellexpr Shell + * idle + "a-zA-Z_0-9" shellexpr + "{[" shellbraceexpr + "}]" idle + "(" shellexpr2 + ")" idle +:shellexpr2 Shell + * shellcmds recolor=-1 + "(" shellmath + ")" shellexpr noeat +:shellmathops Shell2 + * shellmath +:shellmathvar Shell2 + * shellmath + "a-zA-Z_0-9{}[]" shellmathvar +:shellmath Shell + * idle + "+=/%*-" shellmathops noeat + "0-9 " shellmath + "$" shellmathvar recolor=-1 + ")" shellexpr2 +:shellcmds ShellCmd + * shellcmds + "|&><" shellredirs noeat + ")" shellexpr recolor=-1 +:shellredirs ShellRedir + * shellcmds + +:expr Macro + * idle recolor=-1 + "%" idle + " \t" expr + "a-zA-Z_0-9" exprident recolor=-1 buffer + "{" exprvar recolor=-1 + "(" shellexpr noeat + +:exprident Variable + * idle noeat recolor=-1 strings + "define" define + "description" textsection + "changelog" textsection + "build" section + "install" section + "clean" section + "files" section + "package" section + "prep" section + "pre" section + "post" section + "postun" section + "preun" section + "setup" macro + "patch" macronum + "dir" macro + "config" macro + "doc" macro + "defattr" macro + "ifarch" ctrlmacro + "ifnarch" ctrlmacro + "endif" ctrlmacro + "else" ctrlmacro + "if" ctrlmacro +done + "a-zA-Z_" exprident + +:section Section + * idle + +:macronum Macro + * idle recolor=-1 + "0-9" macronum recolor=-1 + +:macro Macro + * idle recolor=-1 + +:ctrlmacro CtrlMacro + * idle recolor=-1 + +:define Macro + * defineident noeat recolor=-1 + " \t" define + "\n" idle noeat + +:defineident Variable + * defineident + " \t\n" idle noeat + +:exprvar Variable + * exprvar + "}" idle + +:textsection Section + * textsection2 noeat + +:textsection2 Idle + * textsection2 + "\n" textsection3 + +:textsection3 Text + * textsection3 + "%" textsection4 recolor=-1 + +:textsection4 Text + * expr noeat recolor=-2 + "%" textsection3 + +:comment Comment + * comment + "\n" idle noeat + + diff --git a/.joe/syntax/sql.jsf b/.joe/syntax/sql.jsf @@ -0,0 +1,470 @@ +# JOE syntax highlight file for SQL + +# See c.jsf for more documentation + +# Define no. sync lines +# You can say: +# -200 means 200 lines +# - means always start parsing from beginning of file when we lose sync +# if nothing is specified, the default is -50 +- + +=Idle +=Bad bold red +=Preproc blue +=Define bold blue +=Comment green +=IncLocal cyan +=IncSystem bold cyan +=Constant cyan +=Escape bold cyan +=Type bold +=Keyword bold +=CppKeyword bold +=Brace magenta +=Control + +:idle Idle + * idle + "\n" idle + "#" line_comment recolor=-1 + "/" slash + "-" dash + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." maybe_float + "\"" string recolor=-1 + "'" char recolor=-1 + "\i@" ident buffer + "{}" brace recolor=-1 + ",:;=()><[]*&|!~+%^" control recolor=-1 + +:brace Brace + * idle noeat + +:control Control + * idle noeat + +:slash Idle + * idle noeat recolor=-2 # Not sure about this + "*" comment recolor=-2 + "/" line_comment recolor=-2 + +:dash Idle + * idle noeat recolor=-2 # Not sure about this + "-" line_comment recolor=-2 + +:comment Comment + * comment + "*" maybe_end_comment + +:maybe_end_comment Comment + * comment + "/" idle + "*" maybe_end_comment + +:line_comment Comment + * line_comment + "\n" idle + +:first_digit Constant + * idle noeat + "xX" hex + "." float + "eE" epart + "0-7" octal + "89" bad_number recolor=-1 + +:bad_number Bad + * idle noeat + "0-9" bad_number + +:octal Constant + * idle noeat + "0-7" octal + "89" bad_number recolor=-1 + +:hex Constant + * idle noeat + "0-9A-Fa-f" hex + +:decimal Constant + * idle noeat + "0-9" decimal + "eE" epart + "." float + +:maybe_float Constant + * idle recolor=-2 noeat + "0-9" float recolor=-2 + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +:string Constant + * string + "\"" idle + "\\" string_escape recolor=-1 + "%" string_control recolor=-1 + +:string_escape Escape + * string + "x" string_hex1 + "0-7" string_octal2 + "\n" string recolor=-2 + +:string_hex1 Escape + * string noeat + "0-9a-fA-F" string_hex2 + +:string_hex2 Escape + * string noeat + "0-9a-fA-F" string + +:string_octal2 Escape + * string noeat + "0-7" string_octal3 + +:string_octal3 Escape + * string noeat + "0-7" string + +:string_control Escape + * string + "\"" string noeat + "\n" idle + "0-9.\-+ #hjILtz$" string_control + +:char Constant + * char + "\n" idle + "'" idle + "\\" char_escape recolor=-1 + +:char_escape Escape + * char + "x" char_hex1 + "0-7" char_octal2 + "\n" char recolor=-2 + +:char_hex1 Escape + * char noeat + "0-9a-fA-F" char_hex2 + +:char_hex2 Escape + * char noeat + "0-9a-fA-F" char + +:char_octal2 Escape + * char noeat + "0-7" char_octal3 + +:char_octal3 Escape + * char noeat + "0-7" char + +:ident Idle + * idle noeat istrings + "absolute" kw + "add" kw + "admindb" kw + "all" kw + "alphanumeric" kw + "alter" kw + "and" kw + "any" kw + "are" kw + "as" kw + "asc" kw + "assertion" kw + "authorization" kw + "autoincrement" kw + "avg" kw + "begin" kw + "between" kw + "binary" kw + "bit" kw + "bit_length" kw + "boolean" kw + "both" kw + "by" kw + "byte" kw + "cascade" kw + "catalog" kw + "char," kw + "character" kw + "character_length" kw + "char_length" kw + "check" kw + "clause" kw + "close" kw + "clustered" kw + "coalesce" kw + "collate" kw + "collation" kw + "column" kw + "commit" kw + "comp," kw + "compression" kw + "connect" kw + "connection" kw + "constraint," kw + "constraints" kw + "container" kw + "contains" kw + "convert" kw + "count" kw + "counter" kw + "create" kw + "currency" kw + "current_date" kw + "current_time" kw + "current_timestamp" kw + "current_user" kw + "cursor" kw + "d" kw + "database" kw + "date" kw + "datetime" kw + "day" kw + "dec," kw + "decimal" kw + "declare" kw + "delete" kw + "desc" kw + "disallow" kw + "disconnect" kw + "distinct" kw + "distinctrow" kw + "domain" kw + "double" kw + "drop" kw + "eqv" kw + "exclusiveconnect" kw + "exec," kw + "execute" kw + "exists" kw + "extract" kw + "false" kw + "fetch" kw + "first" kw + "float," kw + "float4" kw + "float8" kw + "foreign" kw + "from" kw + "general" kw + "grant" kw + "group" kw + "guid" kw + "having" kw + "hour" kw + "i" kw + "identity" kw + "ieeedouble" kw + "ieeesingle" kw + "ignore" kw + "image" kw + "imp" kw + "in" kw + "in" kw + "index" kw + "indexcreatedb" kw + "inner" kw + "input" kw + "insensitive" kw + "insert" kw + "int," kw + "integer," kw + "integer1" kw + "integer2" kw + "integer4" kw + "interval" kw + "into" kw + "is" kw + "isolation" kw + "join" kw + "key" kw + "language" kw + "last" kw + "left" kw + "level" kw + "like" kw + "logical," kw + "logical1" kw + "long" kw + "longbinary" kw + "longchar" kw + "longtext" kw + "lower" kw + "match" kw + "max" kw + "memo" kw + "min" kw + "minute" kw + "mod" kw + "money" kw + "month" kw + "national" kw + "nchar" kw + "nonclustered" kw + "not" kw + "ntext" kw + "null" kw + "number" kw + "numeric" kw + "nvarchar" kw + "octet_length" kw + "oleobject" kw + "on" kw + "open" kw + "option" kw + "or" kw + "order" kw + "outer" kw + "output" kw + "owneraccess" kw + "pad" kw + "parameters" kw + "partial" kw + "password" kw + "percent" kw + "pivot" kw + "position" kw + "precision" kw + "prepare" kw + "primary" kw + "privileges" kw + "proc," kw + "procedure" kw + "public" kw + "real" kw + "references" kw + "restrict" kw + "revoke" kw + "right" kw + "rollback" kw + "schema" kw + "second" kw + "select" kw + "selectschema" kw + "selectsecurity" kw + "set" kw + "short" kw + "single" kw + "size" kw + "smalldatetime" kw + "smallint" kw + "smallmoney" kw + "some" kw + "space" kw + "sql" kw + "sqlcode," kw + "sqlerror," kw + "sqlstate" kw + "stdev" kw + "stdevp" kw + "string" kw + "substring" kw + "sum" kw + "sysname" kw + "system_user" kw + "table" kw + "tableid" kw + "temporary" kw + "text" kw + "time" kw + "timestamp" kw + "timezone_hour" kw + "timezone_minute" kw + "tinyint" kw + "to" kw + "top" kw + "trailing" kw + "transaction" kw + "transform" kw + "translate" kw + "translation" kw + "trim" kw + "true" kw + "union" kw + "unique" kw + "uniqueidentifier" kw + "unknown" kw + "update" kw + "updateidentity" kw + "updateowner" kw + "updatesecurity" kw + "upper" kw + "usage" kw + "user" kw + "using" kw + "value" kw + "values" kw + "var" kw + "varbinary" kw + "varchar" kw + "varp" kw + "varying" kw + "view" kw + "when" kw + "whenever" kw + "where" kw + "with" kw + "work" kw + "xor" kw + "year" kw + "yesno" kw + "zone" kw + "begin" kw + "end" kw +# T-SQl + "if" kw + "then" kw + "else" kw + "print" kw + "case" kw + "go" kw + "cross" kw + "exec" kw + "use" kw +# mysql + "int" kw + "char" kw + "default" kw + "type" kw + "float" kw + "begint" kw + "mediumint" kw + "longint" kw + "blob" kw + "tinyblob" kw + "mediumblob" kw + "longblob" kw + "tinytext" kw + "mediumtext" kw + "longtext" kw + "show" kw + "explain" kw + "enum" kw +done + "\c" ident + +:type Type + * idle noeat + +:kw Keyword + * idle noeat + +:cppkw CppKeyword + * idle noeat diff --git a/.joe/syntax/sql.jsf.in b/.joe/syntax/sql.jsf.in @@ -0,0 +1,470 @@ +# JOE syntax highlight file for SQL + +# See c.jsf for more documentation + +# Define no. sync lines +# You can say: +# -200 means 200 lines +# - means always start parsing from beginning of file when we lose sync +# if nothing is specified, the default is -50 +- + +=Idle +=Bad bold red +=Preproc blue +=Define bold blue +=Comment green +=IncLocal cyan +=IncSystem bold cyan +=Constant cyan +=Escape bold cyan +=Type bold +=Keyword bold +=CppKeyword bold +=Brace magenta +=Control + +:idle Idle + * idle + "\n" idle + "#" line_comment recolor=-1 + "/" slash + "-" dash + "0" first_digit recolor=-1 + "1-9" decimal recolor=-1 + "." maybe_float + "\"" string recolor=-1 + "'" char recolor=-1 + "\i@" ident buffer + "{}" brace recolor=-1 + ",:;=()><[]*&|!~+%^" control recolor=-1 + +:brace Brace + * idle noeat + +:control Control + * idle noeat + +:slash Idle + * idle noeat recolor=-2 # Not sure about this + "*" comment recolor=-2 + "/" line_comment recolor=-2 + +:dash Idle + * idle noeat recolor=-2 # Not sure about this + "-" line_comment recolor=-2 + +:comment Comment + * comment + "*" maybe_end_comment + +:maybe_end_comment Comment + * comment + "/" idle + "*" maybe_end_comment + +:line_comment Comment + * line_comment + "\n" idle + +:first_digit Constant + * idle noeat + "xX" hex + "." float + "eE" epart + "0-7" octal + "89" bad_number recolor=-1 + +:bad_number Bad + * idle noeat + "0-9" bad_number + +:octal Constant + * idle noeat + "0-7" octal + "89" bad_number recolor=-1 + +:hex Constant + * idle noeat + "0-9A-Fa-f" hex + +:decimal Constant + * idle noeat + "0-9" decimal + "eE" epart + "." float + +:maybe_float Constant + * idle recolor=-2 noeat + "0-9" float recolor=-2 + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +:string Constant + * string + "\"" idle + "\\" string_escape recolor=-1 + "%" string_control recolor=-1 + +:string_escape Escape + * string + "x" string_hex1 + "0-7" string_octal2 + "\n" string recolor=-2 + +:string_hex1 Escape + * string noeat + "0-9a-fA-F" string_hex2 + +:string_hex2 Escape + * string noeat + "0-9a-fA-F" string + +:string_octal2 Escape + * string noeat + "0-7" string_octal3 + +:string_octal3 Escape + * string noeat + "0-7" string + +:string_control Escape + * string + "\"" string noeat + "\n" idle + "0-9.\-+ #hjILtz$" string_control + +:char Constant + * char + "\n" idle + "'" idle + "\\" char_escape recolor=-1 + +:char_escape Escape + * char + "x" char_hex1 + "0-7" char_octal2 + "\n" char recolor=-2 + +:char_hex1 Escape + * char noeat + "0-9a-fA-F" char_hex2 + +:char_hex2 Escape + * char noeat + "0-9a-fA-F" char + +:char_octal2 Escape + * char noeat + "0-7" char_octal3 + +:char_octal3 Escape + * char noeat + "0-7" char + +:ident Idle + * idle noeat istrings + "absolute" kw + "add" kw + "admindb" kw + "all" kw + "alphanumeric" kw + "alter" kw + "and" kw + "any" kw + "are" kw + "as" kw + "asc" kw + "assertion" kw + "authorization" kw + "autoincrement" kw + "avg" kw + "begin" kw + "between" kw + "binary" kw + "bit" kw + "bit_length" kw + "boolean" kw + "both" kw + "by" kw + "byte" kw + "cascade" kw + "catalog" kw + "char," kw + "character" kw + "character_length" kw + "char_length" kw + "check" kw + "clause" kw + "close" kw + "clustered" kw + "coalesce" kw + "collate" kw + "collation" kw + "column" kw + "commit" kw + "comp," kw + "compression" kw + "connect" kw + "connection" kw + "constraint," kw + "constraints" kw + "container" kw + "contains" kw + "convert" kw + "count" kw + "counter" kw + "create" kw + "currency" kw + "current_date" kw + "current_time" kw + "current_timestamp" kw + "current_user" kw + "cursor" kw + "d" kw + "database" kw + "date" kw + "datetime" kw + "day" kw + "dec," kw + "decimal" kw + "declare" kw + "delete" kw + "desc" kw + "disallow" kw + "disconnect" kw + "distinct" kw + "distinctrow" kw + "domain" kw + "double" kw + "drop" kw + "eqv" kw + "exclusiveconnect" kw + "exec," kw + "execute" kw + "exists" kw + "extract" kw + "false" kw + "fetch" kw + "first" kw + "float," kw + "float4" kw + "float8" kw + "foreign" kw + "from" kw + "general" kw + "grant" kw + "group" kw + "guid" kw + "having" kw + "hour" kw + "i" kw + "identity" kw + "ieeedouble" kw + "ieeesingle" kw + "ignore" kw + "image" kw + "imp" kw + "in" kw + "in" kw + "index" kw + "indexcreatedb" kw + "inner" kw + "input" kw + "insensitive" kw + "insert" kw + "int," kw + "integer," kw + "integer1" kw + "integer2" kw + "integer4" kw + "interval" kw + "into" kw + "is" kw + "isolation" kw + "join" kw + "key" kw + "language" kw + "last" kw + "left" kw + "level" kw + "like" kw + "logical," kw + "logical1" kw + "long" kw + "longbinary" kw + "longchar" kw + "longtext" kw + "lower" kw + "match" kw + "max" kw + "memo" kw + "min" kw + "minute" kw + "mod" kw + "money" kw + "month" kw + "national" kw + "nchar" kw + "nonclustered" kw + "not" kw + "ntext" kw + "null" kw + "number" kw + "numeric" kw + "nvarchar" kw + "octet_length" kw + "oleobject" kw + "on" kw + "open" kw + "option" kw + "or" kw + "order" kw + "outer" kw + "output" kw + "owneraccess" kw + "pad" kw + "parameters" kw + "partial" kw + "password" kw + "percent" kw + "pivot" kw + "position" kw + "precision" kw + "prepare" kw + "primary" kw + "privileges" kw + "proc," kw + "procedure" kw + "public" kw + "real" kw + "references" kw + "restrict" kw + "revoke" kw + "right" kw + "rollback" kw + "schema" kw + "second" kw + "select" kw + "selectschema" kw + "selectsecurity" kw + "set" kw + "short" kw + "single" kw + "size" kw + "smalldatetime" kw + "smallint" kw + "smallmoney" kw + "some" kw + "space" kw + "sql" kw + "sqlcode," kw + "sqlerror," kw + "sqlstate" kw + "stdev" kw + "stdevp" kw + "string" kw + "substring" kw + "sum" kw + "sysname" kw + "system_user" kw + "table" kw + "tableid" kw + "temporary" kw + "text" kw + "time" kw + "timestamp" kw + "timezone_hour" kw + "timezone_minute" kw + "tinyint" kw + "to" kw + "top" kw + "trailing" kw + "transaction" kw + "transform" kw + "translate" kw + "translation" kw + "trim" kw + "true" kw + "union" kw + "unique" kw + "uniqueidentifier" kw + "unknown" kw + "update" kw + "updateidentity" kw + "updateowner" kw + "updatesecurity" kw + "upper" kw + "usage" kw + "user" kw + "using" kw + "value" kw + "values" kw + "var" kw + "varbinary" kw + "varchar" kw + "varp" kw + "varying" kw + "view" kw + "when" kw + "whenever" kw + "where" kw + "with" kw + "work" kw + "xor" kw + "year" kw + "yesno" kw + "zone" kw + "begin" kw + "end" kw +# T-SQl + "if" kw + "then" kw + "else" kw + "print" kw + "case" kw + "go" kw + "cross" kw + "exec" kw + "use" kw +# mysql + "int" kw + "char" kw + "default" kw + "type" kw + "float" kw + "begint" kw + "mediumint" kw + "longint" kw + "blob" kw + "tinyblob" kw + "mediumblob" kw + "longblob" kw + "tinytext" kw + "mediumtext" kw + "longtext" kw + "show" kw + "explain" kw + "enum" kw +done + "\c" ident + +:type Type + * idle noeat + +:kw Keyword + * idle noeat + +:cppkw CppKeyword + * idle noeat diff --git a/.joe/syntax/swift.jsf b/.joe/syntax/swift.jsf @@ -0,0 +1,280 @@ +# JOE syntax highlight file for Swift + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Operator bold +=Keyword bold +=Bad bold red +=Rsvd + +:pre_idle Idle + * NULL noeat call=.swift() + +.subr swift + +:idle Idle + * idle + "(" idle call=.swift(paren) + "[" idle call=.swift(brack) + "{" idle call=.swift(squiggly) +.ifdef paren + ")" idle return +.else + ")" stray recolor=-1 +.endif +.ifdef brack + "]" idle return +.else + "]" stray recolor=-1 +.endif +.ifdef squiggly + "}" idle return +.else + "}" stray recolor=-1 +.endif + "0" zero recolor=-1 + "1-9" decimal recolor=-1 + "." decimal_point recolor=-1 + "\"" string recolor=-1 + "/" slash recolor=-1 + "@$\i" ident buffer + +:stray Bad + * idle + +# Comments + +:slash Comment + * idle noeat recolor=-2 + "/" line_comment + "*" idle call=.block_comment() + +:line_comment Comment + * line_comment + "\n" idle + +# Numbers + +:bad_number Bad + * idle noeat + "0-9" bad_number + +:zero Constant + * idle noeat + "b" binary + "o" octal + "x" hex + "." maybe_float + "eE" epart + "0-9_" decimal recolor=-1 + +:decimal_point Constant + * idle noeat recolor=-2 + "." decimal_point_1 recolor=-2 + "\i" not_ident recolor=-2 + "0-9_" float + +:not_ident Idle + * idle noeat + "\c" not_ident + +:decimal_point_1 Idle + * idle noeat + "." idle + +:octal Constant + * idle noeat + "0-7_" octal + "89" bad_number recolor=-1 + +:binary Constant + * idle noeat + "01_" binary + "2-9" bad_number recolor=-1 + +:hex Constant + * idle noeat + "0-9A-Fa-f_" hex + "." hexfloat + "pP" ppart + +:hexfloat Constant + * idle noeat + "0-9A-Fa-f_" hexfloat + "pP" ppart + +:ppart Constant + * idle noeat + "0-9+\-" pnum + +:pnum Constant + * idle noeat + "0-9_" pnum + +:decimal Constant + * idle noeat + "0-9_" decimal + "eE" epart + "." maybe_float + +:maybe_float Constant + * idle noeat recolor=-2 + "." decimal_point_1 recolor=-2 + "eE" epart + "0-9_" float + +:float Constant + * idle noeat + "eE" epart + "0-9_" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9_" enum + +# Strings + +:string Constant + * string + "\"" idle + "\\" string_escape recolor=-1 + +:string_escape Escape + * string + "(" string call=.swift(paren) recolor=-2 + "u" string_maybe_uni + +:string_maybe_uni Escape + * string + "{" string_uni + +:string_uni Escape + * string_uni + "}" string + +# Identifiers + +:ident Idle + * idle noeat strings + "class" kw + "deinit" kw + "enum" kw + "extension" kw + "func" kw + "import" kw + "init" kw + "inout" kw + "internal" kw + "let" kw + "operator" kw + "private" kw + "protocol" kw + "public" kw + "static" kw + "struct" kw + "subscript" kw + "typealias" kw + "var" kw + "break" kw + "case" kw + "continue" kw + "default" kw + "defer" kw + "do" kw + "else" kw + "fallthrough" kw + "for" kw + "guard" kw + "if" kw + "in" kw + "repeat" kw + "return" kw + "switch" kw + "where" kw + "while" kw + "as" kw + "catch" kw + "dynamicType" kw + "false" lit + "is" kw + "nil" lit + "rethrows" kw + "super" kw + "self" kw + "Self" kw + "throw" kw + "throws" kw + "true" lit + "try" kw + "__COLUMN__" kw + "__FILE__" kw + "__FUNCTION__" kw + "__LINE__" kw + "_" kw + "associativity" rsvd + "convenience" rsvd + "dynamic" rsvd + "didSet" rsvd + "final" rsvd + "get" rsvd + "infix" rsvd + "indirect" rsvd + "lazy" rsvd + "left" rsvd + "mutating" rsvd + "none" rsvd + "nonmutating" rsvd + "optional" rsvd + "override" rsvd + "postfix" rsvd + "precedence" rsvd + "prefix" rsvd + "Protocol" rsvd + "required" rsvd + "right" rsvd + "set" rsvd + "Type" rsvd + "unowned" rsvd + "weak" rsvd + "willSet" rsvd +done + "$\c" ident + +:kw Keyword + * idle noeat + +:rsvd Rsvd + * idle noeat + +:lit Constant + * idle noeat + +:operator Operator + * idle noeat + +.end + +# Recursive block comments + +.subr block_comment + +:idle Comment + * idle + "*" maybe_done + "/" maybe_recur + +:maybe_done Comment + * idle noeat + "/" idle return + +:maybe_recur Comment + * idle noeat + "*" idle call=.block_comment() + +.end diff --git a/.joe/syntax/swift.jsf.in b/.joe/syntax/swift.jsf.in @@ -0,0 +1,280 @@ +# JOE syntax highlight file for Swift + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Operator bold +=Keyword bold +=Bad bold red +=Rsvd + +:pre_idle Idle + * NULL noeat call=.swift() + +.subr swift + +:idle Idle + * idle + "(" idle call=.swift(paren) + "[" idle call=.swift(brack) + "{" idle call=.swift(squiggly) +.ifdef paren + ")" idle return +.else + ")" stray recolor=-1 +.endif +.ifdef brack + "]" idle return +.else + "]" stray recolor=-1 +.endif +.ifdef squiggly + "}" idle return +.else + "}" stray recolor=-1 +.endif + "0" zero recolor=-1 + "1-9" decimal recolor=-1 + "." decimal_point recolor=-1 + "\"" string recolor=-1 + "/" slash recolor=-1 + "@$\i" ident buffer + +:stray Bad + * idle + +# Comments + +:slash Comment + * idle noeat recolor=-2 + "/" line_comment + "*" idle call=.block_comment() + +:line_comment Comment + * line_comment + "\n" idle + +# Numbers + +:bad_number Bad + * idle noeat + "0-9" bad_number + +:zero Constant + * idle noeat + "b" binary + "o" octal + "x" hex + "." maybe_float + "eE" epart + "0-9_" decimal recolor=-1 + +:decimal_point Constant + * idle noeat recolor=-2 + "." decimal_point_1 recolor=-2 + "\i" not_ident recolor=-2 + "0-9_" float + +:not_ident Idle + * idle noeat + "\c" not_ident + +:decimal_point_1 Idle + * idle noeat + "." idle + +:octal Constant + * idle noeat + "0-7_" octal + "89" bad_number recolor=-1 + +:binary Constant + * idle noeat + "01_" binary + "2-9" bad_number recolor=-1 + +:hex Constant + * idle noeat + "0-9A-Fa-f_" hex + "." hexfloat + "pP" ppart + +:hexfloat Constant + * idle noeat + "0-9A-Fa-f_" hexfloat + "pP" ppart + +:ppart Constant + * idle noeat + "0-9+\-" pnum + +:pnum Constant + * idle noeat + "0-9_" pnum + +:decimal Constant + * idle noeat + "0-9_" decimal + "eE" epart + "." maybe_float + +:maybe_float Constant + * idle noeat recolor=-2 + "." decimal_point_1 recolor=-2 + "eE" epart + "0-9_" float + +:float Constant + * idle noeat + "eE" epart + "0-9_" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9_" enum + +# Strings + +:string Constant + * string + "\"" idle + "\\" string_escape recolor=-1 + +:string_escape Escape + * string + "(" string call=.swift(paren) recolor=-2 + "u" string_maybe_uni + +:string_maybe_uni Escape + * string + "{" string_uni + +:string_uni Escape + * string_uni + "}" string + +# Identifiers + +:ident Idle + * idle noeat strings + "class" kw + "deinit" kw + "enum" kw + "extension" kw + "func" kw + "import" kw + "init" kw + "inout" kw + "internal" kw + "let" kw + "operator" kw + "private" kw + "protocol" kw + "public" kw + "static" kw + "struct" kw + "subscript" kw + "typealias" kw + "var" kw + "break" kw + "case" kw + "continue" kw + "default" kw + "defer" kw + "do" kw + "else" kw + "fallthrough" kw + "for" kw + "guard" kw + "if" kw + "in" kw + "repeat" kw + "return" kw + "switch" kw + "where" kw + "while" kw + "as" kw + "catch" kw + "dynamicType" kw + "false" lit + "is" kw + "nil" lit + "rethrows" kw + "super" kw + "self" kw + "Self" kw + "throw" kw + "throws" kw + "true" lit + "try" kw + "__COLUMN__" kw + "__FILE__" kw + "__FUNCTION__" kw + "__LINE__" kw + "_" kw + "associativity" rsvd + "convenience" rsvd + "dynamic" rsvd + "didSet" rsvd + "final" rsvd + "get" rsvd + "infix" rsvd + "indirect" rsvd + "lazy" rsvd + "left" rsvd + "mutating" rsvd + "none" rsvd + "nonmutating" rsvd + "optional" rsvd + "override" rsvd + "postfix" rsvd + "precedence" rsvd + "prefix" rsvd + "Protocol" rsvd + "required" rsvd + "right" rsvd + "set" rsvd + "Type" rsvd + "unowned" rsvd + "weak" rsvd + "willSet" rsvd +done + "$\c" ident + +:kw Keyword + * idle noeat + +:rsvd Rsvd + * idle noeat + +:lit Constant + * idle noeat + +:operator Operator + * idle noeat + +.end + +# Recursive block comments + +.subr block_comment + +:idle Comment + * idle + "*" maybe_done + "/" maybe_recur + +:maybe_done Comment + * idle noeat + "/" idle return + +:maybe_recur Comment + * idle noeat + "*" idle call=.block_comment() + +.end diff --git a/.joe/syntax/tcl.jsf b/.joe/syntax/tcl.jsf @@ -0,0 +1,262 @@ +# JOE syntax highlight file for TCL + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Keyword bold +=Subst magenta +=SubstEscape bold magenta + +:reset Idle + * command noeat + "#" comment recolor=-1 + " \t}" reset + +:comment Comment + * comment + "\n" reset + +:command Idle + * ident buffer + "\"" string recolor=-1 + "\n" reset + ";[{" reset + +:args Idle + * args + ";[{\n" reset + "\\" quote recolor=-1 + "\"" string recolor=-1 + +:quote Escape + * args + +:string Constant + * string + "\\" escape recolor=-1 + "\"" args + "$" subst recolor=-1 + +:escape Escape + * string + "0-7" octal2 + "x" hex1 + "u" unicode1 + +:octal2 Escape + * string noeat + "0-7" octal3 + +:octal3 Escape + * string noeat + "0-7" string + +:unicode1 Escape + * string noeat + "0-9a-fA-F" unicode2 + +:unicode2 Escape + * string noeat + "0-9a-fA-F" hex1 + +:hex1 Escape + * string noeat + "0-9a-fA-F" hex2 + +:hex2 Escape + * string noeat + "0-9a-fA-F" string + +:subst SubstEscape + * string noeat recolor=-2 + "a-zA-Z0-9_:" substrest recolor=-1 + "{" substbrack recolor=-1 + +:substrest Subst + * string noeat + "a-zA-Z0-9_:" substrest + "(" index + +:substbrack Subst + * substbrack + "}" string + +:index Subst + * index + ")" string + +:ident Idle + * ident + " \t\n;}]" args noeat strings + "after" kw + "alarm" kw + "append" kw + "array" kw + "auto_commands" kw + "auto_execok" kw + "auto_import" kw + "auto_load" kw + "auto_load_index" kw + "auto_load_pkg" kw + "auto_packages" kw + "auto_qualify" kw + "binary" kw + "break" kw + "bsearch" kw + "case" kw + "catch" kw + "catclose" kw + "catgets" kw + "catopen" kw + "ccollate" kw + "cconcat" kw + "cd" kw + "cequal" kw + "chgrp" kw + "chmod" kw + "chown" kw + "chroot" kw + "cindex" kw + "clength" kw + "clock" kw + "close" kw + "cmdtrace" kw + "commandloop" kw + "concat" kw + "continue" kw + "crange" kw + "csubstr" kw + "ctoken" kw + "ctype" kw + "dup" kw + "echo" kw + "else" kw + "encoding" kw + "eof" kw + "error" kw + "eval" kw + "exec" kw + "execl" kw + "exit" kw + "expr" kw + "fblocked" kw + "fcntl" kw + "fconfigure" kw + "fcopy" kw + "file" kw + "fileevent" kw + "flock" kw + "flush" kw + "for" kw + "foreach" kw + "fork" kw + "format" kw + "fstat" kw + "ftruncate" kw + "funlock" kw + "gets" kw + "glob" kw + "global" kw + "history" kw + "host_info" kw + "id" kw + "if" kw + "incr" kw + "info" kw + "infox" kw + "interp" kw + "join" kw + "keyldel" kw + "keylget" kw + "keylkeys" kw + "keylset" kw + "kill" kw + "lappend" kw + "lassign" kw + "lcontain" kw + "lempty" kw + "lgets" kw + "lindex" kw + "link" kw + "linsert" kw + "list" kw + "llength" kw + "lmatch" kw + "load" kw + "loadlibindex" kw + "loop" kw + "lrange" kw + "lreplace" kw + "lsearch" kw + "lset" kw + "lsort" kw + "lvarcat" kw + "lvarpop" kw + "lvarpush" kw + "max" kw + "min" kw + "namespace" kw + "nice" kw + "open" kw + "package" kw + "pid" kw + "pipe" kw + "proc" kw + "profile" kw + "puts" kw + "pwd" kw + "random" kw + "read" kw + "readdir" kw + "regexp" kw + "regsub" kw + "rename" kw + "replicate" kw + "return" kw + "scan" kw + "scancontext" kw + "scanfile" kw + "scanmatch" kw + "seek" kw + "select" kw + "server_accept" kw + "server_create" kw + "set" kw + "signal" kw + "sleep" kw + "socket" kw + "source" kw + "split" kw + "string" kw + "subst" kw + "switch" kw + "sync" kw + "system" kw + "tclLog" kw + "tclx_findinit" kw + "tclx_fork" kw + "tclx_load_tndxs" kw + "tclx_sleep" kw + "tclx_system" kw + "tclx_wait" kw + "tell" kw + "time" kw + "times" kw + "trace" kw + "translit" kw + "try_eval" kw + "umask" kw + "unknown" kw + "unset" kw + "update" kw + "uplevel" kw + "upvar" kw + "variable" kw + "vwait" kw + "wait" kw + "while" kw +done + +:kw Keyword + * args noeat diff --git a/.joe/syntax/tcl.jsf.in b/.joe/syntax/tcl.jsf.in @@ -0,0 +1,262 @@ +# JOE syntax highlight file for TCL + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Keyword bold +=Subst magenta +=SubstEscape bold magenta + +:reset Idle + * command noeat + "#" comment recolor=-1 + " \t}" reset + +:comment Comment + * comment + "\n" reset + +:command Idle + * ident buffer + "\"" string recolor=-1 + "\n" reset + ";[{" reset + +:args Idle + * args + ";[{\n" reset + "\\" quote recolor=-1 + "\"" string recolor=-1 + +:quote Escape + * args + +:string Constant + * string + "\\" escape recolor=-1 + "\"" args + "$" subst recolor=-1 + +:escape Escape + * string + "0-7" octal2 + "x" hex1 + "u" unicode1 + +:octal2 Escape + * string noeat + "0-7" octal3 + +:octal3 Escape + * string noeat + "0-7" string + +:unicode1 Escape + * string noeat + "0-9a-fA-F" unicode2 + +:unicode2 Escape + * string noeat + "0-9a-fA-F" hex1 + +:hex1 Escape + * string noeat + "0-9a-fA-F" hex2 + +:hex2 Escape + * string noeat + "0-9a-fA-F" string + +:subst SubstEscape + * string noeat recolor=-2 + "a-zA-Z0-9_:" substrest recolor=-1 + "{" substbrack recolor=-1 + +:substrest Subst + * string noeat + "a-zA-Z0-9_:" substrest + "(" index + +:substbrack Subst + * substbrack + "}" string + +:index Subst + * index + ")" string + +:ident Idle + * ident + " \t\n;}]" args noeat strings + "after" kw + "alarm" kw + "append" kw + "array" kw + "auto_commands" kw + "auto_execok" kw + "auto_import" kw + "auto_load" kw + "auto_load_index" kw + "auto_load_pkg" kw + "auto_packages" kw + "auto_qualify" kw + "binary" kw + "break" kw + "bsearch" kw + "case" kw + "catch" kw + "catclose" kw + "catgets" kw + "catopen" kw + "ccollate" kw + "cconcat" kw + "cd" kw + "cequal" kw + "chgrp" kw + "chmod" kw + "chown" kw + "chroot" kw + "cindex" kw + "clength" kw + "clock" kw + "close" kw + "cmdtrace" kw + "commandloop" kw + "concat" kw + "continue" kw + "crange" kw + "csubstr" kw + "ctoken" kw + "ctype" kw + "dup" kw + "echo" kw + "else" kw + "encoding" kw + "eof" kw + "error" kw + "eval" kw + "exec" kw + "execl" kw + "exit" kw + "expr" kw + "fblocked" kw + "fcntl" kw + "fconfigure" kw + "fcopy" kw + "file" kw + "fileevent" kw + "flock" kw + "flush" kw + "for" kw + "foreach" kw + "fork" kw + "format" kw + "fstat" kw + "ftruncate" kw + "funlock" kw + "gets" kw + "glob" kw + "global" kw + "history" kw + "host_info" kw + "id" kw + "if" kw + "incr" kw + "info" kw + "infox" kw + "interp" kw + "join" kw + "keyldel" kw + "keylget" kw + "keylkeys" kw + "keylset" kw + "kill" kw + "lappend" kw + "lassign" kw + "lcontain" kw + "lempty" kw + "lgets" kw + "lindex" kw + "link" kw + "linsert" kw + "list" kw + "llength" kw + "lmatch" kw + "load" kw + "loadlibindex" kw + "loop" kw + "lrange" kw + "lreplace" kw + "lsearch" kw + "lset" kw + "lsort" kw + "lvarcat" kw + "lvarpop" kw + "lvarpush" kw + "max" kw + "min" kw + "namespace" kw + "nice" kw + "open" kw + "package" kw + "pid" kw + "pipe" kw + "proc" kw + "profile" kw + "puts" kw + "pwd" kw + "random" kw + "read" kw + "readdir" kw + "regexp" kw + "regsub" kw + "rename" kw + "replicate" kw + "return" kw + "scan" kw + "scancontext" kw + "scanfile" kw + "scanmatch" kw + "seek" kw + "select" kw + "server_accept" kw + "server_create" kw + "set" kw + "signal" kw + "sleep" kw + "socket" kw + "source" kw + "split" kw + "string" kw + "subst" kw + "switch" kw + "sync" kw + "system" kw + "tclLog" kw + "tclx_findinit" kw + "tclx_fork" kw + "tclx_load_tndxs" kw + "tclx_sleep" kw + "tclx_system" kw + "tclx_wait" kw + "tell" kw + "time" kw + "times" kw + "trace" kw + "translit" kw + "try_eval" kw + "umask" kw + "unknown" kw + "unset" kw + "update" kw + "uplevel" kw + "upvar" kw + "variable" kw + "vwait" kw + "wait" kw + "while" kw +done + +:kw Keyword + * args noeat diff --git a/.joe/syntax/tex.jsf b/.joe/syntax/tex.jsf @@ -0,0 +1,82 @@ +# joe [La]TeX syntax highlighting + +=Idle +=Comment green +=Keyword bold +=Mathmode cyan +=Brace magenta +=Parameter bold blue +=Bad bold red + +:idle Idle + * idle + "%" comment recolor=-1 + "$" math recolor=-1 + "\\" command recolor=-1 + "{[]}" brace recolor=-1 + "#" parameter recolor=-1 + +:comment Comment + * comment + # might be TODO label + "BFHNTX" comment noeat call=comment_todo.comment_todo() + "\n" idle + +:math Mathmode + * math + "\\" math_command recolor=-1 + "{[]}" math_brace recolor=-1 + "$" idle + +:math_command Keyword + * math + "a-zA-Z@" math_command2 + +:math_command2 Keyword + * math noeat + "a-zA-Z@" math_command2 + +:parameter Parameter + * idle noeat + "0-9" idle + +:brace Brace + * idle noeat + +:math_brace Brace + * math noeat + +:command Keyword + * idle + "a-zA-Z@" command2 buffer + +:command2 Keyword + * idle noeat strings +# "begin" env_begin + "verb" verbatim +done + "a-zA-Z@" command2 + +:verbatim Keyword + * verbatim1 save_c + +:verbatim1 Idle + * verbatim1 + & end_verbatim recolor=-1 + +:end_verbatim Keyword + * idle noeat + +#:env_begin Keyword +# * env_begin1 noeat + +#:env_begin1 Idle +# * env_begin1 +# "{" env_begin_brace recolor=-1 + +#:env_begin_brace Brace +# * env_begin_name noeat buffer + +#:env_begin_name Bad +# * env_begin_name +# "}" idle noeat diff --git a/.joe/syntax/tex.jsf.in b/.joe/syntax/tex.jsf.in @@ -0,0 +1,82 @@ +# joe [La]TeX syntax highlighting + +=Idle +=Comment green +=Keyword bold +=Mathmode cyan +=Brace magenta +=Parameter bold blue +=Bad bold red + +:idle Idle + * idle + "%" comment recolor=-1 + "$" math recolor=-1 + "\\" command recolor=-1 + "{[]}" brace recolor=-1 + "#" parameter recolor=-1 + +:comment Comment + * comment + # might be TODO label + "BFHNTX" comment noeat call=comment_todo.comment_todo() + "\n" idle + +:math Mathmode + * math + "\\" math_command recolor=-1 + "{[]}" math_brace recolor=-1 + "$" idle + +:math_command Keyword + * math + "a-zA-Z@" math_command2 + +:math_command2 Keyword + * math noeat + "a-zA-Z@" math_command2 + +:parameter Parameter + * idle noeat + "0-9" idle + +:brace Brace + * idle noeat + +:math_brace Brace + * math noeat + +:command Keyword + * idle + "a-zA-Z@" command2 buffer + +:command2 Keyword + * idle noeat strings +# "begin" env_begin + "verb" verbatim +done + "a-zA-Z@" command2 + +:verbatim Keyword + * verbatim1 save_c + +:verbatim1 Idle + * verbatim1 + & end_verbatim recolor=-1 + +:end_verbatim Keyword + * idle noeat + +#:env_begin Keyword +# * env_begin1 noeat + +#:env_begin1 Idle +# * env_begin1 +# "{" env_begin_brace recolor=-1 + +#:env_begin_brace Brace +# * env_begin_name noeat buffer + +#:env_begin_name Bad +# * env_begin_name +# "}" idle noeat diff --git a/.joe/syntax/troff.jsf b/.joe/syntax/troff.jsf @@ -0,0 +1,82 @@ +# Syntax file for Troff + +=Idle +=Comment green +=Escape magenta +=Command bold +=Bad red + +# First character of line + +:first Idle + * rest noeat + ".'" command_1 + +:rest Idle + * rest + "\n" first + "\\" escape recolor=-1 + +:command_1 Command + * rest noeat + " " command_1 + "a-zA-Z_" command_2 + +:command_2 Command + * rest + "a-zA-Z0-9_" command_done recolor=-1 + +:command_done Command + * rest noeat + +:escape Escape + * bad recolor=-2 + "-\\e'`. 0|^&!%acdprtu{}" rest + "*fgn" name + "k" reg + "z" reg + "(" name2 + "$s" num + "bCDhHlLNoSvwxX" str + "\n" first + "\"" comment recolor=-2 + +# A name: ( means two characters + +:name Escape + * rest + "(" name2 + +# Two character name + +:name2 Escape + * reg + +# One character name + +:reg Escape + * rest + +# String + +:str Escape + * bad recolor=-1 + "'" str_body + +:str_body Escape + * str_body + "\n" first + "'" rest + +# Number + +:num Escape + * rest noeat + "-+0-9" num + +:comment Comment + * comment + "\n" first + +:bad Bad + * rest noeat diff --git a/.joe/syntax/troff.jsf.in b/.joe/syntax/troff.jsf.in @@ -0,0 +1,82 @@ +# Syntax file for Troff + +=Idle +=Comment green +=Escape magenta +=Command bold +=Bad red + +# First character of line + +:first Idle + * rest noeat + ".'" command_1 + +:rest Idle + * rest + "\n" first + "\\" escape recolor=-1 + +:command_1 Command + * rest noeat + " " command_1 + "a-zA-Z_" command_2 + +:command_2 Command + * rest + "a-zA-Z0-9_" command_done recolor=-1 + +:command_done Command + * rest noeat + +:escape Escape + * bad recolor=-2 + "-\\e'`. 0|^&!%acdprtu{}" rest + "*fgn" name + "k" reg + "z" reg + "(" name2 + "$s" num + "bCDhHlLNoSvwxX" str + "\n" first + "\"" comment recolor=-2 + +# A name: ( means two characters + +:name Escape + * rest + "(" name2 + +# Two character name + +:name2 Escape + * reg + +# One character name + +:reg Escape + * rest + +# String + +:str Escape + * bad recolor=-1 + "'" str_body + +:str_body Escape + * str_body + "\n" first + "'" rest + +# Number + +:num Escape + * rest noeat + "-+0-9" num + +:comment Comment + * comment + "\n" first + +:bad Bad + * rest noeat diff --git a/.joe/syntax/typescript.jsf b/.joe/syntax/typescript.jsf @@ -0,0 +1,6 @@ +# JOE syntax file for Typescript + +=Idle + +:idle Idle + * idle noeat call=js.js(typescript) diff --git a/.joe/syntax/typescript.jsf.in b/.joe/syntax/typescript.jsf.in @@ -0,0 +1,6 @@ +# JOE syntax file for Typescript + +=Idle + +:idle Idle + * idle noeat call=js.js(typescript) diff --git a/.joe/syntax/verilog.jsf b/.joe/syntax/verilog.jsf @@ -0,0 +1,274 @@ +# JOE syntax highlight file for Verilog + +# Define colors + +=Idle +=Preproc bold blue +=Comment green +=Constant cyan +=Escape bold cyan +=Type bold +=Keyword bold + +# Skip whitespace at start of line +:reset Idle + * first noeat + " " reset + +:first Idle + * idle noeat + "`" pre recolor=-1 + +:pre Preproc + * idle noeat + "a-zA-Z_" preident recolor=-1 buffer + +:preident Idle + * idle noeat strings + "ifdef" preproc + "else" preproc + "endif" preproc + "timescale" preproc + "define" preproc + "include" preproc + "resetall" preproc + "signed" preproc + "unsigned" preproc + "celldefine" preproc + "endcelldefine" preproc + "default_nettype" preproc + "unconnected_drive" preproc + "nounconnected_drive" preproc + "protect" preproc + "endprotect" preproc + "protected" preproc + "endprotected" preproc + "expand_vectornets" preproc + "noexpand_vectornets" preproc + "autoexpand_vectornets" preproc + "remove_gatename" preproc + "noremove_gatename" preproc + "remove_netname" preproc + "noremove_netname" preproc +done + "a-zA-Z0-9_" preident + +:preproc Preproc + * idle noeat + +# All following states are for when we're not in a preprocessor line + +:idle Idle + * idle + "\n" reset + "/" slash + "0-9" first_digit recolor=-1 + "." maybe_float + "\"" string recolor=-1 + "'" sized_number recolor=-1 + "a-zA-Z_" ident buffer + +:slash Idle + * idle noeat + "*" comment recolor=-2 + "/" line_comment recolor=-2 + +:comment Comment + * comment + "*" maybe_end_comment + +:maybe_end_comment Comment + * comment + "/" idle + "*" maybe_end_comment + +:line_comment Comment + * line_comment + "\n" reset + +# Integer constants + +:first_digit Constant + * idle noeat + "'" sized_number + "." float + "0-9" first_digit + +:sized_number Constant + * idle noeat + "hH" hex_number + "oO" octal_number + "bB" binary_number + "dD" decimal_number + +:hex_number Constant + * idle noeat + "0-9A-Fa-f_xz" hex_number + +:binary_number Constant + * idle noeat + "01_xz" binary_number + +:octal_number Constant + * idle noeat + "0-7_xz" octal_number + +:decimal_number Constant + * idle noeat + "0-9_" decimal_number + +# Floating point + +:maybe_float Constant + * idle recolor=-2 noeat + "0-9" float recolor=-2 + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +# Strings + +:string Constant + * string + "\n" reset + "\"" idle + "\\" string_escape recolor=-1 + "%" string_control recolor=-1 + +:string_escape Escape + * string + "\n" string recolor=-2 + +:string_control Escape + * string_control + "\n" reset + "efghdobcvstmEFGHDOBCVSTM%" string + +# Identifiers + +:ident Idle + * idle noeat strings + "always" kw + "assign" kw + "begin" kw + "case" kw + "casex" kw + "casez" kw + "default" kw + "defparam" kw + "else" kw + "end" kw + "endcase" kw + "endfunction" kw + "endmodule" kw + "endtask" kw + "for" kw + "function" kw + "if" kw + "module" kw + "parameter" kw + "repeat" kw + "task" kw + "while" kw + "forever" kw + "initial" kw + "integer" type + "inout" type + "input" type + "output" type + "reg" type + "real" type + "wire" type + "wor" type + "wand" type + "and" kw + "attribute" kw + "buf" kw + "bufif0" kw + "bufif1" kw + "cmos" kw + "deassign" kw + "disable" kw + "edge" kw + "endattribute" kw + "endprimitive" kw + "endspecify" kw + "endtable" kw + "event" kw + "force" kw + "fork" kw + "highz0" kw + "highz1" kw + "join" kw + "large" kw + "macromodule" kw + "medium" kw + "nand" kw + "negedge" kw + "nmos" kw + "nor" kw + "not" kw + "notif0" kw + "notif1" kw + "or" kw + "pmos" kw + "posedge" kw + "primitive" kw + "pull0" kw + "pull1" kw + "pulldown" kw + "pullup" kw + "rcmos" kw + "realtime" kw + "release" kw + "rnmos" kw + "rpmos" kw + "rtran" kw + "rtranif0" kw + "rtranif1" kw + "scalared" kw + "signed" kw + "small" kw + "specify" kw + "specparam" kw + "strength" kw + "strong0" kw + "strong1" kw + "supply0" kw + "supply1" kw + "table" kw + "time" kw + "tran" kw + "tranif0" kw + "tranif1" kw + "tri" kw + "tri0" kw + "tri1" kw + "triand" kw + "trior" kw + "trireg" kw + "unsigned" kw + "vectored" kw + "wait" kw + "weak0" kw + "weak1" kw + "xnor" kw + "xor" kw +done + "a-zA-Z0-9_" ident + +:type Type + * idle noeat + +:kw Keyword + * idle noeat diff --git a/.joe/syntax/verilog.jsf.in b/.joe/syntax/verilog.jsf.in @@ -0,0 +1,274 @@ +# JOE syntax highlight file for Verilog + +# Define colors + +=Idle +=Preproc bold blue +=Comment green +=Constant cyan +=Escape bold cyan +=Type bold +=Keyword bold + +# Skip whitespace at start of line +:reset Idle + * first noeat + " " reset + +:first Idle + * idle noeat + "`" pre recolor=-1 + +:pre Preproc + * idle noeat + "a-zA-Z_" preident recolor=-1 buffer + +:preident Idle + * idle noeat strings + "ifdef" preproc + "else" preproc + "endif" preproc + "timescale" preproc + "define" preproc + "include" preproc + "resetall" preproc + "signed" preproc + "unsigned" preproc + "celldefine" preproc + "endcelldefine" preproc + "default_nettype" preproc + "unconnected_drive" preproc + "nounconnected_drive" preproc + "protect" preproc + "endprotect" preproc + "protected" preproc + "endprotected" preproc + "expand_vectornets" preproc + "noexpand_vectornets" preproc + "autoexpand_vectornets" preproc + "remove_gatename" preproc + "noremove_gatename" preproc + "remove_netname" preproc + "noremove_netname" preproc +done + "a-zA-Z0-9_" preident + +:preproc Preproc + * idle noeat + +# All following states are for when we're not in a preprocessor line + +:idle Idle + * idle + "\n" reset + "/" slash + "0-9" first_digit recolor=-1 + "." maybe_float + "\"" string recolor=-1 + "'" sized_number recolor=-1 + "a-zA-Z_" ident buffer + +:slash Idle + * idle noeat + "*" comment recolor=-2 + "/" line_comment recolor=-2 + +:comment Comment + * comment + "*" maybe_end_comment + +:maybe_end_comment Comment + * comment + "/" idle + "*" maybe_end_comment + +:line_comment Comment + * line_comment + "\n" reset + +# Integer constants + +:first_digit Constant + * idle noeat + "'" sized_number + "." float + "0-9" first_digit + +:sized_number Constant + * idle noeat + "hH" hex_number + "oO" octal_number + "bB" binary_number + "dD" decimal_number + +:hex_number Constant + * idle noeat + "0-9A-Fa-f_xz" hex_number + +:binary_number Constant + * idle noeat + "01_xz" binary_number + +:octal_number Constant + * idle noeat + "0-7_xz" octal_number + +:decimal_number Constant + * idle noeat + "0-9_" decimal_number + +# Floating point + +:maybe_float Constant + * idle recolor=-2 noeat + "0-9" float recolor=-2 + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +# Strings + +:string Constant + * string + "\n" reset + "\"" idle + "\\" string_escape recolor=-1 + "%" string_control recolor=-1 + +:string_escape Escape + * string + "\n" string recolor=-2 + +:string_control Escape + * string_control + "\n" reset + "efghdobcvstmEFGHDOBCVSTM%" string + +# Identifiers + +:ident Idle + * idle noeat strings + "always" kw + "assign" kw + "begin" kw + "case" kw + "casex" kw + "casez" kw + "default" kw + "defparam" kw + "else" kw + "end" kw + "endcase" kw + "endfunction" kw + "endmodule" kw + "endtask" kw + "for" kw + "function" kw + "if" kw + "module" kw + "parameter" kw + "repeat" kw + "task" kw + "while" kw + "forever" kw + "initial" kw + "integer" type + "inout" type + "input" type + "output" type + "reg" type + "real" type + "wire" type + "wor" type + "wand" type + "and" kw + "attribute" kw + "buf" kw + "bufif0" kw + "bufif1" kw + "cmos" kw + "deassign" kw + "disable" kw + "edge" kw + "endattribute" kw + "endprimitive" kw + "endspecify" kw + "endtable" kw + "event" kw + "force" kw + "fork" kw + "highz0" kw + "highz1" kw + "join" kw + "large" kw + "macromodule" kw + "medium" kw + "nand" kw + "negedge" kw + "nmos" kw + "nor" kw + "not" kw + "notif0" kw + "notif1" kw + "or" kw + "pmos" kw + "posedge" kw + "primitive" kw + "pull0" kw + "pull1" kw + "pulldown" kw + "pullup" kw + "rcmos" kw + "realtime" kw + "release" kw + "rnmos" kw + "rpmos" kw + "rtran" kw + "rtranif0" kw + "rtranif1" kw + "scalared" kw + "signed" kw + "small" kw + "specify" kw + "specparam" kw + "strength" kw + "strong0" kw + "strong1" kw + "supply0" kw + "supply1" kw + "table" kw + "time" kw + "tran" kw + "tranif0" kw + "tranif1" kw + "tri" kw + "tri0" kw + "tri1" kw + "triand" kw + "trior" kw + "trireg" kw + "unsigned" kw + "vectored" kw + "wait" kw + "weak0" kw + "weak1" kw + "xnor" kw + "xor" kw +done + "a-zA-Z0-9_" ident + +:type Type + * idle noeat + +:kw Keyword + * idle noeat diff --git a/.joe/syntax/vhdl.jsf b/.joe/syntax/vhdl.jsf @@ -0,0 +1,212 @@ +# JOE syntax highlight file for VHDL + +# Define colors + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Keyword bold +=Operator bold + +# All following states are for when we're not in a preprocessor line + +:idle Idle + * idle + "-" maybe_comment + "'" char recolor=-1 + "\"" string recolor=-1 + "0-9" first_digit recolor=-1 + "." maybe_float + "\"" string recolor=-1 + "Bb" maybe_binary buffer + "Oo" maybe_octal buffer + "Xx" maybe_hex buffer + "ac-np-wyzAC-NP-WYZ" ident buffer + +:maybe_comment Idle + * idle noeat + "-" comment recolor=-2 + +:comment Comment + * comment + "\n" idle + + +# Character constant + +:char Constant + * char + "'" idle + +# Strings + +:maybe_binary Idle + * ident noeat + "\"" string recolor=-2 + +:maybe_octal Idle + * ident noeat + "\"" string recolor=-2 + +:maybe_hex Idle + * ident noeat + "\"" string recolor=-2 + +:string Constant + * string + "\n" idle + "\"" idle + "\\" string_escape recolor=-1 + +:string_escape Escape + * string + "\n" string recolor=-2 + +# Integer constants + +:first_digit Constant + * idle noeat + "." float + "_" first_digit + "0-9" first_digit + +# Floating point + +:maybe_float Constant + * idle recolor=-2 noeat + "0-9" float recolor=-2 + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +# Identifiers + +:ident Idle + * quote noeat istrings + "abs" operator + "access" kw + "after" kw + "alias" kw + "all" kw + "and" operator + "architecture" kw + "array" kw + "assert" kw + "attribute" kw + "begin" kw + "block" kw + "body" kw + "buffer" kw + "bus" kw + "case" kw + "component" kw + "configuration" kw + "constant" kw + "disconnect" kw + "downto" kw + "else" kw + "elsif" kw + "end" kw + "entity" kw + "exit" kw + "file" kw + "for" kw + "function" kw + "generate" kw + "generic" kw + "group" kw + "guarded" kw + "if" kw + "impure" kw + "in" kw + "inertial" kw + "inout" kw + "is" kw + "label" kw + "library" kw + "linkage" kw + "literal" kw + "loop" kw + "map" kw + "mod" operator + "nand" operator + "new" kw + "next" kw + "nor" operator + "not" operator + "null" kw + "of" kw + "on" kw + "open" kw + "or" operator + "others" kw + "out" kw + "package" kw + "port" kw + "postponed" kw + "procedure" kw + "process" kw + "process" kw + "pure" kw + "range" kw + "record" kw + "register" kw + "reject" kw + "rem" operator + "report" kw + "return" kw + "rol" operator + "ror" operator + "select" kw + "severity" kw + "shared" kw + "signal" kw + "sla" operator + "sll" operator + "sra" operator + "srl" operator + "subtype" kw + "then" kw + "to" kw + "transport" kw + "type" kw + "unaffected" kw + "units" kw + "until" kw + "use" kw + "variable" kw + "wait" kw + "when" kw + "while" kw + "with" kw + "xnor" operator + "xor" operator +done + "a-zA-Z0-9_" ident + +:operator Operator + * idle noeat + +:kw Keyword + * idle noeat + +# identifiers separated with quote ' + +:quote Idle + * idle noeat + "'" quote_word + +:quote_word Idle + * idle noeat + "a-zA-Z" ident buffer diff --git a/.joe/syntax/vhdl.jsf.in b/.joe/syntax/vhdl.jsf.in @@ -0,0 +1,212 @@ +# JOE syntax highlight file for VHDL + +# Define colors + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Keyword bold +=Operator bold + +# All following states are for when we're not in a preprocessor line + +:idle Idle + * idle + "-" maybe_comment + "'" char recolor=-1 + "\"" string recolor=-1 + "0-9" first_digit recolor=-1 + "." maybe_float + "\"" string recolor=-1 + "Bb" maybe_binary buffer + "Oo" maybe_octal buffer + "Xx" maybe_hex buffer + "ac-np-wyzAC-NP-WYZ" ident buffer + +:maybe_comment Idle + * idle noeat + "-" comment recolor=-2 + +:comment Comment + * comment + "\n" idle + + +# Character constant + +:char Constant + * char + "'" idle + +# Strings + +:maybe_binary Idle + * ident noeat + "\"" string recolor=-2 + +:maybe_octal Idle + * ident noeat + "\"" string recolor=-2 + +:maybe_hex Idle + * ident noeat + "\"" string recolor=-2 + +:string Constant + * string + "\n" idle + "\"" idle + "\\" string_escape recolor=-1 + +:string_escape Escape + * string + "\n" string recolor=-2 + +# Integer constants + +:first_digit Constant + * idle noeat + "." float + "_" first_digit + "0-9" first_digit + +# Floating point + +:maybe_float Constant + * idle recolor=-2 noeat + "0-9" float recolor=-2 + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +# Identifiers + +:ident Idle + * quote noeat istrings + "abs" operator + "access" kw + "after" kw + "alias" kw + "all" kw + "and" operator + "architecture" kw + "array" kw + "assert" kw + "attribute" kw + "begin" kw + "block" kw + "body" kw + "buffer" kw + "bus" kw + "case" kw + "component" kw + "configuration" kw + "constant" kw + "disconnect" kw + "downto" kw + "else" kw + "elsif" kw + "end" kw + "entity" kw + "exit" kw + "file" kw + "for" kw + "function" kw + "generate" kw + "generic" kw + "group" kw + "guarded" kw + "if" kw + "impure" kw + "in" kw + "inertial" kw + "inout" kw + "is" kw + "label" kw + "library" kw + "linkage" kw + "literal" kw + "loop" kw + "map" kw + "mod" operator + "nand" operator + "new" kw + "next" kw + "nor" operator + "not" operator + "null" kw + "of" kw + "on" kw + "open" kw + "or" operator + "others" kw + "out" kw + "package" kw + "port" kw + "postponed" kw + "procedure" kw + "process" kw + "process" kw + "pure" kw + "range" kw + "record" kw + "register" kw + "reject" kw + "rem" operator + "report" kw + "return" kw + "rol" operator + "ror" operator + "select" kw + "severity" kw + "shared" kw + "signal" kw + "sla" operator + "sll" operator + "sra" operator + "srl" operator + "subtype" kw + "then" kw + "to" kw + "transport" kw + "type" kw + "unaffected" kw + "units" kw + "until" kw + "use" kw + "variable" kw + "wait" kw + "when" kw + "while" kw + "with" kw + "xnor" operator + "xor" operator +done + "a-zA-Z0-9_" ident + +:operator Operator + * idle noeat + +:kw Keyword + * idle noeat + +# identifiers separated with quote ' + +:quote Idle + * idle noeat + "'" quote_word + +:quote_word Idle + * idle noeat + "a-zA-Z" ident buffer diff --git a/.joe/syntax/whitespace.jsf b/.joe/syntax/whitespace.jsf @@ -0,0 +1,17 @@ +# JOE syntax highlight file for Whitespace +# by Christian Nicolai (http://mycrobase.de) + +=Idle +=Space inverse red +=Tab inverse green + +:idle Idle + * idle + " " space recolor=-1 + "\t" tab recolor=-1 + +:space Space + * idle noeat + +:tab Tab + * idle noeat diff --git a/.joe/syntax/whitespace.jsf.in b/.joe/syntax/whitespace.jsf.in @@ -0,0 +1,17 @@ +# JOE syntax highlight file for Whitespace +# by Christian Nicolai (http://mycrobase.de) + +=Idle +=Space inverse red +=Tab inverse green + +:idle Idle + * idle + " " space recolor=-1 + "\t" tab recolor=-1 + +:space Space + * idle noeat + +:tab Tab + * idle noeat diff --git a/.joe/syntax/xml.jsf b/.joe/syntax/xml.jsf @@ -0,0 +1,288 @@ +# Improved XML highlighter by: Brian Candler <B.Candler@pobox.com> + +# Define no. sync lines +# You can say: +# -200 means 200 lines +# - means always start parsing from beginning of file when we lose sync +# if nothing is specified, the default is -50 + +- + +# Define colors +# +# bold inverse blink dim underline italic +# white cyan magenta blue yellow green red black +# bg_white bg_cyan bg_magenta bg_blue bg_yellow bg_green bg_red bg_black + +# The underlines are here right now just because I want to distinguish which +# bits have been coloured (say) CdataStart, CdataBody, CdataEnd. And that's +# because I think it may be useful to make that distinction for some people. + +=Idle +=Error red bold +=Tag blue +=Attr cyan +=Constant blue bold +=EntityRef magenta +=Decl cyan +=CommentStart green +=CommentBody green +=CommentEnd green +=PIStart magenta bold +=PIBody magenta +=PIEnd magenta bold +=CdataStart blue bold +=CdataBody bold +=CdataEnd blue bold + +# http://www.w3.org/TR/2004/REC-xml-20040204/ +# +# NOTE: For UNICODE compatibility, the ranges +# "A-Za-z_:" -- first character of Name +# "A-Za-z0-9._:-" -- subsequent characters of Name +# ought to be replaced with some appropriate Unicode character classes +# +# Actually the standard tells you which characters to use, see: +# http://www.w3.org/TR/xml11/#NT-NameStartChar + +:content Idle + * content + "<" tag recolor=-1 + "&" entityref recolor=-1 + +# > is allowed +# ">" error noeat recolor=-1 + + +# In several contexts a space is an error, and since a coloured space is +# not visible, we colour the next non-space character as well. + +:error Error + * error_visible noeat recolor=-1 + " \t\r\n" error + +:error_visible Error + * content + +# Matched: & + +:entityref EntityRef + * error noeat recolor=-1 + "-.:\c" entityref + "#" entityref + ";" content + +# Matched: < + +:tag Tag + * error noeat recolor=-1 + "/" end_tag + ":\i" start_or_empty_tag + "?" pi_start recolor=-2 + "!" decl recolor=-2 buffer + +# Matched: </ + +:end_tag Tag + * error noeat recolor=-1 + ":\i" end_tag2 + +:end_tag2 Tag + * error noeat recolor=-1 + "-.:\c" end_tag2 + " \t\r\n" end_tag2_sp recolor=-1 + ">" content + +:end_tag2_sp Idle + * end_tag3 noeat + +:end_tag3 Tag + * error noeat recolor=-1 + " \t\r\n" end_tag3_sp recolor=-1 + ">" content + +:end_tag3_sp Idle + * end_tag_3 noeat + +# Matched: <tag + +:start_or_empty_tag Tag + * error noeat recolor=-1 + "-.:\c" start_or_empty_tag + "/" empty_tag + " \t\r\n" start_or_empty_tag_sp recolor=-1 + ">" content + +:start_or_empty_tag_sp Idle + * tag_space noeat + +# Matched: <tag/ + +:empty_tag Tag + * error noeat recolor=-1 + ">" content + +# Matched: <tag SPACE + +:tag_space Attr + * error noeat recolor=-1 + " \t\r\n" tag_space_sp recolor=-1 + ":\i" attr + "/" empty_tag recolor=-1 + ">" close_tag recolor=-1 + +:tag_space_sp Idle + * tag_space noeat + +# Matched: <tag attr + +:attr Attr + * error noeat recolor=-1 + "-.:\c" attr + " \t\r\n" attr_sp recolor=-1 + "=" string + +:attr_sp Idle + * attr_before noeat + +:attr_before Attr + * error noeat recolor=-1 + " \t\r\n" attr_sp recolor=-1 + "=" string + +# Matched: <tag attr= + +:string Attr + * error noeat recolor=-1 + " \t\r\n" string_sp recolor=-1 + "\"" astring recolor=-1 + "'" bstring recolor=-1 + +:string_sp Idle + * string noeat + +# Matched: <tag attr=" + +:astring Constant + * astring + "<" error noeat recolor=-1 + "&" achar recolor=-1 + "\"" endstring + +# ">" error noeat recolor=-1 + + +:bstring Constant + * bstring + "<" error noeat recolor=-1 + "&" bchar recolor=-1 + "'" endstring + +# ">" error noeat recolor=-1 + + +:achar EntityRef + * error noeat recolor=-1 + "-.:\c" achar + "#" achar + ";" astring + +:bchar EntityRef + * error noeat recolor=-1 + "-.:\c" bchar + "#" bchar + ";" bstring + +# Matched: <tag attr="foo" + +:endstring Attr + * error noeat recolor=-1 + " \t\r\n" tag_space_sp + "/" empty_tag recolor=-1 + ">" close_tag recolor=-1 + +# This state is just to recolor the final ">" at the end of <tag attr="val"> + +:close_tag Tag + * content noeat + +# Matched: <? + +:pi_start PIStart + * pi noeat recolor=-1 + +:pi PIBody + * pi + "?" pi2 + +:pi2 PIBody + * pi + ">" pi_end recolor=-2 + +:pi_end PIEnd + * content noeat recolor=-1 + +# Matched: <! + +:decl Decl + * decl strings + "!--" comment_start recolor=-5 + "![CDATA[" cdata_start recolor=-10 +done +# "<" decl_nest + ">" content + +# We allow one level of <...> nesting within declarations + +:decl_nest Decl + * decl_nest + ">" decl + +# Matched: <!-- + +:comment_start CommentStart + * comment noeat + +:comment CommentBody + * comment + "-" comment2 + +:comment2 CommentBody + * comment + "-" comment3 + +:comment3 CommentBody + * comment_error noeat recolor=-3 + ">" comment_end recolor=-3 + +:comment_end CommentEnd + * content noeat recolor=-1 + +# For compatibility, the string "--" (double-hyphen) MUST NOT occur within +# comments. [http://www.w3.org/TR/REC-xml/ section 2.5] + +:comment_error Error + * comment + "-" comment_error + ">" comment_end recolor=-3 + +# Matched: <![CDATA[ + +:cdata_start CdataStart + * cdata noeat + +:cdata CdataBody + * cdata + "]" cdata2 + +:cdata2 CdataBody + * cdata + "]" cdata3 + +:cdata3 CdataBody + * cdata + "]" cdata3 + ">" cdata_end recolor=-3 + +:cdata_end CdataEnd + * content noeat recolor=-1 diff --git a/.joe/syntax/xml.jsf.in b/.joe/syntax/xml.jsf.in @@ -0,0 +1,288 @@ +# Improved XML highlighter by: Brian Candler <B.Candler@pobox.com> + +# Define no. sync lines +# You can say: +# -200 means 200 lines +# - means always start parsing from beginning of file when we lose sync +# if nothing is specified, the default is -50 + +- + +# Define colors +# +# bold inverse blink dim underline italic +# white cyan magenta blue yellow green red black +# bg_white bg_cyan bg_magenta bg_blue bg_yellow bg_green bg_red bg_black + +# The underlines are here right now just because I want to distinguish which +# bits have been coloured (say) CdataStart, CdataBody, CdataEnd. And that's +# because I think it may be useful to make that distinction for some people. + +=Idle +=Error red bold +=Tag blue +=Attr cyan +=Constant blue bold +=EntityRef magenta +=Decl cyan +=CommentStart green +=CommentBody green +=CommentEnd green +=PIStart magenta bold +=PIBody magenta +=PIEnd magenta bold +=CdataStart blue bold +=CdataBody bold +=CdataEnd blue bold + +# http://www.w3.org/TR/2004/REC-xml-20040204/ +# +# NOTE: For UNICODE compatibility, the ranges +# "A-Za-z_:" -- first character of Name +# "A-Za-z0-9._:-" -- subsequent characters of Name +# ought to be replaced with some appropriate Unicode character classes +# +# Actually the standard tells you which characters to use, see: +# http://www.w3.org/TR/xml11/#NT-NameStartChar + +:content Idle + * content + "<" tag recolor=-1 + "&" entityref recolor=-1 + +# > is allowed +# ">" error noeat recolor=-1 + + +# In several contexts a space is an error, and since a coloured space is +# not visible, we colour the next non-space character as well. + +:error Error + * error_visible noeat recolor=-1 + " \t\r\n" error + +:error_visible Error + * content + +# Matched: & + +:entityref EntityRef + * error noeat recolor=-1 + "-.:\c" entityref + "#" entityref + ";" content + +# Matched: < + +:tag Tag + * error noeat recolor=-1 + "/" end_tag + ":\i" start_or_empty_tag + "?" pi_start recolor=-2 + "!" decl recolor=-2 buffer + +# Matched: </ + +:end_tag Tag + * error noeat recolor=-1 + ":\i" end_tag2 + +:end_tag2 Tag + * error noeat recolor=-1 + "-.:\c" end_tag2 + " \t\r\n" end_tag2_sp recolor=-1 + ">" content + +:end_tag2_sp Idle + * end_tag3 noeat + +:end_tag3 Tag + * error noeat recolor=-1 + " \t\r\n" end_tag3_sp recolor=-1 + ">" content + +:end_tag3_sp Idle + * end_tag_3 noeat + +# Matched: <tag + +:start_or_empty_tag Tag + * error noeat recolor=-1 + "-.:\c" start_or_empty_tag + "/" empty_tag + " \t\r\n" start_or_empty_tag_sp recolor=-1 + ">" content + +:start_or_empty_tag_sp Idle + * tag_space noeat + +# Matched: <tag/ + +:empty_tag Tag + * error noeat recolor=-1 + ">" content + +# Matched: <tag SPACE + +:tag_space Attr + * error noeat recolor=-1 + " \t\r\n" tag_space_sp recolor=-1 + ":\i" attr + "/" empty_tag recolor=-1 + ">" close_tag recolor=-1 + +:tag_space_sp Idle + * tag_space noeat + +# Matched: <tag attr + +:attr Attr + * error noeat recolor=-1 + "-.:\c" attr + " \t\r\n" attr_sp recolor=-1 + "=" string + +:attr_sp Idle + * attr_before noeat + +:attr_before Attr + * error noeat recolor=-1 + " \t\r\n" attr_sp recolor=-1 + "=" string + +# Matched: <tag attr= + +:string Attr + * error noeat recolor=-1 + " \t\r\n" string_sp recolor=-1 + "\"" astring recolor=-1 + "'" bstring recolor=-1 + +:string_sp Idle + * string noeat + +# Matched: <tag attr=" + +:astring Constant + * astring + "<" error noeat recolor=-1 + "&" achar recolor=-1 + "\"" endstring + +# ">" error noeat recolor=-1 + + +:bstring Constant + * bstring + "<" error noeat recolor=-1 + "&" bchar recolor=-1 + "'" endstring + +# ">" error noeat recolor=-1 + + +:achar EntityRef + * error noeat recolor=-1 + "-.:\c" achar + "#" achar + ";" astring + +:bchar EntityRef + * error noeat recolor=-1 + "-.:\c" bchar + "#" bchar + ";" bstring + +# Matched: <tag attr="foo" + +:endstring Attr + * error noeat recolor=-1 + " \t\r\n" tag_space_sp + "/" empty_tag recolor=-1 + ">" close_tag recolor=-1 + +# This state is just to recolor the final ">" at the end of <tag attr="val"> + +:close_tag Tag + * content noeat + +# Matched: <? + +:pi_start PIStart + * pi noeat recolor=-1 + +:pi PIBody + * pi + "?" pi2 + +:pi2 PIBody + * pi + ">" pi_end recolor=-2 + +:pi_end PIEnd + * content noeat recolor=-1 + +# Matched: <! + +:decl Decl + * decl strings + "!--" comment_start recolor=-5 + "![CDATA[" cdata_start recolor=-10 +done +# "<" decl_nest + ">" content + +# We allow one level of <...> nesting within declarations + +:decl_nest Decl + * decl_nest + ">" decl + +# Matched: <!-- + +:comment_start CommentStart + * comment noeat + +:comment CommentBody + * comment + "-" comment2 + +:comment2 CommentBody + * comment + "-" comment3 + +:comment3 CommentBody + * comment_error noeat recolor=-3 + ">" comment_end recolor=-3 + +:comment_end CommentEnd + * content noeat recolor=-1 + +# For compatibility, the string "--" (double-hyphen) MUST NOT occur within +# comments. [http://www.w3.org/TR/REC-xml/ section 2.5] + +:comment_error Error + * comment + "-" comment_error + ">" comment_end recolor=-3 + +# Matched: <![CDATA[ + +:cdata_start CdataStart + * cdata noeat + +:cdata CdataBody + * cdata + "]" cdata2 + +:cdata2 CdataBody + * cdata + "]" cdata3 + +:cdata3 CdataBody + * cdata + "]" cdata3 + ">" cdata_end recolor=-3 + +:cdata_end CdataEnd + * content noeat recolor=-1 diff --git a/.joe/syntax/yaml.jsf b/.joe/syntax/yaml.jsf @@ -0,0 +1,145 @@ +# JOE syntax highlight file for YAML +# by Christian Nicolai (http://mycrobase.de) + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Type bold +=Keyword bold +=Bad bold red +=Brace magenta + +=Directive red +=Reference yellow +=LocalType blue +=BlockDelim bold blue + +=BadTab inverse red + +:line_start Idle + * maybe_key noeat + "\t" bad_tab recolor=-1 + " " line_start + +:idle Constant + * idle + "\n" line_start + "%" directive recolor=-1 + "#" line_comment recolor=-1 + "'" string_sq_1 recolor=-1 + "\"" string_dq_1 recolor=-1 + "{[]}" brace recolor=-1 + "." maybe_block_end1 + "*&" maybe_reference + "!" maybe_typecast + +:maybe_key Idle + * maybe_key1 recolor=-1 mark + "\n%#'\"{[]}*&!" idle noeat + "-" maybe_block1 mark + +:maybe_key1 Constant + * idle noeat + ":" key + " a-zA-Z0-9_-" maybe_key1 + +# necessary to include the : +:key Idle + * key_end noeat recolormark + +:key_end Idle + * idle noeat + +# mark bad tabs until the first non-whitespace +:bad_tab BadTab + * line_start noeat + +:line_comment Comment + * line_comment + "\n" line_start + +:brace Brace + * idle noeat + +:directive Directive + * directive + "\n" line_start + +:string_sq_1 Constant + * string_sq noeat + +:string_sq Constant + * string_sq + "\'" idle + "\\" string_sq_esc recolor=-1 + +:string_sq_esc Escape + * string_sq + "\n" string_sq recolor=-2 + +:string_dq_1 Constant + * string_dq noeat + +:string_dq Constant + * string_dq + "\"" idle + "\\" string_dq_esc recolor=-1 + +:string_dq_esc Escape + * string_dq + "\n" string_dq recolor=-2 + +:maybe_block1 Constant + * maybe_key1 noeat + "-" maybe_block2 + +:maybe_block2 Constant + * maybe_key1 noeat + "-" block recolor=-3 + +:block BlockDelim + * idle noeat + +:maybe_block_end1 Constant + * idle noeat + "." maybe_block_end2 + +:maybe_block_end2 Constant + * idle noeat + "." block_end recolor=-3 + +:block_end BlockDelim + * idle noeat + +:maybe_reference Constant + * idle + "a-zA-Z_" reference recolor=-2 + +:reference Reference + * idle noeat + "a-zA-Z0-9_" reference + +:maybe_typecast Constant + * idle noeat + "a-zA-Z_" local_type recolor=-1 + "!" builtin_type + +:builtin_type Idle + * idle noeat + "a-zA-Z" builtin_type2 buffer + +:builtin_type2 Idle + * idle noeat strings + "str" type + "float" type + "binary" type +done + "a-zA-Z_" builtin_type2 + +:type Type + * idle noeat + +:local_type LocalType + * idle noeat + "a-zA-Z_" local_type diff --git a/.joe/syntax/yaml.jsf.in b/.joe/syntax/yaml.jsf.in @@ -0,0 +1,145 @@ +# JOE syntax highlight file for YAML +# by Christian Nicolai (http://mycrobase.de) + +=Idle +=Comment green +=Constant cyan +=Escape bold cyan +=Type bold +=Keyword bold +=Bad bold red +=Brace magenta + +=Directive red +=Reference yellow +=LocalType blue +=BlockDelim bold blue + +=BadTab inverse red + +:line_start Idle + * maybe_key noeat + "\t" bad_tab recolor=-1 + " " line_start + +:idle Constant + * idle + "\n" line_start + "%" directive recolor=-1 + "#" line_comment recolor=-1 + "'" string_sq_1 recolor=-1 + "\"" string_dq_1 recolor=-1 + "{[]}" brace recolor=-1 + "." maybe_block_end1 + "*&" maybe_reference + "!" maybe_typecast + +:maybe_key Idle + * maybe_key1 recolor=-1 mark + "\n%#'\"{[]}*&!" idle noeat + "-" maybe_block1 mark + +:maybe_key1 Constant + * idle noeat + ":" key + " a-zA-Z0-9_-" maybe_key1 + +# necessary to include the : +:key Idle + * key_end noeat recolormark + +:key_end Idle + * idle noeat + +# mark bad tabs until the first non-whitespace +:bad_tab BadTab + * line_start noeat + +:line_comment Comment + * line_comment + "\n" line_start + +:brace Brace + * idle noeat + +:directive Directive + * directive + "\n" line_start + +:string_sq_1 Constant + * string_sq noeat + +:string_sq Constant + * string_sq + "\'" idle + "\\" string_sq_esc recolor=-1 + +:string_sq_esc Escape + * string_sq + "\n" string_sq recolor=-2 + +:string_dq_1 Constant + * string_dq noeat + +:string_dq Constant + * string_dq + "\"" idle + "\\" string_dq_esc recolor=-1 + +:string_dq_esc Escape + * string_dq + "\n" string_dq recolor=-2 + +:maybe_block1 Constant + * maybe_key1 noeat + "-" maybe_block2 + +:maybe_block2 Constant + * maybe_key1 noeat + "-" block recolor=-3 + +:block BlockDelim + * idle noeat + +:maybe_block_end1 Constant + * idle noeat + "." maybe_block_end2 + +:maybe_block_end2 Constant + * idle noeat + "." block_end recolor=-3 + +:block_end BlockDelim + * idle noeat + +:maybe_reference Constant + * idle + "a-zA-Z_" reference recolor=-2 + +:reference Reference + * idle noeat + "a-zA-Z0-9_" reference + +:maybe_typecast Constant + * idle noeat + "a-zA-Z_" local_type recolor=-1 + "!" builtin_type + +:builtin_type Idle + * idle noeat + "a-zA-Z" builtin_type2 buffer + +:builtin_type2 Idle + * idle noeat strings + "str" type + "float" type + "binary" type +done + "a-zA-Z_" builtin_type2 + +:type Type + * idle noeat + +:local_type LocalType + * idle noeat + "a-zA-Z_" local_type diff --git a/.joerc b/.joerc @@ -0,0 +1,1349 @@ + Initialization file for JOE + Standard Joe + + JOE looks for this file in: + 1 - $HOME/.joerc + 2 - /usr/local/etc/joe/joerc + + This file can include other files by placing the following include command + in the first column: + + :include filename + + FIRST SECTION: Default global options (these options can also be specified + on the command line. Also the NOXON, LINES, COLUMNS, DOPADDING and BAUD + options can be specified in environment variables): + + Override colors of lexical classes specified in syntax files: + Put each color override you want in the first column. + + Valid colors: + bold inverse blink dim underline italic + white cyan magenta blue yellow green red black + bg_white bg_cyan bg_magenta bg_blue bg_yellow bg_green bg_red bg_black + + Other colors are available: see syntax/c.jsf for documentation. + + Override all instances of class Idle: + =Idle red + + Override Idle only for c syntax file: + =c.Idle red + + The following list is from c.jsf. Look at other syntax files for more classes. + + =Idle + =Bad bold red + =Preproc blue + =Define bold blue + =IncLocal cyan + =IncSystem bold cyan + =Constant cyan + =Escape bold cyan + =Type bold + =Keyword bold + =CppKeyword bold + =Brace magenta + =Control + + Put each option you want set in the first column: + + -option Sets the option + --option Clears the option + + -help_is_utf8 Set if help text is in UTF-8 format. Leave clear if it's a raw 8-bit format. + + -mid Cursor is recentered when scrolling is necessary + -left nn Amount to jump left when scrolling is necessary (-1 for 1/4 width) + -right nn Amount to jump right when scrolling is necessary (-1 for 1/4 width) + + -marking Text between ^KB and cursor is highlighted (use with -lightoff) + + -asis Characters 128 - 255 shown as-is + + -force Force final newline when files are saved + + -nolocks If you don't want file locks to be used + + -nomodcheck Disable periodic checking of disk file newer than buffer + (this checking happens on save even with this option). + + -nocurdir Do not prompt with current directory + + -nobackups If you don't want backup files to be created + +-nodeadjoe If you don't want DEADJOE files to be created + + -break_hardlinks + Delete file before writing, to break hard links + (but don't break symbolic links). + + -break_links + Delete file before writing, to break hard links + and symbolic links. + + + -lightoff Turn off highlighting after block copy or move + + -exask ^KX always confirms file name + + -beep Beep on errors and when cursor goes past extremes + + -nosta Disable top-most status line + +-keepup %k and %c status line escape sequences updated frequently + + -pg nnn No. lines to keep for PgUp/PgDn + + -undo_keep nnn Number of undo records to keep. 0 for infinite. + + -csmode ^KF after a pervious search does a ^L instead + + -backpath path + Directory to store backup files (one space between + 'backpath' and the 'path', no trailing spaces or comments + after the path). + + -floatmouse Clicking past end of line moves the cursor past the end + + -rtbutton Use the right mouse button for action, instead of the left + + -nonotice Disable copyright notice + + -noexmsg Disable exiting message ("File not changed so no update needed") + +-noxon Attempt to turn off ^S/^Q processing + + -orphan Put extra files given on command line in orphaned buffers + instead of in windows + + -dopadding Output pad characters (for when there is no tty handshaking) + + -lines nnn Set no. screen lines + + -baud nnn Set baud rate for terminal optimizations + + -columns nnn Set no. screen columns + + -helpon Start with help on + + -skiptop nnn Don't use top nnn lines of the screen + +-notite Don't send terminal initialization and termination strings: + prevents restoration of screen on exit. + + -nolinefeeds Prevent sending linefeeds to preserve screen history in terminal + emulator's scroll-back buffer. + + -usetabs Use tabs to help optimize screen update. + +-assume_color Assume terminal has ANSI color support even if termcap/terminfo entry + says that it doesn't. This only applies if the terminal otherwise + looks like an ANSI terminal (support bold and capability starts with + ESC [). + +-assume_256color + Assume terminal has xterm 256 color support (ESC [ 38 ; 5 ; NNN m and + ESC [ 48 ; 5 ; NNN m). + +-guess_non_utf8 Allow guess of non-UTF-8 file encoding in a UTF-8 locale. + + -guess_utf8 Allow guess of UTF-8 file encoding in non-UTF-8 locale. + +-guess_utf16 Allow guess of UTF-16 encoding + +-guess_crlf Automatically detect MS-DOS files and set -crlf appropriately + +-guess_indent Guess indent character (tab or space). + +-menu_above Position menu/list above prompt when enabled. Otherwise position + below prompt. + +-transpose Transpose rows with columns in all menus. + + -menu_explorer Stay in menu system when a directory is selected (otherwise + directory is added to path and menu is closed). + + -menu_jump Jump into file selection menu when tab is hit (otherwise, menu + comes up, but cursor stays in file name prompt). + + -notagsmenu Disable tags file search menu + + -icase Search is case insensitive by default. + + -wrap Search wraps + + -autoswap Swap markb with markk when necessary + +-joe_state Use ~/.joe_state file + + -mouse Enable xterm mouse support. When enabled, left-click will + position the cursor and left-click-drag will select blocks + For normal xterm cut and paste, hold the shift key down. + + -joexterm If you are using XTerm version 212 or higher, and if it was + configured with --enable-paste64, set this flag: it allows + mouse cut & paste to work properly (text selected with the + mouse can be pasted into other application, and middle + button clicks paste into JOE). + +-brpaste When JOE starts, send command to the terminal emulator that + enables "bracketed paste mode" (but only if the terminal + seems to have the ANSI command set). In this mode, text + pasted into the window is bracketed with ESC [ 2 0 0 ~ and + ESC [ 2 0 1 ~. + +-pastehack If keyboard input comes in as one block assume it's a mouse + paste and disable autoindent and wordwrap. + + -square Rectangular block mode + + -text_color color + Set color for text. + -status_color color + Set color for status bar. + -help_color color + Set color for help. + -menu_color color + Set color for menus. + -prompt_color color + Set color for prompts. + -msg_color color + Set color for messages. + + For example: -text_color bg_blue+white + Sets the background color to blue and foreground color to white. + +-restore Restore previous cursor position when files are opened + +-search_prompting + Search prompts with previous search request. + + -regex Search uses standard regular expression format (otherwise it uses + JOE format where all special characters have to be escaped). + + Status line definition strings. -lmsg defines the left-justified string and + -rmsg defines the right-justified string. The first character of -rmsg is + the background fill character. The following escape sequences can be used + in these strings: + + %t 12 hour time + %u 24 hour time + %T O for overtype mode, I for insert mode + %W W if wordwrap is enabled + %I A if autoindent is enabled + %X Rectangle mode indicator + %n File name + %m '(Modified)' if file has been changed + %* '*' if file has been changed + %R Read-only indicator + %r Row (line) number + %c Column number + %o Byte offset into file + %O Byte offset into file in hex + %a Ascii value of character under cursor + %A Ascii value of character under cursor in hex + %w Width of character under cursor + %p Percent of file cursor is at + %l No. lines in file + %k Entered prefix keys + %S '*SHELL*' if there is a shell running in window + %M Macro recording message + %y Syntax + %e Encoding of file + %b Encoding of terminal + %x Context (first non-indented line going backwards) + %dd day + %dm month + %dY year + %Ename% value of environment variable + %Zname% value of option (ON or OFF for boolean options) + (hit TAB at mode command prompt for full list) + + These formatting escape sequences may also be given: + + \i Inverse + \u Underline + \b Bold + \d Dim + \f Blink + \l Italic + +-lmsg \i%k%T%W%I%X %n %m%y%R %M %x %e +-rmsg %dd/%dm/%dY %t %S Row %4r Col %3c +-smsg ** Line %r Col %c Offset %o(0x%O) %e %a(0x%A) Width %w ** +-zmsg ** Line %r Col %c Offset %o(0x%O) ** +-xmsg \i Joe's Own Editor %v (%b) ** Type \bCtrl-K Q\b to exit or \bCtrl-K H\b for help **\i + + Key sequence hints which are displayed in various prompts. +-aborthint ^C +-helphint ^K H + + SECOND SECTION: File name dependant local option settings: + + Name a file type definition section with: + + [python] (but put opening bracket in first column) + + Each line with '*' in the first column provides a file name matching + regular expression (in shell glob format). If more than one regular + expression matches the file name, then the last matching one is chosen. + + A file contents regular expression may also be specified on a separate line + with '+regex'. If this regular expresssion is given, then both the file name + regex and the file contents regex must match for the options to apply. + + Here are the modes which can be set: + + -cpara >#!;*/% + Characters which can indent paragraphs. + + -cnotpara . + Characters which begin non-paragraph lines. + + -encoding name + Set file coding (for example: utf-8, iso-8859-15) + + -syntax name + Specify syntax (syntax file called + 'name.jsf' will be loaded) + + -hex Hex editor mode + + -highlight Enable highlighting + + -smarthome Home key first moves cursor to beginning of line, + then if hit again, to first non-blank character. + + -indentfirst Smart home goes to first non-blank character first, + instead of going the beginning of line first. + + -smartbacks Backspace key deletes 'istep' number of + 'indentc's if cursor is at first non-space + character. + + -tab 2 Tab width + + -indentc nnn Indentation character (32 for space, 9 for tab) + + -istep nnn Number of indentation columns + +-spaces TAB inserts spaces instead of tabs. + + -purify Fix indentation if necessary for rindent, lindent and backs + (for example if indentation uses a mix of tabs and spaces, + and indentc is space, indentation will be converted to all + spaces). + + -crlf File uses CR-LF at ends of lines + + -wordwrap Wordwrap + + -nobackup If you don't want backup file to be created + + -autoindent Auto indent + + -overwrite Overtype mode + + -picture Picture mode (right arrow can go past end of lines) + + -lmargin nnn Left margin + + -rmargin nnn Right margin + + -flowed Put one space after intermediate paragraph lines + for support of flowed text. + + + -french One space after '.', '?' and '!' for wordwrap + and paragraph reformat instead of two. Joe + does not change the spacing you give, but + sometimes it must put spacing in itself. This + selects how much is inserted. + +-linums Enable line numbers on each line + + -rdonly File is read-only + + -keymap name + Keymap to use if not 'main' + + -lmsg Status line definition strings- + -rmsg see previous section for more info. + + -mfirst macro + Macro to execute on first modification + -mnew macro + Macro to execute when new files are loaded + -mold macro + Macro to execute when existing files are loaded + -msnew macro + Macro to execute when new files are saved + -msold macro + Macro to execute when existing files are saved + + Macros for the above options are in the same format as in the key + binding section below- but without the key name strings. + + These define the language syntax for ^G (goto matching delimiter): + + -highlighter_context Use the highlighter context for ^G + + -single_quoted Text between ' ' should be ignored (this is + not good for regular text since ' is + normally used alone as an apostrophe) + + -no_double_quoted Text between " " should not be ignored (useful + for TeX). + + -c_comment Text between /* */ should be ignored + + -cpp_comment Text after // should be ignored + + -pound_comment Text after # should be ignored + + -vhdl_comment Text after -- should be ignored + + -semi_comment Text after ; should be ignored + + -text_delimiters begin=end:if=elif=else=endif + + Define word delimiters + + Default local options +-highlight +-istep 4 + + Perforce macro: use this macro (put in first column) to have joe "p4 edit" + a file you're about to change. + + -mfirst if,"rdonly && joe(sys,\"p4 edit \",name,rtn)",then,mode,"o",msg,"executed \"p4 edit ",name,"\"",rtn,endif + + -mfirst if,"rdonly && joe(sys,\"p4 edit \",name,rtn)",then,reload,msg,"executed \"p4 edit ",name,"\"",rtn,endif + + File type table is now in a separate file. You can copy this file to ~/.joe and customize it. + +:include ftyperc + + SECOND and 1/2 SECTION: Option menu layout + + :defmenu name [macro] + Defines a menu. + The macro here is executed when the user hits backspace. + + macro string comment + A menu entry. Macro is any JOE macro- see "Macros:" + below. String is the label to be used for the macro + in the menu. It is in the same format as the -lmsg + and -rmsg options above. + + Two whitespace characters in a row begins a comment. + Use '% ' for a leading space in the string. + +:defmenu root +mode,"overwrite",rtn T Overtype %Zoverwrite% +mode,"hex",rtn ' Hex edit mode +mode,"autoindent",rtn I Autoindent %Zautoindent% +mode,"wordwrap",rtn W Word wrap %Zwordwrap% +mode,"tab",rtn D Tab width %Ztab% +mode,"lmargin",rtn L Left margin %Zlmargin% +mode,"rmargin",rtn R Right margin %Zrmargin% +mode,"square",rtn X Column mode %Zsquare% +mode,"indentc",rtn % % Indent char %Zindentc% +mode,"istep",rtn % % Indent step %Zistep% +menu,"indent",rtn = Indent select +mode,"highlight",rtn H Highlighting %Zhighlight% +mode,"crlf",rtn Z CR-LF/MS-DOS %Zcrlf% +mode,"linums",rtn N Line numbers %Zlinums% +mode,"beep",rtn B Beep %Zbeep% +mode,"rdonly",rtn O Read only %Zrdonly% +mode,"syntax",rtn Y Syntax +mode,"encoding",rtn E Encoding +mode,"asis",rtn % % Meta chars as-is +mode,"language",rtn V Language +mode,"picture",rtn P picture %Zpicture% +mode,"type",rtn F File type [%Ztype%] +mode,"title",rtn C Context %Ztitle% +menu,"more-options",rtn % % More options... + +:defmenu more-options menu,"root",rtn +menu,"^G",rtn % % ^G options +menu,"search",rtn % % search options +menu,"paragraph",rtn % % paragraph options +menu,"file",rtn % % file options +menu,"menu",rtn % % menu options +menu,"global",rtn % % global options +menu,"cursor",rtn % % cursor options +menu,"marking",rtn % % marking options +menu,"tab",rtn % % tab/indent options + +:defmenu indent menu,"root",rtn +mode,"istep",rtn,"1",rtn,mode,"indentc",rtn,"32",rtn,msg,"Indent step = 1, Indent character = 32",rtn 1 Space +mode,"istep",rtn,"2",rtn,mode,"indentc",rtn,"32",rtn,msg,"Indent step = 2, Indent character = 32",rtn 2 Spaces +mode,"istep",rtn,"3",rtn,mode,"indentc",rtn,"32",rtn,msg,"Indent step = 3, Indent character = 32",rtn 3 Spaces +mode,"istep",rtn,"4",rtn,mode,"indentc",rtn,"32",rtn,msg,"Indent step = 4, Indent character = 32",rtn 4 Spaces +mode,"istep",rtn,"5",rtn,mode,"indentc",rtn,"32",rtn,msg,"Indent step = 5, Indent character = 32",rtn 5 Spaces +mode,"istep",rtn,"8",rtn,mode,"indentc",rtn,"32",rtn,msg,"Indent step = 8, Indent character = 32",rtn 8 Spaces +mode,"istep",rtn,"10",rtn,mode,"indentc",rtn,"32",rtn,msg,"Indent step = 10, Indent character = 32",rtn 0 Ten +mode,"istep",rtn,"1",rtn,mode,"indentc",rtn,"9",rtn,msg,"Indent step = 1, Indent character = 9",rtn T Tab + +:defmenu menu menu,"more-options",rtn +mode,"menu_explorer",rtn % % Menu explorer %Zmenu_explorer% +mode,"menu_above",rtn % % Menu position %Zmenu_above% +mode,"menu_jump",rtn % % Jump into menu %Zmenu_jump% +mode,"transpose",rtn % % Transpose menus %Ztranspose% + +:defmenu ^G menu,"more-options",rtn +mode,"highlighter_context",rtn % % ^G uses highlighter context %Zhighlighter_context% +mode,"single_quoted",rtn % % ^G ignores '...' %Zsingle_quoted% +mode,"no_double_quoted",rtn % % ^G no ignore "..." %Zno_double_quoted% +mode,"c_comment",rtn % % ^G ignores /*...*/ %Zc_comment% +mode,"cpp_comment",rtn % % ^G ignores //... %Zcpp_comment% +mode,"pound_comment",rtn % % ^G ignores #... %Zpound_comment% +mode,"vhdl_comment",rtn % % ^G ignores --... %Zvhdl_comment% +mode,"semi_comment",rtn % % ^G ignores ;... %Zsemi_comment% +mode,"tex_comment",rtn % % ^G ignores %%... %Ztex_comment% +mode,"text_delimiters",rtn % % Text delimiters %Ztext_delimiters% + +:defmenu search menu,"more-options",rtn +mode,"icase",rtn % % Case insensitivity %Zicase% +mode,"wrap",rtn % % Search wraps %Zwrap% +mode,"search_prompting",rtn % % Search prompting %Zsearch_prompting% +mode,"csmode",rtn % % Continued search %Zcsmode% + +:defmenu paragraph menu,"more-options",rtn +mode,"french",rtn % % French spacing %Zfrench% +mode,"flowed",rtn % % Flowed text %Zflowed% +mode,"cpara",rtn % % Paragraph indent chars %Zcpara% +mode,"cnotpara",rtn % % Not-paragraph chars %Zcnotpara% + +:defmenu file menu,"more-options",rtn +mode,"restore",rtn % % Restore cursor %Zrestore% +mode,"guess_crlf",rtn % % Auto detect CR-LF %Zguess_crlf% +mode,"guess_indent",rtn % % Guess indent %Zguess_indent% +mode,"guess_non_utf8",rtn % % Guess non-UTF-8 %Zguess_non_utf8% +mode,"guess_utf8",rtn % % Guess UTF-8 %Zguess_utf8% +mode,"guess_utf16",rtn % % Guess UTF-16 %Zguess_utf16% +mode,"force",rtn % % Force last NL %Zforce% +mode,"nobackup",rtn % % No backup %Znobackup% + +:defmenu global menu,"more-options",rtn +mode,"nolocks",rtn % % Disable locks %Znolocks% +mode,"nobackups",rtn % % Disable backups %Znobackups% +mode,"nodeadjoe",rtn % % Disable DEADJOE %Znodeadjoe% +mode,"nomodcheck",rtn % % Disable mtime check %Znomodcheck% +mode,"nocurdir",rtn % % Disable current dir %Znocurdir% +mode,"exask",rtn % % Exit ask %Zexask% +mode,"nosta",rtn % % Disable status line %Znosta% +mode,"keepup",rtn % % Fast status line %Zkeepup% +mode,"break_hardlinks",rtn % % Break hard links %Zbreak_hardlinks% +mode,"break_links",rtn % % Break links %Zbreak_links% +mode,"joe_state",rtn % % Joe_state file %Zjoe_state% +mode,"undo_keep",rtn % % No. undo records %Zundo_keep% +mode,"backpath",rtn % % Path to backup files %Zbackpath% + +:defmenu cursor menu,"more-options",rtn +mode,"pg",rtn % % No. PgUp/PgDn lines %Zpg% +mode,"mid",rtn C Center on scroll %Zmid% +mode,"left",rtn L Columns to scroll left %Zleft% +mode,"right",rtn R Columns to scroll right %Zright% +mode,"floatmouse",rtn % % Click past end %Zfloatmouse% +mode,"rtbutton",rtn % % Right button %Zrtbutton% + +:defmenu marking menu,"more-options",rtn +mode,"autoswap",rtn % % Autoswap mode %Zautoswap% +mode,"marking",rtn % % Marking %Zmarking% +mode,"lightoff",rtn % % Auto unmask %Zlightoff% + +:defmenu tab menu,"more-options",rtn +mode,"smarthome",rtn % % Smart home key %Zsmarthome% +mode,"smartbacks",rtn % % Smart backspace %Zsmartbacks% +mode,"indentfirst",rtn % % To indent first %Zindentfirst% +mode,"purify",rtn % % Clean up indents %Zpurify% +mode,"spaces",rtn % % No tabs %Zspaces% + + THIRD SECTION: Named help screens: + + Use \i to turn on/off inverse video + Use \u to turn on/off underline + Use \b to turn on/off bold + Use \d to turn on/off dim + Use \f to turn on/off flash + Use \l to turn on/off italic + + Use \| to insert a spring: all springs in a given line are set to the same + width such that the entire line exactly fits in the width of the screen (if + it's not an exact multiple so that there are N spaces remaining, the + rightmost N springs each get one extra space). Hint: if you want vertical + alignment, each line should have the same number of springs. + + Use the '-help_is_utf8' global option to allow UTF-8 sequences in the help + text. Otherwise, the locale 8-bit character set is assumed. + +{Basic + \|\uREGION\u \|\uGO TO\u \|\uGO TO\u \|\uDELETE\u \|\uEXIT\u \|\uSEARCH\u \| + \|\b^Arrow\b Select \|\b^Z\b Prev. word \|\b^U/^V\b PgUp/PgDn \|\b^D\b Char. \|\b^KX\b Save \|\b^KF\b Find \| + \|\b^KB\b Begin \|\b^X\b Next word \|\uMISC\u \|\b^Y\b Line \|\b^C\b Abort \|\b^L\b Next \| + \|\b^KK\b End \|\b^KU\b Top of file \|\b^KJ\b Paragraph \|\b^W\b >Word \|\b^KQ\b All \|\uHELP\u \| + \|\b^KC\b Copy \|\b^KV\b End of file \|\b^KA\b Center line \|\b^O\b Word< \|\uFILE\u \|\bEsc .\b Next\| + \|\b^KM\b Move \|\b^A\b Beg. of line \|\b^K Space\b Status \|\b^J\b >Line \|\b^KE\b Edit \|\bEsc ,\b Prev\| + \|\b^KW\b File \|\b^E\b End of line \|\uSPELL\u \|\b^[O\b Line< \|\b^KR\b Insert \|\b^KH\b Off \| + \|\b^KY\b Delete \|\b^KL\b To line no. \|\bEsc N\b Word \|\b^_\b Undo \|\b^KD\b Save \|\b^T\b Menu \| + \|\b^K/\b Filter \|\b^G\b Matching ( \|\bEsc L\b File \|\b^^\b Redo \|\b^K`\b Revert \|\b\b \| +} + +{Advanced + \|\uMACROS\u \|\uSCROLL\u \|\uWINDOW\u \|\uGO TO\u \|\uI-SEARCH\u \| + \|\b^K[ 0-9\b Record \|\bEsc W\b Up \|\b^KO\b Open \b^C\b Close \|\bEsc B\b / \bK\b \|\b^R\b Backwards \| + \|\b^K]\b Stop \|\bEsc Z\b Down \|\b^KG\b Grow \b^KT\b Shrink \|to \b^KB\b/\b^KK \b\|\b^S\b Forwards \| + \|\bEsc I\b Text \|\bEsc <\b Left \|\b^KN\b Next \b^KP\b Prev. \|\b^P\b Up \|\uBOOKMARKS\u \| + \|\b^K?\b Pause \|\bEsc >\b Right \|\b^KI\b Show one / All \|\b^N\b Down \|\bEsc 0-9\b Goto \| + \| for prompt \|\uINSERT\u \|\uSHELL\u \|\b^B\b Left \|\bEsc Esc\b Set \| + \|\b^K 0-9\b Play \|\b^]\b Line \b^Q\b Ctrl \|\bF1-F4\b Term emulator \|\b^F\b Right \|\b^K-\b Auto prev\| + \|\b^K\\\b Repeat \|\b^@\b Space \b^\\\b Meta \|\b^K'\b In buffer \| \|\b^K=\b Auto next\| + \|\bEsc D\b Dump \|\bEsc Y\b Paste \|\b^KZ\b Suspend \bEsc !\b Append \| \| \| +} + +{Programs + \|\uCOMMANDS\u \|\uCOMPILING\u \|\uQUICK\u \| + \|\bEsc X\b Command prompt\|\bEsc C\b Save modified compile\|\b^G\b Find word under cursor \| + \|\bEsc M\b Calculator \|\bEsc G\b Grep \|\b^K;\b Tags file search \| + \|\bshowlog\b Startup log \|\bEsc =\b To next error \|\bEsc Enter\b Complete word \| + \|\bupper\b Change case \|\bEsc -\b To prev. error \|\uBUFFER\u \| + \|\blower\b Change case \|\bEsc Space\b Jump to error \|\bEsc U\b Next \| + \|\bcd\b Change dir \|\uINDENT\u \|\bEsc V\b Previous \| + \|\bkeymap\b Change map \|\b^K,\b Less \|\bEsc X bufed\b Switch \| + \| \|\b^K.\b More \| \| +} + + Missing: Esc ~ not mod + Esc e parse errors in buffer + Esc ^Y yank pop + +{Search + Search sequences: \| + \b\\^ \\$\b matches beg./end of line \b\\.\b match any single char \| + \b\\< \\>\b matches beg./end of word \b\\!\b match char or expression \| + \b\\( \\)\b grouping \b\\|\b match left or right \| + \b\\[a-z]\b matches one of a set \b\\y \\Y\b short for (.*) / (!*) \| + \b\\{1,3}\b match 1 - 3 occurrences \b\\?\b match 0 or 1 occurrence \| + \b\\+\b match 1 or more occurrences \b\\*\b match 0 or more occurrences \| + \| + \b^C\b to abort \bEsc .\b to list of escape sequences \| +} + +{Escape sequences + Escape sequences: \| + \b\\x{10fff}\b Unicode code point \b\\p{Ll}\b Unicode category \| + \b\\i\b / \b\\I\b Identifier start \b\\t\b tab \b\\e\b escape \| + \b\\c\b / \b\\C\b Identifier continue \b\\n\b newline \b\\r\b carriage return \| + \b\\d\b / \b\\D\b Digit / Not a digit \b\\b\b backspace \b\\xFF\b hex character \| + \b\\w\b / \b\\W\b Word / Not a word \b\\a\b alert \b\\377\b octal character \| + \b\\s\b / \b\\S\b Space / Not a space \b\\f\b formfeed \b\\\\\b backslash \| + \| + \| +} + +{Replace + Replace sequences: \| + \b\\&\b replaced with entire match \b\\1\b - \b9\b replaced with Nth group \| + \b\\u \\l\b convert next to upper/lower \b\\U \\L\b case convert until \b\\E\b \| + \| + \| + \| + \| + \| + \b^C\b to abort \bEsc ,\b to list of escape sequences \| +} + +{SearchOptions + Search options: \| + \br\b Replace \bk\b Restrict search to highlighted block \| + \bi\b Ignore case \bb\b Search backwards instead of forwards \| + \ba\b Search across all loaded files \| + \be\b Search across all files in Grep or Compile error list \| + \bw\b / \bn\b Allow / prevent wrap to start of file \| + \bx\b / \by\b Search text is standard format / JOE format regular expression \| + \bnnn\b Perform exactly nnn replacements \| + \b^C\b to abort +} + +{Math + \uMATH COMMANDS\u \uCONSTANTS\u \| + \bhex oct bin\b display mode \b0xff\b hex entry \| + \beng dec\b engineering / normal \b0o77\b octal entry \| + \bins\b type result into file \b0b11\b binary entry \| + \beval\b evaluate block \b3e-4\b floating point entry \| + 2+3\b:\bins multiple commands \uVARIABLES\u \| + \uOPERATORS\u \bans\b Previous result \| + \b! ^ * / % + -\b \ba=10\b Assign a variable \| + \b< <= > >= == != && || ? :\b \bEsc .\b for list of functions \| +} + +{Functions + \uFUNCTIONS\u \uCONSTANTS\u \| + \bsin cos tab asin acos atan\b \be pi\b \| + \bsinh cosh tanh asinh acosh atanh\b \| + \bsqrt cbrt exp ln log\b \| + \bint floor ceil abs\b \| + \berf erfc j0 j1 y0 y1\b \| + \bjoe(..macro..)\b - runs an editor macro \| + \| + \bEsc .\b for statistics \| +} + +{Statistics + \uMATH COMMANDS\u \| + Statistics on region of numbers Linear regression on region of x y pairs \| + \bsum\b Sum \blr(x)\b Estimate y given x y=m*x+b \| + \bcnt\b Count \brlr(y)\b Estimate x given y \| + \bavg\b Mean \bLr rLr\b Logarithmic regression y=m*ln(x)+b \| + Standard deviation: \blR rlR\b Exponential regression y=e^(m*x)+b \| + \bdev\b all data present \bLR rLR\b Power regression y=b*x^m \| + \bsamp\b sample of data present Side effects: \bb\b, \bm\b: regression coef. \| + \br\b: correlation coef., \bcov\b: covariance \| +} + +{Names + Hit TAB to complete names. Use up / down arrow keys to traverse history. \| + Special file names: \| + \b!\bcommand Pipe in/out of a shell command \| + \b>>\bfilename Append to a file \| + \b-\b Read/Write to/from standard I/O \| + filename\b,START,SIZE\b Read/Write a part of a file/device \| + Give START/SIZE in decimal (255), octal (0377) or hex (0xFF) \| + \b\\,\b Use backslash to quote special characters \| + \b^C\b to abort +} + +{CharTable + \| Dec \u 0123 4567 8901 2345 0123 4567 8901 2345 \u Dec \| + \| 0 | \u@ABC\u \uDEFG\u \uHIJK\u \uLMNO\u \i\u@ABC\u\i \i\uDEFG\u\i \i\uHIJK\u\i \i\uLMNO\u\i | 128 \| + \| 16 | \uPQRS\u \uTUVW\u \uXYZ[\u \u\\]^_\u \i\uPQRS\u\i \i\uTUVW\u\i \i\uXYZ[\u\i \i\u\\]^_\u\i | 144 \| + \| 32 | !"# $%&' ()*+ ,-./  ¡¢£ ¤¥¦§ ¨©ª« ¬X®¯ | 160 \| + \| 48 | 0123 4567 89:; <=>? °±²³ ´µ¶· ¸¹º» ¼½¾¿ | 176 \| + \| 64 | @ABC DEFG HIJK LMNO ÀÁÂà ÄÅÆÇ ÈÉÊË ÌÍÎÏ | 192 \| + \| 80 | PQRS TUVW XYZ[ \\]^_ ÐÑÒÓ ÔÕÖ× ØÙÚÛ ÜÝÞß | 208 \| + \| 96 | `abc defg hijk lmno àáâã äåæç èéêë ìíîï | 224 \| + \| 112 | pqrs tuvw xyz{ |}~ ðñòó ôõö÷ øùúû üýþÿ | 240 \| +} + +{Joe + Send bug reports to: http://sourceforge.net/projects/joe-editor \| + \| + default joerc file is here /usr/local/etc/joe/joerc \| + default syntax and i18n files are here /usr/local/share/joe \| + additional documentation can be found here /usr/local/share/doc/joe \| + \| + \| + \| + \| +} + + FOURTH SECTION: Key bindings: + + Section names you must provide: + + :main For editing window + :prompt For prompt lines + :query For single-character query lines + :querya Singe-character query for quote + :querysr Search & Replace single-character query + :shell For shell windows + :vtshell For terminal emulator windows + + Other sections may be given as well for organization purposes or for + use with the '-keymap' option. + + Use: + :inherit name To copy the named section into the current one + :delete key To delete a key sequence from the current section + + Keys: + + Use U+12345 for specific unicode character + Use ^@ through ^_ and ^? for Ctrl chars + Use SP for space + Use a TO b to generate a range of characters + Use MDOWN, MDRAG, MUP, M2DOWN, M2DRAG, M2UP, M3DOWN, M3DRAG, M3UP for mouse + Use MWDOWN, MWUP for wheel mouse motion + Use ^# for 0x9B (for Amiga). But warning: this breaks UTF-8 keyboards. + + You can also use termcap string capability names. For example: + + .ku Up + .kd Down + .kl Left + .kr Right + .kh Home + .kH End + .kI Insert + .kD Delete + .kP PgUp + .kN PgDn + .k1 - .k9 F1 - F9 + .k0 F0 or F10 + .k; F10 + + Macros: + + Simple macros can be made by comma seperating 2 or more command names. For + example: + + eof,bol ^T Z Goto beginning of last line + + Also quoted matter is typed in literally: + + bol,">",dnarw .k1 Quote news article line + + Macros may cross lines if they end with , + + Commands or named macros may be created with :def. For example, you can + use: + + :def foo eof,bol + + To define a command foo which will goto the beginning of the last line. + + Recenter +:def recenter retype,arg,"top+height/2-line",rtn,upslide + +:windows Bindings common to all windows +type U+0 TO U+10FFFF +abort ^C Abort window + abort ^K Q + abort ^K ^Q + abort ^K q +querysave,query,killjoe ^K Q Query to save files, then exit +querysave,query,killjoe ^K ^Q +querysave,query,killjoe ^K q +arg ^K \ Repeat next command +explode ^K I Show all windows or show only one window +explode ^K ^I +explode ^K i +help ^K H Help menu +help ^K ^H +help ^K h +hnext ^[ . Next help window +hprev ^[ , Previous help window +math ^[ m Calculator +math ^[ M Calculator + math ^[ ^M Calculator +msg ^[ h Display a message +msg ^[ H Display a message +msg ^[ ^H Display a message +nextw ^K N Goto next window +nextw ^K ^N +nextw ^K n +pgdn .kN Screen down +pgdn ^V +pgdn ^[ [ 6 ~ + pgdn ^# S +pgup .kP Screen up +pgup ^U +pgup ^[ [ 5 ~ + pgup ^# T +play ^K 0 TO 9 Execute macro +prevw ^K P Goto previous window +prevw ^K ^P +prevw ^K p +query ^K ? Macro query insert +record ^K [ Record a macro + retype ^R Refresh screen + recenter ^R Recenter and refresh screen +rtn ^M Return +shell ^K Z Shell escape +shell ^K ^Z +shell ^K z +stop ^K ] Stop recording + Mouse handling +defmdown MDOWN Move the cursor to the mouse location +defmup MUP +defmdrag MDRAG Select a region of characters +defm2down M2DOWN Select the word at the mouse location +defm2up M2UP +defm2drag M2DRAG Select a region of words +defm3down M3DOWN Select the line at the mouse location +defm3up M3UP +defm3drag M3DRAG Select a region of lines +defmiddleup MIDDLEUP +defmiddledown MIDDLEDOWN Insert text + +xtmouse ^[ [ M Introduces an xterm mouse event +extmouse ^[ [ < Introduces an extended xterm mouse event + + Sample if/then/else macro + if,"char==65",then,"it's an A",else,"it's not an a",endif ^[ q + +:main Text editing window +:inherit windows + + Spell-check macros + + Ispell +:def ispellfile filt,"cat >ispell.tmp;ispell ispell.tmp </dev/tty >/dev/tty;cat ispell.tmp;/bin/rm ispell.tmp",rtn,retype +:def ispellword psh,nextword,markk,prevword,markb,filt,"cat >ispell.tmp;ispell ispell.tmp </dev/tty >/dev/tty;tr -d <ispell.tmp '\\012';/bin/rm ispell.tmp",rtn,retype,nextword + + Aspell +:def aspellfile filt,"SPLTMP=ispell.tmp;cat >$SPLTMP;aspell --lang=",language,".",charset," -x -c $SPLTMP </dev/tty >/dev/tty;cat $SPLTMP;/bin/rm $SPLTMP",rtn,retype +:def aspellword psh,nextword,markk,prevword,markb,filt,"SPLTMP=ispell.tmp;cat >$SPLTMP;aspell --lang=",language,".",charset," -x -c $SPLTMP </dev/tty >/dev/tty;tr -d <$SPLTMP '\\012';/bin/rm $SPLTMP",rtn,retype,nextword + + +aspellfile ^[ l +aspellword ^[ n + + Compile + +:def compile mwind!,mfit!,querysave,query,scratch,"* Build Log *",rtn,bof,markb,eof," ",markk,blkdel,build + + Grep + +:def grep_find mwind!,mfit!,scratch,"* Grep Log *",rtn,bof,markb,eof," ",markk,blkdel,grep + + Man page + +:def man scratch,"* Man Page *",rtn,bof,markb,eof," ",markk,blkdel," ",ltarw,run,"man -P cat -S 2:3 " + + Shell windows + We load the already existing Startup Log first so that Shell does not inherit the current directory. + +:def shell1 scratch_push,"* Startup Log *",rtn,scratch_push,"* Shell 1 *",rtn,vtbknd!,eof +:def shell2 scratch_push,"* Startup Log *",rtn,scratch_push,"* Shell 2 *",rtn,vtbknd!,eof +:def shell3 scratch_push,"* Startup Log *",rtn,scratch_push,"* Shell 3 *",rtn,vtbknd!,eof +:def shell4 scratch_push,"* Startup Log *",rtn,scratch_push,"* Shell 4 *",rtn,vtbknd!,eof + + Macros allowed in shell window commands +:def shell_clear psh,bof,markb,eof,markk,blkdel +:def shell_parse parserr +:def shell_gparse gparse +:def shell_release release +:def shell_math maths +:def shell_abort abort +:def shell_typemath txt,maths,"ins",rtn,rtn,txt," ",rtn,txt,quote,"d",rtn +:def shell_rtn rtn +:def shell_edit edit +:def shell_dellin dellin +:def shell_cd cd +:def shell_pop popabort +:def shell_markb markb +:def shell_markk markk + + Split window version + :def shell1 if,"is_shell==0",then,tw1,mfit,endif,scratch,"* Shell 1 *",rtn,vtbknd!,eof + :def shell2 if,"is_shell==0",then,tw1,mfit,endif,scratch,"* Shell 2 *",rtn,vtbknd!,eof + :def shell3 if,"is_shell==0",then,tw1,mfit,endif,scratch,"* Shell 3 *",rtn,vtbknd!,eof + :def shell4 if,"is_shell==0",then,tw1,mfit,endif,scratch,"* Shell 4 *",rtn,vtbknd!,eof + + + Here we guess some common key sequences which either do not have termcap + sequences or which are frequently wrong. Note that if the termcap entry is + correct, it will override these later on. + +paste ^[ ] 5 2 ; Base64 paste (obsolete) +brpaste ^[ [ 2 0 0 ~ Bracketed paste +brpaste_done ^[ [ 2 0 1 ~ Bracketed paste done + +insc ^[ [ 2 ~ +insc ^[ [ L SCO + +delch ^[ [ 3 ~ + +pgup ^[ [ I SCO + +pgdn ^[ [ G SCO + +home ^[ [ 1 ~ Putty, Linux, Cygwin +home ^[ [ H Xterm, Konsole, SCO +home ^[ O H gnome-terminal +home ^[ [ 7 ~ RxVT + home ^# SP A Amiga + +eol ^[ [ 4 ~ Putty, Linux, Cygwin, ssh +eol ^[ [ F Xterm, Konsole, SCO +eol ^[ O F gnome-terminal +eol ^[ [ 8 ~ RxVT + eol ^# SP @ Amiga + +rtarw,ltarw,begin_marking,rtarw,toggle_marking ^[ [ 1 ; 5 C Mark right Xterm +rtarw,ltarw,begin_marking,rtarw,toggle_marking ^[ [ 5 C Mark right Gnome-terminal + (Almost all termcap entries have ^[ O C as an arrow key). + rtarw,ltarw,begin_marking,rtarw,toggle_marking ^[ O C Mark right Putty Ctrl-rtarw +rtarw,ltarw,begin_marking,rtarw,toggle_marking ^[ O c Mark right RxVT Ctrl-rtarw + +ltarw,rtarw,begin_marking,ltarw,toggle_marking ^[ [ 1 ; 5 D Mark left +ltarw,rtarw,begin_marking,ltarw,toggle_marking ^[ [ 5 D Mark left + ltarw,rtarw,begin_marking,ltarw,toggle_marking ^[ O D Mark left Putty Ctrl-ltarw +ltarw,rtarw,begin_marking,ltarw,toggle_marking ^[ O d Mark left RxVT Ctrl-ltarw + +uparw,dnarw,begin_marking,uparw,toggle_marking ^[ [ 1 ; 5 A Mark up +uparw,dnarw,begin_marking,uparw,toggle_marking ^[ [ 5 A Mark up + uparw,dnarw,begin_marking,uparw,toggle_marking ^[ O A Mark up Putty Ctrl-uparw +uparw,dnarw,begin_marking,uparw,toggle_marking ^[ O a Mark up RxVT Ctrl-uparw + +dnarw,uparw,begin_marking,dnarw,toggle_marking ^[ [ 1 ; 5 B Mark down +dnarw,uparw,begin_marking,dnarw,toggle_marking ^[ [ 5 B Mark down + dnarw,uparw,begin_marking,dnarw,toggle_marking ^[ O B Mark down Putty Ctrl-dnarw +dnarw,uparw,begin_marking,dnarw,toggle_marking ^[ O b Mark down RxVT Ctrl-dnarw + +blkdel,nmark ^[ [ 3 ; 5 - Gnome-terminal Ctrl-Del +blkdel,nmark ^[ [ 3 ; 5 ~ Xterm Ctrl-Del + +yank ^[ [ 2 ; 5 - Gnome-terminal Ctrl-Ins +yank ^[ [ 2 ; 5 ~ Xterm Ctrl-Ins + + Extra functions not really part of JOE user interface: + +delbol ^[ o Delete to beginning of line +delbol ^[ ^O Delete to beginning of line +dnslide ^[ z Scroll down one line +dnslide ^[ Z Scroll down one line +dnslide ^[ ^Z Scroll down one line +dnslide,dnslide,dnslide,dnslide MWDOWN +compile ^[ c Compile +compile ^[ C +compile ^[ ^C Compile +grep_find ^[ g Grep +grep_find ^[ G Grep +grep_find ^[ ^G Grep +execmd ^[ x Prompt for command to execute +execmd ^[ X Prompt for command to execute +execmd ^[ ^X Prompt for command to execute +finish ^[ ^I Complete word in document +finish ^[ ^M Complete word: used to be math +mwind!,mfit,jump,bol ^[ SP +isrch ^[ s Forward incremental search +isrch ^[ S Forward incremental search +isrch ^[ ^S Forward incremental search +isrch ^S +notmod ^[ ~ Not modified +mwind,mfit,prevw,nxterr ^[ = To next error +parserr ^[ e Parse errors in current buffer +parserr ^[ E Parse errors in current buffer +parserr ^[ ^E Parse errors in current buffer +mwind,mfit,prevw,prverr ^[ - To previous error +rsrch ^[ r Backward incremental search +rsrch ^[ R Backward incremental search +rsrch ^[ ^R Backward incremental search +retype,rsrch ^R +run ^[ ! Run a program in a window +tomarkb ^[ b Go to beginning of marked block +tomarkb ^[ ^B Go to beginning of marked block +tomarkk ^[ k Go to end of marked block +tomarkk ^[ ^K Go to end of marked block +tomarkk ^[ K Go to end of marked block +txt ^[ i Prompt for text and insert it +txt ^[ I Prompt for text and insert it +upslide ^[ w Scroll up one line +upslide ^[ ^W Scroll up one line +upslide ^[ W Scroll up one line +upslide,upslide,upslide,upslide MWUP +yank ^[ y Undelete text +yankpop ^[ ^Y Undelete text +yank ^[ Y Undelete text + + toggle_marking ^@ Ctrl-space block selection method +insc ^@ Ctrl-space used to insert a space + + bufed ^[ d Menu of buffers +nbuf ^[ v Next buffer +nbuf ^[ V Next buffer +nbuf ^[ ^V Next buffer +pbuf ^[ u Prev buffer +pbuf ^[ U Prev buffer +pbuf ^[ ^U Prev buffer + query ^[ q Quoted insert + byte ^[ n Goto byte + col ^[ c Goto column + abortbuf ^[ k Kill current buffer- don't mess with windows + ask ^[ a Ask to save current buffer + bop ^[ p Backwards paragraph + bos ^[ x Bottom of screen + copy ^[ ^W Copy block into yank + dupw ^[ \ Split window + eop ^[ n Forwards paragraph + format ^[ j Format paragraph ignore block + markl ^[ l Mark line + nmark ^[ @ Turn off ^KB ^KK + pop ^[ > Pop ^KB ^KK + psh ^[ < Push ^KB ^KK + swap ^[ x Swap ^KB and cursor + tomarkbk ^[ g Switch between beginning and end of marked + tos ^[ e Top of screen + tw0 ^[ 0 Kill current window (orphans buffer) + tw1 ^[ 1 Kill all other windows (orphans buffers) + uarg ^[ u Universal argument + yank ^[ ^Y Undelete previous text + yapp ^[ w Append next delete to previous yank + + Standard JOE user interface + +quote8 ^\ Enter Meta chars + quote ` Enter Ctrl chars +quote ^[ ' Enter Ctrl chars +quote ^Q + +backs ^? Backspace +backs ^H +backw ^O Backspace word +bknd ^K ' Shell window +blkcpy ^K C Copy marked block +blkcpy ^K ^C +blkcpy ^K c +blkdel ^K Y Delete marked block +blkdel ^K ^Y +blkdel ^K y +blkmove ^K M Move marked block +blkmove ^K ^M +blkmove ^K m +blksave ^K W Save marked block +blksave ^K ^W +blksave ^K w +bof ^K U Goto beginning of file +bof ^K ^U +bof ^K u + bol .kh Goto beginning of line + bol ^A + bol ^# SP A +home .kh +home ^A +center ^K A Center line +center ^K ^A +center ^K a +crawll ^K < Pan left +crawll ^[ < Pan left +crawlr ^K > Pan right +crawlr ^[ > Pan right +delch .kD Delete character +delch ^D +deleol ^J Delete to end of line +dellin ^Y Delete entire line +delw ^W Delete word to right +dnarw .kd Go down +dnarw ^N +dnarw ^[ O B +dnarw ^[ [ B + dnarw ^# B +edit ^K E Edit a file +edit ^K ^E +edit ^K e +eof ^K V Go to end of file +eof ^K ^V +eof ^K v +eol .kH Go to end of line +eol .@7 +eol ^E +exsave ^K X Save and exit +exsave ^K ^X +exsave ^K x +ffirst ^K F Find first +ffirst ^K ^F +ffirst ^K f +filt ^K / Filter block + finish ^K ^M Complete text under cursor +fnext ^L Find next +fmtblk ^K J Format paragraphs in block +fmtblk ^K ^J +fmtblk ^K j +gomark ^[ 0 TO 9 Goto bookmark +groww ^K G Grow window +groww ^K ^G +groww ^K g +insc .kI Insert a space + insc ^@ +insf ^K R Insert a file +insf ^K ^R +insf ^K r +lindent ^K , Indent to left +line ^K L Goto line no. +line ^K ^L +line ^K l +ltarw .kl Go left +ltarw ^B +ltarw ^[ O D +ltarw ^[ [ D + ltarw ^# D +macros ^[ d Dump keyboard macros +macros ^[ ^D +markb ^K B Set beginning of marked block +markb ^K ^B +markb ^K b +markk ^K K Set end of marked block +markk ^K ^K +markk ^K k + mode ^T Options menu +menu,"root",rtn ^T +nextpos ^K = Goto next position in position history +nextword ^X Goto next word +open ^] Split line +prevpos ^K - Previous position in history +prevword ^Z Previous word +reload ^K ` Revert file +redo ^^ Redo changes +rindent ^K . Indent to right +rtarw .kr Go right +rtarw ^F +rtarw ^[ O C +rtarw ^[ [ C + rtarw ^# C +run ^K ! Run a shell command +save ^K D Save file +save ^K S +save ^K ^D +save ^K ^S +save ^K d +save ^K s +setmark ^[ ^[ Set bookmark +shrinkw ^K T Shrink window +shrinkw ^K ^T +shrinkw ^K t +splitw ^K O Split window +splitw ^K ^O +splitw ^K o +stat ^K SP Show status +stat ^K ^@ Show status +tag ^K ; Tags file search +tomatch ^G Goto matching parenthasis +undo ^_ Undo changes +uparw .ku Go up + uparw ^# A +uparw ^P +uparw ^[ O A +uparw ^[ [ A +shell1 ^[ [ 1 1 ~ +shell1 ^[ O P +shell1 ^[ [ [ A +shell1 .k1 +shell2 ^[ [ 1 2 ~ +shell2 ^[ O Q +shell2 ^[ [ [ B +shell2 .k2 +shell3 ^[ [ 1 3 ~ +shell3 ^[ O R +shell3 ^[ [ [ C +shell3 .k3 +shell4 ^[ [ 1 4 ~ +shell4 ^[ O S +shell4 ^[ [ [ D +shell4 .k4 + +:prompt Prompt windows +:inherit main +if,"byte>size",then,complete,complete,else,delch,endif ^D +complete ^I +dnarw,eol .kd Go down +dnarw,eol ^N +dnarw,eol ^[ O B +dnarw,eol ^[ [ B + dnarw,eol ^# B +uparw,eol .ku Go up + uparw,eol ^# A +uparw,eol ^P +uparw,eol ^[ O A +uparw,eol ^[ [ A + +:menu Selection menus +:inherit windows + +pgupmenu ^[ [ I + +pgdnmenu ^[ [ G + +bolmenu ^[ [ 1 ~ Putty, Linux, Cygwin +bolmenu ^[ [ H Xterm, Konsole +bolmenu ^[ O H gnome-terminal +bolmenu ^[ [ 7 ~ RxVT + bolmenu ^# SP A Amiga + +eolmenu ^[ [ 4 ~ Putty, Linux, Cygwin, ssh +eolmenu ^[ [ F Xterm, Konsole +eolmenu ^[ O F gnome-terminal +eolmenu ^[ [ 8 ~ RxVT + eolmenu ^# SP @ Amiga + +abort ^[ ^[ Why? +backsmenu ^? +backsmenu ^H +bofmenu ^K U +bofmenu ^K ^U +bofmenu ^K u +bolmenu .kh +bolmenu ^A +dnarwmenu .kd +dnarwmenu ^N +dnarwmenu ^[ [ B +dnarwmenu ^[ O B + dnarwmenu ^# B +dnarwmenu MWDOWN +eofmenu ^K V +eofmenu ^K ^V +eofmenu ^K v +eolmenu .kH +eolmenu ^E +ltarwmenu .kl +ltarwmenu ^B +ltarwmenu ^[ [ D +ltarwmenu ^[ O D + ltarwmenu ^# D +pgdnmenu .kN Screen down +pgdnmenu ^V +pgdnmenu ^[ [ 6 ~ + pgdnmenu ^# S +pgupmenu .kP Screen up +pgupmenu ^U +pgupmenu ^[ [ 5 ~ + pgupmenu ^# T +rtarwmenu .kr +rtarwmenu ^F +rtarwmenu ^[ [ C + rtarwmenu ^# C +rtarwmenu ^[ O C +rtn SP +rtn ^I +rtn ^K H +rtn ^K h +rtn ^K ^H +tabmenu ^I +uparwmenu .ku +uparwmenu ^P +uparwmenu ^[ [ A +uparwmenu ^[ O A + uparwmenu ^# A +uparwmenu MWUP +defm2down M2DOWN Hits return key + +:query Single-key query window +:inherit windows + +:querya Single-key query window for quoting +type U+0 TO U+10FFFF + +:querysr Search & replace query window +type U+0 TO U+10FFFF + +:shell Input to shell windows +:inherit main +"" ^C Abort +"" ^D Eof +" " ^I Tab +"" ^H Backspace +" " ^M Return +"" ^? Backspace + +:vtshell Input to ANSI shell windows +:inherit main +""  [ A +"" .ku +""  [ B +"" .kd +""  [ C +"" .kr +""  [ D +"" .kl +"" ^A BOL for bash +"" ^C Abort +"" ^D Eof +"" ^E EOL for bash +" " ^I Tab +"" ^H Backspace +" " ^M Return +"" ^? Backspace