From f1f064693fcf1fe3e480ee0b1bbd465c82f703c5 Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Thu, 19 Sep 2019 02:32:34 +0100 Subject: [PATCH 01/65] Add some themes --- themes/custom | 23 +++++++++++++++++++++++ themes/light | 41 +++++++++++++++++++++++++++++++++++++++++ themes/project | 23 +++++++++++++++++++++++ 3 files changed, 87 insertions(+) create mode 100755 themes/custom create mode 100755 themes/light create mode 100755 themes/project diff --git a/themes/custom b/themes/custom new file mode 100755 index 0000000..82e8cf0 --- /dev/null +++ b/themes/custom @@ -0,0 +1,23 @@ +#!/usr/bin/sed -f + +# ORIGINAL +# Best approach to the original 'nanorc' files. +# If you want the original, uninstall these files, +# but you will lose many highlight instructions... + +# GUI Colors +## No GUI colors in original ... + +# Text Colors + +s|COMMENT1|brightblue +s|COMMENT2|cyan +s|ERROR|brightred +s|KEYWORD1|brightgreen +s|KEYWORD2|green +s|COLOR|yellow +s|STRING|brightmagenta +s|TSPACE|,green + +# Macros +## No Macros in original ... diff --git a/themes/light b/themes/light new file mode 100755 index 0000000..909f51a --- /dev/null +++ b/themes/light @@ -0,0 +1,41 @@ +#!/usr/bin/sed -f + +# LIGHT +# Our approach to nano's highlight. + +# GUI Colors + + + +# Text Colors + +s|COMMENT1|brightblue +s|COMMENT2|cyan +s|ERROR|brightred +s|KEYWORD1|brightgreen +s|KEYWORD2|green +s|COLOR|yellow +s|STRING|brightmagenta +s|TSPACE|,green + +# Macros + +#s|^PLAIN:|color black| +#s|^TYPE:|color brightgreen| +#s|^STRING:|color yellow| +#s|^NUMBER:|color blue| +#s|^BOOLEAN:|color brightmagenta| +#s|^REGEXP:|color brightcyan| +#s|^VARIABLE:|color brightyellow| +#s|^OPERATOR:|color red| +#s|^KEYWORD:|color green| +#s|^~KEYWORD:|icolor green| +#s|^FUNCTION:|color brightblue| +#s|^ESCAPE:|color magenta| +#s|^COMMENT:|color cyan| +#s|^ENABLED:|color brightgreen| +#s|^DISABLED:|color brightred| +#s|^WARNING:|color ,red| +#s|^+TODO|color brightcyan "TODO:?"| +#s|^+LINT|color ,green "[[:space:]]+$"\ncolor ,red "\t*"| +#s|^+LONG-LINE-WARNING|color ,red "^.{81,}$"| diff --git a/themes/project b/themes/project new file mode 100755 index 0000000..82e8cf0 --- /dev/null +++ b/themes/project @@ -0,0 +1,23 @@ +#!/usr/bin/sed -f + +# ORIGINAL +# Best approach to the original 'nanorc' files. +# If you want the original, uninstall these files, +# but you will lose many highlight instructions... + +# GUI Colors +## No GUI colors in original ... + +# Text Colors + +s|COMMENT1|brightblue +s|COMMENT2|cyan +s|ERROR|brightred +s|KEYWORD1|brightgreen +s|KEYWORD2|green +s|COLOR|yellow +s|STRING|brightmagenta +s|TSPACE|,green + +# Macros +## No Macros in original ... From b08f5b57590b1982097c24f08eab618711016889 Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Thu, 19 Sep 2019 03:36:21 +0100 Subject: [PATCH 02/65] Enter some links and documentation. --- readme.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/readme.md b/readme.md index cc0dec2..bb601d2 100644 --- a/readme.md +++ b/readme.md @@ -83,6 +83,12 @@ Add your preferable languages one by onento the file. For example: include "~/.nano/c.nanorc" ``` +# Themes - WIP + +There are three themes that you can use. + + + # Tricks & Tweaks ## MacOS @@ -94,4 +100,8 @@ This is reported in [Issue 52](https://github.com/scopatz/nanorc/issues/52). # 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) +- [Nano Editor](https://www.nano-editor.org) for some `nanorc` files. +- [nanorc-mac](https://github.com/richrad/nanorc-mac) for the themes idea. +- [Bruce Barnert](http://www.grymoire.com/Unix/Sed.html#toc-uh-5) for good `sed` documentation. + +- And to all contributors! From 3ff0c20e5dcaeff81a2b95b6979bd04e227ca0b1 Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Thu, 19 Sep 2019 16:13:42 +0100 Subject: [PATCH 03/65] Best definition of theme - Change the names of themes. - The files are executable by `sed` with `no print` option. --- themes/custom | 46 ++++++++++++++++++++++++++++++++-------------- themes/light | 41 ----------------------------------------- themes/original | 23 +++++++++++++++++++++++ themes/project | 46 ++++++++++++++++++++++++++++++++-------------- 4 files changed, 87 insertions(+), 69 deletions(-) delete mode 100755 themes/light create mode 100755 themes/original diff --git a/themes/custom b/themes/custom index 82e8cf0..2dda5ee 100755 --- a/themes/custom +++ b/themes/custom @@ -1,23 +1,41 @@ #!/usr/bin/sed -f -# ORIGINAL -# Best approach to the original 'nanorc' files. -# If you want the original, uninstall these files, -# but you will lose many highlight instructions... +# PROJECT +## Our approach to nano's highlight. # GUI Colors -## No GUI colors in original ... +## No GUI colors available, yet... + # Text Colors -s|COMMENT1|brightblue -s|COMMENT2|cyan -s|ERROR|brightred -s|KEYWORD1|brightgreen -s|KEYWORD2|green -s|COLOR|yellow -s|STRING|brightmagenta -s|TSPACE|,green +s|COMMENT1|brightblue| +s|COMMENT2|cyan| +s|ERROR|brightred| +s|KEYWORD1|brightgreen| +s|KEYWORD2|green| +s|COLOR|yellow| +s|STRING|brightmagenta| +s|TSPACE|,green| # Macros -## No Macros in original ... + +#s|^PLAIN:|color black| +#s|^TYPE:|color brightgreen| +#s|^STRING:|color yellow| +#s|^NUMBER:|color blue| +#s|^BOOLEAN:|color brightmagenta| +#s|^REGEXP:|color brightcyan| +#s|^VARIABLE:|color brightyellow| +#s|^OPERATOR:|color red| +#s|^KEYWORD:|color green| +#s|^~KEYWORD:|icolor green| +#s|^FUNCTION:|color brightblue| +#s|^ESCAPE:|color magenta| +#s|^COMMENT:|color cyan| +#s|^ENABLED:|color brightgreen| +#s|^DISABLED:|color brightred| +#s|^WARNING:|color ,red| +#s|^+TODO|color brightcyan "TODO:?"| +#s|^+LINT|color ,green "[[:space:]]+$"\ncolor ,red "\t*"| +#s|^+LONG-LINE-WARNING|color ,red "^.{81,}$"| diff --git a/themes/light b/themes/light deleted file mode 100755 index 909f51a..0000000 --- a/themes/light +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/sed -f - -# LIGHT -# Our approach to nano's highlight. - -# GUI Colors - - - -# Text Colors - -s|COMMENT1|brightblue -s|COMMENT2|cyan -s|ERROR|brightred -s|KEYWORD1|brightgreen -s|KEYWORD2|green -s|COLOR|yellow -s|STRING|brightmagenta -s|TSPACE|,green - -# Macros - -#s|^PLAIN:|color black| -#s|^TYPE:|color brightgreen| -#s|^STRING:|color yellow| -#s|^NUMBER:|color blue| -#s|^BOOLEAN:|color brightmagenta| -#s|^REGEXP:|color brightcyan| -#s|^VARIABLE:|color brightyellow| -#s|^OPERATOR:|color red| -#s|^KEYWORD:|color green| -#s|^~KEYWORD:|icolor green| -#s|^FUNCTION:|color brightblue| -#s|^ESCAPE:|color magenta| -#s|^COMMENT:|color cyan| -#s|^ENABLED:|color brightgreen| -#s|^DISABLED:|color brightred| -#s|^WARNING:|color ,red| -#s|^+TODO|color brightcyan "TODO:?"| -#s|^+LINT|color ,green "[[:space:]]+$"\ncolor ,red "\t*"| -#s|^+LONG-LINE-WARNING|color ,red "^.{81,}$"| diff --git a/themes/original b/themes/original new file mode 100755 index 0000000..eaeb230 --- /dev/null +++ b/themes/original @@ -0,0 +1,23 @@ +#!/usr/bin/sed -f + +# ORIGINAL +## Best approach to the original 'nanorc' files. +## If you want the original, uninstall these files, +## but you will lose many highlight instructions... + +# GUI Colors +## No GUI colors in original ... + +# Text Colors + +s|COMMENT1|brightblue| +s|COMMENT2|cyan| +s|ERROR|brightred| +s|KEYWORD1|brightgreen| +s|KEYWORD2|green| +s|COLOR|yellow| +s|STRING|brightmagenta| +s|TSPACE|,green| + +# Macros +## No Macros in original ... diff --git a/themes/project b/themes/project index 82e8cf0..2dda5ee 100755 --- a/themes/project +++ b/themes/project @@ -1,23 +1,41 @@ #!/usr/bin/sed -f -# ORIGINAL -# Best approach to the original 'nanorc' files. -# If you want the original, uninstall these files, -# but you will lose many highlight instructions... +# PROJECT +## Our approach to nano's highlight. # GUI Colors -## No GUI colors in original ... +## No GUI colors available, yet... + # Text Colors -s|COMMENT1|brightblue -s|COMMENT2|cyan -s|ERROR|brightred -s|KEYWORD1|brightgreen -s|KEYWORD2|green -s|COLOR|yellow -s|STRING|brightmagenta -s|TSPACE|,green +s|COMMENT1|brightblue| +s|COMMENT2|cyan| +s|ERROR|brightred| +s|KEYWORD1|brightgreen| +s|KEYWORD2|green| +s|COLOR|yellow| +s|STRING|brightmagenta| +s|TSPACE|,green| # Macros -## No Macros in original ... + +#s|^PLAIN:|color black| +#s|^TYPE:|color brightgreen| +#s|^STRING:|color yellow| +#s|^NUMBER:|color blue| +#s|^BOOLEAN:|color brightmagenta| +#s|^REGEXP:|color brightcyan| +#s|^VARIABLE:|color brightyellow| +#s|^OPERATOR:|color red| +#s|^KEYWORD:|color green| +#s|^~KEYWORD:|icolor green| +#s|^FUNCTION:|color brightblue| +#s|^ESCAPE:|color magenta| +#s|^COMMENT:|color cyan| +#s|^ENABLED:|color brightgreen| +#s|^DISABLED:|color brightred| +#s|^WARNING:|color ,red| +#s|^+TODO|color brightcyan "TODO:?"| +#s|^+LINT|color ,green "[[:space:]]+$"\ncolor ,red "\t*"| +#s|^+LONG-LINE-WARNING|color ,red "^.{81,}$"| From c0528f636107fc0d958175f37fe63b0c1e88d0d4 Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Fri, 20 Sep 2019 22:13:53 +0100 Subject: [PATCH 04/65] Add some themes explanation --- readme.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/readme.md b/readme.md index bb601d2..f8a40a6 100644 --- a/readme.md +++ b/readme.md @@ -85,8 +85,10 @@ include "~/.nano/c.nanorc" # Themes - WIP -There are three themes that you can use. - +There are three themes you can use: +- original: only nano's default highlight. +- project: only scopatz's highlight. +- custom: highlight, GUI and shortcuts. # Tricks & Tweaks From 405a71cc65e37667661255a19f861a3b06fe5722 Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Sat, 21 Sep 2019 00:19:09 +0100 Subject: [PATCH 05/65] Begin the union of the nano's file with ours. Note: these files will be deleted. --- original/asm.nanorc | 25 +++++++++++++ original/autoconf.nanorc | 32 +++++++++++++++++ original/awk.nanorc | 37 +++++++++++++++++++ original/c.nanorc | 42 ++++++++++++++++++++++ original/changelog.nanorc | 28 +++++++++++++++ original/cmake.nanorc | 19 ++++++++++ original/css.nanorc | 11 ++++++ original/debian.nanorc | 21 +++++++++++ original/default.nanorc | 20 +++++++++++ original/elisp.nanorc | 33 +++++++++++++++++ original/fortran.nanorc | 40 +++++++++++++++++++++ original/gentoo.nanorc | 74 ++++++++++++++++++++++++++++++++++++++ original/go.nanorc | 41 +++++++++++++++++++++ original/groff.nanorc | 26 ++++++++++++++ original/guile.nanorc | 24 +++++++++++++ original/html.nanorc | 28 +++++++++++++++ original/java.nanorc | 16 +++++++++ original/javascript.nanorc | 24 +++++++++++++ original/json.nanorc | 34 ++++++++++++++++++ original/lua.nanorc | 60 +++++++++++++++++++++++++++++++ original/makefile.nanorc | 24 +++++++++++++ original/man.nanorc | 23 ++++++++++++ original/mgp.nanorc | 9 +++++ original/mutt.nanorc | 9 +++++ original/nanohelp.nanorc | 11 ++++++ original/nanorc.nanorc | 32 +++++++++++++++++ original/nftables.nanorc | 30 ++++++++++++++++ original/objc.nanorc | 42 ++++++++++++++++++++++ original/ocaml.nanorc | 30 ++++++++++++++++ original/patch.nanorc | 26 ++++++++++++++ original/perl.nanorc | 24 +++++++++++++ original/php.nanorc | 35 ++++++++++++++++++ original/po.nanorc | 29 +++++++++++++++ original/postgresql.nanorc | 74 ++++++++++++++++++++++++++++++++++++++ original/pov.nanorc | 16 +++++++++ original/python.nanorc | 39 ++++++++++++++++++++ original/ruby.nanorc | 36 +++++++++++++++++++ original/rust.nanorc | 39 ++++++++++++++++++++ original/sh.nanorc | 37 +++++++++++++++++++ original/spec.nanorc | 40 +++++++++++++++++++++ original/tcl.nanorc | 22 ++++++++++++ original/tex.nanorc | 10 ++++++ original/texinfo.nanorc | 21 +++++++++++ original/xml.nanorc | 22 ++++++++++++ themes/custom | 4 +-- todo.md | 4 +++ 46 files changed, 1321 insertions(+), 2 deletions(-) create mode 100644 original/asm.nanorc create mode 100644 original/autoconf.nanorc create mode 100644 original/awk.nanorc create mode 100644 original/c.nanorc create mode 100644 original/changelog.nanorc create mode 100644 original/cmake.nanorc create mode 100644 original/css.nanorc create mode 100644 original/debian.nanorc create mode 100644 original/default.nanorc create mode 100644 original/elisp.nanorc create mode 100644 original/fortran.nanorc create mode 100644 original/gentoo.nanorc create mode 100644 original/go.nanorc create mode 100644 original/groff.nanorc create mode 100644 original/guile.nanorc create mode 100644 original/html.nanorc create mode 100644 original/java.nanorc create mode 100644 original/javascript.nanorc create mode 100644 original/json.nanorc create mode 100644 original/lua.nanorc create mode 100644 original/makefile.nanorc create mode 100644 original/man.nanorc create mode 100644 original/mgp.nanorc create mode 100644 original/mutt.nanorc create mode 100644 original/nanohelp.nanorc create mode 100644 original/nanorc.nanorc create mode 100644 original/nftables.nanorc create mode 100644 original/objc.nanorc create mode 100644 original/ocaml.nanorc create mode 100644 original/patch.nanorc create mode 100644 original/perl.nanorc create mode 100644 original/php.nanorc create mode 100644 original/po.nanorc create mode 100644 original/postgresql.nanorc create mode 100644 original/pov.nanorc create mode 100644 original/python.nanorc create mode 100644 original/ruby.nanorc create mode 100644 original/rust.nanorc create mode 100644 original/sh.nanorc create mode 100644 original/spec.nanorc create mode 100644 original/tcl.nanorc create mode 100644 original/tex.nanorc create mode 100644 original/texinfo.nanorc create mode 100644 original/xml.nanorc create mode 100644 todo.md diff --git a/original/asm.nanorc b/original/asm.nanorc new file mode 100644 index 0000000..d85226c --- /dev/null +++ b/original/asm.nanorc @@ -0,0 +1,25 @@ +## Here is an example for assembler. + +syntax asm "\.(S|s|asm)$" +magic "assembler source" +comment "//" + +color red "\<[A-Z_]{2,}\>" +color brightgreen "\.(data|subsection|text)" +color green "\.(align|file|globl|global|hidden|section|size|type|weak)" +color brightyellow "\.(ascii|asciz|byte|double|float|hword|int|long|short|single|struct|word)" +color brightred "^[[:space:]]*[.0-9A-Za-z_]*:" +color brightcyan "^[[:space:]]*#[[:space:]]*(define|undef|include|ifn?def|endif|elif|else|if|warning|error)" + +# Strings. +color brightyellow "<[^= ]*>" ""(\\.|[^"])*"" +# Multiline strings. This regex is VERY resource intensive, +# and sometimes colours things that shouldn't be coloured. +###color brightyellow start=""(\\.|[^"])*\\[[:space:]]*$" end="^(\\.|[^"])*"" + +# Comments. +color brightblue "//.*" +color brightblue start="/\*" end="\*/" + +# Trailing whitespace. +color ,green "[[:space:]]+$" diff --git a/original/autoconf.nanorc b/original/autoconf.nanorc new file mode 100644 index 0000000..a5e839f --- /dev/null +++ b/original/autoconf.nanorc @@ -0,0 +1,32 @@ +## Here is an example for Autoconf. + +syntax autoconf "\.(ac|m4)$" +comment "#" + +# Keywords: +color yellow "\<(if|test|then|elif|else|fi|for|in|do|done)\>" +color yellow "(=|!=|&&|\|\|)" + +# Macros: +color cyan "\<[[:upper:]_[:digit:]]+\>" + +# Version numbers: +color red "\<[-_.0-9]+\>" + +# Strings: +color red "\"[^"]*\"" "\'[^']*\'" + +# Backticks: +color green "`[^`]*`" + +# Error lines: +color brightred "^[[:space:]]*\*\*\*.*" + +# Brackets: +color magenta "\[|\]|\(|\)" + +# Comments: +color blue "^[[:blank:]]*#.*" "\" +color red "\<(FILENAME|FNR|FS|IGNORECASE|LINT|NF|NR|OFMT|OFS|ORS)\>" +color red "\<(PROCINFO|RS|RT|RSTART|RLENGTH|SUBSEP|TEXTDOMAIN)\>" +# Function declarations and special patterns. +color brightgreen "\<(function|extension|BEGIN|END)\>" +# Operators. +color green "(\{|\}|\(|\)|\;|\]|\[|\\|<|>|!|=|&|\+|-|\*|%|/|\?:|\^|\|)" +# Flow control. +color brightyellow "\<(for|if|while|do|else|in|delete|exit)\>" +color brightyellow "\<(break|continue|return)\>" +# I/O statements. +color brightgreen "\<(close|fflush|getline|next|nextfile|print|printf|system)\>" +# Standard functions. +color magenta "\<(atan2|cos|exp|int|log|rand|sin|sqrt|srand)\>" +color magenta "\<(asort|asorti|gensub|gsub|index|length|match)\>" +color magenta "\<(split|sprintf|strtonum|sub|substr|tolower|toupper)\>" +color magenta "\<(mktime|strftime|systime)\>" +color magenta "\<(and|compl|lshift|or|rshift|xor)\>" +color magenta "\<(bindtextdomain|dcgettext|dcngettext)\>" + +# Strings. +color brightyellow "<[^= ]*>" ""(\\.|[^"])*"" +# Comments. +color brightblue "(^|[[:space:]])#.*$" + +# Trailing whitespace. +color ,green "[[:space:]]+$" diff --git a/original/c.nanorc b/original/c.nanorc new file mode 100644 index 0000000..3537480 --- /dev/null +++ b/original/c.nanorc @@ -0,0 +1,42 @@ +## Here is an example for C/C++. + +syntax c "\.([ch](pp|xx)?|C|cc|c\+\+|cu|H|hh|ii?)$" +magic "^(C|C\+\+) (source|program)" +comment "//" + +# Constants. +color brightred "\<[A-Z_][0-9A-Z_]+\>" +# Labels. +color brightmagenta "^[[:space:]]*[A-Z_a-z]+:[[:space:]]*$" + +color green "\<(float|double|bool|char|int|short|long|sizeof|enum|void|auto|static|const|struct|union|typedef|extern|(un)?signed|inline)\>" +color green "\<([[:lower:]][[:lower:]_]*|(u_?)?int(8|16|32|64))_t\>" +color green "\<(class|namespace|template|public|protected|private|typename|this|friend|virtual|override|using|mutable|volatile|register|explicit)\>" +color brightyellow "\<(for|if|while|do|else|case|default|switch)\>" +color brightyellow "\<(try|throw|catch|operator|new|delete)\>" +color magenta "\<(goto|continue|break|return)\>" +color brightmagenta "'([^'\]|(\\["'abfnrtv\\]))'" "'\\(([0-3]?[0-7]{1,2}))'" "'\\x[0-9A-Fa-f]{1,2}'" + +# GCC builtins. +color cyan "__attribute__[[:space:]]*\(\([^)]*\)\)" "__(aligned|asm|builtin|hidden|inline|packed|restrict|section|typeof|weak)__" + +# Strings. In general you will want your strings and comments to come last, +# because highlighting rules are applied in the order they are read in. +color brightyellow ""([^"]|\\")*"" "#[[:space:]]*include[[:space:]]+<[^[:blank:]=]*>" +# Multiline strings. This regex is VERY resource intensive, +# and sometimes colours things that shouldn't be coloured. +###color brightyellow start=""(\\.|[^"])*\\[[:space:]]*$" end="^(\\.|[^"])*"" + +# Preprocessor directives. +color brightcyan start="^[[:space:]]*#[[:space:]]*(if(n?def)?|elif|warning|error|pragma)\>" end="(\`|[^\\])$" +color brightcyan "^[[:space:]]*#[[:space:]]*(define|else|endif|include(_next)?|undef)\>" + +# Comments. +color brightblue "//.*" +color brightblue start="/\*" end="\*/" + +# Reminders. +color brightwhite,yellow "\<(FIXME|TODO|XXX)\>" + +# Trailing whitespace. +color ,green "[[:space:]]+$" diff --git a/original/changelog.nanorc b/original/changelog.nanorc new file mode 100644 index 0000000..bf44242 --- /dev/null +++ b/original/changelog.nanorc @@ -0,0 +1,28 @@ +## Colouring for Changelogs. + +syntax changelog "Change[Ll]og[^/]*$" + +# Author lines. +color green "^(19|20).*" +# Dates. +color red "^(19|20)[0-9-]{8}" +# Email addresses. +color yellow "<[^>]*@[^>]*>" + +# Command-line options. +color cyan "[[:space:]]-[a-zA-Z\$]" "--[8a-z-]+" +# Bug and patch numbers. +color cyan "(BZ|bug|patch) #[0-9]+" "PR [[:alnum:]]+/[0-9]+" +# Probable constants, for variety. +color brightred "\<[A-Z_][0-9A-Z_]+\>" +# Key sequences. +color brightblue "\^[A-Z^\]" "\" + +icolor brightgreen "^[[:space:]]*((else|end)?if|else|(end)?while|(end)?foreach|break)\>" +color brightgreen "\<(NOT|COMMAND|POLICY|TARGET|EXISTS|IS_(DIRECTORY|ABSOLUTE)|DEFINED)[[:space:]]" +color brightgreen "[[:space:]](OR|AND|IS_NEWER_THAN|MATCHES|(STR|VERSION_)?(LESS|GREATER|EQUAL))[[:space:]]" + +icolor brightred "^[[:space:]]*((end)?(function|macro)|return)" + +icolor cyan start="\$(ENV)?\{" end="\}" +color magenta "\<(APPLE|UNIX|WIN32|CYGWIN|BORLAND|MINGW|MSVC(_IDE|60|71|80|90)?)\>" + +color brightblue "(^|[[:space:]])#.*" +color ,green "[[:space:]]+$" diff --git a/original/css.nanorc b/original/css.nanorc new file mode 100644 index 0000000..2780164 --- /dev/null +++ b/original/css.nanorc @@ -0,0 +1,11 @@ +## Here is an example for CSS files. + +syntax css "\.css$" +comment "/*|*/" + +color brightred "." +color brightyellow start="\{" end="\}" +color brightwhite start=":" end="([;^\{]|$)" +color brightblue ":active|:focus|:hover|:link|:visited|:link|:after|:before|$" +color brightblue start="\/\*" end="\\*/" +color green ";|:|\{|\}" diff --git a/original/debian.nanorc b/original/debian.nanorc new file mode 100644 index 0000000..3ec1393 --- /dev/null +++ b/original/debian.nanorc @@ -0,0 +1,21 @@ +## Here is an example for apt's sources.list. + +syntax sources.list "sources\.list(\.d/.*\.list)?(~|\.old|\.save)?$" +comment "#" + +# Coloring the deb lines, working from tail to head. First the +# components -- well, everything, and thus also the components. +color brightmagenta "^deb.*" +# Distribution -- well, everything, except the components. +color brightred "^deb(-src)?\s+.*((ftp|https?|rsh|ssh|copy|file|spacewalk|tor):/\S+|cdrom:\[.+\]/)\s+\S+" +# URIs. +color brightgreen "^deb(-src)?\s+.*(ftp|https?|rsh|ssh|copy|file|spacewalk|tor):/\S+" +# CDroms. +color brightgreen "^deb(-src)?\s+.*cdrom:\[.+\]/" +# Options. +color brightcyan "^deb(-src)?\s+\[.+\]\s+" +# And finally the initial deb tag. +color yellow "^deb(-src)?" + +# Comments. +color brightblue "#.*" diff --git a/original/default.nanorc b/original/default.nanorc new file mode 100644 index 0000000..b23d029 --- /dev/null +++ b/original/default.nanorc @@ -0,0 +1,20 @@ +## An example of a default syntax. The default syntax is used for +## files that do not match any other syntax. + +syntax default +comment "#" + +# Comments. +color cyan "^[[:space:]]*#.*" + +# Spaces in front of tabs. +color ,red " + +" + +# Nano's name, including version. +color brightred "(GNU )?[Nn]ano [1-4]\.[0-9][-.[:alnum:]]*\>" + +# Email addresses. +color magenta "<[[:alnum:].%_+-]+@[[:alnum:].-]+\.[[:alpha:]]{2,}>" + +# Bracketed captions in certain config files. +color brightgreen "^\[.*\]$" diff --git a/original/elisp.nanorc b/original/elisp.nanorc new file mode 100644 index 0000000..0622bd6 --- /dev/null +++ b/original/elisp.nanorc @@ -0,0 +1,33 @@ +## Here is an example for Emacs Lisp. + +syntax elisp "\.el$" +magic "Lisp/Scheme program" +comment ";" + +# Basic functions/macros +color brightcyan "\<(if|when|unless|cond|and|or|lambda|let|progn|while|dolist|dotimes)\>" +color brightcyan "\" +color brightcyan "\" +# Defining functions +color brightcyan "\" +color brightcyan "\" +color brightcyan "\" +# Defining variables +color brightcyan "\" +# Customization functions +color brightcyan "\" +# Setting values +color brightcyan "\<(setq(-default|-local)?|setf|push|pop|declare(-function)?)\>" +# Feature functions +color brightcyan "\<(require|provide)\>" +# Quoted symbols +color brightyellow "#?'\<(\w|-)+\>" +# Booleans +color brightred "\<(t|nil)\>" +# Keywords +color blue ":(\w|[?-])+" +# Strings +color yellow start="^[[:blank:]]+\"" end="[^\]\"" +color yellow ""(\\.|[^"])*"" +# Comments +color cyan "(^|[[:space:]]);.*" diff --git a/original/fortran.nanorc b/original/fortran.nanorc new file mode 100644 index 0000000..fb2ff0b --- /dev/null +++ b/original/fortran.nanorc @@ -0,0 +1,40 @@ +## Here is an example for Fortran 90/95. + +syntax fortran "\.(f|f90|f95)$" +comment "!" + +color red "\<[0-9]+\>" + +icolor green "\<(action|advance|all|allocatable|allocated|any|apostrophe)\>" +icolor green "\<(append|asis|assign|assignment|associated|character|common)\>" +icolor green "\<(complex|data|default|delim|dimension|double precision)\>" +icolor green "\<(elemental|epsilon|external|file|fmt|form|format|huge)\>" +icolor green "\<(implicit|include|index|inquire|integer|intent|interface)\>" +icolor green "\<(intrinsic|iostat|kind|logical|module|none|null|only)>" +icolor green "\<(operator|optional|pack|parameter|pointer|position|private)\>" +icolor green "\<(program|public|real|recl|recursive|selected_int_kind)\>" +icolor green "\<(selected_real_kind|subroutine|status)\>" + +icolor cyan "\<(abs|achar|adjustl|adjustr|allocate|bit_size|call|char)\>" +icolor cyan "\<(close|contains|count|cpu_time|cshift|date_and_time)\>" +icolor cyan "\<(deallocate|digits|dot_product|eor|eoshift|function|iachar)\>" +icolor cyan "\<(iand|ibclr|ibits|ibset|ichar|ieor|iolength|ior|ishft|ishftc)\>" +icolor cyan "\<(lbound|len|len_trim|matmul|maxexponent|maxloc|maxval|merge)\>" +icolor cyan "\<(minexponent|minloc|minval|mvbits|namelist|nearest|nullify)\>" +icolor cyan "\<(open|pad|present|print|product|pure|quote|radix)\>" +icolor cyan "\<(random_number|random_seed|range|read|readwrite|replace)\>" +icolor cyan "\<(reshape|rewind|save|scan|sequence|shape|sign|size|spacing)\>" +icolor cyan "\<(spread|sum|system_clock|target|transfer|transpose|trim)\>" +icolor cyan "\<(ubound|unpack|verify|write|tiny|type|use|yes)\>" + +icolor yellow "\<(.and.|case|do|else|else?if|else?where|end|end?do|end?if)\>" +icolor yellow "\<(end?select|.eqv.|forall|if|lge|lgt|lle|llt|.neqv.|.not.)\>" +icolor yellow "\<(.or.|repeat|select case|then|where|while)\>" + +icolor magenta "\<(continue|cycle|exit|go?to|result|return)\>" + +# Strings. +color yellow "<[^= ]*>" ""(\\.|[^"])*"" + +# Comments. +color blue "!.*" diff --git a/original/gentoo.nanorc b/original/gentoo.nanorc new file mode 100644 index 0000000..e9d178d --- /dev/null +++ b/original/gentoo.nanorc @@ -0,0 +1,74 @@ +## Here is an example for Gentoo ebuilds/eclasses, +## and (further down) one for Portage control files. + +syntax ebuild "\.e(build|class|blit)$" +comment "#" + +## All the standard portage functions: +color brightgreen "(^|\" +color brightgreen "^pkg_(config|nofetch|info|pretend|setup|(pre|post)(inst|rm))\>" +color brightgreen "\" +## Bash-related syntax: +color green "\<(break|case|continue|do|done|elif|else|esac|exit|fi|for|function|if|in|read|return|select|shift|then|time|until|while)\>" +color green "\<(declare|eval|exec|export|let|local)\>" +color green "[{}():;|`$<>!=&\\]" "(\]|\[)" +color green "-[defhnrsuwxzL]\>" +color green "-(eq|ne|gt|lt|ge|le)\>" +## Variables... official portage ones in red, all others in bright red: +color brightred "\$[-0-9@*#?$!]" "\$[[:alpha:]_][[:alnum:]_]*" +color brightred "\$\{[#!]?([-@*#?$!]|[0-9]+|[[:alpha:]_][[:alnum:]_]*)(\[([[:digit:]]|@)+\])?(([#%/]|:?[-=?+])[^}]*\}|\[|\})" +color red "\<(EAPI|ARCH|HOMEPAGE|DESCRIPTION|IUSE|SRC_URI|LICENSE|SLOT|KEYWORDS|[HPR]?DEPEND|PROVIDE|PROPERTIES|REQUIRED_USE|RESTRICT|USERLAND)\>" +color red "\<(S|E?D|T|PV|PF|P|PN|PR|PVR|A|CATEGORY|DISTDIR|FILESDIR|EPREFIX|E?ROOT|WORKDIR)\>" +color red "\<(AS|C(PP|XX)?|LD)FLAGS\>" "\" "\<(MERGE_TYPE|REPLACING_VERSIONS|REPLACED_BY_VERSION)\>" +color red "\" +color red "\" +color red "\<(PATCHES|(HTML_)?DOCS)\>" "\" "\" +## Portage commands: +color magenta "\<(use(_(with|enable|if_iuse)|x)?|in_iuse) [!a-zA-Z0-9_+ -]*" "inherit.*" +color brightblue "\" +color brightblue "\" "\" +color brightblue "\" "\" +color brightblue "\" "\" +color brightblue "\<(die|hasv?|inherit|nonfatal)\>" "\<(use(_(with|enable|if_iuse)|x)?|in_iuse)\>" "\<(has|best)_version\>" +color brightblue "\<(do|new)(ins|(games)?s?bin|doc|lib(\.so|\.a)?|man|info|exe|initd|confd|envd|pam|menu|icon)\>" +color brightblue "\" "\" +color brightblue "\" "\" +color brightblue "\<(doc|ins|exe)?into\>" "\<(f|games)(owners|perms)\>" "\<(exe|ins|dir)opts\>" +color brightblue "\" +color brightblue "\" +## Common commands used in ebuilds: +color blue "\<(awk|cat|cd|chmod|chown|cp|echo|env|find|e?grep|ln|make|mkdir|mv|popd|printf|pushd|rm|rmdir|sed|set|tar|touch|unset|xargs)\>" +## Comments (doesn't work that well): +color yellow "(^|[[:space:]])#.*" +## Strings (doesn't work that well): +color brightyellow ""(\\.|[^\"])*"" "'(\\.|[^'])*'" +## Trailing space is bad! +color ,green "[[:space:]]+$" +## Mixed whitespace is also bad. +color ,green " " + + +syntax /etc/portage "\.(accept_keywords|env|keywords|mask|unmask|use)(/.+)?$" +comment "#" + +## Base text: +color green ".+" +## Likely version and slot numbers: +color magenta "-[[:digit:].]+(_(alpha|beta|pre|rc|p)[[:digit:]]*)*(-r[[:digit:]]+)?([:[:space:]]|$)" +color magenta ":[^[:space:]]+([[:space:]]|$)" +## Use flags (must come after version/slot): +color brightred "[[:space:]]+\+?[A-Za-z0-9+_@-]+" +color brightblue "[[:space:]]+-[A-Za-z0-9+_@-]+" +## Accepted arches: +color white "[~-]?\<(alpha|amd64|arm(64)?|hppa|ia64|m68k|mips|nios2|ppc(64)?|riscv|s390|sh|sparc|x86)(-(aix|(f|free|net|open)bsd|cygwin|hpux|interix|linux|macos|mint|solaris|winnt))?\>" +color white "[[:space:]][*~-]?\*" +## Categories: +color cyan "^[[:space:]]*[^/]*/" +## Masking regulators: +color brightmagenta "^[[:space:]]*(=|~|<|<=|>|>=)" +## Comments: +color yellow "#.*" +## Trailing space is bad! +color ,green "[[:space:]]+$" +## Mixed whitespace is also bad. +color ,green " " diff --git a/original/go.nanorc b/original/go.nanorc new file mode 100644 index 0000000..f8b61e0 --- /dev/null +++ b/original/go.nanorc @@ -0,0 +1,41 @@ +## Here is an example for Go. + +syntax go "\.go$" +comment "//" + +# Types. +color green "\<(bool|u?int(8|16|32|64)?|float(32|64)|complex(64|128)|byte|rune|uintptr|string|error)\>" +color green "\<((<-[[:space:]]*)chan|chan[[:space:]]*<-|const|func|interface|map|struct|type|var)\>" + +# Predefined functions. +color blue "\<(append|cap|close|complex|copy|delete|imag|len|make|new|panic|print|println|real|recover)\>" + +# Control structures. +color brightyellow "\<(case|default|defer|else|for|go|if|range|select|switch)\>" + +# Control flow. +color magenta "\<(break|continue|fallthrough|goto|return)\>" + +# Declarations. +color brightcyan "\<(package|import)\>" +color brightcyan "//[[:space:]]*\+build[[:space:]]+(([a-zA-Z_0-9]+[[:space:]]*)+,[[:space:]]*)*[a-zA-Z_0-9]+" + +# Literals. +color red "\<([1-9][0-9]*|0[0-7]*|0[xX][0-9A-Fa-f]+)\>" +color red "\<[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?i?\>" +color red "\<[0-9]+[eE][+-]?[0-9]+i?\>" +color red "\B\.[0-9]+([eE][+-]?[0-9]+)?i?\>" +color red "\<[0-9]+i\>" + +# Strings and characters; slightly fuzzy. +color red "\<(true|false|nil|iota|_)\>" +color red "'(\\.|[^'])+'" +color red ""(\\.|[^"])*"" +color red start=""(\\.|[^"])*\\[[:space:]]*$" end="^(\\.|[^"])*"" + +# Comments. +color brightblue "//.*" +color brightblue start="/\*" end="\*/" + +# Trailing whitespace. +color ,green "[[:space:]]+$" diff --git a/original/groff.nanorc b/original/groff.nanorc new file mode 100644 index 0000000..a24c40b --- /dev/null +++ b/original/groff.nanorc @@ -0,0 +1,26 @@ +## Here is an example for groff. + +syntax groff "(/tmac\.[^/]+$|\.(m[ems]|rof|tmac)$)" +comment ".\"" + +# The argument of .ds or .nr +color cyan "^\.(ds|nr) [^[:space:]]*" +# Single-character escapes +color brightmagenta "\\." +# The argument of \f or \s in the same color +color brightmagenta "\\f." "\\f\(.." "\\s(\+|\-)?[0-9]" +# Newlines +color cyan "(\\|\\\\)n(.|\(..)" +color cyan start="(\\|\\\\)n\[" end="]" +# Requests +color brightgreen "^\.[[:space:]]*[^[:space:]]*" +# Comments +color yellow "^\.\\".*" +# Strings +color green "(\\|\\\\)\*(.|\(..)" +color green start="(\\|\\\\)\*\[" end="]" +# Characters +color brightred "\\\(.." +color brightred start="\\\[" end="]" +# Macro arguments +color brightcyan "\\\\\$[1-9]" diff --git a/original/guile.nanorc b/original/guile.nanorc new file mode 100644 index 0000000..c7db3de --- /dev/null +++ b/original/guile.nanorc @@ -0,0 +1,24 @@ +## Here is an example for Guile Scheme. + +syntax guile "\.scm$" +header "^#!.*guile" +comment ";" + +# Basic scheme functions +color green "\<(do|if|lambda|let(rec)?|map|unless|when)\>" +# Defining things +color brightcyan "\" +# Quoted symbols +color brightyellow "'\<(\w|-)+\>" +# Chars +color brightmagenta "#\\." +color brightmagenta "#\\\w+\>" +# Booleans +color brightred "(#t|#f)\>" +# Keywords +color blue "#?:(\w|[?-])+" +# Strings +color yellow start="^[[:blank:]]+\"" end="[^\]\"" +color yellow ""(\\.|[^"])*"" +# Comments +color cyan "(^|[[:space:]]);.*" diff --git a/original/html.nanorc b/original/html.nanorc new file mode 100644 index 0000000..0507512 --- /dev/null +++ b/original/html.nanorc @@ -0,0 +1,28 @@ +## Here is an example for HTML. + +syntax html "\.html?$" +magic "HTML document" +comment "" + +# Tags: +color cyan "<[[:alpha:]/!?][^>]*>" +# Bold, italic, and underlined: +color brightmagenta "" + +# Named character references: +color red "&[^;[:space:]]*;" +# Strings: +color green ""(\\.|[^"])*"" + +# Attributes: +color red "(abbr|accept(-charset)?|accesskey|action|alink|align|alt|archive|axis|background|bgcolor|border)=" +color red "(cell(padding|spacing)|char(off|set)?|checked|cite|class(id)?|compact|code(base|tag)?|cols(pan)?)=" +color red "(content(editable)?|contextmenu|coords|data|datetime|declare|defer|dir|disabled|enctype)=" +color red "(for|frame(border)?|headers|height|hidden|href(lang)?|hspace|http-equiv|id|ismap)=" +color red "(label|lang|link|longdesc|margin(height|width)|maxlength|media|method|multiple)=" +color red "(name|nohref|noresize|noshade|object|onclick|onfocus|onload|onmouseover|profile|readonly|rel|rev)=" +color red "(rows(pan)?|rules|scheme|scope|scrolling|selected|shape|size|span|src|standby|start|style|summary)=" +color red "(tabindex|target|text|title|type|usemap|valign|value(type)?|vlink|vspace|width|xmlns|xml:space)=" + +# Comments: +color yellow start="" diff --git a/original/java.nanorc b/original/java.nanorc new file mode 100644 index 0000000..5bb294f --- /dev/null +++ b/original/java.nanorc @@ -0,0 +1,16 @@ +## Here is an example for Java. + +syntax java "\.java$" +magic "Java " +comment "//" + +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)\>" +color cyan "\<(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 ,green "[[:space:]]+$" diff --git a/original/javascript.nanorc b/original/javascript.nanorc new file mode 100644 index 0000000..1fe7551 --- /dev/null +++ b/original/javascript.nanorc @@ -0,0 +1,24 @@ +## Syntax highlighting for Javascript. + +syntax javascript "\.js$" +comment "//" + +# Declarational stuff. +color green "\<(async|class|const|extends|function|let|this|typeof|var|void)\>" +# Flow control and special keywords. +color brightyellow "\<(do|while|if|else|switch|case|default|for|each|in|of|with)\>" +color brightyellow "\<(await|export|import|throw|try|catch|finally|new|delete)\>" +# "Exit" points. +color magenta "\<(break|continue|return|yield)\>" + +# Octal/decimal and hexadecimal numbers. +color cyan "\<[0-9]+\>" "\<0x[0-9A-Fa-f]+\>" + +# Strings. +color brightmagenta ""(\\.|[^"])*"" "'(\\.|[^'])*'" "`(\\.|[^`])*`" +# Comments. +color brightblue "(^|[[:space:]])//.*" +color brightblue start="/\*" end="\*/" + +# Trailing whitespace. +color ,green "[[:space:]]+$" diff --git a/original/json.nanorc b/original/json.nanorc new file mode 100644 index 0000000..185c08f --- /dev/null +++ b/original/json.nanorc @@ -0,0 +1,34 @@ +## Syntax highlighting for JSON files. + +# See: http://www.json.org/ +# Original author: Aapo Rantalainen +# License: GPLv3 or newer + +syntax json "\.json$" +# No comments are permitted in JSON. +comment "" + +# Numbers (used as value). +color green ":[[:space:]]*\-?(0|[1-9][0-9]*)(\.[0-9]+)?([Ee]?[-+]?[0-9]+)?" +# Values (well, any string). +color brightmagenta "\".+\"" +# Hex numbers (used as value). +color green ":[[:space:]]*\"#[0-9abcdefABCDEF]+\"" +# Escapes. +color green "\\\\" "\\\"" "\\[bfnrt]" "\\u[0-9abcdefABCDEF]{4})" +# Special words. +color green "(true|false|null)" + +# Names (very unlikely to contain a quote). +color brightblue "\"[^"]+\"[[:space:]]*:" + +# Brackets, braces, and separators. +color brightblue "\[" "\]" +color brightred "\{" "\}" +color brightred "," ":" + +# Comments. +color cyan "(^|[[:space:]]+)(//|#).*" + +# Trailing whitespace. +color ,green "[[:space:]]+$" diff --git a/original/lua.nanorc b/original/lua.nanorc new file mode 100644 index 0000000..7c66a52 --- /dev/null +++ b/original/lua.nanorc @@ -0,0 +1,60 @@ +## Syntax highlighting for Lua. +# +## Original author: Matthew Wild +## License: GPL 3 or later + +syntax lua "\.lua$" +magic "Lua script" +linter "luacheck --no-color" +comment "--" + +color brightwhite "\[\[.*\]\]" + +# Operators +color brightyellow ":|\*|/|%|\+|-|\^|>|>=|<|<=|~=|=|\.\.|#|\<(not|and|or)\>" +# Don't partially color ... as an operator +color normal "\.\.\." + +# Statements +color brightblue "\<(do|end|while|repeat|until|if|elseif|then|else|for|in|function|local|return|break)\>" + +# Keywords +color brightyellow "\<(_G|_VERSION|assert|collectgarbage|dofile|error|getfenv|getmetatable|ipairs|load|loadfile|module|next|pairs|pcall|print|rawequal|rawget|rawlen|rawset|require|select|setfenv|setmetatable|tonumber|tostring|type|unpack|xpcall)\s*\(" + +# Standard library +color brightyellow "\" +color brightyellow "\" +color brightyellow "\" +color brightyellow "\" +color brightyellow "\" +color brightyellow "\" +color brightyellow "\" +color brightyellow "\" +color brightyellow "\" +color brightyellow "\" + +# File handle methods +color brightyellow ":(close|flush|lines|read|seek|setvbuf|write)\>" + +# External files +color brightgreen "\<(dofile|require)\>" + +# Special words +color brightmagenta "\<(false|nil|true)\>" + +# Decimal and hexadecimal numbers +color red "\<[0-9]+(\.[0-9]*)?([Ee][+-]?[0-9]+)?\>" +color red "\<0x[0-9A-Fa-f]+(\.[0-9A-Fa-f]*)?([Pp][+-]?[0-9]+)?\>" + +# Brackets +color brightmagenta "\(|\)|\[|\]|\{|\}" + +# Shebang +color brightcyan "^#!.*" + +# Strings +color red ""(\\.|[^"\])*"|'(\\.|[^'\])*'" + +# Simple comments and multiline comments +color green "--.*" +color green start="--\[\[" end="\]\]" diff --git a/original/makefile.nanorc b/original/makefile.nanorc new file mode 100644 index 0000000..a1c116c --- /dev/null +++ b/original/makefile.nanorc @@ -0,0 +1,24 @@ +## Here is an example for Makefiles. + +syntax makefile "(/((GNU)?m|M)akefile[^/]*$|\.(make|mk)$)" +magic "makefile script" +comment "#" + +# Assignments. +color red " (:?:|\+|\?)?= " + +# Keywords. +color magenta "^(if|ifn?def|ifn?eq|else|endif|(-|s)?include)\>" +color magenta "^((override +)?(un)?define|endef|(un)?export|private|vpath)\>" + +# Variable expansions. +color blue "\$+[{(][a-zA-Z0-9_-]+[})]" + +# Targets. +color brightblue "^[^ ]+:" + +# Comments. +color green "(^|[[:space:]]+)#.*" + +# Trailing whitespace. +color ,green "[[:space:]]+$" diff --git a/original/man.nanorc b/original/man.nanorc new file mode 100644 index 0000000..0639612 --- /dev/null +++ b/original/man.nanorc @@ -0,0 +1,23 @@ +## Syntax highlighting for man pages. + +syntax man "\.[1-9]x?$" +magic "troff or preprocessor input" +comment ".\"" + +# Section headers, title line, and indented paragraphs. +color green "^\.(SH|SS|TH) .*" +color brightgreen "^\.(SH|SS|TH) " "^\.([HIT]P)" +# Type faces, and normal paragraphs. +color brightred "^\.(B[IR]?|I[BR]?|R[BI]|S[BM]) .*" +color brightblue "^\.(B[IR]?|I[BR]?|R[BI]|S[BM]) " "^\.([LP]?P)$" +# Inline type faces. +color magenta "\\f[BIPR]" +# Relative margins, hyperlinks, and various other stuff. +color yellow "^\.(RS|RE|UR|UE|PD|DT)" +color yellow "^\.(ad|bp|br|ce|de|ds|el|ie|if|fi|ft|hy|ig|in|na|ne|nf|nh|ps|so|sp|ti|tr)" + +# Comments. +color cyan "(^\.)?\\\".*" + +# Trailing whitespace. +color ,green "[[:space:]]+$" diff --git a/original/mgp.nanorc b/original/mgp.nanorc new file mode 100644 index 0000000..20503d2 --- /dev/null +++ b/original/mgp.nanorc @@ -0,0 +1,9 @@ +## Here is an example for Magicpoint presentations. + +syntax mgp "\.mgp$" +header "^%include.*" +comment "#" + +color green "^%[A-Za-z].*" +color cyan "(^|[[:space:]])(#|%%).*" +color ,green "[[:space:]]+$" diff --git a/original/mutt.nanorc b/original/mutt.nanorc new file mode 100644 index 0000000..97cfcd1 --- /dev/null +++ b/original/mutt.nanorc @@ -0,0 +1,9 @@ +## Here is an example for quoted emails (under e.g. mutt). + +syntax mutt + +# Quoted lines. +color green "^>.*" + +# Signatures, even quoted ones. +color yellow start="^>* ?-- $" end="^>* ?$" diff --git a/original/nanohelp.nanorc b/original/nanohelp.nanorc new file mode 100644 index 0000000..426b23c --- /dev/null +++ b/original/nanohelp.nanorc @@ -0,0 +1,11 @@ +## This is meant for highlighting key combos in a nano help text. + +# It should not apply to any normal file, so no fileregex. +syntax nanohelp + +# Key combos: +color cyan "\^[]4-8A-Z^\_◀▶▲▼]" "[◀▶▲▼]" "\" + +# Quoted indicators: +color brightred "'(\^|M-)'" diff --git a/original/nanorc.nanorc b/original/nanorc.nanorc new file mode 100644 index 0000000..bf31e92 --- /dev/null +++ b/original/nanorc.nanorc @@ -0,0 +1,32 @@ +## Here is an example for nanorc files. + +syntax nanorc "\.?nanorc$" +comment "#" + +# Possible errors and parameters +icolor brightred "^[[:space:]]*((un)?(bind|set)|include|syntax|header|magic|comment|linter|i?color|extendsyntax).*" + +# Keywords +icolor brightgreen "^[[:space:]]*(set|unset)[[:space:]]+(afterends|allow_insecure_backup|atblanks|autoindent|backup|backwards|boldtext|breaklonglines|casesensitive|constantshow|cutfromcursor|emptyline|finalnewline|historylog|jumpyscrolling|linenumbers|locking|morespace|mouse|multibuffer|noconvert|nohelp|nopauses|nonewlines|nowrap|positionlog|preserve|quickblank|quiet|rebinddelete|rebindkeypad|regexp|showcursor|smarthome|smooth|softwrap|suspend|tabstospaces|tempfile|trimblanks|unix|view|wordbounds|zap)\>" +icolor yellow "^[[:space:]]*set[[:space:]]+((error|function|key|number|selected|status|stripe|title)color)[[:space:]]+(bright)?(white|black|red|blue|green|yellow|magenta|cyan|normal)?(,(white|black|red|blue|green|yellow|magenta|cyan|normal))?\>" +icolor brightgreen "^[[:space:]]*set[[:space:]]+(backupdir|brackets|errorcolor|functioncolor|keycolor|matchbrackets|numbercolor|operatingdir|punct|quotestr|selectedcolor|speller|statuscolor|stripecolor|titlecolor|whitespace|wordchars)[[:space:]]+" +icolor brightgreen "^[[:space:]]*set[[:space:]]+(fill[[:space:]]+-?[[:digit:]]+|(guidestripe|tabsize)[[:space:]]+[1-9][0-9]*)\>" +icolor brightgreen "^[[:space:]]*bind[[:space:]]+((\^([[:alpha:]]|[]@\^_]|Space)|M-([[:alpha:]]|[]!"#$%&'()*+,./0-9:;<=>?@\^_`{|}~-]|Space))|F([1-9]|1[0-6])|Ins|Del)[[:space:]]+([[:alpha:]]+|".*")[[:space:]]+(all|main|search|replace(with)?|yesno|gotoline|writeout|insert|ext(ernal)?cmd|help|spell|linter|browser|whereisfile|gotodir)([[:space:]]+#|[[:space:]]*$)" +icolor brightgreen "^[[:space:]]*unbind[[:space:]]+((\^([[:alpha:]]|[]@\^_]|Space)|M-([[:alpha:]]|[]!"#$%&'()*+,./0-9:;<=>?@\^_`{|}~-]|Space))|F([1-9]|1[0-6])|Ins|Del)[[:space:]]+(all|main|search|replace(with)?|yesno|gotoline|writeout|insert|ext(ernal)?cmd|help|spell|linter|browser|whereisfile|gotodir)([[:space:]]+#|[[:space:]]*$)" +icolor brightgreen "^[[:space:]]*extendsyntax[[:space:]]+[[:alpha:]]+[[:space:]]+(i?color|header|magic|comment|linter)[[:space:]]+.*" +icolor brightgreen "^[[:space:]]*(syntax|linter)[[:space:]]+[^[:blank:]]+" +icolor green "^[[:space:]]*((un)?(bind|set)|include|syntax|header|magic|comment|linter|extendsyntax)\>" + +# Strings +color brightmagenta "([[:space:]]|(start|end)=)".+"([[:space:]]|$)" + +# Colors +icolor yellow "^[[:space:]]*i?color[[:space:]]*(bright)?(white|black|red|blue|green|yellow|magenta|cyan|normal)?(,(white|black|red|blue|green|yellow|magenta|cyan|normal))?\>" +icolor magenta "^[[:space:]]*i?color\>" "\<(start|end)=" + +# Comments +color brightblue "(^|[[:space:]]+)#.*" +color cyan "^[[:space:]]*##.*" + +# Trailing whitespace +color ,green "[[:space:]]+$" diff --git a/original/nftables.nanorc b/original/nftables.nanorc new file mode 100644 index 0000000..328f31e --- /dev/null +++ b/original/nftables.nanorc @@ -0,0 +1,30 @@ +## Here is an example for nftables. + +syntax nftables "\.(nft|nftables)$" +header "^#!.*(nft|nftables)" +comment "#" + +# Objects and operations +color green "\<(chain|hook|policy|priority|ruleset|set|table|type|v?map)\>" +color green "\<(define|include)\>" +color red "\<(add|delete|flush|insert|remove|replace)\>" + +# Families +color yellow "\<(arp|bridge|inet|ingress|ip6?|netdev)\>" + +# Terminal statements +color red "\<(drop|reject)\>" +color brightblue "\<(accept|continue|(d|s)nat|goto|jump|masquerade|return)\>" + +# Comments +color cyan "(^|[[:space:]])#.*" + +# Trailing whitespace +color ,green "[[:space:]]+$" + +# Strings and others +color yellow ""(\\.|[^"])*"" "'(\\.|[^'])*'" +color green "[{}():;|`$<>!=&\\]" "(\]|\[)" + +# Basic variable names +color brightred "(\$|@)[[:alpha:]_-][[:alnum:]_.-]*" diff --git a/original/objc.nanorc b/original/objc.nanorc new file mode 100644 index 0000000..7fb0bd7 --- /dev/null +++ b/original/objc.nanorc @@ -0,0 +1,42 @@ +## Here is an example for C/C++/Obj-C. + +syntax m "\.m$" +magic "Objective-C source" +comment "//" + +# Stuffs, +color brightwhite "\<[A-Z_][0-9A-Z_]+\>" +color green "\<(float|double|BOOL|bool|char|int|short|long|id|sizeof|enum|void|static|const|struct|union|typedef|extern|(un)?signed|inline)\>" +color green "\<[[:alpha:]_][[:alnum:]_]*_t\>" +color green "\<(class|namespace|template|public|protected|private|typename|this|friend|virtual|using|mutable|volatile|register|explicit)\>" +color brightgreen "\<(for|if|while|do|else|case|default|switch)\>" +color brightgreen "\<(try|throw|catch|operator|new|delete)\>" +color brightgreen "\<(goto|continue|break|return)\>" +color brightgreen "@(encode|end|implementation|interface)|selector)\>" + +# GCC builtins. +color cyan "__attribute__[[:space:]]*\(\([^)]*\)\)" "__(aligned|asm|builtin|hidden|inline|packed|restrict|section|typeof|weak)__" + +# Selector/method. +color brightmagenta "(^|[[:space:]])\[.*[[:space:]].*\]" +color white ":[[:alnum:]]*" +color magenta "[[:alnum:]]*:" +color white "\[[^][:space:]]*\]" + +# Strings. +color brightblack "'([^'\]|(\\["'abfnrtv\\]))'" "'\\(([0-3]?[0-7]{1,2}))'" "'\\x[0-9A-Fa-f]{1,2}'" +color brightblack "<[^= ]*>" ""(\\.|[^"])*"" +color brightblue "@"(\\.|[^"])*"" +# Multiline strings. This regex is VERY resource intensive, +# and sometimes colours things that shouldn't be coloured. +###color brightyellow start=""(\\.|[^"])*\\[[:space:]]*$" end="^(\\.|[^"])*"" + +# Preprocessor commands. +color brightblue "^[[:space:]]*#[[:space:]]*(define|include|import|(un|ifn?)def|endif|el(if|se)|if|warning|error)" + +# Comments. +color yellow "//.*" +color yellow start="/\*" end="\*/" + +# Trailing whitespace. +color ,green "[[:space:]]+$" diff --git a/original/ocaml.nanorc b/original/ocaml.nanorc new file mode 100644 index 0000000..26b20b9 --- /dev/null +++ b/original/ocaml.nanorc @@ -0,0 +1,30 @@ +## Syntax highlighting for OCaml. + +syntax ocaml "\.mli?$" +magic "OCaml" +comment "(*|*)" + +# Uid: +color red "\<[A-Z][0-9a-z_]{2,}\>" +# Declarations: +color green "\<(let|val|method|in|and|rec|private|virtual|constraint)\>" +# Structure items: +color red "\<(type|open|class|module|exception|external)\>" +# Patterns: +color blue "\<(fun|function|functor|match|try|with)\>" +# Pattern modifiers: +color yellow "\<(as|when|of)\>" +# Conditions: +color cyan "\<(if|then|else)\>" +# Blocks: +color magenta "\<(begin|end|object|struct|sig|for|while|do|done|to|downto)\>" +# Constants: +color green "\<(true|false)\>" +# Modules/classes: +color green "\<(include|inherit|initializer)\>" +# Expression modifiers: +color yellow "\<(new|ref|mutable|lazy|assert|raise)\>" +# Comments: +color white start="\(\*" end="\*\)" +# Strings: (no multiline handling yet) +color brightblack ""[^\"]*"" diff --git a/original/patch.nanorc b/original/patch.nanorc new file mode 100644 index 0000000..8d9e0aa --- /dev/null +++ b/original/patch.nanorc @@ -0,0 +1,26 @@ +## Here is an example for patch files. + +syntax patch "\.(patch|diff|debdiff)$" +magic "diff output" +# There is no official support for comments in patch files. +comment "" + +# Added lines. +color brightgreen "^\+.*" +# Show trailing whitespace only on added lines. +color ,green "[[:space:]]+$" +# Context lines. +color brightblue "^ .*" +# Deleted lines. +color brightred "^-.*" + +# Header lines. +color magenta "^(Index:|diff)[[:blank:]].*" +# File names and dates. +color red "^---.*" +color green "^\+\+\+.*" +# Line numbers. +color brightyellow "^@@.*" + +# Statistics. +color cyan start="^---$" end="^$" diff --git a/original/perl.nanorc b/original/perl.nanorc new file mode 100644 index 0000000..f5657ae --- /dev/null +++ b/original/perl.nanorc @@ -0,0 +1,24 @@ +## Here is an example for Perl. + +syntax perl "\.p[lm]$" +header "^#!.*perl" +magic "Perl script" +comment "#" + +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(dir)?)\>" "\<(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)\>" + +# Variable names. +color cyan "[$%&@]([A-Za-z_][0-9A-Za-z_]*|\^[][A-Z?\^_]|[0-9]+)\>" +color cyan "[$%&@]\{(\^?[A-Za-z_][0-9A-Za-z_]*|\^[][?\^][0-9]+)\}" +color cyan "[$%&@]([][!"#'()*+,.:;<=>?`|~-]|\{[][!-/:-@\`|~]\})|\$[$%&@]" +color cyan "(^|[[:space:]])[$%@][/\]" + +color yellow "".*"|qq\|.*\|" +color white "[sm]/.*/" +color white start="(^use| = new)" end=";" + +# Comments. +color green "(^|[[:space:]])#.*" + +color yellow start="<< 'STOP'" end="STOP" diff --git a/original/php.nanorc b/original/php.nanorc new file mode 100644 index 0000000..1a61f06 --- /dev/null +++ b/original/php.nanorc @@ -0,0 +1,35 @@ +## Here is an example for PHP. + +syntax php "\.(php[23457s~]?|phtml|ctp)$" +magic "PHP script" +comment "//" + +# PHP markings. +color brightgreen "(<\?(php)?|\?>)" + +# Function names. +color white "\<[A-Za-z_][A-Za-z_0-9]*\(" +# Variable names. +color cyan "\$[A-Za-z_][A-Za-z_0-9]*" + +# Types. +color green "\<(array|bool|callable|const|float|global|int|object|string|var)\>" + +# Directives and structure. +color brightcyan "\<(abstract|as|class|clone|(end)?declare|extends|function|implements|include(_once)?|inst(ance|ead)of|interface|namespace|new|private|protected|public|require(_once)?|static|trait|use|yield)\>" +color brightcyan "\<(case|catch|default|do|echo|else(if)?|end(for(each)?|if|switch|while)|final(ly)?|for(each)?|if|print|switch|throw|try|while)\>" +# Operators. +color brightcyan "\<(and|or|xor)\>" + +# Control flow. +color magenta "\<(break|continue|goto|return)\>" + +# Strings. +color brightyellow ""(\.|[^"])*"" "'(\.|[^'])*'" + +# Comments. +color brightblue "(^|[[:space:]]+)//.*" +color brightblue start="/\*" end="\*/" + +# Trailing whitespace. +color ,green "[[:space:]]+$" diff --git a/original/po.nanorc b/original/po.nanorc new file mode 100644 index 0000000..ecbfb7d --- /dev/null +++ b/original/po.nanorc @@ -0,0 +1,29 @@ +## Colouring for PO files. + +syntax po "\.pot?$" +comment "#" + +# Comments. +color green "^#.*$" +color yellow "Copyright|\(C\)" +# Header fields. +color brightred "^\"X-Bugs:.*\"$" +color brightmagenta "\<(Project\-Id\-Version|Report\-Msgid\-Bugs\-To|Last\-Translator|Language(\-Team)?|X-Bugs|X-Generator|Plural\-Forms)\>" +color cyan "\<(POT\-Creation\-Date|PO\-Revision\-Date|MIME\-Version|Content\-Type|Content\-Transfer\-Encoding)\>" +# Encodings and numbers. +color yellow "\<(UTF|ISO|Windows|Mac|IBM)-[0-9]+" +color yellow "\<((pre|rc)?[0-9]+|[0-9]bit)\>" +# Msgids. +color brightblue "^(msgid|msgid_plural|msgstr)\>" +# Tags. +color red " fuzzy(,|$)" +color yellow " (no-)?[-[:alpha:]]+-format(,|$)" +# Format specifiers. +color brightmagenta "%([1-9]\$)?[a-z]*" +# Quotes and escaped characters. +color yellow "\"" +color cyan "\\([abcefnrtv"\]|x[0-9abcdefABCDEF]{2}|[0-7]{3})" +# Reminders. +color brightwhite,yellow "(FIXME|TODO|XXX)" +# Obsolete strings. +color red "#~.*" diff --git a/original/postgresql.nanorc b/original/postgresql.nanorc new file mode 100644 index 0000000..d90344a --- /dev/null +++ b/original/postgresql.nanorc @@ -0,0 +1,74 @@ +## Here is an example for PostgreSQL. + +syntax sql "\.sql[2345s~]?$" +comment "-- " + +# Functions. +color white "\<[a-z_]*\(" + +# Types. +color green "\<(int2|smallint|int4|int|integer|int8|bigint|decimal|numeric|real|double precision|(small|big)?serial)\>" +color green "\<(bit( varying)?|boolean|bytea|enum|money|tsvector|uuid)\>" +color green "\<(char|varchar|character( varying)?|text)\>" +color green "\<(date|interval|time(stamp)?( with time zone| without time zone)?)\>" +color green "\<(point|line|lseg|path|box|polygon|circle)\>" +color green "\<(cidr|inet|macaddr)\>" +color green "\<(daterange|int4range|int8range|numrange|tsrange|tstzrange)\>" + +# Structure. +color brightyellow "\<(CASE|CLASS|DEFAULT|DO|ELSE|ELSEIF|FOR|FOREACH|FUNCTION|IF|IS NULL)\>" +color brightyellow "\<(NEW|PRIVATE|PUBLIC|RETURN|RETURNS|SETOF|SWITCH|THEN|WHEN|WHILE)>" + +# Control flow. +color magenta "\<(EXCEPTION|NOTICE|RAISE|RETURN)\>" + +# SQL keywords. +color blue "\<(ABORT|AGGREGATE|ALTER|ANALYZE|AND|AS|AUTHORIZATION|BEGIN|CAST|CHECKPOINT|CLASS|CLOSE)\>" +color blue "\<(CLUSTER|COLLATION|COMMENT|COMMIT|CONFIGURATION|CONSTRAINTS|CONVERSION|COPY|CREATE)\>" +color blue "\<(DATA|DATABASE|DEALLOCATE|DECLARE|DEFAULT|DELETE|DICTIONARY|DISCARD|DO|DOMAIN|DROP)\>" +color blue "\<(END|EVENT|EXECUTE|EXPLAIN|EXTENSION|FAMILY|FETCH|FOREIGN|FROM|FUNCTION)\>" +color blue "\<(GRANT|GROUP|IF NOT EXISTS|IMMUTABLE|INDEX|INSERT|INTO|LABEL|LANGUAGE|LARGE|LOAD|LOCK)\>" +color blue "\<(MAPPING FOR|MATERIALIZED|MOVE|NOTIFY|OBJECT|OPERATOR|OPTIONS|OWNED|OWNER)\>" +color blue "\<(PARSER|PREPARED?|PRIVILEGES|REASSIGN|REFRESH|RELEASE|RESET|REVOKE|ROLE|ROLLBACK|RULE)\>" +color blue "\<(SAVEPOINT|SCHEMA|SEARCH|SECURITY|SELECT|SEQUENCE|SERVER|SESSION|SET|SHOW|SPACE|START|SYSTEM)\>" +color blue "\<(TABLE|TEXT|TO|TRANSACTION|TYPE|UPDATE|USER|VACUUM|VALUES|VIEW|WHERE|WITH|WRAPPER)\>" + +# Strings. +color brightyellow "<[^= ]*>" ""(\.|[^"])*"" + +# Trailing whitespace. +color ,green "[[:space:]]+$" + +# Regular expressions. +color brightmagenta "/([^/]|(\\/))*/[iomx]*" "%r\{([^}]|(\\}))*\}[iomx]*" + +# Shell command expansion is in `backticks` or like %x{this}. These are +# "double-quotish" (to use a perlism). +color brightblue "`[^`]*`" "%x\{[^}]*\}" + +# Strings, double-quoted. +color green ""([^"]|(\\"))*"" "%[QW]?\{[^}]*\}" "%[QW]?\([^)]*\)" "%[QW]?<[^>]*>" +color green "%[QW]?\[[^]]*\]" "%[QW]?\$[^$]*\$" "%[QW]?\^[^^]*\^" "%[QW]?![^!]*!" + +# Expression substitution. These go inside double-quoted strings, +# "like #{this}". +color brightgreen "#\{[^}]*\}" + +# Strings, single-quoted. +color green "'([^']|(\\'))*'" "%[qw]\{[^}]*\}" "%[qw]\([^)]*\)" "%[qw]<[^>]*>" +color green "%[qw]\[[^]]*\]" "%[qw]\$[^$]*\$" "%[qw]\^[^^]*\^" "%[qw]![^!]*!" + +# Comments. +color red "##?[^{].*" "##?$" +color red "--[^{].*" "--$" +color brightblue "//.*" +color brightblue start="/\*" end="\*/" + +# PostgreSQL markings. +color red "(--)" + +# PostgreSQL default schemas. +color brightred "(pg_catalog|public)" + +# PostgreSQL PLs. +color brightblue "(pljava|plperlu?|plpgsql|plpy|plpythonu?|plr|plruby|plsh|pltcl|plscheme)" diff --git a/original/pov.nanorc b/original/pov.nanorc new file mode 100644 index 0000000..ad1e4e7 --- /dev/null +++ b/original/pov.nanorc @@ -0,0 +1,16 @@ +## Here is an example for POV-Ray. + +syntax pov "\.(pov|POV|povray|POVRAY)$" +comment "//" + +color brightcyan "^[[:space:]]*#[[:space:]]*(declare)" +color brightyellow "\<(sphere|cylinder|translate|matrix|rotate|scale)\>" +color brightyellow "\<(orthographic|location|up|right|direction|clipped_by)\>" +color brightyellow "\<(fog_type|fog_offset|fog_alt|rgb|distance|transform)\>" +color brightred "\<(background|camera|fog|light_source|object|texture)\>" +color green "(\{|\}|\(|\)|\;|\]|\[|`|\\|\$|<|>|!|=|&|\|)" +color brightmagenta "\<(union|group|subgroup)\>" + +# Comments. +color brightblue "//.*" +color brightblue start="/\*" end="\*/" diff --git a/original/python.nanorc b/original/python.nanorc new file mode 100644 index 0000000..bc6b84f --- /dev/null +++ b/original/python.nanorc @@ -0,0 +1,39 @@ +## Here is an example for Python. + +syntax python "\.py$" +header "^#!.*python" +magic "Python script" +linter pyflakes +comment "#" + +# Function definitions. +color brightblue "def [0-9A-Za-z_]+" +# Keywords. +color brightcyan "\<(and|as|assert|async|await|break|class|continue)\>" +color brightcyan "\<(def|del|elif|else|except|finally|for|from)\>" +color brightcyan "\<(global|if|import|in|is|lambda|nonlocal|not|or)\>" +color brightcyan "\<(pass|raise|return|try|while|with|yield)\>" + +# These two are keywords in Python 2, but functions in Python 3, +# so only color them when they are followed by whitespace, assuming +# that print(x) is a function invocation and print (x) is a statement. +color brightcyan "\<(exec|print)([[:blank:]]|$)" + +# Special values. +color brightmagenta "\<(False|None|True)\>" + +# Mono-quoted strings. +color brightgreen "'([^'\]|\\.)*'|'''" +color brightgreen ""([^"\]|\\.)*"|"""" +color normal "'''|"""" +# Comments. +color brightred "(^|[[:blank:]])#.*" +# Triple-quoted strings. +color brightgreen start="'''([^'),]|$)" end="(^|[^(\])'''" +color brightgreen start=""""([^"),]|$)" end="(^|[^(\])"""" + +# Reminders. +color brightwhite,yellow "(FIXME|TODO|XXX)" + +# Trailing whitespace. +color ,green "[[:space:]]+$" diff --git a/original/ruby.nanorc b/original/ruby.nanorc new file mode 100644 index 0000000..c331723 --- /dev/null +++ b/original/ruby.nanorc @@ -0,0 +1,36 @@ +## Here is an example for Ruby. + +syntax ruby "\.rb$" +header "^#!.*ruby" +magic "Ruby script" +linter ruby -w -c +comment "#" + +# Reserved words. +color yellow "\<(BEGIN|END|alias|and|begin|break|case|class|def|defined\?|do|else|elsif|end|ensure|false|for|if|in|module)\>" +color yellow "\<(next|nil|not|or|redo|rescue|retry|return|self|super|then|true|undef|unless|until|when|while|yield)\>" +# Constants. +color brightblue "(\$|@|@@)?\<[A-Z]+[0-9A-Z_a-z]*" +# Ruby "symbols". +color magenta "([ ]|^):[0-9A-Za-z_]+\>" +# Some unique things we want to stand out. +color brightyellow "\<(__FILE__|__LINE__)\>" +# Regular expressions. +color brightmagenta "/([^/]|(\\/))*/[iomx]*" "%r\{([^}]|(\\}))*\}[iomx]*" +# Shell command expansion is in `backticks` or like %x{this}. These are +# "double-quotish" (to use a perlism). +color brightblue "`[^`]*`" "%x\{[^}]*\}" +# Strings, double-quoted. +color green ""([^"]|(\\"))*"" "%[QW]?\{[^}]*\}" "%[QW]?\([^)]*\)" "%[QW]?<[^>]*>" "%[QW]?\[[^]]*\]" "%[QW]?\$[^$]*\$" "%[QW]?\^[^^]*\^" "%[QW]?![^!]*!" +# Expression substitution. These go inside double-quoted strings, +# "like #{this}". +color brightgreen "#\{[^}]*\}" +# Strings, single-quoted. +color green "'([^']|(\\'))*'" "%[qw]\{[^}]*\}" "%[qw]\([^)]*\)" "%[qw]<[^>]*>" "%[qw]\[[^]]*\]" "%[qw]\$[^$]*\$" "%[qw]\^[^^]*\^" "%[qw]![^!]*!" +# Comments. +color cyan "#[^{].*" "#$" +color brightcyan "##[^{].*" "##$" +# "Here" docs. +color green start="<<-?'?EOT'?" end="^EOT" +# Some common markers. +color brightcyan "(XXX|TODO|FIXME|\?\?\?)" diff --git a/original/rust.nanorc b/original/rust.nanorc new file mode 100644 index 0000000..aca2b9c --- /dev/null +++ b/original/rust.nanorc @@ -0,0 +1,39 @@ +## Syntax highlighting for Rust. +## Copyright 2015 Luke Francl. +## Licensed under GPL version 3. + +## NOTE: Rules are applied in order: later rules re-colorize matching text. + +syntax rust "\.(rlib|rs)$" +comment "//" + +# Function definitions +color magenta "fn [a-z_0-9]+" + +# Reserved words +color yellow "\<(abstract|alignof|as|become|box|break|const|continue|crate|do|else|enum|extern|false|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|offsetof|override|priv|pub|pure|ref|return|sizeof|static|self|struct|super|true|trait|type|typeof|unsafe|unsized|use|virtual|where|while|yield)\>" + +# Macros +color red "[a-z_]+!" + +# Constants +color magenta "[A-Z][A-Z_0-9]+" + +# Traits/Enums/Structs/Types/... +color magenta "[A-Z][A-Za-z0-9]+" + +# Strings +color green "\".*\"" +color green start="\".*\\$" end=".*\"" +## NOTE: This isn't accurate, but matching "#{0,} for the end of the string is too liberal. +color green start="r#+\"" end="\"#+" + +# Comments +color blue "//.*" +color blue start="/\*" end="\*/" + +# Attributes +color magenta start="#!\[" end="\]" + +# Some common markers +color brightcyan "(XXX|TODO|FIXME|\?\?\?)" diff --git a/original/sh.nanorc b/original/sh.nanorc new file mode 100644 index 0000000..10de221 --- /dev/null +++ b/original/sh.nanorc @@ -0,0 +1,37 @@ +## Here is an example for Bourne shell scripts. + +syntax sh "(\.sh|\.(a|ba|c|da|k|mk|pdk|tc|z)(sh|shrc|sh_profile)|/(etc/|\.)profile)$" +header "^#!.*/(((a|ba|c|da|k|mk|pdk|tc|z)?sh)|(busybox|env) +sh|openrc-run|runscript)" +magic "(POSIX|Bourne-Again) shell script.*text" +linter dash -n +comment "#" + +# Function declarations. +color brightgreen "^[A-Za-z0-9_-]+\(\)" + +# Keywords, symbols, and comparisons. +color green "\<(break|case|continue|do|done|elif|else|esac|exit|fi|for|function|if|in|read|return|select|shift|then|time|until|while)\>" +color green "\<(declare|eval|exec|export|let|local)\>" +color green "[{}():;|`$<>!=&\\]" "(\]|\[)" +color green "-(eq|ne|gt|lt|ge|le|ef|ot|nt)\>" + +# Short and long options. +color brightmagenta "[[:blank:]]-[A-Za-z]\>" "[[:blank:]]--[A-Za-z-]+\>" + +# Common commands. +color brightblue "\<(awk|cat|cd|ch(grp|mod|own)|cp|cut|echo|env|grep|head|install|ln|make|mkdir|mv|popd|printf|pushd|rm|rmdir|sed|set|sort|tail|tar|touch|umask|unset)\>" +color normal "[.-]tar\>" + +# Basic variable names (no braces). +color brightred "\$[-0-9@*#?$!]" "\$[[:alpha:]_][[:alnum:]_]*" +# More complicated variable names; handles braces and replacements and arrays. +color brightred "\$\{[#!]?([-@*#?$!]|[0-9]+|[[:alpha:]_][[:alnum:]_]*)(\[([[:space:]]*[[:alnum:]_]+[[:space:]]*|@)\])?(([#%/]|:?[-=?+])[^}]*\}|\[|\})" + +# Comments. +color cyan "(^|[[:space:]])#.*" + +# Strings. +color brightyellow ""(\\.|[^"])*"" "'(\\.|[^'])*'" + +# Trailing whitespace. +color ,green "[[:space:]]+$" diff --git a/original/spec.nanorc b/original/spec.nanorc new file mode 100644 index 0000000..fb9170c --- /dev/null +++ b/original/spec.nanorc @@ -0,0 +1,40 @@ +## Syntax highlighting for RPM spec files. + +syntax spec "\.spec(\.[^/]+)?$" +comment "#" + +# Main tags. +color brightblue "((Icon|ExclusiveOs|ExcludeOs)[[:space:]]*:)" +color brightblue "((BuildArch|BuildArchitectures|ExclusiveArch|ExcludeArch)[[:space:]]*:)" +color brightblue "((Conflicts|Obsoletes|Provides|Requires|Requires\(.*\)|Enhances|Suggests|BuildConflicts|BuildRequires|Recommends|PreReq|Supplements)[[:space:]]*:)" +color brightblue "((Epoch|Serial|Nosource|Nopatch)[[:space:]]*:)" +color brightblue "((AutoReq|AutoProv|AutoReqProv)[[:space:]]*:)" +color brightblue "((Copyright|License|Summary|Summary\(.*\)|Distribution|Vendor|Packager|Group|Source\d*|Patch\d*|BuildRoot|Prefix)[[:space:]]*:)" +color brightblue "((Name|Version|Release|Url|URL)[[:space:]]*:)" +color brightblue start="^Source" end=":" start="^Patch" end=":" +# Architectures. +color brightred "(i386|i486|i586|i686|athlon|ia64|alpha|alphaev5|alphaev56|alphapca56|alphaev6|alphaev67|sparc|sparcv9|sparc64armv3l|armv4b|armv4lm|ips|mipsel|ppc|ppc|iseries|ppcpseries|ppc64|m68k|m68kmint|Sgi|rs6000|i370|s390x|s390|noarch)" +# Architecture conditionals. +color brightred "(ifarch|ifnarch)" +# OS conditionals. +color brightred "(ifos|ifnos)" +# %* strings. +color green "%([A-Z_a-z_0-9_]*)" +color magenta "%_([A-Z_a-z_0-9_]*)" +color yellow start="%__" end="\ " +color magenta start="%\{" end="\}" +color yellow start="%\{__" end="\}" +# Sections. +color red "^%(build$|changelog|check$|clean$|description|files|install$|package|pre|prep$|pretrans|preun)" +color red "^%(post|posttrans|postun|trigger|triggerin|triggerpostun|triggerun|verifyscript)" +# Conditionals and defines. +color brightred "%(if|else|endif|define|global|undefine)" + +# Comments. +color cyan "#.*" +# Special case: "# norootforbuild" is handled as main tag. +color brightblue "^# norootforbuild" +# %changelog date entries. +color brightyellow "^\* .*\)$" +# Trailing whitespace. +color ,green "[[:space:]]+$" diff --git a/original/tcl.nanorc b/original/tcl.nanorc new file mode 100644 index 0000000..958b597 --- /dev/null +++ b/original/tcl.nanorc @@ -0,0 +1,22 @@ +## Syntax highlighting for Tcl files. + +syntax tcl "\.tcl$" +magic "Tcl(/Tk)? script" +comment "#" + +# Standard Tcl [info commands]: +color green "\<(after|append|array|auto_execok|auto_import|auto_load|auto_load_index|auto_qualify|binary|break|case|catch|cd|clock|close|concat|continue|encoding|eof|error|eval|exec|exit|expr|fblocked|fconfigure|fcopy|file|fileevent|flush|for|foreach|format|gets|glob|global|history|if|incr|info|interp|join|lappend|lindex|linsert|list|llength|load|lrange|lreplace|lsearch|lset|lsort|namespace|open|package|pid|puts|pwd|read|regexp|regsub|rename|return|scan|seek|set|socket|source|split|string|subst|switch|tclLog|tell|time|trace|unknown|unset|update|uplevel|upvar|variable|vwait|while)\>" +# Basic Tcl subcommands: +color green "\" +color green "\" +# Extended TclX [info commands]: +color green "\<(alarm|auto_load_pkg|bsearch|catclose|catgets|catopen|ccollate|cconcat|cequal|chgrp|chmod|chown|chroot|cindex|clength|cmdtrace|commandloop|crange|csubstr|ctoken|ctype|dup|echo|execl|fcntl|flock|fork|fstat|ftruncate|funlock|host_info|id|infox|keyldel|keylget|keylkeys|keylset|kill|lassign|lcontain|lempty|lgets|link|lmatch|loadlibindex|loop|lvarcat|lvarpop|lvarpush|max|min|nice|pipe|profile|random|readdir|replicate|scancontext|scanfile|scanmatch|select|server_accept|server_create|signal|sleep|sync|system|tclx_findinit|tclx_fork|tclx_load_tndxs|tclx_sleep|tclx_system|tclx_wait|times|translit|try_eval|umask|wait)\>" +# Syntax: +color brightblue "proc[[:space:]]" "(\{|\})" +color green "(\(|\)|\;|`|\\|\$|<|>|!|=|&|\|)" +color brightyellow ""(\\.|[^"])*"" "'(\\.|[^'])*'" +color brightred "\$\{?[0-9A-Za-z_!@#$*?-]+\}?" +# Trailing whitespace: +color ,green "[[:space:]]+$" +# Comments: +color cyan "^[[:space:]]*#.*" diff --git a/original/tex.nanorc b/original/tex.nanorc new file mode 100644 index 0000000..4ddec06 --- /dev/null +++ b/original/tex.nanorc @@ -0,0 +1,10 @@ +## Here is a short example for TeX files. + +syntax tex "\.tex$" +magic "(La)?TeX document" +linter chktex -v0 -q -I +comment "%" + +color green "\\.|\\[A-Za-z]*" +color magenta "[{}]" +color blue "(^|[^\])%.*" diff --git a/original/texinfo.nanorc b/original/texinfo.nanorc new file mode 100644 index 0000000..2b8251b --- /dev/null +++ b/original/texinfo.nanorc @@ -0,0 +1,21 @@ +## Here is an example for Texinfo files. + +syntax texinfo "\.texi$" +header "^\\input texinfo" +magic "Texinfo source" +comment "@c " + +# Command arguments, trailing and enclosed. +color cyan "^@[a-z]+[[:space:]]+.*$" +color brightmagenta "@[a-zA-Z]+\{[^}]*\}" +# Commands themselves. +color yellow "@[a-zA-Z]+\{?" "\}" + +# Menu items. +color brightred "^\*[[:space:]]+.*::.*" + +# Comments. +color green "@c[[:space:]]+.*" + +# Trailing whitespace. +color ,green "[[:space:]]+$" diff --git a/original/xml.nanorc b/original/xml.nanorc new file mode 100644 index 0000000..c13c5eb --- /dev/null +++ b/original/xml.nanorc @@ -0,0 +1,22 @@ +## Here is an example for XML files. + +syntax xml "\.([jrsx]html?|jnlp|mml|pom|rng|sgml?|svg|w[as]dl|wsdd|xjb|xml|xs(d|lt?)|xul)$" +header "<\?xml.*version=.*\?>" +magic "(XML|SGML) (sub)?document" +comment "" + +# The entire content of the tag: +color green start="<" end=">" + +# The start and the end of the tag: +color cyan "<[^> ]+" ">" + +# The strings inside the tag: +color magenta "\"[^"]*\"" + +# Comments: +color yellow start="" +color yellow start="" + +# Escapes: +color red "&[^;]*;" diff --git a/themes/custom b/themes/custom index 2dda5ee..176e61f 100755 --- a/themes/custom +++ b/themes/custom @@ -1,7 +1,7 @@ #!/usr/bin/sed -f -# PROJECT -## Our approach to nano's highlight. +# CUSTOM +## Highlight, GUI and shortcuts.. # GUI Colors ## No GUI colors available, yet... diff --git a/todo.md b/todo.md new file mode 100644 index 0000000..4f3a5be --- /dev/null +++ b/todo.md @@ -0,0 +1,4 @@ +# TODO + +1. Combine original files with project files. +2. From 3efc1319b2d280036ddbdfa0ecd89663e0e4b800 Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Sun, 22 Sep 2019 00:08:26 +0100 Subject: [PATCH 06/65] More highlight keys. --- themes/original | 26 ++++++++++++++++++++++---- todo.md | 48 +++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 69 insertions(+), 5 deletions(-) diff --git a/themes/original b/themes/original index eaeb230..e3cb92c 100755 --- a/themes/original +++ b/themes/original @@ -9,15 +9,33 @@ ## No GUI colors in original ... # Text Colors +## Strings and Comments: +## In general you will want your strings and comments to come last, +## because highlighting rules are applied in the order they are read in. +## The words should be in singular. +## BTICKS = backtick +## TSPACE = trailing whitespace +## VERSION = version numbers +## REMINDERS = fixme, todo, xxx -s|COMMENT1|brightblue| -s|COMMENT2|cyan| -s|ERROR|brightred| +s|CONSTANT|brightred| +s|FUNCTION|magenta| s|KEYWORD1|brightgreen| s|KEYWORD2|green| +s|DIRECTIVE|brightcyan| +s|STRING1|brightmagenta| +s|STRING2|brightyellow| +s|COMMENT1|brightblue| +s|COMMENT2|cyan| s|COLOR|yellow| -s|STRING|brightmagenta| +s|MACRO|cyan| +s|ERROR|brightred| +s|OPERATORS|green| +s|BRACKET|magenta| +s|BTICKS|green| s|TSPACE|,green| +s|VERSION|red| +s|REMINDERS|brightwhite,yellow| # Macros ## No Macros in original ... diff --git a/todo.md b/todo.md index 4f3a5be..9e8bbbe 100644 --- a/todo.md +++ b/todo.md @@ -1,4 +1,50 @@ # TODO +0. List the colors used in originalm and in the project. 1. Combine original files with project files. -2. +2. See if there is any command to check the atual version of nano (to update the files BEFORE a release). + +- asm.nanorc +- autoconf.nanorc +- awk.nanorc +- c.nanorc +- changelog.nanorc +cmake.nanorc +css.nanorc +debian.nanorc +default.nanorc +elisp.nanorc +fortran.nanorc +gentoo.nanorc +go.nanorc +groff.nanorc +guile.nanorc +html.nanorc +java.nanorc +javascript.nanorc +json.nanorc +lua.nanorc +makefile.nanorc +man.nanorc +mgp.nanorc +mutt.nanorc +nanohelp.nanorc +nanorc.nanorc +nftables.nanorc +objc.nanorc +ocaml.nanorc +patch.nanorc +perl.nanorc +php.nanorc +po.nanorc +postgresql.nanorc +pov.nanorc +python.nanorc +ruby.nanorc +rust.nanorc +sh.nanorc +spec.nanorc +tcl.nanorc +tex.nanorc +texinfo.nanorc +xml.nanorc From 81a0bcdd7f11c8af1e713e8f3dd49acce9b83196 Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Mon, 23 Sep 2019 00:47:15 +0100 Subject: [PATCH 07/65] More checks done. --- themes/original | 1 + todo.md | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/themes/original b/themes/original index e3cb92c..be05bc4 100755 --- a/themes/original +++ b/themes/original @@ -36,6 +36,7 @@ s|BTICKS|green| s|TSPACE|,green| s|VERSION|red| s|REMINDERS|brightwhite,yellow| +s|EMAIL|magenta| # Macros ## No Macros in original ... diff --git a/todo.md b/todo.md index 9e8bbbe..c0ad55f 100644 --- a/todo.md +++ b/todo.md @@ -9,10 +9,10 @@ - awk.nanorc - c.nanorc - changelog.nanorc -cmake.nanorc -css.nanorc -debian.nanorc -default.nanorc +- cmake.nanorc +- css.nanorc +- debian.nanorc +- default.nanorc elisp.nanorc fortran.nanorc gentoo.nanorc From 3e4e76f32e8b6e0c07fa6628731c2915e96fbe61 Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Mon, 23 Sep 2019 01:10:01 +0100 Subject: [PATCH 08/65] More todo's --- todo.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/todo.md b/todo.md index c0ad55f..e88eddf 100644 --- a/todo.md +++ b/todo.md @@ -1,8 +1,11 @@ # TODO 0. List the colors used in originalm and in the project. +0. Login in GNU nano error for comment and open some issues. 1. Combine original files with project files. 2. See if there is any command to check the atual version of nano (to update the files BEFORE a release). +3. Put the nanorc files in a folder. +4. Make the install file the oficial installaton and update it accordingly. - asm.nanorc - autoconf.nanorc From 3dbb2f6c19a1e26e00110a56b7e4218a7fe8bbd8 Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Tue, 1 Oct 2019 12:51:25 +0100 Subject: [PATCH 09/65] Original theme finished --- readme.md | 9 ++++++++- themes/original | 7 ++++--- todo.md | 47 ----------------------------------------------- 3 files changed, 12 insertions(+), 51 deletions(-) diff --git a/readme.md b/readme.md index f8a40a6..ab51333 100644 --- a/readme.md +++ b/readme.md @@ -86,7 +86,7 @@ include "~/.nano/c.nanorc" # Themes - WIP There are three themes you can use: -- original: only nano's default highlight. +- original: only nano's approximate default highlight. - project: only scopatz's highlight. - custom: highlight, GUI and shortcuts. @@ -100,9 +100,16 @@ The bug is fixed in Nano, but this might be a problem if you are using an older If this is the case, replace them respectively with `[[:<:]]` and `[[:>:]]`. This is reported in [Issue 52](https://github.com/scopatz/nanorc/issues/52). +## New Features + +Sometimes new features are pending in nano's project issues. +A view in that issues it can be helpful. See GNU Project link in the end. + + # Acknowledgements - [Nano Editor](https://www.nano-editor.org) for some `nanorc` files. +- [GNU Project](https://savannah.gnu.org/projects/nano/) for hosting the `nano`'s git and issues. - [nanorc-mac](https://github.com/richrad/nanorc-mac) for the themes idea. - [Bruce Barnert](http://www.grymoire.com/Unix/Sed.html#toc-uh-5) for good `sed` documentation. diff --git a/themes/original b/themes/original index be05bc4..448eb77 100755 --- a/themes/original +++ b/themes/original @@ -19,18 +19,19 @@ ## REMINDERS = fixme, todo, xxx s|CONSTANT|brightred| -s|FUNCTION|magenta| +s|FUNCTION|brightmagenta| s|KEYWORD1|brightgreen| s|KEYWORD2|green| s|DIRECTIVE|brightcyan| -s|STRING1|brightmagenta| -s|STRING2|brightyellow| +s|STRING1|red| +s|STRING2|magenta| s|COMMENT1|brightblue| s|COMMENT2|cyan| s|COLOR|yellow| s|MACRO|cyan| s|ERROR|brightred| s|OPERATORS|green| +s|BOOLEAN|brightmagenta| s|BRACKET|magenta| s|BTICKS|green| s|TSPACE|,green| diff --git a/todo.md b/todo.md index e88eddf..97014ac 100644 --- a/todo.md +++ b/todo.md @@ -1,53 +1,6 @@ # TODO -0. List the colors used in originalm and in the project. -0. Login in GNU nano error for comment and open some issues. 1. Combine original files with project files. 2. See if there is any command to check the atual version of nano (to update the files BEFORE a release). 3. Put the nanorc files in a folder. 4. Make the install file the oficial installaton and update it accordingly. - -- asm.nanorc -- autoconf.nanorc -- awk.nanorc -- c.nanorc -- changelog.nanorc -- cmake.nanorc -- css.nanorc -- debian.nanorc -- default.nanorc -elisp.nanorc -fortran.nanorc -gentoo.nanorc -go.nanorc -groff.nanorc -guile.nanorc -html.nanorc -java.nanorc -javascript.nanorc -json.nanorc -lua.nanorc -makefile.nanorc -man.nanorc -mgp.nanorc -mutt.nanorc -nanohelp.nanorc -nanorc.nanorc -nftables.nanorc -objc.nanorc -ocaml.nanorc -patch.nanorc -perl.nanorc -php.nanorc -po.nanorc -postgresql.nanorc -pov.nanorc -python.nanorc -ruby.nanorc -rust.nanorc -sh.nanorc -spec.nanorc -tcl.nanorc -tex.nanorc -texinfo.nanorc -xml.nanorc From a770c8b239183d92fb393b8ddf05bf2adce67844 Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Tue, 1 Oct 2019 13:06:56 +0100 Subject: [PATCH 10/65] Relocate the nanorc files. For better organisation the nanorc files will go to a folder. The install script should translate the themed nanorc files to the final files. The install script should be the official instalation method. --- Dockerfile.nanorc => nanorc/Dockerfile.nanorc | 0 apacheconf.nanorc => nanorc/apacheconf.nanorc | 0 arduino.nanorc => nanorc/arduino.nanorc | 0 asciidoc.nanorc => nanorc/asciidoc.nanorc | 0 asm.nanorc => nanorc/asm.nanorc | 0 awk.nanorc => nanorc/awk.nanorc | 0 c.nanorc => nanorc/c.nanorc | 0 clojure.nanorc => nanorc/clojure.nanorc | 0 cmake.nanorc => nanorc/cmake.nanorc | 0 coffeescript.nanorc => nanorc/coffeescript.nanorc | 0 colortest.nanorc => nanorc/colortest.nanorc | 0 conf.nanorc => nanorc/conf.nanorc | 0 conky.nanorc => nanorc/conky.nanorc | 0 csh.nanorc => nanorc/csh.nanorc | 0 csharp.nanorc => nanorc/csharp.nanorc | 0 css.nanorc => nanorc/css.nanorc | 0 csv.nanorc => nanorc/csv.nanorc | 0 cython.nanorc => nanorc/cython.nanorc | 0 dot.nanorc => nanorc/dot.nanorc | 0 dotenv.nanorc => nanorc/dotenv.nanorc | 0 elixir.nanorc => nanorc/elixir.nanorc | 0 email.nanorc => nanorc/email.nanorc | 0 erb.nanorc => nanorc/erb.nanorc | 0 etc-hosts.nanorc => nanorc/etc-hosts.nanorc | 0 fish.nanorc => nanorc/fish.nanorc | 0 fortran.nanorc => nanorc/fortran.nanorc | 0 fsharp.nanorc => nanorc/fsharp.nanorc | 0 genie.nanorc => nanorc/genie.nanorc | 0 gentoo.nanorc => nanorc/gentoo.nanorc | 0 git.nanorc => nanorc/git.nanorc | 0 gitcommit.nanorc => nanorc/gitcommit.nanorc | 0 glsl.nanorc => nanorc/glsl.nanorc | 0 go.nanorc => nanorc/go.nanorc | 0 groff.nanorc => nanorc/groff.nanorc | 0 haml.nanorc => nanorc/haml.nanorc | 0 haskell.nanorc => nanorc/haskell.nanorc | 0 hcl.nanorc => nanorc/hcl.nanorc | 0 html.j2.nanorc => nanorc/html.j2.nanorc | 0 html.nanorc => nanorc/html.nanorc | 0 i3.nanorc => nanorc/i3.nanorc | 0 ical.nanorc => nanorc/ical.nanorc | 0 ini.nanorc => nanorc/ini.nanorc | 0 inputrc.nanorc => nanorc/inputrc.nanorc | 0 jade.nanorc => nanorc/jade.nanorc | 0 java.nanorc => nanorc/java.nanorc | 0 javascript.nanorc => nanorc/javascript.nanorc | 0 js.nanorc => nanorc/js.nanorc | 0 json.nanorc => nanorc/json.nanorc | 0 keymap.nanorc => nanorc/keymap.nanorc | 0 kickstart.nanorc => nanorc/kickstart.nanorc | 0 ledger.nanorc => nanorc/ledger.nanorc | 0 lisp.nanorc => nanorc/lisp.nanorc | 0 lua.nanorc => nanorc/lua.nanorc | 0 makefile.nanorc => nanorc/makefile.nanorc | 0 man.nanorc => nanorc/man.nanorc | 0 markdown.nanorc => nanorc/markdown.nanorc | 0 mpdconf.nanorc => nanorc/mpdconf.nanorc | 0 mutt.nanorc => nanorc/mutt.nanorc | 0 nanorc => nanorc/nanorc | 0 nanorc.nanorc => nanorc/nanorc.nanorc | 0 nginx.nanorc => nanorc/nginx.nanorc | 0 nmap.nanorc => nanorc/nmap.nanorc | 0 ocaml.nanorc => nanorc/ocaml.nanorc | 0 octave.nanorc => nanorc/octave.nanorc | 0 patch.nanorc => nanorc/patch.nanorc | 0 peg.nanorc => nanorc/peg.nanorc | 0 perl.nanorc => nanorc/perl.nanorc | 0 perl6.nanorc => nanorc/perl6.nanorc | 0 php.nanorc => nanorc/php.nanorc | 0 pkg-config.nanorc => nanorc/pkg-config.nanorc | 0 pkgbuild.nanorc => nanorc/pkgbuild.nanorc | 0 po.nanorc => nanorc/po.nanorc | 0 pov.nanorc => nanorc/pov.nanorc | 0 privoxy.nanorc => nanorc/privoxy.nanorc | 0 prolog.nanorc => nanorc/prolog.nanorc | 0 pug.nanorc => nanorc/pug.nanorc | 0 puppet.nanorc => nanorc/puppet.nanorc | 0 python.nanorc => nanorc/python.nanorc | 0 reST.nanorc => nanorc/reST.nanorc | 0 rpmspec.nanorc => nanorc/rpmspec.nanorc | 0 ruby.nanorc => nanorc/ruby.nanorc | 0 rust.nanorc => nanorc/rust.nanorc | 0 scala.nanorc => nanorc/scala.nanorc | 0 sed.nanorc => nanorc/sed.nanorc | 0 sh.nanorc => nanorc/sh.nanorc | 0 sls.nanorc => nanorc/sls.nanorc | 0 sql.nanorc => nanorc/sql.nanorc | 0 svn.nanorc => nanorc/svn.nanorc | 0 swift.nanorc => nanorc/swift.nanorc | 0 systemd.nanorc => nanorc/systemd.nanorc | 0 tcl.nanorc => nanorc/tcl.nanorc | 0 tex.nanorc => nanorc/tex.nanorc | 0 ts.nanorc => nanorc/ts.nanorc | 0 vala.nanorc => nanorc/vala.nanorc | 0 verilog.nanorc => nanorc/verilog.nanorc | 0 vi.nanorc => nanorc/vi.nanorc | 0 x11basic.nanorc => nanorc/x11basic.nanorc | 0 xml.nanorc => nanorc/xml.nanorc | 0 xresources.nanorc => nanorc/xresources.nanorc | 0 yaml.nanorc => nanorc/yaml.nanorc | 0 yum.nanorc => nanorc/yum.nanorc | 0 zsh.nanorc => nanorc/zsh.nanorc | 0 zshrc.nanorc => nanorc/zshrc.nanorc | 0 readme.md | 5 +++-- 104 files changed, 3 insertions(+), 2 deletions(-) rename Dockerfile.nanorc => nanorc/Dockerfile.nanorc (100%) rename apacheconf.nanorc => nanorc/apacheconf.nanorc (100%) rename arduino.nanorc => nanorc/arduino.nanorc (100%) rename asciidoc.nanorc => nanorc/asciidoc.nanorc (100%) rename asm.nanorc => nanorc/asm.nanorc (100%) rename awk.nanorc => nanorc/awk.nanorc (100%) rename c.nanorc => nanorc/c.nanorc (100%) rename clojure.nanorc => nanorc/clojure.nanorc (100%) rename cmake.nanorc => nanorc/cmake.nanorc (100%) rename coffeescript.nanorc => nanorc/coffeescript.nanorc (100%) rename colortest.nanorc => nanorc/colortest.nanorc (100%) rename conf.nanorc => nanorc/conf.nanorc (100%) rename conky.nanorc => nanorc/conky.nanorc (100%) rename csh.nanorc => nanorc/csh.nanorc (100%) rename csharp.nanorc => nanorc/csharp.nanorc (100%) rename css.nanorc => nanorc/css.nanorc (100%) rename csv.nanorc => nanorc/csv.nanorc (100%) rename cython.nanorc => nanorc/cython.nanorc (100%) rename dot.nanorc => nanorc/dot.nanorc (100%) rename dotenv.nanorc => nanorc/dotenv.nanorc (100%) rename elixir.nanorc => nanorc/elixir.nanorc (100%) rename email.nanorc => nanorc/email.nanorc (100%) rename erb.nanorc => nanorc/erb.nanorc (100%) rename etc-hosts.nanorc => nanorc/etc-hosts.nanorc (100%) rename fish.nanorc => nanorc/fish.nanorc (100%) rename fortran.nanorc => nanorc/fortran.nanorc (100%) rename fsharp.nanorc => nanorc/fsharp.nanorc (100%) rename genie.nanorc => nanorc/genie.nanorc (100%) rename gentoo.nanorc => nanorc/gentoo.nanorc (100%) rename git.nanorc => nanorc/git.nanorc (100%) rename gitcommit.nanorc => nanorc/gitcommit.nanorc (100%) rename glsl.nanorc => nanorc/glsl.nanorc (100%) rename go.nanorc => nanorc/go.nanorc (100%) rename groff.nanorc => nanorc/groff.nanorc (100%) rename haml.nanorc => nanorc/haml.nanorc (100%) rename haskell.nanorc => nanorc/haskell.nanorc (100%) rename hcl.nanorc => nanorc/hcl.nanorc (100%) rename html.j2.nanorc => nanorc/html.j2.nanorc (100%) rename html.nanorc => nanorc/html.nanorc (100%) rename i3.nanorc => nanorc/i3.nanorc (100%) rename ical.nanorc => nanorc/ical.nanorc (100%) rename ini.nanorc => nanorc/ini.nanorc (100%) rename inputrc.nanorc => nanorc/inputrc.nanorc (100%) rename jade.nanorc => nanorc/jade.nanorc (100%) rename java.nanorc => nanorc/java.nanorc (100%) rename javascript.nanorc => nanorc/javascript.nanorc (100%) rename js.nanorc => nanorc/js.nanorc (100%) rename json.nanorc => nanorc/json.nanorc (100%) rename keymap.nanorc => nanorc/keymap.nanorc (100%) rename kickstart.nanorc => nanorc/kickstart.nanorc (100%) rename ledger.nanorc => nanorc/ledger.nanorc (100%) rename lisp.nanorc => nanorc/lisp.nanorc (100%) rename lua.nanorc => nanorc/lua.nanorc (100%) rename makefile.nanorc => nanorc/makefile.nanorc (100%) rename man.nanorc => nanorc/man.nanorc (100%) rename markdown.nanorc => nanorc/markdown.nanorc (100%) rename mpdconf.nanorc => nanorc/mpdconf.nanorc (100%) rename mutt.nanorc => nanorc/mutt.nanorc (100%) rename nanorc => nanorc/nanorc (100%) rename nanorc.nanorc => nanorc/nanorc.nanorc (100%) rename nginx.nanorc => nanorc/nginx.nanorc (100%) rename nmap.nanorc => nanorc/nmap.nanorc (100%) rename ocaml.nanorc => nanorc/ocaml.nanorc (100%) rename octave.nanorc => nanorc/octave.nanorc (100%) rename patch.nanorc => nanorc/patch.nanorc (100%) rename peg.nanorc => nanorc/peg.nanorc (100%) rename perl.nanorc => nanorc/perl.nanorc (100%) rename perl6.nanorc => nanorc/perl6.nanorc (100%) rename php.nanorc => nanorc/php.nanorc (100%) rename pkg-config.nanorc => nanorc/pkg-config.nanorc (100%) rename pkgbuild.nanorc => nanorc/pkgbuild.nanorc (100%) rename po.nanorc => nanorc/po.nanorc (100%) rename pov.nanorc => nanorc/pov.nanorc (100%) rename privoxy.nanorc => nanorc/privoxy.nanorc (100%) rename prolog.nanorc => nanorc/prolog.nanorc (100%) rename pug.nanorc => nanorc/pug.nanorc (100%) rename puppet.nanorc => nanorc/puppet.nanorc (100%) rename python.nanorc => nanorc/python.nanorc (100%) rename reST.nanorc => nanorc/reST.nanorc (100%) rename rpmspec.nanorc => nanorc/rpmspec.nanorc (100%) rename ruby.nanorc => nanorc/ruby.nanorc (100%) rename rust.nanorc => nanorc/rust.nanorc (100%) rename scala.nanorc => nanorc/scala.nanorc (100%) rename sed.nanorc => nanorc/sed.nanorc (100%) rename sh.nanorc => nanorc/sh.nanorc (100%) rename sls.nanorc => nanorc/sls.nanorc (100%) rename sql.nanorc => nanorc/sql.nanorc (100%) rename svn.nanorc => nanorc/svn.nanorc (100%) rename swift.nanorc => nanorc/swift.nanorc (100%) rename systemd.nanorc => nanorc/systemd.nanorc (100%) rename tcl.nanorc => nanorc/tcl.nanorc (100%) rename tex.nanorc => nanorc/tex.nanorc (100%) rename ts.nanorc => nanorc/ts.nanorc (100%) rename vala.nanorc => nanorc/vala.nanorc (100%) rename verilog.nanorc => nanorc/verilog.nanorc (100%) rename vi.nanorc => nanorc/vi.nanorc (100%) rename x11basic.nanorc => nanorc/x11basic.nanorc (100%) rename xml.nanorc => nanorc/xml.nanorc (100%) rename xresources.nanorc => nanorc/xresources.nanorc (100%) rename yaml.nanorc => nanorc/yaml.nanorc (100%) rename yum.nanorc => nanorc/yum.nanorc (100%) rename zsh.nanorc => nanorc/zsh.nanorc (100%) rename zshrc.nanorc => nanorc/zshrc.nanorc (100%) diff --git a/Dockerfile.nanorc b/nanorc/Dockerfile.nanorc similarity index 100% rename from Dockerfile.nanorc rename to nanorc/Dockerfile.nanorc diff --git a/apacheconf.nanorc b/nanorc/apacheconf.nanorc similarity index 100% rename from apacheconf.nanorc rename to nanorc/apacheconf.nanorc diff --git a/arduino.nanorc b/nanorc/arduino.nanorc similarity index 100% rename from arduino.nanorc rename to nanorc/arduino.nanorc diff --git a/asciidoc.nanorc b/nanorc/asciidoc.nanorc similarity index 100% rename from asciidoc.nanorc rename to nanorc/asciidoc.nanorc diff --git a/asm.nanorc b/nanorc/asm.nanorc similarity index 100% rename from asm.nanorc rename to nanorc/asm.nanorc diff --git a/awk.nanorc b/nanorc/awk.nanorc similarity index 100% rename from awk.nanorc rename to nanorc/awk.nanorc diff --git a/c.nanorc b/nanorc/c.nanorc similarity index 100% rename from c.nanorc rename to nanorc/c.nanorc diff --git a/clojure.nanorc b/nanorc/clojure.nanorc similarity index 100% rename from clojure.nanorc rename to nanorc/clojure.nanorc diff --git a/cmake.nanorc b/nanorc/cmake.nanorc similarity index 100% rename from cmake.nanorc rename to nanorc/cmake.nanorc diff --git a/coffeescript.nanorc b/nanorc/coffeescript.nanorc similarity index 100% rename from coffeescript.nanorc rename to nanorc/coffeescript.nanorc diff --git a/colortest.nanorc b/nanorc/colortest.nanorc similarity index 100% rename from colortest.nanorc rename to nanorc/colortest.nanorc diff --git a/conf.nanorc b/nanorc/conf.nanorc similarity index 100% rename from conf.nanorc rename to nanorc/conf.nanorc diff --git a/conky.nanorc b/nanorc/conky.nanorc similarity index 100% rename from conky.nanorc rename to nanorc/conky.nanorc diff --git a/csh.nanorc b/nanorc/csh.nanorc similarity index 100% rename from csh.nanorc rename to nanorc/csh.nanorc diff --git a/csharp.nanorc b/nanorc/csharp.nanorc similarity index 100% rename from csharp.nanorc rename to nanorc/csharp.nanorc diff --git a/css.nanorc b/nanorc/css.nanorc similarity index 100% rename from css.nanorc rename to nanorc/css.nanorc diff --git a/csv.nanorc b/nanorc/csv.nanorc similarity index 100% rename from csv.nanorc rename to nanorc/csv.nanorc diff --git a/cython.nanorc b/nanorc/cython.nanorc similarity index 100% rename from cython.nanorc rename to nanorc/cython.nanorc diff --git a/dot.nanorc b/nanorc/dot.nanorc similarity index 100% rename from dot.nanorc rename to nanorc/dot.nanorc diff --git a/dotenv.nanorc b/nanorc/dotenv.nanorc similarity index 100% rename from dotenv.nanorc rename to nanorc/dotenv.nanorc diff --git a/elixir.nanorc b/nanorc/elixir.nanorc similarity index 100% rename from elixir.nanorc rename to nanorc/elixir.nanorc diff --git a/email.nanorc b/nanorc/email.nanorc similarity index 100% rename from email.nanorc rename to nanorc/email.nanorc diff --git a/erb.nanorc b/nanorc/erb.nanorc similarity index 100% rename from erb.nanorc rename to nanorc/erb.nanorc diff --git a/etc-hosts.nanorc b/nanorc/etc-hosts.nanorc similarity index 100% rename from etc-hosts.nanorc rename to nanorc/etc-hosts.nanorc diff --git a/fish.nanorc b/nanorc/fish.nanorc similarity index 100% rename from fish.nanorc rename to nanorc/fish.nanorc diff --git a/fortran.nanorc b/nanorc/fortran.nanorc similarity index 100% rename from fortran.nanorc rename to nanorc/fortran.nanorc diff --git a/fsharp.nanorc b/nanorc/fsharp.nanorc similarity index 100% rename from fsharp.nanorc rename to nanorc/fsharp.nanorc diff --git a/genie.nanorc b/nanorc/genie.nanorc similarity index 100% rename from genie.nanorc rename to nanorc/genie.nanorc diff --git a/gentoo.nanorc b/nanorc/gentoo.nanorc similarity index 100% rename from gentoo.nanorc rename to nanorc/gentoo.nanorc diff --git a/git.nanorc b/nanorc/git.nanorc similarity index 100% rename from git.nanorc rename to nanorc/git.nanorc diff --git a/gitcommit.nanorc b/nanorc/gitcommit.nanorc similarity index 100% rename from gitcommit.nanorc rename to nanorc/gitcommit.nanorc diff --git a/glsl.nanorc b/nanorc/glsl.nanorc similarity index 100% rename from glsl.nanorc rename to nanorc/glsl.nanorc diff --git a/go.nanorc b/nanorc/go.nanorc similarity index 100% rename from go.nanorc rename to nanorc/go.nanorc diff --git a/groff.nanorc b/nanorc/groff.nanorc similarity index 100% rename from groff.nanorc rename to nanorc/groff.nanorc diff --git a/haml.nanorc b/nanorc/haml.nanorc similarity index 100% rename from haml.nanorc rename to nanorc/haml.nanorc diff --git a/haskell.nanorc b/nanorc/haskell.nanorc similarity index 100% rename from haskell.nanorc rename to nanorc/haskell.nanorc diff --git a/hcl.nanorc b/nanorc/hcl.nanorc similarity index 100% rename from hcl.nanorc rename to nanorc/hcl.nanorc diff --git a/html.j2.nanorc b/nanorc/html.j2.nanorc similarity index 100% rename from html.j2.nanorc rename to nanorc/html.j2.nanorc diff --git a/html.nanorc b/nanorc/html.nanorc similarity index 100% rename from html.nanorc rename to nanorc/html.nanorc diff --git a/i3.nanorc b/nanorc/i3.nanorc similarity index 100% rename from i3.nanorc rename to nanorc/i3.nanorc diff --git a/ical.nanorc b/nanorc/ical.nanorc similarity index 100% rename from ical.nanorc rename to nanorc/ical.nanorc diff --git a/ini.nanorc b/nanorc/ini.nanorc similarity index 100% rename from ini.nanorc rename to nanorc/ini.nanorc diff --git a/inputrc.nanorc b/nanorc/inputrc.nanorc similarity index 100% rename from inputrc.nanorc rename to nanorc/inputrc.nanorc diff --git a/jade.nanorc b/nanorc/jade.nanorc similarity index 100% rename from jade.nanorc rename to nanorc/jade.nanorc diff --git a/java.nanorc b/nanorc/java.nanorc similarity index 100% rename from java.nanorc rename to nanorc/java.nanorc diff --git a/javascript.nanorc b/nanorc/javascript.nanorc similarity index 100% rename from javascript.nanorc rename to nanorc/javascript.nanorc diff --git a/js.nanorc b/nanorc/js.nanorc similarity index 100% rename from js.nanorc rename to nanorc/js.nanorc diff --git a/json.nanorc b/nanorc/json.nanorc similarity index 100% rename from json.nanorc rename to nanorc/json.nanorc diff --git a/keymap.nanorc b/nanorc/keymap.nanorc similarity index 100% rename from keymap.nanorc rename to nanorc/keymap.nanorc diff --git a/kickstart.nanorc b/nanorc/kickstart.nanorc similarity index 100% rename from kickstart.nanorc rename to nanorc/kickstart.nanorc diff --git a/ledger.nanorc b/nanorc/ledger.nanorc similarity index 100% rename from ledger.nanorc rename to nanorc/ledger.nanorc diff --git a/lisp.nanorc b/nanorc/lisp.nanorc similarity index 100% rename from lisp.nanorc rename to nanorc/lisp.nanorc diff --git a/lua.nanorc b/nanorc/lua.nanorc similarity index 100% rename from lua.nanorc rename to nanorc/lua.nanorc diff --git a/makefile.nanorc b/nanorc/makefile.nanorc similarity index 100% rename from makefile.nanorc rename to nanorc/makefile.nanorc diff --git a/man.nanorc b/nanorc/man.nanorc similarity index 100% rename from man.nanorc rename to nanorc/man.nanorc diff --git a/markdown.nanorc b/nanorc/markdown.nanorc similarity index 100% rename from markdown.nanorc rename to nanorc/markdown.nanorc diff --git a/mpdconf.nanorc b/nanorc/mpdconf.nanorc similarity index 100% rename from mpdconf.nanorc rename to nanorc/mpdconf.nanorc diff --git a/mutt.nanorc b/nanorc/mutt.nanorc similarity index 100% rename from mutt.nanorc rename to nanorc/mutt.nanorc diff --git a/nanorc b/nanorc/nanorc similarity index 100% rename from nanorc rename to nanorc/nanorc diff --git a/nanorc.nanorc b/nanorc/nanorc.nanorc similarity index 100% rename from nanorc.nanorc rename to nanorc/nanorc.nanorc diff --git a/nginx.nanorc b/nanorc/nginx.nanorc similarity index 100% rename from nginx.nanorc rename to nanorc/nginx.nanorc diff --git a/nmap.nanorc b/nanorc/nmap.nanorc similarity index 100% rename from nmap.nanorc rename to nanorc/nmap.nanorc diff --git a/ocaml.nanorc b/nanorc/ocaml.nanorc similarity index 100% rename from ocaml.nanorc rename to nanorc/ocaml.nanorc diff --git a/octave.nanorc b/nanorc/octave.nanorc similarity index 100% rename from octave.nanorc rename to nanorc/octave.nanorc diff --git a/patch.nanorc b/nanorc/patch.nanorc similarity index 100% rename from patch.nanorc rename to nanorc/patch.nanorc diff --git a/peg.nanorc b/nanorc/peg.nanorc similarity index 100% rename from peg.nanorc rename to nanorc/peg.nanorc diff --git a/perl.nanorc b/nanorc/perl.nanorc similarity index 100% rename from perl.nanorc rename to nanorc/perl.nanorc diff --git a/perl6.nanorc b/nanorc/perl6.nanorc similarity index 100% rename from perl6.nanorc rename to nanorc/perl6.nanorc diff --git a/php.nanorc b/nanorc/php.nanorc similarity index 100% rename from php.nanorc rename to nanorc/php.nanorc diff --git a/pkg-config.nanorc b/nanorc/pkg-config.nanorc similarity index 100% rename from pkg-config.nanorc rename to nanorc/pkg-config.nanorc diff --git a/pkgbuild.nanorc b/nanorc/pkgbuild.nanorc similarity index 100% rename from pkgbuild.nanorc rename to nanorc/pkgbuild.nanorc diff --git a/po.nanorc b/nanorc/po.nanorc similarity index 100% rename from po.nanorc rename to nanorc/po.nanorc diff --git a/pov.nanorc b/nanorc/pov.nanorc similarity index 100% rename from pov.nanorc rename to nanorc/pov.nanorc diff --git a/privoxy.nanorc b/nanorc/privoxy.nanorc similarity index 100% rename from privoxy.nanorc rename to nanorc/privoxy.nanorc diff --git a/prolog.nanorc b/nanorc/prolog.nanorc similarity index 100% rename from prolog.nanorc rename to nanorc/prolog.nanorc diff --git a/pug.nanorc b/nanorc/pug.nanorc similarity index 100% rename from pug.nanorc rename to nanorc/pug.nanorc diff --git a/puppet.nanorc b/nanorc/puppet.nanorc similarity index 100% rename from puppet.nanorc rename to nanorc/puppet.nanorc diff --git a/python.nanorc b/nanorc/python.nanorc similarity index 100% rename from python.nanorc rename to nanorc/python.nanorc diff --git a/reST.nanorc b/nanorc/reST.nanorc similarity index 100% rename from reST.nanorc rename to nanorc/reST.nanorc diff --git a/rpmspec.nanorc b/nanorc/rpmspec.nanorc similarity index 100% rename from rpmspec.nanorc rename to nanorc/rpmspec.nanorc diff --git a/ruby.nanorc b/nanorc/ruby.nanorc similarity index 100% rename from ruby.nanorc rename to nanorc/ruby.nanorc diff --git a/rust.nanorc b/nanorc/rust.nanorc similarity index 100% rename from rust.nanorc rename to nanorc/rust.nanorc diff --git a/scala.nanorc b/nanorc/scala.nanorc similarity index 100% rename from scala.nanorc rename to nanorc/scala.nanorc diff --git a/sed.nanorc b/nanorc/sed.nanorc similarity index 100% rename from sed.nanorc rename to nanorc/sed.nanorc diff --git a/sh.nanorc b/nanorc/sh.nanorc similarity index 100% rename from sh.nanorc rename to nanorc/sh.nanorc diff --git a/sls.nanorc b/nanorc/sls.nanorc similarity index 100% rename from sls.nanorc rename to nanorc/sls.nanorc diff --git a/sql.nanorc b/nanorc/sql.nanorc similarity index 100% rename from sql.nanorc rename to nanorc/sql.nanorc diff --git a/svn.nanorc b/nanorc/svn.nanorc similarity index 100% rename from svn.nanorc rename to nanorc/svn.nanorc diff --git a/swift.nanorc b/nanorc/swift.nanorc similarity index 100% rename from swift.nanorc rename to nanorc/swift.nanorc diff --git a/systemd.nanorc b/nanorc/systemd.nanorc similarity index 100% rename from systemd.nanorc rename to nanorc/systemd.nanorc diff --git a/tcl.nanorc b/nanorc/tcl.nanorc similarity index 100% rename from tcl.nanorc rename to nanorc/tcl.nanorc diff --git a/tex.nanorc b/nanorc/tex.nanorc similarity index 100% rename from tex.nanorc rename to nanorc/tex.nanorc diff --git a/ts.nanorc b/nanorc/ts.nanorc similarity index 100% rename from ts.nanorc rename to nanorc/ts.nanorc diff --git a/vala.nanorc b/nanorc/vala.nanorc similarity index 100% rename from vala.nanorc rename to nanorc/vala.nanorc diff --git a/verilog.nanorc b/nanorc/verilog.nanorc similarity index 100% rename from verilog.nanorc rename to nanorc/verilog.nanorc diff --git a/vi.nanorc b/nanorc/vi.nanorc similarity index 100% rename from vi.nanorc rename to nanorc/vi.nanorc diff --git a/x11basic.nanorc b/nanorc/x11basic.nanorc similarity index 100% rename from x11basic.nanorc rename to nanorc/x11basic.nanorc diff --git a/xml.nanorc b/nanorc/xml.nanorc similarity index 100% rename from xml.nanorc rename to nanorc/xml.nanorc diff --git a/xresources.nanorc b/nanorc/xresources.nanorc similarity index 100% rename from xresources.nanorc rename to nanorc/xresources.nanorc diff --git a/yaml.nanorc b/nanorc/yaml.nanorc similarity index 100% rename from yaml.nanorc rename to nanorc/yaml.nanorc diff --git a/yum.nanorc b/nanorc/yum.nanorc similarity index 100% rename from yum.nanorc rename to nanorc/yum.nanorc diff --git a/zsh.nanorc b/nanorc/zsh.nanorc similarity index 100% rename from zsh.nanorc rename to nanorc/zsh.nanorc diff --git a/zshrc.nanorc b/nanorc/zshrc.nanorc similarity index 100% rename from zshrc.nanorc rename to nanorc/zshrc.nanorc diff --git a/readme.md b/readme.md index ab51333..e644953 100644 --- a/readme.md +++ b/readme.md @@ -2,6 +2,8 @@ This repository holds ``{lang}.nanorc`` files that have improved definitions of syntax highlighting for various languages. +For readability will use `$install_path` for the path of your choose (in *system wide* the path is always `/usr/share/nano-syntax-highlighting/`). + # Installation There are three ways to install this repo. @@ -41,7 +43,6 @@ 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: @@ -62,7 +63,7 @@ Again there are three ways: ## 1. Include all -Append the content of the folder in one line, with wildcard:: +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` From 31eef3d8cb9c0e6ca2f3ba5e545f8e5730271dcc Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Thu, 3 Oct 2019 23:06:15 +0100 Subject: [PATCH 11/65] More changes... --- install.sh | 3 +- themes/custom | 41 -------------------------- themes/{original => highlight/nano} | 0 themes/highlight/scopatz | 45 +++++++++++++++++++++++++++++ themes/highlight/tpro | 43 +++++++++++++++++++++++++++ themes/project | 41 -------------------------- todo.md | 4 ++- 7 files changed, 93 insertions(+), 84 deletions(-) delete mode 100755 themes/custom rename themes/{original => highlight/nano} (100%) create mode 100755 themes/highlight/scopatz create mode 100755 themes/highlight/tpro delete mode 100755 themes/project diff --git a/install.sh b/install.sh index c26cc80..a48dd01 100755 --- a/install.sh +++ b/install.sh @@ -1,4 +1,5 @@ #!/bin/sh +# NANO HIGHLIGHT INSTALLATION # check for unzip before we continue if [ ! "$(command -v unzip)" ]; then @@ -19,7 +20,7 @@ _fetch_sources(){ _update_nanorc(){ touch ~/.nanorc - + # add all includes from ~/.nano/nanorc if they're not already there while read -r inc; do if ! grep -q "$inc" "${NANORC_FILE}"; then diff --git a/themes/custom b/themes/custom deleted file mode 100755 index 176e61f..0000000 --- a/themes/custom +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/sed -f - -# CUSTOM -## Highlight, GUI and shortcuts.. - -# GUI Colors -## No GUI colors available, yet... - - -# Text Colors - -s|COMMENT1|brightblue| -s|COMMENT2|cyan| -s|ERROR|brightred| -s|KEYWORD1|brightgreen| -s|KEYWORD2|green| -s|COLOR|yellow| -s|STRING|brightmagenta| -s|TSPACE|,green| - -# Macros - -#s|^PLAIN:|color black| -#s|^TYPE:|color brightgreen| -#s|^STRING:|color yellow| -#s|^NUMBER:|color blue| -#s|^BOOLEAN:|color brightmagenta| -#s|^REGEXP:|color brightcyan| -#s|^VARIABLE:|color brightyellow| -#s|^OPERATOR:|color red| -#s|^KEYWORD:|color green| -#s|^~KEYWORD:|icolor green| -#s|^FUNCTION:|color brightblue| -#s|^ESCAPE:|color magenta| -#s|^COMMENT:|color cyan| -#s|^ENABLED:|color brightgreen| -#s|^DISABLED:|color brightred| -#s|^WARNING:|color ,red| -#s|^+TODO|color brightcyan "TODO:?"| -#s|^+LINT|color ,green "[[:space:]]+$"\ncolor ,red "\t*"| -#s|^+LONG-LINE-WARNING|color ,red "^.{81,}$"| diff --git a/themes/original b/themes/highlight/nano similarity index 100% rename from themes/original rename to themes/highlight/nano diff --git a/themes/highlight/scopatz b/themes/highlight/scopatz new file mode 100755 index 0000000..d527c5e --- /dev/null +++ b/themes/highlight/scopatz @@ -0,0 +1,45 @@ +#!/usr/bin/sed -f + +# PROJECT +## Our approach to nano's highlight. + +# GUI Colors +## No GUI colors available, yet... + + +# Text Colors +## Strings and Comments: +## In general you will want your strings and comments to come last, +## because highlighting rules are applied in the order they are read in. +## The words should be in singular. +## BTICKS = backtick +## TSPACE = trailing whitespace +## VERSION = version numbers +## REMINDERS = fixme, todo, xxx + +s|CONSTANT|brightred| +s|FUNCTION|brightmagenta| +s|KEYWORD1|brightgreen| +s|KEYWORD2|green| +s|DIRECTIVE|brightcyan| +s|STRING1|red| +s|STRING2|magenta| +s|COMMENT1|brightblue| +s|COMMENT2|cyan| +s|COLOR|yellow| +s|MACRO|cyan| +s|ERROR|brightred| +s|OPERATORS|green| +s|BOOLEAN|brightmagenta| +s|BRACKET|magenta| +s|BTICKS|green| +s|TSPACE|,green| +s|VERSION|red| +s|REMINDERS|brightwhite,yellow| +s|EMAIL|magenta| + +# Macros + +#s|^+TODO|color brightcyan "TODO:?"| +#s|^+LINT|color ,green "[[:space:]]+$"\ncolor ,red "\t*"| +#s|^+LONG-LINE-WARNING|color ,red "^.{81,}$"| diff --git a/themes/highlight/tpro b/themes/highlight/tpro new file mode 100755 index 0000000..448eb77 --- /dev/null +++ b/themes/highlight/tpro @@ -0,0 +1,43 @@ +#!/usr/bin/sed -f + +# ORIGINAL +## Best approach to the original 'nanorc' files. +## If you want the original, uninstall these files, +## but you will lose many highlight instructions... + +# GUI Colors +## No GUI colors in original ... + +# Text Colors +## Strings and Comments: +## In general you will want your strings and comments to come last, +## because highlighting rules are applied in the order they are read in. +## The words should be in singular. +## BTICKS = backtick +## TSPACE = trailing whitespace +## VERSION = version numbers +## REMINDERS = fixme, todo, xxx + +s|CONSTANT|brightred| +s|FUNCTION|brightmagenta| +s|KEYWORD1|brightgreen| +s|KEYWORD2|green| +s|DIRECTIVE|brightcyan| +s|STRING1|red| +s|STRING2|magenta| +s|COMMENT1|brightblue| +s|COMMENT2|cyan| +s|COLOR|yellow| +s|MACRO|cyan| +s|ERROR|brightred| +s|OPERATORS|green| +s|BOOLEAN|brightmagenta| +s|BRACKET|magenta| +s|BTICKS|green| +s|TSPACE|,green| +s|VERSION|red| +s|REMINDERS|brightwhite,yellow| +s|EMAIL|magenta| + +# Macros +## No Macros in original ... diff --git a/themes/project b/themes/project deleted file mode 100755 index 2dda5ee..0000000 --- a/themes/project +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/sed -f - -# PROJECT -## Our approach to nano's highlight. - -# GUI Colors -## No GUI colors available, yet... - - -# Text Colors - -s|COMMENT1|brightblue| -s|COMMENT2|cyan| -s|ERROR|brightred| -s|KEYWORD1|brightgreen| -s|KEYWORD2|green| -s|COLOR|yellow| -s|STRING|brightmagenta| -s|TSPACE|,green| - -# Macros - -#s|^PLAIN:|color black| -#s|^TYPE:|color brightgreen| -#s|^STRING:|color yellow| -#s|^NUMBER:|color blue| -#s|^BOOLEAN:|color brightmagenta| -#s|^REGEXP:|color brightcyan| -#s|^VARIABLE:|color brightyellow| -#s|^OPERATOR:|color red| -#s|^KEYWORD:|color green| -#s|^~KEYWORD:|icolor green| -#s|^FUNCTION:|color brightblue| -#s|^ESCAPE:|color magenta| -#s|^COMMENT:|color cyan| -#s|^ENABLED:|color brightgreen| -#s|^DISABLED:|color brightred| -#s|^WARNING:|color ,red| -#s|^+TODO|color brightcyan "TODO:?"| -#s|^+LINT|color ,green "[[:space:]]+$"\ncolor ,red "\t*"| -#s|^+LONG-LINE-WARNING|color ,red "^.{81,}$"| diff --git a/todo.md b/todo.md index 97014ac..79b133a 100644 --- a/todo.md +++ b/todo.md @@ -1,6 +1,8 @@ # TODO +0. Create the other theme files accordingly the original. +0. The themes files is only for sed. +0. Make nanorc more beautiful. 1. Combine original files with project files. 2. See if there is any command to check the atual version of nano (to update the files BEFORE a release). -3. Put the nanorc files in a folder. 4. Make the install file the oficial installaton and update it accordingly. From 7f99cd751309e5c2a5e82e58c3051d9afe98eba7 Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Sat, 5 Oct 2019 12:38:39 +0100 Subject: [PATCH 12/65] More changes. --- themes/highlight/nano | 3 --- themes/highlight/tpro | 8 +------- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/themes/highlight/nano b/themes/highlight/nano index 448eb77..17d3e2e 100755 --- a/themes/highlight/nano +++ b/themes/highlight/nano @@ -5,9 +5,6 @@ ## If you want the original, uninstall these files, ## but you will lose many highlight instructions... -# GUI Colors -## No GUI colors in original ... - # Text Colors ## Strings and Comments: ## In general you will want your strings and comments to come last, diff --git a/themes/highlight/tpro b/themes/highlight/tpro index 448eb77..e573a08 100755 --- a/themes/highlight/tpro +++ b/themes/highlight/tpro @@ -1,12 +1,6 @@ #!/usr/bin/sed -f -# ORIGINAL -## Best approach to the original 'nanorc' files. -## If you want the original, uninstall these files, -## but you will lose many highlight instructions... - -# GUI Colors -## No GUI colors in original ... +# TPRO # Text Colors ## Strings and Comments: From 9887b82584535237e617b7152f8b653e7d1f5bbf Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Sat, 5 Oct 2019 12:40:40 +0100 Subject: [PATCH 13/65] More todo --- todo.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/todo.md b/todo.md index 79b133a..e8efc40 100644 --- a/todo.md +++ b/todo.md @@ -1,8 +1,16 @@ # TODO +- https://savannah.gnu.org/bugs/index.php?5698 +this is for explain why the files are copyed. +Copying the file is usually the best way to handle it. + 0. Create the other theme files accordingly the original. 0. The themes files is only for sed. 0. Make nanorc more beautiful. +0. sed - how to substitute a string with the contents of a file. 1. Combine original files with project files. 2. See if there is any command to check the atual version of nano (to update the files BEFORE a release). 4. Make the install file the oficial installaton and update it accordingly. + +report: +cannot rebind ctrl-h for help, continue to backspace From 548d512cda024ea6be9e66d50f149828e0fb2822 Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Sun, 27 Oct 2019 21:16:36 +0000 Subject: [PATCH 14/65] Correct the themes' folder scheme. --- readme.md => README.md | 0 themes/nano/gui | 0 themes/{highlight/nano => nano/highlight} | 0 themes/nano/keys | 0 themes/scopatz/gui | 0 themes/{highlight/scopatz => scopatz/highlight} | 0 themes/scopatz/keys | 0 themes/tpro/gui | 0 themes/{highlight/tpro => tpro/highlight} | 0 themes/tpro/keys | 0 todo.md | 10 ++++------ 11 files changed, 4 insertions(+), 6 deletions(-) rename readme.md => README.md (100%) create mode 100755 themes/nano/gui rename themes/{highlight/nano => nano/highlight} (100%) create mode 100755 themes/nano/keys create mode 100755 themes/scopatz/gui rename themes/{highlight/scopatz => scopatz/highlight} (100%) create mode 100755 themes/scopatz/keys create mode 100755 themes/tpro/gui rename themes/{highlight/tpro => tpro/highlight} (100%) create mode 100755 themes/tpro/keys diff --git a/readme.md b/README.md similarity index 100% rename from readme.md rename to README.md diff --git a/themes/nano/gui b/themes/nano/gui new file mode 100755 index 0000000..e69de29 diff --git a/themes/highlight/nano b/themes/nano/highlight similarity index 100% rename from themes/highlight/nano rename to themes/nano/highlight diff --git a/themes/nano/keys b/themes/nano/keys new file mode 100755 index 0000000..e69de29 diff --git a/themes/scopatz/gui b/themes/scopatz/gui new file mode 100755 index 0000000..e69de29 diff --git a/themes/highlight/scopatz b/themes/scopatz/highlight similarity index 100% rename from themes/highlight/scopatz rename to themes/scopatz/highlight diff --git a/themes/scopatz/keys b/themes/scopatz/keys new file mode 100755 index 0000000..e69de29 diff --git a/themes/tpro/gui b/themes/tpro/gui new file mode 100755 index 0000000..e69de29 diff --git a/themes/highlight/tpro b/themes/tpro/highlight similarity index 100% rename from themes/highlight/tpro rename to themes/tpro/highlight diff --git a/themes/tpro/keys b/themes/tpro/keys new file mode 100755 index 0000000..e69de29 diff --git a/todo.md b/todo.md index e8efc40..5f9fb20 100644 --- a/todo.md +++ b/todo.md @@ -1,8 +1,9 @@ # TODO -- https://savannah.gnu.org/bugs/index.php?5698 -this is for explain why the files are copyed. -Copying the file is usually the best way to handle it. +0. write the scheme of the program in install file +0. https://spdx.org/licenses/GPL-3.0-or-later.html + +make comments with a space after? in sh or bash 0. Create the other theme files accordingly the original. 0. The themes files is only for sed. @@ -11,6 +12,3 @@ Copying the file is usually the best way to handle it. 1. Combine original files with project files. 2. See if there is any command to check the atual version of nano (to update the files BEFORE a release). 4. Make the install file the oficial installaton and update it accordingly. - -report: -cannot rebind ctrl-h for help, continue to backspace From 29702014e0b8c486cafeb894a1f3c780735e51e1 Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Sun, 27 Oct 2019 21:17:37 +0000 Subject: [PATCH 15/65] Update the license and act accordingly The license used is deprecated. Update to the next best match license. See the new: https://spdx.org/licenses/GPL-3.0-or-later.html See the older: https://spdx.org/licenses/GPL-3.0.html --- LICENSE | 557 +++++++++++++++++++++++++++++++++++++++++++++++++++++ install.sh | 25 ++- license | 15 -- 3 files changed, 581 insertions(+), 16 deletions(-) create mode 100644 LICENSE delete mode 100644 license diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..adada48 --- /dev/null +++ b/LICENSE @@ -0,0 +1,557 @@ +GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 + +Copyright © 2007 Free Software Foundation, Inc. + +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. + +Preamble + +The GNU General Public License is a free, copyleft license for +software and other kinds of works. + +The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom +to share and change all versions of a program--to make sure it remains +free software for all its users. We, the Free Software Foundation, use +the GNU General Public License for most of our software; it applies +also to any other work released this way by its authors. You can apply +it to your programs, too. + +When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + +To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you +have certain responsibilities if you distribute copies of the +software, or if you modify it: responsibilities to respect the freedom +of others. + +For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + +Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + +For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + +Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the +manufacturer can do so. This is fundamentally incompatible with the +aim of protecting users' freedom to change the software. The +systematic pattern of such abuse occurs in the area of products for +individuals to use, which is precisely where it is most unacceptable. +Therefore, we have designed this version of the GPL to prohibit the +practice for those products. If such problems arise substantially in +other domains, we stand ready to extend this provision to those +domains in future versions of the GPL, as needed to protect the +freedom of users. + +Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish +to avoid the special danger that patents applied to a free program +could make it effectively proprietary. To prevent this, the GPL +assures that patents cannot be used to render the program non-free. + +The precise terms and conditions for copying, distribution and +modification follow. + +TERMS AND CONDITIONS + +0. Definitions. "This License" refers to version 3 of the GNU General +Public License. + +"Copyright" also means copyright-like laws that apply to other kinds +of works, such as semiconductor masks. + +"The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + +To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of +an exact copy. The resulting work is called a "modified version" of +the earlier work or a work "based on" the earlier work. + +A "covered work" means either the unmodified Program or a work based +on the Program. + +To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + +To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user +through a computer network, with no transfer of a copy, is not +conveying. + +An interactive user interface displays "Appropriate Legal Notices" to +the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + +1. Source Code. The "source code" for a work means the preferred form +of the work for making modifications to it. "Object code" means any +non-source form of a work. A "Standard Interface" means an interface +that either is an official standard defined by a recognized standards +body, or, in the case of interfaces specified for a particular +programming language, one that is widely used among developers working +in that language. + +The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + +The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + +The Corresponding Source need not include anything that users can +regenerate automatically from other parts of the Corresponding Source. + +The Corresponding Source for a work in source code form is that same +work. + +2. Basic Permissions. All rights granted under this License are +granted for the term of copyright on the Program, and are irrevocable +provided the stated conditions are met. This License explicitly +affirms your unlimited permission to run the unmodified Program. The +output from running a covered work is covered by this License only if +the output, given its content, constitutes a covered work. This +License acknowledges your rights of fair use or other equivalent, as +provided by copyright law. You may make, run and propagate covered +works that you do not convey, without conditions so long as your +license otherwise remains in force. You may convey covered works to +others for the sole purpose of having them make modifications +exclusively for you, or provide you with facilities for running those +works, provided that you comply with the terms of this License in +conveying all material for which you do not control copyright. Those +thus making or running the covered works for you must do so +exclusively on your behalf, under your direction and control, on terms +that prohibit them from making any copies of your copyrighted material +outside their relationship with you. + +Conveying under any other circumstances is permitted solely under the +conditions stated below. Sublicensing is not allowed; section 10 makes +it unnecessary. + +3. Protecting Users' Legal Rights From Anti-Circumvention Law. No +covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. When you convey a covered work, you waive any legal power to +forbid circumvention of technological measures to the extent such +circumvention is effected by exercising rights under this License with +respect to the covered work, and you disclaim any intention to limit +operation or modification of the work as a means of enforcing, against +the work's users, your or third parties' legal rights to forbid +circumvention of technological measures. + +4. Conveying Verbatim Copies. You may convey verbatim copies of the +Program's source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice; keep intact all notices stating that +this License and any non-permissive terms added in accord with section +7 apply to the code; keep intact all notices of the absence of any +warranty; and give all recipients a copy of this License along with +the Program. You may charge any price or no price for each copy that +you convey, and you may offer support or warranty protection for a +fee. + +5. Conveying Modified Source Versions. You may convey a work based on +the Program, or the modifications to produce it from the Program, in +the form of source code under the terms of section 4, provided that +you also meet all of these conditions: a) The work must carry +prominent notices stating that you modified it, and giving a relevant +date. b) The work must carry prominent notices stating that it is +released under this License and any conditions added under section 7. +This requirement modifies the requirement in section 4 to "keep intact +all notices". c) You must license the entire work, as a whole, under +this License to anyone who comes into possession of a copy. This +License will therefore apply, along with any applicable section 7 +additional terms, to the whole of the work, and all its parts, +regardless of how they are packaged. This License gives no permission +to license the work in any other way, but it does not invalidate such +permission if you have separately received it. d) If the work has +interactive user interfaces, each must display Appropriate Legal +Notices; however, if the Program has interactive interfaces that do +not display Appropriate Legal Notices, your work need not make them do +so. A compilation of a covered work with other separate and +independent works, which are not by their nature extensions of the +covered work, and which are not combined with it such as to form a +larger program, in or on a volume of a storage or distribution medium, +is called an "aggregate" if the compilation and its resulting +copyright are not used to limit the access or legal rights of the +compilation's users beyond what the individual works permit. Inclusion +of a covered work in an aggregate does not cause this License to apply +to the other parts of the aggregate. + +6. Conveying Non-Source Forms. You may convey a covered work in object +code form under the terms of sections 4 and 5, provided that you also +convey the machine-readable Corresponding Source under the terms of +this License, in one of these ways: a) Convey the object code in, or +embodied in, a physical product (including a physical distribution +medium), accompanied by the Corresponding Source fixed on a durable +physical medium customarily used for software interchange. b) Convey +the object code in, or embodied in, a physical product (including a +physical distribution medium), accompanied by a written offer, valid +for at least three years and valid for as long as you offer spare +parts or customer support for that product model, to give anyone who +possesses the object code either (1) a copy of the Corresponding +Source for all the software in the product that is covered by this +License, on a durable physical medium customarily used for software +interchange, for a price no more than your reasonable cost of +physically performing this conveying of source, or (2) access to copy +the Corresponding Source from a network server at no charge. c) Convey +individual copies of the object code with a copy of the written offer +to provide the Corresponding Source. This alternative is allowed only +occasionally and noncommercially, and only if you received the object +code with such an offer, in accord with subsection 6b. d) Convey the +object code by offering access from a designated place (gratis or for +a charge), and offer equivalent access to the Corresponding Source in +the same way through the same place at no further charge. You need not +require recipients to copy the Corresponding Source along with the +object code. If the place to copy the object code is a network server, +the Corresponding Source may be on a different server (operated by you +or a third party) that supports equivalent copying facilities, +provided you maintain clear directions next to the object code saying +where to find the Corresponding Source. Regardless of what server +hosts the Corresponding Source, you remain obligated to ensure that it +is available for as long as needed to satisfy these requirements. e) +Convey the object code using peer-to-peer transmission, provided you +inform other peers where the object code and Corresponding Source of +the work are being offered to the general public at no charge under +subsection 6d. A separable portion of the object code, whose source +code is excluded from the Corresponding Source as a System Library, +need not be included in conveying the object code work. + +A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, +family, or household purposes, or (2) anything designed or sold for +incorporation into a dwelling. In determining whether a product is a +consumer product, doubtful cases shall be resolved in favor of +coverage. For a particular product received by a particular user, +"normally used" refers to a typical or common use of that class of +product, regardless of the status of the particular user or of the way +in which the particular user actually uses, or expects or is expected +to use, the product. A product is a consumer product regardless of +whether the product has substantial commercial, industrial or +non-consumer uses, unless such uses represent the only significant +mode of use of the product. + +"Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to +install and execute modified versions of a covered work in that User +Product from a modified version of its Corresponding Source. The +information must suffice to ensure that the continued functioning of +the modified object code is in no case prevented or interfered with +solely because modification has been made. + +If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + +The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or +updates for a work that has been modified or installed by the +recipient, or for the User Product in which it has been modified or +installed. Access to a network may be denied when the modification +itself materially and adversely affects the operation of the network +or violates the rules and protocols for communication across the +network. + +Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + +7. Additional Terms. "Additional permissions" are terms that +supplement the terms of this License by making exceptions from one or +more of its conditions. Additional permissions that are applicable to +the entire Program shall be treated as though they were included in +this License, to the extent that they are valid under applicable law. +If additional permissions apply only to part of the Program, that part +may be used separately under those permissions, but the entire Program +remains governed by this License without regard to the additional +permissions. When you convey a copy of a covered work, you may at your +option remove any additional permissions from that copy, or from any +part of it. (Additional permissions may be written to require their +own removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + +Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders +of that material) supplement the terms of this License with terms: + +a) Disclaiming warranty or limiting liability differently from the +terms of sections 15 and 16 of this License; or b) Requiring +preservation of specified reasonable legal notices or author +attributions in that material or in the Appropriate Legal Notices +displayed by works containing it; or c) Prohibiting misrepresentation +of the origin of that material, or requiring that modified versions of +such material be marked in reasonable ways as different from the +original version; or d) Limiting the use for publicity purposes of +names of licensors or authors of the material; or e) Declining to +grant rights under trademark law for use of some trade names, +trademarks, or service marks; or f) Requiring indemnification of +licensors and authors of that material by anyone who conveys the +material (or modified versions of it) with contractual assumptions of +liability to the recipient, for any liability that these contractual +assumptions directly impose on those licensors and authors. All other +non-permissive additional terms are considered "further restrictions" +within the meaning of section 10. If the Program as you received it, +or any part of it, contains a notice stating that it is governed by +this License along with a term that is a further restriction, you may +remove that term. If a license document contains a further restriction +but permits relicensing or conveying under this License, you may add +to a covered work material governed by the terms of that license +document, provided that the further restriction does not survive such +relicensing or conveying. + +If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + +Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; the +above requirements apply either way. + +8. Termination. You may not propagate or modify a covered work except +as expressly provided under this License. Any attempt otherwise to +propagate or modify it is void, and will automatically terminate your +rights under this License (including any patent licenses granted under +the third paragraph of section 11). However, if you cease all +violation of this License, then your license from a particular +copyright holder is reinstated (a) provisionally, unless and until the +copyright holder explicitly and finally terminates your license, and +(b) permanently, if the copyright holder fails to notify you of the +violation by some reasonable means prior to 60 days after the +cessation. + +Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + +Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + +9. Acceptance Not Required for Having Copies. You are not required to +accept this License in order to receive or run a copy of the Program. +Ancillary propagation of a covered work occurring solely as a +consequence of using peer-to-peer transmission to receive a copy +likewise does not require acceptance. However, nothing other than this +License grants you permission to propagate or modify any covered work. +These actions infringe copyright if you do not accept this License. +Therefore, by modifying or propagating a covered work, you indicate +your acceptance of this License to do so. 10. Automatic Licensing of +Downstream Recipients. Each time you convey a covered work, the +recipient automatically receives a license from the original +licensors, to run, modify and propagate that work, subject to this +License. You are not responsible for enforcing compliance by third +parties with this License. An "entity transaction" is a transaction +transferring control of an organization, or substantially all assets +of one, or subdividing an organization, or merging organizations. If +propagation of a covered work results from an entity transaction, each +party to that transaction who receives a copy of the work also +receives whatever licenses to the work the party's predecessor in +interest had or could give under the previous paragraph, plus a right +to possession of the Corresponding Source of the work from the +predecessor in interest, if the predecessor has it or can get it with +reasonable efforts. + +You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + +11. Patents. A "contributor" is a copyright holder who authorizes use +under this License of the Program or a work on which the Program is +based. The work thus licensed is called the contributor's "contributor +version". A contributor's "essential patent claims" are all patent +claims owned or controlled by the contributor, whether already +acquired or hereafter acquired, that would be infringed by some +manner, permitted by this License, of making, using, or selling its +contributor version, but do not include claims that would be infringed +only as a consequence of further modification of the contributor +version. For purposes of this definition, "control" includes the right +to grant patent sublicenses in a manner consistent with the +requirements of this License. + +Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + +In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + +If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + +If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + +A patent license is "discriminatory" if it does not include within the +scope of its coverage, prohibits the exercise of, or is conditioned on +the non-exercise of one or more of the rights that are specifically +granted under this License. You may not convey a covered work if you +are a party to an arrangement with a third party that is in the +business of distributing software, under which you make payment to the +third party based on the extent of your activity of conveying the +work, and under which the third party grants, to any of the parties +who would receive the covered work from you, a discriminatory patent +license (a) in connection with copies of the covered work conveyed by +you (or copies made from those copies), or (b) primarily for and in +connection with specific products or compilations that contain the +covered work, unless you entered into that arrangement, or that patent +license was granted, prior to 28 March 2007. + +Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + +12. No Surrender of Others' Freedom. If conditions are imposed on you +(whether by court order, agreement or otherwise) that contradict the +conditions of this License, they do not excuse you from the conditions +of this License. If you cannot convey a covered work so as to satisfy +simultaneously your obligations under this License and any other +pertinent obligations, then as a consequence you may not convey it at +all. For example, if you agree to terms that obligate you to collect a +royalty for further conveying from those to whom you convey the +Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. 13. +Use with the GNU Affero General Public License. Notwithstanding any +other provision of this License, you have permission to link or +combine any covered work with a work licensed under version 3 of the +GNU Affero General Public License into a single combined work, and to +convey the resulting work. The terms of this License will continue to +apply to the part which is the covered work, but the special +requirements of the GNU Affero General Public License, section 13, +concerning interaction through a network will apply to the combination +as such. 14. Revised Versions of this License. The Free Software +Foundation may publish revised and/or new versions of the GNU General +Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new +problems or concerns. Each version is given a distinguishing version +number. If the Program specifies that a certain numbered version of +the GNU General Public License "or any later version" applies to it, +you have the option of following the terms and conditions either of +that numbered version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number +of the GNU General Public License, you may choose any version ever +published by the Free Software Foundation. + +If the Program specifies that a proxy can decide which future versions +of the GNU General Public License can be used, that proxy's public +statement of acceptance of a version permanently authorizes you to +choose that version for the Program. + +Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + +15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO +THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED +IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR +IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK +AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD +THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY +SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO +EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT +NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR +LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM +TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER +PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. +Interpretation of Sections 15 and 16. If the disclaimer of warranty +and limitation of liability provided above cannot be given local legal +effect according to their terms, reviewing courts shall apply local +law that most closely approximates an absolute waiver of all civil +liability in connection with the Program, unless a warranty or +assumption of liability accompanies a copy of the Program in return +for a fee. + +END OF TERMS AND CONDITIONS diff --git a/install.sh b/install.sh index a48dd01..f726eb6 100755 --- a/install.sh +++ b/install.sh @@ -1,5 +1,20 @@ #!/bin/sh -# NANO HIGHLIGHT INSTALLATION + +# IMPROVED NANO SYNTAX HIGHLIGHTING FILES +# Get nano editor better to use and see. + +# Copyright (C) 2014+ Anthony Scopatz et al. +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or (at +# your option) any later version. +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + # check for unzip before we continue if [ ! "$(command -v unzip)" ]; then @@ -33,6 +48,14 @@ _update_nanorc_lite(){ sed -i '/include "\/usr\/share\/nano\/\*\.nanorc"/i include "~\/.nano\/*.nanorc"' "${NANORC_FILE}" } +# Good start / docs +# start constants +# list and check the needed programs +# check parameters +# init main +# get the git +# updat/create the nanorc + NANORC_FILE=~/.nanorc case "$1" in diff --git a/license b/license deleted file mode 100644 index 9032bab..0000000 --- a/license +++ /dev/null @@ -1,15 +0,0 @@ - nano run control files - Copyright (C) 2014+ Anthony Scopatz et al. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . From 8442d3ad3543aa65b9cc40f2d5b56fcf74eeaa87 Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Sun, 27 Oct 2019 22:42:16 +0000 Subject: [PATCH 16/65] A more organised and robust install file --- install.sh | 44 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 34 insertions(+), 10 deletions(-) diff --git a/install.sh b/install.sh index f726eb6..ab0778d 100755 --- a/install.sh +++ b/install.sh @@ -15,12 +15,39 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . +# Bash Variables +# Ativate or not the erros (1=activated) +OPTERR=1 +# Separator (useful for simulate arrays) +IFS=" " -# check for unzip before we continue -if [ ! "$(command -v unzip)" ]; then - echo 'unzip is required but was not found. Install unzip first and then run this script again.' >&2 - exit 1 -fi +# Global Variables +G_NANORC_FILE="~/.nanorc" +G_DEPS="unzip sed wget" + +# Functions + +# Check dependencies +f_check_deps(){ + DEPS_MISSED="" + + # If there isn't the dependency the $DEPS_MISSED will be populated. + for DEP in $G_DEPS; do + if [ ! "$(command -v "$DEP")" ]; then + DEPS_MISSED="${DEP} ${DEPS_MISSED}" + fi + done + + # Error if $DEPS_MISSED is populated. + if [ "$DEPS_MISSED" = "" ]; then + return 0 + else + for DEP in $DEPS_MISSED; do + echo "The '${DEP}' program is required but was not found. Install '${DEP}' first and then run this script again." >&2 + done + return 1 + fi +} _fetch_sources(){ wget -O /tmp/nanorc.zip https://github.com/scopatz/nanorc/archive/master.zip @@ -48,15 +75,12 @@ _update_nanorc_lite(){ sed -i '/include "\/usr\/share\/nano\/\*\.nanorc"/i include "~\/.nano\/*.nanorc"' "${NANORC_FILE}" } -# Good start / docs -# start constants -# list and check the needed programs + # check parameters # init main # get the git # updat/create the nanorc - -NANORC_FILE=~/.nanorc +f_check_deps case "$1" in -l|--lite) From e1bba94e7be4cef28b99485e0f179365efc74d7e Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Sat, 2 Nov 2019 21:15:04 +0000 Subject: [PATCH 17/65] Usage function --- install.sh | 44 +++++++++++++++++++++++++++++++++++++++++++- todo.md | 6 +++--- 2 files changed, 46 insertions(+), 4 deletions(-) diff --git a/install.sh b/install.sh index ab0778d..23f26e4 100755 --- a/install.sh +++ b/install.sh @@ -22,11 +22,46 @@ OPTERR=1 IFS=" " # Global Variables +G_VERSION="1.0.0" G_NANORC_FILE="~/.nanorc" G_DEPS="unzip sed wget" +# Exit Values Help +# 0 - OK +# 1 - Small problem +# 2 - Big problem + # Functions +# Show the usage/help +f_menu_usage(){ + echo "Usage: $0 [ -l|-v|-h ] [ -f FILE ]" + echo "IMPROVED NANO SYNTAX HIGHLIGHTING FILES" + echo "Get nano editor better to use and see." + echo + echo "-l Activate lite installation." + echo "-v Show version, license and other info." + echo "-h Show help or usage." + echo "-f FILE Other file instead of the default .nanorc file." + + exit 2 +} + +# Show version, license and other file. +f_menu_version(){ + echo "IMPROVED NANO SYNTAX HIGHLIGHTING FILES" + echo "Version ${G_VERSION}" + echo + echo "Copyright (C) 2014+ Anthony Scopatz et al." + echo "License GPLv3+: GNU GPL version 3 or later ." + echo "This is free software: you are free to change and redistribute it." + echo "There is NO WARRANTY, to the extent permitted by law." + echo + echo "Written by Anthony Scopatz and others." + + exit 0 +} + # Check dependencies f_check_deps(){ DEPS_MISSED="" @@ -76,10 +111,17 @@ _update_nanorc_lite(){ } -# check parameters +# corewct the get ifs +# check parameters with getopts +# help version license+info output bugs report + # init main # get the git # updat/create the nanorc + + +# Main / Init of script + f_check_deps case "$1" in diff --git a/todo.md b/todo.md index 5f9fb20..c6414d0 100644 --- a/todo.md +++ b/todo.md @@ -1,10 +1,7 @@ # TODO -0. write the scheme of the program in install file 0. https://spdx.org/licenses/GPL-3.0-or-later.html -make comments with a space after? in sh or bash - 0. Create the other theme files accordingly the original. 0. The themes files is only for sed. 0. Make nanorc more beautiful. @@ -12,3 +9,6 @@ make comments with a space after? in sh or bash 1. Combine original files with project files. 2. See if there is any command to check the atual version of nano (to update the files BEFORE a release). 4. Make the install file the oficial installaton and update it accordingly. + +0. make the installation with more plesant wait +0. may be begin with version system 1.0.0 ... From 5125a773036809577dbe8824c04ec8a934ca1010 Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Sun, 3 Nov 2019 23:22:28 +0000 Subject: [PATCH 18/65] Better IFS and parameters --- install.sh | 62 +++++++++++++++++++++++++++++++++++------------------- 1 file changed, 40 insertions(+), 22 deletions(-) diff --git a/install.sh b/install.sh index 23f26e4..23bedd6 100755 --- a/install.sh +++ b/install.sh @@ -19,12 +19,13 @@ # Ativate or not the erros (1=activated) OPTERR=1 # Separator (useful for simulate arrays) -IFS=" " +G_IFS=" " # Global Variables G_VERSION="1.0.0" -G_NANORC_FILE="~/.nanorc" G_DEPS="unzip sed wget" +G_LITE=false +G_FILE="~/.nanorc" # Exit Values Help # 0 - OK @@ -39,11 +40,13 @@ f_menu_usage(){ echo "IMPROVED NANO SYNTAX HIGHLIGHTING FILES" echo "Get nano editor better to use and see." echo - echo "-l Activate lite installation." - echo "-v Show version, license and other info." - echo "-h Show help or usage." - echo "-f FILE Other file instead of the default .nanorc file." - + echo "-l Activate lite installation." + echo " We will take account your existing .nanorc files." + echo "-v Show version, license and other info." + echo "-h Show help or usage." + echo "-f FILE" + echo " Other file instead of the default .nanorc file." + exit 2 } @@ -58,6 +61,8 @@ f_menu_version(){ echo "There is NO WARRANTY, to the extent permitted by law." echo echo "Written by Anthony Scopatz and others." + echo + echo "For bugs report, please fill an issue at https://github.com/scopatz/nanorc" exit 0 } @@ -84,6 +89,13 @@ f_check_deps(){ fi } +# Set IFS +f_set_ifs(){ + temp=$IFS + IFS=$G_IFS + G_IFS=temp +} + _fetch_sources(){ wget -O /tmp/nanorc.zip https://github.com/scopatz/nanorc/archive/master.zip mkdir -p ~/.nano/ @@ -111,32 +123,38 @@ _update_nanorc_lite(){ } -# corewct the get ifs -# check parameters with getopts -# help version license+info output bugs report +# check parameters with set variable +# made the script more or less verbose # init main # get the git # updat/create the nanorc +# ============================ +# +# MAIN / Init of script +# +# ============================= -# Main / Init of script +f_set_ifs +f_check_deps && exit 2 -f_check_deps +while getopts "lf:vh?" c + case $c in + l) G_LITE=true;; + f) G_FILE=$OPTARG;; + v) f_menu_version ;; + h|?|*) f_menu_usage ;; + esac +done -case "$1" in - -l|--lite) - UPDATE_LITE=1;; - -h|--help) - echo "Install script for nanorc syntax highlights" - echo "Call with -l or --lite to update .nanorc with secondary precedence to existing .nanorc includes" - ;; -esac +_fetch_sources -_fetch_sources; -if [ $UPDATE_LITE ]; +if [ $G_LITE ]; then _update_nanorc_lite else _update_nanorc fi + +f_set_ifs From 9ed81c37b0a77e83201f9f1bbe1d4d81efcca6a9 Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Tue, 5 Nov 2019 00:42:09 +0000 Subject: [PATCH 19/65] Add help font --- install.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/install.sh b/install.sh index 23bedd6..2f96122 100755 --- a/install.sh +++ b/install.sh @@ -15,6 +15,10 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . +# Help: +# https://www.shellscript.sh/tips/getopts/ + + # Bash Variables # Ativate or not the erros (1=activated) OPTERR=1 From 7d3fc57068b0035ff09a6cdf5dc90ba79ff43823 Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Tue, 5 Nov 2019 14:18:03 +0000 Subject: [PATCH 20/65] More notes/help --- README.md | 2 +- install.sh | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index e644953..a2ea29d 100644 --- a/README.md +++ b/README.md @@ -112,6 +112,6 @@ A view in that issues it can be helpful. See GNU Project link in the end. - [Nano Editor](https://www.nano-editor.org) for some `nanorc` files. - [GNU Project](https://savannah.gnu.org/projects/nano/) for hosting the `nano`'s git and issues. - [nanorc-mac](https://github.com/richrad/nanorc-mac) for the themes idea. -- [Bruce Barnert](http://www.grymoire.com/Unix/Sed.html#toc-uh-5) for good `sed` documentation. +- [Bruce Barnert](http://www.grymoire.com/Unix/Sed.html) for good `sed` documentation. - And to all contributors! diff --git a/install.sh b/install.sh index 2f96122..7cd4bde 100755 --- a/install.sh +++ b/install.sh @@ -16,8 +16,8 @@ # along with this program. If not, see . # Help: -# https://www.shellscript.sh/tips/getopts/ - +# Getopts: https://www.shellscript.sh/tips/getopts/ +# Sed: http://www.grymoire.com/Unix/Sed.html # Bash Variables # Ativate or not the erros (1=activated) @@ -49,7 +49,7 @@ f_menu_usage(){ echo "-v Show version, license and other info." echo "-h Show help or usage." echo "-f FILE" - echo " Other file instead of the default .nanorc file." + echo " The path of other file instead of the default .nanorc file." exit 2 } From 49d4623031d567d48f4f59f711beee7bb2757931 Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Thu, 14 Nov 2019 12:05:41 +0000 Subject: [PATCH 21/65] Enhance the fetch sources function --- install.sh | 99 ++++++++++++++++++++++++++++++++++++++++-------------- todo.md | 3 +- 2 files changed, 75 insertions(+), 27 deletions(-) diff --git a/install.sh b/install.sh index 7cd4bde..02d852d 100755 --- a/install.sh +++ b/install.sh @@ -16,7 +16,6 @@ # along with this program. If not, see . # Help: -# Getopts: https://www.shellscript.sh/tips/getopts/ # Sed: http://www.grymoire.com/Unix/Sed.html # Bash Variables @@ -26,32 +25,35 @@ OPTERR=1 G_IFS=" " # Global Variables -G_VERSION="1.0.0" -G_DEPS="unzip sed wget" -G_LITE=false -G_FILE="~/.nanorc" +G_VERSION="2019.10.17" +G_DEPS="unzip sed" +G_REPO_MASTER="https://github.com/scopatz/nanorc/archive/master.zip" +G_REPO_RELEASE="https://github.com/scopatz/nanorc/archive/${G_VERSION}.zip" +unset G_LITE G_FILE G_VERBOSE G_UNSTABLE # Exit Values Help # 0 - OK -# 1 - Small problem -# 2 - Big problem +# 1 - Big problem # Functions # Show the usage/help f_menu_usage(){ - echo "Usage: $0 [ -l|-v|-h ] [ -f FILE ]" + echo "Usage: $0 [ -h | -l | -t | -u | -v ] [ -f FILE ]" + echo echo "IMPROVED NANO SYNTAX HIGHLIGHTING FILES" echo "Get nano editor better to use and see." echo - echo "-l Activate lite installation." - echo " We will take account your existing .nanorc files." - echo "-v Show version, license and other info." echo "-h Show help or usage." + echo "-l Activate lite installation." + echo " We will take account your existing .nanorc files." + echo "-t Turn the script more verbose, often to tests." + echo "-u Use the unstable branch." + echo "-v Show version, license and other info." echo "-f FILE" echo " The path of other file instead of the default .nanorc file." - exit 2 + exit 1 } # Show version, license and other file. @@ -100,12 +102,45 @@ f_set_ifs(){ G_IFS=temp } -_fetch_sources(){ - wget -O /tmp/nanorc.zip https://github.com/scopatz/nanorc/archive/master.zip +# Set Variable +# Receives two parameters: +# 1. the variable name +# 2. a value +# Sources: https://unix.stackexchange.com/questions/23111/what-is-the-eval-command-in-bash +f_set_variable(){ + varname=$1 + shift + + # Because 'sh' do not recognize indirect expansion "${!#}" + eval varvalue="$"$varname + + if [ -z "${varvalue}" ]; then + eval "$varname=${@}" + else + echo "Error: ${varname} already set" + usage + fi +} + +# Fetch Sources +# todo: check the directory/file before call this function +# todo: add a no directory or other nam +# todp: rename to install +f_fetch_sources() + temp="temp.zip" + cd ~ + + if [ "$G_UNSTABLE" = true ]; then + curl -L -o $temp $G_REPO_MASTER + else + curl -L -o $temp $G_REPO_RELEASE + fi + + unzip -u -d $G_DIR $temp + mkdir -p ~/.nano/ - cd ~/.nano/ || exit - unzip -o "/tmp/nanorc.zip" + mv nanorc-master/* ./ rm -rf nanorc-master rm /tmp/nanorc.zip @@ -127,10 +162,6 @@ _update_nanorc_lite(){ } -# check parameters with set variable -# made the script more or less verbose - -# init main # get the git # updat/create the nanorc @@ -140,19 +171,33 @@ _update_nanorc_lite(){ # # ============================= +# Pre-check f_set_ifs -f_check_deps && exit 2 +f_check_deps && exit 1 -while getopts "lf:vh?" c +# Menu +# Getopts: https://www.shellscript.sh/tips/getopts/ +while getopts "hltvf:" c case $c in - l) G_LITE=true;; - f) G_FILE=$OPTARG;; + h) f_menu_usage ;; + l) f_set_variable G_LITE true ;; + t) f_set_variable G_VERBOSE true ;; + u) f_set_variable G_UNSTABLE true v) f_menu_version ;; - h|?|*) f_menu_usage ;; + f) f_set_variable G_FILE $OPTARG ;; + *) f_menu_usage ;; esac done -_fetch_sources +# Check the file +[ -z "$G_FILE" ] && G_FILE="~/.nanorc" + +# Set verbose +if [ "$G_VERBOSE" = true ]; then + set -x +fi + +f_fetch_sources if [ $G_LITE ]; then @@ -161,4 +206,6 @@ else _update_nanorc fi +# Post-check f_set_ifs +exit 0 diff --git a/todo.md b/todo.md index c6414d0..a69a512 100644 --- a/todo.md +++ b/todo.md @@ -11,4 +11,5 @@ 4. Make the install file the oficial installaton and update it accordingly. 0. make the installation with more plesant wait -0. may be begin with version system 1.0.0 ... +0. may be begin with version system 1.0.0 +0. make a function for error output/echo From 2f9ddebc3991e41427c1cb14f72cb71544a7f4a2 Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Thu, 14 Nov 2019 21:47:54 +0000 Subject: [PATCH 22/65] The function install is working, but without themes... --- install.sh | 87 ++++++++++++++++++++++++++++++++---------------------- todo.md | 2 -- 2 files changed, 51 insertions(+), 38 deletions(-) diff --git a/install.sh b/install.sh index 02d852d..725cf4f 100755 --- a/install.sh +++ b/install.sh @@ -14,6 +14,7 @@ # General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . +# https://spdx.org/licenses/GPL-3.0-or-later.html # Help: # Sed: http://www.grymoire.com/Unix/Sed.html @@ -29,7 +30,7 @@ G_VERSION="2019.10.17" G_DEPS="unzip sed" G_REPO_MASTER="https://github.com/scopatz/nanorc/archive/master.zip" G_REPO_RELEASE="https://github.com/scopatz/nanorc/archive/${G_VERSION}.zip" -unset G_LITE G_FILE G_VERBOSE G_UNSTABLE +unset G_DIR G_LITE G_VERBOSE G_UNSTABLE G_FILE # Exit Values Help # 0 - OK @@ -39,11 +40,13 @@ unset G_LITE G_FILE G_VERBOSE G_UNSTABLE # Show the usage/help f_menu_usage(){ - echo "Usage: $0 [ -h | -l | -t | -u | -v ] [ -f FILE ]" + echo "Usage: $0 [ -d | -h | -l | -t | -u | -v ] [ -f FILE ]" echo echo "IMPROVED NANO SYNTAX HIGHLIGHTING FILES" echo "Get nano editor better to use and see." echo + echo "-d Give other directory for installation." + echo " Default: ~/.nano/nanorc/" echo "-h Show help or usage." echo "-l Activate lite installation." echo " We will take account your existing .nanorc files." @@ -117,34 +120,12 @@ f_set_variable(){ if [ -z "${varvalue}" ]; then eval "$varname=${@}" else - echo "Error: ${varname} already set" + echo "Error: ${varname} already set." usage fi } -# Fetch Sources -# todo: check the directory/file before call this function -# todo: add a no directory or other nam -# todp: rename to install -f_fetch_sources() - temp="temp.zip" - cd ~ - if [ "$G_UNSTABLE" = true ]; then - curl -L -o $temp $G_REPO_MASTER - else - curl -L -o $temp $G_REPO_RELEASE - fi - - unzip -u -d $G_DIR $temp - - mkdir -p ~/.nano/ - - - mv nanorc-master/* ./ - rm -rf nanorc-master - rm /tmp/nanorc.zip -} _update_nanorc(){ touch ~/.nanorc @@ -162,7 +143,45 @@ _update_nanorc_lite(){ } -# get the git + + +# Install +# Sources: https://www.cyberciti.biz/faq/download-a-file-with-curl-on-linux-unix-command-line/ +f_install(){ + temp="temp.zip" + cd ~ + + mkdir -p $G_DIR + + if [ ! -d "G_DIR" ]; then + echo "Error: ${G_DIR} is not a directory or cannot be accessed or created." + usage + fi + + if [ "$G_UNSTABLE" = true ]; then + curl -L -o $temp $G_REPO_MASTER + else + curl -L -o $temp $G_REPO_RELEASE + fi + + unzip -u $temp + rm $temp + + if [ "$G_UNSTABLE" = true ]; then + mv "nanorc-master/*" $G_DIR + rm -rf "nanorc-master" + else + mv "nanorc-${G_VERSION}" $G_DIR + rm -rf "nanorc-${G_VERSION}" + fi + + if [ "$G_LITE" = true ]; then + _update_nanorc_lite + else + _update_nanorc + fi +} + # updat/create the nanorc # ============================ @@ -177,8 +196,9 @@ f_check_deps && exit 1 # Menu # Getopts: https://www.shellscript.sh/tips/getopts/ -while getopts "hltvf:" c +while getopts "d:hltvf:" c case $c in + d) f_set_variable G_DIR $OPTARG ;; h) f_menu_usage ;; l) f_set_variable G_LITE true ;; t) f_set_variable G_VERBOSE true ;; @@ -189,22 +209,17 @@ while getopts "hltvf:" c esac done -# Check the file +# Set defaults if there is not. [ -z "$G_FILE" ] && G_FILE="~/.nanorc" +[ -z "$G_DIR" ] && G_DIR="~/.nano/nanorc/" # Set verbose if [ "$G_VERBOSE" = true ]; then set -x fi -f_fetch_sources - -if [ $G_LITE ]; -then - _update_nanorc_lite -else - _update_nanorc -fi +# Install +f_install # Post-check f_set_ifs diff --git a/todo.md b/todo.md index a69a512..70998f2 100644 --- a/todo.md +++ b/todo.md @@ -1,7 +1,5 @@ # TODO -0. https://spdx.org/licenses/GPL-3.0-or-later.html - 0. Create the other theme files accordingly the original. 0. The themes files is only for sed. 0. Make nanorc more beautiful. From 469b554a54f31931cfe171f05a2d9ba05afe2868 Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Sat, 23 Nov 2019 00:02:59 +0000 Subject: [PATCH 23/65] Many changes envolving the themes and configs --- install.sh | 68 +++++++++++++----- themes/nano/config | 6 ++ themes/nano/gui | 0 themes/nano/keys | 0 themes/nano/{highlight => rules} | 7 +- themes/scopatz/config | 7 ++ themes/scopatz/gui | 0 themes/scopatz/keys | 0 themes/scopatz/{highlight => rules} | 17 +++-- themes/tpro/config | 107 ++++++++++++++++++++++++++++ themes/tpro/gui | 0 themes/tpro/keys | 0 themes/tpro/{highlight => rules} | 6 +- todo.md | 3 +- 14 files changed, 193 insertions(+), 28 deletions(-) create mode 100644 themes/nano/config delete mode 100755 themes/nano/gui delete mode 100755 themes/nano/keys rename themes/nano/{highlight => rules} (92%) create mode 100644 themes/scopatz/config delete mode 100755 themes/scopatz/gui delete mode 100755 themes/scopatz/keys rename themes/scopatz/{highlight => rules} (75%) create mode 100644 themes/tpro/config delete mode 100755 themes/tpro/gui delete mode 100755 themes/tpro/keys rename themes/tpro/{highlight => rules} (85%) diff --git a/install.sh b/install.sh index 725cf4f..a91a9e9 100755 --- a/install.sh +++ b/install.sh @@ -28,9 +28,10 @@ G_IFS=" " # Global Variables G_VERSION="2019.10.17" G_DEPS="unzip sed" +G_FILE="~/.nanorc" G_REPO_MASTER="https://github.com/scopatz/nanorc/archive/master.zip" G_REPO_RELEASE="https://github.com/scopatz/nanorc/archive/${G_VERSION}.zip" -unset G_DIR G_LITE G_VERBOSE G_UNSTABLE G_FILE +unset G_LITE G_UNSTABLE G_VERBOSE G_DIR G_THEME # Exit Values Help # 0 - OK @@ -40,22 +41,26 @@ unset G_DIR G_LITE G_VERBOSE G_UNSTABLE G_FILE # Show the usage/help f_menu_usage(){ - echo "Usage: $0 [ -d | -h | -l | -t | -u | -v ] [ -f FILE ]" + echo "Usage: $0 [ -h|-l|-u|-v|-w ] [ -d DIR ] [ -t THEME ]" echo echo "IMPROVED NANO SYNTAX HIGHLIGHTING FILES" echo "Get nano editor better to use and see." echo - echo "-d Give other directory for installation." - echo " Default: ~/.nano/nanorc/" echo "-h Show help or usage." echo "-l Activate lite installation." echo " We will take account your existing .nanorc files." - echo "-t Turn the script more verbose, often to tests." - echo "-u Use the unstable branch." + echo "-u Use the unstable branch (master)." echo "-v Show version, license and other info." - echo "-f FILE" - echo " The path of other file instead of the default .nanorc file." - + echo "-w Turn the script more verbose, often to tests." + echo + echo "-d DIR" + echo " Give other directory for installation." + echo " Default: ~/.nano/nanorc/" + echo + echo "-t THEME" + echo " Give other theme for installation." + echo " Default: scopatz" + echo " Options: nano, tpro" exit 1 } @@ -149,11 +154,14 @@ _update_nanorc_lite(){ # Sources: https://www.cyberciti.biz/faq/download-a-file-with-curl-on-linux-unix-command-line/ f_install(){ temp="temp.zip" + begin="# BEGIN" + end="# END" + theme="${G_DIR}/themes/${G_THEME}/" cd ~ mkdir -p $G_DIR - if [ ! -d "G_DIR" ]; then + if [ ! -d "$G_DIR" ]; then echo "Error: ${G_DIR} is not a directory or cannot be accessed or created." usage fi @@ -175,14 +183,42 @@ f_install(){ rm -rf "nanorc-${G_VERSION}" fi + if [ ! -d "$theme" ]; then + echo "Error: ${G_THEME} is not a theme or cannot be accessed." + usage + fi + + touch "$G_FILE" + + echo "$begin" >> $G_FILE + echo "" >> $G_FILE + echo "$end" >> $G_FILE + if [ "$G_LITE" = true ]; then + sed -n -i.bkp '/'"$begin"'/,/'"$end"'/ { + /'"$begin"'/n + /'"$end"'/ !{ + s/*// + r + } + # r theme + # write the includes + }' $G_FILE + _update_nanorc_lite else _update_nanorc fi } -# updat/create the nanorc +# update. +# write comments, options, gui, rebindings, includes highlights (according theme) +# lite = maintains the nano nanorc files' +# get the list of nano's files and include only ours (exclude). +# big change: update all nanorc +# big change: install "only" the themed nanorc files and .nanorc + +# next: update/re-create the nanorc # ============================ # @@ -196,22 +232,22 @@ f_check_deps && exit 1 # Menu # Getopts: https://www.shellscript.sh/tips/getopts/ -while getopts "d:hltvf:" c +while getopts "d:hlt:uvw" c case $c in d) f_set_variable G_DIR $OPTARG ;; h) f_menu_usage ;; l) f_set_variable G_LITE true ;; - t) f_set_variable G_VERBOSE true ;; - u) f_set_variable G_UNSTABLE true + t) f_set_variable G_THEME $OPTARG ;; + u) f_set_variable G_UNSTABLE true ;; v) f_menu_version ;; - f) f_set_variable G_FILE $OPTARG ;; + w) f_set_variable G_VERBOSE true ;; *) f_menu_usage ;; esac done # Set defaults if there is not. -[ -z "$G_FILE" ] && G_FILE="~/.nanorc" [ -z "$G_DIR" ] && G_DIR="~/.nano/nanorc/" +[ -z "$G_THEME" ] && G_THEME="scopatz" # Set verbose if [ "$G_VERBOSE" = true ]; then diff --git a/themes/nano/config b/themes/nano/config new file mode 100644 index 0000000..3e2fae3 --- /dev/null +++ b/themes/nano/config @@ -0,0 +1,6 @@ +# NANO +# ===================== +# NANORC Nano +# ===================== + +# This configuration is empty to mantain the original configuration. diff --git a/themes/nano/gui b/themes/nano/gui deleted file mode 100755 index e69de29..0000000 diff --git a/themes/nano/keys b/themes/nano/keys deleted file mode 100755 index e69de29..0000000 diff --git a/themes/nano/highlight b/themes/nano/rules similarity index 92% rename from themes/nano/highlight rename to themes/nano/rules index 17d3e2e..e457f4d 100755 --- a/themes/nano/highlight +++ b/themes/nano/rules @@ -1,6 +1,11 @@ #!/usr/bin/sed -f -# ORIGINAL + +# NANO +# ===================== +# NANORC Nano +# ===================== + ## Best approach to the original 'nanorc' files. ## If you want the original, uninstall these files, ## but you will lose many highlight instructions... diff --git a/themes/scopatz/config b/themes/scopatz/config new file mode 100644 index 0000000..6373530 --- /dev/null +++ b/themes/scopatz/config @@ -0,0 +1,7 @@ +# SCOPATZ +# ===================== +# NANORC Scopatz +# https://github.com/scopatz +# ===================== + +# This configuration have nothing, yet ... diff --git a/themes/scopatz/gui b/themes/scopatz/gui deleted file mode 100755 index e69de29..0000000 diff --git a/themes/scopatz/keys b/themes/scopatz/keys deleted file mode 100755 index e69de29..0000000 diff --git a/themes/scopatz/highlight b/themes/scopatz/rules similarity index 75% rename from themes/scopatz/highlight rename to themes/scopatz/rules index d527c5e..7f0ccee 100755 --- a/themes/scopatz/highlight +++ b/themes/scopatz/rules @@ -1,11 +1,10 @@ #!/usr/bin/sed -f -# PROJECT -## Our approach to nano's highlight. - -# GUI Colors -## No GUI colors available, yet... - +# SCOPATZ +# ===================== +# NANORC Scopatz +# https://github.com/scopatz +# ===================== # Text Colors ## Strings and Comments: @@ -40,6 +39,6 @@ s|EMAIL|magenta| # Macros -#s|^+TODO|color brightcyan "TODO:?"| -#s|^+LINT|color ,green "[[:space:]]+$"\ncolor ,red "\t*"| -#s|^+LONG-LINE-WARNING|color ,red "^.{81,}$"| +# s|^+TODO|color brightcyan "TODO:?"| +# s|^+LINT|color ,green "[[:space:]]+$"\ncolor ,red "\t*"| +# s|^+LONG-LINE-WARNING|color ,red "^.{81,}$"| diff --git a/themes/tpro/config b/themes/tpro/config new file mode 100644 index 0000000..3b3948a --- /dev/null +++ b/themes/tpro/config @@ -0,0 +1,107 @@ +# TPRO +# ===================== +# NANORC TiagoProgrammer +# https://github.com/TJProgrammer +# ===================== + +# This configuration activates some IDE-ish features: +# - the autoindent, +# - a emptyline in the end of files, +# - justify a big text at 50th character, +# - a guidestripe at 80th character, +# - the linenumbers, +# - the multibuffer to opens several files at same time, +# - the positionlog to continue where stay, +# - the suspend (like minimising), +# - no tabs, only spaces, +# - save on quit, +# - no save the changes in WriteOut menu (Discard Buffer), +# - no trail blanks, +# - save in unix format when possible, +# - delete the marked region without touch the cut buffer. +# And some rebindings to the most natural and usual shortcuts! + +# Nano Options +set afterends +set atblanks +set autoindent +set brackets ""')>»]}" +set emptyline +set fill 70 +set guidestripe 80 +set historylog +set linenumbers +set matchbrackets "(<«"“[{)>»"”]}" +set mouse +set multibuffer +set noconvert +set positionlog +set punct "!.?" +set quickblank +set smarthome +set softwrap +set suspend +set tabsize 2 +set tabstospaces +set tempfile +set trimblanks +set unix +set zap + +# Nano GUI Colors +# set ... fgcolor,bgcolor +# Colors are: white, black, blue, green, red, cyan, yellow, magenta and normal. +set errorcolor red +set functioncolor blue +set keycolor white +set numbercolor white +set selectedcolor ,cyan +set statuscolor magenta +set stripecolor ,blue +set titlecolor brightwhite,blue + +# Nano Rebindings +# bind key function menu/all +# unbind key menu/all +# ^ Ctrl ; M- Alt ; F function + +bind M-H help all +bind ^Q exit all +bind ^Q exit browser +bind M-S writeout all +bind ^S savefile all +# Note: "O" from "Open a new file" +bind ^O insert all + +bind ^F whereis main +bind ^D wherewas main +bind M-D findprevious main +bind M-F findnext main + +bind ^X cut main +bind ^C copy main +bind ^V paste main + +bind M-M mark main +bind ^W wordcount main + +bind ^J justify main +bind M-J fulljustify main + +bind M-/ comment main +bind ^Space complete all + +bind M-R recordmacro all +bind ^R runmacro all + +bind ^Z undo all +bind M-Z redo all + +bind F5 refresh all +bind ^T suspend all +bind ^D discardbuffer writeout +bind ^E browser all + + +# Nano Highlights +# include ~/.nano/nanorc/nanorc/*.nanorc diff --git a/themes/tpro/gui b/themes/tpro/gui deleted file mode 100755 index e69de29..0000000 diff --git a/themes/tpro/keys b/themes/tpro/keys deleted file mode 100755 index e69de29..0000000 diff --git a/themes/tpro/highlight b/themes/tpro/rules similarity index 85% rename from themes/tpro/highlight rename to themes/tpro/rules index e573a08..1d16fb4 100755 --- a/themes/tpro/highlight +++ b/themes/tpro/rules @@ -1,6 +1,10 @@ #!/usr/bin/sed -f # TPRO +# ===================== +# NANORC TiagoProgrammer +# https://github.com/TJProgrammer +# ===================== # Text Colors ## Strings and Comments: @@ -34,4 +38,4 @@ s|REMINDERS|brightwhite,yellow| s|EMAIL|magenta| # Macros -## No Macros in original ... +## No Macros yet ... diff --git a/todo.md b/todo.md index 70998f2..c86ed69 100644 --- a/todo.md +++ b/todo.md @@ -9,5 +9,6 @@ 4. Make the install file the oficial installaton and update it accordingly. 0. make the installation with more plesant wait -0. may be begin with version system 1.0.0 +0. maybe begin with version system 1.0.0 0. make a function for error output/echo +0. make a library for functions (it is necessary #! ?) From d83d916314d43f767be1ba83bdc8bfdbc9951571 Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Sat, 23 Nov 2019 22:22:59 +0000 Subject: [PATCH 24/65] Update travis rules --- .travis.yml | 24 ++++++++++++++++++------ shellcheck.sh | 4 ---- 2 files changed, 18 insertions(+), 10 deletions(-) delete mode 100755 shellcheck.sh diff --git a/.travis.yml b/.travis.yml index b8b5de3..a9ada4d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,12 +1,24 @@ -sudo: required -dist: trusty +# Tests +# Verify the install script -before_install: - - echo 'deb http://archive.ubuntu.com/ubuntu trusty-backports main restricted universe multiverse' | sudo tee -a /etc/apt/sources.list - - sudo apt-get -qq update - - sudo apt-get install -y shellcheck +# minimal = sh +os: linux +language: minimal + +dist: bionic git: depth: 3 + quiet: true + +branches: + only: + - master + - themify + +before_install: + - sudo apt-get update + - sudo apt-get install -y shellcheck nano + script: ./shellcheck.sh diff --git a/shellcheck.sh b/shellcheck.sh deleted file mode 100755 index 22ad42b..0000000 --- a/shellcheck.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -ev -# Shellcheck the script - -shellcheck install.sh From 1a92eafd37b31e56ca4d4da7fe42e9c2843589c4 Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Sat, 23 Nov 2019 22:26:41 +0000 Subject: [PATCH 25/65] Correct an error --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index a9ada4d..5a25a80 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,4 +21,4 @@ before_install: - sudo apt-get install -y shellcheck nano -script: ./shellcheck.sh +script: ./tests.sh From 56f4bcf1cd4399380016a02cbd0782fb740c1681 Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Sat, 23 Nov 2019 22:31:28 +0000 Subject: [PATCH 26/65] A forgotten important file... --- tests.sh | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100755 tests.sh diff --git a/tests.sh b/tests.sh new file mode 100755 index 0000000..c170557 --- /dev/null +++ b/tests.sh @@ -0,0 +1,6 @@ +#!/bin/sh +# Shellcheck the script + +nano --version + +shellcheck install.sh && exit 1 From 2f6640c9c62e703605cfb6e4a9a4a7ceea88229d Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Sat, 23 Nov 2019 22:37:49 +0000 Subject: [PATCH 27/65] Corrections... --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index a91a9e9..4ad1eaa 100755 --- a/install.sh +++ b/install.sh @@ -232,7 +232,7 @@ f_check_deps && exit 1 # Menu # Getopts: https://www.shellscript.sh/tips/getopts/ -while getopts "d:hlt:uvw" c +while getopts "d:hlt:uvw" c; do case $c in d) f_set_variable G_DIR $OPTARG ;; h) f_menu_usage ;; From 2e3f607ef821e1e877969561927d404216c9805b Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Sun, 24 Nov 2019 00:15:08 +0000 Subject: [PATCH 28/65] More Shellcheck corrections --- install.sh | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/install.sh b/install.sh index 4ad1eaa..8a2eec7 100755 --- a/install.sh +++ b/install.sh @@ -28,7 +28,7 @@ G_IFS=" " # Global Variables G_VERSION="2019.10.17" G_DEPS="unzip sed" -G_FILE="~/.nanorc" +G_FILE="${HOME}/.nanorc" G_REPO_MASTER="https://github.com/scopatz/nanorc/archive/master.zip" G_REPO_RELEASE="https://github.com/scopatz/nanorc/archive/${G_VERSION}.zip" unset G_LITE G_UNSTABLE G_VERBOSE G_DIR G_THEME @@ -117,13 +117,15 @@ f_set_ifs(){ # Sources: https://unix.stackexchange.com/questions/23111/what-is-the-eval-command-in-bash f_set_variable(){ varname=$1 + varvalue="" shift - # Because 'sh' do not recognize indirect expansion "${!#}" - eval varvalue="$"$varname + # Because 'sh' do not recognize indirect expansion "${!#}" like bash. + # Alert! The backslash "\" is needed! + eval varvalue="\$${varname}" if [ -z "${varvalue}" ]; then - eval "$varname=${@}" + eval "$varname=${*}" else echo "Error: ${varname} already set." usage @@ -157,9 +159,13 @@ f_install(){ begin="# BEGIN" end="# END" theme="${G_DIR}/themes/${G_THEME}/" - cd ~ - mkdir -p $G_DIR + if [ ! cd "$HOME" ]; then + echo "Error: Cannot open or access ${HOME} directory." + exit 1 + fi + + mkdir -p "$G_DIR" if [ ! -d "$G_DIR" ]; then echo "Error: ${G_DIR} is not a directory or cannot be accessed or created." @@ -176,10 +182,10 @@ f_install(){ rm $temp if [ "$G_UNSTABLE" = true ]; then - mv "nanorc-master/*" $G_DIR + mv "nanorc-master/*" "$G_DIR" rm -rf "nanorc-master" else - mv "nanorc-${G_VERSION}" $G_DIR + mv "nanorc-${G_VERSION}" "$G_DIR" rm -rf "nanorc-${G_VERSION}" fi @@ -190,9 +196,10 @@ f_install(){ touch "$G_FILE" - echo "$begin" >> $G_FILE - echo "" >> $G_FILE - echo "$end" >> $G_FILE + { echo "$begin"; + echo ""; + echo "$end"; + } >> $G_FILE if [ "$G_LITE" = true ]; then sed -n -i.bkp '/'"$begin"'/,/'"$end"'/ { @@ -234,10 +241,10 @@ f_check_deps && exit 1 # Getopts: https://www.shellscript.sh/tips/getopts/ while getopts "d:hlt:uvw" c; do case $c in - d) f_set_variable G_DIR $OPTARG ;; + d) f_set_variable G_DIR "$OPTARG" ;; h) f_menu_usage ;; l) f_set_variable G_LITE true ;; - t) f_set_variable G_THEME $OPTARG ;; + t) f_set_variable G_THEME "$OPTARG" ;; u) f_set_variable G_UNSTABLE true ;; v) f_menu_version ;; w) f_set_variable G_VERBOSE true ;; @@ -246,7 +253,7 @@ while getopts "d:hlt:uvw" c; do done # Set defaults if there is not. -[ -z "$G_DIR" ] && G_DIR="~/.nano/nanorc/" +[ -z "$G_DIR" ] && G_DIR="${HOME}/.nano/nanorc/" [ -z "$G_THEME" ] && G_THEME="scopatz" # Set verbose From 5b841e3f15dc05b393a34d0694dff68c08b55e16 Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Sun, 24 Nov 2019 22:22:18 +0000 Subject: [PATCH 29/65] Update to newer nano --- .travis.yml | 7 ++++--- install.sh | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5a25a80..6fe5316 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,8 +17,9 @@ branches: - themify before_install: - - sudo apt-get update - - sudo apt-get install -y shellcheck nano - + # Add unstable repos for the last version of nano + - sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu bionic-backports main restricted universe multiverse" + - sudo apt-get update -qq -y + - sudo apt-get install -qq -y shellcheck nano script: ./tests.sh diff --git a/install.sh b/install.sh index 8a2eec7..d3e763b 100755 --- a/install.sh +++ b/install.sh @@ -225,7 +225,7 @@ f_install(){ # big change: update all nanorc # big change: install "only" the themed nanorc files and .nanorc -# next: update/re-create the nanorc +# next: more shellcheck and get file and write it # ============================ # From ed33f0cd0df6aed6208134027a71b0b607d5f9eb Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Mon, 25 Nov 2019 19:49:38 +0000 Subject: [PATCH 30/65] Try again --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 6fe5316..6200bc8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,6 +20,6 @@ before_install: # Add unstable repos for the last version of nano - sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu bionic-backports main restricted universe multiverse" - sudo apt-get update -qq -y - - sudo apt-get install -qq -y shellcheck nano + - sudo apt-get install -qq -y shellcheck nano_4.5 script: ./tests.sh From b53c091ed09998e5798614243852db93aad03e31 Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Mon, 25 Nov 2019 20:01:23 +0000 Subject: [PATCH 31/65] More checks --- .travis.yml | 7 +++---- install.sh | 2 +- tests.sh | 2 ++ todo.md | 1 + 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6200bc8..f3b071e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,9 +3,8 @@ # minimal = sh os: linux -language: minimal - dist: bionic +language: minimal git: depth: 3 @@ -18,8 +17,8 @@ branches: before_install: # Add unstable repos for the last version of nano - - sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu bionic-backports main restricted universe multiverse" +# - sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu bionic-backports main restricted universe multiverse" - sudo apt-get update -qq -y - - sudo apt-get install -qq -y shellcheck nano_4.5 + - sudo apt-get install -qq -y shellcheck script: ./tests.sh diff --git a/install.sh b/install.sh index d3e763b..abc4827 100755 --- a/install.sh +++ b/install.sh @@ -160,7 +160,7 @@ f_install(){ end="# END" theme="${G_DIR}/themes/${G_THEME}/" - if [ ! cd "$HOME" ]; then + if cd "$HOME"; then echo "Error: Cannot open or access ${HOME} directory." exit 1 fi diff --git a/tests.sh b/tests.sh index c170557..1626f9b 100755 --- a/tests.sh +++ b/tests.sh @@ -4,3 +4,5 @@ nano --version shellcheck install.sh && exit 1 + +exit 0 diff --git a/todo.md b/todo.md index c86ed69..ee223e8 100644 --- a/todo.md +++ b/todo.md @@ -12,3 +12,4 @@ 0. maybe begin with version system 1.0.0 0. make a function for error output/echo 0. make a library for functions (it is necessary #! ?) +0. check the latest version of nno in travisCi From 94164b5e9c7720f61fdaec162df99d02b7991b4f Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Mon, 25 Nov 2019 20:38:14 +0000 Subject: [PATCH 32/65] Printf instead of echo --- install.sh | 82 ++++++++++++++++++++++++++---------------------------- 1 file changed, 40 insertions(+), 42 deletions(-) diff --git a/install.sh b/install.sh index abc4827..2e589d4 100755 --- a/install.sh +++ b/install.sh @@ -41,42 +41,43 @@ unset G_LITE G_UNSTABLE G_VERBOSE G_DIR G_THEME # Show the usage/help f_menu_usage(){ - echo "Usage: $0 [ -h|-l|-u|-v|-w ] [ -d DIR ] [ -t THEME ]" - echo - echo "IMPROVED NANO SYNTAX HIGHLIGHTING FILES" - echo "Get nano editor better to use and see." - echo - echo "-h Show help or usage." - echo "-l Activate lite installation." - echo " We will take account your existing .nanorc files." - echo "-u Use the unstable branch (master)." - echo "-v Show version, license and other info." - echo "-w Turn the script more verbose, often to tests." - echo - echo "-d DIR" - echo " Give other directory for installation." - echo " Default: ~/.nano/nanorc/" - echo - echo "-t THEME" - echo " Give other theme for installation." - echo " Default: scopatz" - echo " Options: nano, tpro" + printf "\n Usage: %s [ -h|-l|-u|-v|-w ] [ -d DIR ] [ -t THEME ]" "$0" + printf "\n" + printf "\n IMPROVED NANO SYNTAX HIGHLIGHTING FILES" + printf "\n Get nano editor better to use and see." + printf "\n" + printf "\n -h Show help or usage." + printf "\n -l Activate lite installation." + printf "\n We will take account your existing .nanorc files." + printf "\n -u Use the unstable branch (master)." + printf "\n -v Show version, license and other info." + printf "\n -w Turn the script more verbose, often to tests." + printf "\n" + printf "\n -d DIR" + printf "\n Give other directory for installation." + printf "\n Default: ~/.nano/nanorc/" + printf "\n" + printf "\n -t THEME" + printf "\n Give other theme for installation." + printf "\n Default: scopatz" + printf "\n Options: nano, tpro" + exit 1 } # Show version, license and other file. f_menu_version(){ - echo "IMPROVED NANO SYNTAX HIGHLIGHTING FILES" - echo "Version ${G_VERSION}" - echo - echo "Copyright (C) 2014+ Anthony Scopatz et al." - echo "License GPLv3+: GNU GPL version 3 or later ." - echo "This is free software: you are free to change and redistribute it." - echo "There is NO WARRANTY, to the extent permitted by law." - echo - echo "Written by Anthony Scopatz and others." - echo - echo "For bugs report, please fill an issue at https://github.com/scopatz/nanorc" + printf "\n IMPROVED NANO SYNTAX HIGHLIGHTING FILES" + printf "\n Version %s" "${G_VERSION}" + printf "\n" + printf "\n Copyright (C) 2014+ Anthony Scopatz et al." + printf "\n License GPLv3+: GNU GPL version 3 or later ." + printf "\n This is free software: you are free to change and redistribute it." + printf "\n There is NO WARRANTY, to the extent permitted by law." + printf "\n" + printf "\n Written by Anthony Scopatz and others." + printf "\n" + printf "\n For bugs report, please fill an issue at https://github.com/scopatz/nanorc" exit 0 } @@ -97,7 +98,7 @@ f_check_deps(){ return 0 else for DEP in $DEPS_MISSED; do - echo "The '${DEP}' program is required but was not found. Install '${DEP}' first and then run this script again." >&2 + printf "\n The '%s' program is required but was not found. Install '${DEP}' first and then run this script again." "${DEP}" >&2 done return 1 fi @@ -127,7 +128,7 @@ f_set_variable(){ if [ -z "${varvalue}" ]; then eval "$varname=${*}" else - echo "Error: ${varname} already set." + printf "\n Error: '%s' is already set." "${varname}" usage fi } @@ -140,7 +141,7 @@ _update_nanorc(){ # add all includes from ~/.nano/nanorc if they're not already there while read -r inc; do if ! grep -q "$inc" "${NANORC_FILE}"; then - echo "$inc" >> "$NANORC_FILE" + printf "\n %s" "$inc" >> "$NANORC_FILE" fi done < ~/.nano/nanorc } @@ -161,14 +162,14 @@ f_install(){ theme="${G_DIR}/themes/${G_THEME}/" if cd "$HOME"; then - echo "Error: Cannot open or access ${HOME} directory." + printf "\n Error: Cannot open or access '%s' directory." "${HOME}" exit 1 fi mkdir -p "$G_DIR" if [ ! -d "$G_DIR" ]; then - echo "Error: ${G_DIR} is not a directory or cannot be accessed or created." + printf "\n Error: '%s' is not a directory or cannot be accessed or created." "${G_DIR}" usage fi @@ -190,16 +191,13 @@ f_install(){ fi if [ ! -d "$theme" ]; then - echo "Error: ${G_THEME} is not a theme or cannot be accessed." + printf "\n Error: '%s' is not a theme or cannot be accessed." "${G_THEME}" usage fi touch "$G_FILE" - { echo "$begin"; - echo ""; - echo "$end"; - } >> $G_FILE + printf "\n %s \n %s \n" "$begin" "$end" >> "$G_FILE" if [ "$G_LITE" = true ]; then sed -n -i.bkp '/'"$begin"'/,/'"$end"'/ { @@ -210,7 +208,7 @@ f_install(){ } # r theme # write the includes - }' $G_FILE + }' "$G_FILE" _update_nanorc_lite else From 9d02e947b28b65b508a621f868f074ddaaa0c6a8 Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Mon, 25 Nov 2019 21:04:14 +0000 Subject: [PATCH 33/65] More tests... --- .travis.yml | 4 ++-- tests.sh | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index f3b071e..a18e529 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,7 +18,7 @@ branches: before_install: # Add unstable repos for the last version of nano # - sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu bionic-backports main restricted universe multiverse" - - sudo apt-get update -qq -y - - sudo apt-get install -qq -y shellcheck +# - sudo apt-get update -qq -y +# - sudo apt-get install -qq -y shellcheck script: ./tests.sh diff --git a/tests.sh b/tests.sh index 1626f9b..24c271c 100755 --- a/tests.sh +++ b/tests.sh @@ -2,7 +2,6 @@ # Shellcheck the script nano --version +shellcheck --version -shellcheck install.sh && exit 1 - -exit 0 +shellcheck -f diff *.sh | git apply | git commit -a -m "Shellcheck fast corrections" From 00d9adafdd5fb7485f33159cc7bead900e317369 Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Wed, 11 Dec 2019 19:22:47 +0000 Subject: [PATCH 34/65] Ended the lite instalation. --- install.sh | 73 +++++++++++++++++++++++++++++++----------------------- tests.sh | 3 ++- 2 files changed, 44 insertions(+), 32 deletions(-) diff --git a/install.sh b/install.sh index 2e589d4..86058f6 100755 --- a/install.sh +++ b/install.sh @@ -31,6 +31,8 @@ G_DEPS="unzip sed" G_FILE="${HOME}/.nanorc" G_REPO_MASTER="https://github.com/scopatz/nanorc/archive/master.zip" G_REPO_RELEASE="https://github.com/scopatz/nanorc/archive/${G_VERSION}.zip" +G_NANO_VERSION="4.5" +G_NANO_NRC_DIR="" unset G_LITE G_UNSTABLE G_VERBOSE G_DIR G_THEME # Exit Values Help @@ -60,8 +62,8 @@ f_menu_usage(){ printf "\n -t THEME" printf "\n Give other theme for installation." printf "\n Default: scopatz" - printf "\n Options: nano, tpro" - + printf "\n Options: nano, scopatz, tpro" + exit 1 } @@ -133,28 +135,34 @@ f_set_variable(){ fi } +# Get Nanorc's +# Get the not installed Nano's files. +# This function is only called in lite installation. +# Sources: +# http://mywiki.wooledge.org/ParsingLs +# https://unix.stackexchange.com/questions/70614/how-to-output-only-file-names-with-spaces-in-ls-al +# https://stackoverflow.com/questions/25156902/how-to-check-if-find-command-didnt-find-anything-bash-opensus +# https://stackoverflow.com/questions/59110820/find-operator-cant-go-up-in-directory +f_get_nanorcs(){ + lite="" + cd nanorc/ + for file in *; do + [ -e "$file" ] || continue -_update_nanorc(){ - touch ~/.nanorc + if [ -z $(find "../original/" -name "$file") ]; then + lite=`printf "%s\ninclude %s" "$lite" "$file"` + fi - # add all includes from ~/.nano/nanorc if they're not already there - while read -r inc; do - if ! grep -q "$inc" "${NANORC_FILE}"; then - printf "\n %s" "$inc" >> "$NANORC_FILE" - fi - done < ~/.nano/nanorc + done + cd .. + + return "$lite" } -_update_nanorc_lite(){ - sed -i '/include "\/usr\/share\/nano\/\*\.nanorc"/i include "~\/.nano\/*.nanorc"' "${NANORC_FILE}" -} - - - - # Install -# Sources: https://www.cyberciti.biz/faq/download-a-file-with-curl-on-linux-unix-command-line/ +# Sources: +# https://www.cyberciti.biz/faq/download-a-file-with-curl-on-linux-unix-command-line/ f_install(){ temp="temp.zip" begin="# BEGIN" @@ -201,29 +209,32 @@ f_install(){ if [ "$G_LITE" = true ]; then sed -n -i.bkp '/'"$begin"'/,/'"$end"'/ { - /'"$begin"'/n - /'"$end"'/ !{ + /'"$begin"'/n # skip over the line that has "$begin" on it + /'"$end"'/ !{ # skip over the line that has "$end" on it s/*// - r + r '"${theme}/config"' + r f_get_nanorc + d } - # r theme - # write the includes }' "$G_FILE" - - _update_nanorc_lite else + sed -n -i.bkp '/'"$begin"'/,/'"$end"'/ { + /'"$begin"'/n # skip over the line that has "$begin" on it + /'"$end"'/ !{ # skip over the line that has "$end" on it + s/*// + r '"${theme}/config"' + # TODO: add a line with only "include /nanorc/*" + d + } + }' "$G_FILE" _update_nanorc fi } -# update. -# write comments, options, gui, rebindings, includes highlights (according theme) -# lite = maintains the nano nanorc files' -# get the list of nano's files and include only ours (exclude). -# big change: update all nanorc +# big change: update all nanorc's # big change: install "only" the themed nanorc files and .nanorc -# next: more shellcheck and get file and write it +# next: # ============================ # diff --git a/tests.sh b/tests.sh index 24c271c..f920e96 100755 --- a/tests.sh +++ b/tests.sh @@ -4,4 +4,5 @@ nano --version shellcheck --version -shellcheck -f diff *.sh | git apply | git commit -a -m "Shellcheck fast corrections" +# shellcheck -f diff *.sh | git apply | git commit -a -m "Shellcheck fast corrections" +shellcheck *.sh From 2089e964525d3f8edeec16933ef377e6f79d82cb Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Wed, 11 Dec 2019 19:30:15 +0000 Subject: [PATCH 35/65] Shellcheck --- install.sh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index 86058f6..294d2ab 100755 --- a/install.sh +++ b/install.sh @@ -146,12 +146,16 @@ f_set_variable(){ f_get_nanorcs(){ lite="" - cd nanorc/ + if cd nanorc/; then + printf "\n Error: Cannot open or access '%s' directory." "nanorc/" + exit 1 + done + for file in *; do [ -e "$file" ] || continue - if [ -z $(find "../original/" -name "$file") ]; then - lite=`printf "%s\ninclude %s" "$lite" "$file"` + if [ -z "$(find "../original/" -name "$file")" ]; then + lite="$(printf "%s\ninclude %s" "$lite" "$file")" fi done From 238a74c92caa7f903a336b962912511dfeed3c0a Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Wed, 11 Dec 2019 19:32:38 +0000 Subject: [PATCH 36/65] Shellcheck --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 294d2ab..012ad37 100755 --- a/install.sh +++ b/install.sh @@ -149,7 +149,7 @@ f_get_nanorcs(){ if cd nanorc/; then printf "\n Error: Cannot open or access '%s' directory." "nanorc/" exit 1 - done + fi for file in *; do [ -e "$file" ] || continue From c919b2d7e2b929a8bbb0a268e1dc798fddc624e0 Mon Sep 17 00:00:00 2001 From: Tiago Programmer Date: Wed, 18 Dec 2019 21:11:06 +0000 Subject: [PATCH 37/65] Testing Travis --- .travis.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index a18e529..295cc43 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,13 +12,17 @@ git: branches: only: - - master +# - master - themify before_install: - # Add unstable repos for the last version of nano + - sudo apt-get update -qq -y + - nano --version + - shellcheck --version + +# Add unstable repos for the last version of nano # - sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu bionic-backports main restricted universe multiverse" # - sudo apt-get update -qq -y # - sudo apt-get install -qq -y shellcheck -script: ./tests.sh +# script: ./tests.sh From f07b8911965a96ef9c376bd397ad3848e8cd1c2f Mon Sep 17 00:00:00 2001 From: Tiago Programmer Date: Wed, 18 Dec 2019 21:23:02 +0000 Subject: [PATCH 38/65] Update .travis.yml --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 295cc43..3ffe57d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,8 +15,8 @@ branches: # - master - themify -before_install: - - sudo apt-get update -qq -y +before_install:: + - sudo apt install -qq -y http://ftp.us.debian.org/debian/pool/main/n/nano/nano_4.5-1_amd64.deb - nano --version - shellcheck --version From 2dd2e66690b369510c1e5c278e8babe493fbde19 Mon Sep 17 00:00:00 2001 From: Tiago Programmer Date: Wed, 18 Dec 2019 21:30:20 +0000 Subject: [PATCH 39/65] Update .travis.yml --- .travis.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 3ffe57d..9113938 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,7 +16,9 @@ branches: - themify before_install:: - - sudo apt install -qq -y http://ftp.us.debian.org/debian/pool/main/n/nano/nano_4.5-1_amd64.deb + - sudo add-apt-repository -y deb http://ftp.de.debian.org/debian bullseye main + - sudo apt-get update -y + - sudo apt-get install -y nano_4.5-1_amd64.deb - nano --version - shellcheck --version From ce93f0075daaabd17da32f69ce21a1e1d9934a4a Mon Sep 17 00:00:00 2001 From: Tiago Programmer Date: Wed, 18 Dec 2019 21:34:47 +0000 Subject: [PATCH 40/65] Update .travis.yml --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 9113938..78bbcb0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,7 +16,7 @@ branches: - themify before_install:: - - sudo add-apt-repository -y deb http://ftp.de.debian.org/debian bullseye main + - sudo add-apt-repository -y "deb http://ftp.us.debian.org/debian bullseye main" - sudo apt-get update -y - sudo apt-get install -y nano_4.5-1_amd64.deb - nano --version From cdb940c35c8856d92de03d7d129ce6c9903a985f Mon Sep 17 00:00:00 2001 From: Tiago Programmer Date: Wed, 18 Dec 2019 21:58:42 +0000 Subject: [PATCH 41/65] Update .travis.yml --- .travis.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 78bbcb0..b3034b0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,10 +1,9 @@ # Tests # Verify the install script -# minimal = sh os: linux dist: bionic -language: minimal +language: shell git: depth: 3 @@ -15,16 +14,18 @@ branches: # - master - themify -before_install:: +before_install: + - sudo apt-key adv --keyserver keyring.debian.org --recv-keys 04EE7237B7D453EC + - sudo apt-key adv --keyserver keyring.debian.org --recv-keys 648ACFD622F3D138 - sudo add-apt-repository -y "deb http://ftp.us.debian.org/debian bullseye main" - - sudo apt-get update -y + - sudo add-apt-repository -y "deb http://archive.ubuntu.com/ubuntu bionic-backports main restricted universe multiverse" + - sudo apt-get update -qq -y - sudo apt-get install -y nano_4.5-1_amd64.deb - nano --version - shellcheck --version # Add unstable repos for the last version of nano # - sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu bionic-backports main restricted universe multiverse" -# - sudo apt-get update -qq -y # - sudo apt-get install -qq -y shellcheck # script: ./tests.sh From 6bfc70be1445867f5fd93d2a0e225792a930663a Mon Sep 17 00:00:00 2001 From: Tiago Programmer Date: Wed, 18 Dec 2019 22:02:08 +0000 Subject: [PATCH 42/65] Update .travis.yml --- .travis.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index b3034b0..3f910ac 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,10 +15,7 @@ branches: - themify before_install: - - sudo apt-key adv --keyserver keyring.debian.org --recv-keys 04EE7237B7D453EC - - sudo apt-key adv --keyserver keyring.debian.org --recv-keys 648ACFD622F3D138 - - sudo add-apt-repository -y "deb http://ftp.us.debian.org/debian bullseye main" - - sudo add-apt-repository -y "deb http://archive.ubuntu.com/ubuntu bionic-backports main restricted universe multiverse" + - sudo add-apt-repository -y "deb http://archive.ubuntu.com/ubuntu bionic-backports bullseye main restricted universe multiverse" - sudo apt-get update -qq -y - sudo apt-get install -y nano_4.5-1_amd64.deb - nano --version From efcabd99c2741bdfa864e7ef41276e9466b3bc6d Mon Sep 17 00:00:00 2001 From: Tiago Programmer Date: Wed, 18 Dec 2019 22:04:37 +0000 Subject: [PATCH 43/65] Update .travis.yml --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 3f910ac..d3e2e27 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,7 +17,7 @@ branches: before_install: - sudo add-apt-repository -y "deb http://archive.ubuntu.com/ubuntu bionic-backports bullseye main restricted universe multiverse" - sudo apt-get update -qq -y - - sudo apt-get install -y nano_4.5-1_amd64.deb + - sudo apt-get install -y nano_4.6 - nano --version - shellcheck --version From 9f80b69458e9a8b6be42c4eb272af378f96e33ff Mon Sep 17 00:00:00 2001 From: Tiago Programmer Date: Wed, 18 Dec 2019 22:19:47 +0000 Subject: [PATCH 44/65] Update .travis.yml --- .travis.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index d3e2e27..4121051 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,9 +15,10 @@ branches: - themify before_install: - - sudo add-apt-repository -y "deb http://archive.ubuntu.com/ubuntu bionic-backports bullseye main restricted universe multiverse" + - sudo add-apt-repository -qq -y "deb http://archive.ubuntu.com/ubuntu bionic-backports bionic-proposed restricted main multiverse universe" - sudo apt-get update -qq -y - - sudo apt-get install -y nano_4.6 + - sudo apt-get install -y nano=4.5 + - sudo apt-get install -y shellcheck=0.6 - nano --version - shellcheck --version From 43a5be0c4d9afad2f0d246938a2c0865a51aaf4c Mon Sep 17 00:00:00 2001 From: Tiago Programmer Date: Wed, 18 Dec 2019 22:23:11 +0000 Subject: [PATCH 45/65] Update .travis.yml --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 4121051..69ad668 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,7 +15,7 @@ branches: - themify before_install: - - sudo add-apt-repository -qq -y "deb http://archive.ubuntu.com/ubuntu bionic-backports bionic-proposed restricted main multiverse universe" + - sudo add-apt-repository -y "deb http://archive.ubuntu.com/ubuntu bionic-backports bionic-proposed restricted main multiverse universe" - sudo apt-get update -qq -y - sudo apt-get install -y nano=4.5 - sudo apt-get install -y shellcheck=0.6 From 30f7aee831be636371e713914940ba32d3d498d2 Mon Sep 17 00:00:00 2001 From: Tiago Programmer Date: Wed, 18 Dec 2019 22:26:08 +0000 Subject: [PATCH 46/65] Update .travis.yml --- .travis.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 69ad668..2a2c05b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,8 +17,10 @@ branches: before_install: - sudo add-apt-repository -y "deb http://archive.ubuntu.com/ubuntu bionic-backports bionic-proposed restricted main multiverse universe" - sudo apt-get update -qq -y - - sudo apt-get install -y nano=4.5 - - sudo apt-get install -y shellcheck=0.6 +# - sudo apt-get install -y nano=4.5 +# - sudo apt-get install -y shellcheck=0.6 + - sudo apt-get install -y nano=\* + - sudo apt-get install -y shellcheck=\* - nano --version - shellcheck --version From 7be7516a33b039b7a610a2860de8b8a59d3cca5e Mon Sep 17 00:00:00 2001 From: Tiago Programmer Date: Wed, 18 Dec 2019 22:34:29 +0000 Subject: [PATCH 47/65] Update .travis.yml --- .travis.yml | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/.travis.yml b/.travis.yml index 2a2c05b..3f3d545 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,15 +17,9 @@ branches: before_install: - sudo add-apt-repository -y "deb http://archive.ubuntu.com/ubuntu bionic-backports bionic-proposed restricted main multiverse universe" - sudo apt-get update -qq -y -# - sudo apt-get install -y nano=4.5 -# - sudo apt-get install -y shellcheck=0.6 - - sudo apt-get install -y nano=\* - - sudo apt-get install -y shellcheck=\* - - nano --version - - shellcheck --version + # nano version <= 4.6 (2019/12/18 = 2.9.3) + - sudo apt-get install -qq -y nano=\* + # shellcheck version >= 0.6.0 (2019/12/18 = 0.6.0) + - sudo apt-get install -qq -y shellcheck=\* -# Add unstable repos for the last version of nano -# - sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu bionic-backports main restricted universe multiverse" -# - sudo apt-get install -qq -y shellcheck - -# script: ./tests.sh +script: ./tests.sh From c40ab815040320521df618d8cc4a74298db68952 Mon Sep 17 00:00:00 2001 From: Tiago Programmer Date: Wed, 18 Dec 2019 23:09:06 +0000 Subject: [PATCH 48/65] Begin with some "simple" tests ... If the production version is greater than development version, the tests gives an error. --- tests.sh | 50 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 48 insertions(+), 2 deletions(-) diff --git a/tests.sh b/tests.sh index f920e96..a3a19b8 100755 --- a/tests.sh +++ b/tests.sh @@ -1,8 +1,54 @@ -#!/bin/sh +#!/usr/bin/env bash # Shellcheck the script +# Note: using bash for more power in testing (the final user doesn't need it). + +# Functions + +# Test Version +# Receives two parameters in x.x.x format. +# Returns true or false +# Sources: +# https://unix.stackexchange.com/questions/285924/how-to-compare-a-programs-version-in-a-shell-script +# https://stackoverflow.com/questions/4023830/how-to-compare-two-strings-in-dot-separated-version-format-in-bash +test_version (){ + + +currentver="$(gcc -dumpversion)" +requiredver="5.0.0" + if [ "$(printf '%s\n' "$requiredver" "$currentver" | sort -V | head -n1)" = "$requiredver" ]; then + echo "Greater than or equal to 5.0.0" + else + echo "Less than 5.0.0" + fi + +################### + +verlte() { + [ "$1" = "`echo -e "$1\n$2" | sort -V | head -n1`" ] +} + +verlt() { + [ "$1" = "$2" ] && return 1 || verlte $1 $2 +} + +################## + + + + +} + + +# Tests + +get_nano_version () { + local tested_version="" + # x.x.x + local actual_version="nano --version | cut -d ' ' -f 4" +} nano --version shellcheck --version -# shellcheck -f diff *.sh | git apply | git commit -a -m "Shellcheck fast corrections" +# ....shellcheck -f diff *.sh | git apply | git commit -a -m "Shellcheck fast corrections" shellcheck *.sh From f064485bd620eb72a86d882f8eefeb426c615f28 Mon Sep 17 00:00:00 2001 From: Tiago Programmer Date: Thu, 19 Dec 2019 21:00:38 +0000 Subject: [PATCH 49/65] Test program versions --- tests.sh | 74 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/tests.sh b/tests.sh index a3a19b8..9eae567 100755 --- a/tests.sh +++ b/tests.sh @@ -2,53 +2,53 @@ # Shellcheck the script # Note: using bash for more power in testing (the final user doesn't need it). +# Global Variables +G_NANO_VERSION="" +G_SHELLCHECK_VERSION="" + # Functions -# Test Version -# Receives two parameters in x.x.x format. -# Returns true or false +# Compare Version +# Compare the first version (x.x.x format) against second one. +# Returns true if $1 => $2, false otherwise. # Sources: # https://unix.stackexchange.com/questions/285924/how-to-compare-a-programs-version-in-a-shell-script # https://stackoverflow.com/questions/4023830/how-to-compare-two-strings-in-dot-separated-version-format-in-bash -test_version (){ - - -currentver="$(gcc -dumpversion)" -requiredver="5.0.0" - if [ "$(printf '%s\n' "$requiredver" "$currentver" | sort -V | head -n1)" = "$requiredver" ]; then - echo "Greater than or equal to 5.0.0" - else - echo "Less than 5.0.0" - fi - -################### - -verlte() { - [ "$1" = "`echo -e "$1\n$2" | sort -V | head -n1`" ] +# Test table: +# req | get | test | res +# ------+-------+-------+------- +# 2.0.0 | 1.0.0 | 1.0.0 | true +# 1.0.0 | 2.0.0 | 1.0.0 | false +# 0.5.3 | 0.5.3 | 0.5.3 | true +f_compare_version(){ + local required_v="$1" + local getted_v="$2" + + # First: check if equal + if [ "$required_v" = "$getted_v" ]; then + return true; + fi + + # Second: check if greater or lesser + local test_v=$(printf "%s\n%s" "$greater_v" "$lesser_v" | sort -V | head -n 1) + case $test_v in + $getted_v) return true; + $required_v) return false; + *) return false; + esac } -verlt() { - [ "$1" = "$2" ] && return 1 || verlte $1 $2 +# Test Functions + +f_test_nano_version() { + local version="nano --version | cut -d ' ' -f 4" + return f_compare_version $G_NANO_VERSION $version } -################## - - - - +f_test_nano_version() { + local version="nano --version | cut -d ' ' -f 8" + return f_compare_version $G_SHELLCHECK_VERSION $version } - -# Tests - -get_nano_version () { - local tested_version="" - # x.x.x - local actual_version="nano --version | cut -d ' ' -f 4" -} - -nano --version -shellcheck --version - # ....shellcheck -f diff *.sh | git apply | git commit -a -m "Shellcheck fast corrections" shellcheck *.sh From a4e3b3a74e3ba27e38e2fbfe50cb2261433d53a9 Mon Sep 17 00:00:00 2001 From: Tiago Programmer Date: Thu, 19 Dec 2019 21:01:26 +0000 Subject: [PATCH 50/65] Two typos... --- tests.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests.sh b/tests.sh index 9eae567..e73dd47 100755 --- a/tests.sh +++ b/tests.sh @@ -3,8 +3,8 @@ # Note: using bash for more power in testing (the final user doesn't need it). # Global Variables -G_NANO_VERSION="" -G_SHELLCHECK_VERSION="" +G_NANO_VERSION="4.6.0" +G_SHELLCHECK_VERSION="0.6.0" # Functions From bd95a5f8209e5c65162ca0003d9f962e36e29de2 Mon Sep 17 00:00:00 2001 From: Tiago Programmer Date: Thu, 19 Dec 2019 21:03:07 +0000 Subject: [PATCH 51/65] Correct "case" --- tests.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests.sh b/tests.sh index e73dd47..d225973 100755 --- a/tests.sh +++ b/tests.sh @@ -32,9 +32,9 @@ f_compare_version(){ # Second: check if greater or lesser local test_v=$(printf "%s\n%s" "$greater_v" "$lesser_v" | sort -V | head -n 1) case $test_v in - $getted_v) return true; - $required_v) return false; - *) return false; + $getted_v) return true ;; + $required_v) return false ;; + *) return false ;; esac } From fd9a31365f81b5cea7b75cbdd4f14299798595d9 Mon Sep 17 00:00:00 2001 From: Tiago Programmer Date: Thu, 19 Dec 2019 21:04:33 +0000 Subject: [PATCH 52/65] Update tests.sh --- tests.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests.sh b/tests.sh index d225973..f3d2eb9 100755 --- a/tests.sh +++ b/tests.sh @@ -45,10 +45,12 @@ f_test_nano_version() { return f_compare_version $G_NANO_VERSION $version } -f_test_nano_version() { +f_test_shellcheck_version() { local version="nano --version | cut -d ' ' -f 8" return f_compare_version $G_SHELLCHECK_VERSION $version } +f_test_nano_version +f_test_shellcheck_version # ....shellcheck -f diff *.sh | git apply | git commit -a -m "Shellcheck fast corrections" shellcheck *.sh From 7fb8e9fa8ea77bbf39fadebf591a6fae93687b95 Mon Sep 17 00:00:00 2001 From: Tiago Programmer Date: Fri, 20 Dec 2019 15:21:26 +0000 Subject: [PATCH 53/65] Add debugging --- install.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/install.sh b/install.sh index 012ad37..1167165 100755 --- a/install.sh +++ b/install.sh @@ -24,6 +24,9 @@ OPTERR=1 # Separator (useful for simulate arrays) G_IFS=" " +# Debugging variables +set -e +set -x # Global Variables G_VERSION="2019.10.17" From 3482835fccd839cfc1a33d5d7dd52252bab69e8a Mon Sep 17 00:00:00 2001 From: Tiago Programmer Date: Fri, 20 Dec 2019 18:07:44 +0000 Subject: [PATCH 54/65] Update nano's version --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 1167165..111e96f 100755 --- a/install.sh +++ b/install.sh @@ -34,7 +34,7 @@ G_DEPS="unzip sed" G_FILE="${HOME}/.nanorc" G_REPO_MASTER="https://github.com/scopatz/nanorc/archive/master.zip" G_REPO_RELEASE="https://github.com/scopatz/nanorc/archive/${G_VERSION}.zip" -G_NANO_VERSION="4.5" +G_NANO_VERSION="4.6.0" G_NANO_NRC_DIR="" unset G_LITE G_UNSTABLE G_VERBOSE G_DIR G_THEME From 1a2f039bf7bfd71c1568917c4f359203d7244ff8 Mon Sep 17 00:00:00 2001 From: Tiago Programmer Date: Fri, 20 Dec 2019 18:47:45 +0000 Subject: [PATCH 55/65] Correct mistakes --- tests.sh | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/tests.sh b/tests.sh index f3d2eb9..8e35078 100755 --- a/tests.sh +++ b/tests.sh @@ -3,54 +3,58 @@ # Note: using bash for more power in testing (the final user doesn't need it). # Global Variables -G_NANO_VERSION="4.6.0" -G_SHELLCHECK_VERSION="0.6.0" +readonly G_NANO_VERSION="4.6.0" +readonly G_SHELLCHECK_VERSION="0.6.0" # Functions # Compare Version # Compare the first version (x.x.x format) against second one. -# Returns true if $1 => $2, false otherwise. +# Returns 0 if $1 => $2, 1 otherwise. +# In error returns 2. # Sources: # https://unix.stackexchange.com/questions/285924/how-to-compare-a-programs-version-in-a-shell-script # https://stackoverflow.com/questions/4023830/how-to-compare-two-strings-in-dot-separated-version-format-in-bash # Test table: -# req | get | test | res -# ------+-------+-------+------- -# 2.0.0 | 1.0.0 | 1.0.0 | true -# 1.0.0 | 2.0.0 | 1.0.0 | false -# 0.5.3 | 0.5.3 | 0.5.3 | true +# req | get | test | res +# -------+-------+-------+----------- +# 2.0.0 | 1.0.0 | 1.0.0 | true = 0 +# 1.0.0 | 2.0.0 | 1.0.0 | false = 1 +# 0.5.3 | 0.5.3 | 0.5.3 | true = 0 f_compare_version(){ local required_v="$1" local getted_v="$2" # First: check if equal if [ "$required_v" = "$getted_v" ]; then - return true; + return 0; fi # Second: check if greater or lesser - local test_v=$(printf "%s\n%s" "$greater_v" "$lesser_v" | sort -V | head -n 1) + local test_v + $test_v=$(printf "%s\n%s" "$required_v" "$getted_v" | sort -V | head -n 1) case $test_v in - $getted_v) return true ;; - $required_v) return false ;; - *) return false ;; + $getted_v) return 0 ;; + $required_v) return 1 ;; + *) return 2 ;; esac } # Test Functions f_test_nano_version() { - local version="nano --version | cut -d ' ' -f 4" - return f_compare_version $G_NANO_VERSION $version + local version + $version=$(nano --version | cut -d ' ' -f 4) + return $(f_compare_version $G_NANO_VERSION $version) } f_test_shellcheck_version() { - local version="nano --version | cut -d ' ' -f 8" - return f_compare_version $G_SHELLCHECK_VERSION $version + local version + $version=$(nano --version | cut -d ' ' -f 8) + return $(f_compare_version $G_SHELLCHECK_VERSION $version) } f_test_nano_version f_test_shellcheck_version # ....shellcheck -f diff *.sh | git apply | git commit -a -m "Shellcheck fast corrections" -shellcheck *.sh +shellcheck -- *.sh From 03ac1685dcbde9354eccc199d26437afc6d97073 Mon Sep 17 00:00:00 2001 From: Tiago Programmer Date: Fri, 20 Dec 2019 18:52:36 +0000 Subject: [PATCH 56/65] Correct mistakes - second try --- tests.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests.sh b/tests.sh index 8e35078..d266ac6 100755 --- a/tests.sh +++ b/tests.sh @@ -32,7 +32,7 @@ f_compare_version(){ # Second: check if greater or lesser local test_v - $test_v=$(printf "%s\n%s" "$required_v" "$getted_v" | sort -V | head -n 1) + test_v="$(printf "%s\n%s" "$required_v" "$getted_v" | sort -V | head -n 1)" case $test_v in $getted_v) return 0 ;; $required_v) return 1 ;; @@ -44,13 +44,13 @@ f_compare_version(){ f_test_nano_version() { local version - $version=$(nano --version | cut -d ' ' -f 4) + version="$(nano --version | cut -d ' ' -f 4)" return $(f_compare_version $G_NANO_VERSION $version) } f_test_shellcheck_version() { local version - $version=$(nano --version | cut -d ' ' -f 8) + version="$(nano --version | cut -d ' ' -f 8)" return $(f_compare_version $G_SHELLCHECK_VERSION $version) } From c2cd9d66c3cf44beda6b8ca25c9cc289e476f227 Mon Sep 17 00:00:00 2001 From: Tiago Programmer Date: Fri, 20 Dec 2019 19:02:03 +0000 Subject: [PATCH 57/65] Correct Mistakes - 3rd try --- tests.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests.sh b/tests.sh index d266ac6..4f3e1b1 100755 --- a/tests.sh +++ b/tests.sh @@ -45,16 +45,16 @@ f_compare_version(){ f_test_nano_version() { local version version="$(nano --version | cut -d ' ' -f 4)" - return $(f_compare_version $G_NANO_VERSION $version) + return "$(f_compare_version $G_NANO_VERSION $version)" } f_test_shellcheck_version() { local version version="$(nano --version | cut -d ' ' -f 8)" - return $(f_compare_version $G_SHELLCHECK_VERSION $version) + return "$(f_compare_version $G_SHELLCHECK_VERSION $version)" } -f_test_nano_version -f_test_shellcheck_version +printf "Nano Version ok? %s" f_test_nano_version +printf "Shellcheck Version ok? %s" f_test_shellcheck_version # ....shellcheck -f diff *.sh | git apply | git commit -a -m "Shellcheck fast corrections" shellcheck -- *.sh From fd88801b4b3c635b7455da01569200ca8129cb20 Mon Sep 17 00:00:00 2001 From: Tiago Programmer Date: Fri, 20 Dec 2019 19:10:39 +0000 Subject: [PATCH 58/65] Correct Mistakes - 4th try --- tests.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tests.sh b/tests.sh index 4f3e1b1..8c269ad 100755 --- a/tests.sh +++ b/tests.sh @@ -54,7 +54,10 @@ f_test_shellcheck_version() { return "$(f_compare_version $G_SHELLCHECK_VERSION $version)" } -printf "Nano Version ok? %s" f_test_nano_version -printf "Shellcheck Version ok? %s" f_test_shellcheck_version +printf "#################\n" +printf "TESTS\n" +printf "#################\n" +printf "Nano Version ok? %s\n" "$(f_test_nano_version)" +printf "Shellcheck Version ok? %s\n" "$(f_test_shellcheck_version)" # ....shellcheck -f diff *.sh | git apply | git commit -a -m "Shellcheck fast corrections" shellcheck -- *.sh From 054047a014694eebbf56d41e293e473874585709 Mon Sep 17 00:00:00 2001 From: Tiago Programmer Date: Fri, 20 Dec 2019 19:41:30 +0000 Subject: [PATCH 59/65] Correct Mistakes - 5th try --- tests.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests.sh b/tests.sh index 8c269ad..ed95601 100755 --- a/tests.sh +++ b/tests.sh @@ -45,13 +45,15 @@ f_compare_version(){ f_test_nano_version() { local version version="$(nano --version | cut -d ' ' -f 4)" - return "$(f_compare_version $G_NANO_VERSION $version)" + f_compare_version "$G_NANO_VERSION "$version" + return $? } f_test_shellcheck_version() { local version version="$(nano --version | cut -d ' ' -f 8)" - return "$(f_compare_version $G_SHELLCHECK_VERSION $version)" + f_compare_version "$G_SHELLCHECK_VERSION" "$version" + return $? } printf "#################\n" From ba8c033f9a7946ecb56c1e29f0534bbb0cec7ddf Mon Sep 17 00:00:00 2001 From: Tiago Programmer Date: Fri, 20 Dec 2019 20:08:05 +0000 Subject: [PATCH 60/65] Correct Mistakes - 6th try --- tests.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests.sh b/tests.sh index ed95601..232c985 100755 --- a/tests.sh +++ b/tests.sh @@ -56,9 +56,9 @@ f_test_shellcheck_version() { return $? } -printf "#################\n" +printf "=================\n" printf "TESTS\n" -printf "#################\n" +printf "=================\n" printf "Nano Version ok? %s\n" "$(f_test_nano_version)" printf "Shellcheck Version ok? %s\n" "$(f_test_shellcheck_version)" # ....shellcheck -f diff *.sh | git apply | git commit -a -m "Shellcheck fast corrections" From 47de05efa05aee0dcb03bd89cfe348a0fb4af24e Mon Sep 17 00:00:00 2001 From: Tiago Programmer Date: Fri, 20 Dec 2019 20:14:36 +0000 Subject: [PATCH 61/65] Correct Mistakes - 7th try --- tests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests.sh b/tests.sh index 232c985..17951a9 100755 --- a/tests.sh +++ b/tests.sh @@ -45,7 +45,7 @@ f_compare_version(){ f_test_nano_version() { local version version="$(nano --version | cut -d ' ' -f 4)" - f_compare_version "$G_NANO_VERSION "$version" + f_compare_version "$G_NANO_VERSION" "$version" return $? } From adcdecee6cf27d1d650ce1a7cd04807f951a2412 Mon Sep 17 00:00:00 2001 From: Tiago Programmer Date: Fri, 20 Dec 2019 20:26:43 +0000 Subject: [PATCH 62/65] Return Values Mistake --- tests.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests.sh b/tests.sh index 17951a9..625af9a 100755 --- a/tests.sh +++ b/tests.sh @@ -59,7 +59,9 @@ f_test_shellcheck_version() { printf "=================\n" printf "TESTS\n" printf "=================\n" -printf "Nano Version ok? %s\n" "$(f_test_nano_version)" -printf "Shellcheck Version ok? %s\n" "$(f_test_shellcheck_version)" +f_test_nano_version +printf "Nano Version ok? %s\n" "$?" +f_test_shellcheck_version +printf "Shellcheck Version ok? %s\n" "$?" # ....shellcheck -f diff *.sh | git apply | git commit -a -m "Shellcheck fast corrections" shellcheck -- *.sh From 5d5521c048045743ad36cadd6ef6cc12a7b1b612 Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Fri, 27 Dec 2019 15:11:42 +0000 Subject: [PATCH 63/65] Correct versions --- tests.sh | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/tests.sh b/tests.sh index 625af9a..6c86f41 100755 --- a/tests.sh +++ b/tests.sh @@ -24,12 +24,12 @@ readonly G_SHELLCHECK_VERSION="0.6.0" f_compare_version(){ local required_v="$1" local getted_v="$2" - + # First: check if equal if [ "$required_v" = "$getted_v" ]; then return 0; fi - + # Second: check if greater or lesser local test_v test_v="$(printf "%s\n%s" "$required_v" "$getted_v" | sort -V | head -n 1)" @@ -44,14 +44,18 @@ f_compare_version(){ f_test_nano_version() { local version - version="$(nano --version | cut -d ' ' -f 4)" + version="$(nano --version | cut -d ' ' -f 5 | head -n 1)" + echo $G_NANO_VERSION + echo $version f_compare_version "$G_NANO_VERSION" "$version" return $? } f_test_shellcheck_version() { local version - version="$(nano --version | cut -d ' ' -f 8)" + version="$(shellcheck --version | cut -d ' ' -f 2 | head -n 2 | tail -n 1)" + echo $G_SHELLCHECK_VERSION + echo $version f_compare_version "$G_SHELLCHECK_VERSION" "$version" return $? } @@ -60,8 +64,8 @@ printf "=================\n" printf "TESTS\n" printf "=================\n" f_test_nano_version -printf "Nano Version ok? %s\n" "$?" +printf "Nano Version ok? %s (1 = ok)\n" "$?" f_test_shellcheck_version -printf "Shellcheck Version ok? %s\n" "$?" +printf "Shellcheck Version ok? %s (1 = ok)\n" "$?" # ....shellcheck -f diff *.sh | git apply | git commit -a -m "Shellcheck fast corrections" shellcheck -- *.sh From 7c7fe0928d8053426c08c9d1cc6f286fdd411cbd Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Fri, 27 Dec 2019 15:39:21 +0000 Subject: [PATCH 64/65] Better sed --- install.sh | 27 +++++++-------------------- tests.sh | 14 ++++++-------- 2 files changed, 13 insertions(+), 28 deletions(-) diff --git a/install.sh b/install.sh index 111e96f..8348fc6 100755 --- a/install.sh +++ b/install.sh @@ -34,8 +34,8 @@ G_DEPS="unzip sed" G_FILE="${HOME}/.nanorc" G_REPO_MASTER="https://github.com/scopatz/nanorc/archive/master.zip" G_REPO_RELEASE="https://github.com/scopatz/nanorc/archive/${G_VERSION}.zip" -G_NANO_VERSION="4.6.0" -G_NANO_NRC_DIR="" +# G_NANO_VERSION="4.6.0" +# G_NANO_NRC_DIR="" unset G_LITE G_UNSTABLE G_VERBOSE G_DIR G_THEME # Exit Values Help @@ -175,6 +175,9 @@ f_install(){ begin="# BEGIN" end="# END" theme="${G_DIR}/themes/${G_THEME}/" + # Sed rules : skip over the line "$begin" tag and before "$end" tag + sed_lite="$(printf "/%s/,/%s/{ /%s/n /%s/ !{ s/*// r '%s/config' r '%s' d }}" "$begin" "$end" "$begin" "$end" "$theme" "$(f_get_nanorc)")" + sed_no_lite="$(printf "/%s/,/%s/{ /%s/n /%s/ !{ s/*// r '%s/config' r 'include /nanorc/*' d }}" "$begin" "$end" "$begin" "$end" "$theme")" if cd "$HOME"; then printf "\n Error: Cannot open or access '%s' directory." "${HOME}" @@ -215,25 +218,9 @@ f_install(){ printf "\n %s \n %s \n" "$begin" "$end" >> "$G_FILE" if [ "$G_LITE" = true ]; then - sed -n -i.bkp '/'"$begin"'/,/'"$end"'/ { - /'"$begin"'/n # skip over the line that has "$begin" on it - /'"$end"'/ !{ # skip over the line that has "$end" on it - s/*// - r '"${theme}/config"' - r f_get_nanorc - d - } - }' "$G_FILE" + sed -n -i.bkp '$sed_lite' "$G_FILE" else - sed -n -i.bkp '/'"$begin"'/,/'"$end"'/ { - /'"$begin"'/n # skip over the line that has "$begin" on it - /'"$end"'/ !{ # skip over the line that has "$end" on it - s/*// - r '"${theme}/config"' - # TODO: add a line with only "include /nanorc/*" - d - } - }' "$G_FILE" + sed -n -i.bkp '$sed_no_lite' "$G_FILE" _update_nanorc fi } diff --git a/tests.sh b/tests.sh index 6c86f41..ddc8cac 100755 --- a/tests.sh +++ b/tests.sh @@ -42,30 +42,28 @@ f_compare_version(){ # Test Functions -f_test_nano_version() { +f_test_nano_version(){ local version version="$(nano --version | cut -d ' ' -f 5 | head -n 1)" - echo $G_NANO_VERSION - echo $version f_compare_version "$G_NANO_VERSION" "$version" return $? } -f_test_shellcheck_version() { +f_test_shellcheck_version(){ local version version="$(shellcheck --version | cut -d ' ' -f 2 | head -n 2 | tail -n 1)" - echo $G_SHELLCHECK_VERSION - echo $version f_compare_version "$G_SHELLCHECK_VERSION" "$version" return $? } +# MAIN TESTS + printf "=================\n" printf "TESTS\n" printf "=================\n" f_test_nano_version -printf "Nano Version ok? %s (1 = ok)\n" "$?" +printf "Nano Version ok? %s (0 = ok)\n" "$?" f_test_shellcheck_version -printf "Shellcheck Version ok? %s (1 = ok)\n" "$?" +printf "Shellcheck Version ok? %s (0 = ok)\n" "$?" # ....shellcheck -f diff *.sh | git apply | git commit -a -m "Shellcheck fast corrections" shellcheck -- *.sh From c50061ecbe54eca7ad59923fc99da423c92f0538 Mon Sep 17 00:00:00 2001 From: Tiago Almeida Date: Fri, 27 Dec 2019 15:43:00 +0000 Subject: [PATCH 65/65] Correct SC errors --- install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 8348fc6..278a1bb 100755 --- a/install.sh +++ b/install.sh @@ -218,9 +218,9 @@ f_install(){ printf "\n %s \n %s \n" "$begin" "$end" >> "$G_FILE" if [ "$G_LITE" = true ]; then - sed -n -i.bkp '$sed_lite' "$G_FILE" + sed -n -i.bkp "$sed_lite" "$G_FILE" else - sed -n -i.bkp '$sed_no_lite' "$G_FILE" + sed -n -i.bkp "$sed_no_lite" "$G_FILE" _update_nanorc fi }