## syntax and configuration file for the nano editor from http://www.nano-editor.org
## syntax for newLISP, C, HTML, nanorc
## this file works on nano versions 2.0.1 and later 
## tested on nano 2.0.1 Mac OS X and nano 2.0.7 Linux, FreeBSD, LM 2008
## version 1.09 ready for newLISP v 10.0
## version 1.10 ready for newLISP v 10.0.6
## version 1.11 ready for newLISP v 10.1
## version 1.12 added a few missing functions
## version 1.13 added new 'self'
## version 1.14 added new 'extend'
## version 1.15 added new 'term', "++", "--", eliminated 'name'
## version 1.16 added new 'net-packet'

# make sure that lines are not broken when copying/pasting this, maximize browser window

## outcomment the following to customize, there are more then the following
## options depending on nano version, see manpage for nanorc for details
set autoindent    #
set casesensitive # onsearch
#set const         # always show line/cursor position status line
set morespace     # no top blank line
set suspend       # recognize Ctrl-z
set noconvert     # dont't convert from DOS
#set nohelp        # no bottom help
set quickblank    # clear bottom status after 1 keystroke
set smooth        # scoll smooth without jumping cursor to center
set tabsize 4     #
set historylog
#set tabstospaces # use spaces instead of tabs

syntax "lisp" "\.lsp$"
## keywords
color blue "([[:space:]()]|^)(\!|\!=|\$|%|&|\*|\+|\+\+|-|--|/|:|<|<<|<=|=|>|>=|>>|@|NaN\?|^|abort|abs|acos|acosh)([[:space:]()]|$)"
color blue "([[:space:]()]|^)(add|address|amb|and|append|append-file|apply|args|array|array-list|array\?)([[:space:]()]|$)"
color blue "([[:space:]()]|^)(asin|asinh|assoc|atan|atan2|atanh|atom\?|base64-dec|base64-enc|bayes-query)([[:space:]()]|$)"
color blue "([[:space:]()]|^)(bayes-train|begin|beta|betai|bind|binomial|bits|callback|case|catch)([[:space:]()]|$)"
color blue "([[:space:]()]|^)(ceil|change-dir|char|chop|clean|close|command-event|cond|cons|constant|context)([[:space:]()]|$)"
color blue "([[:space:]()]|^)(context\?|copy|copy-file|cos|cosh|count|cpymem|crc32|crit-chi2|crit-z|current-line)([[:space:]()]|$)"
color blue "([[:space:]()]|^)(curry|date|date-value|debug|dec|def-new|default|define|define-macro|delete)([[:space:]()]|$)"
color blue "([[:space:]()]|^)(delete-file|delete-url|destroy|det|device|difference|directory|directory\?)([[:space:]()]|$)"
color blue "([[:space:]()]|^)(div|do-until|do-while|doargs|dolist|dostring|dotimes|dotree|dump|dup|empty\?)([[:space:]()]|$)"
color blue "([[:space:]()]|^)(encrypt|ends-with|env|erf|error-event|eval|eval-string)([[:space:]()]|$)"
color blue "([[:space:]()]|^)(exec|exists|exit|exp|expand|explode|extend|factor|fft|file-info|file\?|filter|find)([[:space:]()]|$)"
color blue "([[:space:]()]|^)(find-all|first|flat|float|float\?|floor|flt|for|for-all|fork|format|fv|gammai)([[:space:]()]|$)"
color blue "([[:space:]()]|^)(gammaln|gcd|get-char|get-float|get-int|get-long|get-string|get-url|global|global\?|if)([[:space:]()]|$)"
color blue "([[:space:]()]|^)(ifft|import|inc|inf?|index|int|integer|integer\?|intersect|invert|irr|join|lambda\?|last)([[:space:]()]|$)"
color blue "([[:space:]()]|^)(last-error|legal\?|length|let|letex|letn|list|list\?|load|local|log|lookup|lower-case)([[:space:]()]|$)"
color blue "([[:space:]()]|^)(macro\?|main-args|make-dir|map|mat|match|max|member|min|mod|mul|multiply)([[:space:]()]|$)"
color blue "([[:space:]()]|^)(net-accept|net-close|net-connect|net-error|net-eval|net-interface|net-listen)([[:space:]()]|$)"
color blue "([[:space:]()]|^)(net-local|net-lookup|net-packet|net-peek|net-peer|net-ping|net-receive|net-receive-from)([[:space:]()]|$)"
color blue "([[:space:]()]|^)(net-receive-udp|net-select|net-send|net-send-to|net-send-udp|net-service)([[:space:]()]|$)"
color blue "([[:space:]()]|^)(net-sessions|new|nil|nil\?|normal|not|now|nper|npv|nth|null\?|number\?)([[:space:]()]|$)"
color blue "([[:space:]()]|^)(open|or|ostype|pack|parse|parse-date|path|peek|pipe|pmt|pop|pop-assoc|post-url)([[:space:]()]|$)"
color blue "([[:space:]()]|^)(pow|prefix|pretty-print|primitive\?|print|println|prob-chi2|prob-z|process)([[:space:]()]|$)"
color blue "([[:space:]()]|^)(prompt-event|protected\?|push|put-url|pv|quote|quote\?|rand|random|randomize|read)([[:space:]()]|$)"
color blue "([[:space:]()]|^)(read-buffer|read-char|read-expr|read-file|read-key|read-line|reader-event|real-path)([[:space:]()]|$)"
color blue "([[:space:]()]|^)(receive|ref|ref-all|regex|regex-comp|remove-dir|rename-file|replace|replace-assoc)([[:space:]()]|$)"
color blue "([[:space:]()]|^)(reset|rest|reverse|rotate|round|save|search|seed|seek|select|self|semaphore|send)([[:space:]()]|$)"
color blue "([[:space:]()]|^)(sequence|series|set|set-locale|set-ref|set-ref-all|setf|setq|sgn|share)([[:space:]()]|$)"
color blue "([[:space:]()]|^)(signal|silent|sin|sinh|sleep|slice|sort|source|spawn|sqrt|starts-with|string)([[:space:]()]|$)"
color blue "([[:space:]()]|^)(string\?|sub|swap|sym|symbol\?|symbols|sync|sys-error|sys-info|tan|tanh|term|throw)([[:space:]()]|$)"
color blue "([[:space:]()]|^)(throw-error|time|time-of-day|timer|title-case|trace|trace-highlight|transpose)([[:space:]()]|$)"
color blue "([[:space:]()]|^)(trim|true|true\?|unicode|unify|unique|unless|unpack|until|upper-case|utf8|utf8len)([[:space:]()]|$)"
color blue "([[:space:]()]|^)(uuid|wait-pid|when|while|write|write-buffer|write-char|write-file|write-line)([[:space:]()]|$)"
color blue "([[:space:]()]|^)(xfer-event|xml-error|xml-parse|xml-type-tags|zero\?|\||~)([[:space:]()]|$)"
## decimal and float numbers
color yellow "(^|[[:space:]()-])([0-9]+|[0-9]+\.[0-9]+)"
## hex numbers
color yellow "(^|[[:space:]()-])0x[0-9a-fA-F]+"
## symbols
color cyan "'[^ ()]+"
## parenthesis
color red "(\(|\))"
## quoted strings
color green "\"(\\.|[^\"])*\""
## braced strings
color green start="\{" end="\}"
## comments
color magenta "(^|[[:space:]#])#.*"
color magenta "(^|[[:space:];]);.*"
## newlispdoc tags
color green "(@module|@index|@description|@location|@version|@author|@syntax|@param|@return|@example)"
## text block strings
color green start="\[text\]" end="\[/text\]"


