commit 8c06c24b5b89030fee1e6fd5aa4bdf15a882c6e6
parent 1b53e6ed4ac661143bbb2e54631db3fbed03030b
Author: Ryan Jeffrey <ryan@ryanmj.xyz>
Date: Tue, 29 Sep 2020 13:22:32 -0700
New .config system
Diffstat:
85 files changed, 4739 insertions(+), 6167 deletions(-)
diff --git a/.config/bspwm/bspwmrc b/.config/bspwm/bspwmrc
@@ -1,36 +0,0 @@
-#!/bin/sh
-
-sxhkd &
-compton -b
-
-/home/ryan/src/scripts/monset.zsh &
-/home/ryan/src/scripts/init-polybar.sh &
-
-bspc monitor "DisplayPort-1" -d 1 2 3 4 5 6 7 8 9 0
-bspc monitor "HDMI-A-2" -d 1 2 3 4 5 6 7 8 9 0
-
-
-bspc config border_width 5
-bspc config window_gap 15
-
-bspc config split_ratio 0.52
-bspc config borderless_monocle true
-bspc config gapless_monocle true
-
-bspc config focus_follows_pointer true
-
-bspc config active_border_color "#E84F4F"
-bspc config normal_border_color "#4C566A"
-bspc config focused_border_color "#5E81AC"
-bspc config urgent_border_color "#FF0000"
-
-bspc config merge_overlapping_monitors true
-bspc config remove_disabled_monitors true
-
-
-bspc rule -a Gimp desktop='^8' state=floating follow=on
-bspc rule -a Screenkey manage=off
-bspc rule -a Steam desktop='^10' state=floating follow=off
-bspc rule -a firefox desktop='^1' follow=off
-bspc rule -a discord desktop='^5' follow=off
-
diff --git a/.config/i3/config b/.config/i3/config
@@ -1,3 +1,4 @@
+
# It will not be overwritten, so edit it as you like.
#
# Should you change your keyboard layout some time, delete
@@ -8,20 +9,20 @@
#
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
-
set $mod Mod4
gaps inner 15
gaps outer 15
# Thinkpad multimedia keys
-bindsym $mod+Return exec st
-bindsym $mod+m exec --no-startup-id pactl set-sink-mute 0 toggle # mute sound
-bindsym $mod+t exec emacsclient -c
+bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +5% #increase sound volume
+bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -5% #decrease sound volume
+bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle # mute sound
+bindsym $mod+e exec --no-startup-id nemo
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
-font pango:Hack:style=regular
+font pango:Deja Vu Sans Mono:style=regular
# This font is widely installed, provides lots of unicode glyphs, right-to-left
# text rendering and scalability on retina/hidpi displays (thanks to pango).
@@ -38,11 +39,12 @@ font pango:Hack:style=regular
floating_modifier $mod
# start a terminal
-# bindsym $mod+Return exec xterm
-
+bindsym $mod+Return exec st
# kill focused window
bindsym $mod+Shift+q kill
+workspace_layout default
+
# start dmenu (a program launcher)
bindsym $mod+d exec dmenu_run
# There also is the (new) i3-dmenu-desktop which only displays applications
@@ -51,8 +53,15 @@ bindsym $mod+d exec dmenu_run
# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
# change focus
+#bindsym $mod+j focus left
+#bindsym $mod+k focus down
+#bindsym $mod+l focus up
+#bindsym $mod+semicolon focus right
+
# for window, order sometimes matters
-for_window [class="^.*"] border pixel 0
+for_window [class="^.*"] border pixel 1
+
+new_window 1pixel
# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
@@ -61,16 +70,18 @@ bindsym $mod+Up focus up
bindsym $mod+Right focus right
# move focused window
-bindsym $mod+Shift+h move left
-bindsym $mod+Shift+j move down
-bindsym $mod+Shift+k move up
-bindsym $mod+Shift+l move right
+bindsym $mod+Shift+j move left
+bindsym $mod+Shift+k move down
+bindsym $mod+Shift+l move up
+bindsym $mod+Shift+semicolon move right
# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
+bindsym $mod+m exec --no-startup-id emacsclient -c -e '(mu4e)'
+bindsym $mod+k exec --no-startup-id emacsclient -c -e '(elfeed)'
# split in horizontal orientation
bindsym $mod+h split h
@@ -80,14 +91,11 @@ bindsym $mod+v split v
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
-bindsym $mod+e exec --no-startup-id st -e ranger
-
# change container layout (stacked, tabbed, toggle split)
-#bindsym $mod+o layout stacking
-bindsym $mod+w layout toggle split
-#bindsym $mod+s layout toggle split
-#bindsym $mod+o layout toggle stack
+bindsym $mod+s layout stacking
+bindsym $mod+w layout tabbed
+bindsym $mod+semicolon layout toggle split
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
@@ -97,7 +105,6 @@ bindsym $mod+space focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
-new_window 1pixel
# focus the child container
#bindsym $mod+d focus child
@@ -105,14 +112,14 @@ new_window 1pixel
# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
set $ws1 "1:Web"
-set $ws2 "2:Web"
-set $ws3 "3:Misc"
-set $ws4 "4:Misc"
-set $ws5 "5:Discord"
-set $ws6 "6:Misc"
-set $ws7 "7:Emacs"
-set $ws8 "8:Misc"
-set $ws9 "9:Godot"
+set $ws2 "2:>_"
+set $ws3 "3:>_"
+set $ws4 "4:>_"
+set $ws5 "5:Disc"
+set $ws6 "6:>_"
+set $ws7 "7:>_"
+set $ws8 "8:Music"
+set $ws9 "9:Mail"
set $ws10 "10:Steam"
# switch to workspace
@@ -127,6 +134,15 @@ bindsym $mod+8 workspace $ws8
bindsym $mod+9 workspace $ws9
bindsym $mod+0 workspace $ws10
+assign [class="firefox"] $ws9
+assign [class="brave"] $ws1
+assign [class="emacs"] $ws6
+assign [class="discord"] $ws5
+assign [class="Steam"] $ws10
+assign [class="Chromium"] $ws9
+
+
+
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace $ws1
bindsym $mod+Shift+2 move container to workspace $ws2
@@ -139,26 +155,6 @@ bindsym $mod+Shift+8 move container to workspace $ws8
bindsym $mod+Shift+9 move container to workspace $ws9
bindsym $mod+Shift+0 move container to workspace $ws10
-
-set $left_mon "HDMI-A-2"
-set $right_mon "DisplayPort-1"
-
-# Secondary monitor
-
-workspace "1:Web" output $left_mon
-workspace "2:Web" output $left_mon
-workspace "3:Misc" output $left_mon
-workspace "4:Misc" output $left_mon
-workspace "5:Disc" output $left_mon
-# Main monitor
-workspace "6:Misc" output $right_mon
-workspace "7:Emacs" output $right_mon
-workspace "8:Misc" output $right_mon
-workspace "9:Godot" output $right_mon
-workspace "10:Steam" output $right_mon
-
-bindsym $mod+b exec --no-startup-id i3-msg 'workspace $ws1; exec /usr/bin/firefox'
-
# reload the configuration file
bindsym $mod+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
@@ -166,18 +162,7 @@ bindsym $mod+Shift+r restart
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
-bindsym $mod+shift+s exec --no-startup-id "scr=$(ls -d --color=never /home/ryan/src/scripts/ui/* | dmenu -l 20); exec $scr"
-
-set_from_resource $fg i3wm.color7 #f0f0f0
-set_from_resource $bg i3wm.color2 #f0f0f0
-
-client.focused $bg $bg $fg $bg $bg
-client.focused_inactive $bg $bg $fg $bg $bg
-client.unfocused $bg $bg $fg $bg $bg
-client.urgent $bg $bg $fg $bg $bg
-client.placeholder $bg $bg $fg $bg $bg
-
-client.background $bg
+bindsym $mod+b exec --no-startup-id i3-msg 'workspace $ws1; exec /usr/bin/firefox'
# resize window (you can also use the mouse for that)
mode "resize" {
@@ -187,11 +172,16 @@ mode "resize" {
# Pressing right will grow the window’s width.
# Pressing up will shrink the window’s height.
# Pressing down will grow the window’s height.
+ bindsym j resize shrink width 10 px or 10 ppt
+ bindsym k resize grow height 10 px or 10 ppt
+ bindsym l resize shrink height 10 px or 10 ppt
+ bindsym semicolon resize grow width 10 px or 10 ppt
+
# same bindings, but for the arrow keys
- bindsym Left resize shrink width 15 px or 10 ppt
- bindsym Down resize grow height 15 px or 10 ppt
- bindsym Up resize shrink height 15 px or 10 ppt
- bindsym Right resize grow width 15 px or 10 ppt
+ bindsym Left resize shrink width 10 px or 10 ppt
+ bindsym Down resize grow height 10 px or 10 ppt
+ bindsym Up resize shrink height 10 px or 10 ppt
+ bindsym Right resize grow width 10 px or 10 ppt
# back to normal: Enter or Escape or $mod+r
bindsym Return mode "default"
@@ -203,41 +193,23 @@ bindsym $mod+r mode "resize"
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
-bar {
- colors {
- statusline #35803d
- }
+#bar {
+# position top
+# status_command i3status
+# }
- position top
- status_command i3status
- }
-
-
-exec --no-startup-id picom -b
-
-assign [class="firefox"] $ws1
-assign [class="emacs"] $ws7
-assign [class="Godot_Engine"] $ws9
-assign [class="discord"] $ws5
-assign [class="Steam"] $ws10
-
-exec --no-startup-id firefox
-exec --no-startup-id discord
-exec --no-startup-id steam
-
-
-exec --no-startup-id 'i3-msg workspace $ws9; i3-msg layout tabbed'
-
-bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 5 +5% # increase sound volume
-bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 5 -5% # decrease sound volume
-bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 5 toggle # mute sound
-
-# Music
bindsym $mod+p exec --no-startup-id mpc toggle
bindsym $mod+n exec --no-startup-id mpc next
bindsym $mod+l exec --no-startup-id mpc prev
-bindsym $mod+y exec --no-startup-id st -e ncmpcpp
+bindsym $mod+o exec --no-startup-id mpc shuffle
+bindsym $mod+y exec --no-startup-id st -e zsh -ic ncmpcpp
+bindsym $mod+t exec --no-startup-id st -e zsh -ic htop
+
+
+exec --no-startup-id wal -i $(/home/ryan/src/scripts/ranwal)
+
+exec --no-startup-id picom -b
-exec --no-startup-id /home/ryan/src/scripts/monset.zsh
+exec --no-startup-id sleep 3s && /home/ryan/src/scripts/init-polybar.sh
-# exec --no-startup-id feh --bg-fill --no-xinerama /home/ryan/Pictures/Gnu_wallpaper.png-
\ No newline at end of file
+exec --no-startup-id /usr/bin/dunst+
\ No newline at end of file
diff --git a/.config/joestar/ftyperc b/.config/joestar/ftyperc
@@ -433,40 +433,6 @@
-single_quoted
-pound_comment
- C-shell
-[csh]
-*
-+#![ ]*[^\n ]*/csh\>
-+#![ ]*[^\n ]*/tcsh\>
-*.csh
-*.login
-*.logout
-*.tcsh
-*.tcshrc
--autoindent
--title
--syntax csh
--pound_comment
--highlighter_context
-
- Shell
-[sh]
-*
-+#![ ]*[^\n ]*/sh\>
-+#![ ]*[^\n ]*/bash\>
-*.sh
-*profile
-*.bash
-*.bashrc
-*.bash_login
-*.bash_logout
--autoindent
--title
--syntax sh
--highlighter_context
--pound_comment
--text_delimiters do=done:if=elif=else=fi:case=esac
-
Lisp
[lisp]
*.lisp
@@ -478,19 +444,6 @@
-semi_comment
-highlighter_context
- Korn shell
-[ksh]
-*
-+#![ ]*[^\n ]*/ksh\>
-*.ksh
--autoindent
--title
--syntax sh
--highlighter_context
--pound_comment
--text_delimiters do=done:if=elif=else=fi:case=esac
--highlighter_context
-
PASCAL
[pascal]
*.p
@@ -931,3 +884,54 @@
-vhdl_comment
-highlighter_context
+
+ C-shell
+[csh]
+*
++#![ ]*[^\n ]*/csh\>
++#![ ]*[^\n ]*/tcsh\>
+*.csh
+*.login
+*.logout
+*.tcsh
+*.tcshrc
+-autoindent
+-title
+-syntax csh
+-pound_comment
+-highlighter_context
+
+ Shell
+[sh]
+*
++#![ ]*[^\n ]*/sh\>
++#![ ]*[^\n ]*/bash\>
+*.sh
+*.zsh
+*.bash
+*profile
+*.bash
+*.bashrc
+*.bash_login
+*.bash_logout
+*.zshrc
+-autoindent
+-title
+-syntax sh
+-highlighter_context
+-pound_comment
+-text_delimiters do=done:if=elif=else=fi:case=esac
+
+ Korn shell
+[ksh]
+*
++#![ ]*[^\n ]*/ksh\>
+*.ksh
+-autoindent
+-title
+-syntax sh
+-highlighter_context
+-pound_comment
+-text_delimiters do=done:if=elif=else=fi:case=esac
+-highlighter_context
+
diff --git a/.config/joestar/jnoterc b/.config/joestar/jnoterc
@@ -1,1307 +0,0 @@
- Initialization file for JOE
- JNote Joe
-
- Joestar looks for this file in:
- 1 - $HOME/.config/joestar/jnoterc
- 2 - $HOME/.jnoterc
- 3 - /usr/local/etc/joe/jnoterc
-
- This file can include other files by placing the following include command
- in the first column:
-
- :include filename
-
- FIRST SECTION: Default global options (these options can also be specified
- on the command line. Also the NOXON, LINES, COLUMNS, DOPADDING and BAUD
- options can be specified in environment variables):
-
- Put each option you want set in the first column:
-
- -option Sets the option
- --option Clears the option
-
- -help_is_utf8 Set if help text is in UTF-8 format. Leave clear if it's a raw 8-bit format.
-
- -mid Cursor is recentered when scrolling is necessary
- -left nn Amount to jump left when scrolling is necessary (-1 for 1/4 width)
- -right nn Amount to jump right when scrolling is necessary (-1 for 1/4 width)
-
- -marking Text between ^KB and cursor is highlighted (use with -lightoff)
-
- -asis Characters 128 - 255 shown as-is
-
- -force Force final newline when files are saved
-
--nolocks If you don't want file locks to be used
-
- -nomodcheck Disable periodic checking of disk file newer than buffer
- (this checking happens on save even with this option).
-
- -nocurdir Do not prompt with current directory
-
- -nobackups If you don't want backup files to be created
-
--nodeadjoe If you don't want DEADJOE files to be created
-
- -break_hardlinks
- Delete file before writing, to break hard links
- (but don't break symbolic links).
-
- -break_links
- Delete file before writing, to break hard links
- and symbolic links.
-
-
--lightoff Turn off highlighting after block copy or move
-
- -exask ^KX always confirms file name
-
- -beep Beep on errors and when cursor goes past extremes
-
- -nosta Disable top-most status line
-
--keepup %k and %c status line escape sequences updated frequently
-
- -pg nnn No. lines to keep for PgUp/PgDn
-
- -undo_keep nnn Number of undo records to keep. 0 for infinite.
-
- -csmode ^KF after a pervious search does a ^L instead
-
- -backpath path
- Directory to store backup files (one space between
- 'backpath' and the 'path', no trailing spaces or comments
- after the path).
-
- -floatmouse Clicking past end of line moves the cursor past the end
-
- -rtbutton Use the right mouse button for action, instead of the left
-
- -nonotice Disable copyright notice
-
- -noexmsg Disable exiting message ("File not changed so no update needed")
-
--noxon Attempt to turn off ^S/^Q processing
-
- -orphan Put extra files given on command line in orphaned buffers
- instead of in windows
-
- -dopadding Output pad characters (for when there is no tty handshaking)
-
- -lines nnn Set no. screen lines
-
- -baud nnn Set baud rate for terminal optimizations
-
- -columns nnn Set no. screen columns
-
--helpon Start with help on
-
- -skiptop nnn Don't use top nnn lines of the screen
-
--notite Don't send terminal initialization and termination strings:
- prevents restoration of screen on exit.
-
- -nolinefeeds Prevent sending linefeeds to preserve screen history in terminal
- emulator's scroll-back buffer.
-
- -usetabs Use tabs to help optimize screen update.
-
--assume_color Assume terminal has ANSI color support even if termcap/terminfo entry
- says that it doesn't. This only applies if the terminal otherwise
- looks like an ANSI terminal (support bold and capability starts with
- ESC [).
-
--assume_256color
- Assume terminal has xterm 256 color support (ESC [ 38 ; 5 ; NNN m and
- ESC [ 48 ; 5 ; NNN m).
-
--guess_non_utf8 Allow guess of non-UTF-8 file encoding in a UTF-8 locale.
-
- -guess_utf8 Allow guess of UTF-8 file encoding in non-UTF-8 locale.
-
--guess_utf16 Allow guess of UTF-16 encoding
-
--guess_crlf Automatically detect MS-DOS files and set -crlf appropriately
-
--guess_indent Guess indent character (tab or space).
-
--menu_above Position menu/list above prompt when enabled. Otherwise position
- below prompt.
-
--transpose Transpose rows with columns in all menus.
-
--menu_explorer Stay in menu system when a directory is selected (otherwise
- directory is added to path and menu is closed).
-
--menu_jump Jump into file selection menu when tab is hit (otherwise, menu
- comes up, but cursor stays in file name prompt).
-
- -notagsmenu Disable tags file search menu
-
--icase Search is case insensitive by default.
-
- -wrap Search wraps
-
- -autoswap Swap markb with markk when necessary
-
--joe_state Use ~/.joe_state file
-
- -mouse Enable xterm mouse support. When enabled, left-click will
- position the cursor and left-click-drag will select blocks
- For normal xterm cut and paste, hold the shift key down.
-
- -joexterm If you are using XTerm version 212 or higher, and if it was
- configured with --enable-paste64, set this flag: it allows
- mouse cut & paste to work properly (text selected with the
- mouse can be pasted into other application, and middle
- button clicks paste into JOE).
-
--brpaste When JOE starts, send command to the terminal emulator that
- enables "bracketed paste mode" (but only if the terminal
- seems to have the ANSI command set). In this mode, text
- pasted into the window is bracketed with ESC [ 2 0 0 ~ and
- ESC [ 2 0 1 ~.
-
--pastehack If keyboard input comes in as one block assume it's a mouse
- paste and disable autoindent and wordwrap.
-
- -square Rectangular block mode
-
- -colors scheme
- Set the default color scheme
-
--restore Restore previous cursor position when files are opened
-
--search_prompting
- Search prompts with previous search request.
-
--regex Search uses standard regular expression format (otherwise it uses
- JOE format where all special characters have to be escaped).
-
- Status line definition strings. -lmsg defines the left-justified string and
- -rmsg defines the right-justified string. The first character of -rmsg is
- the background fill character. The following escape sequences can be used
- in these strings:
-
- %t 12 hour time
- %u 24 hour time
- %T O for overtype mode, I for insert mode
- %W W if wordwrap is enabled
- %I A if autoindent is enabled
- %X Rectangle mode indicator
- %n File name
- %m '(Modified)' if file has been changed
- %* '*' if file has been changed
- %R Read-only indicator
- %r Row (line) number
- %c Column number
- %o Byte offset into file
- %O Byte offset into file in hex
- %a Ascii value of character under cursor
- %A Ascii value of character under cursor in hex
- %w Width of character under cursor
- %p Percent of file cursor is at
- %l No. lines in file
- %k Entered prefix keys
- %S '*SHELL*' if there is a shell running in window
- %M Macro recording message
- %y Syntax
- %e Encoding of file
- %b Encoding of terminal
- %x Context (first non-indented line going backwards)
- %dd day
- %dm month
- %dY year
- %Ename% value of environment variable
- %Zname% value of option (ON or OFF for boolean options)
- (hit TAB at mode command prompt for full list)
-
- These formatting escape sequences may also be given:
-
- \i Inverse
- \u Underline
- \b Bold
- \d Dim
- \f Blink
- \l Italic
-
--lmsg \i%k%T%W%I%X %n %* %y
--rmsg %S %e Ln %4r Col %3c %p ^H for Help
--smsg ** Line %r Col %c Offset %o(0x%O) %e %a(0x%A) Width %w **
--zmsg ** Line %r Col %c Offset %o(0x%O) **
--xmsg \i Joe's Own Editor %v (%b) ** Type \bCtrl-K Q\b to exit or \bCtrl-K H\b for help **\i
-
- Key sequence hints which are displayed in various prompts.
--aborthint ^[ F X
--helphint ^K H
-
- SECOND SECTION: File name dependant local option settings:
-
- Name a file type definition section with:
-
- [python] (but put opening bracket in first column)
-
- Each line with '*' in the first column provides a file name matching
- regular expression (in shell glob format). If more than one regular
- expression matches the file name, then the last matching one is chosen.
-
- A file contents regular expression may also be specified on a separate line
- with '+regex'. If this regular expresssion is given, then both the file name
- regex and the file contents regex must match for the options to apply.
-
- Here are the modes which can be set:
-
- -cpara >#!;*/%
- Characters which can indent paragraphs.
-
- -cnotpara .
- Characters which begin non-paragraph lines.
-
- -encoding name
- Set file coding (for example: utf-8, iso-8859-15)
-
- -syntax name
- Specify syntax (syntax file called
- 'name.jsf' will be loaded)
-
- -hex Hex editor mode
-
--highlight Enable highlighting
-
- -smarthome Home key first moves cursor to beginning of line,
- then if hit again, to first non-blank character.
-
- -indentfirst Smart home goes to first non-blank character first,
- instead of going the beginning of line first.
-
- -smartbacks Backspace key deletes 'istep' number of
- 'indentc's if cursor is at first non-space
- character.
-
--tab 4 Tab width
-
--indentc 32 Indentation character (32 for space, 9 for tab)
-
--istep 4 Number of indentation columns
-
--spaces TAB inserts spaces instead of tabs.
-
- -purify Fix indentation if necessary for rindent, lindent and backs
- (for example if indentation uses a mix of tabs and spaces,
- and indentc is space, indentation will be converted to all
- spaces).
-
- -crlf File uses CR-LF at ends of lines
-
- -wordwrap Wordwrap
-
--nobackup If you don't want backup file to be created
-
- -autoindent Auto indent
-
- -overwrite Overtype mode
-
- -picture Picture mode (right arrow can go past end of lines)
-
- -lmargin nnn Left margin
-
- -rmargin nnn Right margin
-
- -flowed Put one space after intermediate paragraph lines
- for support of flowed text.
-
-
- -french One space after '.', '?' and '!' for wordwrap
- and paragraph reformat instead of two. Joe
- does not change the spacing you give, but
- sometimes it must put spacing in itself. This
- selects how much is inserted.
-
- -linums Enable line numbers on each line
-
- -hiline Highlight current line
-
- -rdonly File is read-only
-
- -keymap name
- Keymap to use if not 'main'
-
- -lmsg Status line definition strings-
- -rmsg see previous section for more info.
-
- -mfirst macro
- Macro to execute on first modification
- -mnew macro
- Macro to execute when new files are loaded
- -mold macro
- Macro to execute when existing files are loaded
- -msnew macro
- Macro to execute when new files are saved
- -msold macro
- Macro to execute when existing files are saved
-
- Macros for the above options are in the same format as in the key
- binding section below- but without the key name strings.
-
- These define the language syntax for ^G (goto matching delimiter):
-
- -highlighter_context Use the highlighter context for ^G
-
- -single_quoted Text between ' ' should be ignored (this is
- not good for regular text since ' is
- normally used alone as an apostrophe)
-
- -no_double_quoted Text between " " should not be ignored (useful
- for TeX).
-
- -c_comment Text between /* */ should be ignored
-
- -cpp_comment Text after // should be ignored
-
- -pound_comment Text after # should be ignored
-
- -vhdl_comment Text after -- should be ignored
-
- -semi_comment Text after ; should be ignored
-
- -text_delimiters begin=end:if=elif=else=endif
-
- Define word delimiters
-
- Default local options
--highlight
--istep 4
-
- Perforce macro: use this macro (put in first column) to have joe "p4 edit"
- a file you're about to change.
-
- -mfirst if,"rdonly && joe(sys,\"p4 edit \",name,rtn)",then,mode,"o",msg,"executed \"p4 edit ",name,"\"",rtn,endif
-
- -mfirst if,"rdonly && joe(sys,\"p4 edit \",name,rtn)",then,reload,msg,"executed \"p4 edit ",name,"\"",rtn,endif
-
- File type table is now in a separate file. You can copy this file to ~/.joe and customize it.
-
-:include ftyperc
-
- SECOND and 1/2 SECTION: Option menu layout
-
- :defmenu name [macro]
- Defines a menu.
- The macro here is executed when the user hits backspace.
-
- macro string comment
- A menu entry. Macro is any JOE macro- see "Macros:"
- below. String is the label to be used for the macro
- in the menu. It is in the same format as the -lmsg
- and -rmsg options above.
-
- Two whitespace characters in a row begins a comment.
- Use '% ' for a leading space in the string.
-
-:defmenu root
-mode,"overwrite",rtn T Overtype %Zoverwrite%
-mode,"hex",rtn ' Hex edit mode
-mode,"autoindent",rtn I Autoindent %Zautoindent%
-mode,"wordwrap",rtn W Word wrap %Zwordwrap%
-mode,"tab",rtn D Tab width %Ztab%
-mode,"lmargin",rtn L Left margin %Zlmargin%
-mode,"rmargin",rtn R Right margin %Zrmargin%
-mode,"square",rtn X Column mode %Zsquare%
-mode,"indentc",rtn % % Indent char %Zindentc%
-mode,"istep",rtn % % Indent step %Zistep%
-menu,"indent",rtn = Indent select
-mode,"highlight",rtn H Highlighting %Zhighlight%
-mode,"crlf",rtn Z CR-LF/MS-DOS %Zcrlf%
-mode,"linums",rtn N Line numbers %Zlinums%
-mode,"hiline",rtn U Highlight line %Zhiline%
-mode,"beep",rtn B Beep %Zbeep%
-mode,"rdonly",rtn O Read only %Zrdonly%
-mode,"syntax",rtn Y Syntax
-mode,"colors",rtn S Color scheme
-mode,"encoding",rtn E Encoding
-mode,"asis",rtn % % Meta chars as-is
-mode,"language",rtn V Language
-mode,"picture",rtn P picture %Zpicture%
-mode,"type",rtn F File type [%Ztype%]
-mode,"title",rtn C Context %Ztitle%
-menu,"more-options",rtn % % More options...
-
-:defmenu more-options menu,"root",rtn
-menu,"^G",rtn % % ^G options
-menu,"search",rtn % % search options
-menu,"paragraph",rtn % % paragraph options
-menu,"file",rtn % % file options
-menu,"menu",rtn % % menu options
-menu,"global",rtn % % global options
-menu,"cursor",rtn % % cursor options
-menu,"marking",rtn % % marking options
-menu,"tab",rtn % % tab/indent options
-
-:defmenu indent menu,"root",rtn
-mode,"istep",rtn,"1",rtn,mode,"indentc",rtn,"32",rtn,msg,"Indent step = 1, Indent character = 32",rtn 1 Space
-mode,"istep",rtn,"2",rtn,mode,"indentc",rtn,"32",rtn,msg,"Indent step = 2, Indent character = 32",rtn 2 Spaces
-mode,"istep",rtn,"3",rtn,mode,"indentc",rtn,"32",rtn,msg,"Indent step = 3, Indent character = 32",rtn 3 Spaces
-mode,"istep",rtn,"4",rtn,mode,"indentc",rtn,"32",rtn,msg,"Indent step = 4, Indent character = 32",rtn 4 Spaces
-mode,"istep",rtn,"5",rtn,mode,"indentc",rtn,"32",rtn,msg,"Indent step = 5, Indent character = 32",rtn 5 Spaces
-mode,"istep",rtn,"8",rtn,mode,"indentc",rtn,"32",rtn,msg,"Indent step = 8, Indent character = 32",rtn 8 Spaces
-mode,"istep",rtn,"10",rtn,mode,"indentc",rtn,"32",rtn,msg,"Indent step = 10, Indent character = 32",rtn 0 Ten
-mode,"istep",rtn,"1",rtn,mode,"indentc",rtn,"9",rtn,msg,"Indent step = 1, Indent character = 9",rtn T Tab
-
-:defmenu menu menu,"more-options",rtn
-mode,"menu_explorer",rtn % % Menu explorer %Zmenu_explorer%
-mode,"menu_above",rtn % % Menu position %Zmenu_above%
-mode,"menu_jump",rtn % % Jump into menu %Zmenu_jump%
-mode,"transpose",rtn % % Transpose menus %Ztranspose%
-
-:defmenu ^G menu,"more-options",rtn
-mode,"highlighter_context",rtn % % ^G uses highlighter context %Zhighlighter_context%
-mode,"single_quoted",rtn % % ^G ignores '...' %Zsingle_quoted%
-mode,"no_double_quoted",rtn % % ^G no ignore "..." %Zno_double_quoted%
-mode,"c_comment",rtn % % ^G ignores /*...*/ %Zc_comment%
-mode,"cpp_comment",rtn % % ^G ignores //... %Zcpp_comment%
-mode,"pound_comment",rtn % % ^G ignores #... %Zpound_comment%
-mode,"vhdl_comment",rtn % % ^G ignores --... %Zvhdl_comment%
-mode,"semi_comment",rtn % % ^G ignores ;... %Zsemi_comment%
-mode,"tex_comment",rtn % % ^G ignores %%... %Ztex_comment%
-mode,"text_delimiters",rtn % % Text delimiters %Ztext_delimiters%
-
-:defmenu search menu,"more-options",rtn
-mode,"icase",rtn % % Case insensitivity %Zicase%
-mode,"wrap",rtn % % Search wraps %Zwrap%
-mode,"search_prompting",rtn % % Search prompting %Zsearch_prompting%
-mode,"csmode",rtn % % Continued search %Zcsmode%
-
-:defmenu paragraph menu,"more-options",rtn
-mode,"french",rtn % % French spacing %Zfrench%
-mode,"flowed",rtn % % Flowed text %Zflowed%
-mode,"cpara",rtn % % Paragraph indent chars %Zcpara%
-mode,"cnotpara",rtn % % Not-paragraph chars %Zcnotpara%
-
-:defmenu file menu,"more-options",rtn
-mode,"restore",rtn % % Restore cursor %Zrestore%
-mode,"guess_crlf",rtn % % Auto detect CR-LF %Zguess_crlf%
-mode,"guess_indent",rtn % % Guess indent %Zguess_indent%
-mode,"guess_non_utf8",rtn % % Guess non-UTF-8 %Zguess_non_utf8%
-mode,"guess_utf8",rtn % % Guess UTF-8 %Zguess_utf8%
-mode,"guess_utf16",rtn % % Guess UTF-16 %Zguess_utf16%
-mode,"force",rtn % % Force last NL %Zforce%
-mode,"nobackup",rtn % % No backup %Znobackup%
-
-:defmenu global menu,"more-options",rtn
-mode,"nolocks",rtn % % Disable locks %Znolocks%
-mode,"nobackups",rtn % % Disable backups %Znobackups%
-mode,"nodeadjoe",rtn % % Disable DEADJOE %Znodeadjoe%
-mode,"nomodcheck",rtn % % Disable mtime check %Znomodcheck%
-mode,"nocurdir",rtn % % Disable current dir %Znocurdir%
-mode,"exask",rtn % % Exit ask %Zexask%
-mode,"nosta",rtn % % Disable status line %Znosta%
-mode,"keepup",rtn % % Fast status line %Zkeepup%
-mode,"break_hardlinks",rtn % % Break hard links %Zbreak_hardlinks%
-mode,"break_links",rtn % % Break links %Zbreak_links%
-mode,"joe_state",rtn % % Joe_state file %Zjoe_state%
-mode,"undo_keep",rtn % % No. undo records %Zundo_keep%
-mode,"backpath",rtn % % Path to backup files %Zbackpath%
-
-:defmenu cursor menu,"more-options",rtn
-mode,"pg",rtn % % No. PgUp/PgDn lines %Zpg%
-mode,"mid",rtn C Center on scroll %Zmid%
-mode,"left",rtn L Columns to scroll left %Zleft%
-mode,"right",rtn R Columns to scroll right %Zright%
-mode,"floatmouse",rtn % % Click past end %Zfloatmouse%
-mode,"rtbutton",rtn % % Right button %Zrtbutton%
-
-:defmenu marking menu,"more-options",rtn
-mode,"autoswap",rtn % % Autoswap mode %Zautoswap%
-mode,"marking",rtn % % Marking %Zmarking%
-mode,"lightoff",rtn % % Auto unmask %Zlightoff%
-
-:defmenu tab menu,"more-options",rtn
-mode,"smarthome",rtn % % Smart home key %Zsmarthome%
-mode,"smartbacks",rtn % % Smart backspace %Zsmartbacks%
-mode,"indentfirst",rtn % % To indent first %Zindentfirst%
-mode,"purify",rtn % % Clean up indents %Zpurify%
-mode,"spaces",rtn % % No tabs %Zspaces%
-
- THIRD SECTION: Named help screens:
-
- Use \i to turn on/off inverse video
- Use \u to turn on/off underline
- Use \b to turn on/off bold
- Use \d to turn on/off dim
- Use \f to turn on/off flash
- Use \l to turn on/off italic
-
- Use \| to insert a spring: all springs in a given line are set to the same
- width such that the entire line exactly fits in the width of the screen (if
- it's not an exact multiple so that there are N spaces remaining, the
- rightmost N springs each get one extra space). Hint: if you want vertical
- alignment, each line should have the same number of springs.
-
- Use the '-help_is_utf8' global option to allow UTF-8 sequences in the help
- text. Otherwise, the locale 8-bit character set is assumed.
- HELP BFR
- TODO
-
-{Basic
- \|\uKEYS\u
- \|\b^\b Control
- \|\b^[\b Escape (or hold Alt)
- \|\uREGION\u \|\uGO TO\u \|\uGO TO\u \|\uDELETE\u \|\uEXIT\u \|\uSEARCH\u \|
- \|\b^Arrow\b Select \|\b^Z\b Prev. word \|\b^U/^V\b PgUp/PgDn \|\b^D\b Char. \|\b^KX\b Save \|\b^KF\b Find \|
- \|\b^KB\b Begin \|\b^X\b Next word \|\uMISC\u \|\b^Y\b Line \|\b^C\b Abort \|\b^L\b Next \|
- \|\b^KK\b End \|\b^KU\b Top of file \|\b^KJ\b Paragraph \|\b^W\b >Word \|\b^KQ\b All \|\uHELP\u \|
- \|\b^KC\b Copy \|\b^KV\b End of file \|\b^KA\b Center line \|\b^O\b Word< \|\uFILE\u \|\bEsc .\b Next\|
- \|\b^KM\b Move \|\b^A\b Beg. of line \|\b^K Space\b Status \|\b^J\b >Line \|\b^KE\b Edit \|\bEsc ,\b Prev\|
- \|\b^KW\b File \|\b^E\b End of line \|\uSPELL\u \|\b^[O\b Line< \|\b^KR\b Insert \|\b^KH\b Off \|
- \|\b^KY\b Delete \|\b^KL\b To line no. \|\bEsc N\b Word \|\b^_\b Undo \|\b^KD\b Save \|\b^T\b Menu \|
- \|\b^K/\b Filter \|\b^G\b Matching ( \|\bEsc L\b File \|\b^^\b Redo \|\b^K`\b Revert \|\b\b \|
-}
-
-
-{Advanced
- \|\uMACROS\u \|\uSCROLL\u \|\uWINDOW\u \|\uGO TO\u \|\uI-SEARCH\u \|
- \|\b^K[ 0-9\b Record \|\bEsc W\b Up \|\b^KO\b Open \b^C\b Close \|\bEsc B\b / \bK\b \|\b^R\b Backwards \|
- \|\b^K]\b Stop \|\bEsc Z\b Down \|\b^KG\b Grow \b^KT\b Shrink \|to \b^KB\b/\b^KK \b\|\b^S\b Forwards \|
- \|\bEsc I\b Text \|\bEsc <\b Left \|\b^KN\b Next \b^KP\b Prev. \|\b^P\b Up \|\uBOOKMARKS\u \|
- \|\b^K?\b Pause \|\bEsc >\b Right \|\b^KI\b Show one / All \|\b^N\b Down \|\bEsc 0-9\b Goto \|
- \| for prompt \|\uINSERT\u \|\uSHELL\u \|\b^B\b Left \|\bEsc Esc\b Set \|
- \|\b^K 0-9\b Play \|\b^]\b Line \b^Q\b Ctrl \|\bF1-F4\b Term emulator \|\b^F\b Right \|\b^K-\b Auto prev\|
- \|\b^K\\\b Repeat \|\b^@\b Space \b^\\\b Meta \|\b^K'\b In buffer \| \|\b^K=\b Auto next\|
- \|\bEsc D\b Dump \|\bEsc Y\b Paste \|\b^KZ\b Suspend \bEsc !\b Append \| \| \|
-}
-
-{Programs
- \|\uCOMMANDS\u \|\uCOMPILING\u \|\uQUICK\u \|
- \|\bEsc X\b Command prompt\|\bEsc C\b Save modified compile\|\b^G\b Find word under cursor \|
- \|\bEsc M\b Calculator \|\bEsc G\b Grep \|\b^K;\b Tags file search \|
- \|\bshowlog\b Startup log \|\bEsc =\b To next error \|\bEsc Enter\b Complete word \|
- \|\bupper\b Change case \|\bEsc -\b To prev. error \|\uBUFFER\u \|
- \|\blower\b Change case \|\bEsc Space\b Jump to error \|\bEsc U\b Next \|
- \|\bcd\b Change dir \|\uINDENT\u \|\bEsc V\b Previous \|
- \|\bkeymap\b Change map \|\b^K,\b Less \|\bEsc X bufed\b Switch \|
- \| \|\b^K.\b More \| \|
-}
-
- Missing: Esc ~ not mod
- Esc e parse errors in buffer
- Esc ^Y yank pop
-
-{Search
- Search sequences: \|
- \b\\^ \\$\b matches beg./end of line \b\\.\b match any single char \|
- \b\\< \\>\b matches beg./end of word \b\\!\b match char or expression \|
- \b\\( \\)\b grouping \b\\|\b match left or right \|
- \b\\[a-z]\b matches one of a set \b\\y \\Y\b short for (.*) / (!*) \|
- \b\\{1,3}\b match 1 - 3 occurrences \b\\?\b match 0 or 1 occurrence \|
- \b\\+\b match 1 or more occurrences \b\\*\b match 0 or more occurrences \|
- \|
- \b^C\b to abort \bEsc .\b to list of escape sequences \|
-}
-
-{Escape sequences
- Escape sequences: \|
- \b\\x{10fff}\b Unicode code point \b\\p{Ll}\b Unicode category \|
- \b\\i\b / \b\\I\b Identifier start \b\\t\b tab \b\\e\b escape \|
- \b\\c\b / \b\\C\b Identifier continue \b\\n\b newline \b\\r\b carriage return \|
- \b\\d\b / \b\\D\b Digit / Not a digit \b\\b\b backspace \b\\xFF\b hex character \|
- \b\\w\b / \b\\W\b Word / Not a word \b\\a\b alert \b\\377\b octal character \|
- \b\\s\b / \b\\S\b Space / Not a space \b\\f\b formfeed \b\\\\\b backslash \|
- \|
- \|
-}
-
-{Replace
- Replace sequences: \|
- \b\\&\b replaced with entire match \b\\1\b - \b9\b replaced with Nth group \|
- \b\\u \\l\b convert next to upper/lower \b\\U \\L\b case convert until \b\\E\b \|
- \|
- \|
- \|
- \|
- \|
- \b^C\b to abort \bEsc ,\b to list of escape sequences \|
-}
-
-{SearchOptions
- Search options: \|
- \br\b Replace \bk\b Restrict search to highlighted block \|
- \bi\b Ignore case \bb\b Search backwards instead of forwards \|
- \ba\b Search across all loaded files \|
- \be\b Search across all files in Grep or Compile error list \|
- \bw\b / \bn\b Allow / prevent wrap to start of file \|
- \bx\b / \by\b Search text is standard format / JOE format regular expression \|
- \bnnn\b Perform exactly nnn replacements \|
- \b^C\b to abort
-}
-
-{Math
- \uMATH COMMANDS\u \uCONSTANTS\u \|
- \bhex oct bin\b display mode \b0xff\b hex entry \|
- \beng dec\b engineering / normal \b0o77\b octal entry \|
- \bins\b type result into file \b0b11\b binary entry \|
- \beval\b evaluate block \b3e-4\b floating point entry \|
- 2+3\b:\bins multiple commands \uVARIABLES\u \|
- \uOPERATORS\u \bans\b Previous result \|
- \b! ^ * / % + -\b \ba=10\b Assign a variable \|
- \b< <= > >= == != && || ? :\b \bEsc .\b for list of functions \|
-}
-
-{Functions
- \uFUNCTIONS\u \uCONSTANTS\u \|
- \bsin cos tab asin acos atan\b \be pi\b \|
- \bsinh cosh tanh asinh acosh atanh\b \|
- \bsqrt cbrt exp ln log\b \|
- \bint floor ceil abs\b \|
- \berf erfc j0 j1 y0 y1\b \|
- \bjoe(..macro..)\b - runs an editor macro \|
- \|
- \bEsc .\b for statistics \|
-}
-
-{Statistics
- \uMATH COMMANDS\u \|
- Statistics on region of numbers Linear regression on region of x y pairs \|
- \bsum\b Sum \blr(x)\b Estimate y given x y=m*x+b \|
- \bcnt\b Count \brlr(y)\b Estimate x given y \|
- \bavg\b Mean \bLr rLr\b Logarithmic regression y=m*ln(x)+b \|
- Standard deviation: \blR rlR\b Exponential regression y=e^(m*x)+b \|
- \bdev\b all data present \bLR rLR\b Power regression y=b*x^m \|
- \bsamp\b sample of data present Side effects: \bb\b, \bm\b: regression coef. \|
- \br\b: correlation coef., \bcov\b: covariance \|
-}
-
-{Names
- Hit TAB to complete names. Use up / down arrow keys to traverse history. \|
- Special file names: \|
- \b!\bcommand Pipe in/out of a shell command \|
- \b>>\bfilename Append to a file \|
- \b-\b Read/Write to/from standard I/O \|
- filename\b,START,SIZE\b Read/Write a part of a file/device \|
- Give START/SIZE in decimal (255), octal (0377) or hex (0xFF) \|
- \b\\,\b Use backslash to quote special characters \|
- \b^C\b to abort
-}
-
-{CharTable
- \| Dec \u 0123 4567 8901 2345 0123 4567 8901 2345 \u Dec \|
- \| 0 | \u@ABC\u \uDEFG\u \uHIJK\u \uLMNO\u \i\u@ABC\u\i \i\uDEFG\u\i \i\uHIJK\u\i \i\uLMNO\u\i | 128 \|
- \| 16 | \uPQRS\u \uTUVW\u \uXYZ[\u \u\\]^_\u \i\uPQRS\u\i \i\uTUVW\u\i \i\uXYZ[\u\i \i\u\\]^_\u\i | 144 \|
- \| 32 | !"# $%&' ()*+ ,-./ X | 160 \|
- \| 48 | 0123 4567 89:; <=>? | 176 \|
- \| 64 | @ABC DEFG HIJK LMNO | 192 \|
- \| 80 | PQRS TUVW XYZ[ \\]^_ | 208 \|
- \| 96 | `abc defg hijk lmno | 224 \|
- \| 112 | pqrs tuvw xyz{ |}~ | 240 \|
-}
-
-{Joe
- Send bug reports to: http://sourceforge.net/projects/joe-editor \|
- \|
- default joerc file is here /usr/local/etc/joe/joerc \|
- default syntax and i18n files are here /usr/local/share/joe \|
- additional documentation can be found here /usr/local/share/doc/joe \|
- \|
- \|
- \|
- \|
-}
-
- FOURTH SECTION: Key bindings:
-
- Section names you must provide:
-
- :main For editing window
- :prompt For prompt lines
- :query For single-character query lines
- :querya Singe-character query for quote
- :querysr Search & Replace single-character query
- :shell For shell windows
- :vtshell For terminal emulator windows
-
- Other sections may be given as well for organization purposes or for
- use with the '-keymap' option.
-
- Use:
- :inherit name To copy the named section into the current one
- :delete key To delete a key sequence from the current section
-
- Keys:
-
- Use U+12345 for specific unicode character
- Use ^@ through ^_ and ^? for Ctrl chars
- Use SP for space
- Use a TO b to generate a range of characters
- Use MDOWN, MDRAG, MUP, M2DOWN, M2DRAG, M2UP, M3DOWN, M3DRAG, M3UP for mouse
- Use MWDOWN, MWUP for wheel mouse motion
- Use ^# for 0x9B (for Amiga). But warning: this breaks UTF-8 keyboards.
-
- You can also use termcap string capability names. For example:
-
- .ku Up
- .kd Down
- .kl Left
- .kr Right
- .kh Home
- .kH End
- .kI Insert
- .kD Delete
- .kP PgUp
- .kN PgDn
- .k1 - .k9 F1 - F9
- .k0 F0 or F10
- .k; F10
-
- Macros:
-
- Simple macros can be made by comma seperating 2 or more command names. For
- example:
-
- eof,bol ^T Z Goto beginning of last line
-
- Also quoted matter is typed in literally:
-
- bol,">",dnarw .k1 Quote news article line
-
- Macros may cross lines if they end with ,
-
- Commands or named macros may be created with :def. For example, you can
- use:
-
- :def foo eof,bol
-
- To define a command foo which will goto the beginning of the last line.
-
- Recenter
-:def recenter retype,arg,"top+height/2-line",rtn,upslide
-
-:windows Bindings common to all windows
-type U+0 TO U+10FFFF
-abort ^[ F X
-abort ^[ f x
- abort ^K ^Q
- abort ^K q
-querysave,query,killjoe ^K Q Query to save files, then exit
-querysave,query,killjoe ^K ^Q
-querysave,query,killjoe ^K q
-arg ^K \ Repeat next command
-explode ^K I Show all windows or show only one window
-explode ^K ^I
-explode ^K i
-help ^K H Help menu
-help ^K ^H
-help ^K h
-help .k1
-help ^H
-hnext ^[ . Next help window
-hprev ^[ , Previous help window
-math ^[ m Calculator
-math ^[ M Calculator
- math ^[ ^M Calculator
-msg ^[ h Display a message
-msg ^[ H Display a message
-msg ^[ ^H Display a message
-nextw ^K N Goto next window
-nextw ^K ^N
-nextw ^K n
-pgdn .kN Screen down
-pgdn ^V
-pgdn ^[ [ 6 ~
-
- pgdn ^# S
-pgup .kP Screen up
-pgup ^U
-pgup ^[ [ 5 ~
- pgup ^# T
-play ^K 0 TO 9 Execute macro
-prevw ^K P Goto previous window
-prevw ^K ^P
-prevw ^K p
-query ^K ? Macro query insert
-record ^K [ Record a macro
- retype ^R Refresh screen
- recenter ^R Recenter and refresh screen
-rtn ^M Return
-shell ^K Z Shell escape
-shell ^K ^Z
-shell ^K z
-stop ^K ] Stop recording
- Mouse handling
-defmdown MDOWN Move the cursor to the mouse location
-defmup MUP
-defmdrag MDRAG Select a region of characters
-defm2down M2DOWN Select the word at the mouse location
-defm2up M2UP
-defm2drag M2DRAG Select a region of words
-defm3down M3DOWN Select the line at the mouse location
-defm3up M3UP
-defm3drag M3DRAG Select a region of lines
-defmiddleup MIDDLEUP
-defmiddledown MIDDLEDOWN Insert text
-
-xtmouse ^[ [ M Introduces an xterm mouse event
-extmouse ^[ [ < Introduces an extended xterm mouse event
-
- Sample if/then/else macro
- if,"char==65",then,"it's an A",else,"it's not an a",endif ^[ q
-
-:main Text editing window
-:inherit windows
-
- Spell-check macros
-
- Ispell
-:def ispellfile filt,"cat >ispell.tmp;ispell ispell.tmp </dev/tty >/dev/tty;cat ispell.tmp;/bin/rm ispell.tmp",rtn,retype
-:def ispellword psh,nextword,markk,prevword,markb,filt,"cat >ispell.tmp;ispell ispell.tmp </dev/tty >/dev/tty;tr -d <ispell.tmp '\\012';/bin/rm ispell.tmp",rtn,retype,nextword
-
- Aspell
-:def aspellfile filt,"SPLTMP=ispell.tmp;cat >$SPLTMP;aspell --lang=",language,".",charset," -x -c $SPLTMP </dev/tty >/dev/tty;cat $SPLTMP;/bin/rm $SPLTMP",rtn,retype
-:def aspellword psh,nextword,markk,prevword,markb,filt,"SPLTMP=ispell.tmp;cat >$SPLTMP;aspell --lang=",language,".",charset," -x -c $SPLTMP </dev/tty >/dev/tty;tr -d <$SPLTMP '\\012';/bin/rm $SPLTMP",rtn,retype,nextword
-
-
-aspellfile ^[ l
-aspellword ^[ n
-
- Compile
-
-:def compile mwind!,mfit!,querysave,query,scratch,"* Build Log *",rtn,bof,markb,eof," ",markk,blkdel,build
-
- Grep
-
-:def grep_find mwind!,mfit!,scratch,"* Grep Log *",rtn,bof,markb,eof," ",markk,blkdel,grep
-
- Man page
-
-:def man scratch,"* Man Page *",rtn,bof,markb,eof," ",markk,blkdel," ",ltarw,run,"man -P cat -S 2:3 "
-
- Shell windows
- We load the already existing Startup Log first so that Shell does not inherit the current directory.
-
-:def shell1 scratch_push,"* Startup Log *",rtn,scratch_push,"* Shell 1 *",rtn,vtbknd!,eof
-:def shell2 scratch_push,"* Startup Log *",rtn,scratch_push,"* Shell 2 *",rtn,vtbknd!,eof
-:def shell3 scratch_push,"* Startup Log *",rtn,scratch_push,"* Shell 3 *",rtn,vtbknd!,eof
-:def shell4 scratch_push,"* Startup Log *",rtn,scratch_push,"* Shell 4 *",rtn,vtbknd!,eof
-
- Macros allowed in shell window commands
-:def shell_clear psh,bof,markb,eof,markk,blkdel
-:def shell_parse parserr
-:def shell_gparse gparse
-:def shell_release release
-:def shell_math maths
-:def shell_abort abort
-:def shell_typemath txt,maths,"ins",rtn,rtn,txt,"\r",rtn,txt,quote,"d",rtn
-:def shell_rtn rtn
-:def shell_edit edit
-:def shell_dellin dellin
-:def shell_cd cd
-:def shell_pop popabort
-:def shell_markb markb
-:def shell_markk markk
-
- Split window version
- :def shell1 if,"is_shell==0",then,tw1,mfit,endif,scratch,"* Shell 1 *",rtn,vtbknd!,eof
- :def shell2 if,"is_shell==0",then,tw1,mfit,endif,scratch,"* Shell 2 *",rtn,vtbknd!,eof
- :def shell3 if,"is_shell==0",then,tw1,mfit,endif,scratch,"* Shell 3 *",rtn,vtbknd!,eof
- :def shell4 if,"is_shell==0",then,tw1,mfit,endif,scratch,"* Shell 4 *",rtn,vtbknd!,eof
-
-
- Here we guess some common key sequences which either do not have termcap
- sequences or which are frequently wrong. Note that if the termcap entry is
- correct, it will override these later on.
-
-paste ^[ ] 5 2 ; Base64 paste (obsolete)
-brpaste ^[ [ 2 0 0 ~ Bracketed paste
-brpaste_done ^[ [ 2 0 1 ~ Bracketed paste done
-
-insc ^[ [ 2 ~
-insc ^[ [ L SCO
-
-delch ^[ [ 3 ~
-
-pgup ^[ [ I SCO
-
-pgdn ^[ [ G SCO
-
-home ^[ [ 1 ~ Putty, Linux, Cygwin
-home ^[ [ H Xterm, Konsole, SCO
-home ^[ O H gnome-terminal
-home ^[ [ 7 ~ RxVT
- home ^# SP A Amiga
-
-eol ^[ [ 4 ~ Putty, Linux, Cygwin, ssh
-eol ^[ [ F Xterm, Konsole, SCO
-eol ^[ O F gnome-terminal
-eol ^[ [ 8 ~ RxVT
- eol ^# SP @ Amiga
-
-rtarw,ltarw,begin_marking,rtarw,toggle_marking ^[ [ 1 ; 5 C Mark right Xterm
-rtarw,ltarw,begin_marking,rtarw,toggle_marking ^[ [ 5 C Mark right Gnome-terminal
- (Almost all termcap entries have ^[ O C as an arrow key).
- rtarw,ltarw,begin_marking,rtarw,toggle_marking ^[ O C Mark right Putty Ctrl-rtarw
-rtarw,ltarw,begin_marking,rtarw,toggle_marking ^[ O c Mark right RxVT Ctrl-rtarw
-
-ltarw,rtarw,begin_marking,ltarw,toggle_marking ^[ [ 1 ; 5 D Mark left
-ltarw,rtarw,begin_marking,ltarw,toggle_marking ^[ [ 5 D Mark left
- ltarw,rtarw,begin_marking,ltarw,toggle_marking ^[ O D Mark left Putty Ctrl-ltarw
-ltarw,rtarw,begin_marking,ltarw,toggle_marking ^[ O d Mark left RxVT Ctrl-ltarw
-
-uparw,dnarw,begin_marking,uparw,toggle_marking ^[ [ 1 ; 5 A Mark up
-uparw,dnarw,begin_marking,uparw,toggle_marking ^[ [ 5 A Mark up
- uparw,dnarw,begin_marking,uparw,toggle_marking ^[ O A Mark up Putty Ctrl-uparw
-uparw,dnarw,begin_marking,uparw,toggle_marking ^[ O a Mark up RxVT Ctrl-uparw
-
-dnarw,uparw,begin_marking,dnarw,toggle_marking ^[ [ 1 ; 5 B Mark down
-dnarw,uparw,begin_marking,dnarw,toggle_marking ^[ [ 5 B Mark down
- dnarw,uparw,begin_marking,dnarw,toggle_marking ^[ O B Mark down Putty Ctrl-dnarw
-dnarw,uparw,begin_marking,dnarw,toggle_marking ^[ O b Mark down RxVT Ctrl-dnarw
-
-blkdel,nmark ^[ [ 3 ; 5 - Gnome-terminal Ctrl-Del
-blkdel,nmark ^[ [ 3 ; 5 ~ Xterm Ctrl-Del
-
-yank ^[ [ 2 ; 5 - Gnome-terminal Ctrl-Ins
-yank ^[ [ 2 ; 5 ~ Xterm Ctrl-Ins
-
- Extra functions not really part of JOE user interface:
-
-delbol ^[ o Delete to beginning of line
-delbol ^[ ^O Delete to beginning of line
-dnslide ^[ z Scroll down one line
-dnslide ^[ Z Scroll down one line
-dnslide ^[ ^Z Scroll down one line
-dnslide,dnslide,dnslide,dnslide MWDOWN
-compile ^[ c Compile
-compile ^[ C
-compile ^[ ^C Compile
-grep_find ^[ g Grep
-grep_find ^[ G Grep
-grep_find ^[ ^G Grep
-execmd ^[ x Prompt for command to execute
-execmd ^[ X Prompt for command to execute
-execmd ^[ ^X Prompt for command to execute
-finish ^[ ^I Complete word in document
-finish ^[ ^M Complete word: used to be math
-mwind!,mfit,jump,bol ^[ SP
-notmod ^[ ~ Not modified
-mwind,mfit,prevw,nxterr ^[ = To next error
-parserr ^[ e Parse errors in current buffer
-parserr ^[ E Parse errors in current buffer
-parserr ^[ ^E Parse errors in current buffer
-mwind,mfit,prevw,prverr ^[ - To previous error
-rsrch ^[ r Backward incremental search
-rsrch ^[ R Backward incremental search
-rsrch ^[ ^R Backward incremental search
-retype,rsrch ^R
-run ^[ ! Run a program in a window
-tomarkb ^[ b Go to beginning of marked block
-tomarkb ^[ ^B Go to beginning of marked block
-tomarkk ^[ k Go to end of marked block
-tomarkk ^[ ^K Go to end of marked block
-tomarkk ^[ K Go to end of marked block
-txt ^[ i Prompt for text and insert it
-txt ^[ I Prompt for text and insert it
-upslide ^[ w Scroll up one line
-upslide ^[ ^W Scroll up one line
-upslide ^[ W Scroll up one line
-upslide,upslide,upslide,upslide MWUP
-yank ^[ y Undelete text
-yankpop ^[ ^Y Undelete text
-yank ^[ Y Undelete text
-
- toggle_marking ^@ Ctrl-space block selection method
-insc ^@ Ctrl-space used to insert a space
-
- bufed ^[ d Menu of buffers
-nbuf ^[ v Next buffer
-nbuf ^[ V Next buffer
-nbuf ^[ ^V Next buffer
-pbuf ^[ u Prev buffer
-pbuf ^[ U Prev buffer
-pbuf ^[ ^U Prev buffer
- query ^[ q Quoted insert
- byte ^[ n Goto byte
- col ^[ c Goto column
- abortbuf ^[ k Kill current buffer- don't mess with windows
- ask ^[ a Ask to save current buffer
- bop ^[ p Backwards paragraph
- bos ^[ x Bottom of screen
- copy ^[ ^W Copy block into yank
- dupw ^[ \ Split window
- eop ^[ n Forwards paragraph
- format ^[ j Format paragraph ignore block
- markl ^[ l Mark line
- nmark ^[ @ Turn off ^KB ^KK
- pop ^[ > Pop ^KB ^KK
- psh ^[ < Push ^KB ^KK
- swap ^[ x Swap ^KB and cursor
- tomarkbk ^[ g Switch between beginning and end of marked
- tos ^[ e Top of screen
- tw0 ^[ 0 Kill current window (orphans buffer)
- tw1 ^[ 1 Kill all other windows (orphans buffers)
- uarg ^[ u Universal argument
- yank ^[ ^Y Undelete previous text
- yapp ^[ w Append next delete to previous yank
-
- Standard JOE user interface
-:def markall eof,drop,msg,"Mark set",rtn,bof
-
-quote8 ^\ Enter Meta chars
- quote ` Enter Ctrl chars
-quote ^[ ' Enter Ctrl chars
-quote ^Q
-
-backs ^? Backspace
-backw ^O Backspace word
-bknd ^K ' Shell window
-blkcpy ^K C Copy marked block
-blkcpy ^K ^C
-blkcpy ^K c
-blkdel ^K Y Delete marked block
-blkdel ^K ^Y
-blkdel ^K y
-blkmove ^K M Move marked block
-blkmove ^K ^M
-blkmove ^K m
-blksave ^K W Save marked block
-blksave ^K ^W
-blksave ^K w
-bof ^K U Goto beginning of file
-bof ^K ^U
-bof ^K u
- bol .kh Goto beginning of line
- bol ^A
- bol ^# SP A
-home .kh
-home ^A
-center ^K A Center line
-center ^K ^A
-center ^K a
-crawll ^K < Pan left
-crawll ^[ < Pan left
-crawlr ^K > Pan right
-crawlr ^[ > Pan right
-delch .kD Delete character
-delch ^D
-deleol ^J Delete to end of line
-delw ^W Delete word to right
-dnarw .kd Go down
-dnarw ^N
-dnarw ^[ O B
-dnarw ^[ [ B
- dnarw ^# B
-edit ^K E Edit a file
-edit ^K ^E
-edit ^K e
-eof ^K V Go to end of file
-eof ^K ^V
-eof ^K v
-eol .kH Go to end of line
-eol .@7
-eol ^E
-exsave ^K X Save and exit
-exsave ^K ^X
-exsave ^K x
-ffirst ^K F Find first
-ffirst ^K ^F
-ffirst ^K f
-filt ^K / Filter block
-isrch ^F
-isrch .k3
-savenow ^S
-cuacut ^X
-cuaselall ^A
-cuacpy ^C
-cuapaste ^V
-cuacpy ^c
-cuapaste ^v
-
- finish ^K ^M Complete text under cursor
-fnext ^L Find next
-fmtblk ^K J Format paragraphs in block
-fmtblk ^K ^J
-fmtblk ^K j
-gomark ^[ 0 TO 9 Goto bookmark
-groww ^K G Grow window
-groww ^K ^G
-groww ^K g
-insc .kI Insert a space
- insc ^@
-insf ^K R Insert a file
-insf ^K ^R
-insf ^K r
-lindent ^K , Indent to left
-line ^K L Goto line no.
-line ^K ^L
-line ^K l
-ltarw .kl Go left
-ltarw ^B
-ltarw ^[ O D
-ltarw ^[ [ D
- ltarw ^# D
-macros ^[ d Dump keyboard macros
-macros ^[ ^D
-markb ^K B Set beginning of marked block
-markb ^K ^B
-markb ^K b
-markk ^K K Set end of marked block
-markk ^K ^K
-markk ^K k
- mode ^T Options menu
-menu,"root",rtn ^T
-nextpos ^K = Goto next position in position history
- nextword ^X Goto next word
-open ^] Split line
-prevpos ^K - Previous position in history
-reload ^K ` Revert file
-redo ^^ Redo changes
-redo ^Y
-rindent ^K . Indent to right
-rtarw .kr Go right
-rtarw ^[ O C
-rtarw ^[ [ C
- rtarw ^# C
-run ^K ! Run a shell command
-save ^K D Save file
-save ^K S
-save ^K ^D
-save ^K ^S
-save ^K d
-save ^K s
-setmark ^[ ^[ Set bookmark
-shrinkw ^K T Shrink window
-shrinkw ^K ^T
-shrinkw ^K t
-splitw ^K O Split window
-splitw ^K ^O
-splitw ^K o
-stat ^K SP Show status
-stat ^K ^@ Show status
-tag ^K ; Tags file search
-tomatch ^G Goto matching parenthasis
-undo ^_ Undo changes
-undo ^Z
-uparw .ku Go up
- uparw ^# A
-uparw ^P
-uparw ^[ O A
-uparw ^[ [ A
- Got rid of the shell commands. F3 is used for search and F1 for help.
- People who would use this mode would likely be beginners, so a shell
- popping up would confuse them.
-:prompt Prompt windows
-:inherit main
-if,"byte>size",then,complete,complete,else,delch,endif ^D
-complete ^I
-dnarw,eol .kd Go down
-dnarw,eol ^N
-dnarw,eol ^[ O B
-dnarw,eol ^[ [ B
- dnarw,eol ^# B
-uparw,eol .ku Go up
- uparw,eol ^# A
-uparw,eol ^P
-uparw,eol ^[ O A
-uparw,eol ^[ [ A
-
-:menu Selection menus
-:inherit windows
-
-pgupmenu ^[ [ I
-
-pgdnmenu ^[ [ G
-
-bolmenu ^[ [ 1 ~ Putty, Linux, Cygwin
-bolmenu ^[ [ H Xterm, Konsole
-bolmenu ^[ O H gnome-terminal
-bolmenu ^[ [ 7 ~ RxVT
- bolmenu ^# SP A Amiga
-
-eolmenu ^[ [ 4 ~ Putty, Linux, Cygwin, ssh
-eolmenu ^[ [ F Xterm, Konsole
-eolmenu ^[ O F gnome-terminal
-eolmenu ^[ [ 8 ~ RxVT
- eolmenu ^# SP @ Amiga
-
-abort ^[ ^[ Why?
-backsmenu ^?
-backsmenu ^H
-bofmenu ^K U
-bofmenu ^K ^U
-bofmenu ^K u
-bolmenu .kh
-bolmenu ^A
-dnarwmenu .kd
-dnarwmenu ^N
-dnarwmenu ^[ [ B
-dnarwmenu ^[ O B
- dnarwmenu ^# B
-dnarwmenu MWDOWN
-eofmenu ^K V
-eofmenu ^K ^V
-eofmenu ^K v
-eolmenu .kH
-eolmenu ^E
-ltarwmenu .kl
-ltarwmenu ^B
-ltarwmenu ^[ [ D
-ltarwmenu ^[ O D
- ltarwmenu ^# D
-pgdnmenu .kN Screen down
- pgdnmenu ^V TODO pagedown
-pgdnmenu ^[ [ 6 ~
- pgdnmenu ^# S
-pgupmenu .kP Screen up
-pgupmenu ^U
-pgupmenu ^[ [ 5 ~
- pgupmenu ^# T
-rtarwmenu .kr
-rtarwmenu ^F
-rtarwmenu ^[ [ C
- rtarwmenu ^# C
-rtarwmenu ^[ O C
-rtn SP
-rtn ^I
-rtn ^K H
-rtn ^K h
-rtn ^K ^H
-tabmenu ^I
-uparwmenu .ku
-uparwmenu ^P
-uparwmenu ^[ [ A
-uparwmenu ^[ O A
- uparwmenu ^# A
-uparwmenu MWUP
-defm2down M2DOWN Hits return key
-
-:query Single-key query window
-:inherit windows
-
-:querya Single-key query window for quoting
-type U+0 TO U+10FFFF
-
-:querysr Search & replace query window
-type U+0 TO U+10FFFF
-
-:shell Input to shell windows
-:inherit main
-"" ^D Eof
-"\t" ^I Tab
-"" ^H Backspace
-"\r" ^M Return
-"" ^? Backspace
-
-:vtshell Input to ANSI shell windows
-:inherit main
-"[A" [ A
-"[A" .ku
-"[B" [ B
-"[B" .kd
-"[C" [ C
-"[C" .kr
-"[D" [ D
-"[D" .kl
-"" ^A BOL for bash
-"" ^C Abort
-"" ^D Eof
-"" ^E EOL for bash
-"\t" ^I Tab
-"\r" ^M Return
-"" ^? Backspace
diff --git a/.config/joestar/joerc b/.config/joestar/joerc
@@ -1 +0,0 @@
-joestarrc-
\ No newline at end of file
diff --git a/.config/joestar/joestarrc b/.config/joestar/joestarrc
@@ -65,6 +65,8 @@
-nolocks If you don't want file locks to be used
+-colors default
+
-linum_mode 3
-nomodcheck Disable periodic checking of disk file newer than buffer
diff --git a/.config/joestar/syntax/4gl.jsf b/.config/joestar/syntax/4gl.jsf
@@ -2,24 +2,23 @@
# by Gediminas http://proc.w3.lt
# Version 1.04
-# bold inverse blink dim underline italic
-# white cyan magenta blue yellow green red black
-# bg_white bg_cyan bg_magenta bg_blue bg_yellow bg_green bg_red bg_black
-
=Idle
-=Comment green
-=Constant cyan
-=Type magenta
+=Comment
+=Constant
+=String +Constant
+=Number +Constant
+=Type
+=Ident
+
# conditional operators, blocks
-=Condition bold
-# buffer repositioning
-=KeyDB bold green
-# create, delete record
-=CreateDel bold yellow
+=Keyword
+=Conditional +Keyword
+=Operator +Keyword
+
# preprocessor include, definition, reference
-=Include yellow
-=Preproc yellow
-=PreRef
+=Preproc
+=Include +Preproc
+=PreRef +Ident
:idle Idle
* idle
@@ -37,11 +36,12 @@
:slash Idle
* idle noeat
"*" comment recolor=-2
-:comment Comment
+:comment Comment comment
* comment
"/" slash2
"*" maybe_end_comment
-:maybe_end_comment Comment
+ "BFHNTX" comment noeat call=comment_todo.comment_todo()
+:maybe_end_comment Comment comment
* comment
"/" idle
"*" maybe_end_comment
@@ -49,10 +49,11 @@
:slash2 Idle
* comment noeat
"*" comment2 recolor=-2
-:comment2 Comment
+:comment2 Comment comment
* comment2
"*" maybe_end_comment2
-:maybe_end_comment2 Comment
+ "BFHNTX" comment2 noeat call=comment_todo.comment_todo()
+:maybe_end_comment2 Comment comment
* comment2
"/" comment
"*" maybe_end_comment2
@@ -106,46 +107,46 @@ done
# String constants, copied from pascal.jsf with " added
-:string Constant
+:string String string
* string
"\n" idle
"'" maybe_end_string
-:maybe_end_string Constant
+:maybe_end_string String string
* idle recolor=-1 noeat
"'" string
-:string2 Constant
+:string2 String string
* string2
"\n" idle
"\"" maybe_end_string2
-:maybe_end_string2 Constant
+:maybe_end_string2 String string
* idle recolor=-1 noeat
"\"" string2
# Numeric constant, same as pascal.jsf
-:number Constant
+:number Number
* idle noeat
"0-9" number
"eE" epart
"." dot
-:dot Constant
+:dot Number
* idle noeat
"0-9" float
-:float Constant
+:float Number
* idle noeat
"eE" epart
"0-9" float
-:epart Constant
+:epart Number
* idle noeat
"0-9+\-" enum
-:enum Constant
+:enum Number
* idle noeat
"0-9" enum
@@ -153,29 +154,32 @@ done
* idle noeat
# Keywords
-# Available jumps: operator type kw kwdb credel func
+# Available jumps: cond type oper kw
-:ident Idle
+# TODO: This needs to be vastly expanded, it seems like every other
+# token in this language is a keyword.
+
+:ident Ident
* idle noeat istrings
"assign" cond
"case" cond
"cha" type
"char" type
"character" type
- "create" credel
+ "create" reserved
"dat" type
"date" type
"dec" type
"decimal" type
- "defined" predir
- "delete" credel
- "do" cond
+ "defined" oper
+ "delete" reserved
+ "do" reserved
"else" cond
"end" cond
- "find" kwdb
- "for" kwdb
+ "find" reserved
+ "for" reserved
"function" cond
- "get" kwdb
+ "get" reserved
"handle" type
"if" cond
"int" type
@@ -192,7 +196,7 @@ done
"raw" type
"rec" type
"repeat" cond
- "reposition" kwdb
+ "reposition" reserved
"return" cond
"rowid" type
"run" cond
@@ -202,15 +206,14 @@ done
done
"-a-zA-Z0-9_" ident
-:cond Condition
+:cond Conditional
* idle noeat
-:kwdb KeyDB
+:type Type
* idle noeat
-:type Type
+:oper Operator
* idle noeat
-:credel CreateDel
+:reserved Keyword
* idle noeat
-
diff --git a/.config/joestar/syntax/ada.jsf b/.config/joestar/syntax/ada.jsf
@@ -3,11 +3,14 @@
# Define colors
=Idle
-=Comment green
-=Constant cyan
-=Escape bold cyan
-=Keyword bold
-=Operator bold
+=Comment
+=Constant
+=Character +Constant
+=Number +Constant
+=String +Constant
+=StringEscape +Escape +String
+=Keyword
+=Operator +Keyword
:idle Idle
* idle
@@ -26,8 +29,9 @@
* idle noeat
"-" comment recolor=-2
-:comment Comment
+:comment Comment comment
* comment
+ "BFHNTX" comment noeat call=comment_todo.comment_todo()
"\n" idle
@@ -40,7 +44,7 @@
* idle
"'" char2 recolor=-3
-:char2 Constant
+:char2 Character
* idle noeat
# Strings
@@ -57,19 +61,19 @@
* ident noeat
"\"" string recolor=-2
-:string Constant
+:string String string
* string
"\n" idle
"\"" idle
"\\" string_escape recolor=-1
-:string_escape Escape
+:string_escape StringEscape string
* string
"\n" string recolor=-2
# Integer constants
-:first_digit Constant
+:first_digit Number
* idle noeat
"." float
"_" first_digit
@@ -77,20 +81,20 @@
# Floating point
-:maybe_float Constant
+:maybe_float Number
* idle recolor=-2 noeat
"0-9" float recolor=-2
-:float Constant
+:float Number
* idle noeat
"eE" epart
"0-9" float
-:epart Constant
+:epart Number
* idle noeat
"0-9+\-" enum
-:enum Constant
+:enum Number
* idle noeat
"0-9" enum
diff --git a/.config/joestar/syntax/ant.jsf b/.config/joestar/syntax/ant.jsf
@@ -1,305 +1,30 @@
# JOE syntax highlight file for Ant's build scripts
# by Christian Nicolai (http://mycrobase.de)
+# Refactored to XML by John J. Jordan
# http://ant.apache.org/
-# heavily based on the XML highlighter but with better colors since
-# ant scripts heavily rely on the tags (blue is a bad color here)
-# instead of their contents
-
-# Improved XML highlighter by: Brian Candler <B.Candler@pobox.com>
-
=Idle
-=Bad red bold
-=Tag bold
-=Attr
-=Constant cyan
-=Escape bold cyan
-=EntityRef magenta
-=Decl cyan
-=CommentStart green
-=CommentBody green
-=CommentEnd green
-=PIStart yellow bold
-=PIBody yellow
-=PIEnd yellow bold
-=CdataStart blue bold
-=CdataBody bold
-=CdataEnd blue bold
-
-=Keytag bold magenta #fg_310 # brown
-
-
-# http://www.w3.org/TR/2004/REC-xml-20040204/
-#
-# NOTE: For UNICODE compatibility, the ranges
-# "A-Za-z_:" -- first character of Name
-# "A-Za-z0-9._:-" -- subsequent characters of Name
-# ought to be replaced with some appropriate Unicode character classes
-#
-# Actually the standard tells you which characters to use, see:
-# http://www.w3.org/TR/xml11/#NT-NameStartChar
-
-:content Idle
- * content
- "<" tag recolor=-1
- "&" entityref recolor=-1
-
-# > is allowed
-# ">" error noeat recolor=-1
-
-
-# In several contexts a space is an error, and since a coloured space is
-# not visible, we colour the next non-space character as well.
-
-:error Bad
- * error_visible noeat recolor=-1
- " \t\r\n" error
-
-:error_visible Bad
- * content
-
-# Matched: &
-
-:entityref EntityRef
- * error noeat recolor=-1
- "-.:\c" entityref
- "#" entityref
- ";" content
-
-# Matched: <
-
-:tag Tag
- * error noeat recolor=-1
- "/" end_tag
- ":\i" start_or_empty_tag buffer
- "?" pi_start recolor=-2
- "!" decl recolor=-2 buffer
-
-# Matched: </
-
-:end_tag Tag
- * error noeat recolor=-1
- ":\i" end_tag2
-
-:end_tag2 Tag
- * error noeat recolor=-1
- "-.:\c" end_tag2
- " \t\r\n" end_tag2_sp recolor=-1
- ">" content
-
-:end_tag2_sp Idle
- * end_tag3 noeat
-
-:end_tag3 Tag
- * error noeat recolor=-1
- " \t\r\n" end_tag3_sp recolor=-1
- ">" content
-
-:end_tag3_sp Idle
- * end_tag_3 noeat
-
-# Matched: <tag
-
-# compare tag name of start/empty tags with a list
-# of Ant specific keywords
-:start_or_empty_tag Tag
- * decide_tag_type noeat strings
- "target" kw
-done
- "-.:\c" start_or_empty_tag
-
-:kw Keytag
- * decide_tag_type noeat
-
-:decide_tag_type Tag
- * error noeat recolor=-1
- "/" empty_tag
- " \t\r\n" start_or_empty_tag_sp
- ">" content
-
-:start_or_empty_tag_sp Idle
- * tag_space noeat
-
-# Matched: <tag/
-
-:empty_tag Tag
- * error noeat recolor=-1
- ">" content
-
-# Matched: <tag SPACE
-
-:tag_space Attr
- * error noeat recolor=-1
- " \t\r\n" tag_space_sp recolor=-1
- ":\i" attr
- "/" empty_tag recolor=-1
- ">" close_tag recolor=-1
-
-:tag_space_sp Idle
- * tag_space noeat
-
-# Matched: <tag attr
-
-:attr Attr
- * error noeat recolor=-1
- "-.:\c" attr
- " \t\r\n" attr_sp recolor=-1
- "=" string
-
-:attr_sp Idle
- * attr_before noeat
-
-:attr_before Attr
- * error noeat recolor=-1
- " \t\r\n" attr_sp recolor=-1
- "=" string
-
-# Matched: <tag attr=
-
-:string Attr
- * error noeat recolor=-1
- " \t\r\n" string_sp recolor=-1
- "\"" string_dq recolor=-1
- "'" string_sq recolor=-1
+=String +Constant
+=StringEscape +Escape +String
-: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
+:init Idle
+ * idle noeat call=xml.xml(ant)
.subr maybe_antvar
# initial state
-:maybe_antvar Constant
+:maybe_antvar String string
* NULL return
"{" antvar recolor=-2
-:antvar Escape
+:antvar StringEscape string
* 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
+.subr antvar
-# 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
+:antvar StringEscape string
+ * antvar
+ "}" NULL return
+.end
diff --git a/.config/joestar/syntax/asm.jsf b/.config/joestar/syntax/asm.jsf
@@ -14,17 +14,20 @@
# languages allow '000009', which looks like a bad octal constant in C/UNIX.
=Idle
-=Bad bold red
-=Preproc blue
-=Define bold blue
-=Comment green
-=IncLocal cyan
-=IncSystem bold cyan
-=Constant cyan
-=Escape bold cyan
-=Type bold
-=Keyword bold
-=CppKeyword bold
+=Ident
+=Bad
+=Preproc
+=Define
+=Comment
+=IncLocal +String +Preproc
+=IncSystem +Preproc
+=Constant
+=Number +Constant
+=String +Constant
+=Character +String
+=CharacterEscape +Escape +Character
+=StringEscape +Escape +String
+=Type
=Brace
=Control
@@ -129,20 +132,22 @@ done
"*" comment recolor=-2
"/" line_comment recolor=-2
-:comment Comment
+:comment Comment comment
* comment
+ "BFHNTX" comment noeat call=comment_todo.comment_todo()
"*" maybe_end_comment
-:maybe_end_comment Comment
+:maybe_end_comment Comment comment
* comment
"/" idle
"*" maybe_end_comment
-:line_comment Comment
+:line_comment Comment comment
* line_comment
+ "BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" reset
-:first_digit Constant
+:first_digit Number
* idle noeat
"xX" hex
"." float
@@ -154,99 +159,99 @@ done
* idle noeat
"0-9" bad_number
-:octal Constant
+:octal Number
* idle noeat
"0-7" octal
"89" bad_number recolor=-1
-:hex Constant
+:hex Number
* idle noeat
"0-9A-Fa-f" hex
-:decimal Constant
+:decimal Number
* idle noeat
"0-9" decimal
"eE" epart
"." float
-:maybe_float Constant
+:maybe_float Number
* idle recolor=-2 noeat
"0-9" float recolor=-2
-:float Constant
+:float Number
* idle noeat
"eE" epart
"0-9" float
-:epart Constant
+:epart Number
* idle noeat
"0-9+\-" enum
-:enum Constant
+:enum Number
* idle noeat
"0-9" enum
-:string Constant
+:string String string
* string
"\"" idle
"\\" string_escape recolor=-1
"%" string_control recolor=-1
-:string_escape Escape
+:string_escape StringEscape string
* string
"x" string_hex1
"0-7" string_octal2
"\n" string recolor=-2
-:string_hex1 Escape
+:string_hex1 StringEscape string
* string noeat
"0-9a-fA-F" string_hex2
-:string_hex2 Escape
+:string_hex2 StringEscape string
* string noeat
"0-9a-fA-F" string
-:string_octal2 Escape
+:string_octal2 StringEscape string
* string noeat
"0-7" string_octal3
-:string_octal3 Escape
+:string_octal3 StringEscape string
* string noeat
"0-7" string
-:string_control Escape
+:string_control StringEscape string
* string_control
"\n" reset
"diouxXeEfFgGaAcspn%SC" string
-:char Constant
+:char CharacterEscape
* char
"\n" reset
"'" idle
"\\" char_escape recolor=-1
-:char_escape Escape
+:char_escape CharacterEscape
* char
"x" char_hex1
"0-7" char_octal2
"\n" char recolor=-2
-:char_hex1 Escape
+:char_hex1 CharacterEscape
* char noeat
"0-9a-fA-F" char_hex2
-:char_hex2 Escape
+:char_hex2 CharacterEscape
* char noeat
"0-9a-fA-F" char
-:char_octal2 Escape
+:char_octal2 CharacterEscape
* char noeat
"0-7" char_octal3
-:char_octal3 Escape
+:char_octal3 CharacterEscape
* char noeat
"0-7" char
-:ident Idle
+:ident Ident
* idle noeat
"a-zA-Z0-9_" ident
diff --git a/.config/joestar/syntax/avr.jsf b/.config/joestar/syntax/avr.jsf
@@ -1,15 +1,16 @@
# JOE syntax highlight file for AVR assembly language
=Idle
-=Preproc cyan # basic color for directives
-=Inc blue # "include" - color
-=Def magenta # same for "def" and "equ"
-=Definit cyan # text after ".def" or ".equ"
-=Macro red # color of word "macro"
-=Path cyan # color for include-path
-=Com yellow # command
-=Comment green # comment-color
-=Label red # label
+=Ident
+=Preproc # basic color for directives
+=Include +Preproc # "include" - color
+=Define +Preproc # same for "def" and "equ"
+=DefinedIdent +Define +Ident # text after ".def" or ".equ"
+=Macro +Define # color of word "macro"
+=Path +String # color for include-path
+=Com +Keyword # command
+=Comment # comment-color
+=Label +DefinedIdent # label
:idle Idle
@@ -36,19 +37,19 @@ done
"a-zA-Z" preident
";" comment recolor=-1
-:preinc Inc
+:preinc Include
* preinc
" \t" path
"\n" idle
";" comment recolor=-1
-:predef Def
+:predef Define
* predef
" \t" definition
"\n" idle
";" comment recolor=-1
-:definition Definit
+:definition DefinedIdent
* definition
"\n" idle
";" comment recolor=-1
@@ -63,11 +64,12 @@ done
"\n" idle
";" comment recolor=-1
-:comment Comment
+:comment Comment comment
* comment
- "\n" idle
+ "BFHNTX" comment noeat call=comment_todo.comment_todo()
+ "\n" idle
-:ident Idle
+:ident Ident
* idle noeat istrings
"and" com
"andi" com
diff --git a/.config/joestar/syntax/awk.jsf b/.config/joestar/syntax/awk.jsf
@@ -4,18 +4,22 @@
-
=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
+=Ident
+=Bad
+=Preproc
+=Define +Preproc
+=Comment
+=IncLocal +String +Preproc
+=IncSystem +Preproc
+=Constant
+=Number +Constant
+=String +Constant
+=StringEscape +Escape +String
+=Character +String
+=CharacterEscape +Escape +Character
+=Type
+=Keyword
+=Brace +Control
=Control
:reset Idle
@@ -35,8 +39,9 @@
:regex_skip Idle
* regex
-:reset_line_comment Comment
+:reset_line_comment Comment comment
* reset_line_comment
+ "BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" reset
:idle Idle
@@ -58,11 +63,12 @@
:control Control
* idle noeat
-:line_comment Comment
+:line_comment Comment comment
* line_comment
+ "BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" reset
-:first_digit Constant
+:first_digit Number
* idle noeat
"xX" hex
"." float
@@ -74,156 +80,156 @@
* idle noeat
"0-9" bad_number
-:octal Constant
+:octal Number
* idle noeat
"0-7" octal
"89" bad_number recolor=-1
-:hex Constant
+:hex Number
* idle noeat
"0-9A-Fa-f" hex
-:decimal Constant
+:decimal Number
* idle noeat
"0-9" decimal
"eE" epart
"." float
-:maybe_float Constant
+:maybe_float Number
* idle recolor=-2 noeat
"0-9" float recolor=-2
-:float Constant
+:float Number
* idle noeat
"eE" epart
"0-9" float
-:epart Constant
+:epart Number
* idle noeat
"0-9+\-" enum
-:enum Constant
+:enum Number
* idle noeat
"0-9" enum
-:string Constant
+:string String string
* string
"\"" idle
"\\" string_escape recolor=-1
"%" string_control recolor=-1
-:string_escape Escape
+:string_escape StringEscape string
* string
"x" string_hex1
"0-7" string_octal2
"\n" string recolor=-2
-:string_hex1 Escape
+:string_hex1 StringEscape string
* string noeat
"0-9a-fA-F" string_hex2
-:string_hex2 Escape
+:string_hex2 StringEscape string
* string noeat
"0-9a-fA-F" string
-:string_octal2 Escape
+:string_octal2 StringEscape string
* string noeat
"0-7" string_octal3
-:string_octal3 Escape
+:string_octal3 StringEscape string
* string noeat
"0-7" string
-:string_control Escape
+:string_control StringEscape string
* string
"\"" string noeat
"\n" reset
"0-9.\-+ #hjILtz$" string_control
-:char Constant
+:char Character
* char
"\n" reset
"'" idle
"\\" char_escape recolor=-1
-:char_escape Escape
+:char_escape CharacterEscape
* char
"x" char_hex1
"0-7" char_octal2
"\n" char recolor=-2
-:char_hex1 Escape
+:char_hex1 CharacterEscape
* char noeat
"0-9a-fA-F" char_hex2
-:char_hex2 Escape
+:char_hex2 CharacterEscape
* char noeat
"0-9a-fA-F" char
-:char_octal2 Escape
+:char_octal2 CharacterEscape
* char noeat
"0-7" char_octal3
-:char_octal3 Escape
+:char_octal3 CharacterEscape
* char noeat
"0-7" char
-:ident Idle
- * idle noeat strings
- "if" kw
- "else" kw
- "while" kw
- "do" kw
- "for" kw
- "break" kw
+:ident Ident
+ * idle noeat istrings
+ "if" kw
+ "else" kw
+ "while" kw
+ "do" kw
+ "for" kw
+ "break" kw
"continue" kw
"delete" kw
- "exit" kw
- "close" kw
+ "exit" kw
+ "close" kw
"getline" kw
- "next" kw
+ "next" kw
"nextfile" kw
- "print" kw
+ "print" kw
"printf" kw
"system" kw
"fflush" kw
- "atan2" kw
- "cos" kw
- "exp" kw
- "int" kw
- "log" kw
- "rand" kw
- "sin" kw
- "sqrt" kw
- "srand" kw
- "asort" kw
+ "atan2" kw
+ "cos" kw
+ "exp" kw
+ "int" kw
+ "log" kw
+ "rand" kw
+ "sin" kw
+ "sqrt" kw
+ "srand" kw
+ "asort" kw
"asorti" kw
"gensub" kw
- "gsub" kw
- "index" kw
+ "gsub" kw
+ "index" kw
"length" kw
- "match" kw
- "split" kw
+ "match" kw
+ "split" kw
"sprintf" kw
"strtonum" kw
- "sub" kw
+ "sub" kw
"substr" kw
"tolower" kw
"toupper" kw
"mktime" kw
"strftime" kw
"systime" kw
- "and" kw
- "compl" kw
+ "and" kw
+ "compl" kw
"lshift" kw
- "or" kw
+ "or" kw
"rshift" kw
- "xor" kw
- "bindtextdomain" kw
+ "xor" kw
+ "bindtextdomain" kw
"dcgettext" kw
"dcngettext" kw
"function" kw
- "return" kw
+ "return" kw
done
"a-zA-Z0-9_" ident
diff --git a/.config/joestar/syntax/batch.jsf b/.config/joestar/syntax/batch.jsf
@@ -1,12 +1,16 @@
# JOE syntax highlight file for Windows batch scripts
=Idle
-=Comment green
-=Command bold
-=Statement bold cyan
-=Brace magenta
-=Variable blue
-=Label bold blue
+=Comment
+=Command +Type
+=Statement +Keyword
+=Brace
+=Variable +DefinedIdent
+=StringVariable +StringEscape
+=Label
+=Conditional +Statement
+=Loop +Statement
+=String +Constant
:reset Idle
* linebegin noeat
@@ -35,9 +39,9 @@
"endlocal" stmt
"erase" stmt
"exit" stmt
- "for" stmt
- "goto" stmt
- "if" stmt
+ "for" cond
+ "goto" loop
+ "if" cond
"move" stmt
"pause" stmt
"popd" stmt
@@ -68,20 +72,28 @@ done
* label
"\r\n" reset
-:comment Comment
+:comment Comment comment
* comment
+ "BFHNTX" comment noeat call=comment_todo.comment_todo()
"\r\n" reset
+:loop Loop
+ * args noeat
+
+:cond Conditional
+ * args noeat
+
:stmt Statement
* args noeat
:echostmt Statement
* echoargs noeat
-:echoargs Idle
+:echoargs String string
* echoargs
- "%" echoargs call=.variable() recolor=-1
+ "%" echoargs call=.strvariable() recolor=-1
"&" and recolor=-1
+ ">|" reset recolor=-1
"\r\n" reset
:command Command
@@ -101,31 +113,32 @@ done
"(" lparen recolor=-1
")" rparen recolor=-1
"\r\n" reset
- "\"" qargs
+ "\"" qargs recolor=-1
"&" and recolor=-1
# Double-quoted args
-:qargs Idle
+:qargs String string
* qargs
"\"" args
- "%" qargs call=.variable() recolor=-1
+ "%" qargs call=.strvariable() recolor=-1
"\r\n" reset
# Single-quoted args
-:sqargs Idle
+:sqargs String string
* sqargs
"'" args
- "%" sqargs call=.variable() recolor=-1
+ "%" sqargs call=.strvariable() recolor=-1
"\r\n" reset
# Back-quoted (`) args, found in some for-loops
-:bqargs Idle
+:bqargs String string
* bqargs
"`" args
- "%" bqargs call=.variable() recolor=-1
+ "%" bqargs call=.strvariable() recolor=-1
"\r\n" reset
:and Idle
+ "&" and
* reset noeat
:lparen Brace
@@ -152,3 +165,22 @@ done
"%" args return
.end
+
+.subr strvariable
+
+:variable StringVariable string
+ * args noeat return
+ "%~" shortvar
+ "\*" noeat return
+ "0-9" variable return
+ "A-Za-z_" varbody
+
+:shortvar StringVariable string
+ * args noeat return
+ "A-Za-z0-9_" shortvar
+
+:varbody StringVariable string
+ * varbody
+ "%" args return
+
+.end
diff --git a/.config/joestar/syntax/c.jsf b/.config/joestar/syntax/c.jsf
@@ -84,7 +84,7 @@
=Background
-=CPreproc cyan
+=CPreproc bold cyan
=CPreprocKW bold cyan
=CPreproc_cKW bold cyan
=CPreproc_sym bold blue
@@ -715,6 +715,10 @@ done
"switch" kw
"while" kw
"bitand" kw #c++
+ "nullptr" kw #c++
+ "module" kw #c++
+ "import" kw #c++
+ "constexpr" kw #c++
"bitor" kw #c++
"catch" kw #c++
"compl" kw #c++
diff --git a/.config/joestar/syntax/c.jsf.back b/.config/joestar/syntax/c.jsf.back
@@ -1,517 +0,0 @@
-# JOE syntax highlight file for C and C++
-
-# A (deterministic) state machine which performs lexical analysis of C.
-# (This is the "assembly language" of syntax highlighting. A separate
-# program could be used to convert a regular expression NFA syntax into this
-# format).
-
-# Each state begins with ':<name> <color-name> <context>'
-#
-# <color-name> is the color used for characters eaten by the state
-# (really a symbol for a user definable color).
-#
-# <context> tells JOE if the current character is part of a comment or a string.
-# This allows JOE to skip over comments and strings when matching characters
-# such as parentheses. To use this feature, the -highlighter_context option
-# must be applied to the files highlighted by the corresponding syntax. To
-# apply the option, add it to ftyperc for those file entries.
-#
-# The valid contexts are:
-# comment This character is part of a comment. Example: /* comment */
-#
-# string This character is part of a string. Examples: "string" 'c' 'string'
-#
-# The comment and string delimiters themselves should be marked with the
-# appropriate context. The context is considered to be part of the color, so
-# the recolor=-N and recolormark options apply the context to previous
-# characters.
-
-# The first state defined is the initial state.
-
-# Within a state, define transitions (jumps) to other states. Each
-# jump has the form: <character-list> <target-state> [<option>s]
-
-# There are three ways to specify <character-list>s, either * for any
-# character not otherwise specified, % or & to match the character in the
-# delimiter match buffer or a literal list of characters within quotes
-# (ranges and escape sequences allowed). When the next character matches
-# any in the list, a jump to the target-state is taken and the character is
-# eaten (we advance to the next character of the file to be colored).
-#
-# The * transition should be the first transition specified in the state.
-#
-# There are several options:
-# noeat do not eat the character, instead feed it to the next state
-# (this tends to make the states smaller, but be careful: you
-# can make infinite loops). 'noeat' implies 'recolor=-1'.
-#
-# recolor=-N Recolor the past N characters with the color of the
-# target-state. For example once /* is recognized as the
-# start of C comment, you want to color the /* with the C
-# comment color with recolor=-2.
-#
-# mark Mark beginning of a region with current position.
-#
-# markend Mark end of region.
-#
-# recolormark Recolor all of the characters in the marked region with
-# the color of the target-state. If markend is not given,
-# all of the characters up to the current position are recolored.
-# Note that the marked region can not cross line boundaries and
-# must be on the same line as recolormark.
-#
-# buffer start copying characters to a string buffer, beginning with this
-# one (it's ok to not terminate buffering with a matching
-# 'strings' option- the buffer is limited to leading 23
-# characters).
-#
-# save_c Save character in delimiter match buffer.
-#
-# save_s Copy string buffer to delimiter match buffer.
-#
-# strings A list of strings follows. If the buffer matches any of the
-# given strings, a jump to the target-state in the string list
-# is taken instead of the normal jump.
-#
-# istrings Same as strings, but case is ignored.
-#
-# Note: strings and istrings should be the last option on the
-# line. They cause any options which follow them to be ignored.
-#
-# hold Stop buffering string- a future 'strings' or 'istrings' will
-# look at contents of buffer at this point. Useful for distinguishing
-# commands and function calls in some languages 'write 7' is a command
-# 'write (' is a function call- hold lets us stop at the space and delay
-# the string lookup until the ( or 7.
-#
-# The format of the string list is:
-#
-# "string" <target-state> [<options>s]
-# "string" <target-state> [<options>s]
-# "&" <target-state> [<options>s] # matches contents of delimiter match buffer
-# done
-#
-# (all of the options above are allowed except "strings", "istrings" and "noeat". noeat is
-# always implied after a matched string).
-#
-# Weirdness: only states have colors, not transitions. This means that you
-# sometimes have to make dummy states with '* next-state noeat' just to get
-# a color specification.
-#
-# Delimiter match buffer is for perl and shell: a regex in perl can be s<..>(...)
-# and in shell you can say: <<EOS ....... EOS
-
-# New feature: subroutines
-#
-# Highlighter state machines can now make subroutine calls. The highlighter has
-# a run-time stack that allows unlimited recursion.
-#
-# To call a subroutine, use the 'call' option:
-#
-# "\"" fred call=string(dquote)
-#
-# The subroutine called 'string' is called and the jump to 'fred' is
-# ignored. The 'dquote' option is passed to the subroutine.
-#
-# The subroutine itself returns to the caller like this:
-# "\"" whatever return
-#
-# If we're in a subroutine, the return is made. Otherwise the jump
-# to 'whatever' is made.
-#
-# There are several ways of delimiting subroutines which show up in how it
-# is called. Here are the options:
-#
-# call=string() A file called string.jsf is the subroutine.
-# The entire file is the subroutine. The starting
-# point is the first state in the file.
-#
-# call=library.string() A file called library.jsf has the subroutine.
-# The subroutine within the file is called string.
-#
-# call=.string() There is a subroutine called string in the current file.
-#
-# When a subroutine is within a file, but is not the whole file, it is delimited
-# as follows:
-#
-# .subr string
-#
-# . . . states for string subroutine . . .
-#
-# .end
-#
-# Option flags can be passed to subroutines which control preprocessor-like
-# directives. For example:
-#
-# .ifdef dquote
-# "\"" idle return
-# .endif
-# .ifdef squote
-# "'" idle return
-# .endif
-#
-# .else if also available. .ifdefs can be nested.
-
-
-# Obsolete feature: the sync lines specification no longer matter. We now always parse
-# from the beginning of the file. Here is the old description:
-#
-# Define no. sync lines
-# You can say:
-# -200 means 200 lines
-# - means always start parsing from beginning of file when we lose sync
-# if nothing is specified, the default is -50
--
-
-# Define colors and attributes. Give a list of attributes, one
-# background color and one foreground color (default is used if
-# color is left out).
-#
-# Attributes:
-# bold inverse blink dim underline italic
-#
-# Standard colors:
-#
-# Foreground:
-# white cyan magenta blue yellow green red black
-#
-# Background:
-# bg_white bg_cyan bg_magenta bg_blue bg_yellow bg_green bg_red bg_black
-#
-# For 16 color and 256 color xterms: "export TERM=xterm-16color", these
-# brighter than normal colors are available:
-#
-# Note that you need an xterm which was compiled to support 16 or 256 colors
-# and a matching termcap/terminfo entry for it.
-#
-# Foreground:
-# WHITE CYAN MAGENTA BLUE YELLOW GREEN RED BLACK
-#
-# Background:
-# bg_WHITE bg_CYAN bg_MAGENTA bg_BLUE bg_YELLOW bg_GREEN bg_RED bg_BLACK
-#
-# For 256 color xterm: "export TERM=xterm-256color", these become available:
-#
-# Note that you need an xterm which was compiled to support 256 colors and a
-# matching termcap/terminfo entry for it.
-#
-# fg_RGB and bg_RGB, where R, G, and B range from 0 - 5. So: fg_500 is bright red.
-#
-# fg_NN and bg_NN give shades of grey, where the intensity, NN, ranges from 0 - 23.
-
-=Idle
-=Bad bold red
-=Preproc blue
-=Define bold blue
-=Comment red
-=IncLocal cyan
-=IncSystem bold cyan
-=Constant magenta
-=Escape bold cyan
-=Type bold
-=Keyword bold
-=CppKeyword bold
-=Brace green
-=Control cyan
-
-:reset Idle
- * first noeat
- " \t" reset
-
-:first Idle
- * idle noeat
- "#" pre recolor=-1
-
-:pre Preproc
- * preproc noeat
- " \t" pre
- "a-z" preident recolor=-1 buffer
-
-:preident Preproc
- * preproc noeat strings
- "define" predef
- "include" preinc
-done
- "a-z" preident
-
-:preinc Preproc
- * preinc
- " \t" preinc_ws
- "\n" reset
-
-:preinc_ws Preproc
- * prebad recolor=-1
- " \t" preinc_ws
- "\"" preinc_local recolor=-1
- "<" preinc_system recolor=-1
-
-:preinc_local IncLocal string
- * preinc_local
- "\"\n" reset
-
-:preinc_system IncSystem string
- * preinc_system
- ">\n" reset
-
-:prebad Bad
- * prebad
- "\n" reset
-
-
-:predef Preproc
- * predef
- " \t" predef_ws
- "\n" reset
-
-:predef_ws Preproc
- * prebad recolor=-1
- " \t" predef_ws
- "\c" predef_ident recolor=-1
-
-:predef_ident Define
- * idle noeat
- "\c" predef_ident
-
-
-:preproc Preproc
- * preproc
- "\n" reset
- "\\" preproc_cont
- "/" preproc_slash
-
-:preproc_slash Preproc
- * preproc noeat
- "*" comment recolor=-2
- "/" line_comment recolor=-2
-
-:preproc_cont Preproc
- * preproc_cont
- "\n" preproc
-
-# All following states are for when we're not in a preprocessor line
-
-:idle Idle
- * idle
- "\n" reset
- "0" first_digit recolor=-1
- "1-9" decimal recolor=-1
- "." maybe_float
- "\"" string recolor=-1
- "'" char recolor=-1
- "\i" ident buffer
- "\\" outside_escape recolor=-1
- "{}:,;" brace recolor=-1
- ",=()><[]*&|!~+\-%^\/" control recolor=-1
- "/" slash
-
-
-:outside_escape Escape
- * idle
-
-:brace Brace
- * idle noeat
-
-:control Control
- * idle noeat
-
-:slash Idle
- * idle noeat recolor=-2 # Not sure about this
- "*" comment recolor=-2
- "/" line_comment recolor=-2
-
-:comment Comment comment
- * comment
- "*" maybe_end_comment
-
-:maybe_end_comment Comment comment
- * comment
- "/" idle
- "*" maybe_end_comment
-
-:line_comment Comment comment
- * line_comment
- "\n" reset
-
-:first_digit Constant
- * idle noeat
- "xX" hex
- "." float
- "eE" epart
- "0-7" octal
- "89" bad_number recolor=-1
-
-:bad_number Bad
- * idle noeat
- "0-9" bad_number
-
-:octal Constant
- * idle noeat
- "0-7" octal
- "89" bad_number recolor=-1
-
-:hex Constant
- * idle noeat
- "0-9A-Fa-f" hex
-
-:decimal Constant
- * idle noeat
- "0-9" decimal
- "eE" epart
- "." float
-
-:maybe_float Constant
- * idle recolor=-2 noeat
- "0-9" float recolor=-2
-
-:float Constant
- * idle noeat
- "eE" epart
- "0-9" float
-
-:epart Constant
- * idle noeat
- "0-9+\-" enum
-
-:enum Constant
- * idle noeat
- "0-9" enum
-
-:string Constant string
- * string
- "\"" idle
- "\\" string_escape recolor=-1
- "%" string_control recolor=-1
-
-:string_escape Escape string
- * string
- "x" string_hex
- "0-7" string_octal2
- "\n" string recolor=-2
-
-# \x will consume all successive hex digits (ANSI C).
-:string_hex Escape string
- * string noeat
- "0-9a-fA-F" string_hex
-
-:string_octal2 Escape string
- * string noeat
- "0-7" string_octal3
-
-:string_octal3 Escape string
- * string noeat
- "0-7" string
-
-:string_control Escape string
- * string
- "\"" string noeat
- "\n" reset
- "\\" string_escape recolor=-1
- "0-9.\-+ #hjILtz$" string_control
-
-:char Constant string
- * char
- "\n" reset
- "'" idle
- "\\" char_escape recolor=-1
-
-:char_escape Escape string
- * char
- "x" char_hex
- "0-7" char_octal2
- "\n" char recolor=-2
-
-# \x will consume all successive hex digits (ANSI C).
-:char_hex Escape string
- * char noeat
- "0-9a-fA-F" char_hex
-
-:char_octal2 Escape string
- * char noeat
- "0-7" char_octal3
-
-:char_octal3 Escape string
- * char noeat
- "0-7" char
-
-:ident Idle
- * idle noeat strings
- "int" type
- "float" type
- "long" type
- "short" type
- "char" type
- "double" type
- "signed" type
- "unsigned" type
- "void" type
- "static" type
- "register" type
- "extern" type
- "inline" type
- "auto" type
- "const" type
- "volatile" type
- "if" kw
- "else" kw
- "while" kw
- "for" kw
- "break" kw
- "continue" kw
- "do" kw
- "case" kw
- "default" kw
- "switch" kw
- "goto" kw
- "struct" kw
- "enum" kw
- "return" kw
- "sizeof" kw
- "typedef" kw
- "union" kw
- "asm" kw
- "case" kw
-# C++ keywords
- #"asm" cppkw (listed above as a C keyword)
- "bool" cppkw
- "catch" cppkw
- "class" cppkw
- "const_cast" cppkw
- "delete" cppkw
- "dynamic_cast" cppkw
- "nullptr" cppkw
- "explicit" cppkw
- "false" cppkw
- "friend" cppkw
- #"inline" cppkw (listed above as a C keyword)
- "mutable" cppkw
- "namespace" cppkw
- "new" cppkw
- "operator" cppkw
- "private" cppkw
- "protected" cppkw
- "public" cppkw
- "reinterpret_cast" cppkw
- "static_cast" cppkw
- "template" cppkw
- "this" cppkw
- "throw" cppkw
- "true" cppkw
- "try" cppkw
- "typeid" cppkw
- "typename" cppkw
- "using" cppkw
- "virtual" cppkw
- "wchar_t" type
-# Non-Standard
- "typeof" cppkw
-done
- "\c" ident
-
-:type Type
- * idle noeat
-
-:kw Keyword
- * idle noeat
-
-:cppkw CppKeyword
- * idle noeat
diff --git a/.config/joestar/syntax/clojure.jsf b/.config/joestar/syntax/clojure.jsf
@@ -1,11 +1,17 @@
# JOE syntax highlight file for Clojure
=Idle
-=Comment green
-=Escape bold cyan
-=Constant cyan
-=Bad bold red
-=Keyword bold
+=Comment
+=Escape
+=StringEscape +Escape
+=Constant
+=String +Constant
+=Number +Constant
+=Boolean +Constant
+=Keyword
+=Statement +Keyword
+=Conditional +Statement
+=Bad
:reset Idle
* idle noeat call=.clojure()
@@ -113,8 +119,8 @@ done
"]}), \t\n;" ident_end noeat markend strings
# Symbols which are built-in values
"nil" value
- "true" value
- "false" value
+ "true" bool
+ "false" bool
"." common
"catch" common
"clojure.core/fn" common
@@ -124,7 +130,7 @@ done
"do" common
"finally" common
"fn" common
- "if" common
+ "if" cond
"let" common
"loop" common
"monitor-enter" common
@@ -139,7 +145,6 @@ done
"catch" common
"finally" common
"throw" common
- "try" common
"case" common
"clojure.core/case" common
"clojure.core/cond" common
@@ -152,12 +157,12 @@ done
"clojure.core/when-first" common
"clojure.core/when-let" common
"clojure.core/when-not" common
- "cond" common
- "cond->" common
- "cond->>" common
- "condp" common
- "if-let" common
- "if-not" common
+ "cond" cond
+ "cond->" cond
+ "cond->>" cond
+ "condp" cond
+ "if-let" cond
+ "if-not" cond
"when" common
"when-first" common
"when-let" common
@@ -1321,9 +1326,15 @@ done
:value Constant
* idle noeat
+:bool Boolean
+ * idle noeat
+
:common Keyword
* idle noeat
+:cond Conditional
+ * idle noeat
+
:ident_end Idle
* idle noeat
@@ -1345,59 +1356,60 @@ done
* idle noeat
"_" pound_eat recolor=-2
-:pound_eat Comment
+:pound_eat Comment comment
* idle noeat
-:comment Comment
+:comment Comment comment
* comment
+ "BFHNTX" comment noeat call=comment_todo.comment_todo()
"\n" idle
# Check some specific common bases
-:two Constant
+:two Number
* number noeat
"r" binary
-:eight Constant
+:eight Number
* number noeat
"r" octal
-:one Constant
+:one Number
* number noeat
"0" ten
"6" sixteen
-:ten Constant
+:ten Number
* number noeat
"r" decimal
-:sixteen Constant
+:sixteen Number
* number noeat
"r" hex
-:hex Constant
+:hex Number
* bad noeat
"NM" bad
"0-9a-fA-F" hex
-:octal Constant
+:octal Number
* bad noeat
"NM" bad
"0-7" octal
-:binary Constant
+:binary Number
* bad noeat
"NM" bad
"01" binary
-:decimal Constant
+:decimal Number
* bad noeat
"NM" bad
"0-9" decimal
# Number, no r yet...
-:number Constant
+:number Number
* bad noeat
"NM" bad
"0-9" number
@@ -1407,78 +1419,78 @@ done
# we got the r
-:integer Constant
+:integer Number
* bad noeat
"NM" bad
"0-9" integer
# We have a decimal point only
-:maybe_neg_float Constant
+:maybe_neg_float Number
* symbol recolor=-2 noeat
"0-9" float recolor=-2
-:maybe_float Constant
+:maybe_float Number
* idle recolor=-2 noeat
"0-9" float recolor=-2
# We have number and decimal point
-:float Constant
+:float Number
* bad noeat
"M" bad
"eE" epart
"0-9" float
-:epart Constant
+:epart Number
* bad noeat
"0-9+\-" enum
-:enum Constant
+:enum Number
* bad noeat
"M" bad
"0-9" enum
# Ratio
-:ratio Constant
+:ratio Number
* bad noeat
"0-9" ratio
# Strings
-:string Constant
+:string String string
* string
"\"" idle
"\\" string_escape recolor=-1
-:string_escape Escape
+:string_escape StringEscape string
* string
"u" string_uni4
"0-7" string_octal2
"\n" string recolor=-2
-:string_uni4 Escape
+:string_uni4 StringEscape string
* string noeat
"0-9a-fA-F" string_uni3
-:string_uni3 Escape
+:string_uni3 StringEscape string
* string noeat
"0-9a-fA-F" string_uni2
-:string_uni2 Escape
+:string_uni2 StringEscape string
* string noeat
"0-9a-fA-F" string_uni1
-:string_uni1 Escape
+:string_uni1 StringEscape string
* string noeat
"0-9a-fA-F" string
-:string_octal2 Escape
+:string_octal2 StringEscape string
* string noeat
"0-7" string_octal1
-:string_octal1 Escape
+:string_octal1 StringEscape string
* string noeat
"0-7" string
diff --git a/.config/joestar/syntax/cobol.jsf b/.config/joestar/syntax/cobol.jsf
@@ -1,24 +1,36 @@
# JOE syntax highlight file for COBOL
=Idle
-=Bad bold red
-=Preproc blue
-=Define bold blue
-=Comment green
-=IncLocal cyan
-=IncSystem bold cyan
-=Constant cyan
-=Escape bold cyan
-=Type bold
-=Keyword bold
+=Bad
+=Preproc
+=Define +Preproc
+=Comment
+=IncLocal +String +Preproc
+=IncSystem +Preproc
+=Constant
+=String +Constant
+=Number +Constant
+=Boolean +Constant
+=Character +String
+=Escape
+=StringEscape +Escape
+=CharacterEscape +StringEscape
+=Type
+=Keyword
+=Operator +Keyword
+=Statement +Keyword
+=Conditional +Statement
+=Loop +Statement
+=Ident
:reset Idle
* idle noeat
"*" line_comment recolor=-1
" \t" reset
-:line_comment Comment
+:line_comment Comment comment
* line_comment
+ "BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" reset
# All following states are for when we're not in a preprocessor line
@@ -33,7 +45,7 @@
"'" char recolor=-1
"a-zA-Z_" ident buffer
-:first_digit Constant
+:first_digit Number
* idle noeat
"xX" hex
"." float
@@ -45,100 +57,100 @@
* idle noeat
"0-9" bad_number
-:octal Constant
+:octal Number
* idle noeat
"0-7" octal
"89" bad_number recolor=-1
-:hex Constant
+:hex Number
* idle noeat
"0-9A-Fa-f" hex
-:decimal Constant
+:decimal Number
* idle noeat
"0-9" decimal
"eE" epart
"." float
-:maybe_float Constant
+:maybe_float Number
* idle recolor=-2 noeat
"0-9" float recolor=-2
-:float Constant
+:float Number
* idle noeat
"eE" epart
"0-9" float
-:epart Constant
+:epart Number
* idle noeat
"0-9+\-" enum
-:enum Constant
+:enum Number
* idle noeat
"0-9" enum
-:string Constant
+:string String string
* string
"\"" idle
"\\" string_escape recolor=-1
"%" string_control recolor=-1
-:string_escape Escape
+:string_escape StringEscape string
* string
"x" string_hex1
"0-7" string_octal2
"\n" string recolor=-2
-:string_hex1 Escape
+:string_hex1 StringEscape string
* string noeat
"0-9a-fA-F" string_hex2
-:string_hex2 Escape
+:string_hex2 StringEscape string
* string noeat
"0-9a-fA-F" string
-:string_octal2 Escape
+:string_octal2 StringEscape string
* string noeat
"0-7" string_octal3
-:string_octal3 Escape
+:string_octal3 StringEscape string
* string noeat
"0-7" string
-:string_control Escape
+:string_control StringEscape string
* string_control
"\n" reset
"diouxXeEfFgGaAcspn%SC" string
-:char Constant
+:char Character string
* char
"\n" reset
"'" idle
"\\" char_escape recolor=-1
-:char_escape Escape
+:char_escape CharacterEscape string
* char
"x" char_hex1
"0-7" char_octal2
"\n" char recolor=-2
-:char_hex1 Escape
+:char_hex1 CharacterEscape string
* char noeat
"0-9a-fA-F" char_hex2
-:char_hex2 Escape
+:char_hex2 CharacterEscape string
* char noeat
"0-9a-fA-F" char
-:char_octal2 Escape
+:char_octal2 CharacterEscape string
* char noeat
"0-7" char_octal3
-:char_octal3 Escape
+:char_octal3 CharacterEscape string
* char noeat
"0-7" char
-:ident Idle
+:ident Ident
* idle noeat istrings
"accept" kw
"access" kw
@@ -157,7 +169,7 @@
"also" kw
"alter" kw
"alternate" kw
- "and" kw
+ "and" oper
"any" kw
"apply" kw
"are" kw
@@ -169,11 +181,11 @@
"at" kw
"author" kw
"automatic" kw
- "b-and" kw
- "b-exor" kw
- "b-less" kw
- "b-not" kw
- "b-or" kw
+ "b-and" oper
+ "b-exor" oper
+ "b-less" oper
+ "b-not" oper
+ "b-or" oper
"basis" kw
"before" kw
"beginning" kw
@@ -298,7 +310,7 @@
"egcs" kw
"egi" kw
"eject" kw
- "else" kw
+ "else" cond
"emi" kw
"empty" kw
"enable" kw
@@ -311,7 +323,7 @@
"end-divide" kw
"end-enable" kw
"end-evaluate" kw
- "end-if" kw
+ "end-if" cond
"end-invoke" kw
"end-multiply" kw
"end-of-page" kw
@@ -333,7 +345,7 @@
"entry" kw
"environment" kw
"eop" kw
- "equal" kw
+ "equal" oper
"equals" kw
"erase" kw
"error" kw
@@ -347,7 +359,7 @@
"exit" kw
"extend" kw
"external" kw
- "false" const
+ "false" bool
"fd" kw
"fetch" kw
"file" kw
@@ -370,7 +382,7 @@
"global" kw
"go" kw
"goback" kw
- "greater" kw
+ "greater" oper
"group" kw
"heading" kw
"high-value" const
@@ -379,8 +391,8 @@
"i-o-control" kw
"id" kw
"identification" kw
- "if" kw
- "in" kw
+ "if" cond
+ "in" oper
"index" kw
"index-1" kw
"index-2" kw
@@ -405,7 +417,7 @@
"into" kw
"invalid" kw
"invoke" kw
- "is" kw
+ "is" oper
"just" kw
"justified" kw
"kanji" kw
@@ -417,7 +429,7 @@
"leading" kw
"left" kw
"length" kw
- "less" kw
+ "less" oper
"limit" kw
"limits" kw
"linage" kw
@@ -450,7 +462,7 @@
"next" kw
"no" kw
"normal" kw
- "not" kw
+ "not" oper
"null" const
"nulls" const
"number" kw
@@ -466,7 +478,7 @@
"only" kw
"open" kw
"optional" kw
- "or" kw
+ "or" oper
"order" kw
"organization" kw
"other" kw
@@ -620,25 +632,25 @@
"terminate" kw
"test" kw
"text" kw
- "than" kw
+ "than" oper
"then" kw
"through" kw
- "thru" kw
+ "thru" loop
"time" kw
"timeout" kw
- "times" kw
+ "times" loop
"title" kw
- "to" kw
+ "to" oper
"top" kw
"trace" kw
"trailing" kw
"transceive" kw
- "true" const
+ "true" bool
"type" kw
"unequal" kw
"unit" kw
"unstring" kw
- "until" kw
+ "until" loop
"up" kw
"update" kw
"upon" kw
@@ -650,7 +662,7 @@
"validate" kw
"value" kw
"values" kw
- "varying" kw
+ "varying" loop
"wait" kw
"when" kw
"when-compiled" kw
@@ -669,5 +681,17 @@ done
:kw Keyword
* idle noeat
+:oper Operator
+ * idle noeat
+
+:loop Loop
+ * idle noeat
+
+:cond Conditional
+ * idle noeat
+
:const Constant
* idle noeat
+
+:bool Boolean
+ * idle noeat
diff --git a/.config/joestar/syntax/coffee.jsf b/.config/joestar/syntax/coffee.jsf
@@ -9,12 +9,26 @@
# suppress literals after .
=Idle
-=Comment green
-=Constant cyan
-=Escape bold cyan
-=Operator bold
-=Keyword bold
-=Bad bold red
+=Comment
+=Constant
+=Number +Constant
+=Boolean +Constant
+=String +Constant
+=Regex +String
+=Escape
+=StringEscape +Escape
+=StringVariable +StringEscape
+=RegexEscape +StringEscape
+=RegexVariable +RegexEscape
+=Keyword
+=Structure +Keyword
+=Operator +Keyword
+=Statement +Keyword
+=Loop +Statement
+=Conditional +Statement
+=Label +DefinedIdent
+=Ident
+=Bad
:pre_idle Idle
* NULL noeat call=.coffee()
@@ -36,11 +50,20 @@
.else
"]" stray recolor=-1
.endif
+.ifdef squiggly_str
+ "}" string_end_subst noeat
+.else
+.ifdef squiggly_regex
+ "}" regex_end_subst noeat
+.else
.ifdef squiggly
"}" idle return
.else
"}" stray recolor=-1
.endif
+.endif
+.endif
+
"#" comment recolor=-1
"0" zero recolor=-1
"1-9" decimal recolor=-1
@@ -73,131 +96,136 @@
# "foo /x" is regex
:slash_after_term_1 Idle
- * sregex noeat
+ * sregex noeat recolor=-2
"/" slashslash
" = " idle noeat
-:comment Comment
+:comment Comment comment
* line_comment noeat
"#" maybe_block_comment
-:maybe_block_comment Comment
+:maybe_block_comment Comment comment
* line_comment noeat
"#" maybe_block_comment_1
# This is weird... #### is a line comment, but ### is a block comment
-:maybe_block_comment_1 Comment
+:maybe_block_comment_1 Comment comment
* block_comment noeat
"#" line_comment
-:line_comment Comment
+:line_comment Comment comment
* line_comment
+ "BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" idle
-:block_comment Comment
+:block_comment Comment comment
* block_comment
+ "BFHNTX" block_comment noeat call=comment_todo.comment_todo()
"#" block_comment_1
-:block_comment_1 Comment
+:block_comment_1 Comment comment
* block_comment noeat
"#" block_comment_2
-:block_comment_2 Comment
+:block_comment_2 Comment comment
* block_comment noeat
"#" idle
# Check for regex
:slash Constant
- * sregex noeat
+ * sregex noeat recolor=-2
"/" slashslash
:slashslash Constant
* after_term noeat
- "/" regex
+ "/" regex recolor=-3
# Regex like this ///foo///
-:regex Constant
+:regex Regex
* regex
"\\" regex_escape recolor=-1
- "#" regex_maybe_subst
+ "#" regex_maybe_subst recolor=-1
"/" regexslash
-:regex_maybe_subst Constant
- * regex noeat
- "{" regex recolor=-2 call=.coffee(squiggly)
+:regex_maybe_subst RegexVariable
+ * regex noeat recolor=-1
+ "{" regex call=.coffee(squiggly_regex)
+
+:regex_end_subst RegexVariable
+ * idle return
-:regexslash Constant
+:regexslash Regex
* regex noeat
"/" regexslashslash
-:regexslashslash Constant
+:regexslashslash Regex
* regex noeat
"/" after_term
-:regex_escape Escape
+:regex_escape RegexEscape
* regex
"x" regex_hex2
"u" regex_hex4
-:regex_uni Escape
+:regex_uni RegexEscape
* regex_uni
"}" regex
-:regex_hex4 Escape
+:regex_hex4 RegexEscape
* regex noeat
"{" regex_uni
"0-9a-fA-F" regex_hex3
-:regex_hex3 Escape
+:regex_hex3 RegexEscape
* regex noeat
"0-9a-fA-F" regex_hex2
-:regex_hex2 Escape
+:regex_hex2 RegexEscape
* regex noeat
"0-9a-fA-F" regex_hex1
-:regex_hex1 Escape
+:regex_hex1 RegexEscape
* regex noeat
"0-9a-fA-F" regex
# Regex like this: /foo/
-:sregex Constant
+:sregex Regex
* sregex
"\\" sregex_escape recolor=-1
- "#" sregex_maybe_subst
+ "#" sregex_maybe_subst recolor=-1
"/" after_term
-:sregex_maybe_subst Constant
- * sregex noeat
- "{" sregex call=.coffee(squiggly) recolor=-2
+:sregex_maybe_subst RegexVariable
+ * sregex noeat recolor=-1
+ "{" sregex call=.coffee(squiggly_regex)
-:sregex_escape Escape
+:sregex_escape RegexEscape
* sregex
"x" sregex_hex2
"u" sregex_hex4
-:sregex_uni Escape
+:sregex_uni RegexEscape
* sregex_uni
"}" sregex
-:sregex_hex4 Escape
+:sregex_hex4 RegexEscape
* sregex noeat
"{" sregex_uni
"0-9a-fA-F" sregex_hex3
-:sregex_hex3 Escape
+:sregex_hex3 RegexEscape
* sregex noeat
"0-9a-fA-F" sregex_hex2
-:sregex_hex2 Escape
+:sregex_hex2 RegexEscape
* sregex noeat
"0-9a-fA-F" sregex_hex1
-:sregex_hex1 Escape
+:sregex_hex1 RegexEscape
* sregex noeat
"0-9a-fA-F" sregex
@@ -207,7 +235,7 @@
* after_term noeat
"0-9" bad_number
-:zero Constant
+:zero Number
* after_term noeat
"b" binary
"o" octal
@@ -216,7 +244,7 @@
"eE" epart
"0-9" decimal recolor=-1
-:decimal_point Constant
+:decimal_point Number
* after_term noeat recolor=-2
"." decimal_point_1 recolor=-2
"\i" not_ident recolor=-2
@@ -226,274 +254,277 @@
* after_term noeat
"\c" not_ident
-:decimal_point_1 Idle
+:decimal_point_1 Number
* idle noeat
"." idle
-:octal Constant
+:octal Number
* after_term noeat
"0-7_" octal
"89" bad_number recolor=-1
-:binary Constant
+:binary Number
* after_term noeat
"01_" binary
"2-9" bad_number recolor=-1
-:hex Constant
+:hex Number
* after_term noeat
"0-9A-Fa-f_" hex
-:decimal Constant
+:decimal Number
* after_term noeat
"0-9_" decimal
"eE" epart
"." maybe_float
-:maybe_float Constant
+:maybe_float Number
* after_term noeat recolor=-2
"." decimal_point_1 recolor=-2
"eE" epart
"0-9_" float
-:float Constant
+:float Number
* after_term noeat
"eE" epart
"0-9_" float
-:epart Constant
+:epart Number
* after_term noeat
"0-9+\-" enum
-:enum Constant
+:enum Number
* after_term noeat
"0-9_" enum
# strings like "hello"
-:maybe_string Constant
+:maybe_string String string
* string noeat
"\"" maybe_string_1
-:maybe_string_1 Constant
+:maybe_string_1 String string
* after_term noeat
"\"" stringstring
-:string Constant
+:string String string
* string
"\"" after_term
- "#" string_maybe_subst
+ "#" string_maybe_subst recolor=-1
"\\" string_escape recolor=-1
-:string_maybe_subst Constant
- * string noeat
- "{" string call=.coffee(squiggly) recolor=-2
+:string_maybe_subst StringVariable string
+ * string noeat recolor=-1
+ "{" string call=.coffee(squiggly_str)
+
+:string_end_subst StringVariable string
+ * idle return
-:string_escape Escape
+:string_escape StringEscape string
* string
"x" string_hex2
"u" string_hex4
-:string_uni Escape
+:string_uni StringEscape string
* string_uni
"}" string
-:string_hex4 Escape
+:string_hex4 StringEscape string
* string noeat
"{" string_uni
"0-9a-fA-F" string_hex3
-:string_hex3 Escape
+:string_hex3 StringEscape string
* string noeat
"0-9a-fA-F" string_hex2
-:string_hex2 Escape
+:string_hex2 StringEscape string
* string noeat
"0-9a-fA-F" string_hex1
-:string_hex1 Escape
+:string_hex1 StringEscape string
* string noeat
"0-9a-fA-F" string
# Strings like """ foo """
-:stringstring Constant
+:stringstring String string
* stringstring
"\"" stringstring_1
- "#" stringstring_maybe_subst
+ "#" stringstring_maybe_subst recolor=-1
"\\" stringstring_escape recolor=-1
-:stringstring_1 Constant
+:stringstring_1 String string
* stringstring noeat
"\"" stringstring_2
-:stringstring_2 Constant
+:stringstring_2 String string
* stringstring noeat
"\"" after_term
-:stringstring_maybe_subst Constant
- * stringstring noeat
- "{" stringstring call=.coffee(squiggly) recolor=-2
+:stringstring_maybe_subst StringVariable string
+ * stringstring noeat recolor=-1
+ "{" stringstring call=.coffee(squiggly_str)
-:stringstring_escape Escape
+:stringstring_escape StringEscape string
* stringstring
"x" stringstring_hex2
"u" stringstring_hex4
-:stringstring_uni Escape
+:stringstring_uni StringEscape string
* stringstring_uni
"}" stringstring
-:stringstring_hex4 Escape
+:stringstring_hex4 StringEscape string
* stringstring noeat
"{" stringstring_uni
"0-9a-fA-F" stringstring_hex3
-:stringstring_hex3 Escape
+:stringstring_hex3 StringEscape string
* stringstring noeat
"0-9a-fA-F" stringstring_hex2
-:stringstring_hex2 Escape
+:stringstring_hex2 StringEscape string
* stringstring noeat
"0-9a-fA-F" stringstring_hex1
-:stringstring_hex1 Escape
+:stringstring_hex1 StringEscape string
* stringstring noeat
"0-9a-fA-F" stringstring
-# character constants like 'h'
+# string constants like 'h'
-:maybe_char Constant
+:maybe_char String string
* char noeat
"'" maybe_char_1
-:maybe_char_1 Constant
+:maybe_char_1 String string
* after_term noeat
"'" charchar
-:char Constant
+:char String string
* char
"'" after_term
"\\" char_escape recolor=-1
-:char_escape Escape
+:char_escape StringEscape string
* char noeat
"x" char_hex2
"u" char_hex4
-:char_uni Escape
+:char_uni StringEscape string
* char_uni
"}" char_done
-:char_hex4 Escape
+:char_hex4 StringEscape string
* char noeat
"{" char_uni
"0-9a-fA-F" char_hex3
-:char_hex3 Escape
+:char_hex3 StringEscape string
* char noeat
"0-9a-fA-F" char_hex2
-:char_hex2 Escape
+:char_hex2 StringEscape string
* char noeat
"0-9a-fA-F" char_hex1
-:char_hex1 Escape
+:char_hex1 StringEscape string
* char noeat
"0-9a-fA-F" char
# strings like this '''foo'''
-:charchar Constant
+:charchar String string
* charchar
"'" charchar_1
"\\" charchar_escape recolor=-1
-:charchar_1 Constant
+:charchar_1 String string
* charchar noeat
"'" charchar_2
-:charchar_2 Constant
+:charchar_2 String string
* charchar noeat
"'" after_term
-:charchar_escape Escape
+:charchar_escape StringEscape string
* charchar noeat
"x" charchar_hex2
"u" charchar_hex4
-:charchar_uni Escape
+:charchar_uni StringEscape string
* charchar_uni
"}" charchar_done
-:charchar_hex4 Escape
+:charchar_hex4 StringEscape string
* charchar noeat
"{" charchar_uni
"0-9a-fA-F" charchar_hex3
-:charchar_hex3 Escape
+:charchar_hex3 StringEscape string
* charchar noeat
"0-9a-fA-F" charchar_hex2
-:charchar_hex2 Escape
+:charchar_hex2 StringEscape string
* charchar noeat
"0-9a-fA-F" charchar_hex1
-:charchar_hex1 Escape
+:charchar_hex1 StringEscape string
* charchar noeat
"0-9a-fA-F" charchar
# Identifiers
-:ident Idle
+:ident Ident
* after_term noeat strings
"and" operator
- "break" kw
+ "break" loop
"by" kw
"catch" kw
- "class" kw
- "continue" kw
+ "class" struct
+ "continue" loop
"delete" kw
- "debugger" kw
- "do" kw
- "else" kw
+ "debugger" stmt
+ "do" loop
+ "else" cond
"extends" kw
- "false" lit
+ "false" bool
"finally" kw
- "for" kw
- "if" kw
- "in" kw
+ "for" loop
+ "if" cond
+ "in" operator
"instanceof" kw
- "is" kw
- "isnt" kw
- "loop" kw
+ "is" operator
+ "isnt" operator
+ "loop" loop
"new" kw
- "no" lit
+ "no" bool
"not" operator
"null" lit
- "off" lit
- "of" kw
- "on" lit
+ "off" bool
+ "of" operator
+ "on" bool
"or" operator
- "return" kw
+ "return" stmt
"super" kw
- "switch" kw
+ "switch" cond
"then" kw
"this" lit
- "throw" kw
- "true" lit
+ "throw" stmt
+ "true" bool
"try" kw
"typeof" kw
"undefined" lit
- "unless" kw
- "until" kw
+ "unless" cond
+ "until" loop
"when" kw
- "while" kw
+ "while" loop
"yes" lit
- "yield" kw
- "case" forbid
- "default" forbid
+ "yield" stmt
+ "case" label
+ "default" label
"function" forbid
"var" forbid
"void" forbid
@@ -525,7 +556,25 @@ done
:lit Constant
* after_term noeat
+:bool Boolean
+ * after_term noeat
+
+:stmt Statement
+ * idle noeat
+
+:loop Loop
+ * idle noeat
+
+:cond Conditional
+ * idle noeat
+
+:struct Structure
+ * idle noeat
+
:operator Operator
* idle noeat
+:label Label
+ * idle noeat
+
.end
diff --git a/.config/joestar/syntax/comment_todo.jsf b/.config/joestar/syntax/comment_todo.jsf
@@ -1,16 +1,16 @@
# JOE syntax highlight file for highlighting TODO: FIXME: XXX: etc
# by Christian Nicolai (http://mycrobase.de)
-=Comment green
-=CommentLabel bold green
+=Comment
+=TODO +Comment
.subr comment_todo
# initial state
-:comment_todo_init Comment
+:comment_todo_init Comment comment
* comment_todo_guess buffer
# highlight common TODO labels
-:comment_todo_guess Comment
+:comment_todo_guess Comment comment
* comment_todo_unknown noeat strings
"BUG" comment_todo
"FIXME" comment_todo
@@ -21,9 +21,9 @@
done
"A-Z" comment_todo_guess
-:comment_todo_unknown Comment
+:comment_todo_unknown Comment comment
* NULL noeat return
-:comment_todo CommentLabel
+:comment_todo TODO comment
* NULL noeat return
.end
diff --git a/.config/joestar/syntax/conf.jsf b/.config/joestar/syntax/conf.jsf
@@ -1,10 +1,11 @@
# JOE syntax highlight file for typical UNIX configuration files
=Idle
-=Comment green
-=String cyan
-=Escape bold red
-=Backtick blue
+=Comment
+=String +Constant
+=Escape
+=StringEscape +Escape
+=Backtick +Character +Constant +String
:idle Idle
* idle
@@ -17,17 +18,18 @@
:escape Escape
* idle
-:comment Comment
+:comment Comment comment
* comment
"\n" idle
-:string String
+
+:string String string
* string
"\"" idle
"\`" backtick_in_str recolor=-1
"\\" string_escape recolor=-1
-:string_escape Escape
+:string_escape StringEscape string
* string
"\n" string recolor=-2
@@ -41,12 +43,12 @@
"\n" backtick_in_str recolor=-2
-:single String
+:single String string
* single
"'" idle
"\\" single_escape recolor=-1
-:single_escape Escape
+:single_escape StringEscape string
* single
"\n" single recolor=-2
@@ -63,22 +65,22 @@
"\n" backtick recolor=-2
-:string_in_bt String
+:string_in_bt String string
* string_in_bt
"\"" backtick
"\\" string_escape_b recolor=-1
-:string_escape_b Escape
+:string_escape_b StringEscape string
* string_in_bt
"\n" string_in_bt recolor=-2
-:single_in_bt String
+:single_in_bt String string
* single_in_bt
"'" backtick
"\\" single_escape_b recolor=-1
-:single_escape_b Escape
+:single_escape_b StringEscape string
* single_in_bt
"\n" single_in_bt recolor=-2
diff --git a/.config/joestar/syntax/context.jsf b/.config/joestar/syntax/context.jsf
@@ -1,7 +1,7 @@
# Identify title lines for status line context display
=Idle
-=Title cyan
+=Title bold # Doesn't matter, just make it visible
:idle Idle
* title_line buffer noeat recolor=-1
diff --git a/.config/joestar/syntax/csh.jsf b/.config/joestar/syntax/csh.jsf
@@ -6,11 +6,17 @@
# Colors
=Idle
-=Comment green
-=Constant cyan
-=Escape bold cyan
-=Keyword bold
-=Var magenta
+=Ident
+=Comment
+=String +Constant
+=Escape
+=StringEscape +Escape
+=Keyword
+=Variable +DefinedIdent
+=StringVariable +StringEscape
+=Label +DefinedIdent
+=Loop +Statement +Keyword
+=Conditional +Statement +Keyword
# Syntax
@@ -24,116 +30,116 @@
"\`" string_bq recolor=-1
"a-zA-Z{}![" ident buffer
-:comment Comment
+:comment Comment comment
* comment
"\n" idle
:escape Escape
* idle
-:subst Var
+:subst Variable
* idle
"{" subst_brack
"a-zA-Z_" subst_name
"0-9*@?\-$_!" idle
-:subst_name Var
+:subst_name Variable
* idle noeat recolor=-1
"a-zA-Z0-9_" subst_name
-:subst_brack Var
+:subst_brack Variable
* subst_brack
"}" idle
# Simplest case: no quoting allowed
-:string_sq Constant
+:string_sq String string
* string_sq
"\'" idle
# double-quote: quoting, backqoutes and substitution allowed
-:string_dq Constant
+:string_dq String string
* string_dq
"$" string_dq_subst recolor=-1
"\"" idle
"\\" string_dq_esc recolor=-1
"`" string_dq_bq recolor=-1
-:string_dq_subst Var
+:string_dq_subst StringEscape string
* string_dq noeat recolor=-2
"$0-9!_\-?*@" string_dq
"a-zA-Z_" string_dq_subst_name
"{" string_dq_subst_brack
-:string_dq_subst_name Var
+:string_dq_subst_name StringVariable string
* string_dq recolor=-1 noeat
"a-zA-Z0-9_" string_dq_subst_name
-:string_dq_subst_brack Var
+:string_dq_subst_brack StringEscape string
* string_dq_subst_brack
"}" string_dq
-:string_dq_esc Escape
+:string_dq_esc StringEscape string
* string_dq recolor=-2
"$`\"\\" string_dq
"\n" string_dq recolor=-2
-:string_dq_bq Constant
+:string_dq_bq String string
* string_dq_bq
"$" string_dq_bq_subst recolor=-1
"\`" string_dq
"\\" string_dq_bq_esc recolor=-1
-:string_dq_bq_subst Var
+:string_dq_bq_subst StringEscape string
* string_dq_bq noeat recolor=-2
"$0-9!_\-?*@" string_dq_bq
"a-zA-Z_" string_dq_bq_subst_name
"{" string_dq_bq_subst_brack
-:string_dq_bq_subst_name Var
+:string_dq_bq_subst_name StringVariable string
* string_dq_bq recolor=-1 noeat
"a-zA-Z0-9_" string_dq_bq_subst_name
-:string_dq_bq_subst_brack Var
+:string_dq_bq_subst_brack StringEscape string
* string_dq_bq_subst_brack
"}" string_dq_bq
-:string_dq_bq_esc Escape
+:string_dq_bq_esc StringEscape string
* string_dq_bq recolor=-2
"$`\"\\" string_dq_bq
"\n" string_dq_bq recolor=-2
# backquote
-:string_bq Constant
+:string_bq String string
* string_bq
"$" string_bq_subst recolor=-1
"\`" idle
"\\" string_bq_esc recolor=-1
# escape in backquote
-:string_bq_esc Escape
+:string_bq_esc StringEscape string
* string_bq recolor=-2
"$`\"\\" string_bq
"\n" string_bq recolor=-2
# Substitution in a backquote
-:string_bq_subst Var
+:string_bq_subst StringEscape string
* string_bq noeat recolor=-2
"$0-9!_\-?*@" string_bq
"a-zA-Z_" string_bq_subst_name
"{" string_bq_subst_brack
-:string_bq_subst_name Var
+:string_bq_subst_name StringVariable string
* string_bq recolor=-1 noeat
"a-zA-Z0-9_" string_bq_subst_name
-:string_bq_subst_brack Var
+:string_bq_subst_brack StringEscape string
* string_bq_subst_brack
"}" string_bq
-:ident Idle
+:ident Ident
* idle noeat strings
"!" kw
"{" kw
@@ -144,29 +150,29 @@
"alloc" kw
"bg" kw
"bindkey" kw
- "break" kw
+ "break" loop
"breaksw" kw
"builtins" kw
"bye" kw
- "case" kw
+ "case" label
"cd" kw
"chdir" kw
"complete" kw
- "continue" kw
- "default" kw
+ "continue" loop
+ "default" label
"dirs" kw
"echo" kw
"echotc" kw
- "else" kw
+ "else" cond
"end" kw
- "endif" kw
+ "endif" cond
"endsw" kw
"eval" kw
"exec" kw
"exit" kw
"fg" kw
"filetest" kw
- "foreach" kw
+ "foreach" loop
"getspath" kw
"getxvers" kw
"glob" kw
@@ -174,7 +180,7 @@
"hashstat" kw
"history" kw
"hup" kw
- "if" kw
+ "if" cond
"inlib" kw
"jobs" kw
"kill" kw
@@ -207,8 +213,8 @@
"source" kw
"stop" kw
"suspend" kw
- "switch" kw
- "case" kw
+ "switch" cond
+ "case" label
"telltc" kw
"time" kw
"umask" kw
@@ -225,9 +231,18 @@
"watchdog" kw
"where" kw
"which" kw
- "while" kw
+ "while" loop
done
"a-zA-Z0-9\-" ident
:kw Keyword
* idle noeat
+
+:cond Conditional
+ * idle noeat
+
+:loop Loop
+ * idle noeat
+
+:label Label
+ * idle noeat
diff --git a/.config/joestar/syntax/csharp.jsf b/.config/joestar/syntax/csharp.jsf
@@ -2,16 +2,33 @@
# Based on Java highlighter
=Idle
-=Preproc yellow
-=Comment green
-=DocComment bold blue
-=Constant cyan
-=Escape bold cyan
-=Type bold blue
-=Keyword blue
-=Operator blue
-=Bad bold red
-=Brace magenta
+=Ident
+=Preproc
+=Precondit +Preproc
+=Define +Preproc
+=DefinedIdent +Ident
+=Comment
+=DocComment +Comment
+=Constant
+=String +Constant
+=Character +Constant +String
+=Number +Constant
+=Boolean +Constant
+=Escape
+=StringEscape +Escape
+=CharacterEscape +Escape
+=Type
+=Structure +Keyword
+=StorageClass +Type +Keyword
+=Modifier +StorageClass
+=Keyword
+=Operator +Keyword
+=Statement +Keyword
+=Loop +Statement
+=Conditional +Statement
+=Label +DefinedIdent
+=Bad
+=Brace
=Control
:begin Idle
@@ -25,7 +42,7 @@
:first Idle
* idle noeat
- "#" pre recolor=-1
+ "#" pre mark
:pre Preproc
* pre noeat
@@ -34,18 +51,18 @@
"\n" reset
:preident Preproc
- * preunknown strings
- "if" prebody
- "else" prebody
- "elif" prebody
- "endif" prebody
- "region" preregion
- "endregion" preregion
- "define" predefine
- "undef" predefine
- "warning" preregion
- "error" preregion
- "line" prebody
+ * preunknown markend recolormark strings
+ "if" precondit markend recolormark
+ "else" precondit markend recolormark
+ "elif" precondit markend recolormark
+ "endif" precondit markend recolormark
+ "region" preregion markend recolormark
+ "endregion" preregion markend recolormark
+ "define" predefine markend recolormark
+ "undef" predefine markend recolormark
+ "warning" preregion markend recolormark
+ "error" preregion markend recolormark
+ "line" prebody markend recolormark
done
"a-z" preident
@@ -53,20 +70,24 @@ done
* prebody
"\n" reset
+:precondit Precondit
+ * precondit
+ "\n" reset
+
:preregion Preproc
* preregion_text
"\n" reset
-:preregion_text Constant
+:preregion_text Comment
* preregion_text
"\n" reset
-:predefine Preproc
+:predefine Define
* predefine_text noeat
" \t" predefine
"\n" reset
-:predefine_text Constant
+:predefine_text DefinedIdent
* predefine_text
" \t" predefine_value
"\n" reset
@@ -103,16 +124,16 @@ done
:control Control
* idle noeat
-:forcedliteral Idle
+:forcedliteral Ident
* idle noeat
"\i" ident recolor=-2
"\"" forcedstring recolor=-2
-:forcedstring Constant
+:forcedstring String string
* forcedstring
"\"" forcedstringquot
-:forcedstringquot Constant
+:forcedstringquot String string
* idle noeat
"\"" forcedstring # @"This -> "" <- is a literal quote"
@@ -123,6 +144,7 @@ done
:comment Comment
* comment
+ "BFHNTX" comment noeat call=comment_todo.comment_todo()
"*" maybe_end_comment
:maybe_end_comment Comment
@@ -136,13 +158,15 @@ done
:line_comment Comment
* line_comment
+ "BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" reset
:doc_comment DocComment
* doc_comment
+ "BFHNTX" doc_comment noeat call=comment_todo.comment_todo()
"\n" reset
-:first_digit Constant
+:first_digit Number
* idle noeat
"xX" hex
"." float
@@ -154,46 +178,46 @@ done
* idle noeat
"0-9" bad_number
-:octal Constant
+:octal Number
* idle noeat
"0-7" octal
"89" bad_number recolor=-1
-:hex Constant
+:hex Number
* idle noeat
"0-9A-Fa-f" hex
-:decimal Constant
+:decimal Number
* idle noeat
"0-9" decimal
"eE" epart
"." float
-:maybe_float Constant
+:maybe_float Number
* idle recolor=-2 noeat
"0-9" float recolor=-2
-:float Constant
+:float Number
* idle noeat
"eE" epart
"0-9" float
-:epart Constant
+:epart Number
* idle noeat
"0-9+\-" enum
-:enum Constant
+:enum Number
* idle noeat
"0-9" enum
-:string Constant
+:string String string
* string
"\"" idle
"\\" string_escape recolor=-1
"{" maybe_string_control recolor=-1
"}" maybe_control_end recolor=-1
-:string_escape Escape
+:string_escape StringEscape string
* string
"xu" string_hex_4 # Yes, \x has up to 4 numbers in C#
"U" string_hex_8
@@ -203,174 +227,174 @@ done
# Eight all-purpose (hex/unicode short/unicode long) states for hexadecimal
# escape sequences
-:string_hex_8 Escape
+:string_hex_8 StringEscape string
* string noeat
"0-9a-fA-F" string_hex_7
-:string_hex_7 Escape
+:string_hex_7 StringEscape string
* string noeat
"0-9a-fA-F" string_hex_6
-:string_hex_6 Escape
+:string_hex_6 StringEscape string
* string noeat
"0-9a-fA-F" string_hex_5
-:string_hex_5 Escape
+:string_hex_5 StringEscape string
* string noeat
"0-9a-fA-F" string_hex_4
-:string_hex_4 Escape
+:string_hex_4 StringEscape string
* string noeat
"0-9a-fA-F" string_hex_3
-:string_hex_3 Escape
+:string_hex_3 StringEscape string
* string noeat
"0-9a-fA-F" string_hex_2
-:string_hex_2 Escape
+:string_hex_2 StringEscape string
* string noeat
"0-9a-fA-F" string_hex_1
-:string_hex_1 Escape
+:string_hex_1 StringEscape string
* string noeat
"0-9a-fA-F" string
-:string_octal2 Escape
+:string_octal2 StringEscape string
* string noeat
"0-7" string_octal3
-:string_octal3 Escape
+:string_octal3 StringEscape string
* string noeat
"0-7" string
-:maybe_string_control Escape
+:maybe_string_control StringEscape string
* string noeat recolor=-2
"0-9" string_control
"{" string
-:string_control Escape
+:string_control StringEscape string
* string_control
"\"" string noeat
"}" string
-:maybe_control_end Escape
+:maybe_control_end StringEscape string
* string noeat recolor=-2
"}" string
-:char Constant
+:char Character string
* char
"\n" reset
"'" idle
"\\" char_escape recolor=-1
-:char_escape Escape
+:char_escape CharacterEscape string
* char
"xu" char_hex4
"U" char_hex8
"0-7" char_octal2
"\n" char recolor=-2
-:char_hex8 Escape
+:char_hex8 CharacterEscape string
* char noeat
"0-9a-fA-F" char_hex7
-:char_hex7 Escape
+:char_hex7 CharacterEscape string
* char noeat
"0-9a-fA-F" char_hex6
-:char_hex6 Escape
+:char_hex6 CharacterEscape string
* char noeat
"0-9a-fA-F" char_hex5
-:char_hex5 Escape
+:char_hex5 CharacterEscape string
* char noeat
"0-9a-fA-F" char_hex4
-:char_hex4 Escape
+:char_hex4 CharacterEscape string
* char noeat
"0-9a-fA-F" char_hex3
-:char_hex3 Escape
+:char_hex3 CharacterEscape string
* char noeat
"0-9a-fA-F" char_hex2
-:char_hex2 Escape
+:char_hex2 CharacterEscape string
* char noeat
"0-9a-fA-F" char_hex1
-:char_hex1 Escape
+:char_hex1 CharacterEscape string
* char noeat
"0-9a-fA-F" char
-:char_octal2 Escape
+:char_octal2 CharacterEscape string
* char noeat
"0-7" char_octal3
-:char_octal3 Escape
+:char_octal3 CharacterEscape string
* char noeat
"0-7" char
-:ident Idle # http://msdn.microsoft.com/en-us/library/x53a06bb.aspx
+:ident Ident # http://msdn.microsoft.com/en-us/library/x53a06bb.aspx
* idle noeat strings
- "abstract" kw
+ "abstract" modifier
"as" operator
"base" kw
- "break" kw
- "case" kw
- "catch" kw
+ "break" loop
+ "case" label
+ "catch" stmt
"checked" operator
- "class" kw
- "const" kw
- "continue" kw
- "default" kw
+ "class" struct
+ "const" storage
+ "continue" loop
+ "default" label
"delegate" kw
- "do" kw
- "else" kw
- "enum" kw
+ "do" loop
+ "else" cond
+ "enum" struct
"event" kw
"explicit" kw
- "extern" kw
- "finally" kw
+ "extern" modifier
+ "finally" stmt
"fixed" kw
- "for" kw
- "foreach" kw
- "goto" kw
- "if" kw
+ "for" loop
+ "foreach" loop
+ "goto" loop
+ "if" cond
"implicit" kw
"in" operator
- "interface" kw
- "internal" kw
- "is" kw
- "lock" kw
+ "interface" struct
+ "internal" modifier
+ "is" operator
+ "lock" stmt
"nameof" kw
- "namespace" kw
+ "namespace" struct
"new" operator
"operator" kw
- "out" kw
- "override" kw
+ "out" storage
+ "override" storage
"params" kw
- "private" kw
- "protected" kw
- "public" kw
- "readonly" kw
- "ref" kw
- "return" kw
- "sealed" kw
+ "private" modifier
+ "protected" modifier
+ "public" modifier
+ "readonly" modifier
+ "ref" storage
+ "return" stmt
+ "sealed" modifier
"sizeof" operator
- "stackalloc" kw
- "static" kw
- "struct" kw
- "switch" kw
+ "stackalloc" storage
+ "static" modifier
+ "struct" struct
+ "switch" cond
"this" kw
- "throw" kw
- "try" kw
+ "throw" stmt
+ "try" stmt
"typeof" operator
"unchecked" operator
"unsafe" kw
- "using" kw
- "virtual" kw
- "volatile" kw
- "while" kw
+ "using" stmt
+ "virtual" modifier
+ "volatile" modifier
+ "while" loop
# Types
@@ -393,6 +417,7 @@ done
"Int32" type
"int64" type
"Int64" type
+ "IntPtr" type
"long" type
"object" type
"Object" type
@@ -439,8 +464,8 @@ done
# Literals
- "true" lit
- "false" lit
+ "true" bool
+ "false" bool
"null" lit
done
"\c" ident
@@ -451,6 +476,27 @@ done
:kw Keyword
* idle noeat
+:stmt Statement
+ * idle noeat
+
+:cond Conditional
+ * idle noeat
+
+:loop Loop
+ * idle noeat
+
+:struct Structure
+ * idle noeat
+
+:storage StorageClass
+ * idle noeat
+
+:modifier Modifier
+ * idle noeat
+
+:bool Boolean
+ * idle noeat
+
:lit Constant
* idle noeat
diff --git a/.config/joestar/syntax/css.jsf b/.config/joestar/syntax/css.jsf
@@ -4,19 +4,20 @@
# Define colors
=Idle
-=Comment green
-=Constant cyan
-=Escape bold cyan
-=Keyword bold
-=Bad bold red
-
-=Class yellow
-=Id red
-=Tag magenta
-=HTML
+=Comment
+=Constant
+=Number +Constant
+=Escape
+=Keyword
+=Bad
+
+=Class +Type
+=Id +String +DefinedIdent
+=Tag
+=HTML # TODO: Get back to this when going over html, xml, php, ant, etc
# from html.jsf to support <?php?>
-=TagEdge green
+=TagEdge
:begin Idle
* begin noeat call=.css()
@@ -54,11 +55,11 @@
* reset noeat
"*" comment recolor=-2
-:comment Comment
+:comment Comment comment
* comment
"*" maybe_end_comment
-:maybe_end_comment Comment
+:maybe_end_comment Comment comment
* comment
"/" reset
"*" maybe_end_comment
@@ -113,11 +114,11 @@
* style_block recolor=-1
"*" style_comment recolor=-2
-:style_comment Comment
+:style_comment Comment comment
* style_comment
"*" maybe_end_style_comment
-:maybe_end_style_comment Comment
+:maybe_end_style_comment Comment comment
* comment
"/" style_block
"*" maybe_end_style_comment
@@ -142,22 +143,22 @@
* style_value noeat
"0-9a-fA-F" color
-:decimal Constant
+:decimal Number
* style_value noeat
"0-9" decimal
"." float
"a-zA-Z%" decimal_unit
-:maybe_float Constant
+:maybe_float Number
* style_value noeat recolor=-2
"0-9" float recolor=-2
-:float Constant
+:float Number
* style_value noeat
"0-9" float
"a-zA-Z%" decimal_unit
-:decimal_unit Constant
+:decimal_unit Number
* style_value noeat
"a-zA-Z" decimal_unit
diff --git a/.config/joestar/syntax/d.jsf b/.config/joestar/syntax/d.jsf
@@ -1,15 +1,26 @@
# JOE syntax highlight file for D
=Idle
-=Comment green
-=Constant cyan
-=Escape bold cyan
-=Type bold
-=Keyword bold
-=Operator bold
-=Bad bold red
-=Brace magenta
-=Control
+=Ident
+=Comment
+=Constant
+=String +Constant
+=Number +Constant
+=Boolean +Constant
+=Character +String
+=Escape
+=StringEscape +Escape
+=CharacterEscape +StringEscape
+=Type
+=Keyword
+=Operator +Keyword
+=Statement +Keyword
+=Conditional +Statement
+=Loop +Statement
+=Label +DefinedIdent
+=Bad
+=Brace
+=Control
=Methods
@@ -76,47 +87,47 @@
"+" idle recolor=-2 call=.block_comment()
"/" line_comment recolor=-2
-:comment Comment
+:comment Comment comment
* comment
# might be TODO label
"BFHNTX" comment noeat call=comment_todo.comment_todo()
"*" maybe_end_comment
-:maybe_end_comment Comment
+:maybe_end_comment Comment comment
* comment noeat
"/" idle
"*" maybe_end_comment
-:line_comment Comment
+:line_comment Comment comment
* line_comment
# might be TODO label
"BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" idle
-:int_postfix Constant
+:int_postfix Number
* idle noeat
"uU" int_postfix_1
"L" int_postfix_2
-:int_postfix_1 Constant
+:int_postfix_1 Number
* idle noeat
"L" idle
-:int_postfix_2 Constant
+:int_postfix_2 Number
* idle noeat
"uU" idle
-:float_postfix Constant
+:float_postfix Number
* idle noeat
"fF" float_postfix_1
"L" float_postfix_1
"i" idle
-:float_postfix_1 Constant
+:float_postfix_1 Number
* idle noeat
"i" idle
-:first_digit Constant
+:first_digit Number
* int_postfix noeat
"xX" hex
"bB" bin
@@ -128,37 +139,37 @@
* idle noeat
"0-9" bad_number
-:octal Constant
+:octal Number
* int_postfix noeat
"0-7_" octal
"89" bad_number recolor=-1
-:hex Constant
+:hex Number
* int_postfix noeat
"0-9A-Fa-f_" hex
"." hexfloat
"pP" ppart
-:hexfloat Constant
+:hexfloat Number
* float_postfix noeat
"0-9A-Fa-f_" hexfloat
"pP" ppart
-:ppart Constant
+:ppart Number
* float_postfix noeat
"0-9+\-" pnum
-:pnum Constant
+:pnum Number
* float_postfix noeat
"0-9_" pnum
-:decimal Constant
+:decimal Number
* int_postfix noeat
"0-9_" decimal
"eE" epart
"." float
-:maybe_float Constant
+:maybe_float Number
* idle recolor=-2 noeat
"\i" not_ident recolor=-2
"0-9" float recolor=-2
@@ -167,16 +178,16 @@
* idle noeat
"\c" not_ident
-:float Constant
+:float Number
* float_postfix noeat
"eE" epart
"0-9_" float
-:epart Constant
+:epart Number
* idle noeat
"0-9+\-" enum
-:enum Constant
+:enum Number
* float_postfix noeat
"0-9_" enum
@@ -185,11 +196,11 @@
"{" brace call=.d(squiggly)
"\"" qdstring recolor=-2
-:qdstring Constant
+:qdstring String string
* qstring save_c
"\i" qdelim buffer
-:qdelim Constant
+:qdelim String string
* qdelim_bad noeat save_s
"\c" qdelim
"\n" skipline noeat save_s
@@ -198,18 +209,18 @@
* qdelim_bad
"\n" skipline noeat
-:skipline Constant
+:skipline String string
* skipline
"\n" next_line
-:todelim Constant
+:todelim String string
* todelim
"\n" next_line
"\"" next_line strings
"&" founddelim
done
-:founddelim Constant
+:founddelim String string
* idle noeat
"\"" bad_line
@@ -218,15 +229,15 @@ done
"\n" idle
# eat \n so it's not in string.
-:next_line Constant
+:next_line String string
* todelim buffer
"\n" next_line
-:qstring Constant
+:qstring String string
* qstring
& qstring_1
-:qstring_1 Constant
+:qstring_1 String string
* qstring noeat
"\"" string_postfix
@@ -234,7 +245,7 @@ done
* ident noeat
"\"" xstring recolor=-2
-:xstring Constant
+:xstring String string
* bad_xstring recolor=-1
" \t\r\n\f0-9A-Fa-f" xstring
"\"" string_postfix
@@ -246,25 +257,25 @@ done
* ident noeat
"\"" rstring recolor=-2
-:rstring Constant
+:rstring String string
* rstring
"\"" string_postfix
-:bstring Constant
+:bstring String string
* bstring
"`" string_postfix
-:string Constant
+:string String string
* string
"\"" string_postfix
"\\" string_escape recolor=-1
"%" string_control recolor=-1
-:string_postfix Constant
+:string_postfix String string
* idle noeat
"cwd" idle
-:string_escape Escape
+:string_escape StringEscape string
* string
"U" string_hex8
"u" string_hex4
@@ -272,109 +283,109 @@ done
"0-7" string_octal2
"\n" string recolor=-2
-:string_hex8 Escape
+:string_hex8 StringEscape string
* string noeat
"0-9a-fA-F" string_hex7
-:string_hex7 Escape
+:string_hex7 StringEscape string
* string noeat
"0-9a-fA-F" string_hex6
-:string_hex6 Escape
+:string_hex6 StringEscape string
* string noeat
"0-9a-fA-F" string_hex5
-:string_hex5 Escape
+:string_hex5 StringEscape string
* string noeat
"0-9a-fA-F" string_hex4
-:string_hex4 Escape
+:string_hex4 StringEscape string
* string noeat
"0-9a-fA-F" string_hex3
-:string_hex3 Escape
+:string_hex3 StringEscape string
* string noeat
"0-9a-fA-F" string_hex2
-:string_hex2 Escape
+:string_hex2 StringEscape string
* string noeat
"0-9a-fA-F" string_hex1
-:string_hex1 Escape
+:string_hex1 StringEscape string
* string noeat
"0-9a-fA-F" string
-:string_octal2 Escape
+:string_octal2 StringEscape string
* string noeat
"0-7" string_octal1
-:string_octal1 Escape
+:string_octal1 StringEscape string
* string noeat
"0-7" string
-:string_control Escape
+:string_control StringEscape string
* string_control
"\n" idle
"\"" string noeat
"diouxXeEfFgGaAcspn%SCM" string
-:char Constant
+:char Character string
* char_done
"'" idle
"\\" char_escape recolor=-1
-:char_done Constant
+:char_done Character string
* idle noeat recolor=-3
"\'" idle
-:char_escape Escape
+:char_escape CharacterEscape string
* char_done
"U" char_hex8
"u" char_hex4
"x" char_hex2
"0-7" char_octal2
-:char_hex8 Escape
+:char_hex8 CharacterEscape string
* char_done noeat
"0-9a-fA-F" char_hex7
-:char_hex7 Escape
+:char_hex7 CharacterEscape string
* char_done noeat
"0-9a-fA-F" char_hex6
-:char_hex6 Escape
+:char_hex6 CharacterEscape string
* char_done noeat
"0-9a-fA-F" char_hex5
-:char_hex5 Escape
+:char_hex5 CharacterEscape string
* char_done noeat
"0-9a-fA-F" char_hex4
-:char_hex4 Escape
+:char_hex4 CharacterEscape string
* char_done noeat
"0-9a-fA-F" char_hex3
-:char_hex3 Escape
+:char_hex3 CharacterEscape string
* char_done noeat
"0-9a-fA-F" char_hex2
-:char_hex2 Escape
+:char_hex2 CharacterEscape string
* char_done noeat
"0-9a-fA-F" char_hex1
-:char_hex1 Escape
+:char_hex1 CharacterEscape string
* char_done noeat
"0-9a-fA-F" char_done
-:char_octal2 Escape
+:char_octal2 CharacterEscape string
* char_done noeat
"0-7" char_octal1
-:char_octal1 Escape
+:char_octal1 CharacterEscape string
* char_done noeat
"0-7" char_done
-:ident Idle
+:ident Ident
* ident_end noeat recolormark strings
"abstract" kw
"alias" kw
@@ -499,9 +510,21 @@ done
:bad_kw Bad
* idle noeat
+:bool Boolean
+ * idle noeat
+
:lit Constant
* idle noeat
+:loop Loop
+ * idle noeat
+
+:cond Conditional
+ * idle noeat
+
+:stmt Statement
+ * idle noeat
+
:operator Operator
* idle noeat
@@ -519,18 +542,18 @@ done
.subr block_comment
-:idle Comment
+:idle Comment comment
* idle
# might be TODO label
"BFHNTX" idle noeat call=comment_todo.comment_todo()
"+" maybe_done
"/" maybe_recur
-:maybe_done Comment
+:maybe_done Comment comment
* idle noeat
"/" idle return
-:maybe_recur Comment
+:maybe_recur Comment comment
* idle noeat
"+" idle call=.block_comment()
diff --git a/.config/joestar/syntax/debian.jsf b/.config/joestar/syntax/debian.jsf
@@ -2,15 +2,15 @@
# by Christian Nicolai (http://mycrobase.de)
=Idle
-=Comment green
-=Keyword bold
-=Bad bold red
+=Comment
+=Keyword
+=Bad
-=URL cyan
+=URL +Constant
-=SpacyURL bold cyan
-=Distribution red
-=Component magenta
+=SpacyURL +String +Constant
+=Distribution +Preproc
+=Component +DefinedIdent
:line_start Idle
* line_rest noeat
@@ -21,7 +21,7 @@
* line_rest
"\n" line_start
-:line_comment Comment
+:line_comment Comment comment
* line_comment
"\n" line_start
diff --git a/.config/joestar/syntax/diff.jsf b/.config/joestar/syntax/diff.jsf
@@ -1,5 +1,9 @@
# JOE syntax highlight file for diff/patch files
#
+# 2017-02-03 :
+#
+# Rework color definitions for color schemes
+#
# 2007-05-11 :
#
# This file is just udiff.jsf, ndiff.jsf and cdiff.jsf merged together
@@ -10,20 +14,21 @@
# completely. If you want that, you need to edit ftyperc accordingly.
#
# Dirk Schenkewitz <Dirk.Schenkewitz (AT) gmx.de>
-#
-
# Color definitions
=Idle
-=Garbage dim white
-=DiffCmd blue
-=FileOld bold red
-=FileNew bold green
-=HunkHead bold blue
-=HunkMid bold blue
-=DelLine red
-=AddLine green
-=ChgLine magenta
+=Garbage +Comment
+=DiffCmd +Statement
+=File +Type
+=FileOld +File
+=FileNew +File
+=Hunk +File
+=HunkHead +Hunk
+=HunkMid +Hunk
+# Inheritances here are admittedly bizarre
+=DelLine +Escape
+=AddLine +DefinedIdent
+=ChgLine +Preproc
=CtxLine
diff --git a/.config/joestar/syntax/dockerfile.jsf b/.config/joestar/syntax/dockerfile.jsf
@@ -1,13 +1,15 @@
# Barebones Dockerfile syntax for JOE. Doesn't handle more sophisticated sh syntax.
=Idle
-=Command bold
-=Comment green
-=Constant cyan
-=Ident cyan
-=Escape magenta
-=Keyword bold
-=Var bold cyan
+=Command +Statement +Keyword
+=Comment
+=Constant
+=String +Constant
+=Ident
+=Escape
+=Brace
+=StringEscape +Escape
+=Variable +DefinedIdent
# Start of line is special
:start Idle
@@ -18,12 +20,13 @@
"\n" start
# Comments between commands
-:comment Comment
+:comment Comment comment
* comment
+ "BFHNTX" comment noeat call=comment_todo.comment_todo()
"\n" start
# Comments in the middle of a command
-:comment_idle Comment
+:comment_idle Comment comment
* comment_idle
"\n" idle
@@ -75,7 +78,7 @@ done
:string_command Command
* string_command_data
-:string_command_data Ident
+:string_command_data Constant
* string_command_data
"$" string_command_data recolor=-1 call=.variable()
"\n" start
@@ -84,7 +87,7 @@ done
:from Command
* from_image noeat
-:from_image Ident
+:from_image Constant
* from_image
":@" from_tag noeat
"\n" start
@@ -109,7 +112,7 @@ done
:comma Idle
* array noeat
-:bracket Escape
+:bracket Brace
"]" idle
"[" array
@@ -118,28 +121,28 @@ done
* label_key
"\n" start
-:label_key Ident
+:label_key Variable
* label_key
"=" label_value noeat
"\n" start
-:label_value Idle
+:label_value Constant
* label_value
"\"" label_value recolor=-1 call=.string() save_c
"\n" start
.subr variable
-:variable Var
+:variable Variable
* variable recolor=-2 return noeat
"A-Za-z_" variable_name
"{" variable_long
-:variable_name Var
+:variable_name Variable
* variable_name return noeat
"A-Za-z0-9_" variable_name
-:variable_long Var
+:variable_long Variable
* variable_long
& variable return noeat
"\n" variable return noeat
@@ -155,14 +158,14 @@ done
.subr string
-:string Constant
+:string String string
* string
& string return
"\n" string return noeat
"\\" string_escape recolor=-1
"$" string recolor=-1 call=.variable()
-:string_escape Escape
+:string_escape StringEscape string
* string
.end
diff --git a/.config/joestar/syntax/elixir.jsf b/.config/joestar/syntax/elixir.jsf
@@ -12,26 +12,35 @@
# - distinct docstrings and module attributes
=Idle
-=Comment green
-=Keyword bold
-=Bif #fg_501
-=String cyan
-=Extrapolation cyan bold
-=Atom red
-=Attribute #fg_505
-=ModAttr yellow #fg_141
-=Brace magenta #fg_440
-=Brack magenta #fg_311
-=Int cyan
-=Def
-=ModDef blue bold
-=Underscore blue #fg_310 #brown
+=Ident
+=Comment
+=Keyword
+=Statement +Keyword
+=Conditional +Statement
+=Type
+=DefinedIdent +Ident
+=DefinedType +DefinedIdent
+=DefinedFunction +DefinedIdent
+=Operator +Keyword
+=Constant
+=Boolean +Constant
+=Number +Constant
+=String +Constant
+=StringEscape +Escape
+=StringVariable +StringEscape
+=Atom +Constant +DefinedIdent
+=Attribute +Define +Preproc
+=Brace +Escape
+=Bracket +Brace
+=Underscore +Keyword
+=ModAttr +Atom # key in %{key: value}
:idle Idle
* idle
"#" line_comment noeat
- "a-zA-Z" ident noeat
+ "A-Z" type recolor=-1
+ "a-z" ident noeat
"_" underscore recolor=-1
"'" single_quoted recolor=-1
"\"" double_quoted recolor=-1
@@ -45,24 +54,25 @@
"<" maybe_larrow recolor=-1
"0-9" decimal recolor=-1
-:line_comment Comment
+:line_comment Comment comment
* line_comment
+ "BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" idle
-:single_quoted String
+:single_quoted String string
* single_quoted
"'" idle
-:double_quoted String
+:double_quoted String string
* double_quoted
"#" maybe_extrapolation
"\"" idle
-:maybe_extrapolation String
+:maybe_extrapolation String string
* double_quoted noeat
"{" extrapolation recolor=-2
-:extrapolation Extrapolation
+:extrapolation StringVariable string
* extrapolation
"}" double_quoted
"\"" double_quoted noeat
@@ -81,23 +91,23 @@
" " maybe_edoc
"\"" string_dq_1 recolor=-1
-:string_dq_1 String
+:string_dq_1 String string
* double_quoted recolor=-1
"\"" string_dq_2
-:string_dq_2 Comment
+:string_dq_2 Comment comment
* idle
"\"" docstr_dq recolor=-3
-:docstr_dq Comment
+:docstr_dq Comment comment
* docstr_dq
"\"" docstr_dq_1
-:docstr_dq_1 Comment
+:docstr_dq_1 Comment comment
* docstr_dq
"\"" docstr_dq_2
-:docstr_dq_2 Comment
+:docstr_dq_2 Comment comment
* docstr_dq
"\"" idle
@@ -106,7 +116,7 @@
:brace Brace
* idle noeat
-:brack Brack
+:brack Bracket
* idle noeat
:maybe_larrow Idle
@@ -117,14 +127,14 @@
">" arrow recolor=-2
* idle noeat
-:arrow Keyword
+:arrow Operator
* idle noeat
:maybe_pipe Idle
* idle
">" pipe recolor=-2
-:pipe Keyword
+:pipe Operator
* idle noeat
:maybe_opt Idle
@@ -134,12 +144,12 @@
:opt Keyword
* idle noeat
-:decimal Int
+:decimal Number
* idle noeat
"0-9_" decimal
"." float
-:float Int
+:float Number
* idle noeat
"0-9" float
@@ -151,13 +161,17 @@
"a-zA-Z0-9?_" underscore
-:ident Idle
+:type Type
+ "a-zA-Z0-9_" type
+ * idle noeat
+
+:ident Ident
* ident1 noeat buffer mark
-:ident1 Idle
+:ident1 Ident
* idle noeat strings
- "def" start_def
- "defp" start_def
+ "def" start_func_def
+ "defp" start_func_def
"defmodule" start_mod_def
"defprotocol" start_def
"defmacro" start_def
@@ -172,81 +186,17 @@
"test" start_def
"use" start_mod_def
"alias" start_mod_def
- "end" kw
+ "end" stmt
"do" kw
- "if" kw
- "else" kw
- "unless" kw
- "case" kw
- "cond" kw
- "true" kw
- "false" kw
+ "for" loop
+ "if" cond
+ "else" cond
+ "unless" cond
+ "case" cond
+ "cond" cond
+ "true" bool
+ "false" bool
"fn" kw
- "Agent" bif
- "Application" bif
- "Atom" bif
- "Base" bif
- "Behaviour" bif
- "Bitwise" bif
- "Builtin" bif
- "Code" bif
- "Dict" bif
- "EEx" bif
- "Elixir" bif
- "Enum" bif
- "ExUnit" bif
- "Exception" bif
- "File" bif
- "File.Stat" bif
- "File.Stream" bif
- "Float" bif
- "Function" bif
- "GenEvent" bif
- "GenServer" bif
- "GenTCP" bif
- "HashDict" bif
- "HashSet" bif
- "IO" bif
- "IO.ANSI" bif
- "IO.Stream" bif
- "Inspect.Algebra" bif
- "Inspect.Opts" bif
- "Integer" bif
- "Kernel" bif
- "Kernel.ParallelCompiler" bif
- "Kernel.ParallelRequire" bif
- "Kernel.SpecialForms" bif
- "Kernel.Typespec" bif
- "Keyword" bif
- "List" bif
- "Macro" bif
- "Macro.Env" bif
- "Map" bif
- "Math" bif
- "Module" bif
- "Node" bif
- "OptionParser" bif
- "OrdDict" bif
- "Path" bif
- "Port" bif
- "Process" bif
- "Protocol" bif
- "Range" bif
- "Record" bif
- "Regex" bif
- "Set" bif
- "Stream" bif
- "String" bif
- "StringIO" bif
- "Supervisor" bif
- "Supervisor.Spec" bif
- "System" bif
- "Task" bif
- "Task.Supervisor" bif
- "Tuple" bif
- "URI" bif
- "UnboundMethod" bif
- "Version" bif
done
"a-zA-Z_0-9" ident1
":" attr noeat recolormark
@@ -256,21 +206,34 @@ done
:kw Keyword
* idle noeat
-
-:bif Bif
+
+:stmt Statement
* idle noeat
-
-:start_def Keyword
- * def
-
-:def Def
+
+:cond Conditional
+ * idle noeat
+
+:bool Boolean
+ * idle noeat
+
+:start_def Statement
* def
- " (" idle recolor=-1
-:start_mod_def Keyword
+:start_mod_def Statement
* moddef
+
+:start_func_def Statement
+ * funcdef
+
+:def DefinedIdent
+ * def
+ " (" idle noeat
+
+:funcdef DefinedFunction
+ * funcdef
+ " (" idle noeat
-:moddef ModDef
+:moddef DefinedType
* moddef
- " " idle recolor=-1
+ " " idle noeat
"\n" idle
diff --git a/.config/joestar/syntax/erb.jsf b/.config/joestar/syntax/erb.jsf
@@ -2,11 +2,10 @@
# by Christian Nicolai (http://mycrobase.de)
=Idle
-=Keyword bold
-=Bad bold red
-=Brace magenta
-
-=ERB yellow
+=Keyword
+=Bad
+=Brace
+=ERB +Escape
:content Idle
* content
diff --git a/.config/joestar/syntax/erlang.jsf b/.config/joestar/syntax/erlang.jsf
@@ -8,25 +8,30 @@
=Idle
-=Comment green
-=String cyan #fg_110
-=String_mod cyan bold #fg_200 bold
-=String_esc cyan bold #fg_000 bold
-=Int cyan #fg_033
-=Record blue #fg_530
-=Recatt
-=Fun
-=Module #fg_101
-=Keyword bold
-=Guard #fg_200
-=Bif #fg_501
-=Type bold #fg_141
-=Brace magenta #fg_440
-=Brack magenta #fg_311
-=Macro #fg_330
-=Variable yellow #fg_310
-=Attribute red #fg_505
-=Char cyan #fg_330 bold
+=Ident
+=Comment
+=Constant
+=String +Constant
+=String_mod +StringEscape
+=String_esc +StringEscape
+=Number +Constant
+=Keyword
+=Operator +Keyword
+=Type
+=Module +Type
+=Brace +Control
+=Bracket +Control
+=Character +String +Constant
+=CharacterEscape +StringEscape +Character
+=Attribute +Preproc
+=Variable #+DefinedIdent +Ident ??
+=Record +Include +Preproc
+=Macro +Define
+=Guard +Conditional +Statement +Bif
+=Bif +DefinedFunction
+=Fun +Ident
+=Recatt
+
:idle Idle
* idle
@@ -62,19 +67,20 @@ done
:macro Macro
* idle noeat
-:char Char
+:char Character string
* idle
"\\" charesc
-:charesc Char
+:charesc Character string
* idle
-:line_comment Comment
+:line_comment Comment comment
* line_comment
"@" is_edoc noeat buffer
+ "BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" idle
-:is_edoc Comment
+:is_edoc Comment comment
* line_comment noeat strings
"@clear" edoc
"@docfile" edoc
@@ -127,62 +133,62 @@ done
"#" record
# STRINGS
-:string String
+:string String string
* string
"\\" string_escape recolor=-1
"~" string_ mark
"\"" idle
-:string_escape String_esc
+:string_escape String_esc string
* string
-:string_ String
+:string_ String string
* string_mod noeat
"0-9" string_f
"t" string_mod
-:string_f String
+:string_f String string
* string_mod noeat
"0-9*" string_f
"." string_p
-:string_p String
+:string_p String string
* string_mod noeat
"0-9*" string_p
-:string_mod String
+:string_mod String string
* string
"cfegswpWPBX#bx+ni" string_modifier recolormark noeat
-:string_modifier String_mod
+:string_modifier String_mod string
* string
# END STRINGS
-:decimal Int
+:decimal Number
* idle noeat
"0-9" decimal
"." float
"#" base
-:float Int
+:float Number
* idle noeat
"0-9" float
"Ee" eintval
-:base Int
+:base Number
* idle noeat
"0-9A-Fa-f" base
-:eintval Int
+:eintval Number
* eint noeat
"-" eint
-:eint Int
+:eint Number
* idle noeat
"0-9" eint
:brace Brace
* idle noeat
-:brack Brack
+:brack Bracket
* idle noeat
:maybe_attribute Idle
@@ -263,7 +269,7 @@ done
# 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
+:atom Ident
* no_atom noeat strings
"after" kw
"and" kw
diff --git a/.config/joestar/syntax/filename.jsf b/.config/joestar/syntax/filename.jsf
@@ -1,7 +1,7 @@
# Filename highlighter
=Idle
-=Notused green
+=Notused +Comment
:idle Idle
* filename noeat mark
diff --git a/.config/joestar/syntax/fortran.jsf b/.config/joestar/syntax/fortran.jsf
@@ -6,14 +6,22 @@
# needs more intrinsics.
=Idle
-=Comment green
-=Constant cyan
-=Type red
-=Keyword bold
-=Intrinsic magenta
-=Preproc blue
-=Operator magenta
-=Bad bold red
+=Ident
+=Comment
+=Constant
+=Number +Constant
+=Boolean +Constant
+=String +Constant
+=Type
+=Keyword
+=Operator +Keyword
+=Statement +Keyword
+=Builtin +DefinedFunction
+=Loop +Statement
+=Conditional +Statement
+=Label +Statement
+=Preproc
+=Bad
# First character of line...
@@ -27,8 +35,9 @@
* pre
"\n" reset
-:comment Comment
+:comment Comment comment
* comment
+ "BFHNTX" comment noeat call=comment_todo.comment_todo()
"\n" reset
:idle Idle
@@ -40,13 +49,13 @@
"'" string recolor=-1
"a-zA-Z_" ident buffer
-:first_number Constant
+:first_number Number
* idle noeat
"0-9" first_number
"." second_start
"eEdD" epart
-:have_dot Constant
+:have_dot Number
* idle recolor=-2 noeat
"0-9" second_number recolor=-2
" \ta-zA-Z" operator1 noeat recolor=-2
@@ -76,8 +85,8 @@
"lgt" op
"lge" op
"not" op
- "false" const
- "true" const
+ "false" bool
+ "true" bool
done
# Eat the right .
@@ -90,21 +99,21 @@ done
* idle
" \t" op
-:const Constant
+:bool Boolean
* idle
"." op noeat
" \t" const
# For distrinuishing between 4.e1 and 4.eq.
-:second_start Constant
+:second_start Number
* idle noeat
"a-zA-Z" operator1 noeat recolor=-2
"dD" epart
"eE" epart1
"0-9" second_number
-:epart1 Constant
+:epart1 Number
* idle noeat
"q" epart2
"0-9+\-" enum
@@ -113,29 +122,29 @@ done
* idle noeat
". \t" op noeat recolor=-4
-:second_number Constant
+:second_number Number
* idle noeat
"eEdD" epart
"0-9" second_number
-:epart Constant
+:epart Number
* idle noeat
"0-9+\-" enum
-:enum Constant
+:enum Number
* idle noeat
"0-9" enum
-:string Constant
+:string String string
* string
"\n" reset
"'" maybe_end_string
-:maybe_end_string Constant
+:maybe_end_string String string
* idle noeat
"'" string
-:ident Idle
+:ident Ident
* idle noeat istrings
"allocate" kw
"allocatable" kw
@@ -145,48 +154,47 @@ done
"block" kw
"blockdata" kw
"call" kw
- "case" kw
+ "case" label
"character" type
"close" kw
"common" kw
"complex" type
"contains" kw
- "continue" kw
+ "continue" loop
"cycle" kw
"data" kw
"deallocate" kw
- "default" kw
+ "default" label
"dimension" type
- "do" kw
+ "do" loop
"double" type
"doubleprecision" type
"elemental" kw
- "else" kw
- "elseif" kw
- "elsewhere" kw
+ "else" cond
+ "elseif" cond
+ "elsewhere" cond
"end" kw
"endblock" kw
"endblockdata" kw
- "enddo" kw
+ "enddo" loop
"endfile" kw
- "endforall" kw
- "endif" kw
+ "endforall" loop
+ "endif" cond
"endinterface" kw
"endmodule" kw
- "endselect" kw
+ "endselect" cond
"endtype" kw
"endwhere" kw
"entry" kw
"equivalence" kw
"exit" kw
"external" kw
- "forall" kw
+ "forall" loop
"format" kw
"function" kw
- "go" kw
- "goto" kw
- "if" kw
- "implicit" kw
+ "go" loop
+ "goto" loop
+ "if" cond
"implicit" kw
"in" kw
"inout" kw
@@ -224,19 +232,19 @@ done
"return" kw
"rewind" kw
"save" kw
- "select" kw
- "selectcase" kw
+ "select" cond
+ "selectcase" cond
"sequence" kw
"stat" kw
"stop" kw
"subroutine" kw
"target" kw
- "then" kw
- "to" kw
+ "then" cond
+ "to" loop
"type" kw
"use" kw
"where" kw
- "while" kw
+ "while" loop
"write" kw
done
"(" idle noeat istrings
@@ -249,53 +257,52 @@ done
"block" kw
"blockdata" kw
"call" kw
- "case" kw
- "character" kw
+ "case" label
+ "character" type
"close" kw
"common" kw
- "complex" kw
+ "complex" type
"contains" kw
- "continue" kw
+ "continue" loop
"cycle" kw
"data" kw
"deallocate" kw
- "default" kw
+ "default" label
"dimension" type
- "do" kw
+ "do" loop
"double" type
"doubleprecision" type
"elemental" kw
- "else" kw
- "elseif" kw
- "elsewhere" kw
+ "else" cond
+ "elseif" cond
+ "elsewhere" cond
"end" kw
"endblock" kw
"endblockdata" kw
- "enddo" kw
+ "enddo" loop
"endfile" kw
- "endforall" kw
- "endif" kw
+ "endforall" loop
+ "endif" cond
"endinterface" kw
"endmodule" kw
- "endselect" kw
+ "endselect" cond
"endtype" kw
"endwhere" kw
"entry" kw
"equivalence" kw
"exit" kw
"external" kw
- "forall" kw
+ "forall" loop
"format" kw
"function" kw
- "go" kw
- "goto" kw
- "if" kw
- "implicit" kw
+ "go" loop
+ "goto" loop
+ "if" cond
"implicit" kw
"in" kw
"inout" kw
"inquire" kw
- "integer" kw
+ "integer" type
"intent" kw
"interface" kw
"intrinsic" kw
@@ -328,19 +335,19 @@ done
"return" kw
"rewind" kw
"save" kw
- "select" kw
- "selectcase" kw
+ "select" cond
+ "selectcase" cond
"sequence" kw
"stat" kw
"stop" kw
"subroutine" kw
"target" kw
- "then" kw
- "to" kw
+ "then" cond
+ "to" loop
"type" kw
"use" kw
"where" kw
- "while" kw
+ "while" loop
"write" kw
# Here are instrinsics
"abs" intrinsic
@@ -381,7 +388,7 @@ done
"epsilon" intrinsic
"exp" intrinsic
"exponent" intrinsic
- "false" intrinsic
+ "false" bool
"floor" intrinsic
"float" intrinsic
"fraction" intrinsic
@@ -478,47 +485,47 @@ done
"block" kw
"blockdata" kw
"call" kw
- "case" kw
+ "case" label
"character" type
"close" kw
"common" kw
"complex" type
"contains" kw
- "continue" kw
+ "continue" loop
"cycle" kw
"data" kw
"deallocate" kw
- "default" kw
+ "default" label
"dimension" type
- "do" kw
+ "do" loop
"double" type
"doubleprecision" type
"elemental" kw
- "else" kw
- "elseif" kw
- "elsewhere" kw
+ "else" cond
+ "elseif" cond
+ "elsewhere" cond
"end" kw
"endblock" kw
"endblockdata" kw
- "enddo" kw
+ "enddo" loop
"endfile" kw
- "endforall" kw
- "endif" kw
+ "endforall" loop
+ "endif" cond
"endinterface" kw
"endmodule" kw
- "endselect" kw
+ "endselect" cond
"endtype" kw
"endwhere" kw
"entry" kw
"equivalence" kw
"exit" kw
"external" kw
- "forall" kw
+ "forall" loop
"format" kw
"function" kw
- "go" kw
- "goto" kw
- "if" kw
+ "go" loop
+ "goto" loop
+ "if" cond
"implicit" kw
"in" kw
"inout" kw
@@ -556,19 +563,19 @@ done
"return" kw
"rewind" kw
"save" kw
- "select" kw
- "selectcase" kw
+ "select" cond
+ "selectcase" cond
"sequence" kw
"stat" kw
"stop" kw
"subroutine" kw
"target" kw
- "then" kw
- "to" kw
+ "then" cond
+ "to" loop
"type" kw
"use" kw
"where" kw
- "while" kw
+ "while" loop
"write" kw
done
"(" idle noeat istrings
@@ -581,47 +588,47 @@ done
"block" kw
"blockdata" kw
"call" kw
- "case" kw
+ "case" label
"character" type
"close" kw
"common" kw
"complex" type
"contains" kw
- "continue" kw
+ "continue" loop
"cycle" kw
"data" kw
"deallocate" kw
- "default" kw
+ "default" label
"dimension" type
- "do" kw
+ "do" loop
"double" type
"doubleprecision" type
"elemental" kw
- "else" kw
- "elseif" kw
- "elsewhere" kw
+ "else" cond
+ "elseif" cond
+ "elsewhere" cond
"end" kw
"endblock" kw
"endblockdata" kw
- "enddo" kw
+ "enddo" loop
"endfile" kw
- "endforall" kw
- "endif" kw
+ "endforall" loop
+ "endif" cond
"endinterface" kw
"endmodule" kw
- "endselect" kw
+ "endselect" cond
"endtype" kw
"endwhere" kw
"entry" kw
"equivalence" kw
"exit" kw
"external" kw
- "forall" kw
+ "forall" loop
"format" kw
"function" kw
- "go" kw
- "goto" kw
- "if" kw
+ "go" loop
+ "goto" loop
+ "if" cond
"implicit" kw
"in" kw
"inout" kw
@@ -659,19 +666,19 @@ done
"return" kw
"rewind" kw
"save" kw
- "select" kw
- "selectcase" kw
+ "select" cond
+ "selectcase" cond
"sequence" kw
"stat" kw
"stop" kw
"subroutine" kw
"target" kw
- "then" kw
- "to" kw
+ "then" cond
+ "to" loop
"type" kw
"use" kw
"where" kw
- "while" kw
+ "while" loop
"write" kw
# Here are instrinsics
"abs" intrinsic
@@ -789,15 +796,14 @@ done
"transfer" intrinsic
"transpose" intrinsic
"trim" intrinsic
- "true" intrinsic
+ "true" bool
"ubound" intrinsic
"unpack" intrinsic
"verify" intrinsic
done
" \t" ws_ident
-
-:intrinsic Intrinsic
+:intrinsic Builtin
* idle noeat
:kw Keyword
@@ -805,3 +811,12 @@ done
:type Type
* idle noeat
+
+:label Label
+ * idle noeat
+
+:cond Conditional
+ * idle noeat
+
+:loop Loop
+ * idle noeat
diff --git a/.config/joestar/syntax/git-commit.jsf b/.config/joestar/syntax/git-commit.jsf
@@ -2,11 +2,7 @@
# by Christian Nicolai (http://mycrobase.de)
=Idle
-=Tag green
-=Escape bold
-=Bad bold red
-
-=Ignore green
+=Ignore +Comment
:line_start Idle
* idle noeat
diff --git a/.config/joestar/syntax/go.jsf b/.config/joestar/syntax/go.jsf
@@ -2,61 +2,37 @@
# (c) 2012 Matthias S. Benkmann
# License: http://creativecommons.org/licenses/by/3.0/deed.en_US
-# Small modifications by jjjordan to better suit white backgrounds and 16-color
-# consoles. (Original colors commented out below)
-
-# Standard colors:
-#
-# Foreground:
-# white cyan magenta blue yellow green red black
-#
-# Background:
-# bg_white bg_cyan bg_magenta bg_blue bg_yellow bg_green bg_red bg_black
-#
-#
-# For 16 color and 256 color xterms: "export TERM=xterm-16color", the following
-# brighter than normal colors are available ( Note that you need an xterm which
-# was compiled to support 16 or 256 colors and a matching termcap/terminfo entry
-# for it.)
-#
-# Foreground:
-# WHITE CYAN MAGENTA BLUE YELLOW GREEN RED BLACK
-#
-# Background:
-# bg_WHITE bg_CYAN bg_MAGENTA bg_BLUE bg_YELLOW bg_GREEN bg_RED bg_BLACK
-#
-#
-# For 256 color xterm: "export TERM=xterm-256color", the following become available
-# ( Note that you need an xterm which was compiled to support 256 colors and a
-# matching termcap/terminfo entry for it. )
-#
-# fg_RGB and bg_RGB, where R, G, and B range from 0 - 5. So: fg_500 is bright red.
-#
-# fg_NN and bg_NN give shades of grey, where the intensity, NN, ranges from 0 - 23.
-
=Idle
-=Error red bold
-=Comment green #bold green
-=SingleQuoted cyan
-=DoubleQuoted cyan
-=BackQuoted cyan
-=Escape bold cyan
-=Operator bold cyan
-=Parentheses #bold yellow
-=Brackets yellow
-=Brace magenta #bold magenta
-=Semicolon #bold yellow
-=Period bold
-=PeriodDecimal red
-=Number red
-=Constant red
-=Comma #bold yellow
-=Identifier #fg_333
-=ExportedIdentifier #fg_444
-=Keyword bold
-=Type bold
-=BuiltinFunction bold
+=Bad
+=Comment
+=Constant
+=Boolean +Constant
+=String +Constant
+=Character +String
+=BackQuoted +String
+=StringEscape +Escape
+=Number +Constant
+=Ident
+=DefinedIdent +Ident
+=Keyword
+=Operator +Keyword
+=Statement +Keyword
+=Conditional +Statement
+=Loop +Statement
+=Label +DefinedIdent
+=Structure +Type +Keyword
+=Type
+=Builtin +DefinedFunction
+
+=Control
+=Brackets +Control
+=Brace +Control
+=Semicolon +Control
+=Comma +Control
+=Period +Control
+=PeriodDecimal +Period +Number
+
##################### main #########################
:main Idle
@@ -79,7 +55,7 @@
"#$@~" error noeat
#################### error ##########################
-:error Error
+:error Bad
* error
"\n" main
"/" maybe_comment_err recolor=-1
@@ -95,32 +71,34 @@
"/" line_comment recolor=-2
"*" block_comment recolor=-2
-:line_comment Comment
+:line_comment Comment comment
* line_comment
+ "BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" main
-:block_comment Comment
+:block_comment Comment comment
* block_comment
+ "BFHNTX" block_comment noeat call=comment_todo.comment_todo()
"*" maybe_end_block_comment
-:maybe_end_block_comment Comment
+:maybe_end_block_comment Comment comment
* block_comment noeat
"/" main
################ strings ############################
-:single_quoted SingleQuoted
+:single_quoted Character string
* single_quoted
"'" main
"\\" single_quoted call=.escape() recolor=-1
"\n" error
-:double_quoted DoubleQuoted
+:double_quoted String string
* double_quoted
"\"" main
"\\" double_quoted call=.escape() recolor=-1
"\n" error
-:back_quoted BackQuoted
+:back_quoted BackQuoted string
* back_quoted
"`" main
@@ -128,7 +106,7 @@
:operator Operator
* main
-:parentheses Parentheses
+:parentheses Control
* main
:brackets Brackets
@@ -199,52 +177,50 @@
"eE" integer
################# keywords and identifiers ##########################
-:keyword_or_identifier Identifier
+:keyword_or_identifier Ident
* identifier
"\p{Lu}\p{Lt}" exported_identifier recolor=-1
"\p{Ll}\p{Lo}\p{Pc}\p{Nl}" keyword_or_identifier2
-:exported_identifier ExportedIdentifier
+:exported_identifier DefinedIdent
* exported_identifier
"\x01-/:-@[-^`{-\x7f" main noeat
-:identifier Identifier
+:identifier Ident
* identifier
"\x01-/:-@[-^`{-\x7f" main noeat
-:keyword_or_identifier2 Identifier
+:keyword_or_identifier2 Ident
* identifier
"\c" keyword_or_identifier2
"\x01-/:-@[-^`{-\x7f" main noeat hold strings
"_" keyword
- "break" keyword
- "default" keyword
+ "break" stmt
+ "default" label
"func" keyword
- "interface" keyword
- "select" keyword
- "case" keyword
- "defer" keyword
+ "interface" struct
+ "select" cond
+ "case" label
+ "defer" stmt
"go" keyword
- "map" keyword
- "struct" keyword
- "chan" keyword
- "else" keyword
- "goto" keyword
- "package" keyword
- "switch" keyword
- "const" keyword
+ "struct" struct
+ "else" cond
+ "goto" stmt
+ "package" stmt
+ "switch" cond
+ "const" stmt
"fallthrough" keyword
- "if" keyword
- "range" keyword
- "type" keyword
- "continue" keyword
- "for" keyword
- "import" keyword
- "return" keyword
- "var" keyword
+ "if" cond
+ "range" loop
+ "type" struct
+ "continue" stmt
+ "for" loop
+ "import" stmt
+ "return" stmt
+ "var" stmt
- "true" constant
- "false" constant
+ "true" boolean
+ "false" boolean
"nil" constant
"iota" constant
@@ -268,6 +244,8 @@
"bool" type
"string" type
"error" type
+ "map" type
+ "chan" type
"delete" builtin
"make" builtin
@@ -295,15 +273,30 @@
:type Type
* main noeat
-:builtin BuiltinFunction
+:builtin Builtin
+ * main noeat
+
+:stmt Statement
+ * main noeat
+
+:label Label
* main noeat
-
-
+:struct Structure
+ * main noeat
+
+:cond Conditional
+ * main noeat
+
+:loop Loop
+ * main noeat
+
+:boolean Boolean
+ * main noeat
########################## .subr escape START ######################################
.subr escape
-:esc Escape
+:esc StringEscape string
* esc_err noeat
"abfnrtv'\"" whatever return
# For some reason joe doesn't interpret \\ properly if merged with the
@@ -314,51 +307,51 @@
"U" hex8
"0-3" oct2
-:hex8 Escape
+:hex8 StringEscape string
* esc_err noeat
"a-fA-F0-9" hex7
-:hex7 Escape
+:hex7 StringEscape string
* esc_err noeat
"a-fA-F0-9" hex6
-:hex6 Escape
+:hex6 StringEscape string
* esc_err noeat
"a-fA-F0-9" hex5
-:hex5 Escape
+:hex5 StringEscape string
* esc_err noeat
"a-fA-F0-9" hex4
-:hex4 Escape
+:hex4 StringEscape string
* esc_err noeat
"a-fA-F0-9" hex3
-:hex3 Escape
+:hex3 StringEscape string
* esc_err noeat
"a-fA-F0-9" hex2
-:hex2 Escape
+:hex2 StringEscape string
* esc_err noeat
"a-fA-F0-9" hex1
-:hex1 Escape
+:hex1 StringEscape string
* esc_err noeat
"a-fA-F0-9" whatever return
-:oct2 Escape
+:oct2 StringEscape string
* esc_err noeat
"0-7" oct1
-:oct1 Escape
+:oct1 StringEscape string
* esc_err noeat
"0-7" whatever return
-:esc_err Error
+:esc_err Bad
* esc_err return
"\n" esc_err_newline noeat recolor=-2
-:esc_err_newline Error
+:esc_err_newline Bad
* esc_err return noeat
diff --git a/.config/joestar/syntax/groovy.jsf b/.config/joestar/syntax/groovy.jsf
@@ -1,20 +1,28 @@
# JOE syntax highlight file for Groovy
=Idle
-=Comment green
-=Shebang yellow
-=Constant cyan
-=Escape bold cyan
-=Operator bold
-=Keyword bold
-=Bad bold red
-=Var yellow
-=Brace magenta
-
-=ProcArg #yellow
-=ClassMember yellow #fg_310 # brown
-=GlobalVar #yellow
-=ClassDecl bold blue
+=Ident
+=Comment
+=Shebang +Preproc
+=Constant
+=Number +Constant
+=Boolean +Constant
+=String +Constant
+=Regex +String
+=Escape
+=StringEscape +Escape +String
+=RegexEscape +StringEscape
+=Keyword
+=Operator +Keyword
+=Statement +Keyword
+=Conditional +Statement
+=Loop +Statement
+=Structure +Type +Keyword
+=Label +DefinedIdent
+=StorageClass +Type +Keyword
+=Bad
+=Brace
+=Builtin +DefinedFunction
:pre_idle Idle
* NULL noeat call=.groovy()
@@ -59,58 +67,60 @@
"/" line_comment recolor=-2
"*" comment recolor=-2
-:maybe_regex Constant
+:maybe_regex Regex string
* regex noeat
"*" comment recolor=-2
"/" line_comment recolor=-2
-:regex Constant
+:regex Regex string
* regex
"\\" regex_quote recolor=-1
"/" after_term
"$" maybe_regex_subst recolor=-1
-:maybe_regex_subst Constant
+:maybe_regex_subst Regex string
* regex noeat
"\i" regex_subst1 recolor=-2
"{" regex_subst recolor=-2
-:regex_subst Escape
+:regex_subst RegexEscape string
* regex_subst
"}" regex
-:regex_subst1 Escape
+:regex_subst1 RegexEscape string
* regex noeat
".\c" regex_subst1
-:regex_quote Escape
+:regex_quote RegexEscape string
* regex
:not_string Idle
* idle noeat
- "\c" global_var recolor=-2
+ "\c" builtin recolor=-2
"/" dstring recolor=-2
:brace Brace
* idle noeat
-:comment Comment
+:comment Comment comment
* comment
+ "BFHNTX" comment noeat call=comment_todo.comment_todo()
"*" maybe_end_comment
-:maybe_end_comment Comment
+:maybe_end_comment Comment comment
* comment
"/" idle
"*" maybe_end_comment
-:line_comment Comment
+:line_comment Comment comment
* line_comment
+ "BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" idle
-:end_of_file_comment Comment
+:end_of_file_comment Comment comment
* end_of_file_comment
-:first_digit Constant
+:first_digit Number
* after_term noeat
"x" hex
"b" binary
@@ -124,49 +134,49 @@
* after_term noeat
"0-9" bad_number
-:octal Constant
+:octal Number
* after_term noeat
"0-7_" octal
"89" bad_number recolor=-1
-:binary Constant
+:binary Number
* after_term noeat
"01_" binary
"2-9" bad_number recolor=-1
-:hex Constant
+:hex Number
* after_term noeat
"0-9A-Fa-f_" hex
-:decimal Constant
+:decimal Number
* after_term noeat
"0-9_" decimal
"eE" epart
"." float
"gGlLiIdDfF" after_term
-:float Constant
+:float Number
* after_term noeat
"eE" epart
"0-9_" float
"gGlLiIdDfF" after_term
-:epart Constant
+:epart Number
* after_term noeat
"0-9+\-" enum
-:enum Constant
+:enum Number
* after_term noeat
"0-9_" enum
"gGlLiIdDfF" after_term
# Distinguish between " and """
-:double_quote Constant
+:double_quote String string
* string noeat
"\"" double_quote_1
-:double_quote_1 Constant
+:double_quote_1 String string
* after_term noeat
"\"" tstring
@@ -174,54 +184,54 @@
# interpolation allowed
# line crossing not allowed
-:string Constant
+:string String string
* string
"\"" after_term
"\n" after_term
"\\" string_escape recolor=-1
"$" maybe_string_subst recolor=-1
-:maybe_string_subst Constant
+:maybe_string_subst String string
* string noeat
"\i" string_subst1 recolor=-2
"{" string_subst recolor=-2
-:string_subst Escape
+:string_subst StringEscape string
* string_subst
"}" string
-:string_subst1 Escape
+:string_subst1 StringEscape string
* string noeat
".\c" string_subst1
-:string_escape Escape
+:string_escape StringEscape string
* string
"x" string_hex2
"u" string_hex4
"0-7" string_octal2
"\n" string recolor=-2
-:string_hex4 Escape
+:string_hex4 StringEscape string
* string noeat
"0-9a-fA-F" string_hex3
-:string_hex3 Escape
+:string_hex3 StringEscape string
* string noeat
"0-9a-fA-F" string_hex2
-:string_hex2 Escape
+:string_hex2 StringEscape string
* string noeat
"0-9a-fA-F" string_hex1
-:string_hex1 Escape
+:string_hex1 StringEscape string
* string noeat
"0-9a-fA-F" string
-:string_octal2 Escape
+:string_octal2 StringEscape string
* string noeat
"0-7" string_octal1
-:string_octal1 Escape
+:string_octal1 StringEscape string
* string noeat
"0-7" string
@@ -229,89 +239,89 @@
# interpolation allowed
# line crossing not allowed
-:tstring Constant
+:tstring String string
* tstring
"\"" tstring_maybe_done
"\\" tstring_escape recolor=-1
"$" maybe_tstring_subst recolor=-1
-:tstring_maybe_done Constant
+:tstring_maybe_done String string
* tstring noeat
"\"" tstring_maybe_done_2
-:tstring_maybe_done_2 Constant
+:tstring_maybe_done_2 String string
* tstring noeat
"\"" after_term
-:maybe_tstring_subst Constant
+:maybe_tstring_subst String string
* tstring noeat
"\i" tstring_subst1 recolor=-2
"{" tstring_subst recolor=-2
-:tstring_subst Escape
+:tstring_subst StringEscape string
* tstring_subst
"}" tstring
-:tstring_subst1 Escape
+:tstring_subst1 StringEscape string
* tstring noeat
".\c" tstring_subst1
-:tstring_escape Escape
+:tstring_escape StringEscape string
* tstring
"x" tstring_hex2
"u" tstring_hex4
"0-7" tstring_octal2
"\n" tstring recolor=-2
-:tstring_hex4 Escape
+:tstring_hex4 StringEscape string
* tstring noeat
"0-9a-fA-F" tstring_hex3
-:tstring_hex3 Escape
+:tstring_hex3 StringEscape string
* tstring noeat
"0-9a-fA-F" tstring_hex2
-:tstring_hex2 Escape
+:tstring_hex2 StringEscape string
* tstring noeat
"0-9a-fA-F" tstring_hex1
-:tstring_hex1 Escape
+:tstring_hex1 StringEscape string
* tstring noeat
"0-9a-fA-F" tstring
-:tstring_octal2 Escape
+:tstring_octal2 StringEscape string
* tstring noeat
"0-7" tstring_octal1
-:tstring_octal1 Escape
+:tstring_octal1 StringEscape string
* tstring noeat
"0-7" tstring
# strings like: $/sdfsdf/$
# interpolation allowed
-:dstring Constant
+:dstring String string
* dstring
"$" dstring_esc recolor=-1
"/" dstring_maybe_done
-:dstring_maybe_done Constant
+:dstring_maybe_done String string
* dstring noeat
"$" after_term
-:dstring_esc Escape
+:dstring_esc StringEscape string
* dstring
"/" dstring_esc_slash
-:dstring_esc_slash Escape
+:dstring_esc_slash StringEscape string
* dstring noeat recolor=-1
"$" dstring
-:single_quote Constant
- * char noeat
+:single_quote String string
+ * char noeat recolor=-1
"\'" single_quote_1
-:single_quote_1 Constant
+:single_quote_1 String string
* after_term noeat
"\'" tchar
@@ -319,40 +329,40 @@
# no interpolation
# no line crossing
-:char Constant
+:char String string
* char
"\n" after_term
"\'" after_term
"\\" char_escape recolor=-1
-:char_escape Escape
+:char_escape StringEscape string
* char
"x" char_hex2
"u" char_hex4
"0-7" char_octal2
"\n" char recolor=-2
-:char_hex4 Escape
+:char_hex4 StringEscape string
* char noeat
"0-9a-fA-F" char_hex3
-:char_hex3 Escape
+:char_hex3 StringEscape string
* char noeat
"0-9a-fA-F" char_hex2
-:char_hex2 Escape
+:char_hex2 StringEscape string
* char noeat
"0-9a-fA-F" char_hex1
-:char_hex1 Escape
+:char_hex1 StringEscape string
* char noeat
"0-9a-fA-F" char
-:char_octal2 Escape
+:char_octal2 StringEscape string
* char noeat
"0-7" char_octal1
-:char_octal1 Escape
+:char_octal1 StringEscape string
* char noeat
"0-7" char
@@ -360,97 +370,97 @@
# no interpolation
# no line crossing
-:tchar Constant
+:tchar String string
* tchar
"\'" after_term
"\\" tchar_escape recolor=-1
-:tchar_maybe_done Constant
+:tchar_maybe_done String string
* tchar noeat
"\'" tchar_maybe_done_2
-:tchar_maybe_done_2 Constant
+:tchar_maybe_done_2 String string
* tchar noeat
"\'" after_term
-:tchar_escape Escape
+:tchar_escape StringEscape string
* tchar
"x" tchar_hex2
"u" tchar_hex4
"0-7" tchar_octal2
"\n" tchar recolor=-2
-:tchar_hex4 Escape
+:tchar_hex4 StringEscape string
* tchar noeat
"0-9a-fA-F" tchar_hex3
-:tchar_hex3 Escape
+:tchar_hex3 StringEscape string
* tchar noeat
"0-9a-fA-F" tchar_hex2
-:tchar_hex2 Escape
+:tchar_hex2 StringEscape string
* tchar noeat
"0-9a-fA-F" tchar_hex1
-:tchar_hex1 Escape
+:tchar_hex1 StringEscape string
* tchar noeat
"0-9a-fA-F" tchar
-:tchar_octal2 Escape
+:tchar_octal2 StringEscape string
* tchar noeat
"0-7" tchar_octal1
-:tchar_octal1 Escape
+:tchar_octal1 StringEscape string
* tchar noeat
"0-7" tchar
-:ident_no_kw Idle
+:ident_no_kw Ident
* after_term noeat
"0" first_digit recolor=-1
"1-9" decimal recolor=-1
"\i" ident_no_kw1
-:ident_no_kw1 Idle
+:ident_no_kw1 Ident
* after_term noeat
"\c" ident_no_kw1
-:ident Idle
+:ident Ident
* after_term noeat strings
"as" operator
- "assert" kw
- "break" kw
- "case" kw
- "catch" kw
- "class" kw
- "const" kw
- "continue" kw
- "def" kw
- "default" kw
- "do" kw
- "else" kw
- "enum" kw
- "extends" kw
- "finally" kw
- "for" kw
- "goto" kw
- "if" kw
- "implements" kw
+ "assert" stmt
+ "break" loop
+ "case" label
+ "catch" stmt
+ "class" struct
+ "const" storage
+ "continue" loop
+ "def" stmt
+ "default" label
+ "do" loop
+ "else" cond
+ "enum" struct
+ "extends" struct
+ "finally" stmt
+ "for" loop
+ "goto" loop
+ "if" cond
+ "implements" struct
"import" kw
"in" operator
- "instanceof" kw
- "interface" kw
+ "instanceof" operator
+ "interface" struct
"new" operator
"package" kw
- "return" kw
+ "return" stmt
"super" kw
- "switch" kw
+ "switch" cond
"throw" kw
- "throws" kw
+ "throws" struct
"trait" kw
- "try" kw
- "while" kw
- "true" lit
- "false" lit
+ "try" stmt
+ "while" loop
+ "true" bool
+ "false" bool
"null" lit
done
"\c" ident
@@ -458,14 +468,35 @@ done
:kw Keyword
* idle noeat
+:stmt Statement
+ * idle noeat
+
+:loop Loop
+ * idle noeat
+
+:cond Conditional
+ * idle noeat
+
+:struct Structure
+ * idle noeat
+
+:storage StorageClass
+ * idle noeat
+
+:label Label
+ * idle noeat
+
:lit Constant
* idle noeat
+:bool Boolean
+ * idle noeat
+
:operator Operator
* idle noeat
-:global_var GlobalVar
+:builtin Builtin
* idle noeat
- "\c" global_var
+ "\c" builtin
.end
diff --git a/.config/joestar/syntax/haml.jsf b/.config/joestar/syntax/haml.jsf
@@ -2,17 +2,19 @@
# by Christian Nicolai (http://mycrobase.de)
=Idle
-=Comment green
-=Constant cyan
-=Escape bold cyan
-=Bad bold red
-=Brace magenta
-
-=Tag blue
-=Class yellow
-=Id green
-=Doctype bold magenta
-=Filter blue
+=Comment
+=Constant
+=Escape
+=Bad
+=Brace
+
+=TagName +Keyword
+=TagEnd +Keyword
+=Id +DefinedIdent
+
+=Class +Type
+=Doctype +Preproc
+=Filter +Operator +Keyword
:line_start Idle
* idle noeat
@@ -56,7 +58,7 @@
* doctype3
"\n" line_start
-:tag Tag
+:tag TagName
* idle noeat
"a-zA-Z0-9_-" tag
".#{(/" after_tag noeat
@@ -85,10 +87,10 @@
* attrB
")" after_tag
-:tag_close Tag
+:tag_close TagEnd
* idle noeat
-:html_comment Comment
+:html_comment Comment comment
* html_comment
"\n" line_start
diff --git a/.config/joestar/syntax/haskell.jsf b/.config/joestar/syntax/haskell.jsf
@@ -1,30 +1,30 @@
# JOE syntax highlight file for Haskell
-# Define colors
-#
-# bold inverse blink dim underline italic
-# white cyan magenta blue yellow green red black
-# bg_white bg_cyan bg_magenta bg_blue bg_yellow bg_green bg_red bg_black
-
-# not too colorfull to not distract user
=Idle
-=Special bold
-=ConId bold yellow
-=ModId
-=VarId
-=VarSym
-=ReservedId bold
-=Comment green
-=Pragma bold green
-=Error bg_red black
-=FloatNumber bold cyan
-=DecNumber bold cyan
-=HexNumber cyan
-=OctNumber cyan
-=CharLit cyan
-=StringLit cyan
-=StringGap bg_cyan black
-=EscapedChar bold cyan
+=Comment
+=Keyword
+=Statement +Keyword
+=Conditional +Statement +Keyword
+=Structure +Type +Keyword
+=Bad
+=Constant
+=Number +Constant
+=FloatNumber +Number
+=DecNumber +Number
+=HexNumber +Number
+=OctNumber +Number
+=String +Constant
+=StringEscape +Escape +String
+=Character +String
+=CharacterEscape +StringEscape
+
+=StringGap
+=Special +Escape
+=ModId +Type
+=VarId +Ident
+=ConId +Ident
+=VarSym +Operator
+=Pragma +Preproc
:reset Idle
* reset
@@ -46,22 +46,23 @@
* reset noeat
"-" ncommentstart recolor=-2
-:ncommentstart Comment
+:ncommentstart Comment comment
* reset noeat call=.comment()
"#" pragma recolor=-3
.subr comment
-:ncomment Comment
+:ncomment Comment comment
* ncomment
+ "BFHNTX" ncomment noeat call=comment_todo.comment_todo()
"-" ncommentmaybeend
"{" ncommentmaybenest
-:ncommentmaybeend Comment
+:ncommentmaybeend Comment comment
* ncomment noeat
"}" ncomment return
-:ncommentmaybenest Comment
+:ncommentmaybenest Comment comment
* ncomment noeat
"-" ncomment call=.comment()
@@ -80,11 +81,11 @@
* pragma noeat
"}" reset
-:pragmamaybebadend Error
+:pragmamaybebadend Bad
* pragma noeat
"}" errorstate recolor=-2
-:errorstate Error
+:errorstate Bad
* reset
:conormodid ConId
@@ -103,51 +104,59 @@
:varid VarId
* reset noeat strings
- "case" reservedid
- "class" reservedid
- "data" reservedid
- "default" reservedid
- "deriving" reservedid
- "do" reservedid
- "else" reservedid
- "if" reservedid
- "import" reservedid
- "infix" reservedid
- "infixl" reservedid
- "infixr" reservedid
- "instance" reservedid
- "let" reservedid
- "module" reservedid
- "newtype" reservedid
- "of" reservedid
- "then" reservedid
- "type" reservedid
- "where" reservedid
- "_" reservedid
+ "case" stmt
+ "class" struct
+ "data" struct
+ "default" struct
+ "deriving" struct
+ "do" stmt
+ "else" cond
+ "if" cond
+ "import" kw
+ "infix" struct
+ "infixl" struct
+ "infixr" struct
+ "instance" struct
+ "let" stmt
+ "module" struct
+ "newtype" kw
+ "of" stmt
+ "then" cond
+ "type" kw
+ "where" struct
+ "_" kw
done
"a-zA-Z0-9_'" varid
-:reservedid ReservedId
+:kw Keyword
+ * reset noeat
+
+:cond Conditional
* reset noeat
+:struct Structure
+ * reset noeat
+
+:stmt Statement
+ * reset noeat
:consym ConId
* reset noeat strings
- ":" reservedid
- "::" reservedid
+ ":" kw
+ "::" kw
done
"-!#$%&*+./<=>?@\\^|~:" consym
:varsym VarSym
* reset noeat strings
- ".." reservedid
- "=" reservedid
- "\\" reservedid
- "|" reservedid
- "<-" reservedid
- "->" reservedid
- "@" reservedid
- "~" reservedid
+ ".." kw
+ "=" kw
+ "\\" kw
+ "|" kw
+ "<-" kw
+ "->" kw
+ "@" kw
+ "~" kw
done
"-!#$%&*+./<=>?@\\^|~:" varsym
@@ -160,8 +169,9 @@ done
"!#$%&*+./<=>?@\\^|~:" varsym
"-" dashdash
-:linecomment Comment
+:linecomment Comment comment
* linecomment
+ "BFHNTX" linecomment noeat call=comment_todo.comment_todo()
"\n" reset
:integerstart DecNumber
@@ -232,17 +242,17 @@ done
:unrollfloat VarId
* varsym noeat recolor=-2
-:charlit CharLit
+:charlit Character string
* charlitend
"\n" errorstate noeat recolor=-2
"\'" errorstate noeat recolor=-2
"\\" escape_charlit mark recolor=-1
-:charlitend CharLit
+:charlitend Character string
* charliterror noeat
"\'" reset
-:escape_charlit EscapedChar
+:escape_charlit CharacterEscape string
* charliterror recolor=-2
"0-9" escdecchar
"o" escoctcharstart
@@ -251,31 +261,31 @@ done
"A-Z" escasciichar buffer
"^" escasciictrlchar
-:escoctcharstart EscapedChar
+:escoctcharstart CharacterEscape string
* charliterror recolor=-3 noeat
"0-7" escoctchar
-:escoctchar EscapedChar
+:escoctchar CharacterEscape string
* charlitend noeat
"0-7" escoctchar
-:escdecchar EscapedChar
+:escdecchar CharacterEscape string
* charlitend noeat
"0-9" escdecchar
-:eschexcharstart EscapedChar
+:eschexcharstart CharacterEscape string
* charliterror recolor=-3 noeat
"0-9a-fA-F" eschexchar
-:eschexchar EscapedChar
+:eschexchar CharacterEscape string
* charlitend noeat
"0-9a-fA-F" eschexchar
-:escascnotfoundchar EscapedChar
+:escascnotfoundchar CharacterEscape string
* charliterror recolormark noeat
"A-Z" escasciichar
-:escasciichar EscapedChar
+:escasciichar CharacterEscape string
* charliterror recolormark
"A-Z'" escascnotfoundchar noeat strings
"NUL" asciidonechar
@@ -313,31 +323,31 @@ done
"DEL" asciidonechar
done
-:asciiSOchar EscapedChar
+:asciiSOchar CharacterEscape string
* charliterror recolormark
"'" charlitend noeat
"H" charlitend
-:escasciictrlchar EscapedChar
+:escasciictrlchar CharacterEscape string
* charliterror noeat recolor=-3
"A-Z@[\\]^_" charlitend
-:asciidonechar EscapedChar
+:asciidonechar CharacterEscape string
* charlitend noeat
-:charliterror Error
+:charliterror Bad
* charliterror
"\'" charlitend noeat
# now for string literals
-:strlit StringLit
+:strlit String string
* strlit
"\"" reset
"\n" errorstate noeat recolor=-2
"\\" escape_strlit mark recolor=-1
-:escape_strlit EscapedChar
+:escape_strlit StringEscape string
* strliterror recolor=-2
"0-9" escdecstr
"o" escoctstrstart
@@ -347,31 +357,31 @@ done
"^" escasciictrlstr
" \t\n\r\v" stringgap recolor=-2
-:escoctstrstart EscapedChar
+:escoctstrstart StringEscape string
* strliterror recolor=-3 noeat
"0-7" escoctstr
-:escoctstr EscapedChar
+:escoctstr StringEscape string
* strlit noeat
"0-7" escoctstr
-:escdecstr EscapedChar
+:escdecstr StringEscape string
* strlit noeat
"0-9" escdecstr
-:eschexstrstart EscapedChar
+:eschexstrstart StringEscape string
* strliterror recolor=-3 noeat
"0-9a-fA-F" eschexstr
-:eschexstr EscapedChar
+:eschexstr StringEscape string
* strlit noeat
"0-9a-fA-F" eschexstr
-:escascnotfoundstr EscapedChar
+:escascnotfoundstr StringEscape string
* strliterror recolormark noeat
"A-Z" escasciistr
-:escasciistr EscapedChar
+:escasciistr StringEscape string
* strliterror noeat recolormark
"A-Z\"" escascnotfoundstr noeat strings
"NUL" asciidonestr
@@ -409,27 +419,27 @@ done
"DEL" asciidonestr
done
-:asciiSOstr EscapedChar
+:asciiSOstr StringEscape string
* strlit noeat
"H" strlit
-:escasciictrlstr EscapedChar
+:escasciictrlstr StringEscape string
* strliterror noeat recolor=-3
"A-Z@[\\]^_" strlit
-:asciidonestr EscapedChar
+:asciidonestr StringEscape string
* strlit noeat
-:stringgap StringGap
+:stringgap StringGap string
* strgaperror recolor=-1
"\\" strlit
" \n\r\t\v" stringgap
-:strgaperror Error
+:strgaperror Bad
* strgaperror
"\\" strlit
"\"" reset
-:strliterror Error
+:strliterror Bad
* strlit noeat
diff --git a/.config/joestar/syntax/html.jsf b/.config/joestar/syntax/html.jsf
@@ -26,25 +26,30 @@
#
# Colours
-=Background
-=Text
-=TagEdge green
-=TagName green #cyan
-=TagParam #green
-=TagDelim #bold green
-=TagValue cyan
-=TagEntity bold blue
-=SGMLtag magenta
-=XML_pi yellow
-=Entity bold blue
-=Mystery bold yellow bg_red inverse
+=Idle
+=Tag +DefinedFunction +DefinedIdent
+=TagName +Tag
+=TagEnd +Tag
+=TagScript +TagName
+=Attr +Type
+=TagDelim +Attr
+=Constant
+=Comment
+=CommentEdge +Comment
+=Entity +Escape
+=Bad
+=SGMLTag +Statement +Keyword
+
+=PIStart +Preproc +Tag
+=PIBody +Comment
+=PIEnd +Preproc +Tag
# Call HTML highlighter subroutine
-:first Background
+:first Idle
* call_failed noeat call=.html()
-:call_failed Mystery
+:call_failed Bad
* call_failed
#
@@ -53,25 +58,25 @@
.subr html
-:reset Background
+:reset Idle
* idle noeat
.ifdef mason
"%" reset call=perl.perl(mason_line)
.endif
# Rules
-:idle Background
+:idle Idle
* idle
"\n" reset
"<" tag_begin recolor=-1
"&" idle call=.entity() recolor=-1
-:mistake_idle Mystery
+:mistake_idle Bad
* idle noeat
# Tags
-:tag_begin TagEdge
+:tag_begin Tag
* tag_name_first buffer noeat recolor=-1
- "/" tag_name_first buffer
+ "/" end_tag recolor=-2
.ifdef mason
"&" rtn_php call=perl.perl(mason_block)
.endif
@@ -86,17 +91,22 @@
.endif
# this state allows php and perl to recolor the ?> %> or &> properly.
-:rtn_php TagEdge
+:rtn_php Tag
* idle noeat
-:maybe_erb_eq TagEdge
+:maybe_erb_eq Tag
* rtn_php noeat call=ruby.ruby(erb)
"=" rtn_php call=ruby.ruby(erb)
-:tag_name_first Mystery
+:tag_name_first Bad
* tag_idle noeat
"-A-Za-z0-9._:" tag_name recolor=-1
+:end_tag TagEnd
+ "-A-Za-z0-9._: \t" end_tag
+ ">" idle
+ * mistake_idle
+
:tag_name TagName
* tag_idle noeat strings
"script" stag_enter_idle
@@ -104,7 +114,7 @@
done
"-A-Za-z0-9._:" tag_name
-:tag_idle Background
+:tag_idle Idle
* mistake_tag recolor=-1
"<" tag_maybe_php recolor=-1
" \t
\n" tag_idle
@@ -112,17 +122,17 @@ done
">" tag_end noeat recolor=-1
"-A-Za-z0-9._:" tag_param noeat recolor=-1
-:tag_maybe_php Mystery
+:tag_maybe_php Bad
* tag_idle
"?" tag_call_php recolor=-2
-:tag_call_php TagEdge
+:tag_call_php Tag
* rtn_php_tag noeat call=php.php()
-:rtn_php_tag TagEdge
+:rtn_php_tag Tag
* tag_idle noeat
-:tag_param TagParam
+:tag_param Attr
* tag_idle noeat recolor=-1
"-A-Za-z0-9._:" tag_param
"=" tag_delim recolor=-1
@@ -133,29 +143,29 @@ done
"'" tag_idle call=.tag_value_quoted(squote) recolor=-1
"-A-Za-z0-9._:" tag_value noeat recolor=-1
-:tag_value TagValue
+:tag_value Constant
* tag_idle noeat recolor=-1
"-A-Za-z0-9._:" tag_value
-:tag_end TagEdge
+:tag_end Tag
* idle
-:mistake_tag Mystery
+:mistake_tag Bad
* tag_idle noeat
-# We're about to entry a script...
+# We're about to enter a script...
-:stag_enter_idle TagName
+:stag_enter_idle TagScript
* stag_idle noeat
-:stag_idle Background
+:stag_idle Idle
* smistake_tag recolor=-1
" \t
\n" stag_idle
"/" stag_end recolor=-1
">" stag_end noeat recolor=-1
"-A-Za-z0-9._:" stag_param noeat recolor=-1
-:stag_param TagParam
+:stag_param Attr
* stag_idle noeat recolor=-1
"-A-Za-z0-9._:" stag_param
"=" stag_delim recolor=-1
@@ -166,21 +176,21 @@ done
"'" stag_idle call=.tag_value_quoted(squote) recolor=-1
"-A-Za-z0-9._:" stag_value noeat recolor=-1
-:stag_value TagValue
+:stag_value Constant
* stag_idle noeat recolor=-1
"-A-Za-z0-9._:" stag_value
-:stag_end TagEdge
+:stag_end Tag
.ifdef php
* tag_begin call=js.js(php)
.else
* tag_begin call=js.js(html)
.endif
-:stag_done TagEdge
+:stag_done Tag
* tag_name_first buffer noeat
-:smistake_tag Mystery
+:smistake_tag Bad
* stag_idle noeat
# We're about to entry a script...
@@ -188,14 +198,14 @@ done
:ytag_enter_idle TagName
* ytag_idle noeat
-:ytag_idle Background
+:ytag_idle Idle
* ymistake_tag recolor=-1
" \t
\n" ytag_idle
"/" ytag_end recolor=-1
">" ytag_end noeat recolor=-1
"-A-Za-z0-9._:" ytag_param noeat recolor=-1
-:ytag_param TagParam
+:ytag_param Attr
* ytag_idle noeat recolor=-1
"-A-Za-z0-9._:" ytag_param
"=" ytag_delim recolor=-1
@@ -206,49 +216,52 @@ done
"'" ytag_idle call=.tag_value_quoted(squote) recolor=-1
"-A-Za-z0-9._:" ytag_value noeat recolor=-1
-:ytag_value TagValue
+:ytag_value Constant
* ytag_idle noeat recolor=-1
"-A-Za-z0-9._:" ytag_value
-:ytag_end TagEdge
+:ytag_end Tag
.ifdef php
* tag_begin call=css.css(php)
.else
* tag_begin call=css.css()
.endif
-:ytag_done TagEdge
+:ytag_done Tag
* tag_name_first buffer noeat
-:ymistake_tag Mystery
+:ymistake_tag Bad
* ytag_idle noeat
# SGML and comments
-:sgml_tag SGMLtag
+:sgml_tag SGMLTag
* sgml_tag
"-" sgml_tag_maybe_comment
- ">" sgml_end noeat recolor=-1
-:sgml_tag_maybe_comment SGMLtag
+ ">" idle
+:sgml_tag_maybe_comment SGMLTag
* sgml_tag
- "-" sgml_tag_comment
-:sgml_tag_comment SGMLtag
+ "-" sgml_tag_comment recolor=-4
+:sgml_tag_comment Comment comment
* sgml_tag_comment
"-" sgml_tag_maybe_comment_end
-:sgml_tag_maybe_comment_end SGMLtag
+ "BFHNTX" sgml_tag_comment noeat call=comment_todo.comment_todo()
+:sgml_tag_maybe_comment_end Comment comment
* sgml_tag_comment
- "-" sgml_tag
-:sgml_end SGMLtag
- * idle
+ "-" sgml_tag_end_comment
+:sgml_tag_end_comment Comment comment
+ ">" idle
# XML processing info
-:xml_pi XML_pi
+:xml_pi PIStart
+ * xml_pi_body noeat
+:xml_pi_body PIBody
* xml_pi
"?" xml_pi_maybe_end
-:xml_pi_maybe_end XML_pi
+:xml_pi_maybe_end PIBody
* xml_pi
"?" xml_pi_maybe_end
- ">" xml_pi_end noeat recolor=-1
-:xml_pi_end XML_pi
+ ">" xml_pi_end noeat recolor=-2
+:xml_pi_end PIEnd
* idle
.end
@@ -259,7 +272,7 @@ done
.subr tag_value_quoted
-:tag_value_quoted TagValue
+:tag_value_quoted Constant
* tag_value_quoted
.ifdef dquote
"\"" tag_value_quoted return
@@ -269,20 +282,20 @@ done
.endif
"<" tag_value_maybe_php
-:tag_value_maybe_php TagValue
+:tag_value_maybe_php Constant
* tag_value_quoted noeat
"?" tag_value_call_php recolor=-2
-:tag_value_call_php TagEdge
+:tag_value_call_php Tag
* tag_value_rtn_php noeat call=php.php()
-:tag_value_rtn_php TagEdge
+:tag_value_rtn_php Tag
* tag_value_quoted noeat
# Too many non-html things can be in quotes to do this...
# "&" tag_value_quoted call=.entity() recolor=-1
-:mistake_tag_value Mystery
+:mistake_tag_value Bad
* tag_value_quoted noeat
.end
@@ -312,7 +325,7 @@ done
:entity_end Entity
* entity return
-:entity_name Mystery
+:entity_name Bad
* mistake_idle noeat recolor=-1 strings
"AElig" entity_ok
"Aacgr" entity_ok
@@ -1339,7 +1352,7 @@ done
* mistake_entity noeat recolor=-1
";" entity_end noeat recolor=-1
-:mistake_entity Mystery
+:mistake_entity Bad
* idle noeat
.end
diff --git a/.config/joestar/syntax/htmlerb.jsf b/.config/joestar/syntax/htmlerb.jsf
@@ -2,11 +2,6 @@
# by Christian Nicolai (http://mycrobase.de)
=Idle
-=Keyword bold
-=Bad bold red
-=Brace magenta
-
-=ERB yellow
:begin Idle
* NULL noeat call=html.html(erb)
diff --git a/.config/joestar/syntax/ini.jsf b/.config/joestar/syntax/ini.jsf
@@ -2,14 +2,15 @@
# by Christian Nicolai (http://mycrobase.de)
=Idle
-=Comment green
-=Constant cyan
-=Escape bold cyan
-=Bad bold red
+=Comment
+=Escape
+=Bad
+=Value # Maybe should be +Constant but it's too colorful.
-=Key
-=Separator bold
-=Section bold magenta
+=Attr +Type
+=Key +Attr
+=Separator +Attr
+=Section +Preproc
:line_start Idle
* key noeat
@@ -19,8 +20,9 @@
"[" section recolor=-1
"=" missing_key recolor=-1
-:line_comment Comment
+:line_comment Comment comment
* line_comment
+ "BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" line_start
:section Section
@@ -59,7 +61,7 @@
* value noeat
" \t\r" value_pre
-:value Constant
+:value Value
* value
"\\" value_esc
"\n" line_start
diff --git a/.config/joestar/syntax/iptables.jsf b/.config/joestar/syntax/iptables.jsf
@@ -2,15 +2,15 @@
# by Christian Nicolai (http://mycrobase.de)
=Idle
-=Comment green
-=Constant cyan
-=Escape bold cyan
-=Bad bold red
+=Comment
+=Constant
+=Escape
+=Bad
-=Table bold
-=Policy bold blue
-=Option yellow
-=Module blue
+=Table +Preproc
+=Policy +Keyword
+=Option +Type
+=Module +DefinedIdent
:line_start Idle
* rest noeat
@@ -24,7 +24,7 @@
* rest
"\n" line_start
-:line_comment Comment
+:line_comment Comment comment
* line_comment
"\n" line_start
diff --git a/.config/joestar/syntax/java.jsf b/.config/joestar/syntax/java.jsf
@@ -3,17 +3,31 @@
# Needs: improve escape parsing
=Idle
-=Comment green
-=Constant cyan
-=Escape bold cyan
-=Type bold
-=Keyword bold
-=Operator bold
-=Bad bold red
-=Brace magenta
-=Control
-
-=Methods
+=Ident
+=Comment
+=Constant
+=Number +Constant
+=Boolean +Constant
+=String +Constant
+=Character +String
+=Escape
+=StringEscape +Escape +String
+=CharacterEscape +StringEscape
+=Type
+=Keyword
+=Operator +Keyword
+=Bad
+=Brace
+=Control
+=Statement +Keyword
+=Conditional +Statement
+=Loop +Statement
+=Structure +Type +Keyword
+=StorageClass +Type +Keyword
+=Include +Preproc
+=Label +DefinedIdent
+
+=Methods +DefinedFunction +DefinedIdent +Ident
:begin Idle
* begin noeat call=.java()
@@ -52,24 +66,22 @@
"*" comment recolor=-2
"/" line_comment recolor=-2
-:comment Comment
+:comment Comment comment
* comment
- # might be TODO label
"BFHNTX" comment noeat call=comment_todo.comment_todo()
"*" maybe_end_comment
-:maybe_end_comment Comment
+:maybe_end_comment Comment comment
* comment noeat
"/" idle
"*" maybe_end_comment
-:line_comment Comment
+:line_comment Comment comment
* line_comment
- # might be TODO label
"BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" idle
-:first_digit Constant
+:first_digit Number
* idle noeat
"xX" hex
"." float
@@ -81,170 +93,171 @@
* idle noeat
"0-9" bad_number
-:octal Constant
+:octal Number
* idle noeat
"0-7" octal
"89" bad_number recolor=-1
-:hex Constant
+:hex Number
* idle noeat
"0-9A-Fa-f" hex
-:decimal Constant
+:decimal Number
* idle noeat
"0-9" decimal
"eE" epart
"." float
-:maybe_float Constant
+:maybe_float Number
* idle recolor=-2 noeat
"0-9" float recolor=-2
-:float Constant
+:float Number
* idle noeat
"eE" epart
"0-9" float
-:epart Constant
+:epart Number
* idle noeat
"0-9+\-" enum
-:enum Constant
+:enum Number
* idle noeat
"0-9" enum
-:string Constant
+:string String string
* string
"\"" idle
"\\" string_escape recolor=-1
"%" string_control recolor=-1
-:string_escape Escape
+:string_escape StringEscape string
* string
"u" string_uni1
"0-7" string_octal2
"\n" string recolor=-2
-:string_uni1 Escape
+:string_uni1 StringEscape string
* string noeat
"0-9a-fA-F" string_uni2
-:string_uni2 Escape
+:string_uni2 StringEscape string
* string noeat
"0-9a-fA-F" string_uni3
-:string_uni3 Escape
+:string_uni3 StringEscape string
* string noeat
"0-9a-fA-F" string_uni4
-:string_uni4 Escape
+:string_uni4 StringEscape string
* string noeat
"0-9a-fA-F" string
-:string_octal2 Escape
+:string_octal2 StringEscape string
* string noeat
"0-7" string_octal3
-:string_octal3 Escape
+:string_octal3 StringEscape string
* string noeat
"0-7" string
-:string_control Escape
+:string_control StringEscape string
* string_control
"\n" reset
"diouxXeEfFgGaAcspn%SC" string
-:char Constant
+:char Character string
* char
"\n" reset
"'" idle
"\\" char_escape recolor=-1
-:char_escape Escape
+:char_escape CharacterEscape string
* char
"u" char_uni1
"0-7" char_octal2
"\n" char recolor=-2
-:char_uni1 Escape
+:char_uni1 CharacterEscape string
* char noeat
"0-9a-fA-F" char_uni2
-:char_uni2 Escape
+:char_uni2 CharacterEscape string
* char noeat
"0-9a-fA-F" char_uni3
-:char_uni3 Escape
+:char_uni3 CharacterEscape string
* char noeat
"0-9a-fA-F" char_uni4
-:char_uni4 Escape
+:char_uni4 CharacterEscape string
* char noeat
"0-9a-fA-F" char
-:char_octal2 Escape
+:char_octal2 CharacterEscape string
* char noeat
"0-7" char_octal3
-:char_octal3 Escape
+:char_octal3 CharacterEscape string
* char noeat
"0-7" char
-:ident Idle
+:ident Ident
* ident_end noeat markend strings
- "abstract" kw
- "assert" kw
+ "abstract" storage
+ "assert" stmt
"boolean" type
- "break" kw
+ "break" loop
"byte" type
- "case" kw
+ "case" label
"catch" kw
"char" type
- "class" kw
+ "class" struct
"const" bad_kw
- "continue" kw
- "default" kw
- "do" kw
+ "continue" loop
+ "default" label
+ "do" loop
"double" type
- "else" kw
- "enum" kw
- "extends" kw
- "false" lit
- "final" kw
+ "else" cond
+ "enum" storage
+ "extends" storage
+ "false" bool
+ "final" storage
"finally" kw
"float" type
- "for" kw
+ "for" loop
"goto" bad_kw
- "if" kw
- "implements" kw
- "import" kw
+ "if" cond
+ "implements" storage
+ "import" include
"instanceof" operator
"int" type
- "interface" kw
+ "interface" struct
"long" type
- "native" kw
+ "native" include
"new" operator
"null" lit
- "package" kw
- "private" kw
- "protected" kw
- "public" kw
- "return" kw
+ "package" include
+ "private" storage
+ "protected" storage
+ "public" storage
+ "return" stmt
+ "serializable" storage
"short" type
- "static" kw
- "strictfp" kw
+ "static" storage
+ "strictfp" storage
"super" kw
- "switch" kw
- "synchronized" kw
+ "switch" cond
+ "synchronized" storage
"this" kw
- "throw" kw
- "throws" kw
- "transient" kw
- "true" lit
+ "throw" stmt
+ "throws" storage
+ "transient" storage
+ "true" bool
"try" kw
"void" kw
- "volatile" kw
- "while" kw
+ "volatile" storage
+ "while" loop
done
"\c\p{Sc}" ident
@@ -257,13 +270,37 @@ done
:bad_kw Bad
* idle noeat
+:bool Boolean
+ * idle noeat
+
:lit Constant
* idle noeat
:operator Operator
* idle noeat
-:ident_end Idle
+:loop Loop
+ * idle noeat
+
+:cond Conditional
+ * idle noeat
+
+:storage StorageClass
+ * idle noeat
+
+:struct Structure
+ * idle noeat
+
+:include Include
+ * idle noeat
+
+:stmt Statement
+ * idle noeat
+
+:label Label
+ * idle noeat
+
+:ident_end Ident
* idle noeat
" " ident_end
"(" method_end noeat recolormark
diff --git a/.config/joestar/syntax/joerc.jsf b/.config/joestar/syntax/joerc.jsf
@@ -1,10 +1,12 @@
# JOE syntax highlight file for typical UNIX configuration files
=Idle
-=Comment green
-=String cyan
-=Escape bold cyan
-=Bad bold red
+=Comment
+=Constant
+=Number +Constant
+=String +Constant
+=Escape
+=Bad
:idle Idle
* not_comment
@@ -26,7 +28,7 @@
" " keybind_after_comma
"\n" keybind_after_comma
-:keybind_string String
+:keybind_string String string
* keybind_string
"\\" keybind_escape recolor=-1
"\"" keybind
@@ -69,6 +71,11 @@
"msg_color" sopt
"lmsg" sopt
"rmsg" sopt
+ "smsg" sopt
+ "zmsg" sopt
+ "xmsg" sopt
+ "aborthint" sopt
+ "helphint" sopt
"cpara" sopt
"encoding" sopt
"syntax" sopt
@@ -87,18 +94,18 @@ done
"\c" ident
:sopt Idle
- * dosopt noeat
+ * dosopt # Do eat the space
-:dosopt String
+:dosopt String string
* dosopt
"\n" idle
:nopt Idle
* bad recolor=-1
- " " nopt
+ " \t" nopt
"0-9" nopt1 recolor=-1
-:nopt1 String
+:nopt1 Number
* comment noeat
"0-9" nopt1
@@ -106,7 +113,7 @@ done
* bad
"\n" idle
-:comment Comment
+:comment Comment comment
* comment
"\n" idle
diff --git a/.config/joestar/syntax/js.jsf b/.config/joestar/syntax/js.jsf
@@ -4,24 +4,24 @@
# Define colors
=Idle
-=Comment green
-=Constant cyan
-=String cyan
-=StringEscape bold cyan
-=Regexp cyan
-=RegexpEscape bold cyan
-=RegexpOptions cyan
-=Number cyan
-=Type bold
-=CustomType
-=Keyword bold
-=Global bold
+=Comment
+=Constant
+=String +Constant
+=StringEscape +Escape
+=Regex +String
+=RegexEscape +StringEscape
+=RegexOptions
+=Number +Constant
+=Type
+=CustomType +DefinedType +DefinedIdent
+=Keyword
+=Global
=Exports
=ExportItem
-=Operator bold
-=Bad inverse bold red
-=Brace magenta
-=Assign bold
+=Operator
+=Bad
+=Brace
+=Assign
=Paren
=Bracket
=Semicolon
@@ -29,16 +29,16 @@
=PropSep
=Syntax
=Ident
-=Method
+=Method +Ident
# from html.jsf to support embedded languages
-=TagEdge green
+=TagEdge
:begin Idle
* begin noeat call=.js()
"#" shebang recolor=-1
-:shebang Comment
+:shebang Comment comment
* shebang
"\n" begin
@@ -191,41 +191,41 @@ done
"/" line_comment recolor=-2
"=" assign recolor=-2
-:comment Comment
+:comment Comment comment
* comment
# might be TODO label
"BFHNTX" comment noeat call=comment_todo.comment_todo()
"*" maybe_end_comment
-:maybe_end_comment Comment
+:maybe_end_comment Comment comment
* comment noeat
"/" idle
"*" maybe_end_comment
-:line_comment Comment
+:line_comment Comment comment
* line_comment
# might be TODO label
"BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" idle
-:regex Regexp
+:regex Regex
* regex
"\\" regex_quote recolor=-1
"[" regex_charclass
"/" regex_mod
"\n" regex_bad
-:regex_quote RegexpEscape
+:regex_quote RegexEscape
* regex
"\n" regex_bad
-:regex_charclass Regexp
+:regex_charclass Regex
* regex_charclass
"\\" regex_cc_quote recolor=-1
"\n" regex_bad_cc
"]" regex
-:regex_cc_quote RegexpEscape
+:regex_cc_quote RegexEscape
* regex_charclass
"\n" regex_bad_cc
@@ -246,7 +246,7 @@ done
:regex_bad_quote_cc Bad
* regex_bad_cc
-:regex_mod RegexpOptions
+:regex_mod RegexOptions
* after_term noeat
"igm" regex_mod
@@ -608,10 +608,10 @@ done
.subr string
-:string String
+:string String string
* string_body noeat mark
-:string_body String
+:string_body String string
* string
"\n" string_bad
.ifdef template
@@ -634,7 +634,7 @@ done
:string_bad_escape Bad
* string_bad
-:string_template StringEscape
+:string_template StringEscape string
* string_bad
"{" string_template_expr
@@ -647,42 +647,42 @@ done
.endif
"}" string_template_end noeat
-:string_template_end StringEscape
+:string_template_end StringEscape string
* string
-:string_escape StringEscape
+:string_escape StringEscape string
* string
"x" string_hex1
"u" string_uni1
"0-7" string_octal2
"\n" string_bad noeat
-:string_hex1 StringEscape
+:string_hex1 StringEscape string
* string noeat
"0-9a-fA-F" string_hex2
-:string_hex2 StringEscape
+:string_hex2 StringEscape string
* string noeat
"0-9a-fA-F" string
-:string_uni1 StringEscape
+:string_uni1 StringEscape string
* string noeat
"{" string_uni_brackets
"0-9a-fA-F" string_uni2
-:string_uni2 StringEscape
+:string_uni2 StringEscape string
* string noeat
"0-9a-fA-F" string_uni3
-:string_uni3 StringEscape
+:string_uni3 StringEscape string
* string noeat
"0-9a-fA-F" string_uni4
-:string_uni4 StringEscape
+:string_uni4 StringEscape string
* string noeat
"0-9a-fA-F" string
-:string_uni_brackets StringEscape
+:string_uni_brackets StringEscape string
* string_bad_escape noeat
.ifdef template
"`" string noeat
@@ -692,11 +692,11 @@ done
"}" string
"0-9a-fA-F" string_uni_brackets
-:string_octal2 StringEscape
+:string_octal2 StringEscape string
* string noeat
"0-7" string_octal3
-:string_octal3 StringEscape
+:string_octal3 StringEscape string
* string noeat
"0-7" string
diff --git a/.config/joestar/syntax/jsf.jsf b/.config/joestar/syntax/jsf.jsf
@@ -33,17 +33,19 @@
#####################
=Idle
-=Comment green
-=Conditional blue
-=Parameter bold blue
-=Keyword bold
-=Color yellow
-=StandardColor bold
-=State
-=Subr magenta
-=Literal cyan
-=Escape bold cyan
-=Bad bold red
+=Comment
+=Conditional +Precond +Preproc
+=Parameter +Ident
+=Keyword
+=Color +Type
+=ColorRef
+=State +Ident
+=Subr +Ident
+=Constant
+=Number +Constant
+=String +Constant
+=StringEscape +Escape +String
+=Bad
@@ -96,13 +98,13 @@
# If we see a non-digit or a '0', then we have seen the entire sync lines
# directive. The only thing that may appear on the rest of the line is a
# comment. Otherwise there may be more digits in the number.
-:sync_lines_first Literal
+:sync_lines_first Number
* comment_or_bad noeat
"0" comment_or_bad
"1-9" sync_lines
# Highlight the remainder of the number.
-:sync_lines Literal
+:sync_lines Number
* comment_or_bad noeat
"0-9" sync_lines
.endif
@@ -200,172 +202,12 @@
:colors_ws Idle
* color_bad recolor=-1
" \t" colors_ws
- "\i" color mark recolor=-1 buffer
+ "+" color_ref recolor=-1
"#\n" comment noeat
-# Here we recognize the attributes and standard color names. None of the
-# attributes or standard color names contain a digit except fg_NNN and bg_NNN,
-# which are handled specially below.
-:color Idle
- * color_unknown noeat strings
- "inverse" color_color
- "underline" color_color
- "bold" color_color
- "italic" color_color
- "blink" color_color
- "dim" color_color
- "white" color_color
- "cyan" color_color
- "magenta" color_color
- "blue" color_color
- "yellow" color_color
- "green" color_color
- "red" color_color
- "black" color_color
- "bg_white" color_color
- "bg_cyan" color_color
- "bg_magenta" color_color
- "bg_blue" color_color
- "bg_yellow" color_color
- "bg_green" color_color
- "bg_red" color_color
- "bg_black" color_color
- "WHITE" color_color
- "CYAN" color_color
- "MAGENTA" color_color
- "BLUE" color_color
- "YELLOW" color_color
- "GREEN" color_color
- "RED" color_color
- "BLACK" color_color
- "bg_WHITE" color_color
- "bg_CYAN" color_color
- "bg_MAGENTA" color_color
- "bg_BLUE" color_color
- "bg_YELLOW" color_color
- "bg_GREEN" color_color
- "bg_RED" color_color
- "bg_BLACK" color_color
- "fg_" color_number_first
- "bg_" color_number_first
- done
- "\c" color
-
-# We encountered what looks like a standard color but is unrecognized as such.
-:color_unknown Idle
-.ifdef CHECKING
- * color_bad recolormark noeat
-.else
- * colors_ws noeat
-.endif
-
-# Here we have seen either "fg_" or "bg_". We now expect to find a number. The
-# number should either be a one to two digit number, representing greyscale
-# intensity, in the range 0-23, or a three digit number, where each digit is in
-# the range 0-5 and represents the intensity of red, green, and blue
-# respectively.
-:color_number_first Idle
-.ifdef CHECKING
- * color_bad recolormark noeat
-.else
- * color_bad noeat
-.endif
- "0" color_zero
- "1" color_one
- "2" color_two
- "3-5" color_number_second
- "6-9" color_end
-
-# The first digit is a zero, thus we either have a greyscale intensity of 0, in
-# which case we should not see any more digits, or we have the first RGB digit,
-# in which case we should see two more ditits in the range 0-5.
-:color_zero Idle
-.ifdef CHECKING
- * color_bad recolormark noeat
-.else
- * color_bad noeat
-.endif
- "0-5" color_rgb_third
- " \t#\n" color_color recolormark noeat
-
-# The first digit is a one. If we see whitespace or a comment, then we have a
-# greyscale intensity of 1. If we see a digit 6-9, then we have a greyscale
-# intensity of 16-19. If we see a digit 0-5, then we either have a greyscale
-# intensity of 10-15 or an RGB value.
-:color_one Idle
-.ifdef CHECKING
- * color_bad recolormark noeat
-.else
- * color_bad noeat
-.endif
- "0-5" color_number_third
- "6-9" color_end
- " \t#\n" color_color recolormark noeat
-
-# The first digit is a two. If we see whitespace or a comment, then we have a
-# greyscale intensity of 2. If we see a digit 4-5, then we have the first two
-# digits of an RGB value. If we see a digit 0-3, then we either have a
-# greyscale intensity of 20-23 or an RGB value.
-:color_two Idle
-.ifdef CHECKING
- * color_bad recolormark noeat
-.else
- * color_bad noeat
-.endif
- "0-3" color_number_third
- "4-5" color_rgb_third
- " \t#\n" color_color recolormark noeat
-
-# We have seen one digit that could be either the greyscale intensity or the
-# first RGB digit. If we see any more digits, they we must have an RGB value,
-# because otherwise the number would be outside the range 0-23.
-:color_number_second Idle
-.ifdef CHECKING
- * color_bad recolormark noeat
-.else
- * color_bad noeat
-.endif
- "0-5" color_rgb_third
- " \t#\n" color_color recolormark noeat
-
-# We have seen two digits that could be either the greyscale intensity or the
-# first two RGB digits. If we see any more digits, they we must have an RGB
-# value, because otherwise the number would be outside the range 0-23.
-:color_number_third Idle
-.ifdef CHECKING
- * color_bad recolormark noeat
-.else
- * color_bad noeat
-.endif
- "0-5" color_end
- " \t#\n" color_color recolormark noeat
-
-# We have seen two digits, both 0-5, that either start with zero or are outside
-# the range 0-23. Thus we expect a third 0-5 digit.
-:color_rgb_third Idle
-.ifdef CHECKING
- * color_bad recolormark noeat
-.else
- * color_bad noeat
-.endif
- "0-5" color_end
-
-# We have seen "fg_" or "bg_" followed by one to three digits. Any more digits
-# would either be too many or make the number out of range. We now expect to
-# see whitespace, a comment, or a newline.
-:color_end Idle
-.ifdef CHECKING
- * color_bad recolormark noeat
-.else
- * color_bad noeat
-.endif
- " \t#\n" color_color recolormark noeat
-
-# This is a dummy state that simply provides the highlighting color for the
-# standard color or attribute and jumps to colors_ws without consuming any
-# characters.
-:color_color StandardColor
+:color_ref ColorRef
* colors_ws noeat
+ "\c" color_ref
# We have encountered something that is not recognized as a standard color or
# attribute. Continue to highlight characters as Bad until we see whitespace, a
@@ -459,7 +301,7 @@
# We are in a string. Continue until we see the close quote or a newline.
# Highlight escaped characters within the string differently. They start with a
# '\'.
-:string Literal string
+:string String string
* string
"\\" escape recolor=-1
"\"" need_next_state
@@ -470,7 +312,7 @@
.endif
# Highlight an escaped character within a string.
-:escape Escape string
+:escape StringEscape string
* string
# Loop over whitespace until we see the first character of the next state.
@@ -589,7 +431,7 @@
"-" recolor_amount_first mark recolor=-1
# The first digit of the argument to recolor must be non-zero.
-:recolor_amount_first Literal
+:recolor_amount_first Number
.ifdef CHECKING
* option_bad recolormark noeat
.else
@@ -599,7 +441,7 @@
"1-9" recolor_amount
# Keep highlighting digits until we see something else.
-:recolor_amount Literal
+:recolor_amount Number
* option_bad recolormark recolor=-1
"0-9" recolor_amount
" \t#\n" options_ws noeat
@@ -756,6 +598,7 @@
# Continue to highlight the comment until the end of the line.
:comment Comment comment
* comment
+ "BFHNTX" comment noeat call=comment_todo.comment_todo()
"\n" idle
diff --git a/.config/joestar/syntax/json.jsf b/.config/joestar/syntax/json.jsf
@@ -7,17 +7,19 @@
=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
+=Bracket +Brace
+=Brace +Control +Operator
+=Constant
+=Number +Constant
+=Boolean +Constant
+=Null +Constant
+=String +Constant
+=Key +Attr +Type +String
+=Escape
+=StringEscape +Escape +String
+
+=Bad
+=ERROR +Bad
:json Idle
* end noeat call=.value()
@@ -64,7 +66,7 @@
:key Idle
* keyBAD noeat
- "\"" pairsep noeat call=.string()
+ "\"" pairsep noeat call=.keystring()
" \t\n" key
:keyBAD Bad
@@ -129,19 +131,65 @@
.subr string
-:string String
+:string String string
* stringBAD noeat
"\"" body
+:body String string
+ * body
+ "\"" end
+ "\\" escape recolor=-1
+
:stringBAD ERROR
* end
-:body String
+:escape StringEscape string
+ * escapeBAD recolor=-2 noeat
+ "\"/bfnrt\\" body
+ "u" unicode1
+
+:escapeBAD Bad
+ * body
+
+:unicode1 StringEscape string
+ * unicodeBAD recolor=-3 noeat
+ "0-9a-fA-F" unicode2
+
+:unicode2 StringEscape string
+ * unicodeBAD recolor=-4 noeat
+ "0-9a-fA-F" unicode3
+
+:unicode3 StringEscape string
+ * unicodeBAD recolor=-5 noeat
+ "0-9a-fA-F" unicode4
+
+:unicode4 StringEscape string
+ * unicodeBAD recolor=-6 noeat
+ "0-9a-fA-F" body
+
+:unicodeBAD Bad
+ * body
+
+:end Idle
+ * NULL noeat return
+
+.end
+
+.subr keystring
+
+:string Key
+ * stringBAD noeat
+ "\"" body
+
+:body Key
* body
"\"" end
"\\" escape recolor=-1
-:escape StringEscape
+:stringBAD ERROR
+ * end
+
+:escape Escape
* escapeBAD recolor=-2 noeat
"\"/bfnrt\\" body
"u" unicode1
@@ -149,19 +197,19 @@
:escapeBAD Bad
* body
-:unicode1 StringEscape
+:unicode1 Escape
* unicodeBAD recolor=-3 noeat
"0-9a-fA-F" unicode2
-:unicode2 StringEscape
+:unicode2 Escape
* unicodeBAD recolor=-4 noeat
"0-9a-fA-F" unicode3
-:unicode3 StringEscape
+:unicode3 Escape
* unicodeBAD recolor=-5 noeat
"0-9a-fA-F" unicode4
-:unicode4 StringEscape
+:unicode4 Escape
* unicodeBAD recolor=-6 noeat
"0-9a-fA-F" body
@@ -215,7 +263,7 @@ done
:integer Number
* end noeat
"0-9" integer
- "." decimalpoint
+ "." decimalpart
"eE" exponentpart
:decimalpoint Number
diff --git a/.config/joestar/syntax/lisp.jsf b/.config/joestar/syntax/lisp.jsf
@@ -3,24 +3,24 @@
# Needs lots of work...
=Idle
-=Comment green
-=String cyan
-=Escape bold cyan
+=Comment
+=String +Constant
+=StringEscape +Escape
:idle Idle
* idle
";" comment recolor=-1
"\"" string recolor=-1
-:comment Comment
+:comment Comment comment
* comment
"\n" idle
-:string String
+:string String string
* string
"\"" idle
"\\" string_escape recolor=-1
-:string_escape Escape
+:string_escape StringEscape string
* string
"\n" string recolor=-2
diff --git a/.config/joestar/syntax/lua.jsf b/.config/joestar/syntax/lua.jsf
@@ -1,11 +1,22 @@
# JOE syntax highlight file for LUA
-=Idle
-=Bad bold red
-=Comment green
-=Constant cyan
-=Escape bold cyan
-=Keyword bold
+=Idle [blue]
+=Ident
+=Bad
+=Comment
+=Constant
+=Number +Constant
+=Boolean +Constant
+=String +Constant
+=Character +String +Constant
+=Escape
+=StringEscape +Escape
+=CharacterEscape +StringEscape
+=Keyword
+=Operator +Keyword
+=Statement +Keyword
+=Conditional +Statement
+=Loop +Statement
:idle Idle
* idle
@@ -37,59 +48,59 @@
* idle noeat
"[" lua_string_3 recolor=-5
-:lua_string_0 Constant
+:lua_string_0 String string
* lua_string_0
"]" lua_string_0_maybe_done
-:lua_string_0_maybe_done Constant
+:lua_string_0_maybe_done String string
* lua_string_0 noeat
"]" idle
-:lua_string_1 Constant
+:lua_string_1 String string
* lua_string_1
"]" lua_string_1_maybe_donea
-:lua_string_1_maybe_donea Constant
+:lua_string_1_maybe_donea String string
* lua_string_1 noeat
"=" lua_string_1_maybe_done
-:lua_string_1_maybe_done Constant
+:lua_string_1_maybe_done String string
* lua_string_1 noeat
"]" idle
-:lua_string_2 Constant
+:lua_string_2 String string
* lua_string_2
"]" lua_string_2_maybe_donea
-:lua_string_2_maybe_donea Constant
+:lua_string_2_maybe_donea String string
* lua_string_2 noeat
"=" lua_string_2_maybe_doneb
-:lua_string_2_maybe_doneb Constant
+:lua_string_2_maybe_doneb String string
* lua_string_2 noeat
"=" lua_string_2_maybe_done
-:lua_string_2_maybe_done Constant
+:lua_string_2_maybe_done String string
* lua_string_2 noeat
"]" idle
-:lua_string_3 Constant
+:lua_string_3 String string
* lua_string_3
"]" lua_string_3_maybe_donea
-:lua_string_3_maybe_donea Constant
+:lua_string_3_maybe_donea String string
* lua_string_3 noeat
"=" lua_string_3_maybe_doneb
-:lua_string_3_maybe_doneb Constant
+:lua_string_3_maybe_doneb String string
* lua_string_3 noeat
"=" lua_string_3_maybe_donec
-:lua_string_3_maybe_donec Constant
+:lua_string_3_maybe_donec String string
* lua_string_3 noeat
"=" lua_string_3_maybe_done
-:lua_string_3_maybe_done Constant
+:lua_string_3_maybe_done String string
* lua_string_3 noeat
"]" idle
@@ -97,90 +108,94 @@
* idle noeat
"-" maybe_long_comment recolor=-2
-:maybe_long_comment Comment
+:maybe_long_comment Comment comment
* line_comment noeat
"[" maybe_long_comment_0
-:maybe_long_comment_0 Comment
+:maybe_long_comment_0 Comment comment
* line_comment noeat
"=" maybe_long_comment_1
"[" long_comment_0
-:maybe_long_comment_1 Comment
+:maybe_long_comment_1 Comment comment
* line_comment noeat
"=" maybe_long_comment_2
"[" long_comment_1
-:maybe_long_comment_2 Comment
+:maybe_long_comment_2 Comment comment
* line_comment noeat
"=" maybe_long_comment_3
"[" long_comment_2
-:maybe_long_comment_3 Comment
+:maybe_long_comment_3 Comment comment
* line_comment noeat
"[" long_comment_3
-:long_comment_0 Comment
+:long_comment_0 Comment comment
* long_comment_0
+ "BFHNTX" long_comment_0 noeat call=comment_todo.comment_todo()
"]" maybe_done_comment_0
-:maybe_done_comment_0 Comment
+:maybe_done_comment_0 Comment comment
* long_comment_0 noeat
"]" idle
-:long_comment_1 Comment
+:long_comment_1 Comment comment
* long_comment_1
+ "BFHNTX" long_comment_1 noeat call=comment_todo.comment_todo()
"]" maybe_done_comment_1a
-:maybe_done_comment_1a Comment
+:maybe_done_comment_1a Comment comment
* long_comment_1 noeat
"=" maybe_done_comment_1
-:maybe_done_comment_1 Comment
+:maybe_done_comment_1 Comment comment
* long_comment_1 noeat
"]" idle
-:long_comment_2 Comment
+:long_comment_2 Comment comment
* long_comment_2
+ "BFHNTX" long_comment_2 noeat call=comment_todo.comment_todo()
"]" maybe_done_comment_2a
-:maybe_done_comment_2a Comment
+:maybe_done_comment_2a Comment comment
* long_comment_2 noeat
"=" maybe_done_comment_2b
-:maybe_done_comment_2b Comment
+:maybe_done_comment_2b Comment comment
* long_comment_2 noeat
"=" maybe_done_comment_2
-:maybe_done_comment_2 Comment
+:maybe_done_comment_2 Comment comment
* long_comment_2 noeat
"]" idle
-:long_comment_3 Comment
+:long_comment_3 Comment comment
* long_comment_3
"]" maybe_done_comment_3a
-:maybe_done_comment_3a Comment
+:maybe_done_comment_3a Comment comment
* long_comment_3 noeat
"=" maybe_done_comment_3b
-:maybe_done_comment_3b Comment
+:maybe_done_comment_3b Comment comment
* long_comment_3 noeat
"=" maybe_done_comment_3c
-:maybe_done_comment_3c Comment
+:maybe_done_comment_3c Comment comment
* long_comment_3 noeat
"=" maybe_done_comment_3
-:maybe_done_comment_3 Comment
+:maybe_done_comment_3 Comment comment
* long_comment_2 noeat
"]" idle
-:line_comment Comment
+:line_comment Comment comment
* line_comment
+ "BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" idle
-:first_digit Constant
+:first_digit Number
* idle noeat
"xX" hex
"." float
@@ -192,125 +207,143 @@
* idle noeat
"0-9" bad_number
-:octal Constant
+:octal Number
* idle noeat
"0-7" octal
"89" bad_number recolor=-1
-:hex Constant
+:hex Number
* idle noeat
"0-9A-Fa-f" hex
-:decimal Constant
+:decimal Number
* idle noeat
"0-9" decimal
"eE" epart
"." float
-:maybe_float Constant
+:maybe_float Number
* idle recolor=-2 noeat
"0-9" float recolor=-2
-:float Constant
+:float Number
* idle noeat
"eE" epart
"0-9" float
-:epart Constant
+:epart Number
* idle noeat
"0-9+\-" enum
-:enum Constant
+:enum Number
* idle noeat
"0-9" enum
-:string Constant
+:string String string
* string
"\"" idle
"\\" string_escape recolor=-1
"%" string_control recolor=-1
-:string_escape Escape
+:string_escape StringEscape string
* string
"x" string_hex1
"0-7" string_octal2
"\n" string recolor=-2
-:string_hex1 Escape
+:string_hex1 StringEscape string
* string noeat
"0-9a-fA-F" string_hex2
-:string_hex2 Escape
+:string_hex2 StringEscape string
* string noeat
"0-9a-fA-F" string
-:string_octal2 Escape
+:string_octal2 StringEscape string
* string noeat
"0-7" string_octal3
-:string_octal3 Escape
+:string_octal3 StringEscape string
* string noeat
"0-7" string
-:string_control Escape
+:string_control StringEscape string
* string
"\"" string noeat
"\n" reset
"0-9.\-+ #hjILtz$" string_control
-:char Constant
+:char Character string
* char
"\n" reset
"'" idle
"\\" char_escape recolor=-1
-:char_escape Escape
+:char_escape CharacterEscape string
* char
"x" char_hex1
"0-7" char_octal2
"\n" char recolor=-2
-:char_hex1 Escape
+:char_hex1 CharacterEscape string
* char noeat
"0-9a-fA-F" char_hex2
-:char_hex2 Escape
+:char_hex2 CharacterEscape string
* char noeat
"0-9a-fA-F" char
-:char_octal2 Escape
+:char_octal2 CharacterEscape string
* char noeat
"0-7" char_octal3
-:char_octal3 Escape
+:char_octal3 CharacterEscape string
* char noeat
"0-7" char
-:ident Idle
+:ident Ident
* idle noeat strings
"and" kw
"end" kw
- "in" kw
- "repeat" kw
- "break" kw
- "false" kw
+ "in" oper
+ "repeat" loop
+ "break" loop
+ "false" bool
"local" kw
- "return" kw
- "do" kw
- "for" kw
- "nil" kw
- "then" kw
- "else" kw
+ "return" stmt
+ "do" loop
+ "for" loop
+ "nil" const
+ "then" cond
+ "else" cond
"function" kw
- "not" kw
- "true" kw
- "elseif" kw
- "if" kw
- "or" kw
- "until" kw
- "while" kw
+ "not" oper
+ "true" bool
+ "elseif" cond
+ "if" cond
+ "or" oper
+ "until" loop
+ "while" loop
done
"\c" ident
:kw Keyword
* idle noeat
+
+:oper Operator
+ * idle noeat
+
+:stmt Statement
+ * idle noeat
+
+:cond Conditional
+ * idle noeat
+
+:loop Loop
+ * idle noeat
+
+:bool Boolean
+ * idle noeat
+
+:const Constant
+ * idle noeat
diff --git a/.config/joestar/syntax/m4.jsf b/.config/joestar/syntax/m4.jsf
@@ -1,11 +1,12 @@
# m4
=Idle
-=Comment green
-=Constant cyan
-=Var magenta
-=Brace bold magenta
-=Kw bold
+=Ident
+=Comment
+=Constant
+=Variable +Escape
+=Brace
+=Keyword
:start Idle
* start noeat call=.m4()
@@ -28,7 +29,7 @@
")" endbrace recolor=-1
.endif
-:quote Constant
+:quote Constant string
* quote
"]" idle
@@ -36,9 +37,9 @@
* idle noeat return
.ifdef quote
-:ident Constant
+:ident Constant string
.else
-:ident Idle
+:ident Ident
.endif
* maybe_macro noeat strings
"builtin" maybe_kw
@@ -95,15 +96,15 @@ done
* idle noeat
"(" kw recolormark noeat
-:kw Kw
+:kw Keyword
* idle noeat
"(" macro noeat
-:comment Comment
+:comment Comment comment
* comment
"\n" idle
-:macro Var
+:macro Variable
* idle noeat
"(" brace recolor=-1
@@ -113,7 +114,7 @@ done
.end
.subr quote
-:idle Constant
+:idle Constant string
* idle
"]" idle return
"[" idle call=.quote()
diff --git a/.config/joestar/syntax/mail.jsf b/.config/joestar/syntax/mail.jsf
@@ -9,18 +9,19 @@
-
=Idle
-=Head bold
-=HdTo red bg_white
-=HdFrom bold red
-=HdSbj bold magenta
-=HdDate bold
-=HdRRT black bg_white
-=HdGrp bold white bg_red
-=HdFuT bold red bg_yellow
-=HdBad bold red
-=Quot1 green bg_white
-=Quot2 bold blue bg_white
-=Sign bold magenta
+=Head +Statement +Keyword
+=Email +Escape +Head
+=HdTo +Email
+=HdFrom +Email
+=HdSbj +Title +String +Constant +Head
+=HdDate +Number +Constant +Head
+=HdRRT +Email
+=HdGrp +Email
+=HdFuT +Email
+=HdBad +Bad
+=Quot1 +Comment
+=Quot2 +DefinedIdent
+=Sign +Preproc
# Start in headers. We know we're out at the first blank line.
diff --git a/.config/joestar/syntax/matlab.jsf b/.config/joestar/syntax/matlab.jsf
@@ -3,12 +3,14 @@
#
=Idle
-=Comment green
-=Keyword blue
-=String magenta
-=Secondary magenta
-=Error red
-=Command yellow
+=Ident
+=Comment
+=Keyword
+=Number +Constant
+=String +Constant
+=Secondary +Ident
+=Error +Bad
+=Command +Statement +Keyword
:idle Idle
* idle
@@ -17,13 +19,15 @@
"a-zA-Z_." ident buffer
"!" command recolor=-1
"([{" parent buffer
+ "0-9" first_digit recolor=-1
:command Command
* command
"\n" idle
-:comment Comment
+:comment Comment comment
* comment
+ "BFHNTX" comment noeat call=comment_todo.comment_todo()
"\n" idle
:keyword Keyword
@@ -42,15 +46,34 @@
"\'" stringdone recolormark recolor=-1
"\n" idle
-:stringdone String
+:stringdone String string
* idle recolor=-1
-
+
+:first_digit Number
+ * idle noeat
+ "." float
+ "eE" epart
+ "0-9" first_digit
+
+:float Number
+ * idle noeat
+ "eE" epart
+ "0-9" float
+
+:epart Number
+ * idle noeat
+ "0-9+\-" enum
+
+:enum Number
+ * idle noeat
+ "0-9" enum
+
:secondary Secondary
* idle noeat
"a-zA-Z_0-9. " secondary
"\n;:=!\"\'+-,*(){}[]&\\\|/~" idle recolor=-1
-
-:ident Idle
+
+:ident Ident
* secondary noeat strings
"..." keywordc
"break" keyword
diff --git a/.config/joestar/syntax/md.jsf b/.config/joestar/syntax/md.jsf
@@ -6,18 +6,18 @@
# 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
+=Tag +DefinedFunction +DefinedIdent
+=Escape
+=Bad
+
+=Bold +Keyword
+=Headline +Title +Preproc +Statement
+=Quote +Comment
+=Code +String +Constant
+=List +TagName +Tag
+=LinkDesc +Title +String
+=Link +Number +Constant
+=Rule +Preproc
:line_start Idle
* idle noeat
diff --git a/.config/joestar/syntax/ocaml.jsf b/.config/joestar/syntax/ocaml.jsf
@@ -1,98 +1,34 @@
# JOE syntax highlight file for OCaml
-# A (deterministic) state machine which performs lexical analysis of OCaml.
-# (This is the "assembly language" of syntax highlighting. A separate
-# program could be used to convert a regular expression NFA syntax into this
-# format).
-
-# Each state begins with ':<name> <color-name>'
-# <color-name> is the color used for characters eaten by the state
-# (really a symbol for a user definable color).
-
-# The first state defined is the initial state.
-
-# Within a state, define transitions (jumps) to other states. Each
-# jump has the form: <character-list> <target-state> [<option>s]
-
-# There are two ways to specify <character-list>s, either * for any
-# character not otherwise specified, or a literal list of characters within
-# quotes (ranges and escape sequences allows). When the next character
-# matches any in the list, a jump to the target-state is taken and the
-# character is eaten (we advance to the next character of the file to be
-# colored).
-#
-# The * transition should be the first transition specified in the state.
-#
-# There are several options:
-# noeat do not eat the character, instead feed it to the next state
-# (this tends to make the states smaller, but be careful: you
-# can make infinite loops). 'noeat' implies 'recolor=-1'.
-#
-# recolor=-N Recolor the past N characters with the color of the
-# target-state. For example once /* is recognized as the
-# start of C comment, you want to color the /* with the C
-# comment color.
-#
-# buffer start copying characters to a buffer, beginning with this
-# one (it's ok to not terminate buffering with a matching
-# 'strings' option- the buffer is limited to leading 19
-# characters).
-#
-# strings A list of strings follows. If the buffer matches any of the
-# given strings, a jump to the target-state in the string list
-# is taken instead of the normal jump.
-#
-# istrings Same as strings, but case is ignored.
-#
-# hold Stop buffering string- a future 'strings' or 'istrings' will
-# look at contents of buffer at this point. Useful for distinguishing
-# commands and function calls in some languages 'write 7' is a command
-# 'write (' is a function call- hold lets us stop at the space and delay
-# the string lookup until the ( or 7.
-#
-# The format of the string list is:
-#
-# "string" <target-state> [<options>s]
-# "string" <target-state> [<options>s]
-# done
-#
-# (all of the options above are allowed except "strings", "istrings" and "noeat". noeat is
-# always implied after a matched string).
-#
-# Weirdness: only states have colors, not transitions. This means that you
-# sometimes have to make dummy states with '* next-state noeat' just to get
-# a color specification.
-
-# Define no. sync lines
-# You can say:
-# -200 means 200 lines
-# - means always start parsing from beginning of file when we lose sync
-# if nothing is specified, the default is -50
-
-# Define colors
-#
-# bold inverse blink dim underline italic
-# white cyan magenta blue yellow green red black
-# bg_white bg_cyan bg_magenta bg_blue bg_yellow bg_green bg_red bg_black
-
-=Expr
-=Bad bold red
-=Comment green
-=Literal cyan
-=Escape bold cyan
-=Type bold
-=Keyword bold
-=Operator blue
-=Control magenta
-=CapId blue
-=LowId
-=Stdlib bold blue
+=Idle
+=Bad
+=Comment
+=Constant
+=Number +Constant
+=String +Constant
+=StringEscape +Escape
+=Character +String
+=CharacterEscape +StringEscape
+=Boolean +Constant
+=Keyword
+=Type
+=Operator +Keyword
+=Control
+=Brace
+=LowId +Ident
+=CapId +DefinedIdent
+=Builtin +DefinedFunction +DefinedIdent
+=Structure +Keyword
+=StorageClass +Type +Keyword
+=Statement +Keyword
+=Loop +Statement
+=Conditional +Statement
# Bugs:
# = in some contexts is a control, not an operator (let, etc)
# "type" keyword introduces a type = type
-:expr Expr
+:expr Idle
* expr
"#.,)];" control recolor=-1
"!?" prefixop recolor=-1
@@ -160,9 +96,9 @@
:bracket Control
* expr noeat
- "*" comment1 recolor=-2
+ "*" comment recolor=-2
-:zero Literal
+:zero Number
* expr noeat
"0-9_" decimal
"b" binaryl buffer
@@ -175,123 +111,123 @@
"E" eparth buffer
"." float
-:decimal Literal
+:decimal Number
* expr noeat
"0-9_" decimal
"." float
"e" epartl buffer
"E" eparth buffer
-:binaryl Literal
+:binaryl Number
* lowid noeat recolor=-2
"01" binary
-:binaryh Literal
+:binaryh Number
* capid noeat recolor=-2
"01" binary
-:binary Literal
+:binary Number
* expr noeat
"01_" binary
-:octall Literal
+:octall Number
* lowid noeat recolor=-2
"0-7" octal
-:octalh Literal
+:octalh Number
* capid noeat recolor=-2
"0-7" octal
-:octal Literal
+:octal Number
* expr noeat
"0-7_" octal
-:hexl Literal
+:hexl Number
* lowid noeat recolor=-2
"0-9a-fA-F" hex
-:hexh Literal
+:hexh Number
* capid noeat recolor=-2
"0-9a-fA-F" hex
-:hex Literal
+:hex Number
* expr noeat
"0-9a-fA-F_" hex
-:float Literal
+:float Number
* expr noeat
"0-9_" float
"e" epartl buffer
"E" eparth buffer
-:epartl Literal
+:epartl Number
* lowid noeat recolor=-2
"0-9" enum
"+\-" enum1
-:eparth Literal
+:eparth Number
* capid noeat recolor=-2
"0-9" enum
"+\-" enum1
-:enum1 Literal
+:enum1 Number
* bad noeat
"0-9_" enum
-:enum Literal
+:enum Number
* expr noeat
"0-9_" enum
-:string Literal
+:string String string
* string
"\"" expr
"\\" string_escape recolor=-1
"%" string_control recolor=-1
-:string_escape Escape
+:string_escape StringEscape string
* string
"x" string_hex1
"0-7" string_octal2
-:string_hex1 Escape
+:string_hex1 StringEscape string
* string noeat
"0-9a-fA-F" string_hex2
-:string_hex2 Escape
+:string_hex2 StringEscape string
* string noeat
"0-9a-fA-F" string
-:string_octal2 Escape
+:string_octal2 StringEscape string
* string noeat
"0-7" string_octal3
-:string_octal3 Escape
+:string_octal3 StringEscape string
* string noeat
"0-7" string
-:string_control Escape
+:string_control StringEscape string
* string_control
"\"" string noeat
"diouxXeEfFgGaAcspn%SC" string
-:char Literal
+:char Character string
* charend
"\\" char_escape recolor=-1
-:charend Literal
+:charend Character string
* bad noeat
"\'" expr
-:char_escape Escape
+:char_escape CharacterEscape string
* charend
"x" char_hex1
"0-7" char_octal2
-:char_hex1 Escape
+:char_hex1 CharacterEscape string
* bad noeat
"0-9a-fA-F" char_hex2
-:char_hex2 Escape
+:char_hex2 CharacterEscape string
* charend noeat
"0-9a-fA-F" charend
-:char_octal2 Escape
+:char_octal2 CharacterEscape string
* charend noeat
"0-7" char_octal3
-:char_octal3 Escape
+:char_octal3 CharacterEscape string
* charend noeat
"0-7" charend
@@ -309,42 +245,41 @@
"downto" kw
"else" kw
"end" kw
- "exception" kw
+ "exception" kw
"external" kw
- "false" kw
- "for" kw
+ "false" bool
+ "for" loop
"fun" kw
- "function" kw
- "functor" kw
- "if" kw
+ "function" struct
+ "functor" struct
+ "if" cond
"in" kw
"include" kw
"inherit" kw
"initializer" kw
- "lazy" kw
+ "lazy" storage
"let" kw
"match" kw
- "method" kw
- "module" kw
- "mutable" kw
- "new" kw
+ "method" struct
+ "module" struct
+ "mutable" storage
"object" kw
"of" kw
"open" kw
- "private" kw
+ "private" storage
"raise" kw # technically not, but ...
"rec" kw
"sig" kw
"struct" kw
- "then" kw
+ "then" cond
"to" kw
- "true" kw
+ "true" bool
"try" kw
"type" kw
"val" kw
- "virtual" kw
- "when" kw
- "while" kw
+ "virtual" storage
+ "when" loop
+ "while" loop
"with" kw
"asr" operatorkw
"land" operatorkw
@@ -353,6 +288,7 @@
"lsr" operatorkw
"lxor" operatorkw
"mod" operatorkw
+ "new" operatorkw
"or" operatorkw
done
"a-zA-Z0-9_'" lowid
@@ -363,6 +299,21 @@ done
:operatorkw Operator
* expr noeat
+:bool Boolean
+ * expr noeat
+
+:loop Loop
+ * expr noeat
+
+:struct Structure
+ * expr noeat
+
+:storage StorageClass
+ * expr noeat
+
+:cond Conditional
+ * expr noeat
+
:capid CapId
* expr noeat strings
"Arg" stdlib
@@ -407,7 +358,7 @@ done
done
"a-zA-Z0-9_'" capid
-:stdlib Stdlib
+:stdlib Builtin
* expr noeat
:type1 Type
@@ -433,44 +384,23 @@ done
"(" expr # too deep nesting
")" type2
-:comment1 Comment
- * comment1
- "(" nestcomment1
- "*" endcomment1
-
-:nestcomment1 Comment
- * comment1
- "*" comment2
-
-:endcomment1 Comment
- * comment1
- ")" expr
- "*" endcomment1
-
-:comment2 Comment
- * comment2
- "(" nestcomment2
- "*" endcomment2
-
-:nestcomment2 Comment
- * comment2
- "*" comment3
-
-:endcomment2 Comment
- * comment2
- ")" comment1
- "*" endcomment2
-
-:comment3 Comment
- * comment3
- "(" nestcomment3
- "*" endcomment3
-
-:nestcomment3 Comment
- * comment3
- "*" expr # too deep nesting
-
-:endcomment3 Comment
- * comment3
- ")" comment2
- "*" endcomment3
+:comment Comment comment
+ * expr call=.comment()
+
+.subr comment
+
+:comment_body Comment comment
+ * comment_body
+ "(" nest_comment
+ "*" end_comment
+ "BFHNTX" comment_body noeat call=comment_todo.comment_todo()
+
+:end_comment Comment comment
+ * comment_body noeat
+ ")" end_comment return
+
+:nest_comment Comment comment
+ * comment_body
+ "*" comment_body call=.comment()
+
+.end
diff --git a/.config/joestar/syntax/pascal.jsf b/.config/joestar/syntax/pascal.jsf
@@ -2,13 +2,20 @@
# With support for Delphi and FPC by Michael Van Canneyt
=Idle
-=Comment green
-=Constant cyan
-=Type bold
-=Keyword bold
-=Operator bold
-=Function bold
-=Bad bold red
+=Comment
+=Constant
+=String +Constant
+=Number +Constant
+=Type
+=Keyword
+=Statement +Keyword
+=Operator +Keyword
+=Loop +Statement
+=Conditional +Statement
+=DefinedFunction +DefinedIdent
+=Builtin +DefinedFunction
+=Structure +Type
+=Bad
:idle Idle
* idle
@@ -32,27 +39,29 @@
* idle noeat
"/" line_comment recolor=-2
-:line_comment Comment
+:line_comment Comment comment
* line_comment
+ "BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" reset
-:comment Comment
+:comment Comment comment
* comment
+ "BFHNTX" comment noeat call=comment_todo.comment_todo()
"*" maybe_end_comment
"}" idle
-:maybe_end_comment Comment
+:maybe_end_comment Comment comment
* comment noeat
")" idle
# String constant
-:string Constant
+:string String string
* string
"\n" idle
"'" maybe_end_string
-:maybe_end_string Constant
+:maybe_end_string String string
* idle recolor=-1 noeat
"'" string
@@ -73,41 +82,41 @@
:bad Bad
* idle noeat
-:hex_number Constant
+:hex_number Number
* idle noeat
"0-9" hex_number
"a-fA-F" hex_number
-:bin_number Constant
+:bin_number Number
* idle noeat
"01" bin_number
"2-9" bad recolor=-1
-:oct_number Constant
+:oct_number Number
* idle noeat
"0-7" oct_number
"89" bad recolor=-1
-:number Constant
+:number Number
* idle noeat
"0-9" number
"eE" epart
"." dot
-:dot Constant
+:dot Number
* idle noeat
"0-9" float
-:float Constant
+:float Number
* idle noeat
"eE" epart
"0-9" float
-:epart Constant
+:epart Number
* idle noeat
"0-9+\-" enum
-:enum Constant
+:enum Number
* idle noeat
"0-9" enum
@@ -119,18 +128,18 @@
"and" operator
"array" type
"begin" kw
- "case" kw
+ "case" cond
"const" kw
"div" operator
"do" kw
"downto" kw
- "else" kw
+ "else" cond
"end" kw
"file" kw
- "for" kw
+ "for" loop
"function" kw
- "goto" kw
- "if" kw
+ "goto" loop
+ "if" cond
"in" kw
"label" kw
"mod" operator
@@ -142,13 +151,13 @@
"procedure" kw
"program" kw
"record" kw
- "repeat" kw
+ "repeat" loop
"set" kw
"then" kw
"type" kw
- "until" kw
+ "until" loop
"var" kw
- "while" kw
+ "while" loop
"with" kw
# Delphi keywords
"to" kw
@@ -159,7 +168,7 @@
"cdecl" kw
"stdcall" kw
"register" kw
- "interface" kw
+ "interface" struct
"library" kw
"constructor" kw
"destructor" kw
@@ -171,7 +180,7 @@
"protected" kw
"initialization" kw
"finalization" kw
- "class" kw
+ "class" struct
"object" kw
"resourcestring" kw
"property" kw
@@ -213,11 +222,20 @@ done
:type Type
* idle noeat
+:loop Loop
+ * idle noeat
+
+:cond Conditional
+ * idle noeat
+
+:struct Structure
+ * idle noeat
+
:operator Operator
* idle noeat
:word_constant Constant
* idle noeat
-:function Function
+:function Builtin
* idle noeat
diff --git a/.config/joestar/syntax/perl.jsf b/.config/joestar/syntax/perl.jsf
@@ -3,16 +3,24 @@
# Define colors
=Idle
-=Preproc blue
-=Comment green
-=POD green
-=Constant cyan
-=Escape bold cyan
-=Type bold
-=Keyword bold
-=Bad bold red
-=Var yellow
-
+=Ident
+=Comment
+=Pod +Preproc
+=Variable +DefinedIdent # TODO: Make this work.
+=Constant
+=Number +Constant
+=String +Constant
+=StringEscape +Escape
+=StringVariable +StringEscape
+=Regex +String
+=RegexEscape +StringEscape
+=Type
+=Keyword
+=Statement +Keyword
+=Loop +Statement
+=Conditional +Statement
+=Structure +Statement
+=Bad
:begin Idle
* begin noeat call=.perl()
@@ -47,13 +55,13 @@
"'" char recolor=-1
"`" backtick recolor=-1
"<" maybe_inc
- "$" not_string buffer
+ "$" not_string buffer recolor=-1
.ifdef mason_block
"&%" perl_maybe_done buffer
- "-@\i" ident buffer
+ "-@\i" ident buffer recolor=-1
.else
"/" regex recolor=-1
- "-\i@%&" ident buffer
+ "-\i@%&" ident buffer recolor=-1
.endif
:perl_maybe_done Idle
@@ -73,10 +81,10 @@
"\"" string recolor=-1
"'" char recolor=-1
"`" backtick recolor=-1
- "$" not_string buffer
+ "$" not_string buffer recolor=-1
"<" maybe_inc
.ifdef mason_block
- "&%" perl_maybe_done buffer
+ "&%" perl_maybe_done buffer recolor=-1
"\i@" maybe_string buffer
.else
"\i@%&" maybe_string buffer
@@ -86,11 +94,11 @@
* pod_start
"\n" pod_block
-:pod_block POD
+:pod_block Pod
* pod_block
"=" pod_ident buffer
-:pod_ident POD
+:pod_ident Pod
* pod_block noeat strings
"=cut" rest
done
@@ -115,14 +123,14 @@ done
"'\"" quoted_inc_start save_c recolor=-1
"\i" inc buffer noeat
-:quoted_inc_start Var
+:quoted_inc_start Variable
* quoted_inc buffer
-:quoted_inc Var
+:quoted_inc Variable
* quoted_inc
& skipline save_s
-:inc Var
+:inc Variable
* skipline save_s noeat
"\c" inc
@@ -132,45 +140,48 @@ done
* skipline
"\n" next_line
-:todelim Constant
+:todelim String string
* todelim
"\n" next_line strings
"&" founddelim
done
# eat \n so it's not in string.
-:next_line Constant
+:next_line String string
* todelim buffer
"\n" next_line
-:founddelim Var
+:founddelim Variable
* idle noeat
-:regex Constant
+:regex Regex
* regex
"\\" regex_quote recolor=-1
"/" rest
-:regex_quote Escape
+:regex_quote RegexEscape
* regex
:not_string Idle
* rest noeat
- "\i" ident
+ "\i" ident
"\"'`#" rest
-:line_comment Comment
+:line_comment Comment comment
* line_comment
+ "BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" rest
-:line_comment_i Comment
+:line_comment_i Comment comment
* line_comment_i
+ "BFHNTX" line_comment_i noeat call=comment_todo.comment_todo()
"\n" idle noeat
-:end_of_file_comment Comment
+:end_of_file_comment Comment comment
+ "BFHNTX" end_of_file_comment noeat call=comment_todo.comment_todo()
* end_of_file_comment
-:first_digit Constant
+:first_digit Number
* rest noeat
"x" hex
"b" binary
@@ -183,54 +194,54 @@ done
* rest noeat
"0-9" bad_number
-:octal Constant
+:octal Number
* rest noeat
"0-7_" octal
"89" bad_number recolor=-1
-:binary Constant
+:binary Number
* rest noeat
"01_" binary
"2-9" bad_number recolor=-1
-:hex Constant
+:hex Number
* rest noeat
"0-9A-Fa-f_" hex
-:decimal Constant
+:decimal Number
* rest noeat
"0-9_" decimal
"eE" epart
"." float
-:maybe_float Constant
+:maybe_float Number
* rest recolor=-2 noeat
"0-9" float recolor=-2
-:float Constant
+:float Number
* rest noeat
"eE" epart
"0-9_" float
-:epart Constant
+:epart Number
* rest noeat
"0-9+\-" enum
-:enum Constant
+:enum Number
* rest noeat
"0-9_" enum
-:string Constant
+:string String string
* string
"\"" rest
"\\" string_escape recolor=-1
"$@" string_subst recolor=-1
-:string_subst Escape
+:string_subst StringVariable string
* string noeat recolor=-1
"\c" string_subst
-:string_escape Escape
+:string_escape StringEscape string
* string
"x" string_hex1
"c" string_ctrl
@@ -238,59 +249,59 @@ done
"0-7" string_octal2
"\n" string recolor=-2
-:string_named Escape
+:string_named StringEscape string
* string
"{" string_named_rest
-:string_named_rest Escape
+:string_named_rest StringEscape string
* string_named_rest
"}" string
-:string_ctrl Escape
+:string_ctrl StringEscape string
* string
-:string_hex1 Escape
+:string_hex1 StringEscape string
* string noeat
"{" string_unicode
"0-9a-fA-F" string_hex2
-:string_unicode Escape
+:string_unicode StringEscape string
* string_unicode
"}" string
-:string_hex2 Escape
+:string_hex2 StringEscape string
* string noeat
"0-9a-fA-F" string
-:string_octal2 Escape
+:string_octal2 StringEscape string
* string noeat
"0-7" string_octal3
-:string_octal3 Escape
+:string_octal3 StringEscape string
* string noeat
"0-7" string
-:char Constant
+:char String string
* char
"\n" idle noeat
"'" rest
"\\" char_escape recolor=-1
-:char_escape Escape
+:char_escape StringEscape string
* char recolor=-2
"\\'" char
-:backtick Constant
+:backtick String string
* backtick
"`" rest
"\\" backtick_escape recolor=-1
"$@" backtick_subst recolor=-1
-:backtick_subst Escape
+:backtick_subst StringVariable string
* backtick noeat recolor=-1
"\c" backtick_subst
-:backtick_escape Escape
+:backtick_escape StringEscape string
* backtick
"x" backtick_hex1
"c" backtick_ctrl
@@ -298,69 +309,72 @@ done
"0-7" backtick_octal2
"\n" backtick recolor=-2
-:backtick_named Escape
+:backtick_named StringEscape string
* backtick
"{" backtick_named_rest
-:backtick_named_rest Escape
+:backtick_named_rest StringEscape string
* backtick_named_rest
"}" backtick
-:backtick_ctrl Escape
+:backtick_ctrl StringEscape string
* backtick
-:backtick_hex1 Escape
+:backtick_hex1 StringEscape string
* backtick noeat
"{" backtick_unicode
"0-9a-fA-F" backtick_hex2
-:backtick_unicode Escape
+:backtick_unicode StringEscape string
* backtick_unicode
"}" backtick
-:backtick_hex2 Escape
+:backtick_hex2 StringEscape string
* backtick noeat
"0-9a-fA-F" backtick
-:backtick_octal2 Escape
+:backtick_octal2 StringEscape string
* backtick noeat
"0-7" backtick_octal3
-:backtick_octal3 Escape
+:backtick_octal3 StringEscape string
* backtick noeat
"0-7" backtick
-:ident Idle
+# TODO: Tease out the variable logic from this so that we can highlight
+# variables separate from other identifiers.
+
+:ident Ident
* rest noeat strings
"BEGIN" kw
"END" kw
- "if" kw
- "unless" kw
- "while" kw
- "until" kw
- "foreach" kw
- "sub" kw
+ "if" cond
+ "unless" cond
+ "while" loop
+ "until" loop
+ "foreach" loop
+ "sub" struct
"my" kw
- "do" kw
- "if" kw
- "else" kw
- "elsif" kw
- "for" kw
- "continue" kw
- "last" kw
- "print" kw
+ "do" loop
+ "if" cond
+ "else" cond
+ "elsif" cond
+ "for" loop
+ "continue" loop
+ "last" loop
+ "print" stmt
"reset" kw
- "die" kw
- "goto" kw
- "require" kw
+ "die" stmt
+ "goto" stmt
+ "require" stmt
"use" kw
"eval" kw
"redo" kw
- "next" kw
- "warn" kw
- "return" kw
- "printf" kw
- "close" kw
+ "next" loop
+ "warn" stmt
+ "return" stmt
+ "printf" stmt
+ "close" stmt
"package" kw
"m" match
"qr" match
@@ -392,17 +406,29 @@ done
:kw Keyword
* rest noeat
+:cond Conditional
+ * rest noeat
+
+:loop Loop
+ * rest noeat
+
+:struct Structure
+ * rest noeat
+
+:stmt Statement
+ * rest noeat
+
:match Idle
* inmatch save_c recolor=-1
" " match
-:inmatch Constant
+:inmatch Regex
* inmatch
% inmatch call=.inmatch()
& rest
"\\" inmatch_quote recolor=-1
-:inmatch_quote Escape
+:inmatch_quote RegexEscape
* inmatch
:subst Idle
@@ -410,52 +436,52 @@ done
"<([{`" delim_insubst save_c recolor=-1
" " subst
-:insubst Constant
+:insubst Regex
* insubst
& inrepl
"\\" insubst_quote recolor=-1
-:insubst_quote Escape
+:insubst_quote RegexEscape
* insubst
-:inrepl Constant
+:inrepl Regex
* inrepl
& rest
"\\" inrepl_quote
-:inrepl_quote Escape
+:inrepl_quote RegexEscape
* inrepl
-:delim_insubst Constant
+:delim_insubst Regex
* delim_insubst
& delim_repl
"\\" delim_quote
-:delim_quote Escape
+:delim_quote RegexEscape
* delim_insubst
-:delim_repl Constant
+:delim_repl Regex
* repl save_c recolor=-1
" " delim_repl
-:repl Constant
+:repl Regex
* repl
& rest
"\\" repl_quote
-:repl_quote Escape
+:repl_quote RegexEscape
* repl
.end
.subr inmatch
-:inmatch Constant
+:inmatch Regex
* inmatch
% inmatch call=.inmatch()
& inmatch return
"\\" inmatch_quote recolor=-1
-:inmatch_quote Escape
+:inmatch_quote RegexEscape
* inmatch
.end
diff --git a/.config/joestar/syntax/php.jsf b/.config/joestar/syntax/php.jsf
@@ -5,31 +5,35 @@
# * 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
+=Comment
+=Constant
+=Number +Constant
+=String +Constant
+=StringEscape +Escape
+=Character +Constant
+=CharacterEscape +Escape
+=Boolean +Constant
+=Escape
+=Keyword
+=Variable +DefinedIdent
+=Builtin +DefinedFunc
+=Operator +Keyword
+=Statement +Keyword
+=Conditional +Statement
+=Loop +Statement
+=Structure +Statement
+=Label +DefinedIdent
+=StorageClass +Type +Keyword
# 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 Variable
* call_failed
# PHP highlighter.
@@ -86,26 +90,38 @@
done
"\c" inhere_name
-:brace Methods
+:brace Builtin
* idle noeat
-:php_var Var
+:php_var Variable
* idle noeat
"\c" php_var
-:var_indqstring Var
- * string_dq recolor=-1
- "\i" var_indqstring
- "\"" string_dq noeat
- "\\" string_dq_esc recolor=-1
-
-:var_inbqstring Var
- * string_bq recolor=-1
- "\i" var_inbqstring
- "\`" string_sq noeat
- "\\" string_bq_esc recolor=-1
-
-:maybe_method Methods
+:var_indqstring Variable
+ * string_dq recolor=-1
+ "\i" var_indqstringr
+ "\"" string_dq noeat
+ "\\" string_dq_esc recolor=-1
+
+:var_indqstringr Variable
+ * string_dq recolor=-1
+ "\c" var_indqstringr
+ "\"" string_dq noeat
+ "\\" string_dq_esc recolor=-1
+
+:var_inbqstring Variable
+ * string_bq recolor=-1
+ "\i" var_inbqstringr
+ "\`" string_bq noeat
+ "\\" string_bq_esc recolor=-1
+
+:var_inbqstringr Variable
+ * string_bq recolor=-1
+ "\c" var_inbqstringr
+ "\`" string_bq noeat
+ "\\" string_bq_esc recolor=-1
+
+:maybe_method Builtin
* idle recolor=-1
"?" idle_qmark
"%" idle_hash
@@ -119,9 +135,9 @@ done
"{}" brace recolor=-1
">" method recolor=-2
-:method Methods
- * idle recolor=-1
- "\i" method recolor=-1
+:method Builtin
+ * idle recolor=-1
+ "\i\c" method recolor=-1
:idle_qmark Idle
* idle noeat
@@ -131,8 +147,9 @@ done
* idle noeat
">" idle recolor=-2 return
-:sh_comment Comment
+:sh_comment Comment comment
* sh_comment
+ "BFHNTX" sh_comment noeat call=comment_todo.comment_todo()
"\n" idle
:slash Idle
@@ -140,154 +157,183 @@ done
"*" comment recolor=-2
"/" line_comment recolor=-2
-:comment Comment
+:comment Comment comment
* comment
"*" maybe_end_comment
+ "BFHNTX" comment noeat call=comment_todo.comment_todo()
-:maybe_end_comment Comment
+:maybe_end_comment Comment comment
* comment
"/" idle
"*" maybe_end_comment
-:line_comment Comment
+:line_comment Comment comment
* line_comment
"\n" idle
+ "BFHNTX" line_comment noeat call=comment_todo.comment_todo()
-
-:string_sq Constant_sq
+:string_sq Character string
* string_sq
"\'" idle
"\\" string_sq_esc recolor=-1
-:string_sq_esc Escape
+:string_sq_esc CharacterEscape string
* string_sq
"\n" string_sq recolor=-2
-:string_dq Constant
+:string_dq String string
* string_dq
"$" var_indqstring recolor=-1
"\"" idle
"\\" string_dq_esc recolor=-1
-:string_dq_esc Escape
+:string_dq_esc StringEscape string
* string_dq
"\n" string_dq recolor=-2
-:string_bq Constant
+:string_bq String string
* string_bq
"$" var_inbqstring recolor=-1
"\`" idle
"\\" string_bq_esc recolor=-1
-:string_bq_esc Escape
+:string_bq_esc StringEscape string
* string_bq
"\n" string_bq recolor=-2
-:first_digit Constant
+:first_digit Number
* idle noeat
"xX" hex
"." float
"0" octal
"1-9" first_number
-:octal Constant
+:octal Number
* idle noeat
"0-7" octal
-:hex Constant
+:hex Number
* idle noeat
"0-9A-Fa-f" hex
-:first_number Constant
+:first_number Number
* idle noeat
"0-9" first_number
"." float
-:maybe_float Constant
+:maybe_float Number
* idle recolor=-2 noeat
"0-9" float recolor=-2
-:float Constant
+:float Number
* idle noeat
"eE" epart
"0-9" float
-:epart Constant
+:epart Number
* idle noeat
"0-9+\-" enum
-:enum Constant
+:enum Number
* 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
+ "addslashes" builtin
+ "array" builtin
+ "array_keys" builtin
+ "count" builtin
+ "date" builtin
+ "chr" builtin
+ "empty" builtin
+ "end" builtin
+ "header" builtin
+ "highlight_file" builtin
+ "htmlspecialchars" builtin
+ "isset" builtin
+ "shuffle" builtin
+ "strip_tags" builtin
+ "strlen" builtin
+ "strpos" builtin
+ "strrpos" builtin
+ "substr" builtin
+ "trim" builtin
+ "TRUE" bool
+ "FALSE" bool
+ "true" bool
+ "false" bool
+ "and" oper
+ "as" oper
+ "break" loop
+ "case" label
+ "class" struct
+ "continue" loop
+ "declare" struct
"default" kw
"die" kw
- "do" kw
- "echo" kw
- "else" kw
- "elseif" kw
+ "do" loop
+ "echo" stmt
+ "else" cond
+ "elseif" cond
"eval" kw
"exception" kw
"exit" kw
- "extends" kw
- "for" kw
- "foreach" kw
- "function" kw
+ "extends" struct
+ "for" loop
+ "foreach" loop
+ "function" struct
"global" kw
- "if" kw
- "include" kw
- "include_once" kw
+ "if" cond
+ "include" stmt
+ "include_once" stmt
"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
+ "or" oper
+ "print" stmt
+ "private" storage
+ "public" storage
+ "require" stmt
+ "require_once" stmt
+ "return" stmt
+ "static" storage
+ "switch" cond
+ "unset" stmt
+ "while" loop
done
"\c" ident
:kw Keyword
* idle noeat
-:meth Methods
+:builtin Builtin
+ * idle noeat
+
+:bool Boolean
* idle noeat
-:var Var
+:var Variable
* mark noeat
+:oper Operator
+ * idle noeat
+
+:loop Loop
+ * idle noeat
+
+:cond Conditional
+ * idle noeat
+
+:stmt Statement
+ * idle noeat
+
+:label Label
+ * idle noeat
+
+:struct Structure
+ * idle noeat
+
+:storage StorageClass
+ * idle noeat
+
.end
diff --git a/.config/joestar/syntax/powershell.jsf b/.config/joestar/syntax/powershell.jsf
@@ -20,23 +20,38 @@
# 2.3.6 100%
=Idle
-=Comment green
-=Constant cyan
-=ConstEscape bold cyan
-=Keyword bold
-=Var magenta
-=VarEscape bold magenta
+=Ident
+=Comment
+=Constant
+=Number +Constant
+=Boolean +Constant
+=String +Constant
+=StringEscape +Escape
+=StringVariable +StringEscape
+=Keyword
+=Type
+=Operator +Keyword
+=Statement +Keyword
+=Structure +Statement
+=Conditional +Statement
+=Loop +Statement
+=Variable +DefinedIdent
+=VariableEscape +Escape
+
+=ParamKey +Attr +Operator
:idle Idle
* idle
"#" comment recolor=-1
- "$" var recolor=-1
+ "$" var recolor=-1 mark
"@" var_array recolor=-1
"<" idle1
+ "[" typespec
"\"" string_dq recolor=-1
"'" string_sq recolor=-1
"@" idle2
- "a-zA-Z_-" ident buffer
+ "a-zA-Z_" ident buffer
+ "-" param recolor=-1
:idle1 Idle
* idle noeat
@@ -47,213 +62,268 @@
"\"" herestr_dq recolor=-2
"'" herestr_sq recolor=-2
-:comment Comment
+:comment Comment comment
* comment
+ "BFHNTX" comment noeat call=comment_todo.comment_todo()
"\r\n" idle
-:var_array Var
+:var_array Variable
* idle noeat
- "$?^" idle
+ "$?^" idle mark
"a-zA-Z_" var_name
-:var Var
+:var Variable
* idle noeat
"{" var_brack
"$?^" idle
- "a-zA-Z_" var_name
+ "a-zA-Z_" var_name buffer
-:var_name Var
- * idle noeat recolor=-1
+:var_name Variable
+ * idle noeat recolor=-1 istrings
+ "true" bool recolormark markend
+ "false" bool recolormark markend
+ "null" kw recolormark markend
+done
"a-zA-Z0-9_:?" var_name
-:var_brack Var
+:bool Boolean
+ * idle
+
+:var_brack Variable
* var_brack
"`" var_escape recolor=-1
"}" idle
-:var_escape VarEscape
+:var_escape VariableEscape
* var_brack
-:delim_comment Comment
+:delim_comment Comment comment
* delim_comment
+ "BFHNTX" delim_comment noeat call=comment_todo.comment_todo()
"#" delim_comment1
-:delim_comment1 Comment
+:delim_comment1 Comment comment
* delim_comment noeat
">" idle
-:kw Keyword
- * idle noeat
-
-:string_dq Constant
+:string_dq String string
* string_dq
"\"\n" idle
"$" string_dq_subst recolor=-1
"`" string_dq_esc recolor=-1
-:string_dq_subst Var
+:string_dq_subst StringVariable string
* 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_subst_name StringVariable string
* 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_escape VariableEscape string
* string_dq_subst_name
-:string_dq_subst_brack Var
+:string_dq_subst_brack Variable string
* string_dq_subst_brack
"}" string_dq
-:string_dq_subst_parens Var
+:string_dq_subst_parens Variable string
* string_dq_sustr_parens
")" string_dq
-:string_sq Constant
+:string_sq String string
* string_sq
"\'\n" idle
-:string_dq_esc ConstEscape
+:string_dq_esc StringEscape string
* string_dq
-:string_sq_esc ConstEscape
+:string_sq_esc StringEscape string
* string_sq
-:herestr_dq Constant
+:herestr_dq String string
* herestr_dq
"\"" herestr_dq1
"$" herestr_dq_subst recolor=-1
-:herestr_dq1 Constant
+:herestr_dq1 String string
* herestr_dq noeat
"@" idle
-:herestr_dq_subst Var
+:herestr_dq_subst Variable string
* 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_subst_name Variable string
* 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_escape VariableEscape string
* herestr_dq_subst_name
-:herestr_dq_subst_parens Var
+:herestr_dq_subst_parens Variable string
* herestr_dq_subst_parens
")" herestr_dq
-:herestr_sq Constant
+:herestr_sq String string
* herestr_sq
"\'" herestr_sq1
-:herestr_sq1 Constant
+:herestr_sq1 String string
* herestr_sq noeat
"@" idle
-:ident Idle
+:typespec_start Idle
+ * idle noeat
+ "\s" typespec_start
+ "\i.:" typespec noeat
+
+:typespec Type
+ * idle noeat
+ "\i.:\s" typespec
+ "[" typespec_brack
+
+:typespec_brack Type
+ * typespec noeat
+ "\s" typespec_brack
+ "]" typespec
+
+:param ParamKey
+ * after_param noeat istrings
+ "-and" oper
+ "-band" oper
+ "-bnot" oper
+ "-bor" oper
+ "-bxor" oper
+ "-not" oper
+ "-or" oper
+ "-xor" oper
+ "-f" oper
+ "-as" oper
+ "-ccontains" oper
+ "-ceq" oper
+ "-cge" oper
+ "-cgt" oper
+ "-cle" oper
+ "-clike" oper
+ "-clt" oper
+ "-cmatch" oper
+ "-cne" oper
+ "-cnotcontains" oper
+ "-cnotlike" oper
+ "-cnotmatch" oper
+ "-contains" oper
+ "-creplace" oper
+ "-csplit" oper
+ "-eq" oper
+ "-ge" oper
+ "-gt" oper
+ "-icontains" oper
+ "-ieq" oper
+ "-ige" oper
+ "-igt" oper
+ "-ile" oper
+ "-ilike" oper
+ "-ilt" oper
+ "-imatch" oper
+ "-in" oper
+ "-ine" oper
+ "-inotcontains" oper
+ "-inotlike" oper
+ "-inotmatch" oper
+ "-ireplace" oper
+ "-is" oper
+ "-isnot" oper
+ "-isplit" oper
+ "-join" oper
+ "-le" oper
+ "-like" oper
+ "-lt" oper
+ "-match" oper
+ "-ne" oper
+ "-notcontains" oper
+ "-notin" oper
+ "-notlike" oper
+ "-notmatch" oper
+ "-replace" oper
+ "-shl" oper
+ "-shr" oper
+ "-split" oper
+done
+ "a-zA-Z_" param
+
+:after_param Ident
+ * herestr_noq noeat
+ " \t" after_param
+
+# Unquoted strings (after -parameter key)
+:herestr_noq String string
+ * idle noeat
+ " \t\r\n" idle recolor=-1
+ "\i" herestr_noq
+
+# After an operator, we do not assume what follows is an unquoted string.
+:oper Operator
+ * idle noeat
+
+:ident Ident
* 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
+ "break" loop
"catch" kw
- "class" kw
- "continue" kw
+ "class" struct
+ "continue" loop
"data" kw
"define" kw
- "do" kw
- "dynamicparam" kw
- "else" kw
- "elseif" kw
+ "do" loop
+ "dynamicparam" struct
+ "else" cond
+ "elseif" cond
"end" kw
- "exit" kw
+ "exit" stmt
"filter" kw
"finally" kw
- "for" kw
- "foreach" kw
+ "for" loop
+ "foreach" loop
"from" kw
- "function" kw
- "if" kw
+ "function" struct
+ "if" cond
"in" kw
"inlinescript" kw
"parallel" kw
- "param" kw
+ "param" struct
"process" kw
- "return" kw
- "switch" kw
+ "return" stmt
+ "switch" cond
"throw" kw
"trap" kw
"try" kw
- "until" kw
+ "until" loop
"using" kw
"var" kw
- "while" kw
+ "while" loop
"workflow" kw
done
- "a-zA-Z_" ident
+ "a-zA-Z_\-" ident
+
+:kw Keyword
+ * idle noeat
+
+:loop Loop
+ * idle noeat
+
+:cond Conditional
+ * idle noeat
+
+:stmt Statement
+ * idle noeat
+
+:struct Structure
+ * idle noeat
diff --git a/.config/joestar/syntax/prolog.jsf b/.config/joestar/syntax/prolog.jsf
@@ -2,15 +2,18 @@
# by Christian Nicolai (http://mycrobase.de)
=Idle
-=Comment green
-=Constant cyan
-=Escape bold cyan
-=Keyword bold
-=Bad bold red
-
-=Brace #magenta
-=Variable #yellow
-=Predicate red
+=Ident
+=Comment
+=String +Constant
+=Number +Constant
+=Escape
+=StringEscape +Escape
+=Keyword
+=Bad
+
+=Brace
+=Variable
+=Predicate +DefinedFunction +DefinedIdent
:idle Idle
* idle
@@ -29,76 +32,78 @@
"_" _variable
"[]" brace recolor=-1
-:line_comment Comment
+:line_comment Comment comment
* line_comment
+ "BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" idle
:maybe_comment Idle
* idle noeat
"*" comment recolor=-2
-:comment Comment
+:comment Comment comment
* comment
"*" maybe_end_comment
+ "BFHNTX" comment noeat call=comment_todo.comment_todo()
-:maybe_end_comment Comment
- * comment
+:maybe_end_comment Comment comment
+ * comment noeat
"/" idle
"*" maybe_end_comment
:brace Brace
* idle noeat
-:string_sq_1 Constant
+:string_sq_1 String string
* string_sq noeat
-:string_sq Constant
+:string_sq String string
* string_sq
"\'" idle
"\\" string_sq_esc recolor=-1
-:string_sq_esc Escape
+:string_sq_esc StringEscape string
* string_sq
"\n" string_sq recolor=-2
-:string_dq_1 Constant
+:string_dq_1 String string
* string_dq noeat
-:string_dq Constant
+:string_dq String string
* string_dq
"\"" idle
"\\" string_dq_esc recolor=-1
-:string_dq_esc Escape
+:string_dq_esc StringEscape string
* string_dq
"\n" string_dq recolor=-2
-:first_digit Constant
+:first_digit Number
* idle noeat
# no float support
# "." float
"0-9" first_number
-:first_number Constant
+:first_number Number
* idle noeat
"0-9" first_number
"." float
-:float Constant
+:float Number
* idle noeat
"eE" epart
"0-9" float
-:epart Constant
+:epart Number
* idle noeat
"0-9+\-" enum
-:enum Constant
+:enum Number
* idle noeat
"0-9" enum
# list of keywords includes some predicates...
-:atom Idle
+:atom Ident
* atom_end noeat markend strings
"append" kw
"atom" kw
diff --git a/.config/joestar/syntax/properties.jsf b/.config/joestar/syntax/properties.jsf
@@ -2,14 +2,16 @@
# by Christian Nicolai (http://mycrobase.de)
=Idle
-=Comment green
-=Constant cyan
-=Escape bold cyan
-=Bad bold red
+=Comment
+=Constant
+=String +Constant
+=StringEscape +Escape
+=Escape
+=Bad
-=Key
-=KeyEscape bold
-=Separator bold
+=Key +Attr +Type
+=KeyEscape +Escape
+=Separator +Control
:line_start Idle
* key noeat
@@ -18,8 +20,9 @@
"#!" line_comment recolor=-1
"=:" missing_key recolor=-1
-:line_comment Comment
+:line_comment Comment comment
* line_comment
+ "BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" line_start
:missing_key Bad
@@ -52,33 +55,33 @@
* value noeat
" \t\r" value_pre
-:value Constant
+:value String string
* value
"\\" value_esc recolor=-1
"\n" line_start
-:value_esc Escape
+:value_esc StringEscape string
* value_error recolor=-2
"u" value_unicode_hex1
"\n" value_cont
-:value_unicode_hex1 Escape
+:value_unicode_hex1 StringEscape string
* value_error recolor=-3
"A-Fa-f0-9" value_unicode_hex2
-:value_unicode_hex2 Escape
+:value_unicode_hex2 StringEscape string
* value_error recolor=-4
"A-Fa-f0-9" value_unicode_hex3
-:value_unicode_hex3 Escape
+:value_unicode_hex3 StringEscape string
* value_error recolor=-5
"A-Fa-f0-9" value_unicode_hex4
-:value_unicode_hex4 Escape
+:value_unicode_hex4 StringEscape string
* value_error recolor=-6
"A-Fa-f0-9" value
-:value_cont Constant
+:value_cont String string
* value
" \t\r" value_cont # leading spaces
diff --git a/.config/joestar/syntax/ps.jsf b/.config/joestar/syntax/ps.jsf
@@ -1,16 +1,15 @@
# JOE syntax highlight file for Postscript
=Idle
-=Bad bold red
-=Preproc blue
-=Define bold blue
-=Comment green
-=IncLocal cyan
-=IncSystem bold cyan
-=Constant cyan
-=Escape bold cyan
-=Type bold
-=Keyword bold
+=Ident
+=Bad
+=Comment
+=Constant
+=Boolean +Constant
+=String +Constant
+=StringEscape +Escape
+=Number +Constant
+=Keyword
:idle Idle
* idle
@@ -21,11 +20,12 @@
"(<" string recolor=-1 save_c
"a-zA-Z_" ident buffer
-:line_comment Comment
+:line_comment Comment comment
* line_comment
+ "BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" idle
-:first_digit Constant
+:first_digit Number
* idle noeat
"xX" hex
"." float
@@ -37,72 +37,72 @@
* idle noeat
"0-9" bad_number
-:octal Constant
+:octal Number
* idle noeat
"0-7" octal
"89" bad_number recolor=-1
-:hex Constant
+:hex Number
* idle noeat
"0-9A-Fa-f" hex
-:decimal Constant
+:decimal Number
* idle noeat
"0-9" decimal
"eE" epart
"." float
-:maybe_float Constant
+:maybe_float Number
* idle recolor=-2 noeat
"0-9" float recolor=-2
-:float Constant
+:float Number
* idle noeat
"eE" epart
"0-9" float
-:epart Constant
+:epart Number
* idle noeat
"0-9+\-" enum
-:enum Constant
+:enum Number
* idle noeat
"0-9" enum
-:string Constant
+:string String string
* string
& idle
"\\" string_escape recolor=-1
"%" string_control recolor=-1
-:string_escape Escape
+:string_escape StringEscape string
* string
"x" string_hex1
"0-7" string_octal2
"\n" string recolor=-2
-:string_hex1 Escape
+:string_hex1 StringEscape string
* string noeat
"0-9a-fA-F" string_hex2
-:string_hex2 Escape
+:string_hex2 StringEscape string
* string noeat
"0-9a-fA-F" string
-:string_octal2 Escape
+:string_octal2 StringEscape string
* string noeat
"0-7" string_octal3
-:string_octal3 Escape
+:string_octal3 StringEscape string
* string noeat
"0-7" string
-:string_control Escape
+:string_control StringEscape string
* string_control
"\n" idle
"diouxXeEfFgGaAcspn%SC" string
-:ident Idle
+:ident Ident
* idle noeat istrings
"exch" kw
"pop" kw
@@ -188,8 +188,8 @@
"not" kw
"or" kw
"xor" kw
- "true" const
- "false" const
+ "true" bool
+ "false" bool
"bitshift" kw
"exec" kw
"if" kw
@@ -376,5 +376,5 @@ done
:kw Keyword
* idle noeat
-:const Constant
+:bool Boolean
* idle noeat
diff --git a/.config/joestar/syntax/puppet.jsf b/.config/joestar/syntax/puppet.jsf
@@ -2,17 +2,22 @@
# by Christian Nicolai (http://mycrobase.de)
=Idle
-=Comment green
-=CommentLabel bold green
-=Constant cyan
-=Escape bold cyan
-=Type bold
-=Keyword bold
-=Bad bold red
-=Var yellow #fg_310 # brown
-=Brace magenta
-
-=KeywordAttr bold
+=Ident
+=Comment
+=Constant
+=Number +Constant
+=String +Constant
+=Regex +String
+=StringEscape +Escape
+=StringVariable +StringEscape
+=RegexEscape +StringEscape
+=Type
+=Keyword
+=Bad
+=Variable +DefinedIdent
+=Brace
+
+=KeywordAttr +Attr +Type
:idle Idle
* idle
@@ -28,15 +33,17 @@
"A-Z" type recolor=-1
"a-z" ident buffer
-:line_comment Comment
+:line_comment Comment comment
* line_comment
+ "BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" idle
-:comment Comment
+:comment Comment comment
* comment
+ "BFHNTX" comment noeat call=comment_todo.comment_todo()
"*" maybe_end_comment
-:maybe_end_comment Comment
+:maybe_end_comment Comment comment
* comment noeat
"/" idle
"*" maybe_end_comment
@@ -49,7 +56,7 @@
* regex noeat recolor=-2
"*" comment recolor=-2
-:first_digit Constant
+:first_digit Number
* idle noeat
"0-7" octal
"89" bad_number recolor=-1
@@ -58,41 +65,41 @@
* idle noeat
"0-9" bad_number
-:octal Constant
+:octal Number
* idle noeat
"0-7_" octal
"89" bad_number recolor=-1
-:decimal Constant
+:decimal Number
* idle noeat
"0-9_" decimal
-:char Constant
+:char String string
* char
"'" idle
-:string Constant
+:string String string
* string
"\"" idle
"$" maybe_string_subst recolor=-1
-:maybe_string_subst Constant
+:maybe_string_subst String string
* string noeat
"{" string_subst recolor=-2
-:string_subst Escape
+:string_subst StringVariable string
* string_subst
"}" string
-:regex Constant
+:regex Regex string
* regex
"\\" regex_quote recolor=-1
"/" idle
-:regex_quote Escape
+:regex_quote RegexEscape string
* regex
-:variable Var
+:variable Variable
* idle noeat
"a-zA-Z0-9_" variable
@@ -100,7 +107,7 @@
* idle noeat
"a-zA-Z0-9_" type
-:ident Idle
+:ident Ident
* idle noeat strings
"case" kw
"class" kw
diff --git a/.config/joestar/syntax/python.jsf b/.config/joestar/syntax/python.jsf
@@ -1,19 +1,31 @@
# JOE syntax highlight file for Python
=Idle
-=Comment green
-=Docstring green
-=DocstringLabel bold green
-=DocEscape bold cyan
-=Constant cyan
-=Escape bold cyan
-=Keyword bold
-=Bad bold red
-=Brace magenta
-
-=PrivateMember yellow #fg_310 # brown
-=Decorator red
-=Declaration bold blue
+=Ident
+=Comment
+=Docstring +Comment
+=DocstringLabel +Docstring
+=DocEscape +Escape +Docstring
+=Constant
+=String +Constant
+=Number +Constant
+=Boolean +Constant
+=StringEscape +Escape
+=Keyword
+=Statement +Keyword
+=Loop +Statement
+=Conditional +Statement
+=StorageClass +Type +Keyword
+=Operator +Keyword
+=Bad
+=Brace
+
+=DefinedIdent +Ident
+=DefinedFunction +DefinedIdent
+=DefinedType +DefinedIdent
+=SpecialIdent +Ident
+=Decorator +Define +Preproc
+=Builtin +DefinedFunction
:idle Idle
* idle
@@ -38,81 +50,154 @@
"BFHNTX" comment noeat call=comment_todo.comment_todo()
"\n" idle
-:first_digit Constant
+:first_digit Number
* idle noeat
"xX" hex
"." float
"eE" epart
"0-9" first_number
-:hex Constant
+:hex Number
* idle noeat
"0-9A-Fa-f" hex
-:first_number Constant
+:first_number Number
* idle noeat
"0-9" first_number
"." float
-:maybe_float Constant
+:maybe_float Number
* idle recolor=-2 noeat
"0-9" float recolor=-2
-:float Constant
+:float Number
* idle noeat
"eE" epart
"0-9" float
-:epart Constant
+:epart Number
* idle noeat
"0-9+\-" enum
-:enum Constant
+:enum Number
* idle noeat
"0-9" enum
-:ident Idle
+:ident Ident
* ident1 noeat buffer
"_" priv_member recolor=-1
-:ident1 Idle
+:ident1 Ident
* idle noeat strings
- "and" kw
- "as" kw
- "assert" kw
- "break" kw
- "class" declkw
- "continue" kw
- "def" declkw
- "del" kw
- "elif" kw
- "else" kw
- "except" kw
- "exec" kw
- "finally" kw
- "for" kw
- "from" kw
- "global" kw
- "if" kw
- "import" kw
- "in" kw
- "is" kw
+ "and" oper
+ "as" stmt
+ "assert" stmt
+ "break" loop
+ "class" classstmt
+ "continue" loop
+ "def" defstmt
+ "del" stmt
+ "elif" cond
+ "else" cond
+ "except" stmt
+ "finally" stmt
+ "for" loop
+ "from" stmt
+ "global" stmt
+ "if" cond
+ "import" stmt
+ "in" oper
+ "is" oper
"lambda" kw
- "not" kw
- "or" kw
- "pass" kw
- "print" kw
- "raise" kw
- "return" kw
- "try" kw
- "while" kw
- "with" kw
- "yield" kw
+ "not" oper
+ "or" oper
+ "pass" stmt
+ "raise" stmt
+ "return" stmt
+ "try" stmt
+ "while" loop
+ "with" stmt
+ "yield" stmt
# quasi-keywords
- "False" lit
- "None" lit
- "True" lit
+ "False" bool
+ "True" bool
+ "None" kw
+
+ # builtins
+ "abs" builtin
+ "all" builtin
+ "any" builtin
+ "ascii" builtin
+ "bin" builtin
+ "bool" builtin
+ "bytearray" builtin
+ "bytes" builtin
+ "callable" builtin
+ "chr" builtin
+ "classmethod" builtin
+ "compile" builtin
+ "complex" builtin
+ "copyright" builtin
+ "credits" builtin
+ "delattr" builtin
+ "dict" builtin
+ "dir" builtin
+ "divmod" builtin
+ "enumerate" builtin
+ "eval" builtin
+ "exec" builtin
+ "exit" builtin
+ "filter" builtin
+ "float" builtin
+ "format" builtin
+ "frozenset" builtin
+ "getattr" builtin
+ "globals" builtin
+ "hasattr" builtin
+ "hash" builtin
+ "help" builtin
+ "hex" builtin
+ "id" builtin
+ "input" builtin
+ "int" builtin
+ "isinstance" builtin
+ "issubclass" builtin
+ "iter" builtin
+ "len" builtin
+ "license" builtin
+ "list" builtin
+ "locals" builtin
+ "map" builtin
+ "max" builtin
+ "memoryview" builtin
+ "min" builtin
+ "next" builtin
+ "object" builtin
+ "oct" builtin
+ "open" builtin
+ "ord" builtin
+ "pow" builtin
+ "print" builtin
+ "property" builtin
+ "quit" builtin
+ "range" builtin
+ "repr" builtin
+ "reversed" builtin
+ "round" builtin
+ "set" builtin
+ "setattr" builtin
+ "slice" builtin
+ "sorted" builtin
+ "staticmethod" builtin
+ "str" builtin
+ "sum" builtin
+ "super" builtin
+ "tuple" builtin
+ "type" builtin
+ "vars" builtin
+ "zip" builtin
+
done
"'\"" idle noeat istrings
"u" string_pre
@@ -126,49 +211,75 @@ done
:kw Keyword
* idle noeat
-:lit Keyword
+:cond Conditional
+ * idle noeat
+
+:oper Operator
+ * idle noeat
+
+:bool Boolean
+ * idle noeat
+
+:loop Loop
+ * idle noeat
+
+:stmt Statement
+ * idle noeat
+
+:builtin Builtin
* idle noeat
-:declkw Keyword
+:classstmt Statement
* idle noeat recolor=-1
- "\i" declkw
- " \t" declname_1
+ "\i" classstmt
+ " \t" classname_1
-:declname_1 Declaration
- * declname
- "_" priv_member recolor=-1
+:classname_1 DefinedType
+ * classname
+
+:classname DefinedType
+ * idle noeat recolor=-1
+ "\c" classname
+
+:defstmt Statement
+ * idle noeat recolor=-1
+ "\i" defstmt
+ " \t" defname_1
+
+:defname_1 DefinedFunction
+ * defname
-:declname Declaration
+:defname DefinedFunction
* idle noeat recolor=-1
- "\c" declname
+ "\c" defname
-:priv_member PrivateMember
+:priv_member SpecialIdent
* idle noeat
"\c" priv_member
# Handle string prefixes up to the string itself.
-:string_pre Constant
+:string_pre String string
* idle noeat
"'\"" string_quot_1 save_c
-:string_raw_pre Constant
+:string_raw_pre String string
* idle noeat
"'\"" string_quot_raw_1 save_c
# Differentiate between docstrings and regular strings, carrying with it raw state
-:string_quot_1 Constant
+:string_quot_1 String string
* idle call=.string() noeat
& string_quot_2
-:string_quot_2 Constant
+:string_quot_2 String string
* idle noeat
& idle call=.string(docstring) recolor=-3
-:string_quot_raw_1 Constant
+:string_quot_raw_1 String string
* idle call=.string(raw)
& string_quot_raw_2
-:string_quot_raw_2 Constant
+:string_quot_raw_2 String string
* idle noeat
& idle call=.string(docstring raw) recolor=-3
@@ -184,17 +295,17 @@ done
.endif
& doc_end_1
-:doc_end_1 Docstring
+:doc_end_1 Docstring string
* string noeat
& doc_end_2
-:doc_end_2 Docstring
+:doc_end_2 Docstring string
* string noeat
& string return
.else # Short strings
-:string Constant string
+:string String string
* string
"\n" string return
.ifdef raw
@@ -205,7 +316,7 @@ done
.endif
-:string_esc Constant
+:string_esc String string
* string_esc_done
"x" string_hex2
"u" string_hex4
@@ -214,54 +325,54 @@ done
"\n" string_esc_done
# Recolor whole escape sequence based on whether this is a docstring.
-:string_esc_done Constant
+:string_esc_done String string
* string_esc_really_done noeat markend recolormark
.ifdef docstring
:string_esc_really_done DocEscape
* string noeat
.else
-:string_esc_really_done Escape
+:string_esc_really_done StringEscape string
* string noeat
.endif
-:string_hex1 Escape
+:string_hex1 StringEscape string
* string_esc_done noeat
"0-9a-fA-F" string_esc_done
-:string_hex2 Escape
+:string_hex2 StringEscape string
* string_esc_done noeat
"0-9a-fA-F" string_hex1
-:string_hex3 Escape
+:string_hex3 StringEscape string
* string_esc_done noeat
"0-9a-fA-F" string_hex2
-:string_hex4 Escape
+:string_hex4 StringEscape string
* string_esc_done noeat
"0-9a-fA-F" string_hex3
-:string_hex5 Escape
+:string_hex5 StringEscape string
* string_esc_done noeat
"0-9a-fA-F" string_hex4
-:string_hex6 Escape
+:string_hex6 StringEscape string
* string_esc_done noeat
"0-9a-fA-F" string_hex5
-:string_hex7 Escape
+:string_hex7 StringEscape string
* string_esc_done noeat
"0-9a-fA-F" string_hex6
-:string_hex8 Escape
+:string_hex8 StringEscape string
* string_esc_done noeat
"0-9a-fA-F" string_hex7
-:string_octal1 Escape
+:string_octal1 StringEscape string
* string_esc_done noeat
"0-7" string_esc_done
-:string_octal2 Escape
+:string_octal2 StringEscape string
* string_esc_done noeat
"0-7" string_octal1
@@ -269,11 +380,11 @@ done
.subr comment_todo_docstr
# initial state
-:comment_todo_init Docstring
+:comment_todo_init Docstring string
* comment_todo_guess buffer
# highlight common TODO labels
-:comment_todo_guess Docstring
+:comment_todo_guess Docstring string
* comment_todo_unknown noeat strings
"BUG" comment_todo
"FIXME" comment_todo
@@ -284,9 +395,9 @@ done
done
"A-Z" comment_todo_guess
-:comment_todo_unknown Docstring
+:comment_todo_unknown Docstring string
* NULL noeat return
-:comment_todo DocstringLabel
+:comment_todo DocstringLabel string
* NULL noeat return
.end
diff --git a/.config/joestar/syntax/r.jsf b/.config/joestar/syntax/r.jsf
@@ -1,18 +1,19 @@
# JOE syntax highlight file for R
=Idle
-=Bad bold red
-=Preproc blue
-=Define bold blue
-=Comment green
-=IncLocal cyan
-=IncSystem bold cyan
-=Constant cyan
-=Escape bold cyan
-=Type bold
-=Keyword bold
-=CppKeyword bold
-=Brace magenta
+=Ident
+=Bad
+=Comment
+=Constant
+=Number +Constant
+=String +Constant
+=StringEscape +Escape
+=Character +Constant
+=CharacterEscape +Escape
+=Boolean +Constant
+=Escape
+=Keyword
+=Brace
=Control
:idle Idle
@@ -39,9 +40,10 @@
:line_comment Comment comment
* line_comment
+ "BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" idle
-:first_digit Constant
+:first_digit Number
* idle noeat
"xX" hex
"." float
@@ -49,98 +51,100 @@
"0-9" decimal
"L" idle
-:hex Constant
+:hex Number
* idle noeat
"0-9A-Fa-f" hex
-:decimal Constant
+:decimal Number
* idle noeat
"0-9" decimal
"eE" epart
"." float
"L" idle
-:maybe_float Constant
+:maybe_float Number
* idle recolor=-2 noeat
"\i." ident recolor=-2
"0-9" float recolor=-2
-:float Constant
+:float Number
* idle noeat
"eE" epart
"0-9" float
"L" idle
-:epart Constant
+:epart Number
* idle noeat
"0-9+\-" enum
-:enum Constant
+:enum Number
* idle noeat
"0-9" enum
"L" idle
-:string Constant string
+:string String string
* string
"\"" idle
"\\" string_escape recolor=-1
"%" string_control recolor=-1
-:string_escape Escape string
+:string_escape StringEscape string
* string
"x" string_hex
"0-7" string_octal2
"\n" string recolor=-2
# \x will consume all successive hex digits (ANSI C).
-:string_hex Escape string
+:string_hex StringEscape string
* string noeat
"0-9a-fA-F" string_hex
-:string_octal2 Escape string
+:string_octal2 StringEscape string
* string noeat
"0-7" string_octal3
-:string_octal3 Escape string
+:string_octal3 StringEscape string
* string noeat
"0-7" string
-:string_control Escape string
+:string_control StringEscape string
* string
"\"" string noeat
"\n" idle
"\\" string_escape recolor=-1
"0-9.\-+ #hjILtz$" string_control
-:char Constant string
+:char Character string
* char
"\n" idle
"'" idle
"\\" char_escape recolor=-1
-:char_escape Escape string
+:char_escape CharacterEscape string
* char
"x" char_hex
"0-7" char_octal2
"\n" char recolor=-2
# \x will consume all successive hex digits (ANSI C).
-:char_hex Escape string
+:char_hex CharacterEscape string
* char noeat
"0-9a-fA-F" char_hex
-:char_octal2 Escape string
+:char_octal2 CharacterEscape string
* char noeat
"0-7" char_octal3
-:char_octal3 Escape string
+:char_octal3 CharacterEscape string
* char noeat
"0-7" char
-:ident Idle
+# It feels to me like this could use some more work...
+
+:ident Ident
* idle noeat strings
- "TRUE" val
- "FALSE" val
+ "TRUE" bool
+ "FALSE" bool
"NULL" val
"Inf" val
"NaN" val
@@ -161,6 +165,9 @@
done
"\c." ident
+:bool Boolean
+ * idle noeat
+
:val Constant
* idle noeat
diff --git a/.config/joestar/syntax/rexx.jsf b/.config/joestar/syntax/rexx.jsf
@@ -1,11 +1,11 @@
# JOE syntax highlight file for REXX
=Idle
-=Bad bold red
-=Comment green
-=Constant cyan
-=Escape bold cyan
-=Keyword bold
+=Bad
+=Comment
+=Constant
+=String +Constant
+=Keyword
:idle Idle
* idle
@@ -51,11 +51,11 @@ done
:kw Keyword
* idle noeat
-:squote Constant
+:squote String string
* squote
"'" idle
-:dquote Constant
+:dquote String string
* dquote
"\"" idle
@@ -69,12 +69,13 @@ done
* maybe_comment return noeat
"*" comment recolor=-2
-:comment Comment
+:comment Comment comment
* comment
+ "BFHNTX" comment noeat call=comment_todo.comment_todo()
"*" maybe_done
"/" comment call=.maybe_comment()
-:maybe_done Comment
+:maybe_done Comment comment
* comment noeat
"/" comment return
diff --git a/.config/joestar/syntax/ruby.jsf b/.config/joestar/syntax/ruby.jsf
@@ -5,22 +5,39 @@
# EOF2.
=Idle
-=Comment green
-=POD green
-=Constant cyan
-=Escape bold cyan
-=Type bold
-=Keyword bold
-=Bad bold red
-=Var yellow
-=Brace magenta
-
-=Symbol red
-=SymbolEscape bold red
-=ProcArg #yellow
-=ClassMember yellow #fg_310 # brown
-=GlobalVar #yellow
-=ClassDecl bold blue
+=Comment
+=Constant
+=Number +Constant
+=String +Constant
+=StringEscape +Escape
+=StringVariable +StringEscape
+=Regex +String
+=RegexEscape +StringEscape
+=Boolean +Constant
+=Escape
+=Type
+=Keyword
+=Statement +Keyword
+=Operator +Keyword
+=Conditional +Statement
+=Loop +Statement
+=Label +DefinedIdent
+=StorageClass +Type +Keyword
+=Structure +Statement
+
+=Bad
+=Brace
+
+=Symbol +Constant +DefinedIdent
+=SymbolEscape +Escape
+=ProcArg +DefinedIdent
+=GlobalVar +Builtin # TODO: No good class for this.
+
+=DefinedType +DefinedIdent +Ident
+=DefinedFunction +DefinedIdent +Ident
+=ClassMember +Variable +DefinedIdent
+
+=POD +Preproc
# Detect pod
@@ -140,25 +157,25 @@ done
"'\"" quoted_inc_start_allow save_c recolor=-1
"\i" inc_allow buffer noeat
-:quoted_inc_start Var
+:quoted_inc_start StringVariable string
* quoted_inc buffer
-:quoted_inc_start_allow Var
+:quoted_inc_start_allow StringVariable string
* quoted_inc_allow buffer
-:quoted_inc Var
+:quoted_inc StringVariable string
* quoted_inc
& skipline save_s
-:quoted_inc_allow Var
+:quoted_inc_allow StringVariable string
* quoted_inc_allow
& skipline_allow save_s
-:inc Var
+:inc StringVariable string
* skipline save_s noeat
"\c" inc
-:inc_allow Var
+:inc_allow StringVariable string
* skipline_allow save_s noeat
"\c" inc_allow
@@ -172,36 +189,36 @@ done
* skipline_allow
"\n" next_line_allow
-:todelim Constant
+:todelim String string
* todelim
"\n" next_line strings
"&" founddelim
done
-:todelim_allow Constant
+:todelim_allow String string
* todelim_allow
"\n" next_line_allow strings
"&" founddelim
done
# eat \n so it's not in string.
-:next_line Constant
+:next_line String string
* todelim buffer
"\n" next_line
-:next_line_allow Constant
+:next_line_allow String string
* todelim_allow buffer
" \t\n" next_line_allow
-:founddelim Var
+:founddelim StringEscape string
* idle noeat
-:regex Constant
+:regex Regex string
* regex
"\\" regex_quote recolor=-1
"/" after_term
-:regex_quote Escape
+:regex_quote RegexEscape string
* regex
:not_string Idle
@@ -212,12 +229,11 @@ done
:brace Brace
* rest noeat
-:line_comment Comment
+:line_comment Comment comment
* line_comment
.ifdef erb
"%" line_comment_maybe_erb_end
.endif
- # might be TODO label
"BFHNTX" line_comment noeat call=comment_todo.comment_todo()
.ifdef haml
"\n" NULL return
@@ -225,13 +241,13 @@ done
"\n" idle
.endif
-:line_comment_maybe_erb_end Comment
+:line_comment_maybe_erb_end Comment comment
">" NULL recolor=-2 return
-:end_of_file_comment Comment
+:end_of_file_comment Comment comment
* end_of_file_comment
-:first_digit Constant
+:first_digit Number
* after_term noeat
"x" hex
"b" binary
@@ -244,21 +260,21 @@ done
* after_term noeat
"0-9" bad_number
-:octal Constant
+:octal Number
* after_term noeat
"0-7_" octal
"89" bad_number recolor=-1
-:binary Constant
+:binary Number
* after_term noeat
"01_" binary
"2-9" bad_number recolor=-1
-:hex Constant
+:hex Number
* after_term noeat
"0-9A-Fa-f_" hex
-:decimal Constant
+:decimal Number
* after_term noeat
"0-9_" decimal
"eE" epart
@@ -268,30 +284,33 @@ done
* after_term noeat recolor=-2
"0-9" float noeat
-:float Constant
+:float Number
* after_term noeat
"eE" epart
"0-9_" float
-:epart Constant
+:epart Number
* after_term noeat
"0-9+\-" enum
-:enum Constant
+:enum Number
* after_term noeat
"0-9_" enum
-:string Constant
+:string String string
* string
"\"" after_term
"\\" string_escape recolor=-1
"#" maybe_string_subst recolor=-1
-:maybe_string_subst Constant
+:maybe_string_subst String string
* string noeat
- "{" string_subst recolor=-2 call=.ruby(squiggly)
+ "{" string_subst_begin recolor=-2
-:string_subst Idle
+:string_subst_begin StringEscape string
+ * string_subst noeat call=.ruby(squiggly)
+
+:string_subst StringEscape string
* string noeat
:string_escape Escape
@@ -336,7 +355,7 @@ done
# Only \\ and \' allowed in single quoted strings
-:char Constant
+:char String string
* char
"\n" reset
"'" after_term
@@ -346,7 +365,7 @@ done
* char recolor=-2
"\\'" char
-:backtick Constant
+:backtick String string
* backtick
"`" after_term
"\\" backtick_escape recolor=-1
@@ -411,50 +430,50 @@ done
"BEGIN" kw
"END" kw
"alias" kw_after
- "and" kw
+ "and" oper
"begin" kw
- "break" kw
- "case" kw
- "catch" kw
+ "break" loop
+ "case" label
+ "catch" stmt
"class" kw_class
- "def" kw_after
+ "def" kw_def
"defined" kw
- "do" kw
- "else" kw
- "elsif" kw
+ "do" loop
+ "else" cond
+ "elsif" cond
"end" kw
"ensure" kw
"fail" kw
- "false" kw
- "for" kw
- "if" kw
- "in" kw
+ "false" bool
+ "for" loop
+ "if" cond
+ "in" oper
"lambda" kw
- "module" kw
+ "module" kw_class
"next" kw
- "nil" kw
- "not" kw
- "or" kw
- "private" kw
+ "nil" const
+ "not" oper
+ "or" oper
+ "private" storage
"proc" kw
- "protected" kw
- "public" kw
- "raise" kw
+ "protected" storage
+ "public" storage
+ "raise" stmt
"redo" kw
"rescue" kw
- "retry" kw
- "return" kw
+ "retry" stmt
+ "return" stmt
"self" kw_after
"super" kw
- "then" kw
- "throw" kw
- "true" kw
- "undef" kw
- "unless" kw
- "until" kw
- "when" kw
- "while" kw
- "yield" kw
+ "then" cond
+ "throw" stmt
+ "true" bool
+ "undef" stmt
+ "unless" cond
+ "until" loop
+ "when" loop
+ "while" loop
+ "yield" stmt
# quasi-keywords (Module or Kernel methods)
"require" kw
"autoload" kw
@@ -471,14 +490,57 @@ done
# it destructs
"\c?!" ident
+:bool Boolean
+ * rest noeat
+
+:loop Loop
+ * rest noeat
+
+:cond Conditional
+ * rest noeat
+
+:oper Operator
+ * rest noeat
+
:kw Keyword
* rest noeat
+:label Label
+ * rest noeat
+
+:const Constant
+ * rest noeat
+
+:storage StorageClass
+ * rest noeat
+
+:struct Structure
+ * rest noeat
+
+:const Constant
+ * rest noeat
+
+:stmt Statement
+ * rest noeat
+
# Handle case of def /
:kw_after Keyword
* after_term noeat
-:kw_class Keyword
+:kw_def Structure
+ * after_term noeat
+ " \t\n" kw_def_space
+
+:kw_def_space Idle
+ * rest noeat
+ "\i" kw_func_decl noeat
+ " \t\n" kw_def_space
+
+:kw_func_decl DefinedFunction
+ * rest noeat
+ "\c!?" kw_func_decl
+
+:kw_class Structure
* rest noeat
" \t\n" kw_class_space
@@ -488,9 +550,9 @@ done
"\i" kw_class_decl noeat
" \t\n" kw_class_space
-:kw_class_decl ClassDecl
+:kw_class_decl DefinedType
* rest noeat
- "\c" kw_class_decl
+ "\c!?" kw_class_decl
:pstring Idle
* match noeat
@@ -504,21 +566,21 @@ done
* inmatch save_c recolor=-1
" \t" match
-:inmatch Constant
+:inmatch Regex string
* inmatch
& after_term
% inmatch call=.inmatch_recur()
"#" inmatch_maybe_subst
"\\" inmatch_quote recolor=-1
-:inmatch_maybe_subst Constant
+:inmatch_maybe_subst Regex string
* inmatch noeat
"{" inmatch_subst recolor=-2 call=.ruby(squiggly)
:inmatch_subst Idle
* inmatch noeat
-:inmatch_quote Escape
+:inmatch_quote RegexEscape string
* inmatch
:subst Idle
@@ -526,40 +588,40 @@ done
"<([{`" delim_insubst save_c recolor=-1
" \t" subst
-:insubst Constant
+:insubst Regex string
* insubst
& inrepl
"\\" insubst_quote recolor=-1
-:insubst_quote Escape
+:insubst_quote RegexEscape string
* insubst
-:inrepl Constant
+:inrepl Regex string
* inrepl
& after_term
"\\" inrepl_quote
-:inrepl_quote Escape
+:inrepl_quote RegexEscape string
* inrepl
-
-:delim_insubst Constant
+
+:delim_insubst Regex string
* delim_insubst
& delim_repl
"\\" delim_quote
-:delim_quote Escape
+:delim_quote RegexEscape string
* delim_insubst
-:delim_repl Constant
+:delim_repl Regex string
* repl save_c recolor=-1
" \t" delim_repl
-:repl Constant
+:repl Regex string
* repl
& after_term
"\\" repl_quote
-:repl_quote Escape
+:repl_quote RegexEscape string
* repl
:maybe_symbol Idle
diff --git a/.config/joestar/syntax/rust.jsf b/.config/joestar/syntax/rust.jsf
@@ -1,20 +1,26 @@
# JOE syntax highlight file for Rust
=Idle
-=Comment green
-=Shebang yellow
-=Constant cyan
-=Escape bold cyan
-=Operator bold
-=Keyword bold
-=Bad bold red
-=Var yellow
-=Brace magenta
-
-=ProcArg #yellow
-=ClassMember yellow #fg_310 # brown
-=GlobalVar #yellow
-=ClassDecl bold blue
+=Ident
+=Comment
+=Constant
+=Number +Constant
+=Boolean +Constant
+=String +Constant
+=StringEscape +Escape
+=Character +Constant
+=CharacterEscape +Escape
+
+=Keyword
+=Operator +Keyword
+=Statement +Keyword
+=Conditional +Statement
+=Loop +Statement
+=StorageClass +Type +Keyword
+=Structure +Statement
+
+=Bad
+=Brace
:pre_idle Idle
* NULL noeat call=.rust()
@@ -33,42 +39,27 @@
"'" char recolor=-1
"/" slash recolor=-1
"\i" ident buffer
- "b" maybe_byte_string buffer
- "r" maybe_raw_string buffer
-:maybe_byte_string Idle
- * ident noeat
- "'" char recolor=-2
- "\"" string recolor=-2
- "r" maybe_byte_raw_string
-
-:maybe_raw_string Idle
- * ident noeat
- "#" should_be_raw_string recolor=-2
-
-:maybe_byte_raw_string Idle
- * ident noeat
- "#" should_be_raw_string recolor=-3
-
-:slash Constant
+:slash Idle
* idle noeat
- "*" comment recolor=-2
+ "*" comment recolor=-2
"/" line_comment recolor=-2
:brace Brace
* idle noeat
-:comment Comment
+:comment Comment comment
* comment
+ "BFHNTX" comment noeat call=comment_todo.comment_todo()
"*" maybe_end_comment
-:maybe_end_comment Comment
- * comment
+:maybe_end_comment Comment comment
+ * comment noeat
"/" idle
- "*" maybe_end_comment
-:line_comment Comment
+:line_comment Comment comment
* line_comment
+ "BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" idle
# Numbers
@@ -77,7 +68,7 @@
* idle noeat
"0-9" bad_number
-:zero Constant
+:zero Number
* idle noeat
"b" binary
"o" octal
@@ -88,28 +79,28 @@
"ui" int_suffix
"f" float_suffix
-:decimal_point Constant
+:decimal_point Number
* idle noeat recolor=-2
"0-9" float
-:octal Constant
+:octal Number
* idle noeat
"0-7_" octal
"89" bad_number recolor=-1
"ui" int_suffix
-:binary Constant
+:binary Number
* idle noeat
"01_" binary
"2-9" bad_number recolor=-1
"ui" int_suffix
-:hex Constant
+:hex Number
* idle noeat
"0-9A-Fa-f_" hex
"ui" int_suffix
-:decimal Constant
+:decimal Number
* idle noeat
"0-9_" decimal
"eE" epart
@@ -117,191 +108,270 @@
"ui" int_suffix
"f" float_suffix
-:float Constant
+:float Number
* idle noeat
"eE" epart
"0-9_" float
"ui" int_suffix
"f" float_suffix
-:epart Constant
+:epart Number
* idle noeat
"0-9+\-" enum
-:enum Constant
+:enum Number
* idle noeat
"0-9_" enum
"ui" int_suffix
"f" float_suffix
-:float_suffix Constant
+:float_suffix Number
* bad_number noeat recolor=-1
"3" float_suffix_1
"6" float_suffix_2
-:float_suffix_1 Constant
+:float_suffix_1 Number
* bad_number noeat recolor=-1
"2" idle
-:float_suffix_2 Constant
+:float_suffix_2 Number
* bad_number noeat recolor=-1
"4" idle
-:int_suffix Constant
+:int_suffix Number
* bad_number noeat recolor=-1
"3" int_suffix_1
"6" int_suffix_2
"s" int_suffix_3
-:int_suffix_1 Constant
+:int_suffix_1 Number
* bad_number noeat recolor=-1
"2" idle
-:int_suffix_2 Constant
+:int_suffix_2 Number
* bad_number noeat recolor=-1
"4" idle
-:int_suffix_3 Constant
+:int_suffix_3 Number
* bad_number noeat recolor=-2
"i" int_suffix_4
-:int_suffix_4 Constant
+:int_suffix_4 Number
* bad_number noeat recolor=-3
"z" int_suffix_5
-:int_suffix_5 Constant
+:int_suffix_5 Number
* bad_number noeat recolor=-4
"e" idle
-# strings like #"hello"#
-
-:should_be_raw_string Constant
- * idle noeat
- "\"" raw_string
-
-:raw_string Constant
- * raw_string
- "\"" raw_string_maybe_done
-
-:raw_string_maybe_done Constant
- * raw_string noeat
- "#" idle
-
# strings like "hello"
-:string Constant
+:string String string
* string
"\"" idle
"\\" string_escape recolor=-1
-:string_escape Escape
+:string_escape StringEscape string
* string
"x" string_hex2
"u" string_maybe_uni
-:string_maybe_uni Escape
+:string_maybe_uni StringEscape string
* string noeat
"{" string_uni
-:string_uni Escape
+:string_uni StringEscape string
* string_uni
"}" string
-:string_hex2 Escape
+:string_hex2 StringEscape string
* string noeat
"0-9a-fA-F" string_hex1
-:string_hex1 Escape
+:string_hex1 StringEscape string
* string noeat
"0-9a-fA-F" string
# character constants like 'h'
-:char Constant
+:char Character string
* char_done
"\\" char_escape recolor=-1
-:char_done Constant
+:char_done Character string
* idle noeat recolor=-3
"\'" idle
-:char_escape Escape
+:char_escape CharacterEscape string
* char_done noeat
"x" char_hex2
"u" char_maybe_uni
-:char_maybe_uni Escape
+:char_maybe_uni CharacterEscape string
* char_done noeat
"{" char_uni
-:char_uni Escape
+:char_uni CharacterEscape string
* char_uni
"}" char_done
-:char_hex2 Escape
+:char_hex2 CharacterEscape string
* char_done noeat
"0-9a-fA-F" char_hex1
-:char_hex1 Escape
+:char_hex1 CharacterEscape string
* char_done noeat
"0-9a-fA-F" char
+# Raw strings like r"hello" or r##"hello, "world""##
+# The number of #'s is technically unbounded, but we'll limit to 4.
+
+:raw_string_pre Ident
+ * ident noeat
+ "\"" raw_string_0 recolor=-2
+ "#" raw_string_pre_1 recolor=-2
+
+:raw_string_pre_1 String string
+ * raw_string_bad recolor=-3
+ "\"" raw_string_1
+ "#" raw_string_pre_2
+
+:raw_string_pre_2 String string
+ * raw_string_bad recolor=-4
+ "\"" raw_string_2
+ "#" raw_string_pre_3
+
+:raw_string_pre_3 String string
+ * raw_string_bad recolor=-5
+ "\"" raw_string_3
+ "#" raw_string_pre_4
+
+:raw_string_pre_4 String string
+ * raw_string_bad recolor=-6
+ "#\"" raw_string_4 # More than 4? too bad.
+
+:raw_string_0 String string
+ * raw_string_0
+ "\"" idle
+
+:raw_string_1 String string
+ * raw_string_1
+ "\"" raw_string_end_1
+
+:raw_string_2 String string
+ * raw_string_2
+ "\"" raw_string_end_2 buffer
+
+:raw_string_3 String string
+ * raw_string_3
+ "\"" raw_string_end_3 buffer
+
+:raw_string_4 String string
+ * raw_string_4
+ "\"" raw_string_end_4 buffer
+
+:raw_string_end_1 String string
+ * raw_string_1 noeat
+ "#" idle
+
+:raw_string_end_2 String string
+ * raw_string_2 noeat strings
+ "\"##" raw_string_end
+done
+ "#" raw_string_end_2
+
+:raw_string_end_3 String string
+ * raw_string_3 noeat strings
+ "\"###" raw_string_end
+done
+ "#" raw_string_end_3
+
+:raw_string_end_4 String string
+ * raw_string_4 noeat strings
+ "\"####" raw_string_end
+done
+ "#" raw_string_end_4
+
+:raw_string_end String string
+ * idle noeat
+
+:raw_string_bad Bad
+ * idle noeat
+
+# Byte string literals b"foo bar"
+
+:byte_string_pre Ident
+ * ident noeat recolor=-1
+ "\"" string recolor=-2
+
+# Raw byte string literals br"hello world" and br###"Hello, "world""###
+
+:raw_byte_string_pre Ident
+ * ident noeat
+ "\"" raw_string_0 recolor=-3
+ "#" raw_string_pre_1 recolor=-3
+
# Identifiers
-:ident Idle
+:ident Ident
* idle noeat strings
- "abstract" kw
+ "abstract" storage
"alignof" kw
"as" operator
"become" kw
"box" kw
- "break" kw
- "const" kw
- "continue" kw
+ "break" loop
+ "const" storage
+ "continue" loop
"crate" kw
- "do" kw
- "else" kw
- "enum" kw
- "extern" kw
- "false" lit
- "final" kw
- "fn" kw
- "for" kw
- "if" kw
+ "do" loop
+ "else" cond
+ "enum" struct
+ "extern" storage
+ "false" bool
+ "final" storage
+ "fn" struct
+ "for" loop
+ "if" cond
"impl" kw
"in" operator
"let" kw
- "loop" kw
+ "loop" loop
"macro" kw
"match" kw
- "mod" kw
+ "mod" kw # operator?
"move" kw
"mut" kw
"offsetof" kw
- "override" kw
- "priv" kw
+ "override" storage
+ "priv" storage
"proc" kw
- "pub" kw
- "pure" kw
+ "pub" storage
+ "pure" storage
"ref" kw
- "return" kw
+ "return" stmt
"Self" kw
"self" kw
- "sizeof" kw
- "static" kw
- "struct" kw
+ "sizeof" kw # operator?
+ "static" storage
+ "struct" struct
"super" kw
"trait" kw
- "true" lit
+ "true" bool
"type" kw
- "typeof" kw
- "unsafe" kw
- "unsized" kw
+ "typeof" kw # operator?
+ "unsafe" storage
+ "unsized" kw # storage?
"use" kw
- "virtual" kw
+ "virtual" storage
"where" kw
- "while" kw
- "yield" kw
+ "while" loop
+ "yield" stmt
+
+ # String/byte prefixes
+ "r" raw_string_pre
+ "b" byte_string_pre
+ "br" raw_byte_string_pre
done
"\c" ident
@@ -311,11 +381,22 @@ done
:lit Constant
* idle noeat
+:bool Boolean
+ * idle noeat
+
:operator Operator
* idle noeat
-:global_var GlobalVar
+:storage StorageClass
+ * idle noeat
+
+:cond Conditional
+ * idle noeat
+
+:loop Loop
+ * idle noeat
+
+:struct Structure
* idle noeat
- "\c" global_var
.end
diff --git a/.config/joestar/syntax/scala.jsf b/.config/joestar/syntax/scala.jsf
@@ -1,14 +1,28 @@
-# JOE syntax highlight file for JAVA
+# JOE syntax highlight file for Scala
=Idle
-=Comment green
-=Constant cyan
-=Escape bold cyan
-=Type bold
-=Keyword bold
-=Operator bold
-=Bad bold red
-=Brace magenta
+=Ident
+=Comment
+=Constant
+=Number +Constant
+=String +Constant
+=StringEscape +Escape
+=Character +Constant
+=CharacterEscape +Escape
+=Boolean +Constant
+=Type
+=DefinedFunction +DefinedIdent
+
+=Keyword
+=Operator +Keyword
+=Statement +Keyword
+=Loop +Statement
+=Conditional +Statement
+=Structure +Statement
+=StorageClass +Type +Keyword
+
+=Bad
+=Brace
=Control
=Methods
@@ -46,24 +60,24 @@
"*" comment recolor=-2
"/" line_comment recolor=-2
-:comment Comment
+:comment Comment comment
* comment
# might be TODO label
"BFHNTX" comment noeat call=comment_todo.comment_todo()
"*" maybe_end_comment
-:maybe_end_comment Comment
+:maybe_end_comment Comment comment
* comment noeat
"/" idle
"*" maybe_end_comment
-:line_comment Comment
+:line_comment Comment comment
* line_comment
# might be TODO label
"BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" idle
-:first_digit Constant
+:first_digit Number
* idle noeat
"lLfF" idle
"xX" hex
@@ -76,25 +90,25 @@
* idle noeat
"0-9" bad_number
-:octal Constant
+:octal Number
* idle noeat
"0-7" octal
"89" bad_number recolor=-1
"lL" idle
-:hex Constant
+:hex Number
* idle noeat
"0-9A-Fa-f" hex
"lL" idle
-:decimal Constant
+:decimal Number
* idle noeat
"0-9" decimal
"lLfF" idle
"eE" epart
"." float
-:maybe_float Constant
+:maybe_float Number
* idle recolor=-2 noeat
"\i\p{Sc}" not_ident recolor=-2
"0-9" float recolor=-2
@@ -103,199 +117,199 @@
* idle noeat
"\c\p{Sc}" not_ident
-:float Constant
+:float Number
* idle noeat
"eE" epart
"0-9" float
"fFlL" idle
-:epart Constant
+:epart Number
* idle noeat
"0-9+\-" enum
-:enum Constant
+:enum Number
* idle noeat
"0-9" enum
"fFlL" idle
-:maybe_string Constant
+:maybe_string String string
* string noeat
"\"" maybe_string_1
-:maybe_string_1 Constant
+:maybe_string_1 String string
* idle noeat
"\"" stringstring
-:string Constant
+:string String string
* string
"\"" idle
"\\" string_escape recolor=-1
"%" string_control recolor=-1
-:string_escape Escape
+:string_escape StringEscape string
* string
"u" string_uni1
"0-7" string_octal2
"\n" string recolor=-2
-:string_uni1 Escape
+:string_uni1 StringEscape string
* string noeat
"0-9a-fA-F" string_uni2
-:string_uni2 Escape
+:string_uni2 StringEscape string
* string noeat
"0-9a-fA-F" string_uni3
-:string_uni3 Escape
+:string_uni3 StringEscape string
* string noeat
"0-9a-fA-F" string_uni4
-:string_uni4 Escape
+:string_uni4 StringEscape string
* string noeat
"0-9a-fA-F" string
-:string_octal2 Escape
+:string_octal2 StringEscape string
* string noeat
"0-7" string_octal3
-:string_octal3 Escape
+:string_octal3 StringEscape string
* string noeat
"0-7" string
-:string_control Escape
+:string_control StringEscape string
* string_control
"\n" idle
"\"" string noeat
"diouxXeEfFgGaAcspn%SCM" string
-:stringstring Constant
+:stringstring String string
* stringstring
"\"" stringstring_1
"\\" stringstring_escape recolor=-1
"%" stringstring_control recolor=-1
-:stringstring_1 Constant
+:stringstring_1 String string
* stringstring noeat
"\"" stringstring_2
-:stringstring_2 Constant
+:stringstring_2 String string
* stringstring noeat
"\"" idle
-:stringstring_escape Escape
+:stringstring_escape StringEscape string
* stringstring
"u" stringstring_uni1
"0-7" stringstring_octal2
"\n" stringstring recolor=-2
-:stringstring_uni1 Escape
+:stringstring_uni1 StringEscape string
* stringstring noeat
"0-9a-fA-F" stringstring_uni2
-:stringstring_uni2 Escape
+:stringstring_uni2 StringEscape string
* stringstring noeat
"0-9a-fA-F" stringstring_uni3
-:stringstring_uni3 Escape
+:stringstring_uni3 StringEscape string
* stringstring noeat
"0-9a-fA-F" stringstring_uni4
-:stringstring_uni4 Escape
+:stringstring_uni4 StringEscape string
* stringstring noeat
"0-9a-fA-F" stringstring
-:stringstring_octal2 Escape
+:stringstring_octal2 StringEscape string
* stringstring noeat
"0-7" stringstring_octal3
-:stringstring_octal3 Escape
+:stringstring_octal3 StringEscape string
* stringstring noeat
"0-7" stringstring
-:stringstring_control Escape
+:stringstring_control StringEscape string
* stringstring_control
"\n" idle
"\"" stringstring noeat
"diouxXeEfFgGaAcspn%SCM" stringstring
-:char Constant
+:char Character string
* char_done
"'" idle
"\\" char_escape recolor=-1
-:char_done Constant
+:char_done Character string
* idle noeat recolor=-3
"\'" idle
-:char_escape Escape
+:char_escape CharacterEscape string
* char_done
"u" char_uni1
"0-7" char_octal2
-:char_uni1 Escape
+:char_uni1 CharacterEscape string
* char_done noeat
"0-9a-fA-F" char_uni2
-:char_uni2 Escape
+:char_uni2 CharacterEscape string
* char_done noeat
"0-9a-fA-F" char_uni3
-:char_uni3 Escape
+:char_uni3 CharacterEscape string
* char_done noeat
"0-9a-fA-F" char_uni4
-:char_uni4 Escape
+:char_uni4 CharacterEscape string
* char_done noeat
"0-9a-fA-F" char_done
-:char_octal2 Escape
+:char_octal2 CharacterEscape string
* char_done noeat
"0-7" char_octal3
-:char_octal3 Escape
+:char_octal3 CharacterEscape string
* char_done noeat
"0-7" char_done
-:ident Idle
+:ident Ident
* ident_end noeat markend strings
- "abstract" kw
- "case" kw
+ "abstract" storage
+ "case" struct
"catch" kw
- "class" kw
- "def" kw
- "do" kw
- "else" kw
- "false" lit
- "final" kw
- "finally" kw
- "for" kw
- "forSome" kw
- "if" kw
- "implicit" kw
- "import" kw
- "lazy" kw
- "match" kw
+ "class" struct
+ "def" struct
+ "do" loop
+ "else" cond
+ "false" bool
+ "final" storage
+ "finally" stmt
+ "for" loop
+ "forSome" loop
+ "if" cond
+ "implicit" storage
+ "import" stmt
+ "lazy" storage
+ "match" cond
"new" operator
"null" lit
- "object" kw
- "override" kw
- "package" kw
- "private" kw
- "protected" kw
- "return" kw
- "sealed" kw
+ "object" storage
+ "override" storage
+ "package" storage
+ "private" storage
+ "protected" storage
+ "return" stmt
+ "sealed" storage
"super" kw
"this" kw
- "throw" kw
+ "throw" stmt
"trait" kw
- "try" kw
- "true" lit
+ "try" stmt
+ "true" bool
"type" kw
"val" kw
"var" kw
- "while" kw
+ "while" loop
"with" kw
- "yield" kw
+ "yield" loop
done
"\c\p{Sc}" ident
@@ -311,15 +325,33 @@ done
:lit Constant
* idle noeat
+:bool Boolean
+ * idle noeat
+
:operator Operator
* idle noeat
+:storage StorageClass
+ * idle noeat
+
+:cond Conditional
+ * idle noeat
+
+:loop Loop
+ * idle noeat
+
+:stmt Statement
+ * idle noeat
+
+:struct Structure
+ * idle noeat
+
:ident_end Idle
* idle noeat
" " ident_end
"(" method_end noeat recolormark
-:method_end Methods
+:method_end DefinedFunction
* idle noeat
.end
diff --git a/.config/joestar/syntax/sed.jsf b/.config/joestar/syntax/sed.jsf
@@ -8,12 +8,15 @@
-
=Idle
-=Comment green
-=String cyan
-=Escape bold cyan
-=Bad red
-=Keyword bold
-=Delimiter magenta
+=Comment
+=String +Constant
+=StringEscape +Escape
+=Regex +String
+=RegexEscape +StringEscape
+=Bad
+=Keyword
+=Delimiter #+Operator +Type
+=Label +DefinedIdent
# Zero address commands: # : }
# Zero or one address: = a i q r
@@ -21,19 +24,19 @@
:idle Idle
* cmd noeat
- " " idle
+ " \t" idle
"\n" idle
"0-9" first_addr recolor=-1
"$" first_eof recolor=-1
"/" first_regex_c recolor=-1
-:first_eof String
+:first_eof String string
* first_addr_done noeat
:first_regex_c Delimiter
* first_regex noeat
-:first_regex String
+:first_regex Regex string
* first_regex
"\\" first_regex_quote recolor=-1
"/" first_regex_e recolor=-1
@@ -41,10 +44,10 @@
:first_regex_e Delimiter
* first_addr_done noeat
-:first_regex_quote Escape
+:first_regex_quote RegexEscape string
* first_regex
-:first_addr String
+:first_addr String string
* first_addr_done noeat
"0-9" first_addr
@@ -58,14 +61,14 @@
"$" second_eof recolor=-1
"/" second_regex recolor=-1
-:second_eof String
+:second_eof String string
* cmd noeat
-:second_regex String
+:second_regex Regex string
* second_regex
"/" cmd
-:second_addr String
+:second_addr String string
* cmd noeat
"0-9" second_addr
@@ -75,18 +78,19 @@
:cmd Delimiter
* the_cmd noeat
- " " cmd
+ " \t" cmd
"!" the_cmd
:the_cmd Idle
* bad noeat
- " " the_cmd
+ " \t" the_cmd
";" next noeat
"#" comment recolor=-1
"sy" accepts recolor=-1
"{" accepto recolor=-1
"aic" accept recolor=-1
- "=:}rqbtdDhHgGxlnNpPw" acceptc recolor=-1
+ "=}rqbtdDhHgGxlnNpPw" acceptc recolor=-1
+ ":" label recolor=-1
:accepto Keyword
* idle noeat
@@ -100,21 +104,25 @@
:accepts Keyword
* subst noeat
+:label Label
+ * idle noeat
+ "a-zA-Z0-9" label
+
:subst Delimiter
* subst_rest save_c
-:subst_rest String
+:subst_rest String string
* subst_rest
& subst_rest_2_c recolor=-1
"\\" subst_rest_quote recolor=-1
-:subst_rest_quote Escape
+:subst_rest_quote StringEscape string
* subst_rest
:subst_rest_2_c Delimiter
* subst_rest_2 noeat
-:subst_rest_2 String
+:subst_rest_2 String string
* subst_rest_2
& next_c recolor=-1
"\\" subst_rest_2_quote recolor=-1
@@ -122,7 +130,7 @@
:next_c Delimiter
* nextallow noeat
-:subst_rest_2_quote Escape
+:subst_rest_2_quote StringEscape string
* subst_rest_2
:nextallow Idle
@@ -139,6 +147,6 @@
:continue Idle
* next
-:comment Comment
+:comment Comment comment
* comment
"\n" idle
diff --git a/.config/joestar/syntax/sh.jsf b/.config/joestar/syntax/sh.jsf
@@ -11,11 +11,18 @@
# Colors
=Idle
-=Comment green
-=Constant cyan
-=Escape bold cyan
-=Keyword bold
-=Var magenta
+=Ident
+=Comment
+=Constant
+=String +Constant
+=Escape
+=StringEscape +Escape +String
+=Variable +Escape
+=StringVariable +StringEscape
+=Keyword
+=Statement +Keyword
+=Loop +Statement
+=Conditional +Statement
# Syntax
@@ -32,7 +39,7 @@
"0-9" maybe_base recolor=-1
"a-zA-Z{}![_" ident buffer
-:subst_char Var
+:subst_char Variable
* idle noeat
:maybe_inc Idle
@@ -63,11 +70,11 @@
# All of these are for case of leading -
-:inc1 Var
+:inc1 Variable
* inc1
"`&()\\|;'\"<> \n" skipline1 noeat save_s
-:inc1_quote Var
+:inc1_quote Variable
* inc1 buffer noeat
:skipline1 Idle
@@ -85,16 +92,16 @@ done
"\t" next_line1
"\n" next_line1
-:founddelim1 Var
+:founddelim1 Variable
* idle noeat
# No leading -
-:inc Var
+:inc Variable
* inc
"`&()\\|;'\"<> \n" skipline noeat save_s
-:inc_quote Var
+:inc_quote Variable
* inc noeat buffer
# Should be treated as a normal line here...
@@ -114,7 +121,7 @@ done
* todelim buffer
"\n" next_line
-:founddelim Var
+:founddelim Variable
* idle noeat
# << with no word. Rest of file is a constant.
@@ -124,12 +131,13 @@ done
:comment Comment comment
* comment
+ "BFHNTX" comment noeat call=comment_todo.comment_todo()
"\n" idle
:escape Escape
* idle
-:subst Var
+:subst Variable
* idle noeat
"(" idle recolor=-2 # don't try for now
"\"" string_dq recolor=-2
@@ -138,98 +146,98 @@ done
"a-zA-Z_" subst_name
"0-9*@?\-$_!#" idle
-:subst_name Var
+:subst_name Variable
* idle noeat recolor=-1
"a-zA-Z0-9_" subst_name
-:subst_brack Var
+:subst_brack Variable
* subst_brack
"}" idle
# Simplest case: no quoting allowed
-:string_sq Constant string
+:string_sq String string
* string_sq
"\'" idle
# double-quote: quoting, backqoutes and substitution allowed
-:string_dq Constant string
+:string_dq String string
* string_dq
"$" string_dq_subst recolor=-1
"\"" idle
"\\" string_dq_esc recolor=-1
"`" string_dq_bq recolor=-1
-:string_dq_subst Var string
+:string_dq_subst StringVariable string
* string_dq noeat recolor=-2
"$0-9!_\-?*@" string_dq
"a-zA-Z_" string_dq_subst_name
"{" string_dq_subst_brack
-:string_dq_subst_name Var string
+:string_dq_subst_name StringVariable string
* string_dq recolor=-1 noeat
"a-zA-Z0-9_" string_dq_subst_name
-:string_dq_subst_brack Var string
+:string_dq_subst_brack StringVariable string
* string_dq_subst_brack
"}" string_dq
-:string_dq_esc Escape string
+:string_dq_esc StringEscape string
* string_dq recolor=-2
"$`\"\\" string_dq
"\n" string_dq recolor=-2
-:string_dq_bq Constant string
+:string_dq_bq String string
* string_dq_bq
"$" string_dq_bq_subst recolor=-1
"\`" string_dq
"\\" string_dq_bq_esc recolor=-1
-:string_dq_bq_subst Var string
+:string_dq_bq_subst StringVariable string
* string_dq_bq noeat recolor=-2
"$0-9!_\-?*@" string_dq_bq
"a-zA-Z_" string_dq_bq_subst_name
"{" string_dq_bq_subst_brack
-:string_dq_bq_subst_name Var string
+:string_dq_bq_subst_name StringVariable string
* string_dq_bq recolor=-1 noeat
"a-zA-Z0-9_" string_dq_bq_subst_name
-:string_dq_bq_subst_brack Var string
+:string_dq_bq_subst_brack StringVariable string
* string_dq_bq_subst_brack
"}" string_dq_bq
-:string_dq_bq_esc Escape string
+:string_dq_bq_esc StringEscape string
* string_dq_bq recolor=-2
"$`\"\\" string_dq_bq
"\n" string_dq_bq recolor=-2
# backquote
-:string_bq Constant
+:string_bq String
* string_bq
"$" string_bq_subst recolor=-1
"\`" idle
"\\" string_bq_esc recolor=-1
# escape in backquote
-:string_bq_esc Escape
+:string_bq_esc StringEscape
* string_bq recolor=-2
"$`\"\\" string_bq
"\n" string_bq recolor=-2
# Substitution in a backquote
-:string_bq_subst Var
+:string_bq_subst StringVariable
* string_bq noeat recolor=-2
"$0-9!_\-?*@" string_bq
"a-zA-Z_" string_bq_subst_name
"{" string_bq_subst_brack
-:string_bq_subst_name Var
+:string_bq_subst_name StringVariable
* string_bq recolor=-1 noeat
"a-zA-Z0-9_" string_bq_subst_name
-:string_bq_subst_brack Var
+:string_bq_subst_brack StringVariable
* string_bq_subst_brack
"}" string_bq
@@ -238,7 +246,7 @@ done
"#" idle
"0-9" maybe_base
-:ident Idle
+:ident Ident
* idle noeat strings
"!" bang
"{" kw
@@ -246,97 +254,109 @@ done
"[" kw
"]" kw
# primary keywords
- "case" kw
- "do" kw
- "done" kw
- "elif" kw
- "else" kw
- "esac" kw
- "fi" kw
- "for" kw
- "if" kw
- "in" kw
- "then" kw
- "until" kw
- "while" kw
+ "case" cond
+ "do" loop
+ "done" loop
+ "elif" cond
+ "else" cond
+ "esac" cond
+ "fi" cond
+ "for" loop
+ "if" cond
+ "in" stmt
+ "then" cond
+ "until" loop
+ "while" loop
# I think these are basically keywords too
- "break" kw
- "continue" kw
- "return" kw
- "eval" kw
- "exec" kw
- "exit" kw
+ "break" loop
+ "continue" loop
+ "return" stmt
+ "eval" stmt
+ "exec" stmt
+ "exit" stmt
"test" kw # doesn't have to be a shell command
# variable management
- "shift" kw
- "unset" kw
- "export" kw
- "readonly" kw
+ "shift" stmt
+ "unset" stmt
+ "export" stmt
+ "readonly" stmt
# input
- "read" kw
+ "read" stmt
# job control (not likely to be used in scripts)
- "bg" kw
- "fg" kw
- "jobs" kw
- "suspend" kw
+ "bg" stmt
+ "fg" stmt
+ "jobs" stmt
+ "suspend" stmt
# job control (useful in scripts)
- "kill" kw
- "wait" kw
+ "kill" stmt
+ "wait" stmt
# environment control
- "cd" kw
- "chdir" kw
- "pwd" kw
- "ulimit" kw
- "umask" kw
+ "cd" stmt
+ "chdir" stmt
+ "pwd" stmt
+ "ulimit" stmt
+ "umask" stmt
# signal handling
- "trap" kw
+ "trap" stmt
# misc shell control
- "hash" kw
- "type" kw
- "times" kw
- "set" kw
+ "hash" stmt
+ "type" stmt
+ "times" stmt
+ "set" stmt
# shell builtins
- "echo" kw
- "getopts" kw
- "login" kw # not bash (logout is)
- "newgrp" kw # not in bash
- "stop" kw # not in bash (suspends a process)
+ "echo" stmt
+ "getopts" stmt
+ "login" stmt # not bash (logout is)
+ "newgrp" stmt # not in bash
+ "stop" stmt # not in bash (suspends a process)
# additional ksh builtins
- "alias" kw
- "select" kw
- "function" kw
- "command" kw
- "fc" kw
- "let" kw
- "print" kw
- "unalias" kw
- "whence" kw
- "history" kw
- "time" kw
- "typeset" kw
- "local" kw
+ "alias" stmt
+ "select" stmt
+ "function" stmt
+ "command" stmt
+ "fc" stmt
+ "let" stmt
+ "print" stmt
+ "unalias" stmt
+ "whence" stmt
+ "history" stmt
+ "time" stmt
+ "typeset" stmt
+ "local" stmt
# additional bash builtins
- "source" kw
- "bind" kw
- "builtin" kw
- "compgen" kw
- "complete" kw
- "declare" kw
- "dirs" kw
- "disown" kw
- "enable" kw
- "help" kw
- "logout" kw
- "popd" kw
- "printf" kw
- "pushd" kw
- "shopt" kw
+ "source" stmt
+ "bind" stmt
+ "builtin" stmt
+ "compgen" stmt
+ "complete" stmt
+ "declare" stmt
+ "dirs" stmt
+ "disown" stmt
+ "enable" stmt
+ "help" stmt
+ "logout" stmt
+ "popd" stmt
+ "printf" stmt
+ "pushd" stmt
+ "shopt" stmt
done
"a-zA-Z0-9_" ident
:kw Keyword
* idle noeat
+:stmt Keyword
+ * idle noeat
+
+:stmt Statement
+ * idle noeat
+
+:loop Loop
+ * idle noeat
+
+:cond Conditional
+ * idle noeat
+
:bang Keyword
* idle noeat
"#" idle
diff --git a/.config/joestar/syntax/sieve.jsf b/.config/joestar/syntax/sieve.jsf
@@ -2,14 +2,21 @@
# by Christian Nicolai (http://mycrobase.de)
=Idle
-=Comment green
-=Constant cyan
-=Escape bold cyan
-=Keyword bold
-=Bad bold red
-=Brace magenta
-
-=TaggedArgument red
+=Ident
+=Comment
+=Constant
+=String +Constant
+=Number +Constant
+=Boolean +Constant
+=Escape
+=StringEscape +Escape +String
+=Keyword
+=Statement +Keyword
+=Conditional +Statement +Keyword
+=Bad
+=Brace
+
+=TaggedArgument +Operator +Keyword
:idle Idle
* idle
@@ -24,36 +31,38 @@
:brace Brace
* idle noeat
-:line_comment Comment
+:line_comment Comment comment
* line_comment
+ "BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" idle
:maybe_comment Idle
* idle noeat
"*" comment recolor=-2
-:comment Comment
+:comment Comment comment
* comment
+ "BFHNTX" comment noeat call=comment_todo.comment_todo()
"*" maybe_end_comment
-:maybe_end_comment Comment
+:maybe_end_comment Comment comment
* comment noeat
"/" idle
-:decimal Constant
+:decimal Number
* idle noeat
"0-9" decimal
"KMG" decimal_suffix
-:decimal_suffix Constant
+:decimal_suffix Number
* idle noeat
-:string Constant
+:string String string
* string
"\"" idle
"\\" string_escape recolor=-1
-:string_escape Escape
+:string_escape StringEscape string
* string_bad_escape recolor=-1
"\\" string
"\"" string
@@ -69,12 +78,12 @@
* idle noeat
"a-zA-Z0-9_" tagged_arg
-:ident Idle
+:ident Ident
* idle noeat strings
# control"
- "else" kw
- "elsif" kw
- "if" kw
+ "else" cond
+ "elsif" cond
+ "if" cond
"require" kw
"stop" kw
# commands
@@ -88,18 +97,24 @@
"anyof" test
"envelope" test
"exists" test
- "false" test
+ "false" bool
"header" test
"not" test
"size" test
- "true" test
+ "true" bool
done
"a-zA-Z0-9_" ident
:kw Keyword
* idle noeat
-:cmd Idle
+:cmd Statement
+ * idle noeat
+
+:cond Conditional
+ * idle noeat
+
+:bool Boolean
* idle noeat
:test Idle
diff --git a/.config/joestar/syntax/skill.jsf b/.config/joestar/syntax/skill.jsf
@@ -3,14 +3,18 @@
# Written by Joachim Fenkes <skill dot jsf at dojoe dot net> in 2005
=Idle
-=Comment green
-=String cyan
-=Escape bold cyan
-=Bracket bold
-=Symbol bold blue
-=Keyword bold
-=Number bold magenta
-=Bad bold red
+=Ident
+=Comment
+=Constant
+=String +Constant
+=StringEscape +Escape +String
+=Brace
+=Symbol +Atom +Constant +DefinedIdent
+=Keyword
+=Conditional +Statement +Keyword
+=Loop +Statement +Keyword
+=Number +Constant
+=Bad
:idle Idle
* idle
@@ -19,32 +23,32 @@
"/" slash
"()[]{}" bracket recolor=-1
"'" maybe_symbol recolor=-1
- "a-zA-Z_" maybe_keyword buffer
+ "a-zA-Z_" maybe_keyword buffer recolor=-1
"0-9" number recolor=-1
-:maybe_keyword Idle
+:maybe_keyword Ident
* idle noeat strings
"list" keyword
"procedure" keyword
- "while" keyword
- "foreach" keyword
- "if" keyword
- "for" keyword
- "when" keyword
- "unless" keyword
- "cond" keyword
+ "while" loop
+ "foreach" loop
+ "if" cond
+ "for" loop
+ "when" cond
+ "unless" cond
+ "cond" cond
"defun" keyword
"let" keyword
"prog" keyword
- "else" keyword
- "then" keyword
- "case" keyword
- "caseq" keyword
- "nil" keyword
+ "else" cond
+ "then" cond
+ "case" cond
+ "caseq" cond
+ "nil" const
"t" keyword
done
"0-9a-zA-Z_" maybe_keyword
-
+
:number Number
* idle noeat
"0-9." number
@@ -54,29 +58,31 @@ done
"/" slash
"*" mcomment recolor=-2
-:comment Comment
+:comment Comment comment
* comment
+ "BFHNTX" comment noeat call=comment_todo.comment_todo()
"\n" idle
-:mcomment Comment
+:mcomment Comment comment
* mcomment
+ "BFHNTX" mcomment noeat call=comment_todo.comment_todo()
"*" maybe_end_mcomment
-:maybe_end_mcomment Comment
- * mcomment
+:maybe_end_mcomment Comment comment
+ * mcomment noeat
"*" maybe_end_mcomment
"/" idle
-:string String
+:string String string
* string
"\"" idle
"\\" string_escape recolor=-1
-:string_escape Escape
+:string_escape StringEscape string
* string
"\n" string recolor=-2
-:bracket Bracket
+:bracket Brace
* idle noeat
:maybe_symbol Idle
@@ -90,3 +96,12 @@ done
:keyword Keyword
* idle noeat
+
+:cond Conditional
+ * idle noeat
+
+:loop Loop
+ * idle noeat
+
+:const Constant
+ * idle noeat
diff --git a/.config/joestar/syntax/sml.jsf b/.config/joestar/syntax/sml.jsf
@@ -63,30 +63,27 @@
# sometimes have to make dummy states with '* next-state noeat' just to get
# a color specification.
-# Define no. sync lines
-# You can say:
-# -200 means 200 lines
-# - means always start parsing from beginning of file when we lose sync
-# if nothing is specified, the default is -50
-
-# Define colors
-#
-# bold inverse blink dim underline italic
-# white cyan magenta blue yellow green red black
-# bg_white bg_cyan bg_magenta bg_blue bg_yellow bg_green bg_red bg_black
-
-=Expr
-=Bad bg_red
-=Comment green
-=Literal cyan
-=Escape bold cyan
-=Type blue
-=Keyword bold
-=Operator bold black
-=Control green
-=Id
-
-:expr Expr
+=Idle
+=Ident
+=Bad
+=Comment
+=Constant
+=String +Constant
+=Number +Constant
+=Boolean +Constant
+=StringEscape +Escape +String
+=Type
+=Keyword
+=Operator +Keyword
+=Control
+=Conditional +Statement +Keyword
+=Loop +Statement +Keyword
+=StorageClass +Keyword
+=DefinedIdent +Ident
+=DefinedFunction +DefinedIdent
+=DefinedType +Type +DefinedIdent
+
+:expr Idle
* expr
".,[{})];" control recolor=-1 # . or ... both control
"(" bracket recolor=-1
@@ -140,7 +137,7 @@ done
"0" zero recolor=-2
"1-9" decimal recolor=-2
-:zero Literal
+:zero Number
* expr noeat
"0-9" decimal
"w" word buffer
@@ -149,24 +146,24 @@ done
"E" epart buffer
"." float1
-:word Literal
+:word Number
* id noeat recolor=-2
"0-9" decimal
"x" hexword
-:hexword Literal
+:hexword Number
* id noeat recolor=-3
"0-9a-fA-F" hex
-:hex1 Literal
+:hex1 Number
* id noeat recolor=-2
"0-9a-fA-F" hex
-:hex Literal
+:hex Number
* expr noeat
"0-9a-fA-F" hex
-:decimal Literal
+:decimal Number
* expr noeat
"0-9" decimal
"." float1
@@ -174,32 +171,32 @@ done
"E" epart buffer
# trailing digits required in SML (unlike OCaml)
-:float1 Literal
+:float1 Number
* bad noeat
"0-9" float
-:float Literal
+:float Number
* expr noeat
"0-9" float
"e" epart buffer
"E" epart buffer
-:epart Literal
+:epart Number
* id noeat recolor=-2
"0-9" enum
"~" epart # bug: 3e~~3
-:enum Literal
+:enum Number
* expr noeat
"0-9" enum
-:string Literal
+:string String string
* string
"\"" expr
"\n" bad
"\\" string_escape recolor=-1
-:string_escape Escape
+:string_escape StringEscape string
* bad noeat
"abfnrtv\"\\" string
"^" string_carret
@@ -207,62 +204,63 @@ done
"0-9" string_decimal2
"\n\r\f\t " string_eatws
-:string_carret Escape
+:string_carret StringEscape string
* bad noeat
"ABCDEFGHIJKLMNOPQRSTUVWXYZ\\^_" string
-:string_eatws Escape
+:string_eatws StringEscape string
* bad noeat
"\n\r\f\t " string_eatws
"\\" string
-:string_hex1 Escape
+:string_hex1 StringEscape string
* bad noeat
"0-9a-fA-F" string_hex2
-:string_hex2 Escape
+:string_hex2 StringEscape string
* bad noeat
"0-9a-fA-F" string_hex3
-:string_hex3 Escape
+:string_hex3 StringEscape string
* bad noeat
"0-9a-fA-F" string_hex4
-:string_hex4 Escape
+:string_hex4 StringEscape string
* bad noeat
"0-9a-fA-F" string
-:string_decimal2 Escape
+:string_decimal2 StringEscape string
* bad noeat
"0-9" string_decimal3
-:string_decimal3 Escape
+:string_decimal3 StringEscape string
* bad noeat
"0-9" string
-:id Id
+:id Ident
* expr noeat strings
"_" kw
"ann" kw
"and" kw
"as" kw
- "case" kw
- "do" kw
- "else" kw
- "end" kw
+ "case" cond
+ "do" loop
+ "else" cond
+ "end" cond
"exception" kw
+ "false" bool
"fn" kw
"fun" kw
"functor" kw
"handle" kw
- "if" kw
+ "if" cond
"in" kw
"include" kw
"infix" kw
"infixr" kw
"let" kw
"local" kw
- "nil" kw
+ "nil" const
"nonfix" kw
"of" kw
"op" kw
@@ -275,9 +273,10 @@ done
"struct" kw
"structure" kw
"then" kw
- "val" kw
+ "true" bool
+ "val" val
"where" kw
- "while" kw
+ "while" loop
"with" kw
"abstype" kwtype
"datatype" kwtype
@@ -295,15 +294,37 @@ done
:kw Keyword
* expr noeat
- "a-zA-Z0-9_'" kw
:operatorkw Operator
* expr noeat
-:kwtype Keyword
+:kwtype StorageClass
* kwtype1 noeat
-:kwtype1 Type
+:const Constant
+ * expr noeat
+
+:cond Conditional
+ * expr noeat
+
+:loop Loop
+ * expr noeat
+
+:bool Boolean
+ * expr noeat
+
+:val Keyword
+ * val_preident noeat
+
+:val_preident Idle
+ * val_ident noeat
+ " \t" val_preident
+
+:val_ident DefinedIdent
+ * expr noeat
+ "a-zA-Z0-9_'" val_ident
+
+:kwtype1 DefinedType
* expr noeat
"=" typeval recolor=-1
"a-zA-Z0-9_'., :|*>\t\-" kwtype1
@@ -348,44 +369,47 @@ done
"a-zA-Z0-9_'., :|*>\t\n\-" type4
"({" expr # too deep nesting
-:comment1 Comment
+:comment1 Comment comment
* comment1
"(" nestcomment1
"*" endcomment1
+ "BFHNTX" comment1 noeat call=comment_todo.comment_todo()
-:nestcomment1 Comment
- * comment1
+:nestcomment1 Comment comment
+ * comment1 noeat
"*" comment2
-:endcomment1 Comment
- * comment1
+:endcomment1 Comment comment
+ * comment1 noeat
")" expr
"*" endcomment1
-:comment2 Comment
+:comment2 Comment comment
* comment2
"(" nestcomment2
"*" endcomment2
+ "BFHNTX" comment2 noeat call=comment_todo.comment_todo()
-:nestcomment2 Comment
- * comment2
+:nestcomment2 Comment comment
+ * comment2 noeat
"*" comment3
-:endcomment2 Comment
- * comment2
+:endcomment2 Comment comment
+ * comment2 noeat
")" comment1
"*" endcomment2
-:comment3 Comment
+:comment3 Comment comment
* comment3
"(" nestcomment3
"*" endcomment3
+ "BFHNTX" comment3 noeat call=comment_todo.comment_todo()
-:nestcomment3 Comment
- * comment3
+:nestcomment3 Comment comment
+ * comment3 noeat
"*" expr # too deep nesting
-:endcomment3 Comment
- * comment3
+:endcomment3 Comment comment
+ * comment3 noeat
")" comment2
"*" endcomment3
diff --git a/.config/joestar/syntax/spec.jsf b/.config/joestar/syntax/spec.jsf
@@ -1,149 +0,0 @@
-# JOE syntax highlight file for RPM spec files
-# from Suse, joe-3.5-20.src.rpm
-
-# some text sections are _very_ long (e.g. %changelog)
--4000
-
-=Idle
-=Colon blue
-=Macro bold blue
-=CtrlMacro bold cyan
-=Comment green
-=Variable cyan
-=Text dim white
-=Section red
-=Shell magenta
-=Shell2 bold magenta
-=ShellCmd yellow
-=ShellRedir bold yellow
-
-:idle Idle
- * idle
- "%" expr recolor=-1
- "\n" colident
- "#" comment recolor=-1
- "$" shellexpr recolor=-1
-
-:colident Colon
- * idle noeat recolor=-100
- ":" idle
- "A-Za-z0-9" colident
-
-:shellbracemagic Shell2
- * shellbraceexpr
-:shellbraceexpr Shell
- * shellexpr
- "a-zA-Z_0-9 " shellbraceexpr
- ":?!+-/" shellbracemagic noeat
-:shellexpr Shell
- * idle
- "a-zA-Z_0-9" shellexpr
- "{[" shellbraceexpr
- "}]" idle
- "(" shellexpr2
- ")" idle
-:shellexpr2 Shell
- * shellcmds recolor=-1
- "(" shellmath
- ")" shellexpr noeat
-:shellmathops Shell2
- * shellmath
-:shellmathvar Shell2
- * shellmath
- "a-zA-Z_0-9{}[]" shellmathvar
-:shellmath Shell
- * idle
- "+=/%*-" shellmathops noeat
- "0-9 " shellmath
- "$" shellmathvar recolor=-1
- ")" shellexpr2
-:shellcmds ShellCmd
- * shellcmds
- "|&><" shellredirs noeat
- ")" shellexpr recolor=-1
-:shellredirs ShellRedir
- * shellcmds
-
-:expr Macro
- * idle recolor=-1
- "%" idle
- " \t" expr
- "a-zA-Z_0-9" exprident recolor=-1 buffer
- "{" exprvar recolor=-1
- "(" shellexpr noeat
-
-:exprident Variable
- * idle noeat recolor=-1 strings
- "define" define
- "description" textsection
- "changelog" textsection
- "build" section
- "install" section
- "clean" section
- "files" section
- "package" section
- "prep" section
- "pre" section
- "post" section
- "postun" section
- "preun" section
- "setup" macro
- "patch" macronum
- "dir" macro
- "config" macro
- "doc" macro
- "defattr" macro
- "ifarch" ctrlmacro
- "ifnarch" ctrlmacro
- "endif" ctrlmacro
- "else" ctrlmacro
- "if" ctrlmacro
-done
- "a-zA-Z_" exprident
-
-:section Section
- * idle
-
-:macronum Macro
- * idle recolor=-1
- "0-9" macronum recolor=-1
-
-:macro Macro
- * idle recolor=-1
-
-:ctrlmacro CtrlMacro
- * idle recolor=-1
-
-:define Macro
- * defineident noeat recolor=-1
- " \t" define
- "\n" idle noeat
-
-:defineident Variable
- * defineident
- " \t\n" idle noeat
-
-:exprvar Variable
- * exprvar
- "}" idle
-
-:textsection Section
- * textsection2 noeat
-
-:textsection2 Idle
- * textsection2
- "\n" textsection3
-
-:textsection3 Text
- * textsection3
- "%" textsection4 recolor=-1
-
-:textsection4 Text
- * expr noeat recolor=-2
- "%" textsection3
-
-:comment Comment
- * comment
- "\n" idle noeat
-
-
diff --git a/.config/joestar/syntax/sql.jsf b/.config/joestar/syntax/sql.jsf
@@ -2,26 +2,22 @@
# 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
+=Ident
+=Bad
+=Comment
+=Constant
+=String +Constant
+=Number +Constant
+=Character +String
+=Boolean +Constant
+=Escape
+=StringEscape +Escape +String
+=CharacterEscape +StringEscape
+=Type
+=Keyword
+=Statement +Keyword
+=Brace
=Control
:idle Idle
@@ -31,13 +27,13 @@
"/" slash
"-" dash
"0" first_digit recolor=-1
- "1-9" decimal recolor=-1
+ "1-9" decimal recolor=-1
"." maybe_float
"\"" string recolor=-1
"'" char recolor=-1
"\i@" ident buffer
"{}" brace recolor=-1
- ",:;=()><[]*&|!~+%^" control recolor=-1
+ ",:;=()><[]*&|!~+%^" control recolor=-1
:brace Brace
* idle noeat
@@ -54,20 +50,22 @@
* idle noeat recolor=-2 # Not sure about this
"-" line_comment recolor=-2
-:comment Comment
+:comment Comment comment
* comment
"*" maybe_end_comment
+ "BFHNTX" comment noeat call=comment_todo.comment_todo()
-:maybe_end_comment Comment
- * comment
+:maybe_end_comment Comment comment
+ * comment noeat
"/" idle
"*" maybe_end_comment
-:line_comment Comment
+:line_comment Comment comment
* line_comment
+ "BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" idle
-:first_digit Constant
+:first_digit Number
* idle noeat
"xX" hex
"." float
@@ -79,142 +77,142 @@
* idle noeat
"0-9" bad_number
-:octal Constant
+:octal Number
* idle noeat
"0-7" octal
"89" bad_number recolor=-1
-:hex Constant
+:hex Number
* idle noeat
"0-9A-Fa-f" hex
-:decimal Constant
+:decimal Number
* idle noeat
"0-9" decimal
"eE" epart
"." float
-:maybe_float Constant
+:maybe_float Number
* idle recolor=-2 noeat
"0-9" float recolor=-2
-:float Constant
+:float Number
* idle noeat
"eE" epart
"0-9" float
-:epart Constant
+:epart Number
* idle noeat
"0-9+\-" enum
-:enum Constant
+:enum Number
* idle noeat
"0-9" enum
-:string Constant
+:string String string
* string
"\"" idle
"\\" string_escape recolor=-1
"%" string_control recolor=-1
-:string_escape Escape
+:string_escape StringEscape string
* string
"x" string_hex1
"0-7" string_octal2
"\n" string recolor=-2
-:string_hex1 Escape
+:string_hex1 StringEscape string
* string noeat
"0-9a-fA-F" string_hex2
-:string_hex2 Escape
+:string_hex2 StringEscape string
* string noeat
"0-9a-fA-F" string
-:string_octal2 Escape
+:string_octal2 StringEscape string
* string noeat
"0-7" string_octal3
-:string_octal3 Escape
+:string_octal3 StringEscape string
* string noeat
"0-7" string
-:string_control Escape
+:string_control StringEscape string
* string
"\"" string noeat
"\n" idle
"0-9.\-+ #hjILtz$" string_control
-:char Constant
+:char Character string
* char
"\n" idle
"'" idle
"\\" char_escape recolor=-1
-:char_escape Escape
+:char_escape CharacterEscape string
* char
"x" char_hex1
"0-7" char_octal2
"\n" char recolor=-2
-:char_hex1 Escape
+:char_hex1 CharacterEscape string
* char noeat
"0-9a-fA-F" char_hex2
-:char_hex2 Escape
+:char_hex2 CharacterEscape string
* char noeat
"0-9a-fA-F" char
-:char_octal2 Escape
+:char_octal2 CharacterEscape string
* char noeat
"0-7" char_octal3
-:char_octal3 Escape
+:char_octal3 CharacterEscape string
* char noeat
"0-7" char
-:ident Idle
- * idle noeat istrings
- "absolute" kw
- "add" kw
+:ident Ident
+ * idle noeat istrings
+ "absolute" kw
+ "add" kw
"admindb" kw
- "all" kw
+ "all" kw
"alphanumeric" kw
- "alter" kw
- "and" kw
- "any" kw
- "are" kw
- "as" kw
- "asc" kw
+ "alter" stmt
+ "and" kw
+ "any" kw
+ "are" kw
+ "as" kw
+ "asc" kw
"assertion" kw
"authorization" kw
"autoincrement" kw
- "avg" kw
- "begin" kw
+ "avg" kw
+ "begin" kw
"between" kw
- "binary" kw
- "bit" kw
+ "binary" type
+ "bit" type
"bit_length" kw
- "boolean" kw
- "both" kw
- "by" kw
- "byte" kw
+ "boolean" type
+ "both" kw
+ "by" kw
+ "byte" kw
"cascade" kw
"catalog" kw
- "char," kw
- "character" kw
- "character_length" kw
+ "char," type
+ "character" type
+ "character_length" kw
"char_length" kw
- "check" kw
+ "check" kw
"clause" kw
- "close" kw
+ "close" kw
"clustered" kw
"coalesce" kw
"collate" kw
"collation" kw
"column" kw
"commit" kw
- "comp," kw
+ "comp," kw
"compression" kw
"connect" kw
"connection" kw
@@ -223,240 +221,240 @@
"container" kw
"contains" kw
"convert" kw
- "count" kw
+ "count" kw
"counter" kw
- "create" kw
+ "create" stmt
"currency" kw
"current_date" kw
"current_time" kw
- "current_timestamp" kw
+ "current_timestamp" kw
"current_user" kw
"cursor" kw
- "d" kw
+ "d" kw
"database" kw
- "date" kw
- "datetime" kw
- "day" kw
- "dec," kw
- "decimal" kw
+ "date" type
+ "datetime" type
+ "day" type
+ "dec," type
+ "decimal" type
"declare" kw
- "delete" kw
- "desc" kw
+ "delete" stmt
+ "desc" kw
"disallow" kw
"disconnect" kw
"distinct" kw
"distinctrow" kw
"domain" kw
"double" kw
- "drop" kw
- "eqv" kw
- "exclusiveconnect" kw
- "exec," kw
+ "drop" stmt
+ "eqv" kw
+ "exclusiveconnect" kw
+ "exec," kw
"execute" kw
"exists" kw
"extract" kw
- "false" kw
- "fetch" kw
- "first" kw
- "float," kw
- "float4" kw
- "float8" kw
+ "false" bool
+ "fetch" kw
+ "first" kw
+ "float," type
+ "float4" type
+ "float8" type
"foreign" kw
- "from" kw
+ "from" kw
"general" kw
- "grant" kw
- "group" kw
- "guid" kw
+ "grant" kw
+ "group" kw
+ "guid" kw
"having" kw
- "hour" kw
- "i" kw
+ "hour" kw
+ "i" kw
"identity" kw
"ieeedouble" kw
"ieeesingle" kw
"ignore" kw
- "image" kw
- "imp" kw
- "in" kw
- "in" kw
- "index" kw
+ "image" kw
+ "imp" kw
+ "in" kw
+ "in" kw
+ "index" kw
"indexcreatedb" kw
- "inner" kw
- "input" kw
+ "inner" kw
+ "input" kw
"insensitive" kw
- "insert" kw
- "int," kw
- "integer," kw
- "integer1" kw
- "integer2" kw
- "integer4" kw
+ "insert" stmt
+ "int," type
+ "integer," type
+ "integer1" type
+ "integer2" type
+ "integer4" type
"interval" kw
- "into" kw
- "is" kw
+ "into" stmt
+ "is" kw
"isolation" kw
- "join" kw
- "key" kw
+ "join" kw
+ "key" kw
"language" kw
- "last" kw
- "left" kw
- "level" kw
- "like" 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
+ "long" type
+ "longbinary" type
+ "longchar" type
+ "longtext" type
+ "lower" kw
+ "match" kw
+ "max" kw
+ "memo" kw
+ "min" kw
"minute" kw
- "mod" kw
- "money" kw
- "month" kw
+ "mod" kw
+ "money" type
+ "month" type
"national" kw
- "nchar" kw
+ "nchar" type
"nonclustered" kw
- "not" kw
- "ntext" kw
- "null" kw
+ "not" kw
+ "ntext" kw
+ "null" kw
"number" kw
"numeric" kw
- "nvarchar" kw
+ "nvarchar" type
"octet_length" kw
"oleobject" kw
- "on" kw
- "open" kw
+ "on" kw
+ "open" kw
"option" kw
- "or" kw
- "order" kw
- "outer" kw
+ "or" kw
+ "order" kw
+ "outer" kw
"output" kw
"owneraccess" kw
- "pad" kw
+ "pad" kw
"parameters" kw
"partial" kw
"password" kw
"percent" kw
- "pivot" kw
+ "pivot" kw
"position" kw
"precision" kw
"prepare" kw
"primary" kw
"privileges" kw
- "proc," kw
+ "proc," kw
"procedure" kw
"public" kw
- "real" kw
+ "real" type
"references" kw
"restrict" kw
"revoke" kw
- "right" kw
+ "right" kw
"rollback" kw
"schema" kw
"second" kw
- "select" kw
+ "select" stmt
"selectschema" kw
- "selectsecurity" kw
- "set" kw
- "short" kw
+ "selectsecurity" kw
+ "set" stmt
+ "short" kw
"single" kw
- "size" kw
- "smalldatetime" kw
- "smallint" kw
- "smallmoney" kw
- "some" kw
- "space" kw
- "sql" kw
+ "size" kw
+ "smalldatetime" type
+ "smallint" type
+ "smallmoney" type
+ "some" kw
+ "space" kw
+ "sql" kw
"sqlcode," kw
"sqlerror," kw
"sqlstate" kw
- "stdev" kw
+ "stdev" kw
"stdevp" kw
"string" kw
"substring" kw
- "sum" kw
+ "sum" kw
"sysname" kw
"system_user" kw
- "table" kw
+ "table" kw
"tableid" kw
"temporary" kw
- "text" kw
- "time" kw
- "timestamp" kw
+ "text" kw
+ "time" type
+ "timestamp" type
"timezone_hour" kw
- "timezone_minute" kw
- "tinyint" kw
- "to" kw
- "top" kw
+ "timezone_minute" kw
+ "tinyint" type
+ "to" kw
+ "top" kw
"trailing" kw
"transaction" kw
"transform" kw
"translate" kw
"translation" kw
- "trim" kw
- "true" kw
- "union" kw
+ "trim" kw
+ "true" bool
+ "union" kw
"unique" kw
- "uniqueidentifier" kw
+ "uniqueidentifier" kw
"unknown" kw
- "update" kw
- "updateidentity" kw
+ "update" stmt
+ "updateidentity" kw
"updateowner" kw
- "updatesecurity" kw
- "upper" kw
- "usage" kw
- "user" kw
- "using" kw
- "value" kw
+ "updatesecurity" kw
+ "upper" kw
+ "usage" kw
+ "user" kw
+ "using" kw
+ "value" kw
"values" kw
- "var" kw
+ "var" kw
"varbinary" kw
- "varchar" kw
- "varp" kw
+ "varchar" type
+ "varp" kw
"varying" kw
- "view" kw
- "when" 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
+ "where" kw
+ "with" kw
+ "work" kw
+ "xor" kw
+ "year" type
+ "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
+ "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
+ "int" type
+ "char" type
+ "default" kw
+ "type" kw
+ "float" type
+ "begint" type
+ "mediumint" type
+ "longint" type
+ "blob" type
+ "tinyblob" type
+ "mediumblob" type
+ "longblob" type
+ "tinytext" type
+ "mediumtext" type
+ "longtext" type
+ "show" kw
+ "explain" kw
+ "enum" type
done
"\c" ident
@@ -466,5 +464,8 @@ done
:kw Keyword
* idle noeat
-:cppkw CppKeyword
+:bool Boolean
+ * idle noeat
+
+:stmt Statement
* idle noeat
diff --git a/.config/joestar/syntax/swift.jsf b/.config/joestar/syntax/swift.jsf
@@ -1,13 +1,25 @@
# JOE syntax highlight file for Swift
=Idle
-=Comment green
-=Constant cyan
-=Escape bold cyan
-=Operator bold
-=Keyword bold
-=Bad bold red
-=Rsvd
+=Comment
+=Preproc
+=Precond +Preproc
+=Constant
+=String +Constant
+=Number +Constant
+=Boolean +Constant
+=StringEscape +Escape +String
+=Operator
+=Keyword
+=Statement +Keyword
+=Loop +Statement
+=Conditional +Statement
+=Type
+=StorageClass +Type +Keyword
+=Modifier +StorageClass
+=Label +DefinedIdent
+=Builtin +DefinedFunction
+=Bad
:pre_idle Idle
* NULL noeat call=.swift()
@@ -40,20 +52,39 @@
"\"" string recolor=-1
"/" slash recolor=-1
"@$\i" ident buffer
+ "#" pre mark
:stray Bad
* idle
+:pre Preproc
+ * idle noeat
+ " \t" pre
+ "a-z" preident recolor=-1 buffer
+
+:preident Preproc
+ * idle markend recolormark noeat strings
+ "if" precond markend recolormark
+ "elseif" precond markend recolormark
+ "else" precond markend recolormark
+ "endif" precond markend recolormark
+done
+ "a-z" preident
+
+:precond Precond
+ * idle noeat
+
# Comments
-:slash Comment
+:slash Comment comment
* idle noeat recolor=-2
"/" line_comment
"*" idle call=.block_comment()
-:line_comment Comment
+:line_comment Comment comment
* line_comment
"\n" idle
+ "BFHNTX" line_comment noeat call=comment_todo.comment_todo()
# Numbers
@@ -140,123 +171,165 @@
# Strings
-:string Constant
+:string String string
* string
"\"" idle
"\\" string_escape recolor=-1
-:string_escape Escape
+:string_escape StringEscape string
* string
"(" string call=.swift(paren) recolor=-2
"u" string_maybe_uni
-:string_maybe_uni Escape
+:string_maybe_uni StringEscape string
* string
"{" string_uni
-:string_uni Escape
+:string_uni StringEscape string
* string_uni
"}" string
# Identifiers
:ident Idle
- * idle noeat strings
- "class" kw
+ * idle noeat strings
+ "class" storage
"deinit" kw
- "enum" kw
- "extension" kw
- "func" kw
- "import" kw
+ "enum" storage
+ "extension" storage
+ "func" storage
+ "import" stmt
"init" kw
- "inout" kw
- "internal" kw
+ "inout" storage
+ "internal" modifier
"let" kw
"operator" kw
- "private" kw
- "protocol" kw
- "public" kw
- "static" kw
- "struct" kw
+ "private" modifier
+ "protocol" storage
+ "public" modifier
+ "static" modifier
+ "struct" storage
"subscript" kw
- "typealias" kw
+ "typealias" storage
"var" kw
- "break" kw
- "case" kw
- "continue" kw
- "default" kw
- "defer" kw
- "do" kw
- "else" kw
- "fallthrough" kw
- "for" kw
+ "break" stmt
+ "case" label
+ "continue" loop
+ "default" label
+ "defer" stmt
+ "do" stmt
+ "else" cond
+ "fallthrough" stmt
+ "for" loop
"guard" kw
- "if" kw
+ "if" cond
"in" kw
- "repeat" kw
- "return" kw
- "switch" kw
+ "repeat" loop
+ "return" stmt
+ "switch" cond
"where" kw
- "while" kw
+ "while" loop
"as" kw
- "catch" kw
+ "catch" stmt
"dynamicType" kw
- "false" lit
+ "false" bool
"is" kw
"nil" lit
- "rethrows" kw
+ "rethrows" modifier
"super" kw
"self" kw
- "Self" kw
- "throw" kw
- "throws" kw
- "true" lit
+ "Self" type
+ "throw" stmt
+ "throws" modifier
+ "true" bool
"try" kw
"__COLUMN__" kw
"__FILE__" kw
"__FUNCTION__" kw
"__LINE__" kw
"_" kw
- "associativity" rsvd
- "convenience" rsvd
- "dynamic" rsvd
- "didSet" rsvd
- "final" rsvd
- "get" rsvd
- "infix" rsvd
- "indirect" rsvd
- "lazy" rsvd
- "left" rsvd
- "mutating" rsvd
- "none" rsvd
- "nonmutating" rsvd
- "optional" rsvd
- "override" rsvd
- "postfix" rsvd
- "precedence" rsvd
- "prefix" rsvd
- "Protocol" rsvd
- "required" rsvd
- "right" rsvd
- "set" rsvd
- "Type" rsvd
- "unowned" rsvd
- "weak" rsvd
- "willSet" rsvd
+ "associativity" kw
+ "convenience" kw
+ "dynamic" kw
+ "didSet" kw
+ "final" storage
+ "get" kw
+ "infix" kw
+ "indirect" kw
+ "lazy" storage
+ "left" kw
+ "mutating" storage
+ "none" kw
+ "nonmutating" storage
+ "open" storage
+ "optional" kw
+ "override" storage
+ "postfix" kw
+ "precedence" kw
+ "prefix" kw
+ "Protocol" builtin
+ "required" kw
+ "right" kw
+ "set" kw
+ "Type" builtin
+ "unowned" kw
+ "weak" kw
+ "willSet" kw
+
+ "String" type
+ "Int" type
+ "Int8" type
+ "Int16" type
+ "Int32" type
+ "Int64" type
+ "UInt" type
+ "UInt8" type
+ "UInt16" type
+ "UInt32" type
+ "UInt64" type
+ "Float" type
+ "Double" type
+ "Bool" type
+ "Character" type
+ "Optional" type
done
- "$\c" ident
+ "$\c" ident
:kw Keyword
- * idle noeat
+ * idle noeat
-:rsvd Rsvd
- * idle noeat
+:bool Boolean
+ * idle noeat
:lit Constant
* idle noeat
-:operator Operator
- * idle noeat
+:oper Operator
+ * idle noeat
+
+:storage StorageClass
+ * idle noeat
+
+:modifier Modifier
+ * idle noeat
+
+:label Label
+ * idle noeat
+
+:loop Loop
+ * idle noeat
+
+:cond Conditional
+ * idle noeat
+
+:stmt Statement
+ * idle noeat
+
+:builtin Builtin
+ * idle noeat
+
+:type Type
+ * idle noeat
.end
@@ -264,16 +337,17 @@ done
.subr block_comment
-:idle Comment
+:idle Comment comment
* idle
"*" maybe_done
"/" maybe_recur
+ "BFHNTX" idle noeat call=comment_todo.comment_todo()
-:maybe_done Comment
+:maybe_done Comment comment
* idle noeat
"/" idle return
-:maybe_recur Comment
+:maybe_recur Comment comment
* idle noeat
"*" idle call=.block_comment()
diff --git a/.config/joestar/syntax/tcl.jsf b/.config/joestar/syntax/tcl.jsf
@@ -1,21 +1,29 @@
# JOE syntax highlight file for TCL
=Idle
-=Comment green
-=Constant cyan
-=Escape bold cyan
-=Keyword bold
-=Subst magenta
-=SubstEscape bold magenta
+=Ident
+=Comment
+=Constant
+=String +Constant
+=Escape
+=StringEscape +Escape +String
+=Keyword
+=Statement +Keyword
+=Conditional +Statement
+=Loop +Statement
+=StringVariable +StringEscape
+=Subst +StringVariable
+=SubstEscape +Escape
:reset Idle
* command noeat
"#" comment recolor=-1
" \t}" reset
-:comment Comment
+:comment Comment comment
* comment
"\n" reset
+ "BFHNTX" comment noeat call=comment_todo.comment_todo()
:command Idle
* ident buffer
@@ -32,231 +40,239 @@
:quote Escape
* args
-:string Constant
+:string String string
* string
"\\" escape recolor=-1
"\"" args
"$" subst recolor=-1
-:escape Escape
+:escape StringEscape string
* string
"0-7" octal2
"x" hex1
"u" unicode1
-:octal2 Escape
+:octal2 StringEscape string
* string noeat
"0-7" octal3
-:octal3 Escape
+:octal3 StringEscape string
* string noeat
"0-7" string
-:unicode1 Escape
+:unicode1 StringEscape string
* string noeat
"0-9a-fA-F" unicode2
-:unicode2 Escape
+:unicode2 StringEscape string
* string noeat
"0-9a-fA-F" hex1
-:hex1 Escape
+:hex1 StringEscape string
* string noeat
"0-9a-fA-F" hex2
-:hex2 Escape
+:hex2 StringEscape string
* string noeat
"0-9a-fA-F" string
-:subst SubstEscape
+:subst SubstEscape string
* string noeat recolor=-2
"a-zA-Z0-9_:" substrest recolor=-1
"{" substbrack recolor=-1
-:substrest Subst
+:substrest Subst string
* string noeat
"a-zA-Z0-9_:" substrest
"(" index
-:substbrack Subst
+:substbrack Subst string
* substbrack
"}" string
-:index Subst
+:index Subst string
* index
")" string
-:ident Idle
- * ident
- " \t\n;}]" args noeat strings
- "after" kw
- "alarm" kw
+:ident Ident
+ * ident
+ " \t\n;}]" args noeat strings
+ "after" kw
+ "alarm" kw
"append" kw
- "array" kw
+ "array" kw
"auto_commands" kw
"auto_execok" kw
"auto_import" kw
"auto_load" kw
- "auto_load_index" kw
+ "auto_load_index" kw
"auto_load_pkg" kw
"auto_packages" kw
"auto_qualify" kw
"binary" kw
- "break" kw
+ "break" loop
"bsearch" kw
- "case" kw
- "catch" kw
+ "case" kw
+ "catch" kw
"catclose" kw
"catgets" kw
"catopen" kw
"ccollate" kw
"cconcat" kw
- "cd" kw
+ "cd" kw
"cequal" kw
- "chgrp" kw
- "chmod" kw
- "chown" kw
+ "chgrp" kw
+ "chmod" kw
+ "chown" kw
"chroot" kw
"cindex" kw
"clength" kw
- "clock" kw
- "close" kw
+ "clock" kw
+ "close" kw
"cmdtrace" kw
"commandloop" kw
"concat" kw
- "continue" kw
+ "continue" loop
"crange" kw
"csubstr" kw
"ctoken" kw
- "ctype" kw
- "dup" kw
- "echo" kw
- "else" kw
+ "ctype" kw
+ "dup" kw
+ "echo" kw
+ "else" cond
+ "elseif" cond
"encoding" kw
- "eof" kw
- "error" kw
- "eval" kw
- "exec" kw
- "execl" kw
- "exit" kw
- "expr" kw
+ "eof" kw
+ "error" kw
+ "eval" kw
+ "exec" kw
+ "execl" kw
+ "exit" kw
+ "expr" kw
"fblocked" kw
- "fcntl" kw
+ "fcntl" kw
"fconfigure" kw
- "fcopy" kw
- "file" kw
+ "fcopy" kw
+ "file" kw
"fileevent" kw
- "flock" kw
- "flush" kw
- "for" kw
- "foreach" kw
- "fork" kw
+ "flock" kw
+ "flush" kw
+ "for" loop
+ "foreach" loop
+ "fork" kw
"format" kw
- "fstat" kw
+ "fstat" kw
"ftruncate" kw
"funlock" kw
- "gets" kw
- "glob" kw
+ "gets" kw
+ "glob" kw
"global" kw
"history" kw
"host_info" kw
- "id" kw
- "if" kw
- "incr" kw
- "info" kw
- "infox" kw
+ "id" kw
+ "if" cond
+ "incr" kw
+ "info" kw
+ "infox" kw
"interp" kw
- "join" kw
+ "join" kw
"keyldel" kw
"keylget" kw
"keylkeys" kw
"keylset" kw
- "kill" kw
+ "kill" kw
"lappend" kw
"lassign" kw
"lcontain" kw
"lempty" kw
- "lgets" kw
+ "lgets" kw
"lindex" kw
- "link" kw
+ "link" kw
"linsert" kw
- "list" kw
+ "list" kw
"llength" kw
"lmatch" kw
- "load" kw
+ "load" kw
"loadlibindex" kw
- "loop" kw
+ "loop" kw
"lrange" kw
"lreplace" kw
"lsearch" kw
- "lset" kw
- "lsort" kw
+ "lset" kw
+ "lsort" kw
"lvarcat" kw
"lvarpop" kw
"lvarpush" kw
- "max" kw
- "min" kw
+ "max" kw
+ "min" kw
"namespace" kw
- "nice" kw
- "open" kw
+ "nice" kw
+ "open" kw
"package" kw
- "pid" kw
- "pipe" kw
- "proc" kw
+ "pid" kw
+ "pipe" kw
+ "proc" kw
"profile" kw
- "puts" kw
- "pwd" kw
+ "puts" kw
+ "pwd" kw
"random" kw
- "read" kw
+ "read" kw
"readdir" kw
"regexp" kw
"regsub" kw
"rename" kw
"replicate" kw
"return" kw
- "scan" kw
+ "scan" kw
"scancontext" kw
"scanfile" kw
"scanmatch" kw
- "seek" kw
+ "seek" kw
"select" kw
"server_accept" kw
"server_create" kw
- "set" kw
+ "set" kw
"signal" kw
- "sleep" kw
+ "sleep" kw
"socket" kw
"source" kw
- "split" kw
+ "split" kw
"string" kw
- "subst" kw
- "switch" kw
- "sync" kw
+ "subst" kw
+ "switch" cond
+ "sync" kw
"system" kw
"tclLog" kw
"tclx_findinit" kw
"tclx_fork" kw
- "tclx_load_tndxs" kw
+ "tclx_load_tndxs" kw
"tclx_sleep" kw
"tclx_system" kw
"tclx_wait" kw
- "tell" kw
- "time" kw
- "times" kw
- "trace" kw
+ "tell" kw
+ "then" cond
+ "time" kw
+ "times" kw
+ "trace" kw
"translit" kw
"try_eval" kw
- "umask" kw
+ "umask" kw
"unknown" kw
- "unset" kw
+ "unset" kw
"update" kw
"uplevel" kw
- "upvar" kw
+ "upvar" kw
"variable" kw
- "vwait" kw
- "wait" kw
- "while" kw
+ "vwait" kw
+ "wait" kw
+ "while" loop
done
:kw Keyword
* args noeat
+
+:cond Conditional
+ * args noeat
+
+:loop Loop
+ * args noeat
diff --git a/.config/joestar/syntax/tex.jsf b/.config/joestar/syntax/tex.jsf
@@ -1,12 +1,12 @@
# joe [La]TeX syntax highlighting
=Idle
-=Comment green
-=Keyword bold
-=Mathmode cyan
-=Brace magenta
-=Parameter bold blue
-=Bad bold red
+=Comment
+=Keyword
+=Mathmode +Constant
+=Brace
+=Parameter +Type
+=Bad
:idle Idle
* idle
@@ -16,7 +16,7 @@
"{[]}" brace recolor=-1
"#" parameter recolor=-1
-:comment Comment
+:comment Comment comment
* comment
# might be TODO label
"BFHNTX" comment noeat call=comment_todo.comment_todo()
diff --git a/.config/joestar/syntax/troff.jsf b/.config/joestar/syntax/troff.jsf
@@ -1,10 +1,10 @@
# Syntax file for Troff
=Idle
-=Comment green
-=Escape magenta
-=Command bold
-=Bad red
+=Comment
+=Escape
+=Command +Statement +Keyword
+=Bad
# First character of line
@@ -77,6 +77,7 @@
:comment Comment
* comment
"\n" first
+ "BFHNTX" comment noeat call=comment_todo.comment_todo()
:bad Bad
* rest noeat
diff --git a/.config/joestar/syntax/verilog.jsf b/.config/joestar/syntax/verilog.jsf
@@ -3,12 +3,17 @@
# Define colors
=Idle
-=Preproc bold blue
-=Comment green
-=Constant cyan
-=Escape bold cyan
-=Type bold
-=Keyword bold
+=Ident
+=Preproc
+=Precond +Preproc
+=Comment
+=Constant
+=Number +Constant
+=String +Constant
+=Escape
+=StringEscape +Escape +String
+=Type
+=Keyword
# Skip whitespace at start of line
:reset Idle
@@ -23,11 +28,11 @@
* idle noeat
"a-zA-Z_" preident recolor=-1 buffer
-:preident Idle
+:preident Preproc
* idle noeat strings
- "ifdef" preproc
- "else" preproc
- "endif" preproc
+ "ifdef" precond
+ "else" precond
+ "endif" precond
"timescale" preproc
"define" preproc
"include" preproc
@@ -56,6 +61,9 @@ done
:preproc Preproc
* idle noeat
+:precond Precond
+ * idle noeat
+
# All following states are for when we're not in a preprocessor line
:idle Idle
@@ -73,90 +81,92 @@ done
"*" comment recolor=-2
"/" line_comment recolor=-2
-:comment Comment
+:comment Comment comment
* comment
+ "BFHNTX" comment noeat call=comment_todo.comment_todo()
"*" maybe_end_comment
-:maybe_end_comment Comment
+:maybe_end_comment Comment comment
* comment
"/" idle
"*" maybe_end_comment
-:line_comment Comment
+:line_comment Comment comment
* line_comment
+ "BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" reset
# Integer constants
-:first_digit Constant
+:first_digit Number
* idle noeat
"'" sized_number
"." float
"0-9" first_digit
-:sized_number Constant
+:sized_number Number
* idle noeat
"hH" hex_number
"oO" octal_number
"bB" binary_number
"dD" decimal_number
-:hex_number Constant
+:hex_number Number
* idle noeat
"0-9A-Fa-f_xz" hex_number
-:binary_number Constant
+:binary_number Number
* idle noeat
"01_xz" binary_number
-:octal_number Constant
+:octal_number Number
* idle noeat
"0-7_xz" octal_number
-:decimal_number Constant
+:decimal_number Number
* idle noeat
"0-9_" decimal_number
# Floating point
-:maybe_float Constant
+:maybe_float Number
* idle recolor=-2 noeat
"0-9" float recolor=-2
-:float Constant
+:float Number
* idle noeat
"eE" epart
"0-9" float
-:epart Constant
+:epart Number
* idle noeat
"0-9+\-" enum
-:enum Constant
+:enum Number
* idle noeat
"0-9" enum
# Strings
-:string Constant
+:string String string
* string
"\n" reset
"\"" idle
"\\" string_escape recolor=-1
"%" string_control recolor=-1
-:string_escape Escape
+:string_escape StringEscape string
* string
"\n" string recolor=-2
-:string_control Escape
+:string_control StringEscape string
* string_control
"\n" reset
"efghdobcvstmEFGHDOBCVSTM%" string
# Identifiers
-:ident Idle
+:ident Ident
* idle noeat strings
"always" kw
"assign" kw
diff --git a/.config/joestar/syntax/vhdl.jsf b/.config/joestar/syntax/vhdl.jsf
@@ -3,11 +3,17 @@
# Define colors
=Idle
-=Comment green
-=Constant cyan
-=Escape bold cyan
-=Keyword bold
-=Operator bold
+=Ident
+=Comment
+=Constant
+=Number +Constant
+=String +Constant
+=Character +String
+=Escape
+=StringEscape +Escape +String
+=CharacterEscape +StringEscape
+=Keyword
+=Operator +Keyword
# All following states are for when we're not in a preprocessor line
@@ -30,12 +36,13 @@
:comment Comment
* comment
+ "BFHNTX" comment noeat call=comment_todo.comment_todo()
"\n" idle
# Character constant
-:char Constant
+:char Character
* char
"'" idle
@@ -53,19 +60,19 @@
* ident noeat
"\"" string recolor=-2
-:string Constant
+:string String string
* string
"\n" idle
"\"" idle
"\\" string_escape recolor=-1
-:string_escape Escape
+:string_escape StringEscape string
* string
"\n" string recolor=-2
# Integer constants
-:first_digit Constant
+:first_digit Number
* idle noeat
"." float
"_" first_digit
@@ -73,26 +80,26 @@
# Floating point
-:maybe_float Constant
+:maybe_float Number
* idle recolor=-2 noeat
"0-9" float recolor=-2
-:float Constant
+:float Number
* idle noeat
"eE" epart
"0-9" float
-:epart Constant
+:epart Number
* idle noeat
"0-9+\-" enum
-:enum Constant
+:enum Number
* idle noeat
"0-9" enum
# Identifiers
-:ident Idle
+:ident Ident
* quote noeat istrings
"abs" operator
"access" kw
diff --git a/.config/joestar/syntax/xml.jsf b/.config/joestar/syntax/xml.jsf
@@ -1,39 +1,26 @@
# Improved XML highlighter by: Brian Candler <B.Candler@pobox.com>
-
-# Define no. sync lines
-# You can say:
-# -200 means 200 lines
-# - means always start parsing from beginning of file when we lose sync
-# if nothing is specified, the default is -50
-
--
-
-# Define colors
-#
-# bold inverse blink dim underline italic
-# white cyan magenta blue yellow green red black
-# bg_white bg_cyan bg_magenta bg_blue bg_yellow bg_green bg_red bg_black
-
-# The underlines are here right now just because I want to distinguish which
-# bits have been coloured (say) CdataStart, CdataBody, CdataEnd. And that's
-# because I think it may be useful to make that distinction for some people.
+# Incorporated some Ant logic from Christian Nicolai (http://mycrobase.de)
=Idle
-=Error red bold
-=Tag blue
-=Attr cyan
-=Constant blue bold
-=EntityRef magenta
-=Decl cyan
-=CommentStart green
-=CommentBody green
-=CommentEnd green
-=PIStart magenta bold
-=PIBody magenta
-=PIEnd magenta bold
-=CdataStart blue bold
-=CdataBody bold
-=CdataEnd blue bold
+=Bad
+=Tag +DefinedFunction +DefinedIdent
+=TagName +Tag
+=TagEnd +Tag
+=Attr +Type
+=Constant
+=String +Constant
+=Entity +Escape
+=StringEntity +StringEscape +Entity
+=Namespace +Comment
+=Decl +Preproc +Tag
+=Comment
+=CommentEdge +Comment
+=PIStart +Preproc +Tag
+=PIBody +Comment
+=PIEnd +Preproc +Tag
+=CdataEdge +Statement
+=CdataBody +String
+=Keyword
# http://www.w3.org/TR/2004/REC-xml-20040204/
#
@@ -45,6 +32,11 @@
# Actually the standard tells you which characters to use, see:
# http://www.w3.org/TR/xml11/#NT-NameStartChar
+:init Idle
+ * idle noeat call=.xml()
+
+.subr xml
+
:content Idle
* content
"<" tag recolor=-1
@@ -57,16 +49,16 @@
# In several contexts a space is an error, and since a coloured space is
# not visible, we colour the next non-space character as well.
-:error Error
+:error Bad
* error_visible noeat recolor=-1
" \t\r\n" error
-:error_visible Error
+:error_visible Bad
* content
# Matched: &
-:entityref EntityRef
+:entityref Entity
* error noeat recolor=-1
"-.:\c" entityref
"#" entityref
@@ -76,42 +68,58 @@
:tag Tag
* error noeat recolor=-1
- "/" end_tag
- ":\i" start_or_empty_tag
+ "/" end_tag recolor=-2 mark
+ ":\i" start_or_empty_tag recolor=-1 mark buffer
"?" pi_start recolor=-2
"!" decl recolor=-2 buffer
# Matched: </
-:end_tag Tag
+:end_tag TagEnd
* error noeat recolor=-1
- ":\i" end_tag2
+ ":\i" end_tag2 recolor=-1
-:end_tag2 Tag
+:end_tag2 TagEnd
* error noeat recolor=-1
"-.:\c" end_tag2
" \t\r\n" end_tag2_sp recolor=-1
- ">" content
+ ">" close_tag_end noeat
-:end_tag2_sp Idle
+:end_tag2_sp TagEnd
* end_tag3 noeat
-:end_tag3 Tag
+:end_tag3 TagEnd
* error noeat recolor=-1
" \t\r\n" end_tag3_sp recolor=-1
- ">" content
+ ">" close_tag_end noeat
-:end_tag3_sp Idle
+:end_tag3_sp TagEnd
* end_tag_3 noeat
# Matched: <tag
-:start_or_empty_tag Tag
+:start_or_empty_tag TagName
+.ifdef ant
+ * decide_tag_type noeat strings
+ "target" kw
+done
+.else
+ * decide_tag_type noeat
+.endif
+ ":" tag_namespace markend recolormark recolor=-1
+ "-.\c" start_or_empty_tag
+
+:kw Keyword
+ * decide_tag_type noeat
+
+:decide_tag_type TagName
* error noeat recolor=-1
- "-.:\c" start_or_empty_tag
- "/" empty_tag
- " \t\r\n" start_or_empty_tag_sp recolor=-1
- ">" content
+ "/" empty_tag mark
+ " \t\r\n" start_or_empty_tag_sp markend buffer recolor=-1
+ ">" close_tag noeat
+
+:tag_namespace Namespace
+ * start_or_empty_tag noeat buffer
:start_or_empty_tag_sp Idle
* tag_space noeat
@@ -120,28 +128,32 @@
:empty_tag Tag
* error noeat recolor=-1
- ">" content
+ ">" close_tag noeat
# Matched: <tag SPACE
:tag_space Attr
* error noeat recolor=-1
" \t\r\n" tag_space_sp recolor=-1
- ":\i" attr
+ ":\i" attr mark
"/" empty_tag recolor=-1
- ">" close_tag recolor=-1
+ ">" close_tag noeat
:tag_space_sp Idle
- * tag_space noeat
+ * tag_space mark noeat
# Matched: <tag attr
:attr Attr
* error noeat recolor=-1
- "-.:\c" attr
+ ":" attr_namespace markend recolormark recolor=-1
+ "-.\c" attr
" \t\r\n" attr_sp recolor=-1
"=" string
+:attr_namespace Namespace
+ * attr noeat
+
:attr_sp Idle
* attr_before noeat
@@ -163,31 +175,37 @@
# Matched: <tag attr="
-:astring Constant
+:astring String string
* astring
"<" error noeat recolor=-1
"&" achar recolor=-1
"\"" endstring
+.ifdef ant
+ "$" astring call=ant.antvar() recolor=-1
+.endif
# ">" error noeat recolor=-1
-:bstring Constant
+:bstring String string
* bstring
"<" error noeat recolor=-1
"&" bchar recolor=-1
"'" endstring
+.ifdef ant
+ "$" bstring call=ant.maybe_antvar()
+.endif
# ">" error noeat recolor=-1
-:achar EntityRef
+:achar StringEntity string
* error noeat recolor=-1
"-.:\c" achar
"#" achar
";" astring
-:bchar EntityRef
+:bchar Entity
* error noeat recolor=-1
"-.:\c" bchar
"#" bchar
@@ -199,12 +217,15 @@
* error noeat recolor=-1
" \t\r\n" tag_space_sp
"/" empty_tag recolor=-1
- ">" close_tag recolor=-1
+ ">" close_tag noeat
# This state is just to recolor the final ">" at the end of <tag attr="val">
:close_tag Tag
- * content noeat
+ * content
+
+:close_tag_end TagEnd
+ * content
# Matched: <?
@@ -240,35 +261,36 @@ done
# Matched: <!--
-:comment_start CommentStart
+:comment_start CommentEdge
* comment noeat
-:comment CommentBody
+:comment Comment comment
* comment
+ "BFHNTX" comment noeat call=comment_todo.comment_todo()
"-" comment2
-:comment2 CommentBody
+:comment2 Comment comment
* comment
"-" comment3
-:comment3 CommentBody
+:comment3 Comment comment
* comment_error noeat recolor=-3
">" comment_end recolor=-3
-:comment_end CommentEnd
+:comment_end CommentEdge
* content noeat recolor=-1
# For compatibility, the string "--" (double-hyphen) MUST NOT occur within
# comments. [http://www.w3.org/TR/REC-xml/ section 2.5]
-:comment_error Error
+:comment_error Bad
* comment
"-" comment_error
">" comment_end recolor=-3
# Matched: <![CDATA[
-:cdata_start CdataStart
+:cdata_start CdataEdge
* cdata noeat
:cdata CdataBody
@@ -284,5 +306,7 @@ done
"]" cdata3
">" cdata_end recolor=-3
-:cdata_end CdataEnd
+:cdata_end CdataEdge
* content noeat recolor=-1
+
+.end
diff --git a/.config/joestar/syntax/yaml.jsf b/.config/joestar/syntax/yaml.jsf
@@ -1,21 +1,27 @@
# JOE syntax highlight file for YAML
# by Christian Nicolai (http://mycrobase.de)
-=Idle
-=Comment green
-=Constant cyan
-=Escape bold cyan
-=Type bold
-=Keyword bold
-=Bad bold red
-=Brace magenta
-
-=Directive red
-=Reference yellow
-=LocalType blue
-=BlockDelim bold blue
+# TODO: Could use numbers vs strings for Constant, but it's a bit of work
+# Array elements with colons get misidentified as keys
-=BadTab inverse red
+=Idle
+=Comment
+=Constant
+=String +Constant
+=Number +Constant
+=Escape
+=StringEscape +Escape +String
+=Type
+=Bad
+=Brace
+
+=Key +Attr +Type +String
+=Directive +Keyword
+=Reference +Label +DefinedIdent
+=LocalType +DefinedType +Type
+=BlockDelim +Operator
+
+=BadTab +Bad
:line_start Idle
* maybe_key noeat
@@ -45,19 +51,20 @@
" a-zA-Z0-9_-" maybe_key1
# necessary to include the :
-:key Idle
+:key Key
* key_end noeat recolormark
-:key_end Idle
+:key_end Key
* idle noeat
# mark bad tabs until the first non-whitespace
:bad_tab BadTab
* line_start noeat
-:line_comment Comment
+:line_comment Comment comment
* line_comment
"\n" line_start
+ "BFHNTX" line_comment noeat call=comment_todo.comment_todo()
:brace Brace
* idle noeat
@@ -66,27 +73,27 @@
* directive
"\n" line_start
-:string_sq_1 Constant
+:string_sq_1 String string
* string_sq noeat
-:string_sq Constant
+:string_sq String string
* string_sq
"\'" idle
"\\" string_sq_esc recolor=-1
-:string_sq_esc Escape
+:string_sq_esc StringEscape string
* string_sq
"\n" string_sq recolor=-2
-:string_dq_1 Constant
+:string_dq_1 String string
* string_dq noeat
-:string_dq Constant
+:string_dq String string
* string_dq
"\"" idle
"\\" string_dq_esc recolor=-1
-:string_dq_esc Escape
+:string_dq_esc StringEscape string
* string_dq
"\n" string_dq recolor=-2
@@ -101,11 +108,11 @@
:block BlockDelim
* idle noeat
-:maybe_block_end1 Constant
+:maybe_block_end1 String string
* idle noeat
"." maybe_block_end2
-:maybe_block_end2 Constant
+:maybe_block_end2 String string
* idle noeat
"." block_end recolor=-3
diff --git a/.config/polybar/config b/.config/polybar/config
@@ -1,4 +1,4 @@
-;==========================================================
+==========================================================
;
;
; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗
@@ -17,12 +17,12 @@
;==========================================================
[colors]
-;background = ${xrdb:color0:#222}
+background = ${xrdb:background}
;background = #222
;background = #aa000
;background-alt = #444
-background = ${xrdb:color0:#222}
+;background = ${xrdb:color0:#222}
background-alt = ${xrdb:color0:#222}
foreground = ${xrdb:color7:#222}
foreground-alt = ${xrdb:color7:#222}
@@ -51,7 +51,8 @@ alert = ${xrdb:color3:#222}
;monitor = ${env:MONITOR:DisplayPort-2}
monitor = ${env:MONITOR:DisplayPort-3}
-bottom = true
+bottom = false
+top = true
width = 100%
height = 27
@@ -67,7 +68,7 @@ foreground = ${colors.foreground}
line-size = 3
line-color = #f00
-border-size = 4
+border-size = 0
border-color = #00000000
padding-left = 0
@@ -77,13 +78,13 @@ module-margin-left = 1
module-margin-right = 2
;font-0 = :pixelsize=12;1
-font-1 = "NotoEmoji:Style=Regular:scale=12;1"
-font-0 = "ubuntu:fontformat=truetype:size=12:antialias=true;0"
-font-2 = "NotoEmoji:scale=10;1"
+font-0 = "Inconsolata:fontformat=truetype:size=13:antialias=true;0"
+font-1 = "Inconsolata:Style=Regular:scale=13;1"
+font-2 = "Siji:scale=13;1"
modules-left = i3
modules-center = date
-modules-right = mpd filesystem pulseaudio memory cpu wlan eth temperature powermenu
+modules-right = mpd pulseaudio battery eth wlan temperature
tray-position = right
tray-padding = 2
@@ -234,9 +235,9 @@ label-urgent-padding = 2
[module/mpd]
type = internal/mpd
-format-online = <label-song> <icon-prev> <icon-stop> <toggle> <icon-next>
+format-online = <label-song>
format-online-prefix = "🎵 "
-format-online-underline = #fff
+format-online-underline = ${colors.foreground-alt}
icon-prev =
icon-stop =
@@ -244,9 +245,11 @@ icon-play =
icon-pause =
icon-next =
-label-song-maxlen = 25
+label-song-maxlen = 15
label-song-ellipsis = true
+label-song = %title%
+
[module/xbacklight]
type = internal/xbacklight
@@ -272,7 +275,7 @@ card = intel_backlight
[module/cpu]
type = internal/cpu
interval = 2
-format-prefix = "🖥️ "
+format-prefix = "🖥 "
format-prefix-foreground = ${colors.foreground-alt}
format-underline = #f90000
label = %percentage:2%%
@@ -287,7 +290,7 @@ label = %percentage_used%%
[module/wlan]
type = internal/network
-interface = wlp5s0
+interface = wlp3s0
interval = 3.0
format-connected = 🌐 <ramp-signal> <label-connected>
@@ -309,7 +312,7 @@ ramp-signal-foreground = ${colors.foreground-alt}
[module/eth]
type = internal/network
-interface = enp6s0
+interface = enp0s25
interval = 3.0
format-connected-underline = #55aa55
@@ -450,7 +453,7 @@ label-warn = %temperature-c%
label-warn-foreground = ${colors.secondary}
interval = 1
-hwmon-path = /sys/devices/platform/coretemp.0/hwmon/hwmon1/temp1_input
+hwmon-path = /sys/class/thermal/thermal_zone0/temp
ramp-0 =
ramp-1 =
diff --git a/.gitignore b/.gitignore
@@ -82,7 +82,9 @@ flycheck_*.el
!/.config/joestar/**/*
!/.config/polybar/
!/.config/polybar/config
-!/.config/polybar/
+!/.config/dunst/
+!/.config/dunst/dunstrc
+!/.config/mimeapps.list
/.emacs.d/**/*
!/.emacs.d/init.el
!/.emacs.d/lisp/