dotfiles

My dotfiles.
git clone git://git.ryanmj.xyz/dotfiles.git
Log | Files | Refs | LICENSE

d.jsf.in (8094B)


      1 # JOE syntax highlight file for D
      2 
      3 =Idle
      4 =Comment 	green
      5 =Constant 	cyan
      6 =Escape 	bold cyan
      7 =Type 		bold
      8 =Keyword 	bold
      9 =Operator	bold
     10 =Bad		bold red
     11 =Brace		magenta
     12 =Control	
     13 
     14 =Methods
     15 
     16 :begin Idle
     17 	*	begin	noeat call=.d()
     18 
     19 .subr d
     20 
     21 :idle Idle
     22 	*		idle
     23 	"("		idle		call=.d(paren)
     24 	"["		idle		call=.d(brack)
     25 	"{"		do_brace	recolor=-1 noeat
     26 #	"{"		brace		recolor=-1 call=.d(squiggly)
     27 .ifdef paren
     28 	")"		idle		return
     29 .else
     30 	")"		stray		recolor=-1
     31 .endif
     32 .ifdef brack
     33 	"]"		idle		return
     34 .else
     35 	"]"		stray		recolor=-1
     36 .endif
     37 .ifdef squiggly
     38 	"}"		brace		recolor=-1 return
     39 .else
     40 	"}"		stray		recolor=-1
     41 .endif
     42 	"\n"		idle
     43 	"/"		slash
     44 	"0"		first_digit	recolor=-1
     45 	"1-9"		decimal		recolor=-1
     46 	"."		maybe_float
     47 	"\""		string		recolor=-1
     48 	"'"		char		recolor=-1
     49 	"\i"		ident		mark buffer
     50 	",:;=><*&|!~+\-%^"	control	recolor=-1
     51 	"r"		maybe_rstring	mark buffer
     52 	"x"		maybe_xstring	mark buffer
     53 	"q"		maybe_qstring	recolor=-1 mark buffer
     54 	"`"		bstring		recolor=-1
     55 
     56 :do_brace Brace
     57 	*		idle		noeat
     58 	"{"		brace		call=.d(squiggly)
     59 
     60 :brace Brace
     61 	*		idle		noeat
     62 
     63 :stray Bad
     64 	*		idle		noeat
     65 
     66 :maybe_done Control
     67 	*		idle		noeat
     68 	"/"		idle		noeat return recolor=-2
     69 
     70 :control Control
     71 	*		idle		noeat
     72 
     73 :slash Idle
     74 	*		idle		noeat
     75 	"*"		comment		recolor=-2
     76 	"+"		idle		recolor=-2 call=.block_comment()
     77 	"/"		line_comment	recolor=-2
     78 
     79 :comment Comment
     80 	*		comment
     81 	# might be TODO label
     82 	"BFHNTX"	comment		noeat call=comment_todo.comment_todo()
     83 	"*"		maybe_end_comment
     84 
     85 :maybe_end_comment Comment
     86 	*		comment		noeat
     87 	"/"		idle
     88 	"*"		maybe_end_comment
     89 
     90 :line_comment Comment
     91 	*		line_comment
     92 	# might be TODO label
     93 	"BFHNTX"	line_comment	noeat call=comment_todo.comment_todo()
     94 	"\n"		idle
     95 
     96 :int_postfix Constant
     97 	*		idle		noeat
     98 	"uU"		int_postfix_1
     99 	"L"		int_postfix_2
    100 
    101 :int_postfix_1 Constant
    102 	*		idle		noeat
    103 	"L"		idle
    104 
    105 :int_postfix_2 Constant
    106 	*		idle		noeat
    107 	"uU"		idle
    108 
    109 :float_postfix Constant
    110 	*		idle		noeat
    111 	"fF"		float_postfix_1
    112 	"L"		float_postfix_1
    113 	"i"		idle
    114 
    115 :float_postfix_1 Constant
    116 	*		idle		noeat
    117 	"i"		idle
    118 
    119 :first_digit Constant
    120 	*		int_postfix	noeat
    121 	"xX"		hex
    122 	"bB"		bin
    123 	"."		float
    124 	"eE"		epart
    125 	"0-9"		decimal
    126 
    127 :bad_number Bad
    128 	*		idle		noeat
    129 	"0-9"		bad_number
    130 
    131 :octal Constant
    132 	*		int_postfix	noeat
    133 	"0-7_"		octal
    134 	"89"		bad_number	recolor=-1
    135 
    136 :hex Constant
    137 	*		int_postfix	noeat
    138 	"0-9A-Fa-f_"	hex
    139 	"."		hexfloat
    140 	"pP"		ppart
    141 
    142 :hexfloat Constant
    143 	*		float_postfix	noeat
    144 	"0-9A-Fa-f_"	hexfloat
    145 	"pP"		ppart
    146 
    147 :ppart Constant
    148 	*		float_postfix	noeat
    149 	"0-9+\-"	pnum
    150 
    151 :pnum Constant
    152 	*		float_postfix	noeat
    153 	"0-9_"		pnum
    154 
    155 :decimal Constant
    156 	*		int_postfix	noeat
    157 	"0-9_"		decimal
    158 	"eE"		epart
    159 	"."		float
    160 
    161 :maybe_float Constant
    162 	*		idle		recolor=-2 noeat
    163 	"\i"		not_ident	recolor=-2
    164 	"0-9"		float		recolor=-2
    165 
    166 :not_ident Idle
    167 	*		idle		noeat
    168 	"\c"		not_ident
    169 
    170 :float Constant
    171 	*		float_postfix	noeat
    172 	"eE"		epart
    173 	"0-9_"		float
    174 
    175 :epart Constant
    176 	*		idle		noeat
    177 	"0-9+\-"	enum
    178 
    179 :enum Constant
    180 	*		float_postfix	noeat
    181 	"0-9_"		enum
    182 
    183 :maybe_qstring Brace
    184 	*		ident		recolor=-1 noeat
    185 	"{"		brace		call=.d(squiggly)
    186 	"\""		qdstring	recolor=-2
    187 
    188 :qdstring Constant
    189 	*		qstring		save_c
    190 	"\i"		qdelim		buffer
    191 
    192 :qdelim Constant
    193 	*		qdelim_bad	noeat save_s
    194 	"\c"		qdelim
    195 	"\n"		skipline	noeat save_s
    196 
    197 :qdelim_bad Bad
    198 	*		qdelim_bad
    199 	"\n"		skipline	noeat
    200 
    201 :skipline Constant
    202 	*		skipline
    203 	"\n"		next_line
    204 
    205 :todelim Constant
    206 	*		todelim
    207 	"\n"		next_line
    208 	"\""		next_line	strings
    209 	"&"		founddelim
    210 done
    211 
    212 :founddelim Constant
    213 	*		idle		noeat
    214 	"\""		bad_line
    215 
    216 :bad_line Bad
    217 	*		bad_line
    218 	"\n"		idle
    219 
    220 # eat \n so it's not in string.
    221 :next_line Constant
    222 	*		todelim		buffer
    223 	"\n"		next_line
    224 
    225 :qstring Constant
    226 	*		qstring
    227 	&		qstring_1
    228 
    229 :qstring_1 Constant
    230 	*		qstring		noeat
    231 	"\""		string_postfix
    232 
    233 :maybe_xstring Idle
    234 	*		ident		noeat
    235 	"\""		xstring		recolor=-2
    236 
    237 :xstring Constant
    238 	*		bad_xstring	recolor=-1
    239 	" \t\r\n\f0-9A-Fa-f"	xstring
    240 	"\""		string_postfix
    241 
    242 :bad_xstring Bad
    243 	*		xstring		noeat
    244 
    245 :maybe_rstring Idle
    246 	*		ident		noeat
    247 	"\""		rstring		recolor=-2
    248 
    249 :rstring Constant
    250 	*		rstring
    251 	"\""		string_postfix
    252 
    253 :bstring Constant
    254 	*		bstring
    255 	"`"		string_postfix
    256 
    257 :string	Constant
    258 	*		string
    259 	"\""		string_postfix
    260 	"\\"		string_escape	recolor=-1
    261 	"%"		string_control	recolor=-1
    262 
    263 :string_postfix Constant
    264 	*		idle	noeat
    265 	"cwd"		idle
    266 
    267 :string_escape Escape
    268 	*		string
    269 	"U"		string_hex8
    270 	"u"		string_hex4
    271 	"x"		string_hex2
    272 	"0-7"		string_octal2
    273 	"\n"		string		recolor=-2
    274 
    275 :string_hex8 Escape
    276 	*		string		noeat
    277 	"0-9a-fA-F"	string_hex7
    278 
    279 :string_hex7 Escape
    280 	*		string		noeat
    281 	"0-9a-fA-F"	string_hex6
    282 
    283 :string_hex6 Escape
    284 	*		string		noeat
    285 	"0-9a-fA-F"	string_hex5
    286 
    287 :string_hex5 Escape
    288 	*		string		noeat
    289 	"0-9a-fA-F"	string_hex4
    290 
    291 :string_hex4 Escape
    292 	*		string		noeat
    293 	"0-9a-fA-F"	string_hex3
    294 
    295 :string_hex3 Escape
    296 	*		string		noeat
    297 	"0-9a-fA-F"	string_hex2
    298 
    299 :string_hex2 Escape
    300 	*		string		noeat
    301 	"0-9a-fA-F"	string_hex1
    302 
    303 :string_hex1 Escape
    304 	*		string		noeat
    305 	"0-9a-fA-F"	string
    306 
    307 :string_octal2 Escape
    308 	*		string		noeat
    309 	"0-7"		string_octal1
    310 
    311 :string_octal1 Escape
    312 	*		string		noeat
    313 	"0-7"		string
    314 
    315 :string_control Escape
    316 	*		string_control
    317 	"\n"		idle
    318 	"\""		string		noeat
    319  	"diouxXeEfFgGaAcspn%SCM"	string
    320 
    321 :char Constant
    322 	*		char_done
    323 	"'"		idle
    324 	"\\"		char_escape	recolor=-1
    325 
    326 :char_done Constant
    327 	*		idle		noeat recolor=-3
    328 	"\'"		idle
    329 
    330 :char_escape	Escape
    331 	*		char_done
    332 	"U"		char_hex8
    333 	"u"		char_hex4
    334 	"x"		char_hex2
    335 	"0-7"		char_octal2
    336 
    337 :char_hex8 Escape
    338 	*		char_done	noeat
    339 	"0-9a-fA-F"	char_hex7
    340 
    341 :char_hex7 Escape
    342 	*		char_done	noeat
    343 	"0-9a-fA-F"	char_hex6
    344 
    345 :char_hex6 Escape
    346 	*		char_done	noeat
    347 	"0-9a-fA-F"	char_hex5
    348 
    349 :char_hex5 Escape
    350 	*		char_done	noeat
    351 	"0-9a-fA-F"	char_hex4
    352 
    353 :char_hex4 Escape
    354 	*		char_done	noeat
    355 	"0-9a-fA-F"	char_hex3
    356 
    357 :char_hex3 Escape
    358 	*		char_done	noeat
    359 	"0-9a-fA-F"	char_hex2
    360 
    361 :char_hex2 Escape
    362 	*		char_done	noeat
    363 	"0-9a-fA-F"	char_hex1
    364 
    365 :char_hex1 Escape
    366 	*		char_done	noeat
    367 	"0-9a-fA-F"	char_done
    368 
    369 :char_octal2 Escape
    370 	*		char_done	noeat
    371 	"0-7"		char_octal1
    372 
    373 :char_octal1 Escape
    374 	*		char_done	noeat
    375 	"0-7"		char_done
    376 
    377 :ident Idle
    378 	*		ident_end	noeat recolormark strings
    379 	"abstract"	kw
    380 	"alias"		kw
    381 	"align"		kw
    382 	"asm"		kw
    383 	"assert"	kw
    384 	"auto"		kw
    385 	"body"		kw
    386 	"bool"		kw
    387 	"break"		kw
    388 	"byte"		kw
    389 	"case"		kw
    390 	"cast"		kw
    391 	"catch"		kw
    392 	"cdouble"	kw
    393 	"cent"		kw
    394 	"cfloat"	kw
    395 	"char"		kw
    396 	"class"		kw
    397 	"const"		kw
    398 	"continue"	kw
    399 	"creal"		kw
    400 	"dchar"		kw
    401 	"debug"		kw
    402 	"default"	kw
    403 	"delegate"	kw
    404 	"delete"	kw
    405 	"deprecated"	kw
    406 	"do"		kw
    407 	"double"	kw
    408 	"else"		kw
    409 	"enum"		kw
    410 	"export"	kw
    411 	"extern"	kw
    412 	"false"		kw
    413 	"final"		kw
    414 	"finally"	kw
    415 	"float"		kw
    416 	"for"		kw
    417 	"foreach"	kw
    418 	"foreach_reverse"	kw
    419 	"function"	kw
    420 	"goto"		kw
    421 	"idouble"	kw
    422 	"if"		kw
    423 	"ifloat"	kw
    424 	"immutable"	kw
    425 	"import"	kw
    426 	"in"		kw
    427 	"inout"		kw
    428 	"int"		kw
    429 	"interface"	kw
    430 	"invariant"	kw
    431 	"ireal"		kw
    432 	"is"		kw
    433 	"lazy"		kw
    434 	"long"		kw
    435 	"macro"		kw
    436 	"mixin"		kw
    437 	"module"	kw
    438 	"new"		kw
    439 	"nothrow"	kw
    440 	"null"		kw
    441 	"out"		kw
    442 	"override"	kw
    443 	"package"	kw
    444 	"pragma"	kw
    445 	"private"	kw
    446 	"protected"	kw
    447 	"public"	kw
    448 	"pure"		kw
    449 	"real"		kw
    450 	"ref"		kw
    451 	"return"	kw
    452 	"scope"		kw
    453 	"shared"	kw
    454 	"short"		kw
    455 	"static"	kw
    456 	"struct"	kw
    457 	"super"		kw
    458 	"switch"	kw
    459 	"synchronized"	kw
    460 	"template"	kw
    461 	"this"		kw
    462 	"throw"		kw
    463 	"true"		kw
    464 	"try"		kw
    465 	"typedef"	kw
    466 	"typeid"	kw
    467 	"typeof"	kw
    468 	"ubyte"		kw
    469 	"ucent"		kw
    470 	"uint"		kw
    471 	"ulong"		kw
    472 	"union"		kw
    473 	"unittest"	kw
    474 	"ushort"	kw
    475 	"version"	kw
    476 	"void"		kw
    477 	"volatile"	kw
    478 	"wchar"		kw
    479 	"while"		kw
    480 	"with"		kw
    481 	"__FILE__"	kw
    482 	"__MODULE__"	kw
    483 	"__LINE__"	kw
    484 	"__FUNCTION__"	kw
    485 	"__PRETTY_FUNCTION__"	kw
    486 	"__gshared"	kw
    487 	"__traits"	kw
    488 	"__vector"	kw
    489 	"__parameters"	kw
    490 done
    491 	"\c"		ident
    492 
    493 :type Type
    494 	*		idle		noeat
    495 
    496 :kw Keyword
    497 	*		idle		noeat
    498 
    499 :bad_kw Bad
    500 	*		idle		noeat
    501 
    502 :lit Constant
    503 	*		idle		noeat
    504 
    505 :operator Operator
    506 	*		idle		noeat
    507 
    508 :ident_end Idle
    509 	*		idle		noeat
    510 	" "		ident_end
    511 	"("		method_end	noeat recolormark
    512 
    513 :method_end Methods
    514 	*		idle		noeat
    515 
    516 .end
    517 
    518 # Recursive block comments
    519 
    520 .subr block_comment
    521 
    522 :idle Comment
    523 	*		idle
    524 	# might be TODO label
    525 	"BFHNTX"	idle		noeat call=comment_todo.comment_todo()
    526 	"+"		maybe_done
    527 	"/"		maybe_recur
    528 
    529 :maybe_done Comment
    530 	*		idle	noeat
    531 	"/"		idle	return
    532 
    533 :maybe_recur Comment
    534 	*		idle	noeat
    535 	"+"		idle	call=.block_comment()
    536 
    537 .end