


Code: Select all
# PHP
syntax "php" "\.php[2345s~]?$"
color brightblue "(.*)\("
#Changed this one to a character class instead of "=*|=*|<|>|!":
color blue "\$[a-zA-Z_0-9$]*|[=!<>]"
color green "(var|class|function|echo|case|break|default|exit|switch|if|else|elseif|@|while)\s"
color green "[.,{}();]"
color red "('.*')|(\".*\")"
#Forces regex to stop matching at EOL.
#Sometimes the dot . matches newline as well so this is more portable:
color brightyellow "(#.*|//.*)$"
color brightyellow start="/\*" end="\*/"
#not all php open tags are "long"
#I wanted to write (<\?(?!xml)(php)?|\?>) but the parser didn't support it.
color brightblue "(<\?(php)?|\?>)"
#unfortunately, this also makes the php tags themselves white.
#But I'll live anyway
color white start="\?>" end="<\?(php)?"


I have some trouble with triple-quoted strings, the regexp seems to be greedy and is highlighting everything between the first """ and last """ in the document. I'm using nano-1.3.7.singular wrote:For python highlighting, here is the one I came up with.
I used the same sequence for strings that you have since it works better than the one I first used.Note that there isn't supposed to be a line break after brightcyan. But I can't seem to prevent it from getting posted that way.Code: Select all
syntax "python" "\.py$" color brightblue "def [a-zA-Z_0-9]+" color brightcyan "\<(and|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|map|not|or|pass|print|raise|return|try|while)\>" color brightgreen "(["']).*?[^\\]\1" color brightgreen start=""""" end=""""" color brightred "#.*$"