syntax "c-file" "\.(c|h)$"
## type ids
color blue "(^|[[:space:](){}*])(float|double|char|int|short|long|enum|void|static|const)[[:space:](){}]"
color blue "(^|[[:space:](){}*])(struct|union|typedef|extern|signed|unsigned|inline)[[:space:](){}]"
## keywords
color blue "(^|[[:space:](){}])(for|if|while|do|else|case|switch|default:|goto)([[:space:](){}]|$)"
color blue "(^|[[:space:](){}])(continue|break|return)([[:space:](){}*;:]|$)"
## preprocessor, macros
color brightcyan "^ *# *(define|undef|include|ifn?def|endif|elif|else|if)"
## decimal and float numbers
color yellow "(\[|[[:space:](),;-]|^)([0-9]+|[0-9]+\.[0-9]+)"
## hex numbers
color yellow "(\[|[[:space:](),;-]|^)0x[0-9a-fA-F]+L?L?"
## constants
color red "(^|\[|\]|[[:space:]~(,;-])[A-Z_]+[A-Z_0-9]+([ (){},;:]|\[|\]|$)" 
## delimiters
color black "\[|\]|\-|\+|[(){}~,;=:]"
## strings
color green "<[^= ]*>" ""(\\.|[^\"])*""
color green start=""(\\.|[^\"])*\\ *$" end="^(\\.|[^\"])*""
## commments
color magenta "//.*"
color magenta start="/\*" end="\*/"


syntax "HTML" "\.html$"
## tags
color blue start="<" end=">"
## entities
color red "&[^; ]*;"
## quotes strings
color green "\"(\\.|[^\"])*\""


syntax "nanorc" "\.?nanorc$"
color blue "^(set|unset|color|syntax)| (start|end)"
color magenta " (bright)?(red|green|blue|cyan|magenta|yellow|black|white)"
color green " (autoindent|casesensitive|morespace|suspend|noconvert|nohelp|nonewlines)"
color green " (quickblank|smooth|tabsize|tabstospaces|const|nowrap|include|historylog)"
color yellow "[[:space:]]+[0-9]+"
color black "^#.*"

