Browse Source

JOE Editor and emacs stuff

Taylor Bockman 5 years ago
parent
commit
f8d5906d36
  1. 3
      .gitignore
  2. 7
      README.md
  3. 5
      dotfiles/emacs.d/init.el
  4. 14
      dotfiles/emacs.d/package.el
  5. 55
      dotfiles/joe/color/darkblue2.jcf
  6. 107
      dotfiles/joe/color/darkspectrum.jcf
  7. 87
      dotfiles/joe/color/desert.jcf
  8. 61
      dotfiles/joe/color/dracula.jcf
  9. 47
      dotfiles/joe/color/dusk.jcf
  10. 112
      dotfiles/joe/color/eclipse.jcf
  11. 92
      dotfiles/joe/color/freya.jcf
  12. 96
      dotfiles/joe/color/inkpot.jcf
  13. 130
      dotfiles/joe/color/ir_black.jcf
  14. 61
      dotfiles/joe/color/lucario.jcf
  15. 131
      dotfiles/joe/color/lucius.jcf
  16. 101
      dotfiles/joe/color/mayansmoke.jcf
  17. 130
      dotfiles/joe/color/molokai.jcf
  18. 94
      dotfiles/joe/color/moria-dark.jcf
  19. 94
      dotfiles/joe/color/moria-light.jcf
  20. 60
      dotfiles/joe/color/oceandeep.jcf
  21. 104
      dotfiles/joe/color/peaksea-dark.jcf
  22. 104
      dotfiles/joe/color/peaksea-light.jcf
  23. 103
      dotfiles/joe/color/pyte.jcf
  24. 107
      dotfiles/joe/color/rdark.jcf
  25. 97
      dotfiles/joe/color/rootwater.jcf
  26. 99
      dotfiles/joe/color/slate.jcf
  27. 74
      dotfiles/joe/color/tango2.jcf
  28. 114
      dotfiles/joe/color/tender.jcf
  29. 87
      dotfiles/joe/color/wombat.jcf
  30. 99
      dotfiles/joe/color/xoria256.jcf
  31. 149
      dotfiles/joe/color/zenburn-hc.jcf
  32. 147
      dotfiles/joe/color/zenburn.jcf
  33. 301
      dotfiles/joe/syntax/ant.jsf
  34. 91
      dotfiles/joe/syntax/asterisk.jsf
  35. 168
      dotfiles/joe/syntax/css.jsf
  36. 66
      dotfiles/joe/syntax/debian.jsf
  37. 27
      dotfiles/joe/syntax/dockerfile.jsf
  38. 262
      dotfiles/joe/syntax/elixir.jsf
  39. 31
      dotfiles/joe/syntax/erb.jsf
  40. 497
      dotfiles/joe/syntax/erlang.jsf
  41. 1055
      dotfiles/joe/syntax/ftyperc
  42. 20
      dotfiles/joe/syntax/git-commit.jsf
  43. 293
      dotfiles/joe/syntax/go.jsf
  44. 121
      dotfiles/joe/syntax/haml.jsf
  45. 1345
      dotfiles/joe/syntax/html.jsf
  46. 11
      dotfiles/joe/syntax/htmlerb.jsf
  47. 104
      dotfiles/joe/syntax/ini.jsf
  48. 128
      dotfiles/joe/syntax/iptables.jsf
  49. 284
      dotfiles/joe/syntax/java.jsf
  50. 548
      dotfiles/joe/syntax/js.jsf
  51. 261
      dotfiles/joe/syntax/json.jsf
  52. 884
      dotfiles/joe/syntax/lsl.jsf
  53. 97
      dotfiles/joe/syntax/makefile.jsf
  54. 153
      dotfiles/joe/syntax/md.jsf
  55. 293
      dotfiles/joe/syntax/php.jsf
  56. 259
      dotfiles/joe/syntax/powershell.jsf
  57. 154
      dotfiles/joe/syntax/prolog.jsf
  58. 85
      dotfiles/joe/syntax/properties.jsf
  59. 159
      dotfiles/joe/syntax/puppet.jsf
  60. 248
      dotfiles/joe/syntax/python.jsf
  61. 596
      dotfiles/joe/syntax/ruby.jsf
  62. 74
      dotfiles/joe/syntax/scheme.jsf
  63. 105
      dotfiles/joe/syntax/sieve.jsf
  64. 497
      dotfiles/joe/syntax/sql.jsf
  65. 174
      dotfiles/joe/syntax/terraform.jsf
  66. 108
      dotfiles/joe/syntax/tex.jsf
  67. 16
      dotfiles/joe/syntax/whitespace.jsf
  68. 166
      dotfiles/joe/syntax/yaml.jsf
  69. 10
      dotfiles/joerc

3
.gitignore vendored