Sure... this is Aktually from my Nano-1.3.7Mafteah wrote:Someone have entry for c/cpp/h etc. files?
Code: Select all
########################Syntax Highlighting for some Stuff########################
## This will Enable Syntax Highlighting vor C/C++ Sourcecode
##
syntax "c-file" "\.(c|C|cc|cpp|h|H|hh|hpp)$"
color red "\<[A-Z_]{2,}\>"
color green "\<(float|double|bool|char|int|short|long|sizeof|enum|void|static|const|struct|union|typedef|extern|signed|unsigned|inline)\>"
color green "\<(class|printf|namespace|template|public|protected|private|typename|this|friend|virtual|using|mutable|volatile|register|explicit)\>"
color brightyellow "\<(for|if|while|do|else|case|default|switch|goto|continue|break|return)\>"
color brightyellow "\<(try|throw|catch|operator|new|delete)\>"
color brightcyan "^ *# *(define|undef|include|ifn?def|endif|elif|else|if)"
color brightmagenta "'([^\]|(\\['abfnrtv\\]))'" "'\\(([0-7][0-7]?)|([0-3][0-7][0-7]))'" "'\\x[0-9A-Fa-f][0-9A-Fa-f]?'"
## Syntax Highliting for HTML
syntax "HTML" "\.html$"
color blue start="<" end=">"
color red "&[^; ]*;"
# PHP Syntax Highlighting
syntax "php" "\.php[2345s~]?$"
color brightblue "(.*)\("
color blue "\$[a-zA-Z_0-9$]*|[=!<>]"
color green "(var|class|function|echo|case|break|default|exit|switch|if|else|elseif|@|while)\s"
color green "[.,{}();]"
color red "('.*')|(".*")"
color brightyellow "(#.*|//.*)$"
color brightyellow start="/\*" end="\*/"
color brightblue "(<\?(php)?|\?>)"
color white start="\?>" end="<\?(php)?"
## Mini Syntax Highliting for TeX files
syntax "TeX" "\.tex$"
color green "\\.|\\[A-Za-z]*"
color magenta "[{}]"
color blue "%.*"
## Syntax Highliting for mutt
syntax "mutt"
color green "^>.*"
## Here is an example for groff
##
syntax "groff" "\.ms$" "\.mm$" "\.me$" "\.tmac$" "^tmac." ".rof"
color cyan "^\.ds [^ ]*"
color cyan "^\.nr [^ ]*"
color brightmagenta "\\."
color brightmagenta "\\f."
color brightmagenta "\\f\(.."
color brightmagenta "\\s(\+|\-)?[0-9]"
color cyan "(\\|\\\\)n."
color cyan "(\\|\\\\)n\(.."
color cyan start="(\\|\\\\)n\[" end="]"
color brightgreen "^\. *[^ ]*"
color yellow "^\.\\".*$"
color green "(\\|\\\\)\*."
color green "(\\|\\\\)\*\(.."
color green start="(\\|\\\\)\*\[" end="]"
color brightred "\\\(.."
color brightred start="\\\[" end="]"
color brightcyan "\\\\\$[1-9]"
## Code Highlighting for perl source
##
syntax "perl" "\.p[lm]$"
color red "\<(accept|alarm|atan2|bin(d|mode)|c(aller|h(dir|mod|op|own|root)|lose(dir)?|onnect|os|rypt)|d(bm(close|open)|efined|elete|ie|o|ump)|e(ach|of|val|x(ec|ists|it|p))|f(cntl|ileno|lock|ork))\>"
color red "\<(get(c|login|peername|pgrp|ppid|priority|pwnam|(host|net|proto|serv)byname|pwuid|grgid|(host|net)byaddr|protobynumber|servbyport)|([gs]et|end)(pw|gr|host|net|proto|serv)ent|getsock(name|opt)|gmtime|goto|grep|hex|index|int|ioctl|join)\>"
color red "\<(keys|kill|last|length|link|listen|local(time)?|log|lstat|m|mkdir|msg(ctl|get|snd|rcv)|next|oct|open(dir)?|ord|pack|pipe|pop|printf?|push|q|qq|qx|rand|re(ad(dir|link)?|cv|do|name|quire|set|turn|verse|winddir)|rindex|rmdir|s|scalar|seek(dir)?)\>"
color red "\<(se(lect|mctl|mget|mop|nd|tpgrp|tpriority|tsockopt)|shift|shm(ctl|get|read|write)|shutdown|sin|sleep|socket(pair)?|sort|spli(ce|t)|sprintf|sqrt|srand|stat|study|substr|symlink|sys(call|read|tem|write)|tell(dir)?|time|tr(y)?|truncate|umask)\>"
color red "\<(un(def|link|pack|shift)|utime|values|vec|wait(pid)?|wantarray|warn|write)\>"
color magenta "\<(continue|else|elsif|do|for|foreach|if|unless|until|while|eq|ne|lt|gt|le|ge|cmp|x|my|sub|use|package|can|isa)\>"
color cyan start="[$@%]" end="( |\\W|-)"
color yellow "".*"|qq\|.*\|"
color white "[sm]/.*/"
color white start="(^use| = new)" end=";"
color green "#.*"
color yellow start="<< 'STOP'" end="STOP"
## Here is an example for Java source
##
syntax "Java source" "\.java$"
color green "\<(boolean|byte|char|double|float|int|long|new|short|this|transient|void)\>"
color red "\<(break|case|catch|continue|default|do|else|finally|for|if|return|switch|throw|try|while)\>"
color cyan "\<(abstract|class|extends|final|implements|import|instanceof|interface|native|package|private|protected|public|static|strictfp|super|synchronized|throws|volatile)\>"
color red ""[^"]*""
color yellow "\<(true|false|null)\>"
color blue "//.*"
color blue start="/\*" end="\*/"
color brightblue start="/\*\*" end="\*/"
color brightgreen,green " +$"
## Here is an example for patch files
##
syntax "patch" "\.(patch|diff)$"
color brightgreen "^\+.*"
color green "^\+\+\+.*"
color brightblue "^ .*"
color brightred "^-.*"
color red "^---.*"
color brightyellow "^@@.*"
color magenta "^diff.*"
## Here is an example for manpages
##
syntax "manpage" "\.[1-9]x?$"
color green "\.(S|T)H.*$"
color brightgreen "\.(S|T)H" "\.TP"
color brightred "\.(BR?|I[PR]?).*$"
color brightblue "\.(BR?|I[PR]?|PP)"
color brightwhite "\\f[BIPR]"
color yellow "\.(br|DS|RS|RE|PD)"
## Here is an example for your .nanorc
##
syntax "nanorc" "(\.|/|)nanorc$"
color brightwhite "^ *(set|unset|syntax|color).*$"
color cyan "^ *(set|unset) +(autoindent|backup|backupdir|brackets|const|cut|fill|historylog|morespace|mouse|multibuffer|noconvert|nofollow|nohelp|nowrap|operatingdir|preserve|punct|quotestr|rebinddelete|regexp|smarthome|smooth|speller|suspend|tabsize|tempfile)\>"
color cyan "^ *(set|unset) +(view|whitespace)"
color green "^ *(set|unset|syntax)\>"
color yellow "^ *color +(bright)?(white|black|red|blue|green|yellow|magenta|cyan)(,(white|black|red|blue|green|yellow|magenta|cyan))?\>"
color magenta "^ *color\>" "\<(start|end)="
color white ""(\\.|[^"])*""
color blue "^ *#.*$"
## Here is an example for ebuilds/eclasses
##
syntax "ebuild" "\.e(build|class)$"
color brightgreen "^src_(unpack|compile|install|test)" "^pkg_(config|nofetch|setup|(pre|post)(inst|rm))"
color green "\<(case|do|done|elif|else|esac|exit|fi|for|function|if|in|local|read|return|select|shift|then|time|until|while)\>"
color green "(\{|\}|\(|\)|\;|\]|\[|`|\\|\$|<|>|!|=|&|\|)"
color green "-(e|d|f|r|g|u|w|x|L)\>"
color green "-(eq|ne|gt|lt|ge|le|s|n|z)\>"
color brightred "\$\{?[a-zA-Z_0-9]+\}?"
color red "\<(ARCH|HOMEPAGE|DESCRIPTION|IUSE|SRC_URI|LICENSE|SLOT|KEYWORDS|FILESDIR|WORKDIR|(P|R)?DEPEND|PROVIDE|DISTDIR|RESTRICT|USERLAND)\>"
color red "\<(S|D|T|PV|PF|P|PN|A)\>" "\<C(XX)?FLAGS\>" "\<LDFLAGS\>" "\<C(HOST|TARGET|BUILD)\>"
color magenta "\<use(_(with|enable))?\> [!a-zA-Z0-9_+ -]*" "inherit.*"
color brightblue "e(begin|end|conf|install|make|warn|infon?|error|patch)"
color brightblue "\<die\>" "\<use(_(with|enable))?\>" "\<inherit\>" "\<has\>" "\<(has|best)_version\>" "\<unpack\>"
color brightblue "\<(do|new)(ins|s?bin|doc|lib(|\.so|\.a)|man|info|exe|initd|confd|envd|pam|menu|icon)\>"
color brightblue "\<do(python|sed|dir|hard|sym|html|jar|mo)\>" "\<keepdir\>"
color brightblue "prepall(|docs|info|man|strip)" "prep(info|lib|lib\.(so|a)|man|strip)"
color brightblue "\<(|doc|ins|exe)into\>" "\<f(owners|perms)\>" "\<(exe|ins|dir)opts\>"
color blue "\<make\>" "\<(cat|cd|chmod|chown|cp|echo|env|export|grep|let|ln|mkdir|mv|rm|sed|set|tar|touch|unset)\>"
color yellow "#.*$"
color brightyellow ""(\\.|[^"])*"" "'(\\.|[^'])*'"
## Here is an example for shell scripts
##
syntax "shellscript" "\.sh$"
color brightgreen "^[a-zA-Z_0-9]+\(\)"
color green "\<(case|do|done|elif|else|esac|exit|fi|for|function|if|in|local|read|return|select|shift|then|time|until|while)\>"
color green "(\{|\}|\(|\)|\;|\]|\[|`|\\|\$|<|>|!|=|&|\|)"
color green "-(e|d|f|r|g|u|w|x|L)\>"
color green "-(eq|ne|gt|lt|ge|le|s|n|z)\>"
color brightblue "\<make\>" "\<(cat|cd|chmod|chown|cp|echo|env|export|grep|install|let|ln|mkdir|mv|rm|sed|set|tar|touch|umask|unset)\>"
color brightred "\$\{?[a-zA-Z_0-9]+\}?"
color yellow "#.*$"
color brightyellow ""(\\.|[^"])*"" "'(\\.|[^'])*'"
Code: Select all
## Apache httpd.conf highlighting
##
#how to add sites-enabled files? "default" is too generic to keep in here I think
syntax "Apache2" "apache2\.conf$" "httpd\.conf$" "default"
color brightwhite "(ServerRoot|(Lock|Pid)File|Timeout|(Max)?KeepAlive(Requests|Timeout)?)"
color brightwhite "(User|Group|LogFormat|ErrorLog|Include|(Script)?Alias)"
color brightwhite "(ErrorDocument|AccessFileName|UseCanonicalName|TypesConfig|DefaultType)"
color brightwhite "(HostnameLookups|IndexOptions|(Readme|Header)Name|LanguagePriority)"
color brightwhite "(AddIcon(ByEncoding|ByType)?|DefaultIcon|IndexIgnore|BrowserMatch)"
color brightwhite "(Add(Encoding|Language|(Default)?Charset|Type|Handler)|DirectoryIndex)"
color brightwhite "(DocumentRoot|Server(Admin|Signature)|LogLevel|CustomLog)"
color brightwhite "((Force)?LanguagePriority|NameVirtualHost)"
color yellow "(SetHandler|Order|Deny|Allow|SetOutputFilter)"
color yellow "(AllowOverride|FileInfo|AuthConfig|Limit)"
color yellow "([^A-Z0-9a-z]Options|Indexes|(\+|\-)?SymLinksIfOwnerMatch)"
color yellow "(Includes(NoExec)?|(\+|\-)?MultiViews)"
color yellow "(None|allow,deny|deny,allow|(allow)? from (all)?|Prefer|Fallback)"
color yellow "(Add(Handler|OutputFilter)|NumServers|AcceptMutex)"
color yellow "((Min|Max)Spare(Threads|Servers)|Start(Threads|Servers))"
color yellow "(MaxClients|(Max)?ThreadsPerChild|MaxRequestsPerChild)"
color yellow "(FancyIndexing|VersionSort|ExecCGI|FollowSymLinks)"
color brightred "(On|Off)[[:space:]]*$"
color brightred "[[:space:]]+(debug|info|notice|warn|error|crit|alert|emerg)[[:space:]]*$"
color brightred "[[:space:]]+(combined|common|referer|agent)[[:space:]]*$"
color brightred "[[:space:]]+(redirect\-carefully|nokeepalive)[[:space:]]*"
color brightred "[[:space:]]+(force\-response\-1\.0)[[:space:]]*"
color brightred "[[:space:]]+(downgrade\-1\.0)[[:space:]]*"
color brightred "[[:space:]]+application/[a-zA-Z\-]+[[:space:]]*"
color brightred "[[:space:]]+type-map[[:space:]]*"
color magenta "[[:space:]]+[0-9]+[[:space:]]*"
color magenta "(/)?(2[0-5]{2}|1[0-9]{2}|[1-9][0-9]|[1-9])(\.(2[0-5]{2}|1[0-9]{2}|[1-9][0-9]|[0-9])){3}([[:space:]]+::(2[0-5]{2}|1[0-9]{2}|[1-9][0-9]|[0-9])/(2[0-5]{2}|1[0-9]{2}|[1-9][0-9]|[0-9]))?"
color brightcyan start="<" end=">"
color white ""(\\.|[^\"])*""
# Unix-based paths
# can't use \] in the regex for some reason?!? Maybe a bug?
# this is preventing a 100% "to the end of the line" match for a few
# lines (the trailing characters from ] to the EOL are not highlighted.
# if anyone knows how to make it work, let me know.. ;)
color white "[[:space:]]+(/[/\[\^#A-Za-z0-9\.\*\_\-]+)+"
color green "^[[:space:]]*#.*"
Code: Select all
## Conky config highlighting
##
syntax "Conky" ".conkyrc$"
color brightblue "(use_spacer|background|use_xft|xftfont|xftalpha)"
color brightblue "(mail_spool|update_interval|own_window)"
color brightblue "(double_buffer|minimum_size)"
color brightblue "(draw_(outline|borders|shades)|stippled_borders)"
color brightblue "border_(margin|width)"
color brightblue "default_((shade_|outline_)?color)"
color brightblue "(alignment|gap_x|gap_y|no_buffers|uppercase)"
color brightblue "^TEXT[[:space:]]*$"
color brightred "[[:space:]]+(yes|no)[[:space:]]*"
color brightred "(top_left|top_right|bottom_left|bottom_right)[[:space:]]*$"
color magenta "[[:space:]]+([[:space:]]*([0-9]\.?))+[[:space:]]*"
color brightred "\$\{?[a-zA-Z_0-9\# ]+\}?"
color green "^[[:space:]]*#.*"
color white "[[:space:]]+\#[0-9A-Fa-f]{6}"
Java is in mine:Kasyx wrote:Sorry to drag this up again, but I don't suppose anyone has a Java one?
Code: Select all
## Sample initialization file for GNU nano
## Please note that you must have configured nano with --enable-nanorc
## for this file to be read! Also note that characters specially
## interpreted by the shell should not be escaped here.
##
## To make sure a value is not enabled, use "unset <option>"
##
## For the options that take parameters, the default value is given.
## Other options are unset by default.
## Use auto-indentation
set autoindent
## Backup files to filename~
# set backup
## Constantly display the cursor position in the status bar.
set const
## Use cut to end of line with ^K by default
# set cut
## Set the line length for wrapping text and justifying paragraphs.
## If fill is negative, the line length will be the screen width less
## this number.
##
# set fill -8
## Enable ~/.nano_history for saving and reading search/replace strings.
set historylog
## Use alternate keypad routines
# set keypad
## Allow multiple file buffers (using ^R inserts into separate buffer).
## You must have configured with --enable-multibuffer or --enable-extra
## for this to work.
##
set multibuffer
## Don't convert files from DOS/Mac format
# set noconvert
## Don't follow symlinks when writing files
# set nofollow
## Don't display the help lists at the bottom of the screen
# set nohelp
## Don't wrap text at all
set nowrap
## Set operating directory. nano will not read or write files outside
## this directory and its subdirectories. Also, the current directory
## is changed to here, so files are inserted from this dir. A blank
## string means the operating directory feature is turned off.
##
#set operatingdir ""
## Preserve the XON and XOFF keys (^Q and ^S)
# set preserve
## The email-quote string, used to justify email-quoted paragraphs.
## This is an extended regular expression if your system supports them,
## otherwise a literal string. Default:
# set quotestr "^([ ]*[\|>:}#])+"
## if you have regexps, otherwise:
# set quotestr "> "
## You can get old nano quoted-justify behavior via:
# set quotestr "(> )+"
## Do extended regular expression searches by default
# set regexp
## Use smooth scrolling as the default
set smooth
## Use this spelling checker instead of the internal one. This option
## does not properly have a default value.
##
# set speller "aspell -c"
## Allow nano to be suspended with ^Z
# set suspend
## Use this tab size instead of the default; it must be greater than 0
# set tabsize 8
## Save automatically on exit, don't prompt
# set tempfile
## Disallow file modification, why would you want this in an rc file? ;)
# set view
## Color setup
## Format:
## syntax "short description" ["filename regex" ...]
## color foreground,background "regex" ["regex"...]
##
## Legal colors: white, black, red, blue, green, yellow, magenta, cyan.
## You may use the prefix "bright" to mean a stronger color highlight.
##
## To use multi-line regexes use the start="regex" end="regex" format.
##
## If your system supports transparency, not specifying a background
## color will use a transparent color. If you don't want this, be sure
## to set the background color to black or white.
##
# syntax "c-file" "\.(c|h)$"
# color red "\<[A-Z_]{2,}\>"
# color green "\<(float|char|int|void|static|const|struct)\>"
# color brightyellow "\<(if|while|do|else|case|switch)\>"
# color brightcyan "^#( )*(define|include|ifn?def|endif|elif|else|if)"
##
## You will in general want your comments and strings to come last,
## because syntax highlighting rules will be applied in the order they
## are read in.
##
# color brightyellow "<[^= ]*>" ""(\\.|[^"])*""
##
## This string is VERY resource intensive!!!
# color brightyellow start=""(\\.|[^"])*\\( | )*$" end="^(\\.|[^"])*""
##
## And we want to have some nice comment highlighting too
# color brightblue "//.*"
# color brightblue start="/\*" end="\*/"
## Here is a short example for HTML
# syntax "HTML" "\.html$"
# color blue start="<" end=">"
# color red "&[^; ]*;"
## Here is a short example for TeX files
# syntax "TeX" "\.tex$"
# color green "\\.|\\[A-Za-z]*"
# color magenta "[{}]"
# color blue "%.*"
## Here is an example for quoted emails (under e.g. mutt)
# syntax "mutt"
# color green "^>.*"
## Here is an example for groff
##
# syntax "groff" "\.ms$" "\.mm$" "\.me$" "\.tmac$" "^tmac." ".rof"
## The argument of .nr or .ds
# color cyan "^\.ds [^ ]*"
# color cyan "^\.nr [^ ]*"
## Single character escapes
# color brightmagenta "\\."
## Highlight the argument of \f or \s in the same color
# color brightmagenta "\\f."
# color brightmagenta "\\f\(.."
# color brightmagenta "\\s(\+|\-)?[0-9]"
## \n
# color cyan "(\\|\\\\)n."
# color cyan "(\\|\\\\)n\(.."
# color cyan start="(\\|\\\\)n\[" end="]"
## Requests
# color brightgreen "^\. *[^ ]*"
## Comments
# color yellow "^\.\\".*$"
## Strings
# color green "(\\|\\\\)\*."
# color green "(\\|\\\\)\*\(.."
# color green start="(\\|\\\\)\*\[" end="]"
## Characters
# color brightred "\\\(.."
# color brightred start="\\\[" end="]"
## Macro arguments
# color brightcyan "\\\\\$[1-9]"
## Here is an example for perl
##
# syntax "perl" "\.p[lm]$"
# color red "\<(accept|alarm|atan2|bin(d|mode)|c(aller|h(dir|mod|op|own|root)|lose(dir)?|onnect|os|rypt)|d(bm(close|open)|efined|elete|ie|o|ump)|e(ach|of|val|x(ec|ists|it|p))|f(cntl|ileno|lock|ork)|get(c|login|peername|pgrp|ppid|priority|pwnam|(host|net|proto|serv)byname|pwuid|grgid|(host|net)byaddr|protobynumber|servbyport)|([gs]et|end)(pw|gr|host|net|proto|serv)ent|getsock(name|opt)|gmtime|goto|grep|hex|index|int|ioctl|join|keys|kill|last|length|link|listen|local(time)?|log|lstat|m|mkdir|msg(ctl|get|snd|rcv)|next|oct|open(dir)?|ord|pack|pipe|pop|printf?|push|q|qq|qx|rand|re(ad(dir|link)?|cv|do|name|quire|set|turn|verse|winddir)|rindex|rmdir|s|scalar|seek|seekdir|se(lect|mctl|mget|mop|nd|tpgrp|tpriority|tsockopt)|shift|shm(ctl|get|read|write)|shutdown|sin|sleep|socket(pair)?|sort|spli(ce|t)|sprintf|sqrt|srand|stat|study|substr|symlink|sys(call|read|tem|write)|tell(dir)?|time|tr|y|truncate|umask|un(def|link|pack|shift)|utime|values|vec|wait(pid)?|wantarray|warn|write)\>"
# color magenta "\<(continue|else|elsif|do|for|foreach|if|unless|until|while|eq|ne|lt|gt|le|ge|cmp|x|my|sub|use|package|can|isa)\>"
# color cyan start="[$@%]" end="( |\\W|-)"
# color yellow "".*"|qq\|.*\|"
# color white "[sm]/.*/"
# color white start="(^use| = new)" end=";"
# color green "#.*"
# color yellow start="<< 'STOP'" end="STOP"
## Here is an example for Java source
##
# syntax "Java source" "\.java$"
# color green "\<(boolean|byte|char|double|float|int|long|new|short|this|transient|void)\>"
# color red "\<(break|case|catch|continue|default|do|else|finally|for|if|return|switch|throw|try|while)\>"
# color cyan "\<(abstract|class|extends|final|implements|import|instanceof|interface|native|package|private|protected|public|static|strictfp|super|synchronized|throws|volatile)\>"
# color red ""[^"]*""
# color yellow "\<(true|false|null)\>"
# color blue "//.*"
# color blue start="/\*" end="\*/"
# color brightblue start="/\*\*" end="\*/"
# color brightgreen,brightgreen "[ ]+$"
##########################################################################
##########################################################################
#
#
# D U M M Y Ruleset
#
#
# If you want to create your own rules you can use this simple example:
#
# syntax "Dummy" "(\.|/|)foo$" -> this creates the ruleset "Dummy" and it
# matches all filenames ending with foo
# "foo" -> this matches foo exactly
# "foo.*$" -> this matches files beginning with foo
#
#
#
# After you selected the files you can define rulesets for this file:
#
#
# color blue "#.*$" -> colors all after "#" blue on this line
# color red "\@" -> colors all "@" red, \ means to handle it _not_
# as a special sign
# color yellow "\<(profi)\>" -> colors only the word profi yellow
# color yellow "profi" -> colors all strings "profi" yellow, also in
# profile
# color black "[0-9]" -> colors all numbers black
# color magenta "'(\\.|[^'])*'" -> colors all between ' and ' magenta,
# but only on the same line
# color red "[A-Z0-9\_]+=" -> matches everything folowed by =
# color green "setenv|export" -> matches the string setenv OR export
# color cyan "^.*(foobar).*$" -> colors the whole line cyan, by matching foobar
# on that line
#
# color brightred,blue start="<!--" end="-->"
#
# -> colors all between <!-- and --> brightred on blue
# even if there are more lines between
#
#
###########################################################################
## default for any file we open is to treat # as a comment
syntax "default"
color green "^[ \t]*#.*"
syntax "c-file" "\.(c|h)$"
color red "\<[A-Z_]{2,}\>"
color brightblue "\<(float|char|int|void|static|const|struct)\>"
color brightmagenta "\<(if|while|do|else|case|switch)\>"
color brightcyan "^ *# *(define|include|ifn?def|endif|elif|else|if)"
color blue "<[^= ]*>" ""(\\.|[^"])*""
## This string is VERY resource intensive!!!
# color brightyellow start=""(\\.|[^"])*\\ *$" end="^(\\.|[^"])*""
color green "//.*"
color green start="/\*" end="\*/"
### all *cf files (e.g. main.cf, Postfix )
syntax "maincf" "(\.|/|)cf$"
color magenta "\=.*$"
color green "#.*$"
color cyan "[A-Z0-9\_]+="
color blue ""(\\.|[^"])*""
color red "\@"
### all *rc files ( e.g. .bashrc, inputrc, xtermcontrol .... )
syntax "rcfiles" "\rc$" "(\.|/|)control$"
color red "'(\\.|[^'])*'"
color blue ""(\\.|[^"])*""
color magenta "[A-Z0-9\_]+="
color magenta "\<(sudo)\>"
color cyan "\<(alias)\>"
color brightcyan "\<(export)\>"
color yellow "\<(shopt)\>"
color brightred "\<(umask)\>.*$"
color green "#.*$"
### all *profile files ( ~/.bash_profile, /etc/profile)
syntax "profiles" "(\.|/|)profile$"
color red "'(\\.|[^'])*'"
color blue ""(\\.|[^"])*""
color magenta "[a-zA-Z0-9\_]+="
color magenta "\<(sudo)\>"
color cyan "\<(export)\>" "\<(alias)\>"
color brightred "\<(umask)\>.*$"
color green "#.*$"
### all *js files ( e.g. Firefox user.js, prefs.js )
syntax "jsfiles" "(\.|/|)js$"
color green "//.*$" start="\/\*" end="\*\/"
color blue "'(\\.|[^'])*'"
color red ""(\\.|[^"])*""
color brightgreen "\<(true)\>"
color brightred "\<(false)\>" "http\:\/\/.*$"
color brightmagenta "[0-9](\\.|[^"])*)"
### all *conf files (e.g. make.conf, xorg.conf, grub.conf, make.globals, Xfce files...)
syntax "configfiles" "(\.|/|)conf$" "(\.|/|)ample$" "(\.|/|)globals$" "xfce.*$" "syslog-ng" "sudoers"
color brightwhite "\<(alias)\>"
color blue "<(\\.|[^'])*>"
color magenta "[a-zA-Z0-9\_]+="
color white ">(\\.|[^'><])*</"
color green "//.*$"
color red ""(\\.|[^"])*""
color red "title.*$" "\<(server)\>" "\<(logfile)\>" "\<(driftfile)\>" "\<(restrict)\>"
color white ":unscaled" "http\:\/\/" "ftp\:\/\/" "rsync\:\/\/"
color magenta "'(\\.|[^'])*'"
color brightwhite "[0-9]"
color brightwhite "[<>]"
color magenta "Section" "EndSection" "SubSection" "EndSubSection"
color red "\<(root)\>"
color brightred,blue "^.*-->" start="<!--.*" end="$"
color green "#.*$" start="<!--" end="-->"
## Xdefaults
syntax "Xdefaults" "(\.|/|)default.$" "(\.|/|)resource.$" "fonts.alias"
color magenta "XTerm"
color cyan "Rxvt"
color white "\*(\\.|[^'])*\:"
color brightblue "\<(true)\>"
color brightred "\<(false)\>"
color brightwhite "[0-9]"
color green "!.*$" "#.*$"
### several config files
syntax "config" "(\.|/|)config$" "(\.|/|)logout$" "(\.|/|)COLORS$" "(\.|/|)colors$"
color red "/.*$" "TERM" "\..*$" "=.*$" "\*.*$"
color white ":unscaled" "[0-9]"
color blue "setenv|export" "\;"
color green "#.*$"
### more config files
syntax "config2" "(\.|/|)env$" "(\.|/|)server.$" "hosts" "gpm" "local.*$" "bootsplash" "crypto-loop"
color red "/.*$" "http\:\/\/.*$"
color white ":unscaled"
color blue "setenv|export"
color brightwhite "[0-9]"
color green "#.*$"
color white "http\:\/\/" "ftp\:\/\/" "rsync\:\/\/"
### even more config files ;-)
syntax "config3" "iptables" "ntp.*$" "rsyncd" "xfs" "saslauthd" "timidity" "net.*$" "hdparm" "esound" "login.*$"
color red "/.*$" "http\:\/\/.*$" ""(\\.|[^"])*"" "\<(server)\>" "\<(logfile)\>""\<(driftfile)\>"
color white ":unscaled" "http\:\/\/" "ftp\:\/\/" "rsync\:\/\/"
color blue "setenv|export"
color brightwhite "[0-9]"
color green "#.*$"
### all *tab files ( e.g. fstab, crontab, inittab )
syntax "fstab" "(\.|/|)tab$"
color magenta "\<(none)\>.*$" "\<(wait)\>" "\<(respawn)\>"
color red "/dev/hd.*$" "\<(ctrlaltdel)\>" "\<(initdefault)\>"
color blue "/dev/sr.*$" "/dev/cd.*$" "\/sbin.*$"
color cyan "/dev/sd.*$"
color brightcyan "^.*(nfs|smbfs).*$"
color yellow "/dev/fd.*$"
color red "root"
color brightwhite "[0-9]"
color green "#.*$"
### etc/passwd
syntax "passwd" "(\.|/|)passwd$" "(\.|/|)shadow$"
color white ".*$"
color blue "\:.*$"
color yellow "\:*\:"
color cyan "/.*$"
color red "/bin/false"
color brightred "root"
color brightgreen "/bin/.*sh"
color white "[0-9]"
color magenta "\:\/.*\:"
### all *desc files ( e.g. use.desc, use.local.desc )
syntax "use" "(\.|/|)desc$"
color green ".*\-"
color white "\:.*$"
color white "\-.*$"
color magenta "\:(\\.|[^'])*\-"
color blue "\-(\\.|[^'])*\:"
color yellow "\/(\\.|[^'])*\:"
color red "x86" "http\:\/\/.*$"
color brightred "\!\!(\\.|[^'])*\!\!" "DO NOT SET THIS FLAG YOURSELF!"
color green "#.*$"
##########################################################################
##########################################################################
## Here is an example for your .nanorc
##
syntax "nanorc" "[\.]*nanorc$"
color white "^ *(set|unset).*$"
color cyan "^ *(set|unset) (autoindent|backup|const|cut|fill|keypad|multibuffer|noconvert|nofollow|nohelp|nowrap|operatingdir|preserve|quotestr|regexp|smooth|speller|suspend|tabsize|tempfile|historylog|view)"
color brightwhite "^ *syntax [^ ]*"
color brightblue "^ *set\>" "^ *unset\>" "^ *syntax\>"
color white "^ *color\>.*"
color yellow "^ *color (bright)?(white|black|red|blue|green|yellow|magenta|cyan)\>"
color magenta "^ *color\>"
color green "^#.*$"
## syntax highlighting in xorg.conf
##
syntax "xorg" "xorg\.conf$"
color brightwhite "[^A-Za-z0-9](End)?Sub[sS]ection([^A-Za-z0-9]|[[:space:]]*)"
color brightwhite "^[[:space:]]*(End)?Section([^A-Za-z0-9]|[[:space:]]*)"
color yellow "[^A-Za-z0-9](Monitor|View[pP]ort|Virtual)[^A-Za-z0-9]"
color yellow "[^A-Za-z0-9]Mod(e|es|eline|ulePath|elName)[^A-Za-z0-9]"
color yellow "[^A-Za-z0-9](\+vsync|\+hsync|HorizSync|VertRefresh)[^A-Za-z0-9]"
color yellow "[^A-Za-z0-9](Rgb|Font)Path[^A-Za-z0-9]"
color yellow "[^A-Za-z0-9](Default(Color)?)?Depth[^A-Za-z0-9]"
color yellow "[^A-Za-z0-9](Input)?Device[^A-Za-z0-9]"
color yellow "[^A-Za-z0-9](Identifier|Screen|Option)[^A-Za-z0-9]"
color yellow "[^A-Za-z0-9]((Left|Right)Of|Driver|Load)[^A-Za-z0-9]"
color yellow "[^A-Za-z0-9](VendorName|BoardName|BusID)[^A-Za-z0-9]"
color magenta "[0-9]"
color white ""(\\.|[^"])*""
color green "#.*"
## PHP syntax highlighting
##
syntax "php" "\.php$" "\.php[2345s]$" "\.phtml$"
#special
color brightwhite "([^A-Za-z0-9])|(<\?php|\?>|var|and|or|default|class|extends|true|false|global|function|new|switch|case|break|next|prev|elseif|if|else|foreach|for|as|do|while|exit|declare|require_once|require|include_once|include|return)([^A-Za-z0-9])"
#types
color brightblue "([^A-Za-z0-9])|(null|int|string|array|float|bool|object|resource)[^A-Za-z0-9]"
#functions (Ack! - Too many!)
color brightmagenta "([^A-Za-z0-9])(setcookie|sprintf|rmdir|move_uploaded_file|readdir|chdir|closedir|getcwd|shuffle|rsort|arsort|round|ceil|floor|is_dir|realpath|sort|usort|in_array|chr|opendir|mktime|getdata|date|fopen|fwrite|fread|fclose|sizeof|nl2br|basename|copy|isset|time|unlink|session_start|trim|rtrim|md5|echo|print|printf|explode|implode|array|split|join|die|function)([^A-Za-z0-9])*"
color brightmagenta "base64_(en|de)code|(un)?serialize|(add|strip)slashes"
color brightmagenta "str(natcasecmp|tolower|toupper|pos|str|istr|_replace)|substr(_count)?"
color brightmagenta "array_(reverse|search|merge|slice|push|pop)"
color brightmagenta "preg_(match(_all)?|replace|split)"
color brightmagenta "file(type|owner|group|perms|size|atime|mtime|_get_contents|_exists)"
color brightmagenta "mysql_(error|connect|select_db|close|query)"
#Etc global command ;) (added by ObsidianX)
color blue "([^A-Za-z0-9])|(global|if|else)([^A-Za-z0-9])*"
#Variables
color brightcyan "\$[A-Za-z0-9_\>-]*"
#strings
color brightyellow ""(\\.|[^"])*""
color brightyellow "'(\\.|[^\'])*'"
#color brightyellow start=""(\\.|[^"])*\\( | )*$" end="^(\\.|[^"])*""
#color brightblue start="".*" end=".*""
#comments
color brightred "//.*"
color brightred "#.*"
color brightred start="/\*" end="\*/"
## Here is an example for shell scripts
##
syntax "shellscript" "\.sh$" ".bashrc"
color brightgreen "^[a-zA-Z_0-9]+\(\)"
color brightwhite "\<(case|do|done|elif|else|esac|exit)\>"
color brightwhite "\<(fi|for|function|if|in|local|read)\>"
color brightwhite "\<(return|select|shift|then|time|until|while)\>"
color brightwhite "(\{|\}|\(|\)|\;|\]|\[|`|\\|\$|<|>|!|=|&|\|)"
color brightwhite "-(e|d|f|r|g|u|w|x|L)\>"
color brightwhite "-(eq|ne|gt|lt|ge|le|s|n|z)\>"
# commands
color brightblue "\<make\>"
color brightblue "\<(alias|cat|cd|chmod|chown|cp|echo|env)\>"
color brightblue "\<(eval|export|grep|install|let|ln|ls)\>"
color brightblue "\<(mkdir|mv|rm|sed|set|tar|touch|umask|unset)\>"
# a program I installed
color magenta "(figlet)"
# variables?
color brightred "\$\{?[a-zA-Z_0-9]+\}?"
# strings?
color brightyellow ""(\\.|[^"])*"" "'(\\.|[^'])*'"
color brightyellow start=""EOF"" end="EOF"
# comments
color green "#.*$"
## Apache httpd.conf highlighting
##
#how to add sites-enabled files? "default" is too generic to keep in here I think
syntax "Apache2" "apache2\.conf$" "httpd\.conf$" "default"
color brightwhite "(ServerRoot|(Lock|Pid)File|Timeout|(Max)?KeepAlive(Requests|Timeout)?)"
color brightwhite "(User|Group|LogFormat|ErrorLog|Include|(Script)?Alias)"
color brightwhite "(ErrorDocument|AccessFileName|UseCanonicalName|TypesConfig|DefaultType)"
color brightwhite "(HostnameLookups|IndexOptions|(Readme|Header)Name|LanguagePriority)"
color brightwhite "(AddIcon(ByEncoding|ByType)?|DefaultIcon|IndexIgnore|BrowserMatch)"
color brightwhite "(Add(Encoding|Language|(Default)?Charset|Type|Handler)|DirectoryIndex)"
color brightwhite "(DocumentRoot|Server(Admin|Signature)|LogLevel|CustomLog)"
color brightwhite "((Force)?LanguagePriority|NameVirtualHost)"
color yellow "(SetHandler|Order|Deny|Allow|SetOutputFilter)"
color yellow "(AllowOverride|FileInfo|AuthConfig|Limit)"
color yellow "([^A-Z0-9a-z]Options|Indexes|(\+|\-)?SymLinksIfOwnerMatch)"
color yellow "(Includes(NoExec)?|(\+|\-)?MultiViews)"
color yellow "(None|allow,deny|deny,allow|(allow)? from (all)?|Prefer|Fallback)"
color yellow "(Add(Handler|OutputFilter)|NumServers|AcceptMutex)"
color yellow "((Min|Max)Spare(Threads|Servers)|Start(Threads|Servers))"
color yellow "(MaxClients|(Max)?ThreadsPerChild|MaxRequestsPerChild)"
color yellow "(FancyIndexing|VersionSort|ExecCGI|FollowSymLinks)"
color brightred "(On|Off)[[:space:]]*$"
color brightred "[[:space:]]+(debug|info|notice|warn|error|crit|alert|emerg)[[:space:]]*$"
color brightred "[[:space:]]+(combined|common|referer|agent)[[:space:]]*$"
color brightred "[[:space:]]+(redirect\-carefully|nokeepalive)[[:space:]]*"
color brightred "[[:space:]]+(force\-response\-1\.0)[[:space:]]*"
color brightred "[[:space:]]+(downgrade\-1\.0)[[:space:]]*"
color brightred "[[:space:]]+application/[a-zA-Z\-]+[[:space:]]*"
color brightred "[[:space:]]+type-map[[:space:]]*"
color magenta "[[:space:]]+[0-9]+[[:space:]]*"
color magenta "(/)?(2[0-5]{2}|1[0-9]{2}|[1-9][0-9]|[1-9])(\.(2[0-5]{2}|1[0-9]{2}|[1-9][0-9]|[0-9])){3}([[:space:]]+::(2[0-5]{2}|1[0-9]{2}|[1-9][0-9]|[0-9])/(2[0-5]{2}|1[0-9]{2}|[1-9][0-9]|[0-9]))?"
color brightcyan start="<" end=">"
color white ""(\\.|[^"])*""
# Unix-based paths
# can't use \] in the regex for some reason?!? Maybe a bug?
# this is preventing a 100% "to the end of the line" match for a few
# lines (the trailing characters from ] to the EOL are not highlighted.
# if anyone knows how to make it work, let me know.. ;)
color white "[[:space:]]+(/[/\[\^#A-Za-z0-9\.\*\_\-]+)+"
color green "^[[:space:]]*#.*"
## Conky config highlighting
##
syntax "Conky" ".conkyrc$"
color brightblue "(use_spacer|background|use_xft|xftfont|xftalpha)"
color brightblue "(mail_spool|update_interval|own_window)"
color brightblue "(double_buffer|minimum_size)"
color brightblue "(draw_(outline|borders|shades)|stippled_borders)"
color brightblue "border_(margin|width)"
color brightblue "default_((shade_|outline_)?color)"
color brightblue "(alignment|gap_x|gap_y|no_buffers|uppercase)"
color brightblue "^TEXT[[:space:]]*$"
color brightred "[[:space:]]+(yes|no)[[:space:]]*"
color brightred "(top_left|top_right|bottom_left|bottom_right)[[:space:]]*$"
color magenta "[[:space:]]+([[:space:]]*([0-9]\.?))+[[:space:]]*"
color brightred "\$\{?[a-zA-Z_0-9\# ]+\}?"
color green "^[[:space:]]*#.*"
color white "[[:space:]]+\#[0-9A-Fa-f]{6}"
## Code Highlighting for perl source
##
syntax "perl" "\.p[lm]$"
color red "\<(accept|alarm|atan2|bin(d|mode)|c(aller|h(dir|mod|op|own|root)|lose(dir)?|onnect|os|rypt)|d(bm(close|open)|efined|elete|ie|o|ump))\>"
color red "\<(e(ach|of|val|x(ec|ists|it|p))|f(cntl|ileno|lock|ork))\>"
color red "\<(get(c|login|peername|pgrp|ppid|priority|pwnam|(host|net|proto|serv)byname|pwuid|grgid|(host|net)byaddr|protobynumber|servbyport))\>"
color red "\<(([gs]et|end)(pw|gr|host|net|proto|serv)ent|getsock(name|opt)|gmtime|goto|grep|hex|index|int|ioctl|join)\>"
color red "\<(keys|kill|last|length|link|listen|local(time)?|log|lstat|m|mkdir|msg(ctl|get|snd|rcv)|next|oct|open(dir)?|ord|pack|pipe|pop|printf?)\>"
color red "\<(push|q|qq|qx|rand|re(ad(dir|link)?|cv|do|name|quire|set|turn|verse|winddir)|rindex|rmdir|s|scalar|seek(dir)?)\>"
color red "\<(se(lect|mctl|mget|mop|nd|tpgrp|tpriority|tsockopt)|shift|shm(ctl|get|read|write)|shutdown|sin|sleep|socket(pair)?)\>"
color red "\<(sort|spli(ce|t)|sprintf|sqrt|srand|stat|study|substr|symlink|sys(call|read|tem|write)|tell(dir)?|time|tr(y)?|truncate|umask)\>"
color red "\<(un(def|link|pack|shift)|utime|values|vec|wait(pid)?|wantarray|warn|write)\>"
color magenta "\<(continue|else|elsif|do|for|foreach|if|unless|until|while|eq|ne|lt|gt|le|ge|cmp|x|my|sub|use|package|can|isa)\>"
color cyan start="[$@%]" end="( |\\W|-)"
color yellow "".*"|qq\|.*\|"
color white "[sm]/.*/"
color white start="(^use| = new)" end=";"
color green "#.*"
color yellow start="<< 'STOP'" end="STOP"
## Here is an example for manpages
##
syntax "manpage" "\.[1-9]x?$"
color green "\.(S|T)H.*$"
color brightgreen "\.(S|T)H" "\.TP"
color brightred "\.(BR?|I[PR]?).*$"
color brightblue "\.(BR?|I[PR]?|PP)"
color brightwhite "\\f[BIPR]"
color yellow "\.(br|DS|RS|RE|PD)"
# yay, python
syntax "python" "\.py$"
#color red "[\[\](){}:]"
# flow control
color yellow "([[:space:]]|^)(and|break|class|def|elif|else|except|for|if|import|in|or|print|raise|return|try|while)([[:space:]]|:)"
color brightblue "\<__dict__\>"
color brightblue "(Exception|getopt|os|string|sys)"
# methods
#color brightcyan "\.?(abspath|argv|curdir|error|exists|exit|extend)"
#color brightcyan "\.?(iteritems|path|popen|prefix|readlines|remove|returncode|startswith|std(out|err)|version|wait|write)"
#color brightcyan "\.getopt"
color brightcyan "\.[A-Za-z]+"
# errors
color brightyellow "(IOError)"
color green "#.*"
color brightred "self"
#color cyan "(["']).*?[^\]\1"
# this is kludge to avoid the line for the example C syntax marked "this is wasteful"
# strings
color cyan """" "''"
color cyan start="'''" end="'''"
color cyan start=""""" end="""""
color cyan ""(\\.|[^"])*"" "'(\\.|[^'])*'"
# numbers
color magenta "([[:space:]]+[0-9]+[[:space:]]*)|(\([0-9]+\))"
Code: Select all
syntax "php" ".php"
color cyan ".?[[:alnum:]_-]+\("
color magenta "\$[a-zA-Z_0-9$]+"
color brightcyan "([[:space:]]+|^)(var|class|function|echo|case|continue|switch|break|default|exit|switch|if|else|elseif|@|while|return)([^[:alnum:]])"
color green "[.,{}();]"
color brightwhite "\[|\]|="
color red "'(\\.|[^'])*'" ""(\\.|[^\"])*""
color brightyellow "#.*|//.*"
color brightyellow start="/\*" end="\*/"
color white start="\?>" end="<\?(php)?"Hey, I tried to make one, but I am not able to make nano highlight Comments in "{ }"ravloony wrote:So does anyone have one that does freepascal? I use that at school and it would be nice. Nano is such a cool editor.The teachers try to make us use emacs, but to be honest it's not my favourite, and has wierd bugs. Also the PC's there have about 2M of RAM, so the lighter, the better...
Anyway, if someone has got a pascal-capable .nanorc file, could they please post it?
be cool.
Ravloony
Code: Select all
## Here is an example for Delphi/Pascal source
##
syntax "Delphi Source" "\.pas$"
color brightcyan "\<(boolean|byte|char|double|float|integer|long|new|short|this|transient|void)\>"
color brightred "\<(break|case|catch|continue|default|do|else|finally|for|if|then|return|switch|throw|try|while|function)\>"
color cyan "\<(abstract|unit|class|extends|final|implements|import|instanceof|interface|native|package|private|protected|public|static|strictfp|super|synchr$color brightyellow "\<(until|repeat|var|uses|type|begin|end|const)\>"
color magenta "\<(true|false|null|procedure)\>"
color brightblue "//.*"
#color brightblue start="{" end="}"
Code: Select all
color brightblue start="{" end="}"Code: Select all
Error in /etc/nanorc on line 423: Bad regex "{": Invalid preceding regular expression
Press Return to continue starting nano
Curly braces have significance in regexps, it may help to escape them:gets meCode: Select all
color brightblue start="{" end="}"
that:Code: Select all
Error in /etc/nanorc on line 423: Bad regex "{": Invalid preceding regular expression Press Return to continue starting nano
Code: Select all
color brightblue start="\{" end="\}"Code: Select all
## Here is an example for Delphi/Pascal source
##
syntax "Delphi Source" "\.pas$"
color brightcyan "\<(boolean|byte|char|double|float|integer|long|new|short|this|transient|void)\>"
color brightred "\<(break|case|catch|continue|default|do|else|finally|for|if|then|return|switch|throw|try|while|function)\>"
color cyan "\<(abstract|unit|class|extends|final|implements|import|instanceof|interface|native|package|private|protected|public|static|strictfp|super|$color brightyellow "\<(until|repeat|var|uses|type|begin|end|const)\>"
color magenta "\<(true|false|null|procedure)\>"
color brightblue "//.*"
color brightblue start="\{" end="\}"
Code: Select all
Error in /home/javi/.nanorc on line 351: Duplicate syntax name ebuild
Pulsa intro para continuar iniciando nanoCode: Select all
syntax "ebuild" "\.e(build|class)$"

Code: Select all
nano -w .nanorc
Error in /home/alj/.nanorc on line 1: The "default" syntax must take no extensions
Error in /home/alj/.nanorc on line 2: Regex strings must begin and end with a " character
Error in /home/alj/.nanorc on line 4: Syntax "default" has no color commands
Press Enter to continue starting nano.