Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Enable nano syntax highlighting
View unanswered posts
View posts from last 24 hours

Goto page Previous  1, 2, 3  Next  
Reply to topic    Gentoo Forums Forum Index Documentation, Tips & Tricks
View previous topic :: View next topic  
Author Message
Snake007uk
Apprentice
Apprentice


Joined: 12 Jan 2003
Posts: 198
Location: London, UK

PostPosted: Fri Sep 10, 2004 5:14 pm    Post subject: Reply with quote

Is is possitble to have the colour functionality of VI in nano ? as in if you edit for example /etc/fstab and you make a mistake VI normally highlights the mistake, could this be done in nano ? also the colour highligting, could it be done in nano to the Same level as VI ?

Snake
_________________
Snake :)

Dual AMD MP 2800+, Asus A7M266-D, 1GB Ram, 18.1GB u160 HD, ATI Radeon 9600 Pro, Creative Audigy ZS, Intel SRCU31A, Linksys NIC, iiyama 18.1 4637bk lcd
Back to top
View user's profile Send private message
Xk2c
Apprentice
Apprentice


Joined: 17 Jul 2004
Posts: 240

PostPosted: Sat Sep 11, 2004 1:24 pm    Post subject: Reply with quote

Just right now, no.

with Nano it is possible I guess, but there are no rules for
this right now.

If some devs would come in and write the regular
expression for this it would work.
For Vim there are hundreds or more devs who do this.

I´m just happy to have the comments hightlighted. :wink:
_________________
useful Xterm, Aterm and RXVT-Unicode features
Back to top
View user's profile Send private message
Snake007uk
Apprentice
Apprentice


Joined: 12 Jan 2003
Posts: 198
Location: London, UK

PostPosted: Sat Sep 11, 2004 2:33 pm    Post subject: Reply with quote

damn :(

Snake
_________________
Snake :)

Dual AMD MP 2800+, Asus A7M266-D, 1GB Ram, 18.1GB u160 HD, ATI Radeon 9600 Pro, Creative Audigy ZS, Intel SRCU31A, Linksys NIC, iiyama 18.1 4637bk lcd
Back to top
View user's profile Send private message
jonaswidarsson
Apprentice
Apprentice


Joined: 16 Jan 2004
Posts: 273
Location: Göteborg, Sweden

PostPosted: Wed Dec 29, 2004 4:24 pm    Post subject: Reply with quote

Take care not to write too resource intense regex definitions.
Here's my update to the PHP hi-lighter:
Code:
# 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)?"
Think about this:
It actually seems Nano tries to match every regex definition from up going down, since the added last line overrides any php-looking code outside php, ie some javascript. If it is like that, any partly matching pattern defined before the one we intend to match completely takes time from the CPU without giving any value back.
So do anything you can to trap mismatches early in any regex so that we don't waste CPU unnecessarily.
Well... I haven't looked deeply into it myself yet, but hey, "my parser" seems rather fast ATM so I won't bother. I just wanted to point this out if someone here is new to regex.

Want to get better at regex?
Write a design template engine with PHP for your homepage :wink:. That was my learning path. A very very useful way to learn...
Back to top
View user's profile Send private message
Snake007uk
Apprentice
Apprentice


Joined: 12 Jan 2003
Posts: 198
Location: London, UK

PostPosted: Wed Dec 29, 2004 5:47 pm    Post subject: Reply with quote

Hi can some one send me a nano colour file which covers most files please
@ snake007uk-at-hotmail.com

Cheers
_________________
Snake :)

Dual AMD MP 2800+, Asus A7M266-D, 1GB Ram, 18.1GB u160 HD, ATI Radeon 9600 Pro, Creative Audigy ZS, Intel SRCU31A, Linksys NIC, iiyama 18.1 4637bk lcd
Back to top
View user's profile Send private message
ravloony
n00b
n00b


Joined: 04 Feb 2005
Posts: 54
Location: France

PostPosted: Sat May 07, 2005 8:21 am    Post subject: Pascal anyone? Reply with quote

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
_________________
No sig yet, sig ebuild up soon :-)
Back to top
View user's profile Send private message
paladin-zero
Guru
Guru


Joined: 19 May 2004
Posts: 322

PostPosted: Wed Jun 22, 2005 5:10 pm    Post subject: Reply with quote

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.
Code:
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 "#.*$"


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.


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.
Back to top
View user's profile Send private message
Sourcecode
Guru
Guru


Joined: 25 Apr 2005
Posts: 392
Location: Germany, Kerpen in sew of Cologne

PostPosted: Sun Jul 17, 2005 1:33 pm    Post subject: Reply with quote

Mafteah wrote:
Someone have entry for c/cpp/h etc. files?


