Update for JOE 4.4

- remove syntax files merged by upstream
- use ftyperc from JOE 4.4, add new syntax files
This commit is contained in:
cn 2017-10-04 15:29:47 +02:00
parent e9ca75bd63
commit e165ff2024
32 changed files with 387 additions and 6773 deletions

View File

@ -28,16 +28,9 @@ Every .jsf file created and modified exclusively by [me (Christian Nicolai)](htt
Files with contributions (or unclear license info):
* [elixir.jsf](https://github.com/cmur2/joe-syntax/blob/master/elixir.jsf) which is created by [Andrew Lisin](https://github.com/avli) under GPL v2 or any later version ([comment](https://github.com/cmur2/joe-syntax/pull/18#issuecomment-78036115))
* [erlang.jsf](https://github.com/cmur2/joe-syntax/blob/master/erlang.jsf) which is created by [Christian Nicolai](https://github.com/cmur2) and then modified by Jonas Rosling and enhanced with a small tweak from [raev](https://github.com/raev)
* [go.jsf](https://github.com/cmur2/joe-syntax/blob/master/go.jsf) which is entirely contributed by [Daniel Vargas](https://github.com/danielvargas)
* [ini.jsf](https://github.com/cmur2/joe-syntax/blob/master/ini.jsf) which is created by [Christian Nicolai](https://github.com/cmur2) with contributions from [Todd Lewis](https://github.com/utoddl)
* [js.jsf](https://github.com/cmur2/joe-syntax/blob/master/js.jsf) which is created by [Christian Nicolai](https://github.com/cmur2) and then modified by [Rebecca Turner](https://github.com/iarna) under GPL v2 or any later version and compatible ISC license ([comment](https://github.com/cmur2/joe-syntax/pull/13#issuecomment-78058267))
* [json.jsf](https://github.com/cmur2/joe-syntax/blob/master/json.jsf) which is entirely contributed by [Rebecca Turner](https://github.com/iarna) under GPL v2 or any later version and compatible ISC license ([comment](https://github.com/cmur2/joe-syntax/pull/14#issuecomment-78058037))
* [lsl.jsf](https://github.com/cmur2/joe-syntax/blob/master/lsl.jsf) which is from [Zai Lynch](https://wiki.secondlife.com/wiki/User:Zai_Lynch) under GPL v1 (delivered by [Rebecca Turner](https://github.com/iarna))
* [md.jsf](https://github.com/cmur2/joe-syntax/blob/master/md.jsf) which is created by [Christian Nicolai](https://github.com/cmur2) and then modified by Jonas Rosling
* [powershell.jsf](https://github.com/cmur2/joe-syntax/blob/master/powershell.jsf) which is entirely contributed by [Oskar Liljeblad](https://github.com/osklil) under GPL v2 or any later version ([comment](https://github.com/cmur2/joe-syntax/pull/5#issuecomment-76935968))
* [puppet.jsf](https://github.com/cmur2/joe-syntax/blob/master/puppet.jsf) which is created by [Christian Nicolai](https://github.com/cmur2) and then modified by [Eric Eisenhart](https://github.com/eeisenhart)
* [sql.jsf](https://github.com/cmur2/joe-syntax/blob/master/sql.jsf) which is from an "unknown source" (delivered by [Rebecca Turner](https://github.com/iarna))
* [yaml.jsf](https://github.com/cmur2/joe-syntax/blob/master/yaml.jsf) which is created by [Christian Nicolai](https://github.com/cmur2) with bug fixes from [Todd Lewis](https://github.com/utoddl)

301
ant.jsf
View File

@ -1,301 +0,0 @@
# JOE syntax highlight file for Ant's build scripts
# http://ant.apache.org/
# using the XML highlighter 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
: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
"A-Za-z0-9._:-" entityref
"#" entityref
";" content
# Matched: <
:tag Tag
* error noeat recolor=-1
"/" end_tag
"A-Za-z_:" start_or_empty_tag buffer
"?" pi_start recolor=-2
"!" decl recolor=-2 buffer
# Matched: </
:end_tag Tag
* error noeat recolor=-1
"A-Za-z_:" end_tag2
:end_tag2 Tag
* error noeat recolor=-1
"A-Za-z0-9._:-" 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
"A-Za-z0-9._:-" 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
"A-Za-z_:" 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
"A-Za-z0-9._:-" 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

168
css.jsf
View File

@ -1,168 +0,0 @@
# 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

View File

@ -1,66 +0,0 @@
# JOE syntax highlight file for apt's sources.list
=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

View File

@ -1,27 +0,0 @@
# JOE syntax highlight file for Dockerfile
=Idle
=Comment green
=Instruction blue
:idle Idle
* arguments
"a-zA-Z" instruction noeat
"#" comment recolor=-1
"\n" idle
:comment Comment
* comment
"\n" idle
:instruction Instruction
* instruction
" \t" arguments noeat
:arguments Idle
* arguments
"\n" idle
"#" comment recolor=-1

View File

@ -1,262 +0,0 @@
# 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 fg_030
=Keyword bold
=Bif fg_501
=String fg_110
=Extrapolation fg_200 bold
=Atom fg_530
=Attribute fg_505
=ModAttr fg_141
=Brace fg_440
=Brack fg_311
=Int fg_033
=Def fg_115
=ModDef fg_101
=Underscore fg_310
: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
"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_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
"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

31
erb.jsf
View File

@ -1,31 +0,0 @@
# JOE syntax highlight file for plain ERB
=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

View File

@ -1,497 +0,0 @@
# JOE syntax highlight file for Erlang
# TODO Handle type information ::
# TODO implement subroutines for cleaner and more correct implementation.
# TODO Probably use less colors to be less distractive.
=Idle
=Comment fg_030
=String fg_110
=String_mod fg_200 bold
=String_esc fg_000 bold
=Int fg_033
=Record fg_530
=Recatt
=Fun fg_115
=Module fg_101
=Keyword bold
=Guard fg_200
=Bif fg_501
=Type fg_141
=Brace fg_440
=Brack fg_311
=Macro fg_330
=Variable fg_310
=Attribute fg_505
=Char 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

921
ftyperc

File diff suppressed because it is too large Load Diff

View File

@ -1,20 +0,0 @@
# JOE syntax highlight file for Markdown
=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

293
go.jsf
View File

@ -1,293 +0,0 @@
# JOE syntax highlight file for Go by Daniel Vargas
=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
=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
* 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
:idle Idle
* idle
"\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
"\\" 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
"*" maybe_end_comment
:maybe_end_comment Comment
* comment
"/" idle
"*" maybe_end_comment
:maybe_linecomment Idle
* idle noeat
"/" line_comment recolor=-2
: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
"uint8" type
"uint16" type
"uint32" type
"uint64" type
"int8" type
"int16" type
"int32" type
"int64" type
"float32" type
"float64" type
"complex64" type
"complex128" type
"byte" type
"rune" type
"uint" type
"int" type
"uintptr" type
"break" kw
"case" kw
"chan" kw
"const" kw
"continue" kw
"default" kw
"defer" kw
"else" kw
"fallthrough" kw
"for" kw
"func" kw
"go" kw
"goto" kw
"if" kw
"import" kw
"interface" kw
"map" kw
"package" kw
"range" kw
"return" kw
"select" kw
"struct" kw
"switch" kw
"type" kw
"var" kw
done
"a-zA-Z0-9_" ident
:type Type
* idle noeat
:kw Keyword
* idle noeat

121
haml.jsf
View File

@ -1,121 +0,0 @@
# JOE syntax highlight file for Haml
=Idle
=Comment green
=Constant cyan
=Escape bold cyan
=Bad bold red
=Brace magenta
=Tag fg_310
=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

1345
html.jsf

File diff suppressed because it is too large Load Diff

View File

@ -1,11 +0,0 @@
# JOE syntax highlight file for HTML embedded ERB
=Idle
=Keyword bold
=Bad bold red
=Brace magenta
=ERB yellow
:begin Idle
* NULL noeat call=html.html(erb)

View File

@ -1,4 +1,5 @@
# JOE syntax highlight file for ip(6)tables-save and -restore
# by Christian Nicolai (http://mycrobase.de)
=Idle
=Comment green

284
java.jsf
View File

@ -1,284 +0,0 @@
# JOE syntax highlight file for JAVA
# Needs: \uXXXX for unicode in strings
# improve escape parsing
=Idle
=Comment green
=CommentLabel bold 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
"a-zA-Z_" 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()
"*" 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()
"\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" 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
* 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
"a-zA-Z0-9_" 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
.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

548
js.jsf
View File

@ -1,548 +0,0 @@
# JOE syntax highlight file for JavaScript
# Define colors
=Idle
=Comment green
=CommentLabel bold 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
"\"" string recolor=-1 save_c
"'" string recolor=-1 save_c
"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
"a-z" infix_operator buffer recolor=-1
"\"'A-Z_0-9" bad_after_term recolor=-1
"{}" 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()
"*" 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()
"\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
"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
:string String
* string_body noeat mark
:string_body String
* string
"\n" string_bad
& after_term
"\\" string_escape recolor=-1
:string_bad Bad
* string_bad
"\\" string_bad_escape
& after_term
:string_bad_escape Bad
* string_bad
:string_escape StringEscape
* string
"x" string_hex1
"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_octal2 StringEscape
* string noeat
"0-7" string_octal3
:string_octal3 StringEscape
* string noeat
"0-7" string
:infix_operator Bad
* bad_op noeat markend strings
"in" operator
"instanceof" operator
done
"a-zA-Z0-9_" infix_operator
: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
: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
"return" kw
"switch" kw
"throw" kw
"try" kw
"var" kw
"void" kw
"while" kw
"with" kw
"false" lit
"null" lit
"true" lit
"const" global
"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
# By convention...
"self" quasikw
done
"$a-zA-Z0-9_" ident
: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 comment_todo
# initial state
:todo_init Comment
* todo_guess buffer
# highlight common TODO labels
:todo_guess Comment
* todo_unknown noeat strings
"BUG" todo
"FIXME" todo
"HACK" todo
"NOTE" todo
"TODO" todo
"XXX" todo
done
"A-Z" todo_guess
:todo_unknown Comment
* NULL noeat return
:todo CommentLabel
* NULL noeat return
.end

View File

@ -2,7 +2,6 @@
=Idle
=Comment green
=CommentLabel bold green
=Constant cyan
=Escape bold cyan
=Bad bold red
@ -52,7 +51,7 @@
:line_comment Comment
* line_comment
# might be TODO label
"BFHNTX" line_comment noeat call=.comment_todo()
"BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" line_start
:maybe_target Idle
@ -71,27 +70,3 @@ done
:target_rest TargetRest
* target_rest
"\n" line_start
.subr comment_todo
# initial state
:comment_todo_init Comment
* comment_todo_guess buffer
# highlight common TODO labels
:comment_todo_guess Comment
* comment_todo_unknown noeat strings
"BUG" comment_todo
"FIXME" comment_todo
"HACK" comment_todo
"NOTE" comment_todo
"TODO" comment_todo
"XXX" comment_todo
done
"A-Z" comment_todo_guess
:comment_todo_unknown Comment
* NULL noeat return
:comment_todo CommentLabel
* NULL noeat return
.end

134
md.jsf
View File

@ -1,134 +0,0 @@
# JOE syntax highlight file for Markdown
# 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

View File

@ -1,38 +0,0 @@
# ===== Color Definitions =====
=Comment green
=CommentLabel bold green
# ===== Example Usage =====
:line_comment Comment
* line_comment
# might be TODO label
"BFHNTX" line_comment noeat call=.comment_todo()
"\n" idle
# ===== Subroutine Declaration =====
.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

293
php.jsf
View File

@ -1,293 +0,0 @@
# 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
"a-zA-Z_" 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
"A-Za-z_" here_name buffer
:here_name Idle
* inhere_doc save_s
"A-Za-z_0-9" here_name
:inhere_doc Constant
* inhere_not_eol
"\n" inhere_doc
"A-Za-z_" inhere_name buffer
:inhere_not_eol Constant
* inhere_not_eol
"\n" inhere_doc
:inhere_name Constant
* inhere_doc
";" inhere_doc strings
"&" idle
done
"A-Za-z_0-9" inhere_name
:brace Methods
* idle noeat
:php_var Var
* idle noeat
"a-zA-Z_0-9-ÿ" php_var
:var_indqstring Var
* string_dq recolor=-1
"a-zA-Z_" var_indqstring
"\"" string_dq noeat
"\\" string_dq_esc recolor=-1
:var_inbqstring Var
* string_bq recolor=-1
"a-zA-Z_" 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
"a-zA-Z_" ident buffer
"$" php_var recolor=-1
"{}" brace recolor=-1
">" method recolor=-2
:method Methods
* idle recolor=-1
"a-zA-Z_" 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
"a-zA-Z0-9_" ident
:kw Keyword
* idle noeat
:meth Methods
* idle noeat
:var Var
* mark noeat
.end

View File

@ -1,259 +0,0 @@
# 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

View File

@ -1,154 +0,0 @@
# JOE syntax highlight file for Prolog
=Idle
=Comment green
=Constant cyan
=Escape bold cyan
=Keyword bold
=Bad bold red
=Brace #magenta
=Variable fg_310
=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

View File

@ -1,85 +0,0 @@
# JOE syntax highlight file for properties files
=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

View File

@ -1,159 +0,0 @@
# JOE syntax highlight file for Puppet
=Idle
=Comment green
=CommentLabel bold green
=Constant cyan
=Escape bold cyan
=Type bold
=Keyword bold
=Bad bold red
=Var 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

View File

@ -1,248 +0,0 @@
# JOE syntax highlight file for Python
# TODO:
# * octal escape sequences
# * highlight function and class names?
=Idle
=Comment green
=CommentLabel bold green
=Docstring green
=DocstringLabel bold green
=DocEscape bold cyan
=Constant cyan
=Escape bold cyan
=Keyword bold
=Bad bold red
=Brace magenta
=PrivateMember fg_310 # brown
=Decorator red
:idle Idle
* idle
"#" comment recolor=-1
"0-9" first_digit recolor=-1
"'" string_sq_1 recolor=-1
"\"" string_dq_1 recolor=-1
"a-zA-Z_" ident noeat
"{}" brace recolor=-1
"@" decorator recolor=-1
:brace Brace
* idle noeat
# annotations
:decorator Decorator
* decorator
" (\t\r\n" idle noeat
:comment Comment
* comment
# might be TODO label
"BFHNTX" comment noeat call=.comment_todo()
"\n" idle
:string_sq_1 Constant
* string_sq noeat
"'" string_sq_2
:string_sq_2 Constant
* idle noeat
"'" docstr_sq recolor=-3
:string_sq Constant
* string_sq
"\'" idle
"\\" string_sq_esc recolor=-1
:string_sq_esc Escape
* string_sq
"\n" string_sq recolor=-2
:docstr_sq Docstring
* docstr_sq
# might be TODO label
"BFHNTX" docstr_sq noeat call=.comment_todo_docstr()
"\\" docstr_sq_esc recolor=-1
"'" docstr_sq_1
:docstr_sq_1 Docstring
* docstr_sq noeat
"'" docstr_sq_2
:docstr_sq_2 Docstring
* docstr_sq noeat
"'" idle
:docstr_sq_esc DocEscape
* docstr_sq
"\n" docstr_sq recolor=-2
:string_dq_1 Constant
* string_dq noeat
"\"" string_dq_2
:string_dq_2 Constant
* idle noeat
"\"" docstr_dq recolor=-3
:string_dq Constant
* string_dq
"\"" idle
"\\" string_dq_esc recolor=-1
:string_dq_esc Escape
* string_dq
"\n" string_dq recolor=-2
:docstr_dq Docstring
* docstr_dq
# might be TODO label
"BFHNTX" docstr_dq noeat call=.comment_todo_docstr()
"\\" docstr_dq_esc recolor=-1
"\"" docstr_dq_1
:docstr_dq_1 Docstring
* docstr_dq noeat
"\"" docstr_dq_2
:docstr_dq_2 Docstring
* docstr_dq noeat
"\"" idle
:docstr_dq_esc DocEscape
* docstr_dq
"\n" docstr_dq recolor=-2
:first_digit Constant
* idle noeat
"xX" hex
"." float
"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
"assert" kw
"break" kw
"class" kw
"continue" kw
"def" kw
"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
"yield" kw
# quasi-keywords
"False" lit
"None" lit
"True" lit
done
"a-zA-Z0-9_" ident1
:kw Keyword
* idle noeat
:lit Keyword
* idle noeat
:priv_member PrivateMember
* idle noeat
"a-zA-Z0-9_" priv_member
.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
.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

596
ruby.jsf
View File

@ -1,596 +0,0 @@
# JOE syntax highlight file for Ruby
# Oh No! It's another perl!
# <<EOF1, <<EOF2 is not working. Only EOF1 is seen. It should wait for the
# EOF2.
=Idle
=Comment green
=CommentLabel bold 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 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
"#" line_comment recolor=-1
.ifdef haml
"\n" NULL return
.else
"\n" idle
.endif
"{}" brace recolor=-1
"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
"a-zA-Z_" ident buffer
# higher level, ruby specific
":" maybe_symbol
# "|" proc_arg
"@" class_member1
# / / 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
"a-zA-Z0-9_" 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
"A-Za-z_" inc buffer noeat
:allow_space Idle
* after_term noeat
"'\"" quoted_inc_start_allow save_c recolor=-1
"A-Za-z_" 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
"A-Za-z0-9_" inc
:inc_allow Var
* skipline_allow save_s noeat
"A-Za-z0-9_" 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
"a-zA-Z0-9_" 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()
.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
"." 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
"." 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
:string Constant
* string
"\"" after_term
"\\" string_escape recolor=-1
"#" maybe_string_subst recolor=-1
:maybe_string_subst Constant
* string noeat
"{" string_subst recolor=-2
:string_subst Escape
* string_subst
"}" string
: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
"a-zA-Z_0-9" 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=-1
"1-9" decimal recolor=-1
"a-zA-Z_" ident_no_kw1
:ident_no_kw1 Idle
* after_term noeat
"a-zA-Z0-9_?!" ident_no_kw1
:ident Idle
* after_term noeat strings
"BEGIN" kw
"END" kw
"alias" kw
"and" kw
"begin" kw
"break" kw
"case" kw
"catch" kw
"class" kw_class
"def" kw
"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
"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
"a-zA-Z0-9_?!" ident
:kw Keyword
* rest noeat
:kw_class Keyword
* rest noeat
" \t\n" kw_class_space
:kw_class_space Idle
* rest noeat
# first char should be uppercase letter
"a-zA-Z_" kw_class_decl noeat
" \t\n" kw_class_space
:kw_class_decl ClassDecl
* rest noeat
"a-zA-Z0-9_" kw_class_decl
:pstring Idle
* match noeat
" \t" after_term noeat
"xrqQwW" match
.ifdef erb
">" NULL recolor=-2 return
.endif
:match Idle
* inmatch save_c recolor=-1
" \t" match
:inmatch Constant
* inmatch
& after_term
"\\" inmatch_quote recolor=-1
: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
"a-zA-Z_" symbol recolor=-2
"\"" symbol_str recolor=-2
"'" symbol_str_sq recolor=-2
:symbol Symbol
* rest noeat
"a-zA-Z0-9_?!" 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
:symbol_str_subst SymbolEscape
* symbol_str_subst
"}" symbol_str
:symbol_str_sq Symbol
* symbol_str_sq
"'" after_term
:proc_arg ProcArg
* rest noeat
"," proc_arg_sep noeat
"a-zA-Z_" proc_arg
:proc_arg_sep Idle
* proc_arg
:class_member1 Idle
* rest noeat
"a-zA-Z_" class_member recolor=-2
"@" class_member2
:class_member2 ClassMember
* rest noeat
"a-zA-Z_" class_member recolor=-3
:class_member ClassMember
* rest noeat
"a-zA-Z0-9_" class_member
:global_var GlobalVar
* rest noeat
"a-zA-Z0-9_" global_var
.end
.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

105
sieve.jsf
View File

@ -1,105 +0,0 @@
# JOE syntax highlight file for Sieve
=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

View File

@ -35,7 +35,7 @@
"." maybe_float
"\"" string recolor=-1
"'" char recolor=-1
"a-zA-Z_@" ident buffer
"\i@" ident buffer
"{}" brace recolor=-1
",:;=()><[]*&|!~+%^" control recolor=-1
@ -226,7 +226,7 @@
"count" kw
"counter" kw
"create" kw
# "currency" kw
"currency" kw
"current_date" kw
"current_time" kw
"current_timestamp" kw
@ -409,7 +409,7 @@
"usage" kw
"user" kw
"using" kw
# "value" kw
"value" kw
"values" kw
"var" kw
"varbinary" kw
@ -485,7 +485,7 @@
"deterministic" kw
"list" kw
done
"a-zA-Z0-9_" ident
"\c" ident
:type Type
* idle noeat

View File

@ -2,7 +2,6 @@
=Idle
=Comment green
=CommentLabel bold green
=Constant cyan
=Escape bold cyan
=Bad bold red
@ -30,7 +29,7 @@
:comment Comment
* comment
# might be TODO label
"BFHNTX" comment noeat call=.comment_todo()
"BFHNTX" comment noeat call=comment_todo.comment_todo()
"*" maybe_end_comment
:maybe_end_comment Comment
@ -148,27 +147,3 @@ done
:bool Constant
* idle noeat
.subr comment_todo
# initial state
:comment_todo_init Comment
* comment_todo_guess buffer
# highlight common TODO labels
:comment_todo_guess Comment
* comment_todo_unknown noeat strings
"BUG" comment_todo
"FIXME" comment_todo
"HACK" comment_todo
"NOTE" comment_todo
"TODO" comment_todo
"XXX" comment_todo
done
"A-Z" comment_todo_guess
:comment_todo_unknown Comment
* NULL noeat return
:comment_todo CommentLabel
* NULL noeat return
.end

108
tex.jsf
View File

@ -1,108 +0,0 @@
# joe [La]TeX syntax highlighting
=Idle
=Comment green
=CommentLabel bold 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()
"\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
.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

View File

@ -1,16 +0,0 @@
# JOE syntax highlight file for Whitespace
=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