updated testsuite + added nano + joe

This commit is contained in:
Leon van Kammen 2025-06-20 12:34:13 +02:00
parent ceacb4fa41
commit 12f05205fa
181 changed files with 58641 additions and 7 deletions

14
joe/.env Executable file
View file

@ -0,0 +1,14 @@
#!/bin/sh
dir=$(pwd)
# overlay our directories
test -f /.overlayfs || {
find . -type d -mindepth 1 | while read dir; do
cp -d -r ./$dir/* /$dir/.
done
echo 1 > /.overlayfs
echo "[i] imported overlay fs"
echo "[i] editor 'joe' installed" | logger
}

11
joe/build.sh Executable file
View file

@ -0,0 +1,11 @@
#!/bin/sh
set -e
name=joe
../build_nixpkg.sh $name
out=$(pwd)
set -x
rm -rf *.zip bin usr etc || true
cp -r result/{bin,etc} .
mkdir usr
cp -r result/share usr/.
zip -r package.$name.zip bin usr etc root .env

923
joe/etc/joe/ftyperc Normal file
View file

@ -0,0 +1,923 @@
File Type table. This is :included by the joerc file.
Scripts can look like this '#!/usr/bin/python' or this '#! /usr/bin/env python3'
A text file
[text]
No '.' in file name? Assume it's a text file and we want wordwrap on.
*
Text file.
*.txt
Not a text file
[not_text]
File name with '.'? It's probably not a text file.
*.*
-wordwrap
Diff
[diff]
*
+\? [A-Za-z]
+Index: [A-Za-z]
+Only in
+Nur in
+---
+\*\*\*
+[1-9][0-9]*[cda]
*.diff
*.patch
-syntax diff
Troff
[troff]
*.1
*.1.in
-wordwrap
-syntax troff
TeX
[tex]
*.tex
*.sty
-syntax tex
-tex_comment
-no_double_quoted
-wordwrap
News/mail files.
[email]
*.article*
*.followup
*.letter
NN newsreader
*tmp/nn.*
mail
*tmp/Re*
elm
*tmp/snd.*
dmail
*tmp/dmt*
pine
*tmp/pico.*
Mutt
*tmp/mutt-*
-wordwrap
-syntax mail
AVR assembly language
[avr]
*.avr
*.inc
-syntax avr
-autoindent
-wordwrap
-tab 8
Generic assembly language
[assembly]
*.asm
*.s
*.S
-highlighter_context
-wordwrap
-syntax asm
Mason (Perl in HTML)
[mason]
*.mas
-autoindent
-title
-syntax mason
-smarthome
-smartbacks
-highlighter_context
SML
[sml]
*.sml
-autoindent
-title
-syntax sml
-smarthome
-smartbacks
-istep 2
-highlighter_context
OCaml
[ocaml]
*.ml
OCaml language interface
*.mli
-autoindent
-title
-syntax ocaml
-smarthome
-smartbacks
-istep 2
-highlighter_context
Ruby
[ruby]
*.rb
*
+#![ ]*[^\n]*ruby[0-9.]*\>
*.gemspec
*Gemfile
*Rakefile
*Guardfile
*.rabl
-autoindent
-title
-pound_comment
-syntax ruby
-text_delimiters do=end
-highlighter_context
Perl
[perl]
*
+#![ ]*[^\n]*perl[0-9.]*\>
*.pl
*.pm
*.t
-autoindent
-title
-syntax perl
-smarthome
-smartbacks
-pound_comment
-single_quoted
-highlighter_context
SQL
[sql]
*.sql
-autoindent
-title
-syntax sql
-smarthome
-smartbacks
-purify
-single_quoted
-c_comment
-vhdl_comment
-cpp_comment
-text_delimiters BEGIN|Begin|begin=END|End|end
-cpara >#!;*/%
-highlighter_context
AWK
[awk]
*.awk
-autoindent
-title
-syntax awk
-smarthome
-smartbacks
-purify
-pound_comment
-highlighter_context
YACC
[yacc]
*.y
-autoindent
-title
-syntax c
-highlighter_context
-smarthome
-smartbacks
-purify
-single_quoted
-c_comment
-cpp_comment
-text_delimiters #if|#ifdef|#ifndef=#elif=#else=#endif
-cpara >#!;*/%
Lex
[lex]
*.l
*.lex
-autoindent
-title
-syntax c
-highlighter_context
-smarthome
-smartbacks
-purify
-single_quoted
-c_comment
-cpp_comment
-text_delimiters #if|#ifdef|#ifndef=#elif=#else=#endif
-cpara >#!;*/%
Ada
[ada]
*.adb
*.ads
-syntax ada
-autoindent
-title
-istep 2
-smarthome
-smartbacks
-purify
-vhdl_comment
-text_delimiters declare|Declare|DECLARE|exception|Exception|EXCEPTION|if|If|IF|loop|Loop|LOOP|case|Case|CASE|package|Package|PACKAGE|procedure|Procedure|PROCEDURE|record|Record|RECORD|function|Function|FUNCTION=end|End|END
-highlighter_context
COBOL
[cobol]
*.cbl
*.cob
-syntax cobol
-highlighter_context
REXX
[rexx]
*.rex
*.REX
*
+#![ ]*[^\n]*rexx[0-9.]*\>
-syntax rexx
-autoindent
-title
-highlighter_context
SED script
[sed]
*.sed
-syntax sed
-highlighter_context
Postscript
[postscript]
*.ps
*.eps
-syntax ps
-highlighter_context
C language
[c]
*.c
*.cpp
*.cc
*.c++
C language header file
*.h
*.h.in
*.hpp
*.h++
*.hh
*.mm
-autoindent
-title
-syntax c
-highlighter_context
-smarthome
-smartbacks
-purify
-single_quoted
-c_comment
-cpp_comment
-text_delimiters #if|#ifdef|#ifndef=#elif=#else=#endif
-cpara >#!;*/%
Verilog
[verilog]
*.v
Verilog header file
*.vh
-autoindent
-syntax verilog
-istep 2
-smarthome
-smartbacks
-purify
-c_comment
-cpp_comment
-text_delimiters `ifdef|`ifndef=`else=`endif:begin=end:case|casex|casez=endcase:function=endfunction:module=endmodule:task=endtask:attribute=endattribute:primitive=endprimitive:table=endtable
-cpara >#!;*/%
-highlighter_context
VHDL
[vhdl]
*.vhd
-autoindent
-syntax vhdl
-istep 2
-smarthome
-smartbacks
-purify
-vhdl_comment
-text_delimiters entity|ENTITY|if|IF|component|COMPONENT|loop|LOOP|configuration|CONFIGURATION|units|UNITS|record|RECORD|case|CASE|function|FUNCTION|package|PACKAGE|architecture|ARCHITECTURE|block|BLOCK|process|PROCESS|generate|GENERATE=end|END
-cpara >#!;*-/%
-highlighter_context
XML
[xml]
*.xml
*.xsd
*
+<.xml
*.jnlp
RESX/.NET resource files
*.resx
Ant's build.xml
*build.xml
-autoindent
-syntax xml
-highlighter_context
Apple plists
[plist]
*.plist
-autoindent
-syntax xml
HTML
[html]
*.htm
*.html
-wordwrap
-autoindent
-smarthome
-smartbacks
-syntax html
CSS
[css]
*.css
-wordwrap
-autoindent
-smarthome
-smartbacks
-syntax css
JAVA
[java]
*.java
-autoindent
-title
-syntax java
-smarthome
-smartbacks
-c_comment
-cpp_comment
-purify
-cpara >#!;*/%
-highlighter_context
Javascript
[javascript]
*.js
*
+#![ ]*[^\n]*nodejs[0-9.]*\>
-autoindent
-title
-syntax js
-smarthome
-smartbacks
-purify
-c_comment
-cpp_comment
-cpara >#!;*/%
-highlighter_context
JSON
[json]
*.json
-autoindent
-syntax json
-smarthome
-smartbacks
-highlighter_context
Typescript
[typescript]
*.ts
-autoindent
-title
-syntax typescript
-smarthome
-smartbacks
-purify
-c_comment
-cpp_comment
-cpara >#!;*/%
-highlighter_context
Hypertext preprocessor file
[php]
*.php
-autoindent
-title
-syntax php
-smarthome
-smartbacks
-purify
-highlighter_context
Python
[python]
*
+#![ ]*[^\n]*python[0-9.]*\>
*.py
-autoindent
-title
-syntax python
-highlighter_context
-smarthome
-smartbacks
-purify
-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
*.lsp
*.el
-autoindent
-title
-syntax lisp
-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
*.pas
-autoindent
-title
-syntax pascal
-smarthome
-smartbacks
-purify
-text_delimiters begin|BEGIN|record|RECORD|case|CASE=end|END:repeat|REPEAT=until|UNTIL
-highlighter_context
Fortran
[fortran]
*.f
*.f90
*.for
*.FOR
-autoindent
-title
-syntax fortran
-highlighter_context
Cadence SKILL
[skill]
*.il
-semi_comment
-syntax skill
-autoindent
-title
-istep 3
-indentc 32
-smartbacks
-smarthome
-indentfirst
-highlighter_context
Lua
[lua]
*.lua
*
+#![ ]*[^\n]*lua[0-9.]*\>
-autoindent
-title
-syntax lua
-highlighter_context
TCL
[tcl]
*.tcl
-autoindent
-title
-syntax tcl
-highlighter_context
Go language
[go]
*.go
-autoindent
-title
-syntax go
-smarthome
-smartbacks
-purify
-single_quoted
-c_comment
-text_delimiters #if|#ifdef|#ifndef=#elif=#else=#endif
-cpara >#!;*/%
-highlighter_context
CSharp
[c#]
*.cs
-autoindent
-title
-syntax csharp
-smarthome
-smartbacks
-purify
-cpara >#!;*/%
-text_delimiters #region=#endregion:#if=#elif=#else=#endif
-highlighter_context
Joe Syntax File
[jsf]
*.jsf
*.jsf.in
-autoindent
-title
-syntax jsf
-smarthome
-highlighter_context
Joe Colorscheme file
[jcf]
*.jcf
-syntax jcf
M4 / Autoconfig file
[m4]
*.ac
*.m4
-autoindent
-title
-syntax m4
-highlighter_context
Matlab file (clashes with objective-C)
[matlab]
*.m
-wordwrap
-syntax matlab
-highlighter_context
UNIX configuration file
[conf]
Automake file
*.am
System RC file
*rc
Makefile
*Makefile
*makefile.in
*Makefile.in
*makefile
*AKEFILE
-autoindent
-syntax conf
-pound_comment
-highlighter_context
Windows batch files
[bat]
*.bat
*.cmd
-autoindent
-syntax batch
-highlighter_context
JOERC file
[joerc]
*ftyperc
*joerc
*jmacsrc
*jstarrc
*rjoerc
*jpicorc
*joerc.in
*jmacsrc.in
*jstarrc.in
*rjoerc.in
*jpicorc.in
-syntax joerc
-highlighter_context
Markdown
[markdown]
*.md
-syntax md
-wordwrap
YAML
[yaml]
*.yml
*.yaml
-autoindent
-smarthome
-smartbacks
-pound_comment
-syntax yaml
-highlighter_context
Debian apt
[debian]
*apt/sources.list
*sources.list.*
-pound_comment
-syntax debian
Java's .properties
[java_properties]
*.properties
this is part of the specification:
-encoding iso-8859-1
-pound_comment
-syntax properties
-highlighter_context
INI Files
[ini]
*.ini
*.inf
*hgrc
*.gitconfig
*.git/config
-syntax ini
-pound_comment
-semi_comment
-highlighter_context
plain ERB
[erb]
*.erb
-syntax erb
-highlighter_context
ERB within HTML
[erb_html]
*.html.erb
-syntax htmlerb
-highlighter_context
Haml
[haml]
*.haml
-syntax haml
-istep 2
-indentc 32
-autoindent
-smarthome
-smartbacks
-highlighter_context
Erlang
[erlang]
*.erl
*.eterm
*.app.src
*rebar.config
*.hrl
*.erlang
-syntax erlang
-autoindent
-title
-highlighter_context
Sieve (ManageSieve)
[sieve]
*.sieve
-syntax sieve
-autoindent
-title
-highlighter_context
Puppet
[puppet]
*.pp
-syntax puppet
-pound_comment
-autoindent
-title
-highlighter_context
ip(6)tables
[iptables]
*
+# Generated by iptables-save
+# Generated by ip6tables-save
-syntax iptables
-pound_comment
PowerShell
[powershell]
*.ps1
*.psm1
-syntax powershell
-autoindent
-smarthome
-smartbacks
-highlighter_context
Git COMMIT_EDITMSG
[git-commit]
*COMMIT_EDITMSG
-syntax git-commit
Elixir
[elixir]
*.ex
*.exs
-autoindent
-smarthome
-smartbacks
-title
-syntax elixir
-pound_comment
-text_delimiters do=else=end
-indentc 32
-istep 2
-highlighter_context
R
[r]
*.r
-autoindent
-title
-syntax r
-pound_comment
-smarthome
-smartbacks
-purify
-single_quoted
-highlighter_context
Groovy
[groovy]
*.gvy
*.groovy
*.gy
*.gsh
-autoindent
-title
-syntax groovy
-c_comment
-cpp_comment
-smarthome
-smartbacks
-purify
-single_quoted
-highlighter_context
Clojure
[clojure]
*.clj
*.cljs
*.cljc
*.edn
-autoindent
-title
-syntax clojure
-semi_comment
-smarthome
-smartbacks
-purify
-highlighter_context
Rust
[rust]
*.rs
-autoindent
-title
-syntax rust
-c_comment
-cpp_comment
-smarthome
-smartbacks
-purify
-single_quoted
-highlighter_context
Coffeescript
[coffee]
*.coffee
-autoindent
-title
-syntax coffee
-pound_comment
-smarthome
-smartbacks
-purify
-single_quoted
-highlighter_context
Scala
[scala]
*.scala
-autoindent
-title
-syntax scala
-c_comment
-cpp_comment
-smarthome
-smartbacks
-purify
-single_quoted
-highlighter_context
Swift
[swift]
*.swift
-autoindent
-title
-syntax swift
-c_comment
-cpp_comment
-smarthome
-smartbacks
-purify
-single_quoted
-highlighter_context
D
[d]
*.d
-autoindent
-title
-syntax d
-c_comment
-cpp_comment
-smarthome
-smartbacks
-purify
-single_quoted
-highlighter_context
Docker
[dockerfile]
*Dockerfile
-autoindent
-title
-syntax dockerfile
-pound_comment
-highlighter_context
RPM Spec
[spec]
*.spec
-autoindent
-syntax spec
Haskell
[haskell]
*.hs
-autoindent
-smarthome
-smartbacks
-syntax haskell
-vhdl_comment
-highlighter_context

1265
joe/etc/joe/jicerc.ru Normal file

File diff suppressed because it is too large Load diff

1284
joe/etc/joe/jmacsrc Normal file

File diff suppressed because it is too large Load diff

1308
joe/etc/joe/joerc Normal file

File diff suppressed because it is too large Load diff

1254
joe/etc/joe/joerc.zh_TW Normal file

File diff suppressed because it is too large Load diff

1074
joe/etc/joe/jpicorc Normal file

File diff suppressed because it is too large Load diff

1160
joe/etc/joe/jstarrc Normal file

File diff suppressed because it is too large Load diff

1107
joe/etc/joe/rjoerc Normal file

File diff suppressed because it is too large Load diff

42
joe/etc/joe/shell.csh Normal file
View file

@ -0,0 +1,42 @@
# Aliases for csh/tcsh in JOE shell window
alias joehelp 'echo "clear - erase buffer"; \\
echo "joe - edit file"; \\
echo "math 1+2 - calculator"; \\
echo "pop - dismiss shell"; \\
echo "parse - grep parse the buffer"; \\
echo "parserr - compile parse the buffer"; \\
echo "release - drop parsed messages"; \\
echo "markb - mark beginning of region"; \\
echo "markk - mark end of region"; \\
echo "mark cmd - mark output of command"'
alias clear "echo -n \{shell_clear}"
alias parse "echo -n \{shell_gparse}"
alias parserr "echo -n \{shell_parserr}"
alias release "echo -n \{shell_release}"
alias markb "echo -n \{shell_markb}"
alias markk "echo -n \{shell_markk}"
alias mark "echo -n \{shell_markb}; "\!\*"; echo -n \{shell_markk}"
alias math "echo -n \{shell_math,"\\\"\!\*\\\"",shell_rtn\\!,shell_typemath}; cat >/dev/null"
alias edit "echo -n \{shell_edit,"\\\"\!\*\\\"",shell_rtn}"
alias joe "echo -n \{shell_edit,"\\\"\!\*\\\"",shell_rtn}"
alias pop "echo -n \{shell_pop}"
alias cd "cd "\!\*"; echo -n \{shell_cd,shell_dellin\\!,"\\\""; pwd | tr -d '\n'; echo -n /"\\\"",shell_rtn}"
clear
echo
echo Type joehelp for editor shell commands
echo

147
joe/etc/joe/shell.sh Normal file
View file

@ -0,0 +1,147 @@
# Aliases for sh/dash/ash/bash/ksh/zsh in JOE shell window
joehelp () {
echo "clear - erase buffer"
echo "joe - edit file"
echo "math 1+2 - calculator"
echo "pop - dismiss shell"
echo "parse [cmd] - grep parse command"
echo "parserr [cmd] - compile parse command"
echo "release - drop parsed messages"
echo "markb - mark beginning of region"
echo "markk - mark end of region"
echo "mark cmd - mark output of command"
}
# Clear edit buffer
joe_clear () {
echo -n '{'shell_clear'}'
}
# Release errors
joe_release () {
echo -n '{'shell_release'}'
}
# Set marked region beginning
joe_markb () {
echo -n '{'shell_markb'}'
}
# Set marked region end
joe_markk () {
echo -n '{'shell_markk'}'
}
# Mark command result
joe_mark () {
joe_markb
$*
joe_markk
}
# Parse command result (or whole buffer if no arg)
joe_parse () {
if [ "$1" = "" ]; then
echo -n '{'shell_gparse'}'
else
joe_markb
$*
joe_markk
echo '{'shell_gparse'}'
fi
}
# Parse command result (or whole buffer if no arg)
joe_parserr () {
if [ "$1" = "" ]; then
echo '{'shell_parse'}'
else
joe_markb
$*
joe_markk
echo '{'shell_parse'}'
fi
}
# Use JOE's calculator
joe_math () {
echo -n '{'shell_math,'"'$1'"',shell_rtn!,shell_typemath'}'
cat >/dev/null
}
# Edit a file
joe_edit () {
echo -n '{'shell_edit,'"'$1'"',shell_rtn'}'
}
# Pop shell window
joe_pop () {
echo -n '{'shell_pop'}'
}
unalias cd 2>/dev/null
# Change directory
joe_cd () {
# cd $1 - does not work for directories with spaces in their names
# cd "$1" - breaks cd with no args (it's supposed to go to home directory)
# So we have do this...
if [ "$1" = "" ]; then
cd
else
cd "$1"
fi
# Tell JOE our new directory
echo -n '{'shell_cd,shell_dellin!,'"'`pwd`/'"',shell_rtn'}'
}
alias clear=joe_clear
alias math=joe_math
alias edit=joe_edit
alias joe=joe_edit
alias pop=joe_pop
alias cd=joe_cd
alias parse=joe_parse
alias parserr=joe_parserr
alias release=joe_release
alias markb=joe_markb
alias markk=joe_markk
alias mark=joe_mark
# Code to automatically mark and parse output from each command
# - This is bash specific code
#joe_markb_pre () {
# joe_markb
# MARK_FLAG=1
#}
#joe_markk_post () {
# if [ "$MARK_FLAG" = "1" ]; then
# joe_markk
# MARK_FLAG=0
# joe_parse
# fi
#}
#preexec () { :; }
#preexec_invoke_exec () {
# [ -n "$COMP_LINE" ] && return # do nothing if completing
# [ "$BASH_COMMAND" = "$PROMPT_COMMAND" ] && return # don't cause a preexec for $PROMPT_COMMAND
# local this_command=`HISTTIMEFORMAT= history 1 | sed -e "s/^[ ]*[0-9]*[ ]*//"`;
# joe_markb_pre
# preexec "$this_command"
#}
#trap 'preexec_invoke_exec' DEBUG
#PROMPT_COMMAND=joe_markk_post
joe_clear
echo
echo Type joehelp for editor shell commands
echo

BIN
joe/package.joe.zip Normal file