Sure... this is Aktually from my Nano-1.3.7

Code:

########################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 ""(\\.|[^\"])*"" "'(\\.|[^'])*'"

_________________
Es gibt bloss eins, was wichtig ist: dass man sterben muss.

Suicide is man's way of telling God, "You can't fire me - I quit."

no one gets out here alive....
Back to top
View user's profile Send private message
youngka
n00b
n00b


Joined: 04 Sep 2005
Posts: 50

PostPosted: Sun Sep 04, 2005 5:17 pm    Post subject: Reply with quote

Someone pointed this thread out to me on the Ubuntu forums, and I thought I would drop by and add a couple syntax definitions I have written. I use a terminal with a black background.

Apache conf files:
Code:

## 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 rc files (.conkyrc)
Code:

## 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}"


Cheers,
Keith.
Back to top
View user's profile Send private message
Onturenio
n00b
n00b


Joined: 03 Sep 2005
Posts: 49
Location: Ontur

PostPosted: Sat Sep 10, 2005 1:26 pm    Post subject: Reply with quote

Another question related whith this, can nano to colour the brackets?. This is, if i put the cursor over a bracket, can nano colour it and find the closing one?
Back to top
View user's profile Send private message
sdfg
Apprentice
Apprentice


Joined: 11 Feb 2005
Posts: 200

PostPosted: Fri Mar 03, 2006 2:42 pm    Post subject: Reply with quote

Sorry to drag this up again, but I don't suppose anyone has a Java one?
Back to top
View user's profile Send private message
youngka
n00b
n00b


Joined: 04 Sep 2005
Posts: 50

PostPosted: Fri Mar 03, 2006 2:55 pm    Post subject: Reply with quote

Kasyx wrote:
Sorry to drag this up again, but I don't suppose anyone has a Java one?


Java is in mine:

Code:

## 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]+\))"
Back to top
View user's profile Send private message
sdfg
Apprentice
Apprentice


Joined: 11 Feb 2005
Posts: 200

PostPosted: Fri Mar 03, 2006 3:28 pm    Post subject: Reply with quote

You are an absolute star! That's got pretty much anything I'll need for a long time *grin*

Thanks again!
Back to top
View user's profile Send private message
niffs
Apprentice
Apprentice


Joined: 25 Apr 2004
Posts: 212
Location: The Wired

PostPosted: Wed Mar 29, 2006 2:51 am    Post subject: Reply with quote

Well, here's my variant on the PHP highlighting. I mostly just changed some *s to +s (Nano kept complaining about zero-length regexps), and made the string and function regexps more precise...
Also a couple color tweaks, as blue doesn't show up well in my semi-transparent terms.
Code:
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)?"

I'm not sure exactly how resource intensive this is, though...
_________________
No matter where you are... everyone is always connected.
[ .: my website :. ]
Back to top
View user's profile Send private message
Richy
n00b
n00b


Joined: 28 Mar 2004
Posts: 65
Location: Berlin

PostPosted: Thu Apr 06, 2006 12:55 pm    Post subject: Re: Pascal anyone? Reply with quote

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


Hey, I tried to make one, but I am not able to make nano highlight Comments in "{ }"

Code:
## 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="}"


I Copied the Java Source example and modified it a bit. So there is probably a lot of stuff in there, that does not exist in Pascal.. It is a start anyways ;) (for black background)
The Problem is, that the start.... end... thing is not working

Code:
color brightblue start="{" end="}"
gets me
that:
Code:
Error in /etc/nanorc on line 423: Bad regex "{": Invalid preceding regular expression

Press Return to continue starting nano

I have tried a lot of different keys, but none of them appears to work
Ideas anyone?
Richy
Back to top
View user's profile Send private message
niffs
Apprentice
Apprentice


Joined: 25 Apr 2004
Posts: 212
Location: The Wired

PostPosted: Thu Apr 06, 2006 8:47 pm    Post subject: Reply with quote

Quote:
Code:
color brightblue start="{" end="}"

gets me
that:
Code:
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:
Code:
color brightblue start="\{" end="\}"


I may be wrong though, I'm no expert on these things, but it's worth a try at least.
_________________
No matter where you are... everyone is always connected.
[ .: my website :. ]
Back to top
View user's profile Send private message
Richy
n00b
n00b


Joined: 28 Mar 2004
Posts: 65
Location: Berlin

PostPosted: Fri Apr 07, 2006 8:10 am    Post subject: You are right Reply with quote

It was woth a try.

So, here ist at least some Pascal/Delphi highlighting.

Code:
## 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="\}"


Thanks a million

RIchy
Back to top
View user's profile Send private message
vai777
Tux's lil' helper
Tux's lil' helper


