dotfiles

My dotfiles.
Log | Files | Refs | LICENSE

commit 8c06c24b5b89030fee1e6fd5aa4bdf15a882c6e6
parent 1b53e6ed4ac661143bbb2e54631db3fbed03030b
Author: Ryan Jeffrey <ryan@ryanmj.xyz>
Date:   Tue, 29 Sep 2020 13:22:32 -0700

New .config system

Diffstat:
D.config/bspwm/bspwmrc | 36------------------------------------
M.config/i3/config | 164+++++++++++++++++++++++++++++++++----------------------------------------------
M.config/joestar/ftyperc | 98+++++++++++++++++++++++++++++++++++++++++--------------------------------------
D.config/joestar/jnoterc | 1307-------------------------------------------------------------------------------
D.config/joestar/joerc | 2--
M.config/joestar/joestarrc | 2++
M.config/joestar/syntax/4gl.jsf | 89+++++++++++++++++++++++++++++++++++++++++--------------------------------------
M.config/joestar/syntax/ada.jsf | 32++++++++++++++++++--------------
M.config/joestar/syntax/ant.jsf | 299++++---------------------------------------------------------------------------
M.config/joestar/syntax/asm.jsf | 77+++++++++++++++++++++++++++++++++++++++++------------------------------------
M.config/joestar/syntax/avr.jsf | 32+++++++++++++++++---------------
M.config/joestar/syntax/awk.jsf | 142+++++++++++++++++++++++++++++++++++++++++--------------------------------------
M.config/joestar/syntax/batch.jsf | 70+++++++++++++++++++++++++++++++++++++++++++++++++++-------------------
M.config/joestar/syntax/c.jsf | 6+++++-
D.config/joestar/syntax/c.jsf.back | 517-------------------------------------------------------------------------------
M.config/joestar/syntax/clojure.jsf | 96++++++++++++++++++++++++++++++++++++++++++++-----------------------------------
M.config/joestar/syntax/cobol.jsf | 138++++++++++++++++++++++++++++++++++++++++++++++---------------------------------
M.config/joestar/syntax/coffee.jsf | 297++++++++++++++++++++++++++++++++++++++++++++++---------------------------------
M.config/joestar/syntax/comment_todo.jsf | 12++++++------
M.config/joestar/syntax/conf.jsf | 28+++++++++++++++-------------
M.config/joestar/syntax/context.jsf | 2+-
M.config/joestar/syntax/csh.jsf | 89++++++++++++++++++++++++++++++++++++++++++++++---------------------------------
M.config/joestar/syntax/csharp.jsf | 262++++++++++++++++++++++++++++++++++++++++++++++---------------------------------
M.config/joestar/syntax/css.jsf | 39++++++++++++++++++++-------------------
M.config/joestar/syntax/d.jsf | 163+++++++++++++++++++++++++++++++++++++++++++++----------------------------------
M.config/joestar/syntax/debian.jsf | 16++++++++--------
M.config/joestar/syntax/diff.jsf | 27++++++++++++++++-----------
M.config/joestar/syntax/dockerfile.jsf | 41++++++++++++++++++++++-------------------
M.config/joestar/syntax/elixir.jsf | 199++++++++++++++++++++++++++++++++-----------------------------------------------
M.config/joestar/syntax/erb.jsf | 9++++-----
M.config/joestar/syntax/erlang.jsf | 80++++++++++++++++++++++++++++++++++++++++++-------------------------------------
M.config/joestar/syntax/filename.jsf | 2+-
M.config/joestar/syntax/fortran.jsf | 237++++++++++++++++++++++++++++++++++++++++++-------------------------------------
M.config/joestar/syntax/git-commit.jsf | 6+-----
M.config/joestar/syntax/go.jsf | 203++++++++++++++++++++++++++++++++++++++-----------------------------------------
M.config/joestar/syntax/groovy.jsf | 263++++++++++++++++++++++++++++++++++++++++++++-----------------------------------
M.config/joestar/syntax/haml.jsf | 30++++++++++++++++--------------
M.config/joestar/syntax/haskell.jsf | 194++++++++++++++++++++++++++++++++++++++++++-------------------------------------
M.config/joestar/syntax/html.jsf | 141+++++++++++++++++++++++++++++++++++++++++++------------------------------------
M.config/joestar/syntax/htmlerb.jsf | 5-----
M.config/joestar/syntax/ini.jsf | 20+++++++++++---------
M.config/joestar/syntax/iptables.jsf | 18+++++++++---------
M.config/joestar/syntax/java.jsf | 191+++++++++++++++++++++++++++++++++++++++++++++++--------------------------------
M.config/joestar/syntax/joerc.jsf | 27+++++++++++++++++----------
M.config/joestar/syntax/js.jsf | 82++++++++++++++++++++++++++++++++++++++++----------------------------------------
M.config/joestar/syntax/jsf.jsf | 203+++++++++----------------------------------------------------------------------
M.config/joestar/syntax/json.jsf | 88+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------
M.config/joestar/syntax/lisp.jsf | 12++++++------
M.config/joestar/syntax/lua.jsf | 191++++++++++++++++++++++++++++++++++++++++++++++---------------------------------
M.config/joestar/syntax/m4.jsf | 25+++++++++++++------------
M.config/joestar/syntax/mail.jsf | 25+++++++++++++------------
M.config/joestar/syntax/matlab.jsf | 45++++++++++++++++++++++++++++++++++-----------
M.config/joestar/syntax/md.jsf | 24++++++++++++------------
M.config/joestar/syntax/ocaml.jsf | 286++++++++++++++++++++++++++++++-------------------------------------------------
M.config/joestar/syntax/pascal.jsf | 80++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------
M.config/joestar/syntax/perl.jsf | 222++++++++++++++++++++++++++++++++++++++++++++-----------------------------------
M.config/joestar/syntax/php.jsf | 252+++++++++++++++++++++++++++++++++++++++++++++++--------------------------------
M.config/joestar/syntax/powershell.jsf | 304++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------
M.config/joestar/syntax/prolog.jsf | 55++++++++++++++++++++++++++++++-------------------------
M.config/joestar/syntax/properties.jsf | 33++++++++++++++++++---------------
M.config/joestar/syntax/ps.jsf | 60++++++++++++++++++++++++++++++------------------------------
M.config/joestar/syntax/puppet.jsf | 57++++++++++++++++++++++++++++++++-------------------------
M.config/joestar/syntax/python.jsf | 293++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------
M.config/joestar/syntax/r.jsf | 73++++++++++++++++++++++++++++++++++++++++---------------------------------
M.config/joestar/syntax/rexx.jsf | 19++++++++++---------
M.config/joestar/syntax/ruby.jsf | 250+++++++++++++++++++++++++++++++++++++++++++++++++------------------------------
M.config/joestar/syntax/rust.jsf | 311++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------
M.config/joestar/syntax/scala.jsf | 194++++++++++++++++++++++++++++++++++++++++++++++---------------------------------
M.config/joestar/syntax/sed.jsf | 52++++++++++++++++++++++++++++++----------------------
M.config/joestar/syntax/sh.jsf | 230+++++++++++++++++++++++++++++++++++++++++++------------------------------------
M.config/joestar/syntax/sieve.jsf | 59+++++++++++++++++++++++++++++++++++++----------------------
M.config/joestar/syntax/skill.jsf | 75+++++++++++++++++++++++++++++++++++++++++++++------------------------------
M.config/joestar/syntax/sml.jsf | 166+++++++++++++++++++++++++++++++++++++++++++++----------------------------------
D.config/joestar/syntax/spec.jsf | 149-------------------------------------------------------------------------------
M.config/joestar/syntax/sql.jsf | 443++++++++++++++++++++++++++++++++++++++++---------------------------------------
M.config/joestar/syntax/swift.jsf | 240++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------
M.config/joestar/syntax/tcl.jsf | 218++++++++++++++++++++++++++++++++++++++++++-------------------------------------
M.config/joestar/syntax/tex.jsf | 14+++++++-------
M.config/joestar/syntax/troff.jsf | 9+++++----
M.config/joestar/syntax/verilog.jsf | 64+++++++++++++++++++++++++++++++++++++---------------------------
M.config/joestar/syntax/vhdl.jsf | 35+++++++++++++++++++++--------------
M.config/joestar/syntax/xml.jsf | 164+++++++++++++++++++++++++++++++++++++++++++++----------------------------------
M.config/joestar/syntax/yaml.jsf | 57++++++++++++++++++++++++++++++++-------------------------
M.config/polybar/config | 35+++++++++++++++++++----------------
M.gitignore | 4+++-
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 -"" .ku -""  [ B -"" .kd -""  [ C -"" .kr -""  [ 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/