Binary file not shown.

0
joe/root/.joerc Normal file
View file

View file

@ -0,0 +1,12 @@
[Desktop Entry]
Version=1.0
Name=Joe's Own Editor - EMACS Emulation
GenericName=Text Editor
Comment=View and edit files
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
Exec=/usr/bin/jmacs %F
TryExec=jmacs
Icon=accessories-text-editor
Type=Application
Terminal=true
Categories=Utility;Development;TextEditor;

View file

@ -0,0 +1,12 @@
[Desktop Entry]
Version=1.0
Name=Joe's Own Editor
GenericName=Text Editor
Comment=View and edit files
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
Exec=/usr/bin/joe %F
TryExec=joe
Icon=accessories-text-editor
Type=Application
Terminal=true
Categories=Utility;Development;TextEditor;

View file

@ -0,0 +1,12 @@
[Desktop Entry]
Version=1.0
Name=Joe's Own Editor - NANO/PICO Emulation
GenericName=Text Editor
Comment=View and edit files
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
Exec=/usr/bin/jpico %F
TryExec=jpico
Icon=accessories-text-editor
Type=Application
Terminal=true
Categories=Utility;Development;TextEditor;

View file

@ -0,0 +1,12 @@
[Desktop Entry]
Version=1.0
Name=Joe's Own Editor - WordStar Emulation
GenericName=Text Editor
Comment=View and edit files
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
Exec=/usr/bin/jstar %F
TryExec=jstar
Icon=accessories-text-editor
Type=Application
Terminal=true
Categories=Utility;Development;TextEditor;

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,243 @@
# Joe's Own Editor
[User manual](https://sourceforge.net/p/joe-editor/mercurial/ci/default/tree/docs/man.md)
[Release Notes](https://sourceforge.net/p/joe-editor/mercurial/ci/default/tree/NEWS.md)
[List of Commands](https://sourceforge.net/p/joe-editor/mercurial/ci/default/tree/docs/man.md#list)
[List of Options](https://sourceforge.net/p/joe-editor/mercurial/ci/default/tree/docs/man.md#options)
[JOE for Windows tips](https://sourceforge.net/p/joe-editor/mercurial/ci/windows/tree/docs/windows.md)
[Hacking](https://sourceforge.net/p/joe-editor/mercurial/ci/default/tree/docs/hacking.md)
[Project page](http://www.sourceforge.net/projects/joe-editor)
[Download source](https://sourceforge.net/projects/joe-editor/files/)
[Build instructions](https://sourceforge.net/p/joe-editor/mercurial/ci/default/tree/INSTALL.md)
[History](https://sourceforge.net/p/joe-editor/mercurial/ci/default/tree/docs/history.md)
<p></p>
<p>JOE is a full featured terminal-based screen editor which is distributed
under the GNU General Public License (GPL). JOE has been around since 1988
and comes standard with many Linux distributions.</p>
<p>JOE is being maintained by its original author Joseph Allen, plus all of
the people who send bug reports, feature suggestions and patches to the
project web site. JOE is hosted by SourceForge.net and its source code is
controlled under Mercurial.</p>
<p>JOE is a blending of MicroPro's venerable microcomputer word processor
WordStar and Richard Stallman's famous LISP based text editor GNU-EMACS (but
it does not use code from either program): most of the basic editing keys
are the same as in WordStar as is the overall feel of the editor. JOE also
has some of the key bindings and many of the powerful features of EMACS.</p>
<p>JOE is written in C and its only dependency is libc. This makes JOE very
easy to build (just "configure" and "make install"), making it feasible to
include on small systems and recovery disks. The compiled binary is about
300K in x86. Note that JOE can use either the termcap or terminfo terminal
capabilities databases (or a built-in termcap entry for ANSI terminals). The
choice is controlled by a "configure" option. If terminfo is used, a
library is required to access the database (on some systems this library is
ncurses, but JOE does not use curses to control the terminal- it has its own
code for this).</p>
<p>Much of the look and feel of JOE is determined by its simple
configuration file "joerc". Several variants of the editor are installed by
default in addition to "joe": "jmacs" (emulate GNU-EMACS), "jstar" emulate
WordStar, "jpico" emulate the Pine mailer editor PICO and "rjoe"- a
restricted version of JOE which allows the used to only edit the file given
on the command line. JOE is linked to several names. The name which is
used to invoke the editor with "rc" tacked on the end gives the name of
configuration file to use. It is thus easy for you to make your own variant
if you want. Also you can customize the editor by copying the system
"joerc" file to your home directory.</p>
<p>Here is a basic screen shot of JOE running in a Cygwin console:</p>
![screen capture](http://joe-editor.sourceforge.net/capture.gif)
<p>Here is a screen shot showing several windows- the first has some example
double-wide characters, the second is the same buffer as the first, but in
hex-dump view mode, the third is a shell window and the fourth shows a
selected rectangular block of numbers and their sum:</p>
![elaborate screen capture](http://joe-editor.sourceforge.net/elaborate.gif)
### JOE has the following features:
* Multi-file search and replace- file list is either given on command line or by a UNIX command (grep/find) run from within JOE.
* Mouse support, including wheel (works best when using xterm). The mouse can resize windows, scroll windows, select and paste text, and select menu entries.
* Context display on status line: allows you to see name of function cursor is in.
* UTF-8 support, optional auto-detect of UTF-8 files.
* Syntax highlighting for more than 40 languages.
* Hexadecimal edit mode. Use JOE as a disk editor: joe -overwrite -hex /dev/hda1,0,512 (edit first sector of /dev/hda1).
* Non-destructive editing of binary files even when handling MS-DOS or UNIX line endings.
* Swap file allows editing files larger than memory.
* Context sensitive on-line help.
* Bash-like TAB completion and history for all prompts, or jump into the
completion menu and use it to traverse the file system.
* Complete word in edit buffer by hitting ESC Enter (uses other words in
buffer for dictionary).
* EMACS-compatible file locks and file modification checking.
* Shell windows.
* Multiple-windows onto same or different files.
* Compile and step through errors or Grep and step through finds.
* Goto matching character delimiter "() [] {} <>" which skips comments and
quoted matter.
* Goto matching word delimiter, including XML tags and C preprocessor
directives.
* Ctrl-arrow key block selection.
* Search and replace system, including regular expression and optional
incremental search. Regular expression key for matching balanced C
expressions.
* Tags file search (tab completion at tags search prompt uses tags file as
database).
* Spell check commands which invoke aspell or ispell. Language for aspell
can be passed through editor.
* Paragraph format which preserves news/mail quoting indentation
characters.
* Unlimited Undo and Redo.
* Yank buffer allows stepping through and insertion of previously deleted
text.
* State file restores history buffers, yank buffer and last file cursor
positions.
* Cursor position history allows you to step through previously visited areas
of a file.
* Multiple interactive keyboard macros. Macros can be assigned to key
sequences in joerc file.
* Block move/copy/delete/filter.
* Rectangle (columnar) block mode- search and replace can be narrowed to
the rectangular block. Rectangular blocks can be filtered through UNIX
commands.
* Overtype/Insert modes.
* Indent/Unindent (shift block left or right).
* Auto-indent mode.
* Picture mode for ASCII graphics.
* Line number mode displays line number of each line.
* Powerful scientific calculator with block statistics functions (sum/standard-deviation/count highlighted block of numbers).
* Termcap/Terminfo support allows JOE to use any terminal or terminal emulator.
* Can accept data from a pipe, for example: ls | joe
<p>JOE does not have these features (yet):</p>
<ul>
<li>Vertical windows</li>
<li>Folding</li>
<li>Right to left editing for Hebrew and Arabic</li>
<li>Direct editing of 16-bit character sets such as UCS-16 and BIG5</li>
<li>All encompassing macro language like elisp in GNU-EMACS</li>
<li>Background spell checking, like Microsoft WORD</li>
<li>Highlight all matching words</li>
<li>Automatic unzip/untar</li>
<li>Built-in FTP</li>
<li>X-Window version (use inside a terminal emulator)</li>
<li>Interface to debugger</li>
</ul>
<p>Here are some other editors to consider:</p>
<a href="http://www.gnu.org/software/emacs">http://www.gnu.org/software/emacs</a>
Richard Stallman's powerful LISP-based editor.
<a href="http://www.jedsoft.org/jed">http://www.jedsoft.org/jed</a> John E.
Davis' version of EMACS using the S-Lang language.
<a href="http://www.jasspa.com">http://www.jasspa.com</a> Micro Emacs
<a href="http://www.vile.cx">http://www.vile.cx</a> Paul Fox's vi clone
(built on top of Micro Emacs). Now maintained by Tom Dickey and others.
<a href="http://www.nano-editor.org">http://www.nano-editor.org</a> An open
source PICO clone.
<a
href="http://www.washington.edu/pine/faq/whatis.html">http://www.washington.edu.pine/faq/whatis.html</a>
PICO: A simple editor built on Micro Emacs.
<a href="http://www.vim.org">http://www.vim.org</a> Bram Moolenaar's vi
clone</a>
<a href="http://elvis.the-little-red-haired-girl.org/whatiselvis/index.html">
http://elvis.the-little-red-haired-girl.org</a> Elvis: A
small vi clone
<a href="http://www.jedit.org">http://www.jedit.org</a> Powerful editor
written in Java
<a href="http://www.nedit.org">http://www.nedit.org</a> X-Windowing System
editor
<a href="http://www.ibiblio.org/mc">http://www.ibiblio.org/mc</a> Midnight
Commander file manager with built-in text editor with highlighting. Can
browse ZIP and TAR files.
<br>
<a href="http://www.cs.yorku.ca/~oz/wily">http://www.cs.yorku.ca/~oz/wily</a> A
UNIX/X clone of Rob Pike's Plan9 editor ACME. Originally written by Gary
Capell, but now maintained by Ozan Yigit. This is an interesting minimalist
IDE.
<a
href="http://www.eclipse.org/downloads">http://www.eclipse.org/downloads</a>
Huge IDE written in Java. Performs same function as Wily, but is literally
1300 times larger.
<a href="ftp://netlib.bell-labs.com/netlib/research/sam.shar.gz">ftp://netlib.bell-labs.com/netlib/research/sam.shar.gz</a>
UNIX/X port of Rob Pike's Plan9 editor SAM. This interesting editor
supports multi-file regular expression search &amp; replace with unlimited
undo.
<a href="http://sed.sourceforge.net">http://sed.sourceforge.net</a>
UNIX Stream EDitor. If you're on UNIX, you already have this editor, but follow
this link to see the amazing things that can be done with it.

View file

@ -0,0 +1,176 @@
Joe's Own Editor 3.6
A Free ASCII-Text Screen Editor for UNIX
by Joseph Allen (<= 2.8)
Marek 'Marx' Grac (=> 2.9)
by Joseph Allen again (=>3.0)
Get it from:
http://sourceforge.net/projects/joe-editor
If you have questions, problems or suggestions,
Use sourceforge: mailing list, bug tracker, discussion groups.
JOE is the professional freeware ASCII text screen editor for UNIX.
It makes full use of the power and versatility of UNIX, but lacks the steep
learning curve and basic nonsense you have to deal with in every other UNIX
editor. JOE has the feel of most IBM PC text editors: The key-sequences are
reminiscent of WordStar and Turbo-C. JOE is much more powerful than those
editors, however. JOE has all of the features a UNIX user should expect:
full use of termcap/terminfo, excellent screen update optimizations (JOE is
fully usable at 2400 baud), simple installation, and all of the
UNIX-integration features of VI.
JOE's initialization file determines much of JOE's personality and
the name of the initialization file is simply the name of the editor
executable followed by "rc". JOE comes with four "rc" files in addition to
the basic "joerc", which allow it to emulate these editors:
JPICO - An enhanced version of the Pine mailer system's PICO
editor.
JSTAR - A complete imitation of WordStar including many "JOE"
extensions.
RJOE - A restricted version of JOE which allowed you to edit
only the files specified on the command line.
JMACS - A GNU-EMACS imitation which is about one order of
magnitude smaller than real GNU-EMACS.
Features:
JOE has a well thought-out user-interface with great attention to
detail. The Page Up and Page Down functions do not move the cursor relative
to the edges of the screen. Left and Right arrow keys work at the beginning
and ends of lines. The cursor can move past the ends of lines without
jumping, but also without inserting or deleting extra spaces at the ends of
lines. Control characters and characters above 127 can be displayed and
entered- even ^Q and ^S. The cursor's row and column number can be
displayed in the status line.
The key layout is made to reduce terminal incompatibility nonsense.
^Q and ^S are not used and both ^H and DEL are mapped to backspace. Case
does not matter in key sequences- ^K E, ^K e, and ^K ^E are each mapped to
the same function. The arrow keys and PageUp, PageDown, Home, End, Insert
and Delete keypad keys are read from the termcap entry and are assigned to
the proper functions. A simple initialization file, similar to Semware's
Q-EDIT, allows key-bindings, simple macros and help windows to be defined.
JOE has full termcap/terminfo support and will work on any terminal.
JOE has the best screen update optimization algorithm available. It uses
VT100-style scrolling regions the way they are supposed to be used (I.E.,
without building insert and delete line functions out of them) and has a
powerful line shifting (insert/delete character) algorithm which works even
if text goes past the ends of lines. JOE has deferred screen update to
handle typeahead and uses the baud rate reported by 'stty' to ensure that
deferral is not bypassed by tty buffering.
JOE has multiple windows and lacks the confusing notion of a named
buffers. You just have files and windows. When there are more windows than
can fit on the screen, the Goto-Next-Window function scrolls through them.
The same file can have multiple windows opened on it.
JOE has VI-style unix integration. You can filter a highlighted
block through a UNIX command. Also, each place in joe which accepts a file
name (including the command line) will also accept:
!command to pipe into or out of a command
>>filename to append to a file
filename,start,size to edit a portion of a file/device
- to use stdin or stdout
File names on the command line may be preceded by +nnn to start
editing at a specified line.
JOE has shell windows. You can run a shell in a window and any
output from commands run in the shell gets stored in a buffer.
JOE has an orthogonal event-driven design. Each prompt is actually
a normal edit buffer containing a history of all of the responses entered
for that prompt. You can use all of the normal edit commands to create file
names and search strings. You can use the up arrow key (or search backwards
and any other appropriate edit command) to go back through the history of
previous responses. Prompts are reentrant- meaning that edit commands which
require prompts can still be used inside of prompts.
JOE has TAB-completion and file selection menus. If you hit tab in
a file name prompt, the name is either completed or a menu of possible
matches appears.
JOE stores edit files in a doubly linked list of gap buffers which
can spill into a temporary file. You can edit files of any size up to the
amount of free disk space and there are no line-length restrictions. Since
the buffering system is block-based, JOE will incur only a minimum of
swapping on heavily loaded systems.
When you ask for help, one of six small help reference cards appears
on the screen and remains while you continue to use the editor. Here is the
first help card:
CURSOR GO TO BLOCK DELETE MISC EXIT
^B left ^F right ^U prev. screen ^KB begin ^D char. ^KJ reformat ^KX save
^P up ^N down ^V next screen ^KK end ^Y line ^T options ^C abort
^Z previous word ^A beg. of line ^KM move ^W >word ^@ insert ^KZ shell
^X next word ^E end of line ^KC copy ^O word< ^R retype FILE
SEARCH ^KU top of file ^KW file ^J >line SPELL ^KE new
^KF find text ^KV end of file ^KY delete ^_ undo ^[N word ^KR insert
^L find next ^KL to line No. ^K/ filter ^^ redo ^[L file ^KD save
JOE has a powerful set of editing commands suitable for editing both
text files and programs:
- UTF-8 support
- Syntax highlighting
- search and replace system, including powerful regular
expressions (including matching of balanced C expressions).
- tags file search
- paragraph format
- undo and redo
- position history allows you to get back to previous
editing contexts and allows you to quickly flip between
editing contexts
- multiple keyboard macros
- block move/copy/delete/filter
- rectangle (columnar) mode
- overtype/insert modes
- indent/unindent
- goto matching ( [ {
- auto-indent mode
Plus many options can be set:
- can have EMACS-style cursor re-centering on scrolls
- characters between 128-255 can be shown as-is for
non-English character sets
- Final newline can be forced on end of file
- Can start with a help screen on
- Left/Right margin settings
- Tab width
- Indentation step and fill character
/* jhallen@world.std.com */ /* Joseph H. Allen */
int a[1817];main(z,p,q,r){for(p=80;q+p-80;p-=2*a[p])for(z=9;z--;)q=3&(r=time(0)
+r*57)/7,q=q?q-1?q-2?1-p%79?-1:0:p%79-77?1:0:p<1659?79:0:p>158?-79:0,q?!a[p+q*2
]?a[p+=a[p+=q]=q]=q:0:0;for(;q++-1817;)printf(q%79?"%c":"%c\n"," #"[!a[q-1]]);}

File diff suppressed because it is too large Load diff

3994
joe/usr/share/doc/joe/man.md Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,238 @@
<code_set_name> Klingon-ASCII
<comment_char> %
<escape_char> /
% version: 1.0
% An 8-bit character set with Klingon characters in range 0xD0 - 0xFF and
% KOI8-R (ASCII w/ line drawing) for the rest.
CHARMAP
<U0000> /x00 NULL (NUL)
<U0001> /x01 START OF HEADING (SOH)
<U0002> /x02 START OF TEXT (STX)
<U0003> /x03 END OF TEXT (ETX)
<U0004> /x04 END OF TRANSMISSION (EOT)
<U0005> /x05 ENQUIRY (ENQ)
<U0006> /x06 ACKNOWLEDGE (ACK)
<U0007> /x07 BELL (BEL)
<U0008> /x08 BACKSPACE (BS)
<U0009> /x09 CHARACTER TABULATION (HT)
<U000A> /x0a LINE FEED (LF)
<U000B> /x0b LINE TABULATION (VT)
<U000C> /x0c FORM FEED (FF)
<U000D> /x0d CARRIAGE RETURN (CR)
<U000E> /x0e SHIFT OUT (SO)
<U000F> /x0f SHIFT IN (SI)
<U0010> /x10 DATALINK ESCAPE (DLE)
<U0011> /x11 DEVICE CONTROL ONE (DC1)
<U0012> /x12 DEVICE CONTROL TWO (DC2)
<U0013> /x13 DEVICE CONTROL THREE (DC3)
<U0014> /x14 DEVICE CONTROL FOUR (DC4)
<U0015> /x15 NEGATIVE ACKNOWLEDGE (NAK)
<U0016> /x16 SYNCHRONOUS IDLE (SYN)
<U0017> /x17 END OF TRANSMISSION BLOCK (ETB)
<U0018> /x18 CANCEL (CAN)
<U0019> /x19 END OF MEDIUM (EM)
<U001A> /x1a SUBSTITUTE (SUB)
<U001B> /x1b ESCAPE (ESC)
<U001C> /x1c FILE SEPARATOR (IS4)
<U001D> /x1d GROUP SEPARATOR (IS3)
<U001E> /x1e RECORD SEPARATOR (IS2)
<U001F> /x1f UNIT SEPARATOR (IS1)
<U0020> /x20 SPACE
<U0021> /x21 EXCLAMATION MARK
<U0022> /x22 QUOTATION MARK
<U0023> /x23 NUMBER SIGN
<U0024> /x24 DOLLAR SIGN
<U0025> /x25 PERCENT SIGN
<U0026> /x26 AMPERSAND
<U0027> /x27 APOSTROPHE
<U0028> /x28 LEFT PARENTHESIS
<U0029> /x29 RIGHT PARENTHESIS
<U002A> /x2a ASTERISK
<U002B> /x2b PLUS SIGN
<U002C> /x2c COMMA
<U002D> /x2d HYPHEN-MINUS
<U002E> /x2e FULL STOP
<U002F> /x2f SOLIDUS
<U0030> /x30 DIGIT ZERO
<U0031> /x31 DIGIT ONE
<U0032> /x32 DIGIT TWO
<U0033> /x33 DIGIT THREE
<U0034> /x34 DIGIT FOUR
<U0035> /x35 DIGIT FIVE
<U0036> /x36 DIGIT SIX
<U0037> /x37 DIGIT SEVEN
<U0038> /x38 DIGIT EIGHT
<U0039> /x39 DIGIT NINE
<U003A> /x3a COLON
<U003B> /x3b SEMICOLON
<U003C> /x3c LESS-THAN SIGN
<U003D> /x3d EQUALS SIGN
<U003E> /x3e GREATER-THAN SIGN
<U003F> /x3f QUESTION MARK
<U0040> /x40 COMMERCIAL AT
<U0041> /x41 LATIN CAPITAL LETTER A
<U0042> /x42 LATIN CAPITAL LETTER B
<U0043> /x43 LATIN CAPITAL LETTER C
<U0044> /x44 LATIN CAPITAL LETTER D
<U0045> /x45 LATIN CAPITAL LETTER E
<U0046> /x46 LATIN CAPITAL LETTER F
<U0047> /x47 LATIN CAPITAL LETTER G
<U0048> /x48 LATIN CAPITAL LETTER H
<U0049> /x49 LATIN CAPITAL LETTER I
<U004A> /x4a LATIN CAPITAL LETTER J
<U004B> /x4b LATIN CAPITAL LETTER K
<U004C> /x4c LATIN CAPITAL LETTER L
<U004D> /x4d LATIN CAPITAL LETTER M
<U004E> /x4e LATIN CAPITAL LETTER N
<U004F> /x4f LATIN CAPITAL LETTER O
<U0050> /x50 LATIN CAPITAL LETTER P
<U0051> /x51 LATIN CAPITAL LETTER Q
<U0052> /x52 LATIN CAPITAL LETTER R
<U0053> /x53 LATIN CAPITAL LETTER S
<U0054> /x54 LATIN CAPITAL LETTER T
<U0055> /x55 LATIN CAPITAL LETTER U
<U0056> /x56 LATIN CAPITAL LETTER V
<U0057> /x57 LATIN CAPITAL LETTER W
<U0058> /x58 LATIN CAPITAL LETTER X
<U0059> /x59 LATIN CAPITAL LETTER Y
<U005A> /x5a LATIN CAPITAL LETTER Z
<U005B> /x5b LEFT SQUARE BRACKET
<U005C> /x5c REVERSE SOLIDUS
<U005D> /x5d RIGHT SQUARE BRACKET
<U005E> /x5e CIRCUMFLEX ACCENT
<U005F> /x5f LOW LINE
<U0060> /x60 GRAVE ACCENT
<U0061> /x61 LATIN SMALL LETTER A
<U0062> /x62 LATIN SMALL LETTER B
<U0063> /x63 LATIN SMALL LETTER C
<U0064> /x64 LATIN SMALL LETTER D
<U0065> /x65 LATIN SMALL LETTER E
<U0066> /x66 LATIN SMALL LETTER F
<U0067> /x67 LATIN SMALL LETTER G
<U0068> /x68 LATIN SMALL LETTER H
<U0069> /x69 LATIN SMALL LETTER I
<U006A> /x6a LATIN SMALL LETTER J
<U006B> /x6b LATIN SMALL LETTER K
<U006C> /x6c LATIN SMALL LETTER L
<U006D> /x6d LATIN SMALL LETTER M
<U006E> /x6e LATIN SMALL LETTER N
<U006F> /x6f LATIN SMALL LETTER O
<U0070> /x70 LATIN SMALL LETTER P
<U0071> /x71 LATIN SMALL LETTER Q
<U0072> /x72 LATIN SMALL LETTER R
<U0073> /x73 LATIN SMALL LETTER S
<U0074> /x74 LATIN SMALL LETTER T
<U0075> /x75 LATIN SMALL LETTER U
<U0076> /x76 LATIN SMALL LETTER V
<U0077> /x77 LATIN SMALL LETTER W
<U0078> /x78 LATIN SMALL LETTER X
<U0079> /x79 LATIN SMALL LETTER Y
<U007A> /x7a LATIN SMALL LETTER Z
<U007B> /x7b LEFT CURLY BRACKET
<U007C> /x7c VERTICAL LINE
<U007D> /x7d RIGHT CURLY BRACKET
<U007E> /x7e TILDE
<U007F> /x7f DELETE (DEL)
<U2500> /x80 BOX DRAWINGS LIGHT HORIZONTAL
<U2502> /x81 BOX DRAWINGS LIGHT VERTICAL
<U250C> /x82 BOX DRAWINGS LIGHT DOWN AND RIGHT
<U2510> /x83 BOX DRAWINGS LIGHT DOWN AND LEFT
<U2514> /x84 BOX DRAWINGS LIGHT UP AND RIGHT
<U2518> /x85 BOX DRAWINGS LIGHT UP AND LEFT
<U251C> /x86 BOX DRAWINGS LIGHT VERTICAL AND RIGHT
<U2524> /x87 BOX DRAWINGS LIGHT VERTICAL AND LEFT
<U252C> /x88 BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
<U2534> /x89 BOX DRAWINGS LIGHT UP AND HORIZONTAL
<U253C> /x8a BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
<U2580> /x8b UPPER HALF BLOCK
<U2584> /x8c LOWER HALF BLOCK
<U2588> /x8d FULL BLOCK
<U258C> /x8e LEFT HALF BLOCK
<U2590> /x8f RIGHT HALF BLOCK
<U2591> /x90 LIGHT SHADE
<U2592> /x91 MEDIUM SHADE
<U2593> /x92 DARK SHADE
<U2320> /x93 TOP HALF INTEGRAL
<U25A0> /x94 BLACK SQUARE
<U2219> /x95 BULLET OPERATOR
<U221A> /x96 SQUARE ROOT
<U2248> /x97 ALMOST EQUAL TO
<U2264> /x98 LESS-THAN OR EQUAL TO
<U2265> /x99 GREATER-THAN OR EQUAL TO
<U00A0> /x9a NO-BREAK SPACE
<U2321> /x9b BOTTOM HALF INTEGRAL
<U00B0> /x9c DEGREE SIGN
<U00B2> /x9d SUPERSCRIPT TWO
<U00B7> /x9e MIDDLE DOT
<U00F7> /x9f DIVISION SIGN
<U2550> /xa0 BOX DRAWINGS DOUBLE HORIZONTAL
<U2551> /xa1 BOX DRAWINGS DOUBLE VERTICAL
<U2552> /xa2 BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
<U2553> /xa4 BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
<U2554> /xa5 BOX DRAWINGS DOUBLE DOWN AND RIGHT
<U2555> /xa6 BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
<U2556> /xa7 BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
<U2557> /xa8 BOX DRAWINGS DOUBLE DOWN AND LEFT
<U2558> /xa9 BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
<U2559> /xaa BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
<U255A> /xab BOX DRAWINGS DOUBLE UP AND RIGHT
<U255B> /xac BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
<U255C> /xad BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
<U255D> /xae BOX DRAWINGS DOUBLE UP AND LEFT
<U255E> /xaf BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
<U255F> /xb0 BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
<U2560> /xb1 BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
<U2561> /xb2 BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
<U2562> /xb4 BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
<U2563> /xb5 BOX DRAWINGS DOUBLE VERTICAL AND LEFT
<U2564> /xb6 BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
<U2565> /xb7 BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
<U2566> /xb8 BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
<U2567> /xb9 BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
<U2568> /xba BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
<U2569> /xbb BOX DRAWINGS DOUBLE UP AND HORIZONTAL
<U256A> /xbc BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
<U256B> /xbd BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
<U256C> /xbe BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
<U00A9> /xbf COPYRIGHT SIGN
<UF8D0> /xd0 Klingon letter A
<UF8D1> /xd1 Klingon letter B
<UF8D2> /xd2 Klingon letter CH
<UF8D3> /xd3 Klingon letter D
<UF8D4> /xd4 Klingon letter E
<UF8D5> /xd5 Klingon letter GH
<UF8D6> /xd6 Klingon letter H
<UF8D7> /xd7 Klingon letter I
<UF8D8> /xd8 Klingon letter J
<UF8D9> /xd9 Klingon letter L
<UF8DA> /xda Klingon letter M
<UF8DB> /xdb Klingon letter N
<UF8DC> /xdc Klingon letter NG
<UF8DD> /xdd Klingon letter O
<UF8DE> /xde Klingon letter P
<UF8DF> /xdf Klingon letter Q
<UF8E0> /xe0 Klingon letter QH
<UF8E1> /xe1 Klingon letter R
<UF8E2> /xe2 Klingon letter S
<UF8E3> /xe3 Klingon letter T
<UF8E4> /xe4 Klingon letter TLH
<UF8E5> /xe5 Klingon letter U
<UF8E6> /xe6 Klingon letter V
<UF8E7> /xe7 Klingon letter W
<UF8E8> /xe8 Klingon letter Y
<UF8E9> /xe9 Klingon letter glottal stop
<UF8F0> /xf0 Klingon digit 0
<UF8F1> /xf1 Klingon digit 1
<UF8F2> /xf2 Klingon digit 2
<UF8F3> /xf3 Klingon digit 3
<UF8F4> /xf4 Klingon digit 4
<UF8F5> /xf5 Klingon digit 5
<UF8F6> /xf6 Klingon digit 6
<UF8F7> /xf7 Klingon digit 7
<UF8F8> /xf8 Klingon digit 8
<UF8F9> /xf9 Klingon digit 9
<UF8FD> /xfd Klingon ,
<UF8FE> /xfe Klingon full stop
<UF8FF> /xff Klingon mummification glyph
END CHARMAP

View file

@ -0,0 +1,53 @@
.colors 16
-selection default/default inverse
-menusel default/default inverse
-linum default dim
-curlinum default bold
=Idle
=Bad bold red
=Preproc blue
=Define bold blue
=Comment green
=IncLocal cyan
=IncSystem bold cyan
=Constant cyan
=Escape bold cyan
=Type bold
=Keyword bold
=Brace magenta
=Control
=Ident
=Tag bold blue
=TagName +Tag
=TODO default/default inverse
=Title bold
=diff.DelLine red
=diff.AddLine green
=diff.ChgLine magenta
=diff.Garbage dim white
=diff.FileOld bold red
=diff.FileNew bold green
=diff.Hunk bold blue
# For backwards compatibility with older syntaxes that specify colors,
# the scheme must specify termcolors. Yes this is a bit of a kludge.
-term 0 0
-term 1 1
-term 2 2
-term 3 3
-term 4 4
-term 5 5
-term 6 6
-term 7 7
-term 8 8
-term 9 9
-term 10 10
-term 11 11
-term 12 12
-term 13 13
-term 14 14
-term 15 15

View file

@ -0,0 +1,205 @@
# Gruvbox is a VIM scheme written by Pavel Pertsev
# and can be found in its original version at https://github.com/morhetz/gruvbox
.colors 256
# Palette
.set bg 235
.set dark_red 124
.set dark_green 106
.set dark_yellow 172
.set dark_blue 66
.set dark_purple 132
.set dark_aqua 72
.set dark_gray 246
.set light_gray 245
.set light_red 167
.set light_green 142
.set light_yellow 214
.set light_blue 109
.set light_purple 175
.set light_aqua 108
.set fg 223
.set bg0_h 234
.set bg0 235
.set bg1 237
.set bg2 239
.set bg3 241
.set bg4 243
.set dark_orange 166
.set bg0_s 236
.set fg4 246
.set fg3 248
.set fg2 250
.set fg1 223
.set fg0 229
.set light_orange 208
-text [fg]/[bg]
-selection /[bg3]
-status [fg2]/[bg2] bold
-menusel /[bg2] bold
-linum [bg4]/[bg1]
-curlinum [dark_yellow]/[bg1]
-curlin /[bg1]
-cursor [bg]/[fg]
=Comment [light_gray] italic
=TODO inverse bold italic
=Bad [light_red] bold inverse
=DefinedIdent [light_blue]
=DefinedFunction [light_green]
=Builtin [light_green]
=Preproc [light_aqua]
=IncSystem [dark_aqua]
=Keyword [light_red]
=Operator
=Escape [light_orange]
=Label +Keyword
=Loop [light_red]
=Conditional +Keyword
=Statement +Keyword
=Type [light_yellow]
=StorageClass [light_orange]
=Structure [light_aqua]
=Constant [light_purple]
=String [fg2]/[bg1]
=StringEscape /[bg1]
=Character +Constant
=CharacterEscape +Escape
=Variable [light_blue]
=StringVariable [light_blue]/[bg1]
=Tag [light_blue]
=TagName [light_aqua] bold
=TagEnd +Tag
=Define [dark_blue]
=diff.AddLine [bg0]/[light_green]
=diff.DelLine [bg0]/[dark_red]
=Ignore [dark_gray]
# Terminal colors
-term 0 [bg0]
-term 1 [dark_red]
-term 2 [dark_green]
-term 3 [dark_yellow]
-term 4 [dark_blue]
-term 5 [dark_purple]
-term 6 [dark_aqua]
-term 7 [dark_gray]
-term 8 [light_gray]
-term 9 [light_red]
-term 10 [light_green]
-term 11 [light_yellow]
-term 12 [light_blue]
-term 13 [light_purple]
-term 14 [light_aqua]
-term 15 [fg]
.colors *
# Palette
.set bg $282828
.set dark_red $cc241d
.set dark_green $98971a
.set dark_yellow $d79921
.set dark_blue $458588
.set dark_purple $b16286
.set dark_aqua $689d6a
.set dark_gray $a89984
.set light_gray $928374
.set light_red $fb4934
.set light_green $b8bb26
.set light_yellow $fabd2f
.set light_blue $83a598
.set light_purple $d3869b
.set light_aqua $8ec07c
.set fg $ebdbb2
.set bg0_h $1d2021
.set bg0 $282828
.set bg1 $3c3836
.set bg2 $504945
.set bg3 $665c54
.set bg4 $7c6f64
.set dark_orange $d65d0e
.set bg0_s $32302f
.set fg4 $a89984
.set fg3 $bdae93
.set fg2 $d5c4a1
.set fg1 $ebdbb2
.set fg0 $fbf1c7
.set light_orange $fe8019
-text [fg]/[bg]
-selection /[bg3]
-status [fg2]/[bg2] bold
-menusel /[bg2] bold
-linum [bg4]/[bg1]
-curlinum [dark_yellow]/[bg1]
-curlin /[bg1]
-cursor [bg]/[fg]
=Comment [light_gray] italic
=TODO inverse bold italic
=Bad [light_red] bold inverse
=DefinedIdent [light_blue]
=DefinedFunction [light_green]
=Builtin [light_green]
=Preproc [light_aqua]
=IncSystem [dark_aqua]
=Keyword [light_red]
=Operator
=Escape [light_orange]
=Label +Keyword
=Loop [light_red]
=Conditional +Keyword
=Statement +Keyword
=Type [light_yellow]
=StorageClass [light_orange]
=Structure [light_aqua]
=Constant [light_purple]
=String [fg2]/[bg1]
=StringEscape /[bg1]
=Character +Constant
=CharacterEscape +Escape
=Variable [light_blue]
=StringVariable [light_blue]/[bg1]
=Tag [light_blue]
=TagName [light_aqua] bold
=TagEnd +Tag
=Define [dark_blue]
=diff.AddLine [bg0]/[light_green]
=diff.DelLine [bg0]/[dark_red]
=Ignore [dark_gray]
# Terminal colors
-term 0 [bg0]
-term 1 [dark_red]
-term 2 [dark_green]
-term 3 [dark_yellow]
-term 4 [dark_blue]
-term 5 [dark_purple]
-term 6 [dark_aqua]
-term 7 [dark_gray]
-term 8 [light_gray]
-term 9 [light_red]
-term 10 [light_green]
-term 11 [light_yellow]
-term 12 [light_blue]
-term 13 [light_purple]
-term 14 [light_aqua]
-term 15 [fg]

View file

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

View file

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

View file

@ -0,0 +1,169 @@
# Port of Solarized color scheme by Ethan Schoonover
# http://ethanschoonover.com/solarized
.colors *
# Palette
.set base03 $002b36
.set base02 $073642
.set base01 $586e75
.set base00 $657b83
.set base0 $839496
.set base1 $93a1a1
.set base2 $eee8d5
.set base3 $fdf6e3
.set yellow $b58900
.set orange $cb4b16
.set red $dc322f
.set magenta $d33682
.set violet $6c71c4
.set blue $268bd2
.set cyan $2aa198
.set green $859900
# Uncommenting these lines changes this scheme to a light background
#.set base3 $002b36
#.set base2 $073642
#.set base1 $586e75
#.set base0 $657b83
#.set base00 $839496
#.set base01 $93a1a1
#.set base02 $eee8d5
#.set base03 $fdf6e3
-text [base0]/[base03]
-status [base1]/[base02]
-selection [base03]/[base01]
-linum [base01]/[base02]
-menu [base0]/[base02]
-menusel [base01]/[base2]
-curlin /[base02]
-curlinum [base0]
-message [blue]
-cursor [base03]/[base0]
=Comment [base01] italic
=Constant [cyan]
=DefinedIdent [blue]
=Keyword [green]
=Statement [green]
=Preproc [orange]
=Precond [orange]
=Type [yellow]
=Structure +Type
=StorageClass +Type
=Escape [red]
=Bad [red] bold
=TODO [magenta] bold
=Title [orange] bold
=Tag [base01]
=TagName [blue] bold
=TagEnd +Tag
=diff.AddLine [green]/[base02] bold
=diff.ChgLine [yellow]/[base02] bold
=diff.DelLine [red]/[base02] bold
=diff.Garbage [blue]/[base02] bold
# Terminal colors
-term 0 [base02]
-term 1 [red]
-term 2 [green]
-term 3 [yellow]
-term 4 [blue]
-term 5 [magenta]
-term 6 [cyan]
-term 7 [base0]
-term 8 [base03]
-term 9 [red]
-term 10 [base01]
-term 11 [base00]
-term 12 [base0]
-term 13 [violet]
-term 14 [base1]
-term 15 [base3]
.colors 256
# 256-color palette
.set base03 234
.set base02 235
.set base01 240
.set base00 241
.set base0 244
.set base1 245
.set base2 254
.set base3 230
.set yellow 136
.set orange 166
.set red 160
.set magenta 125
.set violet 61
.set blue 33
.set cyan 37
.set green 64
# Uncommenting these lines changes this scheme to a light background
#.set base3 234
#.set base2 235
#.set base1 240
#.set base0 241
#.set base00 244
#.set base01 245
#.set base02 254
#.set base03 230
-text [base0]/[base03]
-status [base1]/[base02]
-selection [base03]/[base01]
-linum [base01]/[base02]
-menu [base0]/[base02]
-menusel [base01]/[base2]
-curlin /[base02]
-curlinum [base0]
-message [blue]
-cursor [base03]/[base0]
=Comment [base01] italic
=Constant [cyan]
=DefinedIdent [blue]
=Keyword [green]
=Statement [green]
=Preproc [orange]
=Precond [orange]
=Type [yellow]
=Structure +Type
=StorageClass +Type
=Escape [red]
=Bad [red] bold
=TODO [magenta] bold
=Title [orange] bold
=Tag [base01]
=TagName [blue] bold
=TagEnd +Tag
=diff.AddLine [green]/[base02] bold
=diff.ChgLine [yellow]/[base02] bold
=diff.DelLine [red]/[base02] bold
=diff.Garbage [blue]/[base02] bold
# Terminal colors
-term 0 [base02]
-term 1 [red]
-term 2 [green]
-term 3 [yellow]
-term 4 [blue]
-term 5 [magenta]
-term 6 [cyan]
-term 7 [base0]
-term 8 [base03]
-term 9 [red]
-term 10 [base01]
-term 11 [base00]
-term 12 [base0]
-term 13 [violet]
-term 14 [base1]
-term 15 [base3]

View file

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

View file

@ -0,0 +1,60 @@
# Xoria256 is a VIM scheme written by Dmitriy Y. Zotikov
# and can be found at http://www.vim.org/scripts/script.php?script_id=2140
# This is a straightforward port into JOE based on the 1.5 version
.colors 256
-text 252/234
-cursor 214
-status 231/239 bold
-menu 16/250
-menusel 255/243
-selection 255/96
-prompt 149/234
-message 149/234
-linum 247/233
-curlin /237
-cursor 16/214
=Comment 244
=Constant 229
=DefinedIdent 182
=Number 180
=Preproc 150
=Keyword 110
=Type 146
=TODO 16/184
=Bad 231/160
=Escape 174
=IncSystem +Keyword
=IncLocal +Constant
=Ignore 238
=diff.AddLine 150
=diff.DelLine 174
=Garbage +Ignore
=TagEdge 244
=TagName +Keyword
=Key +Ident
=Value +Constant
=Title 225
-term 0 234
-term 1 160
-term 2 77
-term 3 184
-term 4 98
-term 5 98
-term 6 151
-term 7 252
-term 8 254
-term 9 160
-term 10 77
-term 11 184
-term 12 98
-term 13 98
-term 14 151
-term 15 231

View file

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

View file

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

2160
joe/usr/share/joe/lang/de.po Normal file

File diff suppressed because it is too large Load diff

2111
joe/usr/share/joe/lang/fr.po Normal file

File diff suppressed because it is too large Load diff

2190
joe/usr/share/joe/lang/ru.po Normal file

File diff suppressed because it is too large Load diff

2188
joe/usr/share/joe/lang/uk.po Normal file

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,219 @@
# JOE syntax highlight file for Progress 4GL
# by Gediminas http://proc.w3.lt
# Version 1.04
=Idle
=Comment
=Constant
=String +Constant
=Number +Constant
=Type
=Ident
# conditional operators, blocks
=Keyword
=Conditional +Keyword
=Operator +Keyword
# preprocessor include, definition, reference
=Preproc
=Include +Preproc
=PreRef +Ident
:idle Idle
* idle
"/" slash
"{" brace
"&" prep buffer
"a-zA-Z" ident buffer
"'" string recolor=-1
"\"" string2 recolor=-1
"0-9" number recolor=-1
"?" question recolor=-1
# Comments - 2 levels of nesting allowed
:slash Idle
* idle noeat
"*" comment recolor=-2
:comment Comment comment
* comment
"/" slash2
"*" maybe_end_comment
"BFHNTX" comment noeat call=comment_todo.comment_todo()
:maybe_end_comment Comment comment
* comment
"/" idle
"*" maybe_end_comment
:slash2 Idle
* comment noeat
"*" comment2 recolor=-2
:comment2 Comment comment
* comment2
"*" maybe_end_comment2
"BFHNTX" comment2 noeat call=comment_todo.comment_todo()
:maybe_end_comment2 Comment comment
* comment2
"/" comment
"*" maybe_end_comment2
# Preprocessor
# Allow preprocessor name reference inside include file reference:
# {include/trace {&FILE-NAME} {&LINE-NUMBER}}
:brace Include
* include noeat
"&" scoped recolor=-2
"}" idle
:include Include
* include recolor=-2
"{" brace2
"}" idle
:brace2 Include
* include2 noeat
"}" idle
:include2 Include
* include2 recolor=-2
"}" include
:scoped PreRef
* scoped
"}" idle
:prep Preproc
* idle noeat istrings
"&IF" predir
"&THEN" predir
"&ELSEIF" predir
"&ELSE" predir
"&ENDIF" predir
"&SCOPED-DEFINE" predir
"&SCOP" predir
"&GLOBAL-DEFINE" predir
"&GLOB" predir
"&MESSAGE" predir
"&UNDEFINE" predir
"&UNDEF" predir
done
"-a-zA-Z0-9_" prep
:predir Preproc
* idle noeat
# String constants, copied from pascal.jsf with " added
:string String string
* string
"\n" idle
"'" maybe_end_string
:maybe_end_string String string
* idle recolor=-1 noeat
"'" string
:string2 String string
* string2
"\n" idle
"\"" maybe_end_string2
:maybe_end_string2 String string
* idle recolor=-1 noeat
"\"" string2
# Numeric constant, same as pascal.jsf
:number Number
* idle noeat
"0-9" number
"eE" epart
"." dot
:dot Number
* idle noeat
"0-9" float
:float Number
* idle noeat
"eE" epart
"0-9" float
:epart Number
* idle noeat
"0-9+\-" enum
:enum Number
* idle noeat
"0-9" enum
:question Constant
* idle noeat
# Keywords
# Available jumps: cond type oper kw
# 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" reserved
"dat" type
"date" type
"dec" type
"decimal" type
"defined" oper
"delete" reserved
"do" reserved
"else" cond
"end" cond
"find" reserved
"for" reserved
"function" cond
"get" reserved
"handle" type
"if" cond
"int" type
"integer" type
"leave" cond
"log" type
"logical" type
"memptr" type
"next" cond
"otherwise" cond
"param" cond
"parameter" cond
"procedure" cond
"raw" type
"rec" type
"repeat" cond
"reposition" reserved
"return" cond
"rowid" type
"run" cond
"then" cond
"when" cond
"widget-handle" type
done
"-a-zA-Z0-9_" ident
:cond Conditional
* idle noeat
:type Type
* idle noeat
:oper Operator
* idle noeat
:reserved Keyword
* idle noeat

View file

@ -0,0 +1,193 @@
# JOE syntax highlight file for ADA
# Define colors
=Idle
=Comment
=Constant
=Character +Constant
=Number +Constant
=String +Constant
=StringEscape +Escape +String
=Keyword
=Operator +Keyword
:idle Idle
* idle
"-" maybe_comment
"'" char recolor=-1
"\"" string recolor=-1
"0-9" first_digit recolor=-1
"." maybe_float
"\"" string recolor=-1
"Bb" maybe_binary buffer
"Oo" maybe_octal buffer
"Xx" maybe_hex buffer
"ac-np-wyzAC-NP-WYZ" ident buffer
:maybe_comment Idle
* idle noeat
"-" comment recolor=-2
:comment Comment comment
* comment
"BFHNTX" comment noeat call=comment_todo.comment_todo()
"\n" idle
# Character constant
:char Idle
* char1
:char1 Idle
* idle
"'" char2 recolor=-3
:char2 Character
* idle noeat
# Strings
:maybe_binary Idle
* ident noeat
"\"" string recolor=-2
:maybe_octal Idle
* ident noeat
"\"" string recolor=-2
:maybe_hex Idle
* ident noeat
"\"" string recolor=-2
:string String string
* string
"\n" idle
"\"" idle
"\\" string_escape recolor=-1
:string_escape StringEscape string
* string
"\n" string recolor=-2
# Integer constants
:first_digit Number
* idle noeat
"." float
"_" first_digit
"0-9" first_digit
# Floating point
:maybe_float Number
* idle recolor=-2 noeat
"0-9" float recolor=-2
:float Number
* idle noeat
"eE" epart
"0-9" float
:epart Number
* idle noeat
"0-9+\-" enum
:enum Number
* idle noeat
"0-9" enum
# Identifiers
:ident Idle
* quote noeat istrings
"abort" kw
"abs" operator
"abstract" kw
"accept" kw
"aliased" kw
"all" kw
"and" operator
"array" kw
"at" kw
"begin" kw
"body" kw
"case" kw
"constant" kw
"declare" kw
"delay" kw
"delta" kw
"digits" kw
"do" kw
"else" kw
"elsif" kw
"end" kw
"entry" kw
"exception" kw
"exit" kw
"for" kw
"function" kw
"generic" kw
"goto" kw
"if" kw
"in" kw
"interface" kw
"is" kw
"limited" kw
"loop" kw
"mod" kw
"new" kw
"not" operator
"null" kw
"of" kw
"or" operator
"others" kw
"out" kw
"overriding" kw
"package" kw
"pragma" kw
"private" kw
"procedure" kw
"protected" kw
"raise" kw
"range" kw
"record" kw
"rem" operator
"renames" kw
"requeue" kw
"return" kw
"reverse" kw
"select" kw
"separate" kw
"subtype" kw
"synchronized" kw
"tagged" kw
"task" kw
"terminate" kw
"then" kw
"type" kw
"until" kw
"use" kw
"when" kw
"while" kw
"with" kw
"xor" operator
done
"a-zA-Z0-9_" ident
:operator Operator
* idle noeat
:kw Keyword
* idle noeat
# identifiers separated with quote '
:quote Idle
* idle noeat
"'" quote_word
:quote_word Idle
* idle noeat
"a-zA-Z" ident buffer

View file

@ -0,0 +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/
=Idle
=String +Constant
=StringEscape +Escape +String
:init Idle
* idle noeat call=xml.xml(ant)
.subr maybe_antvar
# initial state
:maybe_antvar String string
* NULL return
"{" antvar recolor=-2
:antvar StringEscape string
* antvar
"}" NULL return
.end
.subr antvar
:antvar StringEscape string
* antvar
"}" NULL return
.end

View file

@ -0,0 +1,257 @@
# JOE syntax highlight file for assembly language
# Highlights ';' comments, C-preprocessor stuff and C-like constants.
# Some assembly languages do not use C-preprocessor and use '#' for
# comments. For them, eliminate all states up to ':idle'. and change the
# ";" line in 'idle' to '#'.
# For UNIX assembly ';' actually separates instructions, but I've only seen
# this for 'rep; movsb'. If it bothers you eliminate the ';' line in
# ':idle'.
# This highlighter is too strict for numeric constants. Many assembly
# languages allow '000009', which looks like a bad octal constant in C/UNIX.
=Idle
=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
:reset Idle
* first noeat
" \t" reset
:first Idle
* idle noeat
"#" pre recolor=-1
:pre Preproc
* preproc noeat
" \t" pre
"a-z" preident recolor=-1 buffer
:preident Preproc
* preproc noeat strings
"define" predef
"include" preinc
done
"a-z" preident
:preinc Preproc
* preinc
" \t" preinc_ws
"\n" reset
:preinc_ws Preproc
* prebad recolor=-1
" \t" preinc_ws
"\"" preinc_local recolor=-1
"<" preinc_system recolor=-1
:preinc_local IncLocal
* preinc_local
"\"\n" reset
:preinc_system IncSystem
* preinc_system
">\n" reset
:prebad Bad
* prebad
"\n" reset
:predef Preproc
* predef
" \t" predef_ws
"\n" reset
:predef_ws Preproc
* prebad recolor=-1
" \t" predef_ws
"a-zA-Z0-9_" predef_ident recolor=-1
:predef_ident Define
* idle noeat
"a-zA-Z0-9_" predef_ident
:preproc Preproc
* preproc
"\n" reset
"\\" preproc_cont
"/" preproc_slash
:preproc_slash Preproc
* preproc noeat
"*" comment recolor=-2
"/" line_comment recolor=-2
:preproc_cont Preproc
* preproc_cont
"\n" preproc
# All following states are for when we're not in a preprocessor line
:idle Idle
* idle
";" line_comment recolor=-1
"\n" reset
"/" slash
"0" first_digit recolor=-1
"1-9" decimal recolor=-1
"." maybe_float
"\"" string recolor=-1
"'" char recolor=-1
"a-zA-Z_" ident buffer
"{}" brace recolor=-1
",:=()><[]*&|!~+\-%^" control recolor=-1
:brace Brace
* idle noeat
:control Control
* idle noeat
:slash Idle
* idle noeat recolor=-2 # Not sure about this
"*" comment recolor=-2
"/" line_comment recolor=-2
:comment Comment comment
* comment
"BFHNTX" comment noeat call=comment_todo.comment_todo()
"*" maybe_end_comment
:maybe_end_comment Comment comment
* comment
"/" idle
"*" maybe_end_comment
:line_comment Comment comment
* line_comment
"BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" reset
:first_digit Number
* 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 Number
* idle noeat
"0-7" octal
"89" bad_number recolor=-1
:hex Number
* idle noeat
"0-9A-Fa-f" hex
:decimal Number
* idle noeat
"0-9" decimal
"eE" epart
"." float
:maybe_float Number
* idle recolor=-2 noeat
"0-9" float recolor=-2
:float Number
* idle noeat
"eE" epart
"0-9" float
:epart Number
* idle noeat
"0-9+\-" enum
:enum Number
* idle noeat
"0-9" enum
:string String string
* string
"\"" idle
"\\" string_escape recolor=-1
"%" string_control recolor=-1
:string_escape StringEscape string
* string
"x" string_hex1
"0-7" string_octal2
"\n" string recolor=-2
:string_hex1 StringEscape string
* string noeat
"0-9a-fA-F" string_hex2
:string_hex2 StringEscape string
* string noeat
"0-9a-fA-F" string
:string_octal2 StringEscape string
* string noeat
"0-7" string_octal3
:string_octal3 StringEscape string
* string noeat
"0-7" string
:string_control StringEscape string
* string_control
"\n" reset
"diouxXeEfFgGaAcspn%SC" string
:char CharacterEscape
* char
"\n" reset
"'" idle
"\\" char_escape recolor=-1
:char_escape CharacterEscape
* char
"x" char_hex1
"0-7" char_octal2
"\n" char recolor=-2
:char_hex1 CharacterEscape
* char noeat
"0-9a-fA-F" char_hex2
:char_hex2 CharacterEscape
* char noeat
"0-9a-fA-F" char
:char_octal2 CharacterEscape
* char noeat
"0-7" char_octal3
:char_octal3 CharacterEscape
* char noeat
"0-7" char
:ident Ident
* idle noeat
"a-zA-Z0-9_" ident

View file

@ -0,0 +1,197 @@
# JOE syntax highlight file for AVR assembly language
=Idle
=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
* idle
"." preproc recolor=-1
";" comment recolor=-1
"a-zA-Z_0-9" ident recolor=-1 buffer mark
:preproc Preproc
* preproc
"a-zA-Z" preident buffer
"\n" idle
";" comment recolor=-1
:preident Preproc
* preproc noeat istrings
"include" preinc
"def" predef
"equ" predef
"macro" premacro
"endmacro" premacro
"endm" premacro
done
"a-zA-Z" preident
";" comment recolor=-1
:preinc Include
* preinc
" \t" path
"\n" idle
";" comment recolor=-1
:predef Define
* predef
" \t" definition
"\n" idle
";" comment recolor=-1
:definition DefinedIdent
* definition
"\n" idle
";" comment recolor=-1
:premacro Macro
* premacro
" \t\n" idle
";" comment recolor=-1
:path Path
* path
"\n" idle
";" comment recolor=-1
:comment Comment comment
* comment
"BFHNTX" comment noeat call=comment_todo.comment_todo()
"\n" idle
:ident Ident
* idle noeat istrings
"and" com
"andi" com
"eor" com
"or" com
"ori" com
"com" com
"neg" com
"clr" com
"ser" com
"cr" com
"tst" com
"swap" com
"add" com
"adc" com
"adiw" com
"sub" com
"subi" com
"sbc" com
"sbci" com
"sbiw" com
"dec" com
"inc" com
"asr" com
"lsl" com
"lsr" com
"rol" com
"ror" com
"mul" com
"muls" com
"mulsu" com
"fmul" com
"fmuls" com
"fmulsu" com
"cbr" com
"sbr" com
"sbi" com
"cbi" com
"bclr" com
"bset" com
"bld" com
"bst" com
"clc" com
"sec" com
"cln" com
"sen" com
"clz" com
"sez" com
"cli" com
"sei" com
"cls" com
"ses" com
"clv" com
"sev" com
"clt" com
"set" com
"clh" com
"seh" com
"mov" com
"movw" com
"ldi" com
"ld" com
"ldd" com
"lds" com
"st" com
"std" com
"sts" com
"lpm" com
"elpm" com
"spm" com
"espm" com
"in" com
"out" com
"push" com
"pop" com
"rjmp" com
"ijmp" com
"eijmp" com
"jmp" com
"rcall" com
"icall" com
"eicall" com
"call" com
"ret" com
"reti" com
"cp" com
"cpc" com
"cpi" com
"cpse" com
"sbrc" com
"sbrs" com
"sbic" com
"sbis" com
"brbc" com
"brbs" com
"brcs" com
"brcc" com
"breq" com
"brne" com
"brsh" com
"brlo" com
"brmi" com
"brpl" com
"brge" com
"brlt" com
"brhs" com
"brhc" com
"brts" com
"brtc" com
"brvs" com
"brvc" com
"brid" com
"brie" com
"nop" com
"sleep" com
"wdr" com
done
"a-zA-Z0-9_" ident
":" itslabel recolor=-1 markend recolormark
:itslabel Label
* idle
:com Com
* idle noeat

View file

@ -0,0 +1,237 @@
# JOE syntax highlight file for AWK
# Resync whole file
-
=Idle
=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
* first noeat
" \t" reset
:first Idle
* idle noeat
"/" regex
"#" reset_line_comment recolor=-1
:regex Idle
* regex
"/" idle
"\\" regex_skip
:regex_skip Idle
* regex
:reset_line_comment Comment comment
* reset_line_comment
"BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" reset
:idle Idle
* idle
"\n" reset
"#" line_comment recolor=-1
"0" first_digit recolor=-1
"1-9" decimal recolor=-1
"." maybe_float
"\"" string recolor=-1
"'" char recolor=-1
"a-zA-Z_" ident buffer
"{}" brace recolor=-1
"/,:;=()><[]*&|!~+\-%^" control recolor=-1
:brace Brace
* idle noeat
:control Control
* idle noeat
:line_comment Comment comment
* line_comment
"BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" reset
:first_digit Number
* 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 Number
* idle noeat
"0-7" octal
"89" bad_number recolor=-1
:hex Number
* idle noeat
"0-9A-Fa-f" hex
:decimal Number
* idle noeat
"0-9" decimal
"eE" epart
"." float
:maybe_float Number
* idle recolor=-2 noeat
"0-9" float recolor=-2
:float Number
* idle noeat
"eE" epart
"0-9" float
:epart Number
* idle noeat
"0-9+\-" enum
:enum Number
* idle noeat
"0-9" enum
:string String string
* string
"\"" idle
"\\" string_escape recolor=-1
"%" string_control recolor=-1
:string_escape StringEscape string
* string
"x" string_hex1
"0-7" string_octal2
"\n" string recolor=-2
:string_hex1 StringEscape string
* string noeat
"0-9a-fA-F" string_hex2
:string_hex2 StringEscape string
* string noeat
"0-9a-fA-F" string
:string_octal2 StringEscape string
* string noeat
"0-7" string_octal3
:string_octal3 StringEscape string
* string noeat
"0-7" string
:string_control StringEscape string
* string
"\"" string noeat
"\n" reset
"0-9.\-+ #hjILtz$" string_control
:char Character
* char
"\n" reset
"'" idle
"\\" char_escape recolor=-1
:char_escape CharacterEscape
* char
"x" char_hex1
"0-7" char_octal2
"\n" char recolor=-2
:char_hex1 CharacterEscape
* char noeat
"0-9a-fA-F" char_hex2
:char_hex2 CharacterEscape
* char noeat
"0-9a-fA-F" char
:char_octal2 CharacterEscape
* char noeat
"0-7" char_octal3
:char_octal3 CharacterEscape
* char noeat
"0-7" char
: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
"getline" kw
"next" kw
"nextfile" 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
"asorti" kw
"gensub" kw
"gsub" kw
"index" kw
"length" kw
"match" kw
"split" kw
"sprintf" kw
"strtonum" kw
"sub" kw
"substr" kw
"tolower" kw
"toupper" kw
"mktime" kw
"strftime" kw
"systime" kw
"and" kw
"compl" kw
"lshift" kw
"or" kw
"rshift" kw
"xor" kw
"bindtextdomain" kw
"dcgettext" kw
"dcngettext" kw
"function" kw
"return" kw
done
"a-zA-Z0-9_" ident
:kw Keyword
* idle noeat

View file

@ -0,0 +1,186 @@
# JOE syntax highlight file for Windows batch scripts
=Idle
=Comment
=Command +Type
=Statement +Keyword
=Brace
=Variable +DefinedIdent
=StringVariable +StringEscape
=Label
=Conditional +Statement
=Loop +Statement
=String +Constant
:reset Idle
* linebegin noeat
" \t\r\n" reset
:linebegin Idle
* stmtorcommand noeat buffer
":" labelorcomment
"@" linebegin
"%" args call=.variable() recolor=-1
"\"" qargs recolor=-1
"'" sqargs recolor=-1 # These two encountered in
"`" bqargs recolor=-1 # certain varieties of for-loops
:stmtorcommand Command
* command noeat istrings
"call" stmt
"cd" stmt
"chdir" stmt
"cls" stmt
"copy" stmt
"del" stmt
"dir" stmt
"echo" echostmt
"echo." echostmt
"endlocal" stmt
"erase" stmt
"exit" stmt
"for" cond
"goto" loop
"if" cond
"move" stmt
"pause" stmt
"popd" stmt
"pushd" stmt
"rd" stmt
"rem" comment
"ren" stmt
"rename" stmt
"rmdir" stmt
"set" stmt
"setlocal" stmt
"setx" stmt
"shift" stmt
"sleep" stmt
"start" stmt
"type" stmt
"xcopy" stmt
done
"a-zA-Z." stmtorcommand
"\"\\_0-9" command
")" rparen recolor=-1
:labelorcomment Idle
* label recolor=-2
":" comment recolor=-2
:label Label
* label
"\r\n" reset
: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 String string
* echoargs
"%" echoargs call=.strvariable() recolor=-1
"&" and recolor=-1
">|" reset recolor=-1
"\r\n" reset
:command Command
* command
"\"" qcommand
" \t" args
"\r\n" reset
:qcommand Command
* qcommand
"\"" command
"\r\n" reset
:args Idle
* args
"%" args call=.variable() recolor=-1
"(" lparen recolor=-1
")" rparen recolor=-1
"\r\n" reset
"\"" qargs recolor=-1
"&" and recolor=-1
# Double-quoted args
:qargs String string
* qargs
"\"" args
"%" qargs call=.strvariable() recolor=-1
"\r\n" reset
# Single-quoted args
:sqargs String string
* sqargs
"'" args
"%" sqargs call=.strvariable() recolor=-1
"\r\n" reset
# Back-quoted (`) args, found in some for-loops
:bqargs String string
* bqargs
"`" args
"%" bqargs call=.strvariable() recolor=-1
"\r\n" reset
:and Idle
"&" and
* reset noeat
:lparen Brace
* linebegin noeat
:rparen Brace
* args noeat
.subr variable
:variable Variable
* args noeat return
"%~" shortvar
"\*" noeat return
"0-9" variable return
"A-Za-z_" varbody
:shortvar Variable
* args noeat return
"A-Za-z0-9_" shortvar
:varbody Variable
* varbody
"%" 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

View file

@ -0,0 +1,522 @@
# 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
-
=Idle
=Ident
=Bad
=Preproc
=Precond +Preproc
=Define +DefinedIdent +Preproc
=IncLocal +String +Preproc
=IncSystem +Preproc +Keyword
=Comment
=Constant
=Number +Constant
=String +Constant
=StringEscape +Escape +String
=Character +String
=CharacterEscape +StringEscape +Character
=Escape
=Keyword
=CppKeyword +Keyword
=Statement +Keyword
=Loop +Statement
=Conditional +Statement
=Label +DefinedIdent
=Type
=StorageClass +Type +Keyword
=Structure +Type +Keyword
=Brace
=Control
:reset Idle
* first noeat
" \t" reset
:first Idle
* idle noeat
"#" pre mark
:pre Preproc
* preproc noeat
" \t" pre
"a-z" preident recolor=-1 buffer
:preident Preproc
* preproc noeat markend recolormark strings
"define" predef markend recolormark
"include" preinc markend recolormark
"if" precond markend recolormark
"ifdef" precond markend recolormark
"ifndef" precond markend recolormark
"else" precond markend recolormark
"elif" precond markend recolormark
"endif" precond markend recolormark
done
"a-z" preident
:precond Precond
* preproc noeat
: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
"/" slash
"0" first_digit recolor=-1
"1-9" decimal recolor=-1
"." maybe_float
"\"" string recolor=-1
"'" char recolor=-1
"\i" ident recolor=-1 buffer
"\\" outside_escape recolor=-1
"{}" brace recolor=-1
",:;=()><[]*&|!~+\-%^" control recolor=-1
:outside_escape Escape
* idle
:brace Brace
* idle noeat
:control Control
* idle noeat
:slash Idle
* idle noeat recolor=-2 # Not sure about this
"*" comment recolor=-2
"/" line_comment recolor=-2
:comment Comment comment
* comment
"BFHNTX" comment noeat call=comment_todo.comment_todo()
"*" maybe_end_comment
:maybe_end_comment Comment comment
* comment
"/" idle
"*" maybe_end_comment
:line_comment Comment comment
* line_comment
"BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" reset
:first_digit Number
* idle noeat
"xX" hex recolor=-2
"." float
"eE" epart
"0-7" octal recolor=-2
"89" bad_number recolor=-1
:bad_number Bad
* idle noeat
"0-9" bad_number
:octal Number
* idle noeat
"0-7" octal
"89" bad_number recolor=-1
:hex Number
* idle noeat
"0-9A-Fa-f" hex
:decimal Number
* idle noeat
"0-9" decimal
"eE" epart
"." float
:maybe_float Number
* idle recolor=-2 noeat
"0-9" float recolor=-2
:float Number
* idle noeat
"eE" epart
"0-9" float
:epart Number
* idle noeat
"0-9+\-" enum
:enum Number
* idle noeat
"0-9" enum
:string String string
* string
"\"" idle
"\\" string_escape recolor=-1
"%" string_control recolor=-1
: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 StringEscape string
* string noeat
"0-9a-fA-F" string_hex
:string_octal2 StringEscape string
* string noeat
"0-7" string_octal3
:string_octal3 StringEscape string
* string noeat
"0-7" string
:string_control StringEscape string
* string
"\"" string noeat
"\n" reset
"\\" string_escape recolor=-1
"0-9.\-+ #hjILtz$" string_control
:char Character string
* char
"\n" reset
"'" idle
"\\" char_escape recolor=-1
: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 CharacterEscape string
* char noeat
"0-9a-fA-F" char_hex
:char_octal2 CharacterEscape string
* char noeat
"0-7" char_octal3
:char_octal3 CharacterEscape string
* char noeat
"0-7" char
:ident Ident
* idle noeat strings
"int" type
"float" type
"long" type
"short" type
"char" type
"double" type
"signed" type
"unsigned" type
"void" type
"static" storage
"register" storage
"extern" storage
"inline" type
"auto" storage
"const" storage
"volatile" storage
"if" cond
"else" cond
"while" loop
"for" loop
"break" stmt
"continue" stmt
"do" loop
"case" label
"default" label
"switch" cond
"goto" stmt
"struct" struct
"enum" struct
"return" stmt
"sizeof" kw
"typedef" struct
"union" struct
"asm" kw
# C++ keywords
#"asm" cppkw (listed above as a C keyword)
"bool" cppkw
"catch" cppkw
"class" struct
"const_cast" cppkw
"delete" cppkw
"dynamic_cast" 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
:label Label
* idle noeat
:loop Loop
* idle noeat
:stmt Statement
* idle noeat
:storage StorageClass
* idle noeat
:cond Conditional
* idle noeat
:struct Structure
* idle noeat

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,697 @@
# JOE syntax highlight file for COBOL
=Idle
=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 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
:idle Idle
* idle
"\n" reset
"0" first_digit recolor=-1
"1-9" decimal recolor=-1
"." maybe_float
"\"" string recolor=-1
"'" char recolor=-1
"a-zA-Z_" ident buffer
:first_digit Number
* 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 Number
* idle noeat
"0-7" octal
"89" bad_number recolor=-1
:hex Number
* idle noeat
"0-9A-Fa-f" hex
:decimal Number
* idle noeat
"0-9" decimal
"eE" epart
"." float
:maybe_float Number
* idle recolor=-2 noeat
"0-9" float recolor=-2
:float Number
* idle noeat
"eE" epart
"0-9" float
:epart Number
* idle noeat
"0-9+\-" enum
:enum Number
* idle noeat
"0-9" enum
:string String string
* string
"\"" idle
"\\" string_escape recolor=-1
"%" string_control recolor=-1
:string_escape StringEscape string
* string
"x" string_hex1
"0-7" string_octal2
"\n" string recolor=-2
:string_hex1 StringEscape string
* string noeat
"0-9a-fA-F" string_hex2
:string_hex2 StringEscape string
* string noeat
"0-9a-fA-F" string
:string_octal2 StringEscape string
* string noeat
"0-7" string_octal3
:string_octal3 StringEscape string
* string noeat
"0-7" string
:string_control StringEscape string
* string_control
"\n" reset
"diouxXeEfFgGaAcspn%SC" string
:char Character string
* char
"\n" reset
"'" idle
"\\" char_escape recolor=-1
:char_escape CharacterEscape string
* char
"x" char_hex1
"0-7" char_octal2
"\n" char recolor=-2
:char_hex1 CharacterEscape string
* char noeat
"0-9a-fA-F" char_hex2
:char_hex2 CharacterEscape string
* char noeat
"0-9a-fA-F" char
:char_octal2 CharacterEscape string
* char noeat
"0-7" char_octal3
:char_octal3 CharacterEscape string
* char noeat
"0-7" char
:ident Ident
* idle noeat istrings
"accept" kw
"access" kw
"add" kw
"address" kw
"advancing" kw
"after" kw
"all" kw
"allowing" kw
"alphabet" kw
"alphabetic" kw
"alphabetic-lower" kw
"alphabetic-upper" kw
"alphanumeric" kw
"alphanumeric-edited" kw
"also" kw
"alter" kw
"alternate" kw
"and" oper
"any" kw
"apply" kw
"are" kw
"area" kw
"areas" kw
"arithmetic" kw
"ascending" kw
"assign" kw
"at" kw
"author" kw
"automatic" kw
"b-and" oper
"b-exor" oper
"b-less" oper
"b-not" oper
"b-or" oper
"basis" kw
"before" kw
"beginning" kw
"binary" kw
"bit" kw
"bits" kw
"blank" kw
"block" kw
"boolean" kw
"bottom" kw
"by" kw
"call" kw
"cancel" kw
"cbl" kw
"cd" kw
"cf" kw
"ch" kw
"character" kw
"characters" kw
"class" kw
"class-id" kw
"clock-units" kw
"close" kw
"cobol" kw
"code" kw
"code-set" kw
"collating" kw
"column" kw
"com-reg" kw
"comma" kw
"commit" kw
"common" kw
"communication" kw
"comp" kw
"comp-1" kw
"comp-2" kw
"comp-3" kw
"comp-4" kw
"comp-5" kw
"comp-6" kw
"comp-7" kw
"comp-8" kw
"comp-9" kw
"computational" kw
"computational-1" kw
"computational-2" kw
"computational-3" kw
"computational-4" kw
"computational-5" kw
"computational-6" kw
"computational-7" kw
"computational-8" kw
"computational-9" kw
"compute" kw
"configuration" kw
"connect" kw
"contained" kw
"contains" kw
"content" kw
"continue" kw
"control" kw
"controls" kw
"converting" kw
"copy" kw
"corr" kw
"corresponding" kw
"count" kw
"currency" kw
"current" kw
"cycle" kw
"data" kw
"date" kw
"date-compiled" kw
"date-written" kw
"day" kw
"day-of-week" kw
"db" kw
"db-access-control-key" kw
"db-data-name" kw
"db-exception" kw
"db-record-name" kw
"db-set-name" kw
"db-status" kw
"dbcs" kw
"de" kw
"debug-contents" kw
"debug-item" kw
"debug-line" kw
"debug-name" kw
"debug-sub-1" kw
"debug-sub-2" kw
"debug-sub-3" kw
"debugging" kw
"decimal-point" kw
"declaratives" kw
"default" kw
"delete" kw
"delimited" kw
"delimiter" kw
"depending" kw
"descending" kw
"destination" kw
"detail" kw
"disable" kw
"disconnect" kw
"display" kw
"display-1" kw
"display-2" kw
"display-3" kw
"display-4" kw
"display-5" kw
"display-6" kw
"display-7" kw
"display-8" kw
"display-9" kw
"divide" kw
"division" kw
"down" kw
"duplicate" kw
"duplicates" kw
"dynamic" kw
"egcs" kw
"egi" kw
"eject" kw
"else" cond
"emi" kw
"empty" kw
"enable" kw
"end" kw
"end-add" kw
"end-call" kw
"end-compute" kw
"end-delete" kw
"end-disable" kw
"end-divide" kw
"end-enable" kw
"end-evaluate" kw
"end-if" cond
"end-invoke" kw
"end-multiply" kw
"end-of-page" kw
"end-perform" kw
"end-read" kw
"end-receive" kw
"end-return" kw
"end-rewrite" kw
"end-search" kw
"end-send" kw
"end-start" kw
"end-string" kw
"end-subtract" kw
"end-transceive" kw
"end-unstring" kw
"end-write" kw
"ending" kw
"enter" kw
"entry" kw
"environment" kw
"eop" kw
"equal" oper
"equals" kw
"erase" kw
"error" kw
"esi" kw
"evaluate" kw
"every" kw
"exact" kw
"exceeds" kw
"exception" kw
"exclusive" kw
"exit" kw
"extend" kw
"external" kw
"false" bool
"fd" kw
"fetch" kw
"file" kw
"file-control" kw
"filler" kw
"final" kw
"find" kw
"finish" kw
"first" kw
"footing" kw
"for" kw
"form" kw
"format" kw
"free" kw
"from" kw
"function" kw
"generate" kw
"get" kw
"giving" kw
"global" kw
"go" kw
"goback" kw
"greater" oper
"group" kw
"heading" kw
"high-value" const
"high-values" const
"i-o" kw
"i-o-control" kw
"id" kw
"identification" kw
"if" cond
"in" oper
"index" kw
"index-1" kw
"index-2" kw
"index-3" kw
"index-4" kw
"index-5" kw
"index-6" kw
"index-7" kw
"index-8" kw
"index-9" kw
"indexed" kw
"indicate" kw
"inherits" kw
"initial" kw
"initialize" kw
"initiate" kw
"input" kw
"input-output" kw
"insert" kw
"inspect" kw
"installation" kw
"into" kw
"invalid" kw
"invoke" kw
"is" oper
"just" kw
"justified" kw
"kanji" kw
"keep" kw
"key" kw
"label" kw
"last" kw
"ld" kw
"leading" kw
"left" kw
"length" kw
"less" oper
"limit" kw
"limits" kw
"linage" kw
"linage-counter" kw
"line" kw
"line-counter" kw
"lines" kw
"linkage" kw
"locally" kw
"local-storage" kw
"lock" kw
"low-value" const
"low-values" const
"member" kw
"memory" kw
"merge" kw
"message" kw
"metaclass" kw
"method" kw
"method-id" kw
"mode" kw
"modify" kw
"modules" kw
"more-labels" kw
"move" kw
"multiple" kw
"multiply" kw
"native" kw
"negative" kw
"next" kw
"no" kw
"normal" kw
"not" oper
"null" const
"nulls" const
"number" kw
"numeric" kw
"numeric-edited" kw
"object" kw
"object-computer" kw
"occurs" kw
"of" kw
"off" kw
"omitted" kw
"on" kw
"only" kw
"open" kw
"optional" kw
"or" oper
"order" kw
"organization" kw
"other" kw
"output" kw
"overflow" kw
"override" kw
"owner" kw
"packed-decimal" kw
"padding" kw
"page" kw
"page-counter" kw
"paragraph" kw
"password" kw
"perform" kw
"pf" kw
"ph" kw
"pic" kw
"picture" kw
"plus" kw
"pointer" kw
"position" kw
"positive" kw
"present" kw
"previous" kw
"printing" kw
"prior" kw
"procedure" kw
"procedure-pointer" kw
"procedures" kw
"proceed" kw
"processing" kw
"program" kw
"program-id" kw
"protected" kw
"purge" kw
"queue" kw
"quote" const
"quotes" const
"random" kw
"rd" kw
"read" kw
"ready" kw
"realm" kw
"receive" kw
"reconnect" kw
"record" kw
"record-name" kw
"recording" kw
"records" kw
"recursive" kw
"redefines" kw
"reel" kw
"reference" kw
"references" kw
"relation" kw
"relative" kw
"release" kw
"reload" kw
"remainder" kw
"removal" kw
"renames" kw
"repeated" kw
"replace" kw
"replacing" kw
"report" kw
"reporting" kw
"reports" kw
"repository" kw
"rerun" kw
"reserve" kw
"reset" kw
"retaining" kw
"retrieval" kw
"return" kw
"return-code" kw
"returning" kw
"reversed" kw
"rewind" kw
"rewrite" kw
"rf" kw
"rh" kw
"right" kw
"rollback" kw
"rounded" kw
"run" kw
"same" kw
"sd" kw
"search" kw
"section" kw
"security" kw
"segment" kw
"segment-limit" kw
"select" kw
"self" kw
"send" kw
"sentence" kw
"separate" kw
"sequence" kw
"sequential" kw
"service" kw
"session-id" kw
"set" kw
"shared" kw
"shift-in" kw
"shift-out" kw
"sign" kw
"size" kw
"skip1" kw
"skip2" kw
"skip3" kw
"sort" kw
"sort-control" kw
"sort-core-size" kw
"sort-file-size" kw
"sort-merge" kw
"sort-message" kw
"sort-mode-size" kw
"sort-return" kw
"source" kw
"source-computer" kw
"space" const
"spaces" const
"special-names" kw
"standard" kw
"standard-1" kw
"standard-2" kw
"standard-3" kw
"standard-4" kw
"start" kw
"status" kw
"stop" kw
"store" kw
"string" kw
"sub-queue-1" kw
"sub-queue-2" kw
"sub-queue-3" kw
"sub-schema" kw
"subtract" kw
"sum" kw
"super" kw
"suppress" kw
"symbolic" kw
"sync" kw
"synchronized" kw
"table" kw
"tally" kw
"tallying" kw
"tape" kw
"tenant" kw
"terminal" kw
"terminate" kw
"test" kw
"text" kw
"than" oper
"then" kw
"through" kw
"thru" loop
"time" kw
"timeout" kw
"times" loop
"title" kw
"to" oper
"top" kw
"trace" kw
"trailing" kw
"transceive" kw
"true" bool
"type" kw
"unequal" kw
"unit" kw
"unstring" kw
"until" loop
"up" kw
"update" kw
"upon" kw
"usage" kw
"usage-mode" kw
"use" kw
"using" kw
"valid" kw
"validate" kw
"value" kw
"values" kw
"varying" loop
"wait" kw
"when" kw
"when-compiled" kw
"with" kw
"within" kw
"words" kw
"working-storage" kw
"write" kw
"write-only" kw
"zero" const
"zeroes" const
"zeros" const
done
"a-zA-Z0-9_\-" ident
:kw Keyword
* idle noeat
:oper Operator
* idle noeat
:loop Loop
* idle noeat
:cond Conditional
* idle noeat
:const Constant
* idle noeat
:bool Boolean
* idle noeat

View file

@ -0,0 +1,580 @@
# JOE syntax highlight file for Coffeescript
# node = a.b.c /\s+/ seems to be allowed, foo
# need to recognize ... and ..
# include - as part of number?
# after term: it's a regex if
# suppress literals after .
=Idle
=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()
.subr coffee
:idle Idle
* idle
"(" idle call=.coffee(paren)
"[" idle call=.coffee(brack)
"{" idle call=.coffee(squiggly)
.ifdef paren
")" idle return
.else
")" stray recolor=-1
.endif
.ifdef brack
"]" idle return
.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
"." decimal_point recolor=-1
"\"" maybe_string recolor=-1
"'" maybe_char recolor=-1
"/" slash recolor=-1
"@$\i" ident buffer
:stray Bad
* idle
:after_term Idle
* idle noeat
" \t" after_term_1
"/" slash_after_term_0
# "foo/x" is division?
# "foo/ x" is division.
:slash_after_term_0 Idle
* idle noeat
:after_term_1 Idle
* idle noeat
" \t" after_term_1
"/" slash_after_term_1
# "foo / x" is division
# "foo /x" is regex
:slash_after_term_1 Idle
* sregex noeat recolor=-2
"/" slashslash
" = " idle noeat
:comment Comment comment
* line_comment noeat
"#" maybe_block_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 comment
* block_comment noeat
"#" line_comment
:line_comment Comment comment
* line_comment
"BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" idle
:block_comment Comment comment
* block_comment
"BFHNTX" block_comment noeat call=comment_todo.comment_todo()
"#" block_comment_1
:block_comment_1 Comment comment
* block_comment noeat
"#" block_comment_2
:block_comment_2 Comment comment
* block_comment noeat
"#" idle
# Check for regex
:slash Constant
* sregex noeat recolor=-2
"/" slashslash
:slashslash Constant
* after_term noeat
"/" regex recolor=-3
# Regex like this ///foo///
:regex Regex
* regex
"\\" regex_escape recolor=-1
"#" regex_maybe_subst recolor=-1
"/" regexslash
:regex_maybe_subst RegexVariable
* regex noeat recolor=-1
"{" regex call=.coffee(squiggly_regex)
:regex_end_subst RegexVariable
* idle return
:regexslash Regex
* regex noeat
"/" regexslashslash
:regexslashslash Regex
* regex noeat
"/" after_term
:regex_escape RegexEscape
* regex
"x" regex_hex2
"u" regex_hex4
:regex_uni RegexEscape
* regex_uni
"}" regex
:regex_hex4 RegexEscape
* regex noeat
"{" regex_uni
"0-9a-fA-F" regex_hex3
:regex_hex3 RegexEscape
* regex noeat
"0-9a-fA-F" regex_hex2
:regex_hex2 RegexEscape
* regex noeat
"0-9a-fA-F" regex_hex1
:regex_hex1 RegexEscape
* regex noeat
"0-9a-fA-F" regex
# Regex like this: /foo/
:sregex Regex
* sregex
"\\" sregex_escape recolor=-1
"#" sregex_maybe_subst recolor=-1
"/" after_term
:sregex_maybe_subst RegexVariable
* sregex noeat recolor=-1
"{" sregex call=.coffee(squiggly_regex)
:sregex_escape RegexEscape
* sregex
"x" sregex_hex2
"u" sregex_hex4
:sregex_uni RegexEscape
* sregex_uni
"}" sregex
:sregex_hex4 RegexEscape
* sregex noeat
"{" sregex_uni
"0-9a-fA-F" sregex_hex3
:sregex_hex3 RegexEscape
* sregex noeat
"0-9a-fA-F" sregex_hex2
:sregex_hex2 RegexEscape
* sregex noeat
"0-9a-fA-F" sregex_hex1
:sregex_hex1 RegexEscape
* sregex noeat
"0-9a-fA-F" sregex
# Numbers
:bad_number Bad
* after_term noeat
"0-9" bad_number
:zero Number
* after_term noeat
"b" binary
"o" octal
"x" hex
"." maybe_float
"eE" epart
"0-9" decimal recolor=-1
:decimal_point Number
* after_term noeat recolor=-2
"." decimal_point_1 recolor=-2
"\i" not_ident recolor=-2
"0-9" float
:not_ident Idle
* after_term noeat
"\c" not_ident
:decimal_point_1 Number
* idle noeat
"." idle
:octal Number
* after_term noeat
"0-7_" octal
"89" bad_number recolor=-1
:binary Number
* after_term noeat
"01_" binary
"2-9" bad_number recolor=-1
:hex Number
* after_term noeat
"0-9A-Fa-f_" hex
:decimal Number
* after_term noeat
"0-9_" decimal
"eE" epart
"." maybe_float
:maybe_float Number
* after_term noeat recolor=-2
"." decimal_point_1 recolor=-2
"eE" epart
"0-9_" float
:float Number
* after_term noeat
"eE" epart
"0-9_" float
:epart Number
* after_term noeat
"0-9+\-" enum
:enum Number
* after_term noeat
"0-9_" enum
# strings like "hello"
:maybe_string String string
* string noeat
"\"" maybe_string_1
:maybe_string_1 String string
* after_term noeat
"\"" stringstring
:string String string
* string
"\"" after_term
"#" string_maybe_subst recolor=-1
"\\" string_escape recolor=-1
:string_maybe_subst StringVariable string
* string noeat recolor=-1
"{" string call=.coffee(squiggly_str)
:string_end_subst StringVariable string
* idle return
:string_escape StringEscape string
* string
"x" string_hex2
"u" string_hex4
:string_uni StringEscape string
* string_uni
"}" string
:string_hex4 StringEscape string
* string noeat
"{" string_uni
"0-9a-fA-F" string_hex3
:string_hex3 StringEscape string
* string noeat
"0-9a-fA-F" string_hex2
:string_hex2 StringEscape string
* string noeat
"0-9a-fA-F" string_hex1
:string_hex1 StringEscape string
* string noeat
"0-9a-fA-F" string
# Strings like """ foo """
:stringstring String string
* stringstring
"\"" stringstring_1
"#" stringstring_maybe_subst recolor=-1
"\\" stringstring_escape recolor=-1
:stringstring_1 String string
* stringstring noeat
"\"" stringstring_2
:stringstring_2 String string
* stringstring noeat
"\"" after_term
:stringstring_maybe_subst StringVariable string
* stringstring noeat recolor=-1
"{" stringstring call=.coffee(squiggly_str)
:stringstring_escape StringEscape string
* stringstring
"x" stringstring_hex2
"u" stringstring_hex4
:stringstring_uni StringEscape string
* stringstring_uni
"}" stringstring
:stringstring_hex4 StringEscape string
* stringstring noeat
"{" stringstring_uni
"0-9a-fA-F" stringstring_hex3
:stringstring_hex3 StringEscape string
* stringstring noeat
"0-9a-fA-F" stringstring_hex2
:stringstring_hex2 StringEscape string
* stringstring noeat
"0-9a-fA-F" stringstring_hex1
:stringstring_hex1 StringEscape string
* stringstring noeat
"0-9a-fA-F" stringstring
# string constants like 'h'
:maybe_char String string
* char noeat
"'" maybe_char_1
:maybe_char_1 String string
* after_term noeat
"'" charchar
:char String string
* char
"'" after_term
"\\" char_escape recolor=-1
:char_escape StringEscape string
* char noeat
"x" char_hex2
"u" char_hex4
:char_uni StringEscape string
* char_uni
"}" char_done
:char_hex4 StringEscape string
* char noeat
"{" char_uni
"0-9a-fA-F" char_hex3
:char_hex3 StringEscape string
* char noeat
"0-9a-fA-F" char_hex2
:char_hex2 StringEscape string
* char noeat
"0-9a-fA-F" char_hex1
:char_hex1 StringEscape string
* char noeat
"0-9a-fA-F" char
# strings like this '''foo'''
:charchar String string
* charchar
"'" charchar_1
"\\" charchar_escape recolor=-1
:charchar_1 String string
* charchar noeat
"'" charchar_2
:charchar_2 String string
* charchar noeat
"'" after_term
:charchar_escape StringEscape string
* charchar noeat
"x" charchar_hex2
"u" charchar_hex4
:charchar_uni StringEscape string
* charchar_uni
"}" charchar_done
:charchar_hex4 StringEscape string
* charchar noeat
"{" charchar_uni
"0-9a-fA-F" charchar_hex3
:charchar_hex3 StringEscape string
* charchar noeat
"0-9a-fA-F" charchar_hex2
:charchar_hex2 StringEscape string
* charchar noeat
"0-9a-fA-F" charchar_hex1
:charchar_hex1 StringEscape string
* charchar noeat
"0-9a-fA-F" charchar
# Identifiers
:ident Ident
* after_term noeat strings
"and" operator
"break" loop
"by" kw
"catch" kw
"class" struct
"continue" loop
"delete" kw
"debugger" stmt
"do" loop
"else" cond
"extends" kw
"false" bool
"finally" kw
"for" loop
"if" cond
"in" operator
"instanceof" kw
"is" operator
"isnt" operator
"loop" loop
"new" kw
"no" bool
"not" operator
"null" lit
"off" bool
"of" operator
"on" bool
"or" operator
"return" stmt
"super" kw
"switch" cond
"then" kw
"this" lit
"throw" stmt
"true" bool
"try" kw
"typeof" kw
"undefined" lit
"unless" cond
"until" loop
"when" kw
"while" loop
"yes" lit
"yield" stmt
"case" label
"default" label
"function" forbid
"var" forbid
"void" forbid
"with" forbid
"const" forbid
"let" forbid
"enum" forbid
"export" forbid
"import" forbid
"native" forbid
"implements" forbid
"interface" forbid
"package" forbid
"private" forbid
"protected" forbid
"public" forbid
"static" forbid
"arguments" forbid
"eval" forbid
done
"$\c" ident
:kw Keyword
* idle noeat
:forbid Keyword
* idle noeat
: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

View file

@ -0,0 +1,29 @@
# JOE syntax highlight file for highlighting TODO: FIXME: XXX: etc
# by Christian Nicolai (http://mycrobase.de)
=Comment
=TODO +Comment
.subr comment_todo
# initial state
:comment_todo_init Comment comment
* comment_todo_guess buffer
# highlight common TODO labels
:comment_todo_guess Comment comment
* comment_todo_unknown noeat strings
"BUG" comment_todo
"FIXME" comment_todo
"HACK" comment_todo
"NOTE" comment_todo
"TODO" comment_todo
"XXX" comment_todo
done
"A-Z" comment_todo_guess
:comment_todo_unknown Comment comment
* NULL noeat return
:comment_todo TODO comment
* NULL noeat return
.end

View file

@ -0,0 +1,86 @@
# JOE syntax highlight file for typical UNIX configuration files
=Idle
=Comment
=String +Constant
=Escape
=StringEscape +Escape
=Backtick +Character +Constant +String
:idle Idle
* idle
"#" comment recolor=-1
"\"" string recolor=-1
"'" single recolor=-1
"\`" backtick recolor=-1
"\\" escape recolor=-1
:escape Escape
* idle
:comment Comment comment
* comment
"\n" idle
:string String string
* string
"\"" idle
"\`" backtick_in_str recolor=-1
"\\" string_escape recolor=-1
:string_escape StringEscape string
* string
"\n" string recolor=-2
:backtick_in_str Backtick
* backtick_in_str
"\`" string
"\\" bt_escape_2 recolor=-1
:bt_escape_2 Escape
* backtick_in_str
"\n" backtick_in_str recolor=-2
:single String string
* single
"'" idle
"\\" single_escape recolor=-1
:single_escape StringEscape string
* single
"\n" single recolor=-2
:backtick Backtick
* backtick
"\`" idle
"\"" string_in_bt recolor=-1
"'" single_in_bt recolor=-1
"\\" bt_escape recolor=-1
:bt_escape Escape
* backtick
"\n" backtick recolor=-2
:string_in_bt String string
* string_in_bt
"\"" backtick
"\\" string_escape_b recolor=-1
:string_escape_b StringEscape string
* string_in_bt
"\n" string_in_bt recolor=-2
:single_in_bt String string
* single_in_bt
"'" backtick
"\\" single_escape_b recolor=-1
:single_escape_b StringEscape string
* single_in_bt
"\n" single_in_bt recolor=-2

View file

@ -0,0 +1,61 @@
# Identify title lines for status line context display
=Idle
=Title bold # Doesn't matter, just make it visible
:idle Idle
* title_line buffer noeat recolor=-1
"b" maybe_begin_1 buffer
"B" maybe_BEGIN_1 buffer
"\n" idle
"/" maybe_comment buffer
"-" maybe_comment_1 buffer
";{} \t\r\f#" comment
:maybe_comment Idle
* title_line noeat recolor=-1
"/*" comment
:maybe_comment_1 Idle
* title_line noeat recolor=-1
"-" comment
:title_line Title
* title_line
"\n" idle save_s
:comment Idle
* comment
"\n" idle
:maybe_begin_1 Idle
* title_line noeat recolor=-2
"e" maybe_begin_2
:maybe_begin_2 Idle
* title_line noeat recolor=-3
"g" maybe_begin_3
:maybe_begin_3 Idle
* title_line noeat recolor=-4
"i" maybe_begin_4
:maybe_begin_4 Idle
* title_line noeat recolor=-5
"n" comment
:maybe_BEGIN_1 Idle
* title_line noeat recolor=-2
"E" maybe_BEGIN_2
:maybe_BEGIN_2 Idle
* title_line noeat recolor=-3
"G" maybe_BEGIN_3
:maybe_BEGIN_3 Idle
* title_line noeat recolor=-4
"I" maybe_BEGIN_4
:maybe_BEGIN_4 Idle
* title_line noeat recolor=-5
"N" comment

View file

@ -0,0 +1,248 @@
# JOE syntax highlight file for csh
# needs work: I just copied this from sh and
# changed the keywords.
# Colors
=Idle
=Ident
=Comment
=String +Constant
=Escape
=StringEscape +Escape
=Keyword
=Variable +DefinedIdent
=StringVariable +StringEscape
=Label +DefinedIdent
=Loop +Statement +Keyword
=Conditional +Statement +Keyword
# Syntax
:idle Idle
* idle
"#" comment recolor=-1
"\\" escape recolor=-1
"$" subst recolor=-1
"'" string_sq recolor=-1
"\"" string_dq recolor=-1
"\`" string_bq recolor=-1
"a-zA-Z{}![" ident buffer
:comment Comment comment
* comment
"\n" idle
:escape Escape
* idle
:subst Variable
* idle
"{" subst_brack
"a-zA-Z_" subst_name
"0-9*@?\-$_!" idle
:subst_name Variable
* idle noeat recolor=-1
"a-zA-Z0-9_" subst_name
:subst_brack Variable
* subst_brack
"}" idle
# Simplest case: no quoting allowed
:string_sq String string
* string_sq
"\'" idle
# double-quote: quoting, backqoutes and substitution allowed
: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 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 StringVariable string
* string_dq recolor=-1 noeat
"a-zA-Z0-9_" string_dq_subst_name
:string_dq_subst_brack StringEscape string
* string_dq_subst_brack
"}" string_dq
:string_dq_esc StringEscape string
* string_dq recolor=-2
"$`\"\\" string_dq
"\n" string_dq recolor=-2
: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 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 StringVariable string
* string_dq_bq recolor=-1 noeat
"a-zA-Z0-9_" string_dq_bq_subst_name
:string_dq_bq_subst_brack StringEscape string
* string_dq_bq_subst_brack
"}" string_dq_bq
:string_dq_bq_esc StringEscape string
* string_dq_bq recolor=-2
"$`\"\\" string_dq_bq
"\n" string_dq_bq recolor=-2
# backquote
:string_bq String string
* string_bq
"$" string_bq_subst recolor=-1
"\`" idle
"\\" string_bq_esc recolor=-1
# escape in backquote
:string_bq_esc StringEscape string
* string_bq recolor=-2
"$`\"\\" string_bq
"\n" string_bq recolor=-2
# Substitution in a backquote
: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 StringVariable string
* string_bq recolor=-1 noeat
"a-zA-Z0-9_" string_bq_subst_name
:string_bq_subst_brack StringEscape string
* string_bq_subst_brack
"}" string_bq
:ident Ident
* idle noeat strings
"!" kw
"{" kw
"}" kw
"[" kw
"]" kw
"alias" kw
"alloc" kw
"bg" kw
"bindkey" kw
"break" loop
"breaksw" kw
"builtins" kw
"bye" kw
"case" label
"cd" kw
"chdir" kw
"complete" kw
"continue" loop
"default" label
"dirs" kw
"echo" kw
"echotc" kw
"else" cond
"end" kw
"endif" cond
"endsw" kw
"eval" kw
"exec" kw
"exit" kw
"fg" kw
"filetest" kw
"foreach" loop
"getspath" kw
"getxvers" kw
"glob" kw
"goto" kw
"hashstat" kw
"history" kw
"hup" kw
"if" cond
"inlib" kw
"jobs" kw
"kill" kw
"limit" kw
"log" kw
"login" kw
"logout" kw
"ls-F" kw
"migrate" kw
"newgrp" kw
"nice" kw
"nohup" kw
"notify" kw
"onintr" kw
"popd" kw
"printenv" kw
"pushd" kw
"rehash" kw
"repeat" kw
"rootnode" kw
"sched" kw
"set" kw
"setenv" kw
"setpath" kw
"setspath" kw
"settc" kw
"setty" kw
"setxvers" kw
"shift" kw
"source" kw
"stop" kw
"suspend" kw
"switch" cond
"case" label
"telltc" kw
"time" kw
"umask" kw
"unalias" kw
"uncomplete" kw
"unhash" kw
"universe" kw
"unlimit" kw
"unset" kw
"unsetenv" kw
"ver" kw
"wait" kw
"warp" kw
"watchdog" kw
"where" kw
"which" 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

View file

@ -0,0 +1,506 @@
# JOE syntax highlight file for C#
# Based on Java highlighter
=Idle
=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
* begin noeat call=.csharp()
.subr csharp
:reset Idle
* first noeat
" \t" reset
:first Idle
* idle noeat
"#" pre mark
:pre Preproc
* pre noeat
"a-zA-Z" preident recolor=-1 buffer
" \t" pre
"\n" reset
:preident Preproc
* 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
:prebody Preproc
* prebody
"\n" reset
:precondit Precondit
* precondit
"\n" reset
:preregion Preproc
* preregion_text
"\n" reset
:preregion_text Comment
* preregion_text
"\n" reset
:predefine Define
* predefine_text noeat
" \t" predefine
"\n" reset
:predefine_text DefinedIdent
* predefine_text
" \t" predefine_value
"\n" reset
:predefine_value Idle
* predefine_value
"\n" reset
:preunknown Preproc
* preunknown
"\n" reset
:idle Idle
* idle
"\n" reset
"/" slash
"0" first_digit recolor=-1
"1-9" decimal recolor=-1
"." maybe_float
"\"" string recolor=-1
"@" forcedliteral recolor=-1
"'" char recolor=-1
"\i" ident buffer
"{}" brace recolor=-1
",:;=()><[]*&|!~+\-%^" control recolor=-1
:maybe_done Control
* idle noeat
"/" idle noeat return recolor=-2
:brace Brace
* idle noeat
:control Control
* idle noeat
:forcedliteral Ident
* idle noeat
"\i" ident recolor=-2
"\"" forcedstring recolor=-2
:forcedstring String string
* forcedstring
"\"" forcedstringquot
:forcedstringquot String string
* idle noeat
"\"" forcedstring # @"This -> "" <- is a literal quote"
:slash Idle
* idle noeat
"*" comment recolor=-2
"/" maybe_line_comment recolor=-2
:comment Comment
* comment
"BFHNTX" comment noeat call=comment_todo.comment_todo()
"*" maybe_end_comment
:maybe_end_comment Comment
* comment
"/" idle
"*" maybe_end_comment
:maybe_line_comment Comment
* line_comment noeat recolor=-1
"/" doc_comment recolor=-3
: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 Number
* 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 Number
* idle noeat
"0-7" octal
"89" bad_number recolor=-1
:hex Number
* idle noeat
"0-9A-Fa-f" hex
:decimal Number
* idle noeat
"0-9" decimal
"eE" epart
"." float
:maybe_float Number
* idle recolor=-2 noeat
"0-9" float recolor=-2
:float Number
* idle noeat
"eE" epart
"0-9" float
:epart Number
* idle noeat
"0-9+\-" enum
:enum Number
* idle noeat
"0-9" enum
:string String string
* string
"\"" idle
"\\" string_escape recolor=-1
"{" maybe_string_control recolor=-1
"}" maybe_control_end recolor=-1
:string_escape StringEscape string
* string
"xu" string_hex_4 # Yes, \x has up to 4 numbers in C#
"U" string_hex_8
"0-7" string_octal2
"\n" string recolor=-2
# Eight all-purpose (hex/unicode short/unicode long) states for hexadecimal
# escape sequences
:string_hex_8 StringEscape string
* string noeat
"0-9a-fA-F" string_hex_7
:string_hex_7 StringEscape string
* string noeat
"0-9a-fA-F" string_hex_6
:string_hex_6 StringEscape string
* string noeat
"0-9a-fA-F" string_hex_5
:string_hex_5 StringEscape string
* string noeat
"0-9a-fA-F" string_hex_4
:string_hex_4 StringEscape string
* string noeat
"0-9a-fA-F" string_hex_3
:string_hex_3 StringEscape string
* string noeat
"0-9a-fA-F" string_hex_2
:string_hex_2 StringEscape string
* string noeat
"0-9a-fA-F" string_hex_1
:string_hex_1 StringEscape string
* string noeat
"0-9a-fA-F" string
:string_octal2 StringEscape string
* string noeat
"0-7" string_octal3
:string_octal3 StringEscape string
* string noeat
"0-7" string
:maybe_string_control StringEscape string
* string noeat recolor=-2
"0-9" string_control
"{" string
:string_control StringEscape string
* string_control
"\"" string noeat
"}" string
:maybe_control_end StringEscape string
* string noeat recolor=-2
"}" string
:char Character string
* char
"\n" reset
"'" idle
"\\" char_escape recolor=-1
:char_escape CharacterEscape string
* char
"xu" char_hex4
"U" char_hex8
"0-7" char_octal2
"\n" char recolor=-2
:char_hex8 CharacterEscape string
* char noeat
"0-9a-fA-F" char_hex7
:char_hex7 CharacterEscape string
* char noeat
"0-9a-fA-F" char_hex6
:char_hex6 CharacterEscape string
* char noeat
"0-9a-fA-F" char_hex5
:char_hex5 CharacterEscape string
* char noeat
"0-9a-fA-F" char_hex4
:char_hex4 CharacterEscape string
* char noeat
"0-9a-fA-F" char_hex3
:char_hex3 CharacterEscape string
* char noeat
"0-9a-fA-F" char_hex2
:char_hex2 CharacterEscape string
* char noeat
"0-9a-fA-F" char_hex1
:char_hex1 CharacterEscape string
* char noeat
"0-9a-fA-F" char
:char_octal2 CharacterEscape string
* char noeat
"0-7" char_octal3
:char_octal3 CharacterEscape string
* char noeat
"0-7" char
:ident Ident # http://msdn.microsoft.com/en-us/library/x53a06bb.aspx
* idle noeat strings
"abstract" modifier
"as" operator
"base" kw
"break" loop
"case" label
"catch" stmt
"checked" operator
"class" struct
"const" storage
"continue" loop
"default" label
"delegate" kw
"do" loop
"else" cond
"enum" struct
"event" kw
"explicit" kw
"extern" modifier
"finally" stmt
"fixed" kw
"for" loop
"foreach" loop
"goto" loop
"if" cond
"implicit" kw
"in" operator
"interface" struct
"internal" modifier
"is" operator
"lock" stmt
"nameof" kw
"namespace" struct
"new" operator
"operator" kw
"out" storage
"override" storage
"params" kw
"private" modifier
"protected" modifier
"public" modifier
"readonly" modifier
"ref" storage
"return" stmt
"sealed" modifier
"sizeof" operator
"stackalloc" storage
"static" modifier
"struct" struct
"switch" cond
"this" kw
"throw" stmt
"try" stmt
"typeof" operator
"unchecked" operator
"unsafe" kw
"using" stmt
"virtual" modifier
"volatile" modifier
"while" loop
# Types
"bool" type
"Boolean" type
"byte" type
"Byte" type
"char" type
"Character" type
"decimal" type
"double" type
"Double" type
"float" type
"Float" type
"int" type
"Integer" type
"int16" type
"Int16" type
"int32" type
"Int32" type
"int64" type
"Int64" type
"IntPtr" type
"long" type
"object" type
"Object" type
"sbyte" type
"short" type
"string" type
"String" type
"uint" type
"uint16" type
"uint32" type
"uint64" type
"ulong" type
"ushort" type
"void" type
# These are "contextual" keywords. Should try to do a better and
# and find the context (most are LINQ), but it may not be possible
# in all cases:
"add" kw
"alias" kw
"ascending" kw
"async" kw
"await" kw
"descending" kw
"dynamic" type
"from" kw
"get" kw
"global" kw
"group" kw
"into" kw
"join" kw
"let" kw
"orderby" kw
"partial" kw
"remove" kw
"select" kw
"set" kw
"value" kw
"var" type
"where" kw
"yield" kw
# Literals
"true" bool
"false" bool
"null" lit
done
"\c" ident
:type Type
* idle noeat
: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
:operator Operator
* idle noeat
.end

View file

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

View file

@ -0,0 +1,560 @@
# JOE syntax highlight file for D
=Idle
=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
:begin Idle
* begin noeat call=.d()
.subr d
:idle Idle
* idle
"(" idle call=.d(paren)
"[" idle call=.d(brack)
"{" do_brace recolor=-1 noeat
# "{" brace recolor=-1 call=.d(squiggly)
.ifdef paren
")" idle return
.else
")" stray recolor=-1
.endif
.ifdef brack
"]" idle return
.else
"]" stray recolor=-1
.endif
.ifdef squiggly
"}" brace recolor=-1 return
.else
"}" stray recolor=-1
.endif
"\n" idle
"/" slash
"0" first_digit recolor=-1
"1-9" decimal recolor=-1
"." maybe_float
"\"" string recolor=-1
"'" char recolor=-1
"\i" ident mark buffer
",:;=><*&|!~+\-%^" control recolor=-1
"r" maybe_rstring mark buffer
"x" maybe_xstring mark buffer
"q" maybe_qstring recolor=-1 mark buffer
"`" bstring recolor=-1
:do_brace Brace
* idle noeat
"{" brace call=.d(squiggly)
:brace Brace
* idle noeat
:stray Bad
* idle noeat
:maybe_done Control
* idle noeat
"/" idle noeat return recolor=-2
:control Control
* idle noeat
:slash Idle
* idle noeat
"*" comment recolor=-2
"+" idle recolor=-2 call=.block_comment()
"/" line_comment recolor=-2
:comment Comment comment
* comment
# might be TODO label
"BFHNTX" comment noeat call=comment_todo.comment_todo()
"*" maybe_end_comment
:maybe_end_comment Comment comment
* comment noeat
"/" idle
"*" maybe_end_comment
:line_comment Comment comment
* line_comment
# might be TODO label
"BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" idle
:int_postfix Number
* idle noeat
"uU" int_postfix_1
"L" int_postfix_2
:int_postfix_1 Number
* idle noeat
"L" idle
:int_postfix_2 Number
* idle noeat
"uU" idle
:float_postfix Number
* idle noeat
"fF" float_postfix_1
"L" float_postfix_1
"i" idle
:float_postfix_1 Number
* idle noeat
"i" idle
:first_digit Number
* int_postfix noeat
"xX" hex
"bB" bin
"." float
"eE" epart
"0-9" decimal
:bad_number Bad
* idle noeat
"0-9" bad_number
:octal Number
* int_postfix noeat
"0-7_" octal
"89" bad_number recolor=-1
:hex Number
* int_postfix noeat
"0-9A-Fa-f_" hex
"." hexfloat
"pP" ppart
:hexfloat Number
* float_postfix noeat
"0-9A-Fa-f_" hexfloat
"pP" ppart
:ppart Number
* float_postfix noeat
"0-9+\-" pnum
:pnum Number
* float_postfix noeat
"0-9_" pnum
:decimal Number
* int_postfix noeat
"0-9_" decimal
"eE" epart
"." float
:maybe_float Number
* idle recolor=-2 noeat
"\i" not_ident recolor=-2
"0-9" float recolor=-2
:not_ident Idle
* idle noeat
"\c" not_ident
:float Number
* float_postfix noeat
"eE" epart
"0-9_" float
:epart Number
* idle noeat
"0-9+\-" enum
:enum Number
* float_postfix noeat
"0-9_" enum
:maybe_qstring Brace
* ident recolor=-1 noeat
"{" brace call=.d(squiggly)
"\"" qdstring recolor=-2
:qdstring String string
* qstring save_c
"\i" qdelim buffer
:qdelim String string
* qdelim_bad noeat save_s
"\c" qdelim
"\n" skipline noeat save_s
:qdelim_bad Bad
* qdelim_bad
"\n" skipline noeat
:skipline String string
* skipline
"\n" next_line
:todelim String string
* todelim
"\n" next_line
"\"" next_line strings
"&" founddelim
done
:founddelim String string
* idle noeat
"\"" bad_line
:bad_line Bad
* bad_line
"\n" idle
# eat \n so it's not in string.
:next_line String string
* todelim buffer
"\n" next_line
:qstring String string
* qstring
& qstring_1
:qstring_1 String string
* qstring noeat
"\"" string_postfix
:maybe_xstring Idle
* ident noeat
"\"" xstring recolor=-2
:xstring String string
* bad_xstring recolor=-1
" \t\r\n\f0-9A-Fa-f" xstring
"\"" string_postfix
:bad_xstring Bad
* xstring noeat
:maybe_rstring Idle
* ident noeat
"\"" rstring recolor=-2
:rstring String string
* rstring
"\"" string_postfix
:bstring String string
* bstring
"`" string_postfix
:string String string
* string
"\"" string_postfix
"\\" string_escape recolor=-1
"%" string_control recolor=-1
:string_postfix String string
* idle noeat
"cwd" idle
:string_escape StringEscape string
* string
"U" string_hex8
"u" string_hex4
"x" string_hex2
"0-7" string_octal2
"\n" string recolor=-2
:string_hex8 StringEscape string
* string noeat
"0-9a-fA-F" string_hex7
:string_hex7 StringEscape string
* string noeat
"0-9a-fA-F" string_hex6
:string_hex6 StringEscape string
* string noeat
"0-9a-fA-F" string_hex5
:string_hex5 StringEscape string
* string noeat
"0-9a-fA-F" string_hex4
:string_hex4 StringEscape string
* string noeat
"0-9a-fA-F" string_hex3
:string_hex3 StringEscape string
* string noeat
"0-9a-fA-F" string_hex2
:string_hex2 StringEscape string
* string noeat
"0-9a-fA-F" string_hex1
:string_hex1 StringEscape string
* string noeat
"0-9a-fA-F" string
:string_octal2 StringEscape string
* string noeat
"0-7" string_octal1
:string_octal1 StringEscape string
* string noeat
"0-7" string
:string_control StringEscape string
* string_control
"\n" idle
"\"" string noeat
"diouxXeEfFgGaAcspn%SCM" string
:char Character string
* char_done
"'" idle
"\\" char_escape recolor=-1
:char_done Character string
* idle noeat recolor=-3
"\'" idle
:char_escape CharacterEscape string
* char_done
"U" char_hex8
"u" char_hex4
"x" char_hex2
"0-7" char_octal2
:char_hex8 CharacterEscape string
* char_done noeat
"0-9a-fA-F" char_hex7
:char_hex7 CharacterEscape string
* char_done noeat
"0-9a-fA-F" char_hex6
:char_hex6 CharacterEscape string
* char_done noeat
"0-9a-fA-F" char_hex5
:char_hex5 CharacterEscape string
* char_done noeat
"0-9a-fA-F" char_hex4
:char_hex4 CharacterEscape string
* char_done noeat
"0-9a-fA-F" char_hex3
:char_hex3 CharacterEscape string
* char_done noeat
"0-9a-fA-F" char_hex2
:char_hex2 CharacterEscape string
* char_done noeat
"0-9a-fA-F" char_hex1
:char_hex1 CharacterEscape string
* char_done noeat
"0-9a-fA-F" char_done
:char_octal2 CharacterEscape string
* char_done noeat
"0-7" char_octal1
:char_octal1 CharacterEscape string
* char_done noeat
"0-7" char_done
:ident Ident
* ident_end noeat recolormark strings
"abstract" kw
"alias" kw
"align" kw
"asm" kw
"assert" kw
"auto" kw
"body" kw
"bool" kw
"break" kw
"byte" kw
"case" kw
"cast" kw
"catch" kw
"cdouble" kw
"cent" kw
"cfloat" kw
"char" kw
"class" kw
"const" kw
"continue" kw
"creal" kw
"dchar" kw
"debug" kw
"default" kw
"delegate" kw
"delete" kw
"deprecated" kw
"do" kw
"double" kw
"else" kw
"enum" kw
"export" kw
"extern" kw
"false" kw
"final" kw
"finally" kw
"float" kw
"for" kw
"foreach" kw
"foreach_reverse" kw
"function" kw
"goto" kw
"idouble" kw
"if" kw
"ifloat" kw
"immutable" kw
"import" kw
"in" kw
"inout" kw
"int" kw
"interface" kw
"invariant" kw
"ireal" kw
"is" kw
"lazy" kw
"long" kw
"macro" kw
"mixin" kw
"module" kw
"new" kw
"nothrow" kw
"null" kw
"out" kw
"override" kw
"package" kw
"pragma" kw
"private" kw
"protected" kw
"public" kw
"pure" kw
"real" kw
"ref" kw
"return" kw
"scope" kw
"shared" kw
"short" kw
"static" kw
"struct" kw
"super" kw
"switch" kw
"synchronized" kw
"template" kw
"this" kw
"throw" kw
"true" kw
"try" kw
"typedef" kw
"typeid" kw
"typeof" kw
"ubyte" kw
"ucent" kw
"uint" kw
"ulong" kw
"union" kw
"unittest" kw
"ushort" kw
"version" kw
"void" kw
"volatile" kw
"wchar" kw
"while" kw
"with" kw
"__FILE__" kw
"__MODULE__" kw
"__LINE__" kw
"__FUNCTION__" kw
"__PRETTY_FUNCTION__" kw
"__gshared" kw
"__traits" kw
"__vector" kw
"__parameters" kw
done
"\c" ident
:type Type
* idle noeat
:kw Keyword
* idle noeat
: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
:ident_end Idle
* idle noeat
" " ident_end
"(" method_end noeat recolormark
:method_end Methods
* idle noeat
.end
# Recursive block comments
.subr block_comment
:idle Comment comment
* idle
# might be TODO label
"BFHNTX" idle noeat call=comment_todo.comment_todo()
"+" maybe_done
"/" maybe_recur
:maybe_done Comment comment
* idle noeat
"/" idle return
:maybe_recur Comment comment
* idle noeat
"+" idle call=.block_comment()
.end

View file

@ -0,0 +1,67 @@
# JOE syntax highlight file for apt's sources.list
# by Christian Nicolai (http://mycrobase.de)
=Idle
=Comment
=Keyword
=Bad
=URL +Constant
=SpacyURL +String +Constant
=Distribution +Preproc
=Component +DefinedIdent
:line_start Idle
* line_rest noeat
"#" line_comment recolor=-1
"a-zA-Z" deb recolor=-1
:line_rest Idle
* line_rest
"\n" line_start
:line_comment Comment comment
* line_comment
"\n" line_start
:deb Keyword
* deb
" \t" deb_url_pre
# allow multiple spaces
:deb_url_pre Idle
* deb_url noeat
" \t" deb_url_pre
:deb_url URL
* deb_url
"[" deb_spacy_url recolor=-1
" \t" deb_distro_pre
:deb_spacy_url SpacyURL
* deb_spacy_url
"]" deb_url
# allow multiple spaces
:deb_distro_pre Idle
* deb_distro noeat
" \t" deb_distro_pre
:deb_distro Distribution
* deb_distro
" \t" deb_component_pre
# distro is the last obligatory part,
# components are all optional
"\n" line_start
# allow multiple spaces
:deb_component_pre Idle
* deb_component noeat
" \t" deb_component_pre
:deb_component Component
* deb_component
" \t" deb_component_pre
"\n" line_start

View file

@ -0,0 +1,427 @@
# 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
# into one file, to handle cases where A) it's difficult to tell what
# type of diff might be inside the file to highlight and B) the file to
# highlight may contain hunks of different types of diffs (unlikely).
# Of course it can be used to replace the 3 abovementioned files
# completely. If you want that, you need to edit ftyperc accordingly.
#
# Dirk Schenkewitz <Dirk.Schenkewitz (AT) gmx.de>
# Color definitions
=Idle
=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
:reset Idle
* garbage recolor=-1
"\n" reset
"d" garbage buffer recolor=-1 # may be a "diff" command
"-" udiff_o1 # may start a unified diff hunk
"*" cdiff_o1 # may start a context diff hunk
"0-9" ndiff_r0 mark recolor=-1 # may start a "normal" diff hunk
:garbage Garbage
* garbage strings
"diff" diff_cmd recolor=-3
done
"\n" reset
:diff_cmd DiffCmd
* diff_cmd
"\n" reset
#----------------------------------------------
# unified diffs:
:udiff_o1 Idle
* garbage recolor=-2 buffer
"-" udiff_o2
:udiff_o2 Idle
* garbage recolor=-3 buffer
"-" udiff_o3
:udiff_o3 Idle
* garbage recolor=-4 buffer
" " udiff_o4
:udiff_o4 Idle
* udiff_oldf recolor=-5
" " garbage recolor=-5 buffer
:udiff_n0 Idle
* garbage recolor=-1 buffer
"+" udiff_n1
:udiff_n1 Idle
* garbage recolor=-2 buffer
"+" udiff_n2
:udiff_n2 Idle
* garbage recolor=-3 buffer
"+" udiff_n3
:udiff_n3 Idle
* garbage recolor=-4 buffer
" " udiff_newf recolor=-4
:udiff_oldf FileOld
* udiff_oldf
"\n" udiff_n0
:udiff_newf FileNew
* udiff_newf
"\n" udiff_prehunk1
:udiff_prehunk1 Idle
* garbage
"@" udiff_prehunk2
"\n" reset
:udiff_prehunk2 Idle
* garbage recolor=-1
"@" udiff_prehunk3
"\n" reset
:udiff_prehunk3 Idle
* garbage recolor=-1
" " udiff_hunkhead recolor=-3
"\n" reset
:udiff_hunkhead HunkHead
* udiff_hunkhead
"\n" udiff_hunkbody
:udiff_hunkbody Idle
* reset noeat
"d" garbage recolor=-1 buffer
"-" udiff_minus1
"+" udiff_add recolor=-1
" " udiff_ctx recolor=-1
"@" udiff_prehunk2
:udiff_minus1 Idle
* udiff_del noeat recolor=-2
"-" udiff_minus2
:udiff_minus2 Idle
* udiff_del noeat recolor=-3
"-" udiff_minus3
:udiff_minus3 Idle
* udiff_del noeat recolor=-4
" " udiff_minus4
:udiff_minus4 Idle
* udiff_oldf recolor=-5
"\n" udiff_hunkbody
" " udiff_del recolor=-5
:udiff_del DelLine
* udiff_del
"\n" udiff_hunkbody
:udiff_add AddLine
* udiff_add
"\n" udiff_hunkbody
:udiff_ctx CtxLine
* udiff_ctx
"\n" udiff_hunkbody
#----------------------------------------------
# "normal" diffs:
:ndiff_r0 Idle
* garbage noeat recolormark
"0-9" ndiff_r0
"," ndiff_r1
"adc" ndiff_r2
"\n" reset markend
:ndiff_r1 Idle
* garbage recolormark
"0-9" ndiff_r1
"adc" ndiff_r2
"\n" reset markend
:ndiff_r2 Idle
* garbage noeat recolormark
"0-9" ndiff_r2
"," ndiff_r3
"\n" ndiff_re noeat recolormark
:ndiff_r3 Idle
* garbage noeat recolormark
"0-9" ndiff_r3
"\n" ndiff_re noeat recolormark
:ndiff_re HunkHead
"\n" ndiff_hunk0
:ndiff_hunk0 HunkHead
* reset noeat
"<" ndiff_o1
">" ndiff_n1
"\\" ndiff_t1
:ndiff_hunk1 HunkHead
* reset noeat
"<" ndiff_o1
">" ndiff_n1
"-" ndiff_m1 recolor=-1
"\\" ndiff_t1
:ndiff_t1 Idle
* garbage recolor=-3
"\n" reset
" " ndiff_txt recolor=-3
:ndiff_o1 Idle
* garbage recolor=-3
"\n" reset
" " ndiff_del recolor=-3
:ndiff_n1 Idle
* garbage recolor=-3
"\n" reset
" " ndiff_add recolor=-3
:ndiff_txt CtxLine
* ndiff_txt
"\n" ndiff_hunk1
:ndiff_del DelLine
* ndiff_del
"\n" ndiff_hunk1
:ndiff_add AddLine
* ndiff_add
"\n" ndiff_hunk1
:ndiff_m1 Idle
* garbage recolor=-2
"-" ndiff_m2
"\n" reset recolor=-2
:ndiff_m2 Idle
* garbage recolor=-3
"-" ndiff_m3 recolor=-3
:ndiff_m3 HunkMid
* garbage recolor=-4
"\n" ndiff_hunk0
#----------------------------------------------
# context diffs:
:cdiff_o1 Idle
* garbage recolor=-2 buffer
"*" cdiff_o2
:cdiff_o2 Idle
* garbage recolor=-3 buffer
"*" cdiff_o3
:cdiff_o3 Idle
* garbage recolor=-4 buffer
" " cdiff_o4
:cdiff_o4 Idle
* cdiff_oldf recolor=-5
" " garbage recolor=-5 buffer
:cdiff_oldf FileOld
* cdiff_oldf
"\n" cdiff_n0
:cdiff_n0 Idle
* garbage recolor=-1 buffer
"-" cdiff_n1
:cdiff_n1 Idle
* garbage recolor=-2 buffer
"-" cdiff_n2
:cdiff_n2 Idle
* garbage recolor=-3 buffer
"-" cdiff_n3
:cdiff_n3 Idle
* garbage recolor=-4 buffer
" " cdiff_newf recolor=-4
:cdiff_newf FileNew
* cdiff_newf
"\n" cdiff_prehunk0
:cdiff_prehunk0 Idle
* manystars buffer
:manystars Idle
* garbage noeat strings
"***************" cdiff_prehunk1
done
"*" manystars
:cdiff_prehunk1 HunkHead
* cdiff_ho0
:cdiff_ho0 Idle
* garbage recolor=-1 buffer
"*" cdiff_ho1
:cdiff_ho1 Idle
* garbage recolor=-2 buffer
"*" cdiff_ho2
:cdiff_ho2 Idle
* garbage recolor=-3 buffer
"*" cdiff_ho3
:cdiff_ho3 Idle
* garbage recolor=-4 buffer
" " cdiff_ho4 recolor=-4 mark
:cdiff_ho4 HunkHead
* garbage recolormark buffer
"0-9," cdiff_ho4
" " cdiff_ho5 recolormark buffer
"\n" reset markend
:cdiff_ho5 HunkHead
* garbage recolor=-1 buffer
"*" cdiff_ho6
:cdiff_ho6 Idle
* garbage recolor=-2 buffer
"*" cdiff_ho7
:cdiff_ho7 Idle
* garbage recolor=-3 buffer
"*" cdiff_ho8
:cdiff_ho8 Idle
* garbage recolor=-4 buffer
"*" cdiff_ho9 recolor=-4
:cdiff_ho9 HunkHead
* garbage recolor=-5 buffer
"\n" cdiff_hunk
:cdiff_hn0 Idle
* garbage recolor=-1 buffer
"-" cdiff_hn1
:cdiff_hn1 Idle
* garbage recolor=-2 buffer
"-" cdiff_hn2
:cdiff_hn2 Idle
* garbage recolor=-3 buffer
"-" cdiff_hn3
:cdiff_hn3 Idle
* garbage recolor=-4 buffer
" " cdiff_hn4 recolor=-4 mark
:cdiff_hn4 HunkHead
* garbage recolormark buffer
"0-9," cdiff_hn4
" " cdiff_hn5 recolormark buffer
"\n" reset markend
:cdiff_hn5 HunkHead
* garbage recolor=-1 buffer
"-" cdiff_hn6
:cdiff_hn6 Idle
* garbage recolor=-2 buffer
"-" cdiff_hn7
:cdiff_hn7 Idle
* garbage recolor=-3 buffer
"-" cdiff_hn8
:cdiff_hn8 Idle
* garbage recolor=-4 buffer
"-" cdiff_hn9 recolor=-4
:cdiff_hn9 HunkHead
* garbage recolor=-5 buffer
"\n" cdiff_hunk
:cdiff_hunk Idle
* garbage recolor=-1 buffer
" " cdiff_h_c0
"+" cdiff_h_p0
"!" cdiff_h_x0
"-" cdiff_h_m0
"*" manystars buffer
:cdiff_h_c0 Idle
* garbage recolor=-2 buffer
" " cdiff_h_c1 recolor=-2
"\n" reset
:cdiff_h_c1 CtxLine
* cdiff_h_c1
"\n" cdiff_hunk
:cdiff_h_p0 Idle
* garbage recolor=-2 buffer
" " cdiff_h_p1 recolor=-2
"\n" reset
:cdiff_h_p1 AddLine
* cdiff_h_p1
"\n" cdiff_hunk
:cdiff_h_x0 Idle
* garbage recolor=-2 buffer
" " cdiff_h_x1 recolor=-2
"\n" reset
:cdiff_h_x1 ChgLine
* cdiff_h_x1
"\n" cdiff_hunk
:cdiff_h_m0 Idle
* garbage recolor=-2 buffer
" " cdiff_h_m1 recolor=-2
"-" cdiff_hn2 recolor=-2
"\n" reset
:cdiff_h_m1 DelLine
* cdiff_h_m1
"\n" cdiff_hunk

View file

@ -0,0 +1,171 @@
# Barebones Dockerfile syntax for JOE. Doesn't handle more sophisticated sh syntax.
=Idle
=Command +Statement +Keyword
=Comment
=Constant
=String +Constant
=Ident
=Escape
=Brace
=StringEscape +Escape
=Variable +DefinedIdent
# Start of line is special
:start Idle
* idle
" \t" start
"#" comment noeat
"A-Za-z" command buffer noeat
"\n" start
# Comments between commands
: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
* comment_idle
"\n" idle
# Start of line in the middle of "idle" mode (skips command recognition in case a comment
# comes in the middle of a RUN)
:start_idle Idle
* idle noeat
"#" comment_idle recolor=-1
# Generic middle-of-a-command
:idle Idle
* idle
"$" idle recolor=-1 call=.variable()
"\n" start
"\\" escape recolor=-1
:escape Escape
* idle recolor=-2 noeat
"\\\"" idle
"\r" escape
"\n" start_idle
:command Idle
* idle noeat istrings
"FROM" from
"MAINTAINER" string_command
"RUN" list_command
"CMD" list_command
"LABEL" label
"EXPOSE" generic_command
"ENV" generic_command
"ADD" list_command
"COPY" list_command
"ENTRYPOINT" list_command
"VOLUME" list_command
"USER" string_command
"WORKDIR" string_command
"ARG" generic_command
"ONBUILD" generic_command
"STOPSIGNAL" generic_command
done
"a-zA-Z" command
# EXPOSE, ENV, ARG, ONBUILD, STOPSIGNAL
:generic_command Command
* idle
# MAINTAINER, USER, WORKDIR
:string_command Command
* string_command_data
:string_command_data Constant
* string_command_data
"$" string_command_data recolor=-1 call=.variable()
"\n" start
# FROM
:from Command
* from_image noeat
:from_image Constant
* from_image
":@" from_tag noeat
"\n" start
:from_tag Idle
* from_tag
"\n" start
# RUN, CMD, ADD, COPY, ENTRYPOINT, VOLUME
:list_command Command
* idle noeat
" \t" list_command
"[" array noeat
"\n" start
:array Idle
* array
"[]" bracket noeat
"\"'" array recolor=-1 call=.string() save_c
"\n" start
:comma Idle
* array noeat
:bracket Brace
"]" idle
"[" array
# LABEL
:label Command
* label_key
"\n" start
:label_key Variable
* label_key
"=" label_value noeat
"\n" start
:label_value Constant
* label_value
"\"" label_value recolor=-1 call=.string() save_c
"\n" start
.subr variable
:variable Variable
* variable recolor=-2 return noeat
"A-Za-z_" variable_name
"{" variable_long
:variable_name Variable
* variable_name return noeat
"A-Za-z0-9_" variable_name
:variable_long Variable
* variable_long
& variable return noeat
"\n" variable return noeat
"}" variable return
":" variable_after
:variable_after Idle
* variable_after
& variable_after return noeat
"}" variable_long noeat
.end
.subr string
:string String string
* string
& string return
"\n" string return noeat
"\\" string_escape recolor=-1
"$" string recolor=-1 call=.variable()
:string_escape StringEscape string
* string
.end

View file

@ -0,0 +1,239 @@
# JOE syntax highlight file for Elixir
# Written by Andrey Lisin (at gmail.com)
# TODO
# - test attributes and docstrings highlighting
# - maybe highlight arithmetical operations
# - comprehensions highlighting
# Changes
# - fix atom with underscore highlighting
# - distinct docstrings and module attributes
=Idle
=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-Z" type recolor=-1
"a-z" ident noeat
"_" underscore recolor=-1
"'" single_quoted recolor=-1
"\"" double_quoted recolor=-1
":" atom recolor=-1
"@" modattr recolor=-1
"[]" brack recolor=-1
"{}" brace recolor=-1
"|" maybe_pipe
"\\" maybe_opt
"-" maybe_rarrow recolor=-1
"<" maybe_larrow recolor=-1
"0-9" decimal recolor=-1
:line_comment Comment comment
* line_comment
"BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" idle
:single_quoted String string
* single_quoted
"'" idle
:double_quoted String string
* double_quoted
"#" maybe_extrapolation
"\"" idle
:maybe_extrapolation String string
* double_quoted noeat
"{" extrapolation recolor=-2
:extrapolation StringVariable string
* extrapolation
"}" double_quoted
"\"" double_quoted noeat
:atom Atom
* idle noeat
"a-zA-Z0-9_" atom
:modattr ModAttr
* idle
"a-zA-Z0-9_" modattr
" " maybe_edoc
:maybe_edoc Idle
* idle
" " maybe_edoc
"\"" string_dq_1 recolor=-1
:string_dq_1 String string
* double_quoted recolor=-1
"\"" string_dq_2
:string_dq_2 Comment comment
* idle
"\"" docstr_dq recolor=-3
:docstr_dq Comment comment
* docstr_dq
"\"" docstr_dq_1
:docstr_dq_1 Comment comment
* docstr_dq
"\"" docstr_dq_2
:docstr_dq_2 Comment comment
* docstr_dq
"\"" idle
:brace Brace
* idle noeat
:brack Bracket
* idle noeat
:maybe_larrow Idle
"-" arrow recolor=-2
* idle noeat
:maybe_rarrow Idle
">" arrow recolor=-2
* idle noeat
:arrow Operator
* idle noeat
:maybe_pipe Idle
* idle
">" pipe recolor=-2
:pipe Operator
* idle noeat
:maybe_opt Idle
* idle
"\\" opt recolor=-2
:opt Keyword
* idle noeat
:decimal Number
* idle noeat
"0-9_" decimal
"." float
:float Number
* idle noeat
"0-9" float
:underscore Underscore
* idle noeat
"a-zA-Z0-9?_" underscore
:type Type
"a-zA-Z0-9_" type
* idle noeat
:ident Ident
* ident1 noeat buffer mark
:ident1 Ident
* idle noeat strings
"def" start_func_def
"defp" start_func_def
"defmodule" start_mod_def
"defprotocol" start_def
"defmacro" start_def
"defmacrop" start_def
"defdelegate" start_def
"defexception" start_def
"defstruct" start_def
"defimpl" start_def
"defcallback" start_def
"import" start_mod_def
"require" start_mod_def
"test" start_def
"use" start_mod_def
"alias" start_mod_def
"end" stmt
"do" kw
"for" loop
"if" cond
"else" cond
"unless" cond
"case" cond
"cond" cond
"true" bool
"false" bool
"fn" kw
done
"a-zA-Z_0-9" ident1
":" attr noeat recolormark
:attr Attribute
* idle
:kw Keyword
* idle noeat
:stmt Statement
* idle noeat
:cond Conditional
* idle noeat
:bool Boolean
* idle noeat
:start_def Statement
* def
:start_mod_def Statement
* moddef
:start_func_def Statement
* funcdef
:def DefinedIdent
* def
" (" idle noeat
:funcdef DefinedFunction
* funcdef
" (" idle noeat
:moddef DefinedType
* moddef
" " idle noeat
"\n" idle

View file

@ -0,0 +1,31 @@
# JOE syntax highlight file for plain ERB
# by Christian Nicolai (http://mycrobase.de)
=Idle
=Keyword
=Bad
=Brace
=ERB +Escape
:content Idle
* content
"<" maybe_erb_start
:maybe_erb_start Idle
* content noeat
"%" maybe_erb_eq recolor=-2
:maybe_erb_eq ERB
* rtn_ruby noeat call=ruby.ruby(erb)
"=" rtn_ruby call=ruby.ruby(erb)
:rtn_ruby ERB
* content noeat
:erb ERB
* erb
"%" maybe_erb_end
:maybe_erb_end ERB
* erb
">" content

View file

@ -0,0 +1,506 @@
# JOE syntax highlight file for Erlang
# by Christian Nicolai (http://mycrobase.de)
# with contributions from Jonas Rosling and Andrew Lisin
# TODO Handle type information ::
# TODO implement subroutines for cleaner and more correct implementation.
# TODO Probably use less colors to be less distractive.
=Idle
=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
"A-Z_" variable noeat
"%" line_comment noeat
"\"" string recolor=-1
"'" quoted_atom mark
"0-9" decimal recolor=-1
"[]" brack recolor=-1
"{}" brace recolor=-1
"-" maybe_attribute buffer
"a-z" atom buffer mark noeat
"#" record recolor=-1
"$" char recolor=-1
"?" is_macro mark
"<|" lc buffer
:lc Idle
* idle noeat strings
"<-" kw
"||" kw
done
"-<|" lc
:pipe Idle
* idle noeat
"|" kw recolormark
:is_macro Idle
* macro recolormark noeat
"a-zA-Z0-9_@" is_macro
:macro Macro
* idle noeat
:char Character string
* idle
"\\" charesc
:charesc Character string
* idle
:line_comment Comment comment
* line_comment
"@" is_edoc noeat buffer
"BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" idle
:is_edoc Comment comment
* line_comment noeat strings
"@clear" edoc
"@docfile" edoc
"@headerfle" edoc
"@todo" edoc
"@TODO" edoc
"@type" edoc
"@reference" edoc
"@see" edoc
"@since" edoc
"@deprecated" edoc
"@hidden" edoc
"@private" edoc
"@equiv" edoc
"@throws" edoc
"@author" edoc
"@copyright" edoc
"@version" edoc
"@title" edoc
"@spec" edoc
"@doc" edoc
"@end" edoc
done
"A-Za-z@" is_edoc
:edoc Keyword
* line_comment noeat
:variable Variable
* idle noeat
"a-zA-Z0-9_" variable
:record Record
* idle noeat
"a-z" rec noeat
"'" qtrec recolor=-1
:rec Record
* idle noeat
"a-zA-Z0-9_@" rec
"." recatt recolor=-1
:qtrec Record
* qtrec
"'" rec
:recatt Recatt
* idle noeat
"a-zA-Z_" recatt
"#" record
# STRINGS
:string String string
* string
"\\" string_escape recolor=-1
"~" string_ mark
"\"" idle
:string_escape String_esc string
* string
:string_ String string
* string_mod noeat
"0-9" string_f
"t" string_mod
:string_f String string
* string_mod noeat
"0-9*" string_f
"." string_p
:string_p String string
* string_mod noeat
"0-9*" string_p
:string_mod String string
* string
"cfegswpWPBX#bx+ni" string_modifier recolormark noeat
:string_modifier String_mod string
* string
# END STRINGS
:decimal Number
* idle noeat
"0-9" decimal
"." float
"#" base
:float Number
* idle noeat
"0-9" float
"Ee" eintval
:base Number
* idle noeat
"0-9A-Fa-f" base
:eintval Number
* eint noeat
"-" eint
:eint Number
* idle noeat
"0-9" eint
:brace Brace
* idle noeat
:brack Bracket
* idle noeat
:maybe_attribute Idle
* idle noeat strings
"-module" attribute
"-export" attribute
"-import" attribute
"-compile" attribute
"-ifdef" attribute
"-endif" attribute
"-define" attribute
"-file" attribute
"-type" attribute
"-opaque" attribute
"-export_type" attribute
"-spec" attribute
"-author" attribute
"-copyright" attribute
"-include" attribute
"-include_lib" attribute
"-vsn" attribute
"-behaviour" attribute
"-behavior" attribute
"-record" attribute
"-on_load" attribute
"-connect_all" attribute
"-hidden" attribute
"-name" attribute
"-setcookie" attribute
"-sname" attribute
"-mode" attribute
done
"a-z_" maybe_attribute
:attribute Attribute
* idle noeat
:no_atom Idle
* idle noeat
" " no_atom
"(" function recolormark noeat
":" module recolormark noeat
"/" funarity
:module Module
* idle noeat
:function Fun
* idle noeat
:funarity Fun
* function recolormark noeat
"0-9" idle
:kw Keyword
* idle noeat
:guard Guard
* idle noeat
:rterr Guard
* idle noeat
:bif Bif
* idle recolormark noeat
" " bif
"(" idle noeat
:type Type
* idle recolormark noeat
"(" idle noeat
":" module recolormark noeat
:quoted_atom Idle
* quoted_atom
"'" no_atom
# This implementation is sort of funky.
# Most of the cases it's correct but some highlighting may be wrong.
# Should be looked over...
:atom Ident
* no_atom noeat strings
"after" kw
"and" kw
"andalso" kw
"band" kw
"begin" kw
"bnot" kw
"bor" kw
"bsl" kw
"bsr" kw
"bxor" kw
"case" kw
"catch" kw
"cond" kw
"div" kw
"end" kw
"fun" kw
"if" kw
"let" kw
"not" kw
"of" kw
"or" kw
"orelse" kw
"query" kw
"receive" kw
"rem" kw
"try" kw
"when" kw
"xor" kw
"any" type
"none" type
"pid" type
"port" type
"reference" type
"float" type
"atom" type
"binary" type
"integer" type
"list" type
"improper_list" type
"maybe_improper_list" type
"tuple" type
"term" type
"boolean" type
"byte" type
"char" type
"non_neg_integer" type
"pos_integer" type
"neg_integer" type
"number" type
"string" type
"nonempty_string" type
"iolist" type
"module" type
"mfa" type
#interfears with the bif "node" type
"timeout" type
"no_return" type
"badarg" rterr
"badarith" rterr
"badmatch" rterr
"function_clause" rterr
"case_clause" rterr
"if_clause" rterr
"try_clause" rterr
"undef" rterr
"badfun" rterr
"badarity" rterr
"timeout_value" rterr
"noproc" rterr
"nocatch" rterr
"system_limit" rterr
"is_atom" guard
"is_binary" guard
"is_bitstream" guard
"is_boolean" guard
"is_float" guard
"is_function" guard
"is_integer" guard
"is_list" guard
"is_number" guard
"is_pid" guard
"is_port" guard
"is_record" guard
"is_reference" guard
"is_tuple" guard
"abs" bif
"adler32" bif
"adler32_combine" bif
"append_element" bif
"apply" bif
"atom_to_binary" bif
"atom_to_list" bif
"binary_part" bif
"binary_to_atom" bif
"binary_to_existing_atom" bif
"binary_to_list" bif
"bitstring_to_list" bif
"binary_to_term" bif
"bit_size" bif
"bump_reductions" bif
"byte_size" bif
"cancel_timer" bif
"check_old_code" bif
"check_process_code" bif
"crc32" bif
"crc32_combine" bif
"date" bif
"decode_packet" bif
"delete_module" bif
"demonitor" bif
"disconnect_node" bif
"display" bif
"element" bif
"erase" bif
"error" bif
"exit" bif
"external_size" bif
"float" bif
"float_to_list" bif
"fun_info" bif
"fun_to_list" bif
"function_exported" bif
"garbage_collect" bif
"get" bif
"get_cookie" bif
"get_keys" bif
"get_stacktrace" bif
"group_leader" bif
"halt" bif
"hash" bif
"hd" bif
"hibernate" bif
"integer_to_list" bif
"iolist_to_binary" bif
"iolist_size" bif
"is_alive" bif
"is_builtin" bif
"is_process_alive" bif
"length" bif
"link" bif
"list_to_atom" bif
"list_to_binary" bif
"list_to_bitstring" bif
"list_to_existing_atom" bif
"list_to_float" bif
"list_to_integer" bif
"list_to_pid" bif
"list_to_tuple" bif
"load_module" bif
"load_nif" bif
"loaded" bif
"local_time" bif
"local_time_to_universaltime" bif
"make_ref" bif
"make_tuple" bif
"max" bif
"md5" bif
"md5_final" bif
"md5_init" bif
"md5_update" bif
"memory" bif
"min" bif
"module_loaded" bif
"monitor" bif
"monitor_node" bif
"nif_error" bif
"node" bif
"nodes" bif
"now" bif
"open_port" bif
"phash" bif
"phash2" bif
"pid_to_list" bif
"port_close" bif
"port_command" bif
"port_connect" bif
"port_control" bif
"port_call" bif
"port_info" bif
"port_to_list" bif
"ports" bif
"pre_loaded" bif
"process_display" bif
"process_flag" bif
"process_info" bif
"processes" bif
"purge_module" bif
"put" bif
"raise" bif
"read_timer" bif
"ref_to_list" bif
"register" bif
"registered" bif
"resume_process" bif
"round" bif
"self" bif
"send" bif
"send_after" bif
"send_nosuspend" bif
"set_cookie" bif
"setelement" bif
"size" bif
"spawn" bif
"spawn_link" bif
"spawn_monitor" bif
"spawn_opt" bif
"split_binary" bif
"start_timer" bif
"statistics" bif
"suspended_process" bif
"system_flag" bif
"system_info" bif
"system_monitor" bif
"system_profile" bif
"term_to_binary" bif
"throw" bif
"time" bif
"tl" bif
"trace" bif
"trace_deliviered" bif
"trace_info" bif
"trace_pattern" bif
"trunc" bif
"tuple_size" bif
"tuple_to_list" bif
"universaltime" bif
"universaltime_to_localtime" bif
"unlink" bif
"unregister" bif
"whereis" bif
"yield" bif
done
"a-zA-Z0-9_@" atom

View file

@ -0,0 +1,21 @@
# Filename highlighter
=Idle
=Notused +Comment
:idle Idle
* filename noeat mark
:filename Idle
* filename
"/" slash
"\n" idle
:slash Idle
* filename
"/" restart noeat recolormark
"~" restart noeat recolormark
"\n" idle
:restart Notused
* filename noeat mark

View file

@ -0,0 +1,822 @@
# JOE syntax highlight file for FORTRAN
# Heavily improved by: Malte Thoma (thoma@uni-muenster.de)
# Bugs:
# in: 4. eq. -- does not recognize the .eq.
# needs more intrinsics.
=Idle
=Ident
=Comment
=Constant
=Number +Constant
=Boolean +Constant
=String +Constant
=Type
=Keyword
=Operator +Keyword
=Statement +Keyword