Joined: 07 Oct 2004
Posts: 129
Location: Spain

PostPosted: Fri Apr 07, 2006 11:17 am    Post subject: Reply with quote

I get this error:
Code:
Error in /home/javi/.nanorc on line 351: Duplicate syntax name ebuild

Pulsa intro para continuar iniciando nano


But in line 351 I have:

Code:
syntax "ebuild" "\.e(build|class)$"


And 'ebuild' it's not repeated in the whole file!!

I find it pretty non-sense. Can you help me? Maybe is because highlighting the word class in C-file and Java
_________________
Life is short but wide
Back to top
View user's profile Send private message
vai777
Tux's lil' helper
Tux's lil' helper


Joined: 07 Oct 2004
Posts: 129
Location: Spain

PostPosted: Fri Apr 07, 2006 11:20 am    Post subject: Reply with quote

Quote:
Maybe is because highlighting the word class in C-file and Java


It's not, I've tried it.
_________________
Life is short but wide
Back to top
View user's profile Send private message
niffs
Apprentice
Apprentice


Joined: 25 Apr 2004
Posts: 212
Location: The Wired

PostPosted: Sat Apr 15, 2006 12:10 am    Post subject: Reply with quote

I just emerged the newest nano (1.3.11), and am having the same "duplicate syntax name ebuild" problem.
_________________
No matter where you are... everyone is always connected.
[ .: my website :. ]
Back to top
View user's profile Send private message
Gunni hinn
n00b
n00b


Joined: 20 Jul 2006
Posts: 1
Location: Iceland

PostPosted: Thu Jul 20, 2006 1:07 pm    Post subject: Reply with quote

Hi.

This is a great thread, it helped me a lot. But I'm still having a couple of problems; I like to use nano for tex files and would like to highlight the math material. They are delimited by two commands, either enclosed in $ signs ( like $ math stuff here $ ) or with \[ and \] ( as in \[ math here \] ). The code I'm trying to use is

color cyan start="\$" end="\$"
color cyan start="\[" end="\]"

The problem with the first line is that it highlights everything from the first $ sign. Changing it to

color cyan start="$" end="$"

gives a segmentation fault and

color cyan start="\$" end="$"

almost works, but it highlights the entire line the $ sign is in. The problem with the second line is that I can't get the file to start highlighting only if \[ is present, not if either \ or [ are there. If anyone has some ideas about what would work that'd be great.

Thanks,
Gunni.
_________________
Blank.
Back to top
View user's profile Send private message
suredeath
Tux's lil' helper
Tux's lil' helper


Joined: 15 Aug 2006
Posts: 101
Location: Easterwood, N.Br., The Netherlands

PostPosted: Sat Sep 09, 2006 2:11 pm    Post subject: Reply with quote

FWIW, the default /etc/nanorc also contains several examples, all commented out by default...

Maybe in there you find clues as well as to why some of your own stuff yields redefinition or duplicate errors?

And thanks for all the marvellous handiwork you all added here. If only I were that proficient using regex. Still having a hard time with it. It'll come, it'll come....

Cheers
Sd.
Back to top
View user's profile Send private message
cpdsaorg
Guru
Guru


Joined: 16 Oct 2003
Posts: 359

PostPosted: Thu Nov 09, 2006 8:23 am    Post subject: Reply with quote

DUDE!! the colors are BEAUTIFULL!!

got this error here when i tried the blue coment lines:
Code:
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.


after removing the ".*" it worked...

question. is there a way to make syntax highlighting for nano the system default without having to add a .nanorc file to everyone's home dir?
_________________
PentiumM 2.0 GHz, MSI 915GM Speedster-FA4, Seagate ST3500641AS SATA 400GB
Back to top
View user's profile Send private message
Xk2c
Apprentice
Apprentice


Joined: 17 Jul 2004
Posts: 240

PostPosted: Sat Nov 11, 2006 2:08 pm    Post subject: Reply with quote

cpdsaorg wrote:

question. is there a way to make syntax highlighting for nano the system default without having to add a .nanorc file to everyone's home dir?


Yes it is:

/etc/nanorc
_________________
useful Xterm, Aterm and RXVT-Unicode features
Back to top
View user's profile Send private message
b3cks
Veteran
Veteran


Joined: 23 Mar 2004
Posts: 1481
Location: Bremen (GER)

PostPosted: Fri Nov 17, 2006 7:57 pm    Post subject: Reply with quote

Just wanted to thank youngka for his great nanorc! Love it! :wink:
_________________
I am /root and if you see me laughing you better have a backup.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Documentation, Tips & Tricks All times are GMT
Goto page Previous  1, 2, 3  Next
Page 2 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum