diff --git a/Readme.rst b/Readme.rst deleted file mode 100644 index 7cb17a7..0000000 --- a/Readme.rst +++ /dev/null @@ -1,83 +0,0 @@ -*************************************** -Improved Nano Syntax Highlighting Files -*************************************** - -This repository holds ``{lang}.nanorc`` files that have improved -definitions of syntax highlighting for various languages. - - -1. Copy files -~~~~~~ - -These should be placed inside of the ``~/.nano/`` directory. -Or for system-wide installation ``/usr/share/nano-syntax-highlighting/``. -In other words:: - - git clone git@github.com:scopatz/nanorc.git ~/.nano - -*Note - if you have any issues (ssh was not properly configured), alternatively use:: - - git clone https://github.com/scopatz/nanorc.git ~/.nano - -*System wide will look like so*:: - - sudo git clone https://github.com/scopatz/nanorc.git /usr/share/nano-syntax-highlighting/ - -**NOTE**: \< and \> are regular character escapes on macOS. The bug's fixed in Nano, but this might be a problem -if you are using an older version. If this is the case, replace them respectively with [[:<:]] and [[:>:]]. -This is reported in `issue 52 `_ - -2. Configure ``nano`` -~~~~~~~~~ - -Once there you should add the languages you want to your -nano configuration file ``~/.nanorc``. For example:: - - ## C/C++ - include "~/.nano/c.nanorc" - -You can also append the contents of ``~/.nano/nanorc`` into your -``~/.nanorc`` to include all languages:: - - cat ~/.nano/nanorc >> ~/.nanorc - -Or to be less verbose, append content of the folder in one line with wildcard:: - - ## For all users - $ echo "include $install_path/*.nanorc" >> /etc/nanorc - ## For current user - $ echo "include $install_path/*.nanorc" >> ~/.nanorc - -where ``$install_path`` is ``/usr/share/nano-syntax-highlighting`` or ``~/.nano/`` or ... - -1a. Automatic installer -~~~~~~~~~~~~~~~~~~~~~~ -Finally, you can run an automatic installer using the following code:: - - $ curl https://raw.githubusercontent.com/scopatz/nanorc/master/install.sh | sh - -or alternatively:: - - $ wget https://raw.githubusercontent.com/scopatz/nanorc/master/install.sh -O- | sh - -*Note - - some syntax definitions which exist in Nano upstream may be preferable to the ones provided by this package. - The install.sh script may be run with ``-l`` or ``--lite`` to insert the included syntax definitions from this package - with lower precedence than the ones provided by the standard package. - - -1b. Distributive specific installation via package managers -~~~~~~~~~~ -On **Arch Linux** and other *pacman/aur* based systems it is possible to:: - - $ aurman -S nano-syntax-highlighting-git - -or search package:: - - $ aurman -Ss nano-syntax-highlight - -Then you need to mannually add ``.nanorc``-s to user's ``~/.nanorc`` or system ``/etc/nanorc``. See **$2** - -Acknowledgement -~~~~~~~~~~~~~~~ -Some of these files are derived from the original nano release [`Project `_] [`Repository `_] diff --git a/Rnw.nanorc b/Rnw.nanorc new file mode 100644 index 0000000..75e6f6e --- /dev/null +++ b/Rnw.nanorc @@ -0,0 +1,39 @@ +## Here is a short example for TeX files. +## +syntax "Tex" "\.Rnw$" "bib" "\.bib$" "cls" "\.cls$" +color yellow "\$(\\\$|[^$])*[^\\]\$" +color yellow "\$\$(\\\$|[^$])*[^\\]\$\$" +icolor green "\\.|\\[A-Z]*" +color magenta "[{}]" +color red start="<<" end=">>=" +color white start=">>=" end="@" + +color brightblue "%.*" +color brightblue "^[[:space:]]*#.*" +color brightblue start="\\begin\{comment\}" end="\\end\{comment\}" + +color green "(class|extends|goto) ([a-zA-Z0-9_]*)" +color green "[^a-z0-9_-]{1}(var|class|function|echo|case|break|default|exit|switch|if|else|elseif|endif|foreach|endforeach|@|while|public|private|protected|return|true|false|null|TRUE|FALSE|NULL|const|static|extends|as|array|require|include|require_once|include_once|define|do|continue|declare|goto|print|in|namespace|use)[^a-z0-9_-]{1}" + +# Functions +color blue "([a-zA-Z0-9_\-$\.]*)\(" + +# Variables +color magenta "[a-zA-Z_0-9]* <\-" +# Special Characters +color yellow "[.,{}();]" +color yellow "\[" +color yellow "\]" +color yellow "[=][^>]" +# Numbers +color magenta "[+-]*([0-9]\.)*[0-9]+([eE][+-]?([0-9]\.)*[0-9])*" +color magenta "0x[0-9a-zA-Z]*" +# Special Variables +color blue "(\$this|parent::|self::|\$this->)" +# Bitwise Operations +color magenta "(\;|\||\^){1}" +# And/Or/SRO/etc +color green "(\;\;|\|\||::|=>|->)" +# STRINGS! +color red "('[^']*')|(\"[^\"]*\")" + diff --git a/gradle.nanorc b/gradle.nanorc new file mode 100644 index 0000000..58d7376 --- /dev/null +++ b/gradle.nanorc @@ -0,0 +1,23 @@ +syntax "groovy" "\.(groovy|gradle)$" + +# Keywords +color brightblue "\<(boolean|byte|char|double|enum|float|int|long|new|short|super|this|transient)\>" +color brightblue "\<(as|assert|break|case|catch|continue|default|do|else|finally|for|goto|if|in|return|switch|throw|try|while)\>" +color brightblue "\<(abstract|class|extends|implements|import|interface|native|package|private|protected|public|static|strictfp|synchronized|throws|trait|void|volatile)\>" +color brightblue "\<(const|def|final|instanceof)\>" +color brightblue "\<(true|false|null)\>" + +# Strings +color brightyellow ""(\\.|[^"])*"" "'(\\.|[^'])*'" + +# Interpolation +icolor yellow "\$\{[^\}]*}" + +# Comments +color cyan "^//.*" +color cyan "\s//.*" +color cyan start="^/\*(\*)?" end="\*/" +color cyan start="\s/\*(\*)?" end="\*/" + +# Trailing whitespace +color ,green "[[:space:]]+$" diff --git a/nanorc b/nanorc index 812d6b9..84a810e 100644 --- a/nanorc +++ b/nanorc @@ -24,6 +24,7 @@ include "~/.nano/git.nanorc" include "~/.nano/gitcommit.nanorc" include "~/.nano/glsl.nanorc" include "~/.nano/go.nanorc" +include "~/.nano/gradle.nanorc" include "~/.nano/groff.nanorc" include "~/.nano/haml.nanorc" include "~/.nano/haskell.nanorc" diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..56689cd --- /dev/null +++ b/readme.md @@ -0,0 +1,107 @@ +# Improved Nano Syntax Highlighting Files + +This repository holds ``{lang}.nanorc`` files that have improved definitions of syntax highlighting for various languages. + +## Installation + +There are three ways to install this repo. + +### 1. Automatic installer + +Copy the following code to download and run the installer script: + +```sh +curl https://raw.githubusercontent.com/scopatz/nanorc/master/install.sh | sh +``` + +If your machine doesn't have `curl` command, use this code: + +```sh +wget https://raw.githubusercontent.com/scopatz/nanorc/master/install.sh -O- | sh +``` + +#### Note + +Some syntax definitions which exist in Nano upstream may be preferable to the ones provided by this package. +The ` install.sh` script may be run with `-l` or `--lite` to insert the included syntax definitions from this package with *lower* precedence than the ones provided by the standard package. + +### 2. Package managers + +The follow table lists all systems with this package published. +Fell free to add your official package manager. +> Systems that are based in others' package managers or repositories are compatible. For example: `pacman/aur` based systems are compatible with `Arch Linux`. + +| System | Command | +| ---------- | ---------------------------------------- | +| Arch Linux | `aurman -Ss nano-syntax-highlight` | +| | `aurman -S nano-syntax-highlighting-git` | + +### 3. Clone repo (copy the files) + +The files should be placed inside of the `~/.nano/` directory. + +You can put the files in another directory inside the correct `.nano` folder. +For example: `~/.nano/nanorc/`. +For readability will use `$install_path` for the path of your choose (in *system wide* the path is always `/usr/share/nano-syntax-highlighting/`). + +For user, only run: + +`git clone git@github.com:scopatz/nanorc.git $install_path` or +`git clone https://github.com/scopatz/nanorc.git $install_path` + +For system wide, run: + +`sudo git clone https://github.com/scopatz/nanorc.git $install_path` + +## Configuration + +After installation, you need to inform `nano` to used the new highlight files. +The configuration file is located at `~/.nanorc`, for users, and at `/etc/nanorc`, for system wide. +If this file doesn't exist, create a new one. + +Again there are three ways: + +### 1. Include all + +Append the content of the folder in one line, with wildcard:: + +`echo "include $install_path/*.nanorc" >> ~/.nanorc` or +`echo "include $install_path/*.nanorc" >> /etc/nanorc` + +### 2. Include/append our `nanorc` file + +Simply run: + +`cat $install_path/nanorc >> ~/.nanorc` or +`cat $install_path/nanorc >> /etc/nanorc` + +### 3. One by one + +Add your preferable languages one by onento the file. For example: + +``` +## C/C++ +include "~/.nano/c.nanorc" +``` + +## Tricks & Tweaks + +### MacOS + +`\<` and `\>` are regular character escapes on MacOS. +The bug is fixed in Nano, but this might be a problem if you are using an older version +If this is the case, replace them respectively with `[[:<:]]` and `[[:>:]]`. +This is reported in [Issue 52](https://github.com/scopatz/nanorc/issues/52). + +### Why not include the original files? + +It is a good question, but the way that nano reads the files matters. +In other words, the regex instructions should be in a _specific order_ (you can see that in some nanorc files). +So, if we `include` or `extendsyntax` (yes, there is also this command) the colors or other things won't be work well. +The best way to do is copying and editing the original files (if it is needed). +The bug about it: https://savannah.gnu.org/bugs/index.php?5698 +But if some original nanorc file needs an update, feel free to [patch it](https://savannah.gnu.org/patch/?func=additem&group=nano)! + +## Acknowledgements + +Some of these files are derived from the original [Nano](https://www.nano-editor.org) editor [repo](https://git.savannah.gnu.org/cgit/nano.git)