@ -31,6 +31,9 @@ helm-adaptive-history
*/emacs.d/irony/*
/dotfiles/.emacs.d/transient/history.el
/dotfiles/.emacs.d/session.*
# nvim specific
plugged
bundle/**

7
README.md

@ -27,6 +27,13 @@ Finally, `cd` to the root of your project and run `gtags`. You now have function
Before programming Java, install `eclim`, and `eclipse`.
## Joe Editor
Always build from source to get the latest features. You will need at least
version 4.5 for themes.
Copy `joe-colors/output` to `$USER/.joe/colors` in order to use themes.
## XFCE Themes
In the root there is a themes folder with a nice theme called `Nord`. Run the provided

5
dotfiles/emacs.d/init.el

@ -176,6 +176,11 @@
(add-hook 'python-mode-hook 'jedi:setup)
(setq jedi:complete-on-dot t)
(defun my/python-mode-hook ()
(add-to-list 'company-backends 'company-jedi))
(add-hook 'python-mode-hook 'my/python-mode-hook)
;;--------------------------------------------------------------------------------------
;; Ensure Shell Variables Look the Same in Emacs (OS X and Linux)
;;--------------------------------------------------------------------------------------

14
dotfiles/emacs.d/package.el

@ -5,6 +5,7 @@
company
company-irony
company-emacs-eclim
jedi-core
;; We don't need the `jedi` package
;; since we are using company. If we
@ -21,16 +22,17 @@
;; Programming modes
cc-mode
python-mode
yaml-mode
markdown-mode
gitignore-mode
feature-mode
gitignore-mode
gradle-mode
protobuf-mode
magit
markdown-mode
meson-mode
nasm-mode
paredit
magit
protobuf-mode
python-mode
yaml-mode
;;;;;;;;;;;;;;;;;;;;
;; Navigation

55
dotfiles/joe/color/darkblue2.jcf

@ -0,0 +1,55 @@
# Based on darkblue2 vim scheme by Datila Carvalho <datila@hotmail.com>
.colors *
-text $fff8dc/$233b5a
-status $36648b/$d3d3d3
-selection $4682b4/$fff8dc
-linum $b0c4de/$132b4a bold
-cursor $233b5a/$ffff00
-term 0 $233B5A
-term 1 $FF0000
-term 2 $98FB98
-term 3 $EEDD82
-term 4 $27408B
-term 5 $7F7F7F
-term 6 $00FFFF
-term 7 $FFF8DC
-term 8 $D9D9D9
-term 9 $FF0000
-term 10 $98FB98
-term 11 $FFFF00
-term 12 $36648B
-term 13 $7F7F7F
-term 14 $00FFFF
-term 15 $FFFFFF
=Idle
=Operator $00ffff
=Type $98fb98 bold
=Bad $ffffff/$ff0000 bold
=Boolean $ffec8b bold
=Character $7fffd4
=Comment $66cdaa italic
=Conditional $00ffff bold
=Constant $ffec8b bold
=Define $b0c4de
=DefinedFunction $87cefa
=DefinedIdent $98fb98 bold
=Float $ffec8b bold
=IncSystem $b0c4de bold
=Label $00ffff
=Loop $00ffff bold
=Macro $b0c4de
=Number $ffec8b bold
=Precond $b0c4de
=Preproc $b0c4de
=Statement $00ffff bold
=StorageClass $ffec8b bold
=String $7fffd4
=Structure $ffec8b bold

107
dotfiles/joe/color/darkspectrum.jcf

@ -0,0 +1,107 @@
# Based on darkspectrum vim scheme by Brian Mock <brian@mockbrian.com>
.colors 256
-text 255/235
-status 231/237
-selection 231/25
-linum 239/234
-curlin /16
-menu 250/16
-menusel 231/25
-cursor 16/231
-term 0 235
-term 1 196
-term 2 70
-term 3 221
-term 4 24
-term 5 139
-term 6 110
-term 7 255
-term 8 231
-term 9 196
-term 10 112
-term 11 221
-term 12 25
-term 13 139
-term 14 231
-term 15 231
=Idle
=Type 112 bold
=Bad +TODO
=Character +Number
=Comment 245
=Constant 196
=DefinedFunction 139
=DefinedIdent 110
=Escape 179
=Number 214
=Preproc 231 bold
=Statement 231 bold
=String 221
=TODO 231/196 bold
=Title 196
=diff.AddLine 222/130
=diff.ChgLine 75/24
=diff.DelLine 16/16
=html.Tag +html.TagEnd
=xml.Tag +DefinedIdent
=xml.TagName +DefinedIdent
.colors *
-text $efefef/$2A2A2A
-status $FFFFFF/$3C3C3C
-selection $FFFFFF/$3465a4
-linum $535353/$202020
-curlin /$000000
-menu $c0c0c0/$000000
-menusel $ffffff/$3465a4
-cursor $000000/$ffffff
-term 0 $2A2A2A
-term 1 $EF5939
-term 2 $8AE234
-term 3 $FCE94F
-term 4 $425C78
-term 5 $AD7FA8
-term 6 $7FBDFF
-term 7 $EFEFEF
-term 8 $FFFFFF
-term 9 $EF5939
-term 10 $8AE234
-term 11 $FCE94F
-term 12 $3465A4
-term 13 $AD7FA8
-term 14 $FFFFFF
-term 15 $FFFFFF
=Idle
=Type $8ae234 bold
=Bad +TODO
=Character +Number
=Comment $8a8a8a
=Constant $ef5939
=DefinedFunction $ad7fa8
=DefinedIdent $729fcf
=Escape $e9b96e
=Number $fcaf3e
=Preproc $ffffff bold
=Statement $ffffff bold
=String $fce94f
=TODO $FFFFFF/$ef5939 bold
=Title $ef5939
=diff.AddLine $ffcc7f/$a67429
=diff.ChgLine $7fbdff/$425c78
=diff.DelLine $000000/$000000
=html.Tag +html.TagEnd
=xml.Tag +DefinedIdent
=xml.TagName +DefinedIdent

87
dotfiles/joe/color/desert.jcf

@ -0,0 +1,87 @@
# Based on desert vim scheme by Hans Fugal <hans@fugal.net>
.colors 256
-text 231/236
-status 16/144
-selection 186/64
-linum 100
-cursor 67/186
-term 0 236
-term 1 88
-term 2 149
-term 3 184
-term 4 18
-term 5 90
-term 6 117
-term 7 231
-term 8 250
-term 9 202
-term 10 120
-term 11 184
-term 12 67
-term 13 90
-term 14 117
-term 15 250
=Idle
=Type 143
=Bad 250/88
=Comment 117
=Constant 217
=DefinedIdent 120
=Escape 223
=Preproc 167
=Statement 186
=TODO 202/184
=Title 167
=diff.AddLine /18
=diff.ChgLine /90
=diff.DelLine 18/30
.colors *
-text $ffffff/$333333
-status $000000/$c2bfa5
-selection $f0e68c/$6b8e23
-linum $808000
-cursor $708090/$f0e68c
-term 0 $333333
-term 1 $800000
-term 2 $9ACD32
-term 3 $EEEE00
-term 4 $000080
-term 5 $800080
-term 6 $87CEEB
-term 7 $FFFFFF
-term 8 $C0C0C0
-term 9 $FF4500
-term 10 $00FF7F
-term 11 $EEEE00
-term 12 $708090
-term 13 $708090
-term 14 $ADD8E6
-term 15 $C0C0C0
=Idle
=Type $bdb76b
=Bad $c0c0c0/$800000
=Comment $87ceeb
=Constant $ffa0a0
=DefinedIdent $98fb98
=Escape $ffdead
=Preproc $cd5c5c
=Statement $f0e68c
=TODO $ff4500/$eeee00
=Title $cd5c5c
=diff.AddLine /$000080
=diff.ChgLine /$800080
=diff.DelLine $000080/$008080

61
dotfiles/joe/color/dracula.jcf

@ -0,0 +1,61 @@
# Dracula theme v1.2.7
# Based on vim theme by Trevor Heins, Everton Ribeiro, and Zeno Rocha
# https://github.com/dracula/dracula-theme
.colors *
-text $f8f8f2/$282a36
-status $ffffff/$64666d bold
-selection /$44475a
-linum $909194
-curlin /$44475a
-curlinum $f1fa8c/$44475a
-menusel /$44475a
-cursor $282a36/$f8f8f0
-term 0 $282A36
-term 1 $8B080B
-term 2 $50FA7B
-term 3 $F1FA8C
-term 4 $204A87
-term 5 $FF79C6
-term 6 $66D9EF
-term 7 $F8F8F2
-term 8 $FFFFFF
-term 9 $8B080B
-term 10 $50FA7B
-term 11 $F1FA8C
-term 12 $6272A4
-term 13 $FF79C6
-term 14 $6BE5FD
-term 15 $FFFFFF
=Idle
=Keyword $ff79c6
=Operator $ff79c6
=Type $8be9fd
=Boolean $bd93f9
=Character $bd93f9
=Comment $6272a4
=Conditional $ff79c6
=Define $ff79c6
=DefinedFunction $50fa7b
=DefinedIdent $8be9fd italic
=Escape $ffffff
=Float $bd93f9
=Label $f1fa8c
=Number $bd93f9
=Preproc $ff79c6
=Statement $ff79c6
=StorageClass $8be9fd italic
=String $f1fa8c
=TODO $6272a4 bold
=Tag $ff79c6
=Title $ffffff bold
=diff.AddLine $ffffff/$468410 bold
=diff.ChgLine $ffffff/$243a5f
=diff.DelLine $8b080b

47
dotfiles/joe/color/dusk.jcf

@ -0,0 +1,47 @@
# Based on dusk vim scheme by Ajit Thakkar <ajit@unb.ca>
.colors *
-text $fffff0/$1f3048
-status $00008b/$bebebe
-selection $607b8b/$fffff0
-linum $cdb7b5
-cursor $000000/$00ff00
-term 0 $1F3048
-term 1 $CD4F39
-term 2 $32CD32
-term 3 $EEEE00
-term 4 $0000FF
-term 5 $7A8B8B
-term 6 $00FFFF
-term 7 $FFFFF0
-term 8 $FFFFFF
-term 9 $FF0000
-term 10 $00FF00
-term 11 $FFFF00
-term 12 $607B8B
-term 13 $7A8B8B
-term 14 $00FFFF
-term 15 $FFFFFF
=Idle
=Operator $7fff00
=Type $ffdead
=Bad $ff0000/$faf0e6
=Comment $708090
=Constant $cdb7b5
=DefinedIdent $ffebcd
=Escape $daa520
=Preproc $ffa0a0
=Statement $f0e68c
=String $9ac0cd
=TODO $1e90ff
=Title $eeee00
=diff.AddLine $0000ff/$e0ffff
=diff.ChgLine $ffffff/$7a8b8b
=diff.DelLine $add8e6/$e0ffff

112
dotfiles/joe/color/eclipse.jcf

@ -0,0 +1,112 @@
# Based on eclipse vim theme by Juan Frias <juandfrias at gmail dot com>
# http://www.axisym3.net/jdany/vim-the-editor/#eclipse
.colors 256
-text 16/231
-status 231/25
-selection 88/216
-linum 242/255
-menu 231/46
-menusel
-cursor 231/33
-term 0 16
-term 1 196
-term 2 46
-term 3 184
-term 4 20
-term 5 91
-term 6 30
-term 7 254
-term 8 243
-term 9 196
-term 10 46
-term 11 184
-term 12 63
-term 13 132
-term 14 254
-term 15 255
=Idle
=Type 89 bold
=Bad 231/57
=Comment 22
=Conditional +Loop
=Constant 29
=DefinedIdent 136
=Escape 93
=Float +Number
=IncSystem +Preproc
=Macro +Preproc
=Number 21
=Precond +Preproc
=Preproc 88
=Statement 132
=StorageClass +Type
=String 91
=Structure +Type
=TODO 203
=Tag +Escape
=Title 20 bold
=diff.AddLine 21/189
=diff.ChgLine /224
=diff.DelLine 231/189
.colors *
-text $000000/$ffffff
-status $ffffff/$4570aa
-selection $804020/$ffc0a0
-linum $6b6b6b/$eeeeee
-menu $ffffff/$00ff00
-menusel $000000/$ffffff
-cursor $ffffff/$0080f0
-term 0 $000000
-term 1 $FF0000
-term 2 $00FF00
-term 3 $E0E040
-term 4 $0000FF
-term 5 $B64F90
-term 6 $0090A0
-term 7 $E5E5E5
-term 8 $707070
-term 9 $FF0000
-term 10 $00FF00
-term 11 $E0E040
-term 12 $7050FF
-term 13 $B64F90
-term 14 $E5E5E5
-term 15 $F8F8F8
=Idle
=Type $7f0055 bold
=Bad $f8f8f8/$4040ff
=Comment $236e25
=Conditional +Loop
=Constant $00884c
=DefinedIdent $b07800
=Escape $8040f0
=Float +Number
=IncSystem +Preproc
=Macro +Preproc
=Number $0000ff
=Precond +Preproc
=Preproc $683821
=Statement $b64f90
=StorageClass +Type
=String $8010a0
=Structure +Type
=TODO $ff5050
=Tag +Escape
=Title $0033cc bold
=diff.AddLine $0000ff/$e7e7ff
=diff.ChgLine $e5e5e5/$ffe7e7
=diff.DelLine $ffffff/$e7e7ff

92
dotfiles/joe/color/freya.jcf

@ -0,0 +1,92 @@
# Based on freya vim theme by Georg Dahn
# https://vim.sourceforge.io/scripts/script.php?script_id=1651
.colors 256
-text 253/235
-status 231/242 bold
-linum 246
-curlin /237
-menu 16/137
-menusel 235/180
-cursor 235/253
-term 0 235
-term 1 88
-term 2 150
-term 3 150
-term 4 20
-term 5 20
-term 6 30
-term 7 253
-term 8 231
-term 9 203
-term 10 150
-term 11 150
-term 12 20
-term 13 182
-term 14 151
-term 15 231
=Idle
=Type 180 bold
=Bad 203
=Comment 144
=Constant 150
=DefinedIdent 180
=Escape 179
=Preproc 182
=Statement 180 bold
=TODO 235/151
=Title 231/16 bold
=diff.AddLine /28
=diff.ChgLine /18
=diff.DelLine /88
.colors *
-text $dcdccc/$2a2a2a
-status $f7f7f1/$736559 bold
-linum $9f8f80
-curlin /$3f3f3f
-menu $000000/$a78869
-menusel $2a2a2a/$c0aa94
-cursor $2a2a2a/$dcdccc
-term 0 $2A2A2A
-term 1 $8B0000
-term 2 $AFE091
-term 3 $C2B680
-term 4 $0000CD
-term 5 $0000CD
-term 6 $008B8B
-term 7 $DCDCCC
-term 8 $F7F7F1
-term 9 $F07070
-term 10 $AFE091
-term 11 $AFE091
-term 12 $0000CD
-term 13 $C2AED0
-term 14 $AED0AE
-term 15 $FFFFFF
=Idle
=Type $dabfa5 bold
=Bad $f07070
=Comment $c2b680
=Constant $afe091
=DefinedIdent $dabfa5
=Escape $d4b064
=Preproc $c2aed0
=Statement $e0af91 bold
=TODO $2a2a2a/$aed0ae
=Title $f7f7f1/$000000 bold
=diff.AddLine /$008b00
=diff.ChgLine /$00008b
=diff.DelLine /$8b0000

96
dotfiles/joe/color/inkpot.jcf

@ -0,0 +1,96 @@
# Based on inkpot vim scheme by Ciaran McCreesh <ciaran.mccreesh@googlemail.com>
# https://github.com/ciaranm/inkpot
.colors 256
-text 251/16
-status 250/60
-selection 255/61
-linum 104/236
-curlin /236
-cursor 238/105
-term 0 16
-term 1 131
-term 2 48
-term 3 220
-term 4 54
-term 5 135
-term 6 30
-term 7 251
-term 8 255
-term 9 167
-term 10 120
-term 11 220
-term 12 61
-term 13 135
-term 14 255
-term 15 231
=Idle
=Type 213
=Bad 231/52
=Comment 172
=Constant 223
=DefinedIdent 213
=Escape 176
=Number 215
=Preproc 30
=Statement 105
=String 223/238
=StringEscape 176/238
=TODO 236/179
=Title 131
=diff.AddLine 230/22
=diff.ChgLine 230/24
=diff.DelLine 230/52
.colors *
-text $cfbfad/$000000
-status $b9b9b9/$3e3e5e
-selection $eeeeee/$4e4e8f
-linum $8b8bcd/$2e2e2e
-curlin /$2e2e37
-cursor $404040/$8b8bff
-term 0 $000000
-term 1 $AF4F4B
-term 2 $00FF8B
-term 3 $FFCD00
-term 4 $4B208F
-term 5 $AB60ED
-term 6 $409090
-term 7 $CFBFAD
-term 8 $EEEEEE
-term 9 $CE4E4E
-term 10 $8FFF8B
-term 11 $FFCD00
-term 12 $6E6EAF
-term 13 $AB60ED
-term 14 $EEEEEE
-term 15 $FFFFFF
=Idle
=Type $ff8bff
=Bad $ffffff/$6e2e2e
=Comment $cd8b00
=Constant $ffcd8b
=DefinedIdent $ff8bff
=Escape $c080d0
=Number $f0ad6d
=Preproc $409090
=Statement $808bed
=String $ffcd8b/$404040
=StringEscape $c080d0/$404040
=TODO $303030/$d0a060
=Title $af4f4b
=diff.AddLine $ffffcd/$306d30
=diff.ChgLine $ffffcd/$306b8f
=diff.DelLine $ffffcd/$6d3030

130
dotfiles/joe/color/ir_black.jcf

@ -0,0 +1,130 @@
# Based on ir_black vim scheme
# More at: http://blog.infinitered.com/entries/show/8
.colors 256
-text 255/16
-status 252/234 italic
-selection /17
-linum 237
-cursor 16/231
-term 0 239
-term 1 203
-term 2 155
-term 3 229
-term 4 153
-term 5 207
-term 6 146
-term 7 255
-term 8 244
-term 9 217
-term 10 193
-term 11 230
-term 12 230
-term 13 219
-term 14 189
-term 15 231
=Idle
=Keyword 153
=Operator 231
=Type 229
=Boolean +Constant
=Character +Constant
=Comment 244
=Conditional 67
=Constant 151
=Define +Preproc
=DefinedFunction 223
=DefinedIdent 146
=Escape 173
=Float +Number
=IncSystem +Preproc
=Label +Statement
=Loop +Statement
=Macro +Preproc
=Number 207
=Precond +Preproc
=Preproc 153
=Statement 67
=StorageClass +Type
=String 155
=StringEscape +Escape
=Structure +Type
=TODO 246
=Tag +Escape
=Title bold
=html.Tag +Keyword
=html.TagEnd +DefinedIdent
=html.TagName +Conditional
=xml.Tag +Keyword
=xml.TagEnd +DefinedIdent
=xml.TagName +Conditional
.colors *
-text $f6f3e8/$000000
-status $CCCCCC/$202020 italic
-selection /$262D51
-linum $3D3D3D
-cursor $000000/$ffffff
-term 0 $4E4E4E
-term 1 $FF6C60
-term 2 $A8FF60
-term 3 $FFFFB6
-term 4 $96CBFE
-term 5 $FF73FD
-term 6 $C6C5FE
-term 7 $EEEEEE
-term 8 $7C7C7C
-term 9 $FFB6B0
-term 10 $CEFFAB
-term 11 $FFFFCB
-term 12 $FFFFCB
-term 13 $FF9CFE
-term 14 $DFDFFE
-term 15 $FFFFFF
=Idle
=Keyword $96CBFE
=Operator $ffffff
=Type $FFFFB6
=Boolean +Constant
=Character +Constant
=Comment $7C7C7C
=Conditional $6699CC
=Constant $99CC99
=Define +Preproc
=DefinedFunction $FFD2A7
=DefinedIdent $C6C5FE
=Escape $E18964
=Float +Number
=IncSystem +Preproc
=Label +Statement
=Loop +Statement
=Macro +Preproc
=Number $FF73FD
=Precond +Preproc
=Preproc $96CBFE
=Statement $6699CC
=StorageClass +Type
=String $A8FF60
=StringEscape +Escape
=Structure +Type
=TODO $8f8f8f
=Tag +Escape
=Title bold
=html.Tag +Keyword
=html.TagEnd +DefinedIdent
=html.TagName +Conditional
=xml.Tag +Keyword
=xml.TagEnd +DefinedIdent
=xml.TagName +Conditional

61
dotfiles/joe/color/lucario.jcf

@ -0,0 +1,61 @@
# Based on lucario vim scheme by Raphael Amorim
# https://github.com/raphamorim/lucario
.colors *
-text $f8f8f2/$2b3e50
-status /$66747f bold
-selection /$19242f
-linum $929ba1
-curlin /$405160
-menu /$19242f
-menusel /$66747f
-cursor $2b3e50/$f8f8f2
-term 0 $2B3E50
-term 1 $8C0C10
-term 2 $72C05D
-term 3 $E6DB74
-term 4 $0000FF
-term 5 $66747F
-term 6 $61BBC8
-term 7 $F8F8F2
-term 8 $FFFFFF
-term 9 $FF6541
-term 10 $72C05D
-term 11 $FFFF00
-term 12 $66747F
-term 13 $CA94FF
-term 14 $00FFFF
-term 15 $FFFFFF
=Idle
=Keyword $ff6541
=Operator $ff6541
=Boolean $ca94ff
=Character $ca94ff
=Comment $5c98cd
=Conditional $ff6541
=Define $ff6541
=DefinedFunction $72c05d
=DefinedIdent $66d9ef italic
=Escape $ffffff
=Float $ca94ff
=Label $e6db74
=Number $ca94ff
=Preproc $ff6541
=Statement $ff6541
=StorageClass $66d9ef italic
=String $e6db74
=TODO $5c98cd bold
=Tag $ff6541
=Title $ffffff bold
=diff.AddLine /$478815 bold
=diff.ChgLine /$26446c
=diff.DelLine $8c0c10
=python.Builtin $66d9ef italic
=python.Statement $66d9ef italic

131
dotfiles/joe/color/lucius.jcf

@ -0,0 +1,131 @@
# Based on lucius vim theme by Jonathan Filip <jfilip1024@gmail.com>
.colors 256
-text 254/235
-status 254/238
-selection /60
-linum 101/238
-curlin /236
-menu 254/238
-menusel 16/186
-cursor 235/117
-term 0 235
-term 1 160
-term 2 46
-term 3 186
-term 4 21
-term 5 201
-term 6 80
-term 7 254
-term 8 145
-term 9 196
-term 10 46
-term 11 190
-term 12 21
-term 13 201
-term 14 51
-term 15 152
=Idle
=Keyword 150
=Operator 150
=Type 114
=Bad 160
=Boolean 80
=Character 117
=Comment 243
=Conditional 150
=Constant 80
=Define 229
=DefinedFunction 215
=DefinedIdent 215
=Escape 182
=Float 80
=IncSystem 229
=Label 150
=Loop 150
=Macro 229
=Number 80
=Precond 229
=Preproc 229
=Statement 150
=StorageClass 114
=String 117
=StringEscape 182
=Structure 114
=TODO 190 underline
=Tag 182
=Title 38
=diff.AddLine /30
=diff.ChgLine /28
=diff.DelLine /16
.colors *
-text $e4e4e4/$242424
-status $e0e0e0/$444444
-selection /$445566
-linum $857b6f/$444444
-curlin /$3d3d4d
-menu $f6f3e8/$444444
-menusel $000000/$cae682
-cursor $242424/$8ac6f2
-term 0 $242424
-term 1 $EE0000
-term 2 $00FF00
-term 3 $DEEE33
-term 4 $0000FF
-term 5 $FF00FF
-term 6 $50D6DE
-term 7 $E4E4E4
-term 8 $E0E0E0
-term 9 $FF0000
-term 10 $00FF00
-term 11 $DEEE33
-term 12 $607B8B
-term 13 $FF00FF
-term 14 $00FFFF
-term 15 $EFEFEF
=Idle
=Keyword $bae682
=Operator $bae682
=Type $93e690
=Bad $dd4040
=Boolean $50d6de
=Character $8ad6f2
=Comment $808080
=Conditional $bae682
=Constant $50d6de
=Define $efefaf
=DefinedFunction $fcb666
=DefinedIdent $fcb666
=Escape $cfafcf
=Float $50d6de
=IncSystem $efefaf
=Label $bae682
=Loop $bae682
=Macro $efefaf
=Number $50d6de
=Precond $efefaf
=Preproc $efefaf
=Statement $bae682
=StorageClass $93e690
=String $8ad6f2
=StringEscape $cfafcf
=Structure $93e690
=TODO $deee33 underline
=Tag $cfafcf
=Title $3eb8e5
=diff.AddLine /$008b8b
=diff.ChgLine /$008b00
=diff.DelLine /$000000

101
dotfiles/joe/color/mayansmoke.jcf

@ -0,0 +1,101 @@
# Based on mayansmoke vim color scheme by Jeet Sukumaran and Clayton Parker
.colors 256
-text 16/255
-status 255/24
-selection 255/153
-linum 253/110
-curlin /254
-menu /195
-menusel 255/21 bold
-cursor 255/16
-term 0 16
-term 1 160
-term 2 34
-term 3 226
-term 4 21
-term 5 132
-term 6 45
-term 7 254
-term 8 67
-term 9 196
-term 10 46
-term 11 226
-term 12 27
-term 13 132
-term 14 45
-term 15 231
=Idle
=Keyword 45
=Type 147
=Bad 196/255 underline
=Boolean 88
=Comment 110 italic
=Constant 214
=DefinedFunction 132
=DefinedIdent 160
=Escape 64
=Preproc 27
=Statement 21
=String 30
=TODO 136 underline
=Title 75/255 bold
=diff.AddLine /48
=diff.ChgLine 16/153
=diff.DelLine 16/203
.colors *
-text $000000/$F4F4E8
-status $FFFEEE/$557788
-selection $ffffff/$00bfff
-linum $666677/$cccfbf
-curlin /$e4e4e4
-menu $8b5a00/$cdcdb4
-menusel $eeeee0/$8b795e bold
-cursor $F4F4E8/$000000
-term 0 $000000
-term 1 $BB0000
-term 2 $00AA00
-term 3 $FFFF00
-term 4 $0000FF
-term 5 $8470FF
-term 6 $87CEEB
-term 7 $E4E4E4
-term 8 $666677
-term 9 $FF0000
-term 10 $00FF00
-term 11 $FFFF00
-term 12 $8470FF
-term 13 $8470FF
-term 14 $E0FFFF
-term 15 $FFFFFF
=Idle
=Keyword $1e90ff
=Type $8470ff
=Bad $ff0000/$eeeeee underline
=Boolean $8b3a3a
=Comment $96AAC2 italic
=Constant $ff8c00
=DefinedFunction $8b2252
=DefinedIdent $cd3333
=Escape $6e8b3d
=Preproc $0000ff
=Statement $0000ff
=String $458b74
=TODO $8b5a2b/$eeeeee underline
=Title $009acd/$eeeeee bold
=diff.AddLine /$54ff9f
=diff.ChgLine $000000/$b0e2ff
=diff.DelLine $000000/$f08080

130
dotfiles/joe/color/molokai.jcf

@ -0,0 +1,130 @@
# Based on Molokai vim scheme by Tomas Restrepo <tomas@winterdom.com>
# Which was in turn based on the monokai theme for textmate by Wimer Hazenberg
.colors 256
-text 231/234
-status 239/231
-selection /237
-linum 250/235
-curlin /236
-menu 81/16
-menusel /244
-cursor 16/231
-term 0 234
-term 1 196
-term 2 148
-term 3 148
-term 4 125
-term 5 125
-term 6 81
-term 7 231
-term 8 250
-term 9 196
-term 10 148
-term 11 148
-term 12 141
-term 13 141
-term 14 81
-term 15 250
=Idle
=Keyword 197 bold
=Operator 197
=Type 81
=Bad 125/232
=Boolean 141
=Character 186
=Comment 239
=Conditional 197 bold
=Constant 141 bold
=Define 81
=DefinedFunction 148
=DefinedIdent 208
=Escape 81 italic
=Float 141
=Label 186
=Loop 197 bold
=Macro 144 italic
=Number 141
=Precond 148 bold
=Preproc 148
=Statement 197 bold
=StorageClass 208 italic
=String 186
=StringEscape 197 bold
=Structure 81
=TODO 231 bold
=Tag 197 italic
=Title 196
=diff.AddLine /236
=diff.ChgLine 244/238
=diff.DelLine 125/232
.colors *
-text $F8F8F2/$1B1D1E
-status $455354/$F8F8F2
-selection /$403D3D
-linum $BCBCBC/$232526
-curlin /$293739
-menu $66D9EF/$000000
-menusel /$808080
-cursor $000000/$F8F8F0
-term 0 $1B1D1E
-term 1 $EF5939
-term 2 $A6E22E
-term 3 $E6DB74
-term 4 $13354A
-term 5 $465457
-term 6 $66D9EF
-term 7 $F8F8F2
-term 8 $FFFFFF
-term 9 $EF5939
-term 10 $A6E22E
-term 11 $E6DB74
-term 12 $AE81FF
-term 13 $AE81FF
-term 14 $66D9EF
-term 15 $FFFFFF
=Idle
=Keyword $F92672 bold
=Operator $F92672
=Type $66D9EF
=Bad $960050/$1E0010
=Boolean $AE81FF
=Character $E6DB74
=Comment $465457
=Conditional $F92672 bold
=Constant $AE81FF bold
=Define $66D9EF
=DefinedFunction $A6E22E
=DefinedIdent $FD971F
=Escape $66D9EF italic
=Float $AE81FF
=Label $E6DB74
=Loop $F92672 bold
=Macro $C4BE89 italic
=Number $AE81FF
=Precond $A6E22E bold
=Preproc $A6E22E
=Statement $F92672 bold
=StorageClass $FD971F italic
=String $E6DB74
=StringEscape $F92672 bold
=Structure $66D9EF
=TODO $FFFFFF bold
=Tag $F92672 italic
=Title $ef5939
=diff.AddLine /$13354A
=diff.ChgLine $89807D/$4C4745
=diff.DelLine $960050/$1E0010

94
dotfiles/joe/color/moria-dark.jcf

@ -0,0 +1,94 @@
# Based on moria vim scheme by Georg Dahn
# https://vim.sourceforge.io/scripts/script.php?script_id=1464
.colors 256
-text 252/234
-status /25 bold
-selection 16/241
-linum 110
-curlin 231/238
-menu 16/68
-menusel 16/184
-cursor 234/214
-term 0 234
-term 1 196
-term 2 40
-term 3 184
-term 4 20
-term 5 20
-term 6 116
-term 7 252
-term 8 231
-term 9 196
-term 10 40
-term 11 184
-term 12 68
-term 13 182
-term 14 116
-term 15 231
=Idle
=Type 209
=Bad 196
=Comment 187
=Constant 113
=DefinedIdent 116
=Escape 179
=Preproc 182
=Statement 74
=TODO 16/184
=Title /16 bold
=diff.AddLine /28
=diff.ChgLine /18
=diff.DelLine /88
.colors *
-text $d0d0d0/$202020
-status /$334b7d bold
-selection $000000/$606060
-linum $8fa5d1
-curlin $ffffff/$404040
-menu $000000/$6381be
-menusel $000000/$e0e000
-cursor $202020/$ffa500
-term 0 $202020
-term 1 $EE2C2C
-term 2 $00E700
-term 3 $E0E000
-term 4 $0000CD
-term 5 $D7A0D7
-term 6 $7EE0CE
-term 7 $D0D0D0
-term 8 $FFFFFF
-term 9 $EE2C2C
-term 10 $00E700
-term 11 $E0E000
-term 12 $6381BE
-term 13 $D7A0D7
-term 14 $7EE0CE
-term 15 $FFFFFF
=Idle
=Type $f09479
=Bad $ee2c2c
=Comment $d0d0a0
=Constant $87df71
=DefinedIdent $7ee0ce
=Escape $e8b87e
=Preproc $d7a0d7
=Statement $7ec0ee
=TODO $000000/$e0e000
=Title /$000000 bold
=diff.AddLine /$008b00
=diff.ChgLine /$00008b
=diff.DelLine /$8b0000

94
dotfiles/joe/color/moria-light.jcf

@ -0,0 +1,94 @@
# Based on moria vim scheme by Georg Dahn
# https://vim.sourceforge.io/scripts/script.php?script_id=1464
.colors 256
-text 16/255
-status /110 bold
-selection /251
-linum 25
-curlin /253
-menu /68
-menusel /226
-cursor 255/88
-term 0 16
-term 1 124
-term 2 157
-term 3 226
-term 4 20
-term 5 90
-term 6 51
-term 7 253
-term 8 247
-term 9 196
-term 10 157
-term 11 226
-term 12 26
-term 13 146
-term 14 51
-term 15 231
=Idle
=Type 124 bold
=Bad 196
=Comment 94
=Constant 28
=DefinedIdent 23
=Escape 124
=Preproc 90
=Statement 25 bold
=TODO /226
=Title bold
=diff.AddLine 231/28
=diff.ChgLine 231/18
=diff.DelLine 231/88
.colors *
-text $000000/$f0f0f0
-status /$8fa5d1 bold
-selection /$c4c4c4
-linum $375288
-curlin /$d8d8d8
-menu /$708bc5
-menusel /$ffff00
-cursor $f0f0f0/$883400
-term 0 $000000
-term 1 $EE2C2C
-term 2 $A0F0A0
-term 3 $FFFF00
-term 4 $0000F0
-term 5 $800090
-term 6 $00FFFF
-term 7 $D8D8D8
-term 8 $A0A0A0
-term 9 $EE2C2C
-term 10 $A0F0A0
-term 11 $FFFF00
-term 12 $4A6DB5
-term 13 $800090
-term 14 $00FFFF
-term 15 $FFFFFF
=Idle
=Type $912f11 bold
=Bad $ee2c2c
=Comment $786000
=Constant $077807
=DefinedIdent $007080
=Escape $912f11
=Preproc $800090
=Statement $1f3f81 bold
=TODO /$ffff00
=Title bold
=diff.AddLine $ffffff/$008b00
=diff.ChgLine $ffffff/$00008b
=diff.DelLine $ffffff/$8b0000

60
dotfiles/joe/color/oceandeep.jcf

@ -0,0 +1,60 @@
# Based on oceandeep vim scheme by Tom Regner <tom@goochesa.de>
.colors *
-text $e0eee0/$103040
-status $000000/$e0e0e0 bold
-selection $ffffff/$2e8b57
-linum $8db6cd/$0f0f0f bold
-curlin /$003853
-cursor $ffffff/$96cdcd
-term 0 $103040
-term 1 $B22222
-term 2 $7FFF00
-term 3 $7FFF00
-term 4 $305060
-term 5 $E066FF
-term 6 $00CDCD
-term 7 $E0EEE0
-term 8 $E0E0E0
-term 9 $FF3030
-term 10 $7FFF00
-term 11 $7FFF00
-term 12 $607B8B
-term 13 $E066FF
-term 14 $00FFFF
-term 15 $FFFFFF
=Idle
=Keyword $90ee90 bold
=Operator $7fff00
=Type $add8e6
=Bad $ffffe0/$b22222
=Boolean $00ffff bold
=Comment $507080
=Conditional $90ee90
=Constant $00cdcd
=Define $bcd2ee
=DefinedFunction $9bcd9b
=DefinedIdent $8db6cd
=Escape $66cdaa bold
=IncSystem $a2b5cd
=Loop $4eee94
=Macro $8db6cd
=Number $00ffff
=Precond $a4d3ee
=Preproc $87ceff
=Statement $90ee90
=StorageClass $add8e6
=String $00e5ee
=Structure $add8e6
=TODO $00ffff/$507080
=Title $e066ff bold
=diff.AddLine /$008b8b
=diff.ChgLine /$008b00
=diff.DelLine /$000000

104
dotfiles/joe/color/peaksea-dark.jcf

@ -0,0 +1,104 @@
# Based on the peaksea vim color scheme by Pan, Shi Zhu
# https://vim.sourceforge.io/scripts/script.php?script_id=760
.colors 256
-text 252/234
-status 16/153
-selection 16/153
-linum 145
-curlin underline
-menu /90
-menusel 16/252
-cursor 16/46
-term 0 234
-term 1 88
-term 2 46
-term 3 150
-term 4 18
-term 5 90
-term 6 74
-term 7 252
-term 8 188
-term 9 209
-term 10 46
-term 11 187
-term 12 69
-term 13 182
-term 14 153
-term 15 188
=Idle
=Type 153
=Bad 209
=Character +Number
=Comment 187
=Constant 74
=DefinedIdent 182
=Escape 179
=Number 179
=Preproc 84
=Statement 153
=String +Constant
=StringEscape 145
=TODO 88/187
=Tag +DefinedIdent
=Title 182
=diff.AddLine /18
=diff.ChgLine /90
=diff.DelLine 69
.colors *
-text $d0d0d0/$202020
-status $000000/$a6caf0
-selection $000000/$a6caf0
-linum $b0b0b0
-curlin underline
-menu /$800080
-menusel $000000/$d0d0d0
-cursor $000000/$00f000
-term 0 $202020
-term 1 $800000
-term 2 $00F000
-term 3 $E0C060
-term 4 $000080
-term 5 $800080
-term 6 $80C0E0
-term 7 $D0D0D0
-term 8 $E0E0E0
-term 9 $F08060
-term 10 $00F000
-term 11 $C0E080
-term 12 $6080F0
-term 13 $F0C0F0
-term 14 $80C0E0
-term 15 $E0E0E0
=Idle
=Type $b0d0f0
=Bad $f08060
=Character +Number
=Comment $d0d090
=Constant $80c0e0
=DefinedIdent $f0c0f0
=Escape $e0c060
=Number $e0c060
=Preproc $60f080
=Statement $c0d8f8
=String +Constant
=StringEscape $b0b0b0
=TODO $800000/$d0d090
=Tag +DefinedIdent
=Title $f0c0f0
=diff.AddLine /$000080
=diff.ChgLine /$800080
=diff.DelLine $6080f0

104
dotfiles/joe/color/peaksea-light.jcf

@ -0,0 +1,104 @@
# Based on the peaksea vim color scheme by Pan, Shi Zhu
# https://vim.sourceforge.io/scripts/script.php?script_id=760
.colors 256
-text 16/188
-status /153 bold
-selection /153 bold
-linum 242
-curlin underline
-menu /182
-menusel 255/95
-cursor 255/28
-term 0 16
-term 1 160
-term 2 114
-term 3 186
-term 4 18
-term 5 127
-term 6 153
-term 7 255
-term 8 242
-term 9 160
-term 10 114
-term 11 186
-term 12 62
-term 13 127
-term 14 153
-term 15 231
=Idle
=Type 25 bold
=Bad 160
=Character +Number
=Comment 58
=Constant 23
=DefinedIdent 127
=Escape 94
=Number 94
=Preproc 28
=Statement 25 bold
=String +Constant
=StringEscape 242
=TODO 88/186
=Tag +DefinedIdent
=Title 127 bold
=diff.AddLine /146
=diff.ChgLine /182
=diff.DelLine 18/252 bold
.colors *
-text $000000/$e0e0e0
-status /$a6caf0 bold
-selection /$a6caf0 bold
-linum $686868
-curlin underline
-menu /$e0b0e0
-menusel $f0f0f0/$806060
-cursor $f0f0f0/$008000
-term 0 $000000
-term 1 $C03000
-term 2 $90E090
-term 3 $E0E090
-term 4 $002090
-term 5 $A030A0
-term 6 $A6CAF0
-term 7 $F0F0F0
-term 8 $686868
-term 9 $C03000
-term 10 $90E090
-term 11 $E0E090
-term 12 $6A5ACD
-term 13 $A030A0
-term 14 $B0E0B0
-term 15 $F8F8F8
=Idle
=Type $0850a0 bold
=Bad $c03000
=Character +Number
=Comment $606000
=Constant $007068
=DefinedIdent $a030a0
=Escape $907000
=Number $907000
=Preproc $009030
=Statement $2060a8 bold
=String +Constant
=StringEscape $686868
=TODO $800000/$e0e090
=Tag +DefinedIdent
=Title $a030a0 bold
=diff.AddLine /$b0b0e0
=diff.ChgLine /$e0b0e0
=diff.DelLine $002090/$d0d0d0 bold

103
dotfiles/joe/color/pyte.jcf

@ -0,0 +1,103 @@
# Based on the pyte vim color scheme by Henning Hasemann <info@leetless.de>
.colors 256
-text 238/255
-status 231/245 bold italic
-linum 231/252
-cursor 16/249
-term 0 238
-term 1 196
-term 2 107
-term 3 107
-term 4 18
-term 5 53
-term 6 152
-term 7 254
-term 8 245
-term 9 196
-term 10 107
-term 11 223
-term 12 25
-term 13 245
-term 14 152
-term 15 231
=Idle
=Operator 28
=Type 214 italic
=Bad 196/231 bold underline
=Comment 145 italic
=Conditional 28 bold
=Constant 137
=Define 25 bold
=DefinedFunction 18 italic
=DefinedIdent 53 italic
=Escape 110 italic
=Float 107
=Loop 107 bold
=Number 72
=Preproc 25
=Statement 22 bold
=String 25
=Structure 22 italic
=TODO 145 bold italic underline
=Title 234 bold
=diff.AddLine /152 bold italic
=diff.ChgLine /188 bold italic
=diff.DelLine /223 bold italic
.colors *
-text $404850/$f0f0f0
-status $ffffff/$8090a0 bold italic
-linum $ffffff/$c0d0e0
-cursor $000000/$b0b4b8
-term 0 $404850
-term 1 $FF0000
-term 2 $7FBF58
-term 3 $7FBF58
-term 4 $06287E
-term 5 $5B3674
-term 6 $C0E0D0
-term 7 $E8E8E8
-term 8 $8090A0
-term 9 $FF0000
-term 10 $7FBF58
-term 11 $F0E0B0
-term 12 $4070A0
-term 13 $8090A0
-term 14 $C0E0D0
-term 15 $FFFFFF
=Idle
=Operator $408010
=Type $e5a00d italic
=Bad $ff0000/$ffffff bold underline
=Comment $a0b0c0 italic
=Conditional $4c8f2f bold
=Constant $a07040
=Define $1060a0 bold
=DefinedFunction $06287e italic
=DefinedIdent $5b3674 italic
=Escape $70a0d0 italic
=Float $70a040
=Loop $7fbf58 bold
=Number $40a070
=Preproc $1060a0
=Statement $007020 bold
=String $4070a0
=Structure $007020 italic
=TODO $a0b0c0 bold italic underline
=Title $202020 bold
=diff.AddLine /$c0e0d0 bold italic
=diff.ChgLine /$e0e0e0 bold italic
=diff.DelLine /$f0e0b0 bold italic

107
dotfiles/joe/color/rdark.jcf

@ -0,0 +1,107 @@
# Based on rdark vim scheme by Radu Dineiu <radu.dineiu@gmail.com>
.colors 256
-text 250/235
-status 236/250
-selection /16
-linum 238/16
-menu 255/236
-menusel 235/231
-cursor 235/250
-term 0 235
-term 1 160
-term 2 112
-term 3 112
-term 4 25
-term 5 139
-term 6 110
-term 7 250
-term 8 254
-term 9 196
-term 10 112
-term 11 112
-term 12 25
-term 13 139
-term 14 254
-term 15 231
=Idle
=Keyword 255
=Type 254
=Bad 255/160
=Comment 242
=Constant 112
=DefinedFunction 214
=DefinedIdent 231
=Escape 245
=Number 112
=Preproc 214
=Statement 110
=TODO 214
=Title 214
=diff.AddLine /235
=diff.ChgLine /236
=diff.DelLine 236/233
=html.Tag 245
=html.TagEnd 245
=html.TagName
=xml.Tag +html.Tag
=xml.TagEnd +html.TagEnd
.colors *
-text $babdb6/$1e2426
-status $2e3436/$babdb6
-selection /$000000
-linum $3f4b4d/$000000
-menu $eeeeec/$2e3436
-menusel $1e2426/$ffffff
-cursor $1e2426/$babdb6
-term 0 $1E2426
-term 1 $CC0000
-term 2 $8AE234
-term 3 $8AE234
-term 4 $204A87
-term 5 $AD7FA8
-term 6 $D3D7CF
-term 7 $BABDB6
-term 8 $EEEEEC
-term 9 $EF2929
-term 10 $8AE234
-term 11 $8AE234
-term 12 $3465A4
-term 13 $AD7FA8
-term 14 $E3E7DF
-term 15 $FFFFFF
=Idle
=Keyword $eeeeec
=Type $e3e7df
=Bad $eeeeec/$cc0000
=Comment $656763
=Constant $8ae234
=DefinedFunction $fcaf3e
=DefinedIdent $ffffff
=Escape $888a85
=Number $8ae234
=Preproc $fcaf3e
=Statement $729fcf
=TODO $fcaf3e
=Title $fcaf3e
=diff.AddLine /$1f2b2d
=diff.ChgLine /$2e3436
=diff.DelLine $2e3436/$0e1416
=html.Tag $888a85
=html.TagEnd $888a85
=html.TagName
=xml.Tag +html.Tag
=xml.TagEnd +html.TagEnd

97
dotfiles/joe/color/rootwater.jcf

@ -0,0 +1,97 @@
# Based on the rootwater vim color scheme by Radu Dineiu <radu.dineiu@gmail.com>
.colors 256
-text 250/234
-status 114/16
-selection 114/65
-linum 242/16
-curlin /236
-cursor 22/114
-term 0 234
-term 1 196
-term 2 71
-term 3 214
-term 4 240
-term 5 242
-term 6 123
-term 7 250
-term 8 231
-term 9 196
-term 10 114
-term 11 114
-term 12 242
-term 13 217
-term 14 123
-term 15 231
=Idle
=Type 231
=Bad 196/16
=Boolean 114
=Comment 242
=Constant 114
=DefinedFunction 214
=DefinedIdent 231
=Escape 217
=Number 114
=Preproc 217
=Statement 123
=String 114
=TODO 217/16
=Title 114/16
=diff.AddLine 114/22
=diff.ChgLine 114/22
=diff.DelLine 236/236
.colors *
-text $babdb6/$151b1d
-status $88ee99/$000000
-selection $77dd88/$448844
-linum $607075/$000000
-curlin /$303035
-cursor $3a553a/$77dd88
-term 0 $151B1D
-term 1 $FF0000
-term 2 $77DD88
-term 3 $77DD88
-term 4 $607075
-term 5 $607075
-term 6 $8FFFFF
-term 7 $BABDB6
-term 8 $FFFFFF
-term 9 $FF0000
-term 10 $88EE99
-term 11 $88EE99
-term 12 $607075
-term 13 $607075
-term 14 $8FFFFF
-term 15 $FFFFFF
=Idle
=Type $ffffff
=Bad $ff0000/$000000
=Boolean $77dd88
=Comment $656565
=Constant $88ee99
=DefinedFunction $ffaa33
=DefinedIdent $ffffff
=Escape $ffc0cb
=Number $77dd88
=Preproc $ffbbbb
=Statement $8fffff
=String $77dd88
=TODO $ffc0cb/$000000
=Title $88ee99/$000000
=diff.AddLine $77dd88/$3a553a
=diff.ChgLine $77dd88/$3a553a
=diff.DelLine $223322/$223322

99
dotfiles/joe/color/slate.jcf

@ -0,0 +1,99 @@
# Based on the slate vim color scheme by Ralph Amissah <ralph@amissah.com>
.colors 256
-text 231/235
-status 16/144
-selection 186/64
-linum 244
-cursor 67/186
-term 0 235
-term 1 196
-term 2 46
-term 3 184
-term 4 18
-term 5 90
-term 6 117
-term 7 231
-term 8 223
-term 9 196
-term 10 46
-term 11 184
-term 12 27
-term 13 90
-term 14 117
-term 15 223
=Idle
=Operator 196
=Type 68
=Bad /196
=Comment 242
=Constant 217
=Define 220 bold
=DefinedFunction 223
=DefinedIdent 210
=Escape 143
=IncSystem 196
=Preproc 196/231
=Statement 68
=String 117
=Structure 46
=TODO 202/184
=Title 220 bold
=diff.AddLine /18
=diff.ChgLine /90
=diff.DelLine 18/30
.colors *
-text $ffffff/$262626
-status $000000/$c2bfa5
-selection $f0e68c/$6b8e23
-linum $7f7f7f
-cursor $708090/$f0e68c
-term 0 $262626
-term 1 $FF0000
-term 2 $9ACD32
-term 3 $EEEE00
-term 4 $000080
-term 5 $800080
-term 6 $87CEEB
-term 7 $FFFFFF
-term 8 $E5E5E5
-term 9 $FF0000
-term 10 $00FF00
-term 11 $EEEE00
-term 12 $4169E1
-term 13 $708090
-term 14 $87CEEB
-term 15 $E5E5E5
=Idle
=Operator $ff0000
=Type $6495ed
=Bad $e5e5e5/$ff0000
=Comment $666666
=Constant $ffa0a0
=Define $ffd700 bold
=DefinedFunction $ffdead
=DefinedIdent $fa8072
=Escape $bdb76b
=IncSystem $ff0000
=Preproc $ff0000/$ffffff
=Statement $6495ed
=String $87ceeb
=Structure $00ff00
=TODO $ff4500/$eeee00
=Title $ffd700 bold
=diff.AddLine /$000080
=diff.ChgLine /$800080
=diff.DelLine $000080/$008080

74
dotfiles/joe/color/tango2.jcf

@ -0,0 +1,74 @@
# Based on the tango2 vim color scheme by Pranesh Srinivasan
# https://vim.sourceforge.io/scripts/script.php?script_id=2414
.colors 256
-text 255/236
-cursor 16/231
-term 0 236
-term 1 244
-term 2 112
-term 3 178
-term 4 16
-term 5 139
-term 6 109
-term 7 255
-term 8 252
-term 9 244
-term 10 112
-term 11 112
-term 12 110
-term 13 139
-term 14 109
-term 15 231
=Idle
=Type 112
=Comment 244 italic
=Constant 112
=DefinedFunction 150 bold
=DefinedIdent 139
=Escape 74
=Preproc 179
=Statement 110
=TODO 178
.colors *
-text $eeeeec/$2E3436
-cursor $000000/$ffffff
-term 0 $2E3436
-term 1 $AD7FA8
-term 2 $8AE234
-term 3 $EBC450
-term 4 $6D7E8A
-term 5 $AD7FA8
-term 6 $81ABBD
-term 7 $EEEEEC
-term 8 $D2D2D2
-term 9 $AD7FA8
-term 10 $8AE234
-term 11 $EBC450
-term 12 $6D7E8A
-term 13 $AD7FA8
-term 14 $81ABBD
-term 15 $FFFFFF
=Idle
=Type $8AE234
=Comment $6d7e8a italic
=Constant $8ae234
=DefinedFunction $9BCF8D bold
=DefinedIdent $AD7FA8
=Escape $5EAFE5
=Preproc $e9ba6e
=Statement $729FCF
=TODO $EBC450

114
dotfiles/joe/color/tender.jcf

@ -0,0 +1,114 @@
# Based on tender, a dark and fresh color scheme for vim
# by Jacobo Taberno http://jacoborus.codes
.colors 256
-text 255/235
-status 234/242 bold
-selection /16
-linum 238
-curlin /236
-curlinum 81
-menu 235/81
-menusel 235/185
-cursor 235/255
-term 0 235
-term 1 160
-term 2 142
-term 3 185
-term 4 238
-term 5 66
-term 6 81
-term 7 255
-term 8 231
-term 9 160
-term 10 185
-term 11 185
-term 12 66
-term 13 66
-term 14 81
-term 15 231
=Idle
=Operator 203
=Type 81
=Bad 255/203
=Boolean 215
=Character 215
=Comment 242
=Conditional 185
=Constant 215
=DefinedFunction 153
=DefinedIdent 153
=Escape 81
=Float 215
=Number 215
=Preproc 185
=Statement 153
=String 180
=TODO 203 bold
=Title 153 bold
=diff.AddLine /238
=diff.ChgLine /239
=diff.DelLine 203/237
=xml.Namespace 215
.colors *
-text $eeeeee/$282828
-status $1d1d1d/$666666 bold
-selection /$040404
-linum $444444
-curlin /$323232
-curlinum $73cef4
-menu $282828/$73cef4
-menusel $282828/$c9d05c
-cursor $282828/$eeeeee
-term 0 $282828
-term 1 $C5152F
-term 2 $9FAA00
-term 3 $C9D05C
-term 4 $335261
-term 5 $335261
-term 6 $73CEF4
-term 7 $EEEEEE
-term 8 $FFFFFF
-term 9 $FF5F5F
-term 10 $C9D05C
-term 11 $C9D05C
-term 12 $44778D
-term 13 $F43753
-term 14 $B3DEEF
-term 15 $FFFFFF
=Idle
=Operator $f43753
=Type $73cef4
=Bad $eeeeee/$f43753
=Boolean $ffc24b
=Character $ffc24b
=Comment $666666
=Conditional $c9d05c
=Constant $ffc24b
=DefinedFunction $b3deef
=DefinedIdent $b3deef
=Escape $73cef4
=Float $ffc24b
=Number $ffc24b
=Preproc $c9d05c
=Statement $b3deef
=String $d3b987
=TODO $f43753 bold
=Title $b3deef bold
=diff.AddLine /$464632
=diff.ChgLine /$335261
=diff.DelLine $f43753/$79313c
=xml.Namespace $ffc24b

87
dotfiles/joe/color/wombat.jcf

@ -0,0 +1,87 @@
# Based on Wombat vim scheme by Lars H. Nielsen <dengmao@gmail.com>
.colors 256
-text 255/235
-status /238 italic
-selection /238
-linum 244/16
-cursor 235/242
-term 0 235
-term 1 203
-term 2 113
-term 3 149
-term 4 238
-term 5 244
-term 6 153
-term 7 255
-term 8 248
-term 9 203
-term 10 113
-term 11 149
-term 12 244
-term 13 246
-term 14 153
-term 15 194
=Idle
=Keyword 153
=Type 149
=Comment 246 italic
=Constant 203
=DefinedFunction 149
=DefinedIdent 149
=Escape 194
=Number 203
=Preproc 203
=Statement 153
=String 113 italic
=TODO 246 italic
=Title bold
.colors *
-text $f6f3e8/$242424
-status /$444444 italic
-selection /$444444
-linum $857b6f/$000000
-cursor $242424/$656565
-term 0 $242424
-term 1 $E5786D
-term 2 $95E454
-term 3 $CAE682
-term 4 $384048
-term 5 $A0A8B0
-term 6 $8AC6F2
-term 7 $F6F3E8
-term 8 $E7F6DA
-term 9 $E5786D
-term 10 $95E454
-term 11 $CAE682
-term 12 $384048
-term 13 $A0A8B0
-term 14 $8AC6F2
-term 15 $E7F6DA
=Idle
=Keyword $8ac6f2
=Type $cae682
=Comment $99968b italic
=Constant $e5786d
=DefinedFunction $cae682
=DefinedIdent $cae682
=Escape $e7f6da
=Number $e5786d
=Preproc $e5786d
=Statement $8ac6f2
=String $95e454 italic
=TODO $8f8f8f italic
=Title bold

99
dotfiles/joe/color/xoria256.jcf

@ -0,0 +1,99 @@
# Based on xoria256 vim scheme by Dmitriy Y. Zotikov (xio) <xio@ungrund.org>
.colors 256
-text 252/234
-status 231/239 bold
-selection 255/96
-linum 247/233
-curlin /237
-menu 16/250
-menusel 255/243
-cursor /214
-term 0 234
-term 1 160
-term 2 77
-term 3 184
-term 4 98
-term 5 98
-term 6 151
-term 7 252
-term 8 254
-term 9 160
-term 10 77
-term 11 184
-term 12 98
-term 13 98
-term 14 151
-term 15 231
=Idle
=Type 146
=Bad 231/160
=Comment 244
=Constant 229
=DefinedIdent 182
=Escape 174
=Number 180
=Preproc 150
=Statement 110
=TODO 16/184
=Title 225
=diff.AddLine 234/151
=diff.ChgLine 234/181
=diff.DelLine 234/246
=html.Tag 244
=html.TagEnd 244
.colors *
-text $d0d0d0/$1c1c1c
-status $ffffff/$4e4e4e bold
-selection $eeeeee/$875f87
-linum $9e9e9e/$121212
-curlin /$3a3a3a
-menu $000000/$bcbcbc
-menusel $eeeeee/$767676
-cursor $1c1c1c/$ffaf00
-term 0 $1C1C1C
-term 1 $800000
-term 2 $5FDF5F
-term 3 $DFDF00
-term 4 $875FDF
-term 5 $875FDF
-term 6 $AFDFAF
-term 7 $D0D0D0
-term 8 $E4E4E4
-term 9 $DF8787
-term 10 $5FDF5F
-term 11 $DFDF00
-term 12 $875FDF
-term 13 $875FDF
-term 14 $AFDFAF
-term 15 $FFFFFF
=Idle
=Type $afafdf
=Bad $ffffff/$800000
=Comment $808080
=Constant $ffffaf
=DefinedIdent $dfafdf
=Escape $df8787
=Number $dfaf87
=Preproc $afdf87
=Statement $87afdf
=TODO $000000/$dfdf00
=Title $ffdfff
=diff.AddLine $1c1c1c/$afdfaf
=diff.ChgLine $1c1c1c/$dfafaf
=diff.DelLine $1c1c1c/$949494
=html.Tag $808080
=html.TagEnd $808080

149
dotfiles/joe/color/zenburn-hc.jcf

@ -0,0 +1,149 @@
# High-contrast version of zenburn
#
# Nothing too fancy, just some alien fruit salad to keep you in the zone.
# This syntax file was designed to be used with dark environments and
# low light situations. Of course, if it works during a daybright office, go
# ahead :)
#
# Owes heavily to other Vim color files! With special mentions
# to "BlackDust", "Camo" and "Desert".
#
# Credits [from VIM]:
# - Jani Nurminen - original Zenburn
# - Steve Hall & Cream posse - higher-contrast Visual selection
# - Kurt Maier - 256 color console coloring, low and high contrast toggle,
# bug fixing
# - Charlie - spotted too bright StatusLine in non-high contrast mode
# - Pablo Castellazzi - CursorLine fix for 256 color mode
.colors 256
-text 253/234
-status 236/186
-selection 236/79
-linum 145/233
-curlin /233 bold
-curlinum 187/233
-menu 251/235
-menusel 186/237 bold
-cursor 232/109 bold
-term 0 234
-term 1 167
-term 2 115
-term 3 186
-term 4 238
-term 5 139
-term 6 116
-term 7 253
-term 8 188
-term 9 167
-term 10 115
-term 11 228
-term 12 103
-term 13 139
-term 14 116
-term 15 231
=Idle
=Keyword 223 bold
=Operator 230
=Type 187 bold
=Bad 167/237 bold
=Boolean 181
=Character 181 bold
=Comment 108 italic
=Conditional 223 bold
=Constant 181 bold
=Define 180 bold
=DefinedFunction 186
=DefinedIdent 223
=Escape 251
=Float 250
=IncSystem 180 bold
=Label 223 underline
=Loop 223 bold
=Macro 180 bold
=Number 116
=Precond 180 bold
=Preproc 180 bold
=Statement 187
=StorageClass 144 bold
=String 174
=StringEscape 181 bold
=Structure 229 bold
=TODO 188 bold
=Tag 174 bold
=Title 255 bold
=diff.AddLine 66 bold
=diff.ChgLine /236 bold
=diff.DelLine 236/238
.colors *
-text $dcdccc/$1f1f1f
-status $313633/$ccdc90
-selection $233323/$71d3b4
-linum $9fafaf/$161616
-curlin /$121212 bold
-curlinum $f2f3bb/$161616
-menu $ccccbc/$242424
-menusel $ccdc90/$353a37 bold
-cursor $000d18/$8faf9f bold
-term 0 $1F1F1F
-term 1 $E37170
-term 2 $9CCC9C
-term 3 $EFEF8F
-term 4 $000D18
-term 5 $BC8CBC
-term 6 $8CD0D3
-term 7 $DCDCCC
-term 8 $DFDFDF
-term 9 $E37170
-term 10 $CCDC90
-term 11 $F8F893
-term 12 $8C8CBC
-term 13 $BC8CBC
-term 14 $8CD0D3
-term 15 $FFFFFF
=Idle
=Keyword $f0dfaf bold
=Operator $f0efd0
=Type $dfdfbf bold
=Bad $e37170/$3d3535 bold
=Boolean $dca3a3
=Character $dca3a3 bold
=Comment $7f9f7f italic
=Conditional $f0dfaf bold
=Constant $dca3a3 bold
=Define $ffcfaf bold
=DefinedFunction $efef8f
=DefinedIdent $efdcbc
=Escape $cfbfaf
=Float $c0bed1
=IncSystem $dfaf8f bold
=Label $dfcfaf underline
=Loop $ffd7a7 bold
=Macro $ffcfaf bold
=Number $8cd0d3
=Precond $dfaf8f bold
=Preproc $ffcfaf bold
=Statement $e3ceab
=StorageClass $c3bf9f bold
=String $cc9393
=StringEscape $dca3a3 bold
=Structure $efefaf bold
=TODO $dfdfdf bold
=Tag $e89393 bold
=Title $efefef bold
=diff.AddLine $709080/$313c36 bold
=diff.ChgLine /$333333
=diff.DelLine $333333/$464646

147
dotfiles/joe/color/zenburn.jcf

@ -0,0 +1,147 @@
# Nothing too fancy, just some alien fruit salad to keep you in the zone.
# This syntax file was designed to be used with dark environments and
# low light situations. Of course, if it works during a daybright office, go
# ahead :)
#
# Owes heavily to other Vim color files! With special mentions
# to "BlackDust", "Camo" and "Desert".
#
# Credits [from VIM]:
# - Jani Nurminen - original Zenburn
# - Steve Hall & Cream posse - higher-contrast Visual selection
# - Kurt Maier - 256 color console coloring, low and high contrast toggle,
# bug fixing
# - Charlie - spotted too bright StatusLine in non-high contrast mode
# - Pablo Castellazzi - CursorLine fix for 256 color mode
.colors 256
-text 253/237
-status 236/186
-selection 236/79
-linum 145/235
-curlin /238
-curlinum 187/235
-menu 247/236
-menusel 187/235 bold
-cursor 232/109 bold
-term 0 237
-term 1 167
-term 2 115
-term 3 186
-term 4 238
-term 5 139
-term 6 116
-term 7 253
-term 8 188
-term 9 167
-term 10 115
-term 11 228
-term 12 103
-term 13 139
-term 14 116
-term 15 231
=Idle
=Keyword 223 bold
=Operator 230
=Type 187 bold
=Bad 167/237 bold
=Boolean 181
=Character 181 bold
=Comment 108 italic
=Conditional 223 bold
=Constant 181 bold
=Define 180 bold
=DefinedFunction 186
=DefinedIdent 223
=Escape 251
=Float 250
=IncSystem 180 bold
=Label 223 underline
=Loop 223 bold
=Macro 180 bold
=Number 116
=Precond 180 bold
=Preproc 180 bold
=Statement 187
=StorageClass 144 bold
=String 174
=StringEscape 181 bold
=Structure 229 bold
=TODO 188 bold
=Tag 174 bold
=Title 255 bold
=diff.AddLine 66 bold
=diff.ChgLine /236 bold
=diff.DelLine 236/238
.colors *
-text $dcdccc/$3f3f3f
-status $313633/$ccdc90
-selection $233323/$71d3b4
-linum $9fafaf/$262626
-curlin /$434443
-curlinum $d2d39b/$262626
-menu $9f9f9f/$2c2e2e
-menusel $d0d0a0/$242424 bold
-cursor $000d18/$8faf9f bold
-term 0 $3F3F3F
-term 1 $E37170
-term 2 $9CCC9C
-term 3 $EFEF8F
-term 4 $000D18
-term 5 $BC8CBC
-term 6 $8CD0D3
-term 7 $DCDCCC
-term 8 $DFDFDF
-term 9 $E37170
-term 10 $CCDC90
-term 11 $F8F893
-term 12 $8C8CBC
-term 13 $BC8CBC
-term 14 $8CD0D3
-term 15 $FFFFFF
=Idle
=Keyword $f0dfaf bold
=Operator $f0efd0
=Type $dfdfbf bold
=Bad $e37170/$3d3535 bold
=Boolean $dca3a3
=Character $dca3a3 bold
=Comment $7f9f7f italic
=Conditional $f0dfaf bold
=Constant $dca3a3 bold
=Define $ffcfaf bold
=DefinedFunction $efef8f
=DefinedIdent $efdcbc
=Escape $cfbfaf
=Float $c0bed1
=IncSystem $dfaf8f bold
=Label $dfcfaf underline
=Loop $ffd7a7 bold
=Macro $ffcfaf bold
=Number $8cd0d3
=Precond $dfaf8f bold
=Preproc $ffcfaf bold
=Statement $e3ceab
=StorageClass $c3bf9f bold
=String $cc9393
=StringEscape $dca3a3 bold
=Structure $efefaf bold
=TODO $dfdfdf bold
=Tag $e89393 bold
=Title $efefef bold
=diff.AddLine $709080/$313c36 bold
=diff.ChgLine /$333333
=diff.DelLine $333333/$464646

301
dotfiles/joe/syntax/ant.jsf

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

91
dotfiles/joe/syntax/asterisk.jsf

@ -0,0 +1,91 @@
# JOE syntax highlight file for Asterisk (INI alike) files
=Idle
=Comment green
=Constant cyan
=Escape bold cyan
=Bad bold red
=Key
=Separator bold
=SeparatorArrow bold
=Section bold magenta
:line_start Idle
* key noeat
"\n" line_start
" \t\r" line_start # leading spaces
";#" line_comment recolor=-1
"[" section recolor=-1
"=" missing_key recolor=-1
:line_comment Comment
* line_comment
"\n" line_start
:section Section
* section
"]" section_post
"\n" section_unexp_end recolor=-2
:section_post Idle
* section_post
"\n" line_start
";#" line_comment recolor=-1
:section_unexp_end Bad
* line_start noeat
:missing_key Bad
* value_pre noeat
:key Key
* key
" \t\r" key_post noeat
"=" sep recolor=-1
"\n" key_error recolor=-2
:key_post Idle
* value_pre noeat
" \t\r" key_post
"=" sep recolor=-1
:key_error Bad
* key noeat
:sep Separator
* value_pre noeat
">" sep_arrow recolor=-2
:sep_arrow SeparatorArrow
* value_pre noeat
:value_pre Idle
* value noeat
" \t\r" value_pre
:value Constant
* value
"\\" value_esc
"\n" line_start
" \t\r" maybe_comment recolor=-1
"$" maybe_subst
:value_esc Escape
* value
"\n" value_error recolor=-2
:value_error Bad
* value noeat
:maybe_comment Idle
* value noeat
";#" line_comment recolor=-1
:maybe_subst Constant
* value noeat
"{" subst recolor=-2
:subst Escape
* subst
"}" value

168
dotfiles/joe/syntax/css.jsf

@ -0,0 +1,168 @@
# JOE syntax highlight file for CSS
# by Eric Lin
# Define colors
=Idle
=Comment green
=Constant cyan
=Escape bold cyan
=Keyword bold
=Bad bold red
=Class yellow
=Id red
=Tag magenta
=HTML
# from html.jsf to support <?php?>
=TagEdge green
:begin Idle
* begin noeat call=.css()
#
# For <style> in html
#
.subr css
:reset HTML
* reset
"<" maybe_done recolor=-1
"/" slash
# prevent duplicate code
"#.a-zA-Z" selector noeat
"@" command recolor=-1
:maybe_done TagEdge
* reset_html noeat
"/" reset noeat return recolor=-2
.ifdef php
"?%" rtn_php call=php.php()
.endif
# fix needed to produce similar output without php
:reset_html HTML
* reset noeat recolor=-2
# this state allows php and perl to recolor the ?> %> or &> properly.
:rtn_php TagEdge
* reset noeat
:slash Idle
* reset noeat
"*" comment recolor=-2
:comment Comment
* comment
"*" maybe_end_comment
:maybe_end_comment Comment
* comment
"/" reset
"*" maybe_end_comment
:command Idle
* command
";" reset
"{" command_block
:command_block Idle
* command_block
"}" reset
# CSS selectors
:selector Idle
* selector
"#" id_sel recolor=-1
"." class_sel recolor=-1
"a-zA-Z" tag_sel recolor=-1
":" pseudo_class_sel recolor=-1
"{" style_block recolor=-1
:id_sel Id
* selector noeat
"a-zA-Z0-9_-" id_sel
:class_sel Class
* selector noeat
"a-zA-Z0-9_-" class_sel
:tag_sel Tag
* selector noeat
"a-zA-Z0-9_-" tag_sel
"[" tag_sel_attr recolor=-1
:tag_sel_attr Idle
* tag_sel_attr
"]" selector
:pseudo_class_sel Idle
* selector noeat
"a-zA-Z0-9_-" pseudo_class_sel
# everything inside "{ ... }", containing many "key: value;" pairs
:style_block Idle
* style_block
"}" reset
"/" maybe_style_comment
"a-zA-Z-" style_word recolor=-1
:maybe_style_comment Idle
* style_block recolor=-1
"*" style_comment recolor=-2
:style_comment Comment
* style_comment
"*" maybe_end_style_comment
:maybe_end_style_comment Comment
* comment
"/" style_block
"*" maybe_end_style_comment
# property-key
:style_word Keyword
* style_word
":" style_value recolor=-1
# property-value
:style_value Idle
* style_value
";" style_block
# treat } without previous ; like ;}
"}" style_block noeat
"#" color recolor=-1
"0-9" decimal recolor=-1
"." maybe_float
"a-zA-Z_" ident
:color Constant
* style_value noeat
"0-9a-fA-F" color
:decimal Constant
* style_value noeat
"0-9" decimal
"." float
"a-zA-Z%" decimal_unit
:maybe_float Constant
* style_value noeat recolor=-2
"0-9" float recolor=-2
:float Constant
* style_value noeat
"0-9" float
"a-zA-Z%" decimal_unit
:decimal_unit Constant
* style_value noeat
"a-zA-Z" decimal_unit
:ident Idle
* style_value noeat
"a-ZA-Z0-9_-" ident
.end

66
dotfiles/joe/syntax/debian.jsf

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

27
dotfiles/joe/syntax/dockerfile.jsf

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

262
dotfiles/joe/syntax/elixir.jsf

@ -0,0 +1,262 @@
# 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
dotfiles/joe/syntax/erb.jsf

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

497
dotfiles/joe/syntax/erlang.jsf

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

1055
dotfiles/joe/syntax/ftyperc

File diff suppressed because it is too large Load Diff

20
dotfiles/joe/syntax/git-commit.jsf

@ -0,0 +1,20 @@
# 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
dotfiles/joe/syntax/go.jsf

@ -0,0 +1,293 @@
# 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
dotfiles/joe/syntax/haml.jsf

@ -0,0 +1,121 @@
# 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
dotfiles/joe/syntax/html.jsf

File diff suppressed because it is too large Load Diff

11
dotfiles/joe/syntax/htmlerb.jsf

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

104
dotfiles/joe/syntax/ini.jsf

@ -0,0 +1,104 @@
# JOE syntax highlight file for INI files
# License: GPL v2 or any later version
# by Christian Nicolai (http://mycrobase.de)
# contributions by Todd Lewis (https://github.com/utoddl)
=Idle
=Comment green
=Constant cyan
=Escape bold cyan
=Bad bold red
=Key
=Separator bold
=Section bold magenta
=SectionBracket bold magenta
:line_start Idle
* key noeat mark
"\n" line_start
" \t\r" line_start # leading spaces
";#" line_comment recolor=-1
"[" section_start noeat
"=" missing_key recolor=-1
:line_comment Comment
* line_comment
"\n" line_start
:section_start SectionBracket
* section mark noeat
"[" section_start
:section Section
* section
"]" section_end noeat
"\n" unexpected_end noeat recolormark
:section_end SectionBracket
* unexpected_end noeat
"]" section_end mark
"\n" line_start
:unexpected_end Bad
* unexpected_end
"\n" line_start
:missing_key Bad
* value_pre noeat
:key Key
* key
"=:" sep noeat mark
"\n" unexpected_end noeat recolormark
:sep Separator
* value_pre noeat
"=:" value_pre
:value_pre Idle
* value noeat mark
" \t\r" value_pre
"\n" unexpected_end noeat recolormark
:value Constant
* value
"\\" value_esc mark
"\n" line_start
" " value_maybe_comment recolor=-1
:value_maybe_comment Idle
* value noeat
";#" line_comment recolor=-1
:value_esc Escape
* value_esc_bad noeat recolormark
"0abtrn;#=:\\" value_esc_end recolormark
"x" value_esc_unicode1
"\n" value mark
:value_esc_bad Bad
* value noeat mark
:value_esc_end Escape
* value noeat mark
:value_esc_unicode1 Escape
* value_esc_bad noeat recolormark
"0-9a-fA-F" value_esc_unicode2
"\n" unexpected_end noeat recolormark
:value_esc_unicode2 Escape
* value_esc_bad noeat recolormark
"0-9a-fA-F" value_esc_unicode3
"\n" unexpected_end noeat recolormark
:value_esc_unicode3 Escape
* value_esc_bad noeat recolormark
"0-9a-fA-F" value_esc_unicode4
"\n" unexpected_end noeat recolormark
:value_esc_unicode4 Escape
* value_esc_bad noeat recolormark
"0-9a-fA-F" value_esc_end recolormark
"\n" unexpected_end noeat recolormark

128
dotfiles/joe/syntax/iptables.jsf

@ -0,0 +1,128 @@
# JOE syntax highlight file for ip(6)tables-save and -restore
=Idle
=Comment green
=Constant cyan
=Escape bold cyan
=Bad bold red
=Table bold
=Policy bold blue
=Option fg_310 # brown
=Module yellow
:line_start Idle
* rest noeat
"#" line_comment recolor=-1
"*" maybe_table buffer
":" default_policy recolor=-1
"C" maybe_commit buffer
"-" command
:rest Idle
* rest
"\n" line_start
:line_comment Comment
* line_comment
"\n" line_start
:maybe_table Idle
* bad noeat strings
"*filter" table_name
"*mangle" table_name
"*nat" table_name
"*raw" table_name
done
"a-z" maybe_table
:table_name Table
* bad noeat
"\n" line_start
:default_policy Policy
* default_policy
"\n" line_start
:maybe_commit Idle
* bad noeat strings
"COMMIT" commit
done
"A-Z" maybe_commit
:commit Table
* bad noeat
"\n" line_start
:command Idle
* bad noeat
"ADINX" chain_name_pre
:chain_name_pre Idle
* chain_name noeat
" " chain_name_pre
:chain_name Option
* chain_name
" " rule_spec noeat
"\n" line_start
:rule_spec Idle
* rule_option noeat
" " rule_spec
"\n" line_start
:rule_option Idle
* rule_option
" " rule_spec noeat
"\n" line_start
"-" rule_flag
:rule_flag Idle
* rule_option
"-" rule_flag_flag
"iojp" rule_iojp_pre
"sd" rule_sd_pre
"m" rule_m_pre
:rule_flag_flag Idle
* rule_flag_flag1 buffer
:rule_flag_flag1 Idle
* rule_option noeat strings
"sport" rule_sd_pre
"dport" rule_sd_pre
done
"a-z-_" rule_flag_flag1
:rule_iojp_pre Idle
* rule_iojp noeat
" " rule_iojp_pre
:rule_iojp Option
* rule_iojp
" " rule_option noeat
"\n" line_start
:rule_sd_pre Idle
* rule_sd noeat
" " rule_sd_pre
:rule_sd Constant
* rule_sd
" " rule_option noeat
"\n" line_start
:rule_m_pre Idle
* rule_m noeat
" " rule_m_pre
:rule_m Module
* rule_m
" " rule_option noeat
"\n" line_start
:bad Bad
* bad
"\n" line_start

284
dotfiles/joe/syntax/java.jsf

@ -0,0 +1,284 @@
# 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
dotfiles/joe/syntax/js.jsf

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

261
dotfiles/joe/syntax/json.jsf

@ -0,0 +1,261 @@
# JSON highlighter per json.org
# Written by Rebecca Turner (@ReBecaOrg)
# Define colors
=Idle
=Comma
=PairSep
=Bracket magenta
=Brace magenta
=Number cyan
=String cyan
=StringEscape cyan bold
=Boolean cyan
=Null cyan
=Bad red bold inverse # Syntax errors detected by the highlighter
=ERROR bold yellow bg_red # Errors in the highlighter itself
:json Idle
* end noeat call=.value()
" \t\n" json
:end Idle
* endBAD noeat
" \t\n" end
:endBAD Bad
* end
.subr value
:value Idle
* valueBAD noeat
"\"" end noeat call=.string()
"-0-9" end noeat call=.number()
"tfn" end noeat call=.bareword()
"{" end noeat call=.object()
"[" end noeat call=.array()
:valueBAD Bad
* value
:end Idle
* NULL noeat return
.end
.subr object
:object Brace
* objectBAD noeat
"{" maybeempty
:objectBAD ERROR
* end
:maybeempty Brace
* key noeat
" \t\n" maybeempty
"}" end recolor=-1
:key Idle
* keyBAD noeat
"\"" pairsep noeat call=.string()
" \t\n" key
:keyBAD Bad
* key
:pairsep PairSep
* pairsepBAD noeat
":" value
" \t\n" pairsep
:pairsepBAD Bad
* pairsep
:value Idle
* nextpair noeat call=.value()
" \t\n" value
:nextpair Comma
* nextpairBAD noeat
"}" end recolor=-1
"," key
" \t\n" nextpair
:nextpairBAD Bad
* nextpair
:end Brace
* NULL noeat return
.end
.subr array
:array Bracket
* arrayBAD noeat
"[" maybeempty
:arrayBAD ERROR
* end
:maybeempty Bracket
* value noeat
" \t\n" maybeempty
"]" end recolor=-1
:value Idle
* nextvalue noeat call=.value()
" \t\n" value
:nextvalue Comma
* nextvalueBAD noeat
"]" end recolor=-1
"," value
" \t\n" nextvalue
:nextvalueBAD Bad
* nextvalue
:end Bracket
* NULL noeat return
.end
.subr string
:string String
* stringBAD noeat
"\"" body
:stringBAD ERROR
* end
:body String
* body
"\"" end
"\\" escape recolor=-1
:escape StringEscape
* escapeBAD recolor=-2 noeat
"\"/bfnrt\\" body
"u" unicode1
:escapeBAD Bad
* body
:unicode1 StringEscape
* unicodeBAD recolor=-3 noeat
"0-9a-fA-F" unicode2
:unicode2 StringEscape
* unicodeBAD recolor=-4 noeat
"0-9a-fA-F" unicode3
:unicode3 StringEscape
* unicodeBAD recolor=-5 noeat
"0-9a-fA-F" unicode4
:unicode4 StringEscape
* unicodeBAD recolor=-6 noeat
"0-9a-fA-F" body
:unicodeBAD Bad
* body
:end Idle
* NULL noeat return
.end
.subr bareword
:bareword Idle
* body noeat mark buffer
:body Bad
* end noeat markend strings
"true" boolean
"false" boolean
"null" null
done
"truefalsn" body
:boolean Boolean
* end noeat
:null Null
* end noeat
:end Idle
* NULL noeat return
.end
.subr number
:number Number
* numberBAD
"0-9" numberA noeat
"-" numberA
:numberBAD ERROR
* end
:numberA Number
"0" decimalpoint
"1-9" integer
:integer Number
* end noeat
"0-9" integer
"." decimalpart
"eE" exponentpart
:decimalpoint Number
* end noeat
"0-9" decimalpointBAD
"eE" exponentpart
"." decimalpart
:decimalpointBAD Bad
* end
:decimalpart Number
* decimalpartBAD
"0-9" decimalpartA
:decimalpartBAD Bad
* end
:decimalpartA Number
* end noeat
"0-9" decimalpartA
"eE" exponentpart
:exponentpart Number
* exponentpartBAD
"-+" exponentpartA
"0-9" exponentpartB
:exponentpartBAD Bad
* end
:exponentpartA Number
* exponentpartBAD
"0-9" exponentpartB
:exponentpartB Number
* end noeat
"0-9" exponentpartB
:end Idle
* NULL noeat return
.end

884
dotfiles/joe/syntax/lsl.jsf

@ -0,0 +1,884 @@
# Linden Scripting Language (LSL) highlighter for JOE
# by Zai Lynch - https://wiki.secondlife.com/wiki/User:Zai_Lynch
# is a modification of the PASCAL highlighter by Michael Van Canneyt
# Last update: March 26th 2009
# Since JOE is released under GPL 1, this file is also released as GPL 1
=Idle
=Comment green
=Constant cyan
=Type bold
=Keyword bold # for, if, then, else...
=Operator bold blue # events
=Function bold
# cyan, green, magenta, red, blue
# bold
:idle Idle
* idle
"a-zA-Z" ident buffer
"/" maybe_linecomment
"\"" string recolor=-1
"0-9" number recolor=-1
# Comments
:maybe_comment Idle
* idle noeat
"*" comment recolor=-2
:maybe_linecomment Idle
* idle noeat
"/" line_comment recolor=-2
"*" comment recolor=-2
:line_comment Comment
* line_comment
"\n" idle
:comment Comment
* comment
"*" maybe_end_comment
:comment Comment
* comment
"*" maybe_end_comment
:maybe_end_comment Comment
* comment noeat
"/" idle
# String constant
:string Constant
* string
# "\n" idle
"\"" maybe_end_string
"\\" maybe_end_string_mask
:maybe_end_string Constant
* idle #string ended
"\"" string #new string begins
# Numeric constant
:maybe_end_string_mask Constant
* string
:number Constant
* idle noeat
"0-9" number
"eE" epart
"." dot
:dot Constant
* idle noeat
"0-9" float
:float Constant
* idle noeat
"eE" epart
"0-9" float
:epart Constant
* idle noeat
"0-9+\-" enum
:enum Constant
* idle noeat
"0-9" enum
# Keywords
:ident Idle
* idle noeat istrings
# LSL types
"string" type
"integer" type
"list" type
"key" type
"float" type
"rotation" type
"vector" type
# LSL keywords
"default" constant
"do while" kw
"if" kw
"else" kw
"for" kw
"jump" kw
"return" kw
"state" kw
"while" kw
# LSL events
"attach" event
"at_rot_target" event
"at_target" event
"changed" event
"collision" event
"collision end" event
"collision start" event
"control" event
"dataserver" event
"email" event
"http_request" event
"http_response" event
"land_collision" event
"land_collision end" event
"land_collision start" event
"link_message" event
"listen" event
"money" event
"moving_end" event
"moving_start" event
"no_sensor" event
"not_at_rot_target" event
"not_at_target" event
"object_rez" event
"on_rez" event
"remote_data" event
"run_time_permissions" event
"sensor" event
"state_entry" event
"state_exit" event
"timer" event
"touch" event
"touch_end" event
"touch_start" event
# LSL constants
"ACTIVE" constant
"AGENT" constant
"AGENT_ALWAYS_RUN" constant
"AGENT_ATTACHMENTS" constant
"AGENT_AWAY" constant
"AGENT_BUSY" constant
"AGENT_CROUCHING" constant
"AGENT_FLYING" constant
"AGENT_IN_AIR" constant
"AGENT_MOUSELOOK" constant
"AGENT_ON_OBJECT" constant
"AGENT_SCRIPTED" constant
"AGENT_SITTING" constant
"AGENT_TYPING" constant
"AGENT_WALKING" constant
"ALL_SIDES" constant
"ANIM_ON" constant
"ATTACH_BACK" constant
"ATTACH_BELLY" constant
"ATTACH_CHEST" constant
"ATTACH_CHIN" constant
"ATTACH_HEAD" constant
"ATTACH_HUD_BOTTOM" constant
"ATTACH_HUD_BOTTOM_LEFT" constant
"ATTACH_HUD_BOTTOM_RIGHT" constant
"ATTACH_HUD_CENTER_1" constant
"ATTACH_HUD_TOP_CENTER" constant
"ATTACH_HUD_TOP_LEFT" constant
"ATTACH_HUD_TOP_RIGHT" constant
"ATTACH_LEAR" constant
"ATTACH_LEYE" constant
"ATTACH_LFOOT" constant
"ATTACH_LHAND" constant
"ATTACH_LHIP" constant
"ATTACH_LLARM" constant
"ATTACH_LLLEG" constant
"ATTACH_LSHOULDER" constant
"ATTACH_LUARM" constant
"ATTACH_LULEG" constant
"ATTACH_MOUTH" constant
"ATTACH_NOSE" constant
"ATTACH_PELVIS" constant
"ATTACH_REAR" constant
"ATTACH_REYE" constant
"ATTACH_RFOOT" constant
"ATTACH_RHAND" constant
"ATTACH_RHIP" constant
"ATTACH_RLARM" constant
"ATTACH_RLLEG" constant
"ATTACH_RSHOULDER" constant
"ATTACH_RUARM" constant
"ATTACH_RULEG" constant
"CAMERA_ACTIVE" constant
"CAMERA_BEHINDNESS_ANGLE" constant
"CAMERA_BEHINDNESS_LAG" constant
"CAMERA_DISTANCE" constant
"CAMERA_FOCUS" constant
"CAMERA_FOCUS_LOCKED" constant
"CAMERA_FOCUS_OFFSET" constant
"CAMERA_POSITION" constant
"CAMERA_POSITION_LAG" constant
"CAMERA_POSITION_LOCKED" constant
"CAMERA_POSITION_THRESHOLD" constant
"CHANGED_ALLOWED_DROP" constant
"CHANGED_COLOR" constant
"CHANGED_INVENTORY" constant
"CHANGED_LINK" constant
"CHANGED_OWNER" constant
"CHANGED_REGION_START" constant
"CHANGED_SCALE" constant
"CHANGED_SHAPE" constant
"CHANGED_TELEPORT" constant
"CHANGED_TEXTURE" constant
"CLICK_ACTION_BUY" constant
"CLICK_ACTION_NONE" constant
"CLICK_ACTION_OPEN" constant
"CLICK_ACTION_OPEN_MEDIA" constant
"CLICK_ACTION_PAY" constant
"CLICK_ACTION_PLAY" constant
"CLICK_ACTION_SIT" constant
"CONTROL_BACK" constant
"CONTROL_DOWN" constant
"CONTROL_LBUTTON" constant
"CONTROL_LEFT" constant
"CONTROL_ML_LBUTTON" constant
"CONTROL_RIGHT" constant
"CONTROL_ROT_LEFT" constant
"CONTROL_ROT_RIGHT" constant
"CONTROL_UP" constant
"DATA_NAME" constant
"DATA_ONLINE" constant
"DATA_PAYINFO" constant
"DATA_SIM_POS" constant
"DATA_SIM_RATING" constant
"DATA_SIM_STATUS" constant
"DEBUG_CHANNEL" constant
"DEG_TO_RAD" constant
"EOF" constant
"FALSE" constant
"HTTP_BODY_MAXLENGTH" constant
"HTTP_METHOD" constant
"HTTP_MIMETYPE" constant
"HTTP_VERIFY_CERT" constant
"INVENTORY_ALL" constant
"INVENTORY_ANIMATION" constant
"INVENTORY_BODYPART" constant
"INVENTORY_CLOTHING" constant
"INVENTORY_GESTURE" constant
"INVENTORY_LANDMARK" constant
"INVENTORY_NONE" constant
"INVENTORY_NOTECARD" constant
"INVENTORY_OBJECT" constant
"INVENTORY_SCRIPT" constant
"INVENTORY_SOUND" constant
"INVENTORY_TEXTURE" constant
"LAND_LEVEL" constant
"LAND_LOWER" constant
"LAND_NOISE" constant
"LAND_RAISE" constant
"LAND_REVERT" constant
"LAND_SMOOTH" constant
"LINK_ALL_CHILDREN" constant
"LINK_ALL_OTHERS" constant
"LINK_ROOT" constant
"LINK_SET" constant
"LINK_THIS" constant
"LIST_STAT_GEOMETRIC_MEAN" constant
"LIST_STAT_MAX" constant
"LIST_STAT_MEAN" constant
"LIST_STAT_MIN" constant
"LIST_STAT_RANGE" constant
"LIST_STAT_STD_DEV" constant
"LIST_STAT_SUM" constant
"LIST_STAT_SUM_SQUARES" constant
"LOOP" constant
"MASK_BASE" constant
"MASK_EVERYONE" constant
"MASK_GROUP" constant
"MASK_NEXT" constant
"MASK_OWNER" constant
"NULL_KEY" constant
"OBJECT_CREATOR" constant
"OBJECT_DESC" constant
"OBJECT_GROUP" constant
"OBJECT_NAME" constant
"OBJECT_OWNER" constant
"OBJECT_ROT" constant
"OBJECT_UNKNOWN_DETAIL" constant
"OBJECT_VELOCITY" constant
"PARCEL_DETAILS_AREA" constant
"PARCEL_DETAILS_DESC" constant
"PARCEL_DETAILS_GROUP" constant
"PARCEL_DETAILS_NAME" constant
"PARCEL_DETAILS_OWNER" constant
"PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY" constant
"PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS" constant
"PARCEL_FLAG_ALLOW_CREATE_OBJECTS" constant
"PARCEL_FLAG_ALLOW_DAMAGE" constant
"PARCEL_FLAG_ALLOW_FLY" constant
"PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY" constant
"PARCEL_FLAG_ALLOW_GROUP_SCRIPTS" constant
"PARCEL_FLAG_ALLOW_LANDMARK" constant
"PARCEL_FLAG_ALLOW_SCRIPTS" constant
"PARCEL_FLAG_ALLOW_TERRAFORM" constant
"PARCEL_FLAG_LOCAL_SOUND_ONLY" constant
"PARCEL_FLAG_RESTRICT_PUSHOBJECT" constant
"PARCEL_FLAG_USE_ACCESS_GROUP" constant
"PARCEL_FLAG_USE_ACCESS_LIST" constant
"PARCEL_FLAG_USE_BAN_LIST" constant
"PARCEL_FLAG_USE_LAND_PASS_LIST" constant
"PARCEL_MEDIA_COMMAND_AGENT" constant
"PARCEL_MEDIA_COMMAND_AUTO_ALIGN" constant
"PARCEL_MEDIA_COMMAND_DESC" constant
"PARCEL_MEDIA_COMMAND_LOOP" constant
"PARCEL_MEDIA_COMMAND_LOOP_SET" constant
"PARCEL_MEDIA_COMMAND_PAUSE" constant
"PARCEL_MEDIA_COMMAND_PLAY" constant
"PARCEL_MEDIA_COMMAND_SIZE" constant
"PARCEL_MEDIA_COMMAND_STOP" constant
"PARCEL_MEDIA_COMMAND_TEXTURE" constant
"PARCEL_MEDIA_COMMAND_TIME" constant
"PARCEL_MEDIA_COMMAND_TYPE" constant
"PARCEL_MEDIA_COMMAND_URL" constant
"PASSIVE" constant
"PAYMENT_INFO_ON_FILE" constant
"PAYMENT_INFO_USED" constant
"PAY_DEFAULT" constant
"PAY_HIDE" constant
"PERMISSION_ATTACH" constant
"PERMISSION_CHANGE_LINKS" constant
"PERMISSION_CONTROL_CAMERA" constant
"PERMISSION_DEBIT" constant
"PERMISSION_TAKE_CONTROLS" constant
"PERMISSION_TRACK_CAMERA" constant
"PERMISSION_TRIGGER_ANIMATION" constant
"PERM_ALL" constant
"PERM_COPY" constant
"PERM_MOVE" constant
"PERM_TRANSFER" constant
"PI" constant
"PI_BY_TWO" constant
"PRIM_BUMP_BARK" constant
"PRIM_BUMP_BLOBS" constant
"PRIM_BUMP_BRICKS" constant
"PRIM_BUMP_BRIGHT" constant
"PRIM_BUMP_CHECKER" constant
"PRIM_BUMP_CONCRETE" constant
"PRIM_BUMP_DARK" constant
"PRIM_BUMP_DISKS" constant
"PRIM_BUMP_GRAVEL" constant
"PRIM_BUMP_LARGETILE" constant
"PRIM_BUMP_NONE" constant
"PRIM_BUMP_SHINY" constant
"PRIM_BUMP_SIDING" constant
"PRIM_BUMP_STONE" constant
"PRIM_BUMP_STUCCO" constant
"PRIM_BUMP_SUCTION" constant
"PRIM_BUMP_TILE" constant
"PRIM_BUMP_WEAVE" constant
"PRIM_BUMP_WOOD" constant
"PRIM_COLOR" constant
"PRIM_FLEXIBLE" constant
"PRIM_FULLBRIGHT" constant
"PRIM_GLOW" constant
"PRIM_HOLE_CIRCLE" constant
"PRIM_HOLE_DEFAULT" constant
"PRIM_HOLE_SQUARE" constant
"PRIM_HOLE_TRIANGLE" constant
"PRIM_MATERIAL" constant
"PRIM_MATERIAL_FLESH" constant
"PRIM_MATERIAL_GLASS" constant
"PRIM_MATERIAL_METAL" constant
"PRIM_MATERIAL_PLASTIC" constant
"PRIM_MATERIAL_RUBBER" constant
"PRIM_MATERIAL_STONE" constant
"PRIM_MATERIAL_WOOD" constant
"PRIM_PHANTOM" constant
"PRIM_PHYSICS" constant
"PRIM_POINT_LIGHT" constant
"PRIM_POSITION" constant
"PRIM_ROTATION" constant
"PRIM_SCULPT_FLAG_INVERT" constant
"PRIM_SCULPT_FLAG_MIRROR" constant
"PRIM_SCULPT_TYPE_CYLINDER" constant
"PRIM_SCULPT_TYPE_MASK" constant
"PRIM_SCULPT_TYPE_PLANE" constant
"PRIM_SCULPT_TYPE_SPHERE" constant
"PRIM_SCULPT_TYPE_TORUS" constant
"PRIM_SHINY_HIGH" constant
"PRIM_SHINY_LOW" constant
"PRIM_SHINY_MEDIUM" constant
"PRIM_SHINY_NONE" constant
"PRIM_SIZE" constant
"PRIM_TEMP_ON_REZ" constant
"PRIM_TEXGEN" constant
"PRIM_TEXGEN_DEFAULT" constant
"PRIM_TEXGEN_PLANAR" constant
"PRIM_TEXTURE" constant
"PRIM_TYPE" constant
"PRIM_TYPE_BOX" constant
"PRIM_TYPE_CYLINDER" constant
"PRIM_TYPE_PRISM" constant
"PRIM_TYPE_RING" constant
"PRIM_TYPE_SCULPT" constant
"PRIM_TYPE_SPHERE" constant
"PRIM_TYPE_TORUS" constant
"PRIM_TYPE_TUBE" constant
"PUBLIC_CHANNEL" constant
"RAD_TO_DEG" constant
"REGION_FLAG_ALLOW_DAMAGE" constant
"REGION_FLAG_ALLOW_DIRECT_TELEPORT" constant
"REGION_FLAG_BLOCK_FLY" constant
"REGION_FLAG_BLOCK_TERRAFORM" constant
"REGION_FLAG_DISABLE_COLLISIONS" constant
"REGION_FLAG_DISABLE_PHYSICS" constant
"REGION_FLAG_FIXED_SUN" constant
"REGION_FLAG_RESTRICT_PUSHOBJECT" constant
"REGION_FLAG_SANDBOX" constant
"REMOTE_DATA_CHANNEL" constant
"REMOTE_DATA_REPLY" constant
"REMOTE_DATA_REQUEST" constant
"REVERSE" constant
"ROTATE" constant
"Rotation" constant
"SCALE" constant
"SCRIPTED" constant
"SMOOTH" constant
"SQRT2" constant
"STATUS_BLOCK_GRAB" constant
"STATUS_CAST_SHADOWS" constant
"STATUS_DIE_AT_EDGE" constant
"STATUS_PHANTOM" constant
"STATUS_PHYSICS" constant
"STATUS_RETURN_AT_EDGE" constant
"STATUS_ROTATE_X" constant
"STATUS_ROTATE_Y" constant
"STATUS_ROTATE_Z" constant
"STATUS_SANDBOX" constant
"STRING_TRIM" constant
"STRING_TRIM_HEAD" constant
"STRING_TRIM_TAIL" constant
"TEXTURE_DEFAULT" constant
"TEXTURE_BLANK" constant
"TEXTURE_MEDIA" constant
"TEXTURE_PLYWOOD" constant
"TEXTURE_TRANSPARENT" constant
"TOUCH_INVALID_FACE" constant
"TOUCH_INVALID_TEXCOORD" constant
"TOUCH_INVALID_VECTOR" constant
"TRUE" constant
"TWO_PI" constant
"TYPE_FLOAT" constant
"TYPE_INTEGER" constant
"TYPE_INVALID" constant
"TYPE_KEY" constant
"TYPE_ROTATION" constant
"TYPE_STRING" constant
"TYPE_VECTOR" constant
"URL_REQUEST_DENIED" constant
"URL_REQUEST_GRANTED" constant
"VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY" constant
"VEHICLE_ANGULAR_DEFLECTION_TIMESCALE" constant
"VEHICLE_ANGULAR_FRICTION_TIMESCALE" constant
"VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE" constant
"VEHICLE_ANGULAR_MOTOR_DIRECTION" constant
"VEHICLE_ANGULAR_MOTOR_TIMESCALE" constant
"VEHICLE_BANKING_EFFICIENCY" constant
"VEHICLE_BANKING_MIX" constant
"VEHICLE_BANKING_TIMESCALE" constant
"VEHICLE_BUOYANCY" constant
"VEHICLE_FLAG_CAMERA_DECOUPLED" constant
"VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT" constant
"VEHICLE_FLAG_HOVER_TERRAIN_ONLY" constant
"VEHICLE_FLAG_HOVER_UP_ONLY" constant
"VEHICLE_FLAG_HOVER_WATER_ONLY" constant
"VEHICLE_FLAG_LIMIT_MOTOR_UP" constant
"VEHICLE_FLAG_LIMIT_ROLL_ONLY" constant
"VEHICLE_FLAG_MOUSELOOK_BANK" constant
"VEHICLE_FLAG_MOUSELOOK_STEER" constant
"VEHICLE_FLAG_NO_DEFLECTION_UP" constant
"VEHICLE_HOVER_EFFICIENCY" constant
"VEHICLE_HOVER_GLOBAL_HEIGHT" constant
"VEHICLE_HOVER_HEIGHT" constant
"VEHICLE_HOVER_TIMESCALE" constant
"VEHICLE_HOVER_WATER_ONLY" constant
"VEHICLE_LINEAR_DEFLECTION_EFFICIENCY" constant
"VEHICLE_LINEAR_DEFLECTION_TIMESCALE" constant
"VEHICLE_LINEAR_FRICTION_TIMESCALE" constant
"VEHICLE_LINEAR_MOTOR_DIRECTION" constant
"VEHICLE_LINEAR_MOTOR_OFFSET" constant
"VEHICLE_LINEAR_MOTOR_TIMESCALE" constant
"VEHICLE_REFERENCE_FRAME" constant
"VEHICLE_TYPE_AIRPLANE" constant
"VEHICLE_TYPE_BALLOON" constant
"VEHICLE_TYPE_BOAT" constant
"VEHICLE_TYPE_CAR" constant
"VEHICLE_TYPE_NONE" constant
"VEHICLE_TYPE_SLED" constant
"VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY" constant
"VEHICLE_VERTICAL_ATTRACTION_TIMESCALE" constant
"ZERO_ROTATION" constant
# LSL functions
"llAbs" function
"llAcos" function
"llAddToLandBanList" function
"llAddToLandPassList" function
"llAdjustSoundVolume" function
"llAllowInventoryDrop" function
"llAngleBetween" function
"llApplyImpulse" function
"llApplyRotationalImpulse" function
"llAsin" function
"llAtan2" function
"llAttachToAvatar" function
"llAvatarOnSitTarget" function
"llAxes2Rot" function
"llAxisAngle2Rot" function
"llBase64ToInteger" function
"llBase64ToString" function
"llBreakAllLinks" function
"llBreakLink" function
"llCeil" function
"llClearCameraParams" function
"llCloseRemoteDataChannel" function
"llCloud" function
"llCollisionFilter" function
"llCollisionSound" function
"llCollisionSprite" function
"llCos" function
"llCreateLink" function
"llCSV2List" function
"llDeleteSubList" function
"llDeleteSubString" function
"llDetachFromAvatar" function
"llDetectedGrab" function
"llDetectedGroup" function
"llDetectedKey" function
"llDetectedLinkNumber" function
"llDetectedName" function
"llDetectedOwner" function
"llDetectedPos" function
"llDetectedRot" function
"llDetectedTouchBinormal" function
"llDetectedTouchFace" function
"llDetectedTouchNormal" function
"llDetectedTouchPos" function
"llDetectedTouchST" function
"llDetectedTouchUV" function
"llDetectedType" function
"llDetectedVel" function
"llDialog" function
"llDie" function
"llDumpList2String" function
"llEdgeOfWorld" function
"llEjectFromLand" function
"llEmail" function
"llEscapeURL" function
"llEuler2Rot" function
"llFabs" function
"llFloor" function
"llForceMouselook" function
"llFrand" function
"llGetAccel" function
"llGetAgentInfo" function
"llGetAgentLanguage" function
"llGetAgentSize" function
"llGetAlpha" function
"llGetAndResetTime" function
"llGetAnimation" function
"llGetAnimationList" function
"llGetAttached" function
"llGetBoundingBox" function
"llGetCameraPos" function
"llGetCameraRot" function
"llGetCenterOfMass" function
"llGetColor" function
"llGetCreator" function
"llGetDate" function
"llGetEnergy" function
"llGetForce" function
"llGetFreeMemory" function
"llGetGeometricCenter" function
"llGetGMTclock" function
"llGetInventoryCreator" function
"llGetInventoryKey" function
"llGetInventoryName" function
"llGetInventoryNumber" function
"llGetInventoryPermMask" function
"llGetInventoryType" function
"llGetKey" function
"llGetLandOwnerAt" function
"llGetLinkKey" function
"llGetLinkName" function
"llGetLinkNumber" function
"llGetListEntryType" function
"llGetListLength" function
"llGetLocalPos" function
"llGetLocalRot" function
"llGetMass" function
"llGetNextEmail" function
"llGetNotecardLine" function
"llGetNumberOfNotecardLines" function
"llGetNumberOfPrims" function
"llGetNumberOfSides" function
"llGetObjectDesc" function
"llGetObjectDetails" function
"llGetObjectMass" function
"llGetObjectName" function
"llGetObjectPermMask" function
"llGetObjectPrimCount" function
"llGetOmega" function
"llGetOwner" function
"llGetOwnerKey" function
"llGetParcelDetails" function
"llGetParcelFlags" function
"llGetParcelMaxPrims" function
"llGetParcelPrimCount" function
"llGetParcelPrimOwners" function
"llGetPermissions" function
"llGetPermissionsKey" function
"llGetPos" function
"llGetPrimitiveParams" function
"llGetRegionAgentCount" function
"llGetRegionCorner" function
"llGetRegionFlags" function
"llGetRegionFPS" function
"llGetRegionName" function
"llGetRegionTimeDilation" function
"llGetRootPosition" function
"llGetRootRotation" function
"llGetRot" function
"llGetScale" function
"llGetScriptName" function
"llGetScriptState" function
"llGetSimulatorHostname" function
"llGetStartParameter" function
"llGetStatus" function
"llGetSubString" function
"llGetSunDirection" function
"llGetTexture" function
"llGetTextureOffset" function
"llGetTextureRot" function
"llGetTextureScale" function
"llGetTime" function
"llGetTimeOfDay" function
"llGetTimestamp" function
"llGetTorque" function
"llGetUnixTime" function
"llGetVel" function
"llGetWallclock" function
"llGiveInventory" function
"llGiveInventoryList" function
"llGiveMoney" function
"llGodLikeRezObject" function
"llGround" function
"llGroundContour" function
"llGroundNormal" function
"llGroundRepel" function
"llGroundSlope" function
"llHTTPRequest" function
"llInsertString" function
"llInstantMessage" function
"llIntegerToBase64" function
"llKey2Name" function
"llList2CSV" function
"llList2Float" function
"llList2Integer" function
"llList2Key" function
"llList2List" function
"llList2ListStrided" function
"llList2Rot" function
"llList2String" function
"llList2Vector" function
"llListen" function
"llListenControl" function
"llListenRemove" function
"llListFindList" function
"llListInsertList" function
"llListRandomize" function
"llListReplaceList" function
"llListSort" function
"llListStatistics" function
"llLoadURL" function
"llLog" function
"llLog10" function
"llLookAt" function
"llLoopSound" function
"llLoopSoundMaster" function
"llLoopSoundSlave" function
"llMakeExplosion" function
"llMakeFire" function
"llMakeFountain" function
"llMakeSmoke" function
"llMapDestination" function
"llMD5String" function
"llMessageLinked" function
"llMinEventDelay" function
"llModifyLand" function
"llModPow" function
"llMoveToTarget" function
"llOffsetTexture" function
"llOpenRemoteDataChannel" function
"llOverMyLand" function
"llOwnerSay" function
"llParcelMediaCommandList" function
"llParcelMediaQuery" function
"llParseString2List" function
"llParseStringKeepNulls" function
"llParticleSystem" function
"llPassCollisions" function
"llPassTouches" function
"llPlaySound" function
"llPlaySoundSlave" function
"llPointAt" function
"llPow" function
"llPreloadSound" function
"llPushObject" function
"llRefreshPrimURL" function
"llRegionSay" function
"llReleaseCamera" function
"llReleaseControls" function
"llRemoteDataReply" function
"llRemoteDataSetRegion" function
"llRemoteLoadScript" function
"llRemoteLoadScriptPin" function
"llRemoveFromLandBanList" function
"llRemoveFromLandPassList" function
"llRemoveInventory" function
"llRemoveVehicleFlags" function
"llRequestAgentData" function
"llRequestInventoryData" function
"llRequestPermissions" function
"llRequestSimulatorData" function
"llResetLandBanList" function
"llResetLandPassList" function
"llResetOtherScript" function
"llResetScript" function
"llResetTime" function
"llRezAtRoot" function
"llRezObject" function
"llRot2Angle" function
"llRot2Axis" function
"llRot2Euler" function
"llRot2Fwd" function
"llRot2Left" function
"llRot2Up" function
"llRotateTexture" function
"llRotBetween" function
"llRotLookAt" function
"llRotTarget" function
"llRotTargetRemove" function
"llRound" function
"llSameGroup" function
"llSay" function
"llScaleTexture" function
"llScriptDanger" function
"llSendRemoteData" function
"llSensor" function
"llSensorRemove" function
"llSensorRepeat" function
"llSetAlpha" function
"llSetBuoyancy" function
"llSetCameraAtOffset" function
"llSetCameraEyeOffset" function
"llSetCameraParams" function
"llSetClickAction" function
"llSetColor" function
"llSetDamage" function
"llSetForce" function
"llSetForceAndTorque" function
"llSetHoverHeight" function
"llSetInventoryPermMask" function
"llSetLinkAlpha" function
"llSetLinkColor" function
"llSetLinkPrimitiveParams" function
"llSetLinkTexture" function
"llSetLocalRot" function
"llSetObjectDesc" function
"llSetObjectName" function
"llSetObjectPermMask" function
"llSetParcelMusicURL" function
"llSetPayPrice" function
"llSetPos" function
"llSetPrimitiveParams" function
"llSetPrimURL" function
"llSetRemoteScriptAccessPin" function
"llSetRot" function
"llSetScale" function
"llSetScriptState" function
"llSetSitText" function
"llSetSoundQueueing" function
"llSetSoundRadius" function
"llSetStatus" function
"llSetText" function
"llSetTexture" function
"llSetTextureAnim" function
"llSetTimerEvent" function
"llSetTorque" function
"llSetTouchText" function
"llSetVehicleFlags" function
"llSetVehicleFloatParam" function
"llSetVehicleRotationParam" function
"llSetVehicleType" function
"llSetVehicleVectorParam" function
"llSHA1String" function
"llShout" function
"llSin" function
"llSitTarget" function
"llSleep" function
"llSound" function
"llSoundPreload" function
"llSqrt" function
"llStartAnimation" function
"llStopAnimation" function
"llStopHover" function
"llStopLookAt" function
"llStopMoveToTarget" function
"llStopPointAt" function
"llStopSound" function
"llStringLength" function
"llStringToBase64" function
"llStringTrim" function
"llSubStringIndex" function
"llTakeCamera" function
"llTakeControls" function
"llTan" function
"llTarget" function
"llTargetOmega" function
"llTargetRemove" function
"llTeleportAgentHome" function
"llTextBox" function
"llToLower" function
"llToUpper" function
"llTriggerSound" function
"llTriggerSoundLimited" function
"llUnescapeURL" function
"llUnSit" function
"llVecDist" function
"llVecMag" function
"llVecNorm" function
"llVolumeDetect" function
"llWater" function
"llWhisper" function
"llWind" function
"llXorBase64Strings" function
"llXorBase64StringsCorrect" function
done
"a-zA-Z0-9_" ident
:kw Keyword
* idle noeat
:type Type
* idle noeat
:operator Operator
* idle noeat
:event Operator
* idle noeat
:word_constant Constant
* idle noeat
:constant Constant
* idle noeat
:function Function
* idle noeat

97
dotfiles/joe/syntax/makefile.jsf

@ -0,0 +1,97 @@
# JOE syntax highlight file for Makefile
=Idle
=Comment green
=CommentLabel bold green
=Constant cyan
=Escape bold cyan
=Bad bold red
=RecipeCont bold cyan
=TargetPhony yellow
=TargetOther fg_310 # brown
=TargetRest
:line_start Idle
* idle noeat
"#" line_comment recolor=-1
"a-zA-Z0-9._" maybe_target mark buffer
"\t" recipe
:idle Idle
* idle
"$" maybe_substitute
"\n" line_start
:maybe_substitute Idle
* idle noeat
"(" substitute recolor=-2
:substitute Constant
* substitute
")" idle
:recipe Idle
* recipe
"$" maybe_r_substitute
"\\" recipe_cont recolor=-1
"\n" line_start
:recipe_cont RecipeCont
* recipe noeat
"\n" recipe
:maybe_r_substitute Idle
* recipe noeat
"(" r_substitute recolor=-2
:r_substitute Constant
* r_substitute
")" recipe
:line_comment Comment
* line_comment
# might be TODO label
"BFHNTX" line_comment noeat call=.comment_todo()
"\n" line_start
:maybe_target Idle
* idle noeat
":" target_other noeat recolormark strings
".PHONY" target_phony
done
"a-zA-Z0-9._-" maybe_target
:target_phony TargetPhony
* target_rest noeat
:target_other TargetOther
* target_rest noeat
:target_rest TargetRest
* target_rest
"\n" line_start
.subr comment_todo
# initial state
:comment_todo_init Comment
* comment_todo_guess buffer
# highlight common TODO labels
:comment_todo_guess Comment
* comment_todo_unknown noeat strings
"BUG" comment_todo
"FIXME" comment_todo
"HACK" comment_todo
"NOTE" comment_todo
"TODO" comment_todo
"XXX" comment_todo
done
"A-Z" comment_todo_guess
:comment_todo_unknown Comment
* NULL noeat return
:comment_todo CommentLabel
* NULL noeat return
.end

153
dotfiles/joe/syntax/md.jsf

@ -0,0 +1,153 @@
# JOE syntax highlight file for Markdown
# by Christian Nicolai (http://mycrobase.de)
# And yes, this *is* a joke :p
# bold parsing is not that perfect since this works: **bold__
=Idle
=Tag green
=Escape bold
=Bad bold red
=Bold bold
=Headline bold yellow
=Quote green
=Code green
=List yellow
=LinkDesc green
=Link blue
=Rule inverse
:line_start Idle
* idle noeat
"#" headline_prefix recolor=-1
">" quote recolor=-1
" " maybe_code1
"\t" code
"-*" maybe_list
:idle Idle
* idle
"\n" line_start
"<" tag recolor=-1
"\\" escape recolor=-1
"*_" maybe_bold1
"[" maybe_link_desc1
"`" backtick buffer noeat
: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
:backtick Quote
* backtick_body save_s noeat
"`" backtick
:backtick_body Code
* backtick_body
"`" backtick_end_maybe buffer
:backtick_end_maybe Code
* backtick_body strings
"&" backtick_end
done
"`" backtick_end_maybe
:backtick_end Quote
* idle noeat

293
dotfiles/joe/syntax/php.jsf

@ -0,0 +1,293 @@
# JOE syntax highlight file for PHP
# modified by Eric Lin
# TODO:
# * heredoc support (as good as possible)
# * highlight function and class names?
# Define no. sync lines
# You can say:
# -200 means 200 lines
# - means always start parsing from beginning of file when we lose sync
# if nothing is specified, the default is -50
-
# Define colors
=Idle
=Comment green
=Constant cyan
=Constant_sq blue
=Escape bold cyan
=Keyword bold
=Var red
=Methods bold
# Call HTML highlighter. It will call the PHP highlighter subroutine in this file.
:begin Idle
* call_failed noeat call=html.html(php)
:call_failed Var
* call_failed
# PHP highlighter.
.subr php
:idle Idle
* idle
"<" idle_done
"?" idle_qmark
"%" idle_hash
"#" sh_comment recolor=-1
"/" slash
"0-9" first_digit recolor=-1
"'" string_sq recolor=-1
"\"" string_dq recolor=-1
"\`" string_bq recolor=-1
"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

259
dotfiles/joe/syntax/powershell.jsf

@ -0,0 +1,259 @@
# PowerShell syntax highlighting for Joe's Own Editor
# Oskar Liljeblad <oskar@osk.mine.nu>, 2014-02-11
#
# PowerShell is the poor man's[1] replacement for a real shell such as Bash.
# [1] Someone who has to use Windows for whatever reason.
#
# Reference: http://www.microsoft.com/en-us/download/details.aspx?id=36389
# Status:
# 1 100%
# 2.1 100%
# 2.2.1 100% except signature support
# 2.2.2 100%
# 2.2.3 100% except requires support
# 2.2.4 100%
# 2.3.1 100%
# 2.3.2 100% except automatic variables
# 2.3.3 100% no coloring
# 2.3.4 100% no coloring
# 2.3.5 100% no coloring
# 2.3.6 100%
=Idle
=Comment green
=Constant cyan
=ConstEscape bold cyan
=Keyword bold
=Var magenta
=VarEscape bold magenta
:idle Idle
* idle
"#" comment recolor=-1
"$" var recolor=-1
"@" var_array recolor=-1
"<" idle1
"\"" string_dq recolor=-1
"'" string_sq recolor=-1
"@" idle2
"a-zA-Z_-" ident buffer
:idle1 Idle
* idle noeat
"#" delim_comment recolor=-2
:idle2 Idle
* idle noeat
"\"" herestr_dq recolor=-2
"'" herestr_sq recolor=-2
:comment Comment
* comment
"\r\n" idle
:var_array Var
* idle noeat
"$?^" idle
"a-zA-Z_" var_name
:var Var
* idle noeat
"{" var_brack
"$?^" idle
"a-zA-Z_" var_name
:var_name Var
* idle noeat recolor=-1
"a-zA-Z0-9_:?" var_name
:var_brack Var
* var_brack
"`" var_escape recolor=-1
"}" idle
:var_escape VarEscape
* var_brack
:delim_comment Comment
* delim_comment
"#" delim_comment1
:delim_comment1 Comment
* delim_comment noeat
">" idle
:kw Keyword
* idle noeat
:string_dq Constant
* string_dq
"\"\n" idle
"$" string_dq_subst recolor=-1
"`" string_dq_esc recolor=-1
:string_dq_subst Var
* string_dq noeat recolor=-2
"a-zA-Z_" string_dq_subst_name
"{" string_dq_subst_brack
"(" string_dq_subst_parens
"`" string_dq_subst_escape recolor=-1
:string_dq_subst_name Var
* string_dq recolor=-1 noeat
"a-zA-Z0-9_:" string_dq_subst_name
"`" string_dq_subst_escape recolor=-1
:string_dq_subst_escape VarEscape
* string_dq_subst_name
:string_dq_subst_brack Var
* string_dq_subst_brack
"}" string_dq
:string_dq_subst_parens Var
* string_dq_sustr_parens
")" string_dq
:string_sq Constant
* string_sq
"\'\n" idle
:string_dq_esc ConstEscape
* string_dq
:string_sq_esc ConstEscape
* string_sq
:herestr_dq Constant
* herestr_dq
"\"" herestr_dq1
"$" herestr_dq_subst recolor=-1
:herestr_dq1 Constant
* herestr_dq noeat
"@" idle
:herestr_dq_subst Var
* herestr_dq noeat recolor=-2
"a-zA-Z_" herestr_dq_subst_name
"(" herestr_dq_subst_parens
"`" herestr_dq_subst_escape recolor=-1
:herestr_dq_subst_name Var
* herestr_dq recolor=-1 noeat
"a-zA-Z0-9_:" herestr_dq_subst_name
"`" herestr_dq_subst_escape recolor=-1
:herestr_dq_subst_escape VarEscape
* herestr_dq_subst_name
:herestr_dq_subst_parens Var
* herestr_dq_subst_parens
")" herestr_dq
:herestr_sq Constant
* herestr_sq
"\'" herestr_sq1
:herestr_sq1 Constant
* herestr_sq noeat
"@" idle
:ident Idle
* idle noeat istrings
"-and" kw
"-band" kw
"-bnot" kw
"-bor" kw
"-bxor" kw
"-not" kw
"-or" kw
"-xor" kw
"-f" kw
"-as" kw
"-ccontains" kw
"-ceq" kw
"-cge" kw
"-cgt" kw
"-cle" kw
"-clike" kw
"-clt" kw
"-cmatch" kw
"-cne" kw
"-cnotcontains" kw
"-cnotlike" kw
"-cnotmatch" kw
"-contains" kw
"-creplace" kw
"-csplit" kw
"-eq" kw
"-ge" kw
"-gt" kw
"-icontains" kw
"-ieq" kw
"-ige" kw
"-igt" kw
"-ile" kw
"-ilike" kw
"-ilt" kw
"-imatch" kw
"-in" kw
"-ine" kw
"-inotcontains" kw
"-inotlike" kw
"-inotmatch" kw
"-ireplace" kw
"-is" kw
"-isnot" kw
"-isplit" kw
"-join" kw
"-le" kw
"-like" kw
"-lt" kw
"-match" kw
"-ne" kw
"-notcontains" kw
"-notin" kw
"-notlike" kw
"-notmatch" kw
"-replace" kw
"-shl" kw
"-shr" kw
"-split" kw
"begin" kw
"break" kw
"catch" kw
"class" kw
"continue" kw
"data" kw
"define" kw
"do" kw
"dynamicparam" kw
"else" kw
"elseif" kw
"end" kw
"exit" kw
"filter" kw
"finally" kw
"for" kw
"foreach" kw
"from" kw
"function" kw
"if" kw
"in" kw
"inlinescript" kw
"parallel" kw
"param" kw
"process" kw
"return" kw
"switch" kw
"throw" kw
"trap" kw
"try" kw
"until" kw
"using" kw
"var" kw
"while" kw
"workflow" kw
done
"a-zA-Z_" ident

154
dotfiles/joe/syntax/prolog.jsf

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

85
dotfiles/joe/syntax/properties.jsf

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

159
dotfiles/joe/syntax/puppet.jsf

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

248
dotfiles/joe/syntax/python.jsf

@ -0,0 +1,248 @@
# 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
dotfiles/joe/syntax/ruby.jsf

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

74
dotfiles/joe/syntax/scheme.jsf

@ -0,0 +1,74 @@
# JOE syntax highlight file for Scheme
=Idle
=Comment green
=Constant cyan
=Escape bold cyan
=Bad bold red
=Keyword bold
=Symbol red
:idle Idle
* idle
";" line_comment recolor=-1
"1-9" number recolor=-1
"\"" string recolor=-1
"'" symbol recolor=-1
"#" maybe_bool
"a-zA-Z_" ident buffer
:line_comment Comment
* line_comment
"\n" idle
:number Constant
* idle noeat
"0-9" number
:string Constant
* string
"\"" idle
:symbol Symbol
* idle noeat
"(" special_symbol
"a-zA-Z0-9_-" symbol
:special_symbol Symbol
* idle noeat
")" symbol
:maybe_bool Idle
* idle noeat
"tf" bool recolor=-2
:bool Constant
* idle noeat
:ident Idle
* idle noeat strings
"call-with-current-continuation" kw
"car" kw
"cdr" kw
"cons" kw
"define" kw
"even?" kw
"exact?" kw
"if" kw
"lambda" kw
"let" kw
"letrec" kw
"let*" kw
"list" kw
"map" kw
"null?" kw
"odd?" kw
"s" kw
"set!" kw
"zero?" kw
done
"a-zA-Z0-9_*!?-" ident
:kw Keyword
* idle noeat

105
dotfiles/joe/syntax/sieve.jsf

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

497
dotfiles/joe/syntax/sql.jsf

@ -0,0 +1,497 @@
# JOE syntax highlight file for SQL
# See c.jsf for more documentation
# Define no. sync lines
# You can say:
# -200 means 200 lines
# - means always start parsing from beginning of file when we lose sync
# if nothing is specified, the default is -50
-
=Idle
=Bad bold red
=Preproc blue
=Define bold blue
=Comment green
=IncLocal cyan
=IncSystem bold cyan
=Constant cyan
=Escape bold cyan
=Type bold
=Keyword bold
=CppKeyword bold
=Brace magenta
=Control
:idle Idle
* idle
"\n" idle
"#" line_comment recolor=-1
"/" slash
"-" dash
"0" first_digit recolor=-1
"1-9" decimal recolor=-1
"." maybe_float
"\"" string recolor=-1
"'" char recolor=-1
"a-zA-Z_@" ident buffer
"{}" brace recolor=-1
",:;=()><[]*&|!~+%^" control recolor=-1
:brace Brace
* idle noeat
:control Control
* idle noeat
:slash Idle
* idle noeat recolor=-2 # Not sure about this
"*" comment recolor=-2
"/" line_comment recolor=-2
:dash Idle
* idle noeat recolor=-2 # Not sure about this
"-" line_comment recolor=-2
:comment Comment
* comment
"*" maybe_end_comment
:maybe_end_comment Comment
* comment
"/" idle
"*" maybe_end_comment
:line_comment Comment
* line_comment
"\n" idle
:first_digit Constant
* idle noeat
"xX" hex
"." float
"eE" epart
"0-7" octal
"89" bad_number recolor=-1
:bad_number Bad
* idle noeat
"0-9" bad_number
:octal Constant
* idle noeat
"0-7" octal
"89" bad_number recolor=-1
:hex Constant
* idle noeat
"0-9A-Fa-f" hex
:decimal Constant
* idle noeat
"0-9" decimal
"eE" epart
"." float
:maybe_float Constant
* idle recolor=-2 noeat
"0-9" float recolor=-2
:float Constant
* idle noeat
"eE" epart
"0-9" float
:epart Constant
* idle noeat
"0-9+\-" enum
:enum Constant
* idle noeat
"0-9" enum
:string Constant
* string
"\"" idle
"\\" string_escape recolor=-1
"%" string_control recolor=-1
:string_escape Escape
* string
"x" string_hex1
"0-7" string_octal2
"\n" string recolor=-2
:string_hex1 Escape
* string noeat
"0-9a-fA-F" string_hex2
:string_hex2 Escape
* string noeat
"0-9a-fA-F" string
:string_octal2 Escape
* string noeat
"0-7" string_octal3
:string_octal3 Escape
* string noeat
"0-7" string
:string_control Escape
* string
"\"" string noeat
"\n" idle
"0-9.\-+ #hjILtz$" string_control
:char Constant
* char
"\n" idle
"'" idle
"\\" char_escape recolor=-1
:char_escape Escape
* char
"x" char_hex1
"0-7" char_octal2
"\n" char recolor=-2
:char_hex1 Escape
* char noeat
"0-9a-fA-F" char_hex2
:char_hex2 Escape
* char noeat
"0-9a-fA-F" char
:char_octal2 Escape
* char noeat
"0-7" char_octal3
:char_octal3 Escape
* char noeat
"0-7" char
:ident Idle
* idle noeat istrings
"absolute" kw
"add" kw
"admindb" kw
"all" kw
"alphanumeric" kw
"alter" kw
"and" kw
"any" kw
"are" kw
"as" kw
"asc" kw
"assertion" kw
"authorization" kw
"autoincrement" kw
"avg" kw
"begin" kw
"between" kw
"binary" kw
"bit" kw
"bit_length" kw
"boolean" kw
"both" kw
"by" kw
"byte" kw
"cascade" kw
"catalog" kw
"char," kw
"character" kw
"character_length" kw
"char_length" kw
"check" kw
"clause" kw
"close" kw
"clustered" kw
"coalesce" kw
"collate" kw
"collation" kw
"column" kw
"commit" kw
"comp," kw
"compression" kw
"connect" kw
"connection" kw
"constraint," kw
"constraints" kw
"container" kw
"contains" kw
"convert" kw
"count" kw
"counter" kw
"create" kw
# "currency" kw
"current_date" kw
"current_time" kw
"current_timestamp" kw
"current_user" kw
"cursor" kw
"d" kw
"database" kw
"date" kw
"datetime" kw
"day" kw
"dec," kw
"decimal" kw
"declare" kw
"delete" kw
"desc" kw
"disallow" kw
"disconnect" kw
"distinct" kw
"distinctrow" kw
"domain" kw
"double" kw
"drop" kw
"eqv" kw
"exclusiveconnect" kw
"exec," kw
"execute" kw
"exists" kw
"extract" kw
"false" kw
"fetch" kw
"first" kw
"float," kw
"float4" kw
"float8" kw
"foreign" kw
"from" kw
"general" kw
"grant" kw
"group" kw
"guid" kw
"having" kw
"hour" kw
"i" kw
"identity" kw
"ieeedouble" kw
"ieeesingle" kw
"ignore" kw
"image" kw
"imp" kw
"in" kw
"in" kw
"index" kw
"indexcreatedb" kw
"inner" kw
"input" kw
"insensitive" kw
"insert" kw
"int," kw
"integer," kw
"integer1" kw
"integer2" kw
"integer4" kw
"interval" kw
"into" kw
"is" kw
"isolation" kw
"join" kw
"key" kw
"language" kw
"last" kw
"left" kw
"level" kw
"like" kw
"logical," kw
"logical1" kw
"long" kw
"longbinary" kw
"longchar" kw
"longtext" kw
"lower" kw
"match" kw
"max" kw
"memo" kw
"min" kw
"minute" kw
"mod" kw
"money" kw
"month" kw
"national" kw
"nchar" kw
"nonclustered" kw
"not" kw
"ntext" kw
"null" kw
"number" kw
"numeric" kw
"nvarchar" kw
"octet_length" kw
"oleobject" kw
"on" kw
"open" kw
"option" kw
"or" kw
"order" kw
"outer" kw
"output" kw
"owneraccess" kw
"pad" kw
"parameters" kw
"partial" kw
"password" kw
"percent" kw
"pivot" kw
"position" kw
"precision" kw
"prepare" kw
"primary" kw
"privileges" kw
"proc," kw
"procedure" kw
"public" kw
"real" kw
"references" kw
"restrict" kw
"revoke" kw
"right" kw
"rollback" kw
"schema" kw
"second" kw
"select" kw
"selectschema" kw
"selectsecurity" kw
"set" kw
"short" kw
"single" kw
"size" kw
"smalldatetime" kw
"smallint" kw
"smallmoney" kw
"some" kw
"space" kw
"sql" kw
"sqlcode," kw
"sqlerror," kw
"sqlstate" kw
"stdev" kw
"stdevp" kw
"string" kw
"substring" kw
"sum" kw
"sysname" kw
"system_user" kw
"table" kw
"tableid" kw
"temporary" kw
"text" kw
"time" kw
"timestamp" kw
"timezone_hour" kw
"timezone_minute" kw
"tinyint" kw
"to" kw
"top" kw
"trailing" kw
"transaction" kw
"transform" kw
"translate" kw
"translation" kw
"trim" kw
"true" kw
"union" kw
"unique" kw
"uniqueidentifier" kw
"unknown" kw
"update" kw
"updateidentity" kw
"updateowner" kw
"updatesecurity" kw
"upper" kw
"usage" kw
"user" kw
"using" kw
# "value" kw
"values" kw
"var" kw
"varbinary" kw
"varchar" kw
"varp" kw
"varying" kw
"view" kw
"when" kw
"whenever" kw
"where" kw
"with" kw
"work" kw
"xor" kw
"year" kw
"yesno" kw
"zone" kw
"begin" kw
"end" kw
# T-SQl
"if" kw
"then" kw
"else" kw
"print" kw
"case" kw
"go" kw
"cross" kw
"exec" kw
"use" kw
# mysql
"int" kw
"char" kw
"default" kw
"type" kw
"float" kw
"begint" kw
"mediumint" kw
"longint" kw
"blob" kw
"tinyblob" kw
"mediumblob" kw
"longblob" kw
"tinytext" kw
"mediumtext" kw
"longtext" kw
"show" kw
"explain" kw
"enum" kw
"bigint" kw
"unsigned" kw
"constraint" kw
"serial" kw
"engine" kw
"charset" kw
"returns" kw
"truncate" kw
"modifies" kw
"sql" kw
"data" kw
"start" kw
"function" kw
"reads" kw
"return" kw
"repeat" kw
"until" kw
"call" kw
"action" kw
"delimiter" kw
# olbsql
"weakly" kw
"aliases" kw
"map" kw
"row" kw
"deterministic" kw
"list" kw
done
"a-zA-Z0-9_" ident
:type Type
* idle noeat
:kw Keyword
* idle noeat
:cppkw CppKeyword
* idle noeat

174
dotfiles/joe/syntax/terraform.jsf

@ -0,0 +1,174 @@
# JOE syntax highlight file for Terraform (or "HashiCorp configuration language")
=Idle
=Comment green
=CommentLabel bold green
=Constant cyan
=Escape bold cyan
=Bad bold red
=Keyword fg_310 # brown
=Interpolate magenta
=InterpolateVar bold magenta
:idle Idle
* idle
"#" line_comment recolor=-1
"/" maybe_comment
"0-9" number recolor=-1
"\"" string recolor=-1
"a-zA-Z_" ident buffer
:line_comment Comment
* line_comment
"\n" idle
:maybe_comment Idle
* idle noeat
"*" comment recolor=-2
:comment Comment
* comment
# might be TODO label
"BFHNTX" comment noeat call=.comment_todo()
"*" maybe_end_comment
:maybe_end_comment Comment
* comment noeat
"/" idle
"*" maybe_end_comment
:number Constant
* idle noeat
"0-9" number
:string Constant
* string
"$" maybe_interpolate
"\"" idle
:maybe_interpolate Constant
* idle noeat
"{" interpolate recolor=-2
:interpolate Interpolate
* interpolate
"\"" interpolate_string recolor=-1
"0-9" interpolate_number recolor=-1
"*" interpolate_star recolor=-1
"a-zA-Z" interpolate_ident buffer
"}" string
:interpolate_string Constant
* interpolate_string
"\"" interpolate
:interpolate_number Constant
* interpolate noeat
"0-9" interpolate_number
:interpolate_star Constant
* interpolate noeat
:interpolate_ident Interpolate
* interpolate noeat strings
"basename" func
"ceil" func
"chomp" func
"cidrhost" func
"cidrnetmask" func
"cidrsubnet" func
"coalesce" func
"compact" func
"concat" func
"count" var
"data" var
"dirname" func
"distinct" func
"element" func
"file" func
"floor" func
"format" func
"formatlist" func
"index" func
"join" func
"keys" func
"length" func
"list" func
"lookup" func
"lower" func
"map" func
"max" func
"merge" func
"min" func
"module" var
"path" var
"pathexpand" func
"replace" func
"self" var
"signum" func
"slice" func
"sort" func
"split" func
"substr" func
# "terraform" var
"timestamp" func
"title" func
"trimspace" func
"upper" func
"uuid" func
"values" func
"var" var
"zipmap" func
done
"a-zA-Z" interpolate_ident
:var InterpolateVar
* interpolate noeat
:func InterpolateVar
* interpolate noeat
:ident Idle
* idle noeat strings
"data" kw
"false" bool
"module" kw
"output" kw
"provider" kw
"resource" kw
"terraform" kw
"true" bool
"variable" kw
done
"a-zA-Z_" ident
:kw Keyword
* idle noeat
:bool Constant
* idle noeat
.subr comment_todo
# initial state
:comment_todo_init Comment
* comment_todo_guess buffer
# highlight common TODO labels
:comment_todo_guess Comment
* comment_todo_unknown noeat strings
"BUG" comment_todo
"FIXME" comment_todo
"HACK" comment_todo
"NOTE" comment_todo
"TODO" comment_todo
"XXX" comment_todo
done
"A-Z" comment_todo_guess
:comment_todo_unknown Comment
* NULL noeat return
:comment_todo CommentLabel
* NULL noeat return
.end

108
dotfiles/joe/syntax/tex.jsf

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

16
dotfiles/joe/syntax/whitespace.jsf

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

166
dotfiles/joe/syntax/yaml.jsf

@ -0,0 +1,166 @@
# JOE syntax highlight file for YAML
# by Christian Nicolai (http://mycrobase.de)
=Idle
=Comment green
=Constant cyan
=Escape bold cyan
=Type bold
=Keyword bold
=Bad bold red
=Brace magenta
=Directive red
=Reference yellow
=LocalType fg_310 # brown
=BlockDelim bold blue
=BadTab inverse red
:line_start Idle
* maybe_key noeat
"\t" bad_tab recolor=-1
"#" line_comment recolor=-1
" " line_start
:idle Constant
* plain_scalar noeat
"\n" line_start
"%" directive recolor=-1
" " maybe_idle_comment
"'" string_sq_1 recolor=-1
"\"" string_dq_1 recolor=-1
"{[]}" brace recolor=-1
"." maybe_block_end1
"*&" maybe_reference
"!" maybe_typecast
:plain_scalar Constant
* plain_scalar
"\t" bad_tab recolor=-1
"\n" line_start noeat
" " maybe_plain_scalar_comment
:maybe_key Idle
* maybe_key1 recolor=-1 mark
"\n" line_start
"%#'\"{[]}*&!" idle noeat
"-" maybe_block1 mark
:maybe_key1 Constant
* idle noeat
":" key
"a-zA-Z0-9_-" maybe_key1
" " maybe_key1_comment
# necessary to include the :
:key Idle
* key_end noeat recolormark
:key_end Idle
* idle noeat
# mark bad tabs until the first non-whitespace
:bad_tab BadTab
* line_start noeat
:maybe_plain_scalar_comment Comment
* plain_scalar noeat
"#" line_comment
:maybe_key1_comment Comment
* maybe_key1 noeat
"#" line_comment
:maybe_idle_comment Comment
* idle noeat
"#" line_comment
:line_comment Comment
* line_comment
"\n" line_start
:brace Brace
* idle noeat
:directive Directive
* directive
"\n" line_start
:string_sq_1 Constant
* string_sq noeat
:string_sq Constant
* string_sq
"\'" idle
"\\" string_sq_esc recolor=-1
:string_sq_esc Escape
* string_sq
"\n" string_sq recolor=-2
:string_dq_1 Constant
* string_dq noeat
:string_dq Constant
* string_dq
"\"" idle
"\\" string_dq_esc recolor=-1
:string_dq_esc Escape
* string_dq
"\n" string_dq recolor=-2
:maybe_block1 Constant
* maybe_key1 noeat
"-" maybe_block2
:maybe_block2 Constant
* maybe_key1 noeat
"-" block recolor=-3
:block BlockDelim
* idle noeat
:maybe_block_end1 Constant
* idle noeat
"." maybe_block_end2
:maybe_block_end2 Constant
* idle noeat
"." block_end recolor=-3
:block_end BlockDelim
* idle noeat
:maybe_reference Constant
* idle
"a-zA-Z_" reference recolor=-2
:reference Reference
* idle noeat
"a-zA-Z0-9_" reference
:maybe_typecast Constant
* idle noeat
"a-zA-Z_" local_type recolor=-1
"!" builtin_type
:builtin_type Idle
* idle noeat
"a-zA-Z" builtin_type2 buffer
:builtin_type2 Idle
* idle noeat strings
"str" type
"float" type
"binary" type
done
"a-zA-Z_" builtin_type2
:type Type
* idle noeat
:local_type LocalType
* idle noeat
"a-zA-Z_" local_type

10
dotfiles/joerc

@ -0,0 +1,10 @@
:include /usr/local/etc/joe/joerc
*
-autoindent
-tab 2
-istep 2
-indentc 32
-wordwrap
-nonotice
-colors solarized
Loading…
Cancel
Save