1
0
mirror of https://github.com/cmur2/joe-syntax.git synced 2026-07-12 04:39:56 +02:00
Files
joe-syntax/js.jsf
T

277 lines
4.4 KiB
Plaintext
Raw Normal View History

2011-08-05 23:45:04 +02:00
# JOE syntax highlight file for JavaScript
# the real one - not a pimped Java file...
# just getting this idea seams crazy...
2011-08-06 00:39:04 +02:00
# TODO: regex escape highlighter ignored \x (and other?) sequences
# BUG: The regex has currently some SERIOUS problems - enabled
# or disabled: calc(a / b) vs match(/'/) - one of the two fails,
# need "after_term" support like in ruby.jsf
2011-08-05 23:45:04 +02:00
=Idle
=Comment green
=CommentLabel bold green
=Constant cyan
=Escape bold cyan
=Type bold
=Keyword bold
=Operator bold
=Bad bold red
=Brace magenta
2011-08-06 00:39:04 +02:00
=Control
2011-08-05 23:45:04 +02:00
2011-08-06 00:39:04 +02:00
# additional classes not present everywhere but useful
2011-08-05 23:45:04 +02:00
=Methods
2011-08-06 00:39:04 +02:00
=Number cyan #fg_520 # orange
2011-08-05 23:45:04 +02:00
: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
:brace Brace
* idle noeat
:control Control
* idle noeat
:slash Idle
* idle noeat
2011-08-06 00:39:04 +02:00
# the "noeat recolor=-2" is needed since _this_ char maybe '\'
# * regex noeat recolor=-2
2011-08-05 23:45:04 +02:00
"*" 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
2011-08-06 00:39:04 +02:00
#:regex Constant
# * regex
# "\\" regex_esc recolor=-1
# "/" regex_mod
#
#:regex_esc Escape
# * regex
#
#:regex_mod Constant
# * idle noeat
# "igm" regex_mod
:first_digit Number
2011-08-05 23:45:04 +02:00
* idle noeat
"xX" hex
"." float
"eE" epart
"0-7" octal
"89" bad_number recolor=-1
:bad_number Bad
* idle noeat
"0-9" bad_number
2011-08-06 00:39:04 +02:00
:octal Number
2011-08-05 23:45:04 +02:00
* idle noeat
"0-7" octal
"89" bad_number recolor=-1
2011-08-06 00:39:04 +02:00
:hex Number
2011-08-05 23:45:04 +02:00
* idle noeat
"0-9A-Fa-f" hex
2011-08-06 00:39:04 +02:00
:decimal Number
2011-08-05 23:45:04 +02:00
* idle noeat
"0-9" decimal
"eE" epart
"." float
2011-08-06 00:39:04 +02:00
:maybe_float Number
2011-08-05 23:45:04 +02:00
* idle recolor=-2 noeat
"0-9" float recolor=-2
2011-08-06 00:39:04 +02:00
:float Number
2011-08-05 23:45:04 +02:00
* idle noeat
"eE" epart
"0-9" float
2011-08-06 00:39:04 +02:00
:epart Number
2011-08-05 23:45:04 +02:00
* idle noeat
"0-9+\-" enum
2011-08-06 00:39:04 +02:00
:enum Number
2011-08-05 23:45:04 +02:00
* 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
"arguments" kw
"Array" type
"break" kw
"Boolean" type
"case" kw
"catch" kw
"continue" kw
"default" kw
"delete" operator
"do" kw
"Date" type
"else" kw
"false" lit
"finally" kw
"for" kw
"function" kw
"Function" type
"if" kw
"in" kw
"instanceof" operator
"let" kw
"new" operator
"null" lit
"Number" type
"Object" type
"return" kw
"RegExp" type
"switch" kw
"String" type
"this" kw
"throw" kw
"true" lit
"try" kw
"typeof" operator
"undefined" lit
"var" kw
"void" kw
"while" kw
"with" kw
done
"a-zA-Z0-9_" ident
:type Type
* idle noeat
:kw Keyword
* idle noeat
:lit Constant
* idle noeat
:operator Operator
* idle noeat
:ident_end Idle
* idle noeat
" " ident_end
2011-08-06 00:39:04 +02:00
"(" method_end noeat recolormark
2011-08-05 23:45:04 +02:00
:method_end Methods
* 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