mirror of
https://github.com/scopatz/nanorc
synced 2024-11-23 19:00:27 +01:00
commit
98ad894b8a
83
Readme.rst
83
Readme.rst
|
@ -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 <https://github.com/scopatz/nanorc/issues/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 <https://www.nano-editor.org/>`_] [`Repository <https://git.savannah.gnu.org/cgit/nano.git>`_]
|
|
39
Rnw.nanorc
Normal file
39
Rnw.nanorc
Normal file
|
@ -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 "('[^']*')|(\"[^\"]*\")"
|
||||||
|
|
23
gradle.nanorc
Normal file
23
gradle.nanorc
Normal file
|
@ -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:]]+$"
|
1
nanorc
1
nanorc
|
@ -24,6 +24,7 @@ include "~/.nano/git.nanorc"
|
||||||
include "~/.nano/gitcommit.nanorc"
|
include "~/.nano/gitcommit.nanorc"
|
||||||
include "~/.nano/glsl.nanorc"
|
include "~/.nano/glsl.nanorc"
|
||||||
include "~/.nano/go.nanorc"
|
include "~/.nano/go.nanorc"
|
||||||
|
include "~/.nano/gradle.nanorc"
|
||||||
include "~/.nano/groff.nanorc"
|
include "~/.nano/groff.nanorc"
|
||||||
include "~/.nano/haml.nanorc"
|
include "~/.nano/haml.nanorc"
|
||||||
include "~/.nano/haskell.nanorc"
|
include "~/.nano/haskell.nanorc"
|
||||||
|
|
107
readme.md
Normal file
107
readme.md
Normal file
|
@ -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)
|
Loading…
Reference in New Issue
Block a user