diff --git a/common/nano/nanorc b/common/nano/nanorc new file mode 100644 index 0000000..a73f70d --- /dev/null +++ b/common/nano/nanorc @@ -0,0 +1,107 @@ +set constantshow +#set mouse +set minibar +set linenumbers +#set nohelp +set tabstospaces +set guidestripe 80 +set autoindent +set indicator +set tabsize 2 + +#colors +set minicolor lightcyan,lightblack +set scrollercolor white,black +set numbercolor lightblack,normal +set errorcolor red,black +set keycolor lightyellow,normal +set functioncolor normal,normal +set stripecolor yellow,black +set promptcolor green,black + +#binds +bind ^P linenumbers all +bind ^F tab all +bind ^G unindent all +bind Sh-M-F formatter all +bind Sh-M-D linter all +bind M-Z undo all +bind Sh-M-Z redo all +bind M-X cut all +bind M-C copy all +bind M-V paste all +bind M-. nextbuf all +bind M-, prevbuf all +bind M-D delete all +bind ^W savefile all +bind ^/ whereis all +bind M-/ wherewas all + +#syntax highlighting +include ~/.config/nano/syntax/awk.nanorc +include ~/.config/nano/syntax/c.nanorc +include ~/.config/nano/syntax/cmake.nanorc +include ~/.config/nano/syntax/colortest.nanorc +include ~/.config/nano/syntax/conf.nanorc +include ~/.config/nano/syntax/csharp.nanorc +include ~/.config/nano/syntax/css.nanorc +include ~/.config/nano/syntax/csv.nanorc +include ~/.config/nano/syntax/dot.nanorc +include ~/.config/nano/syntax/dotenv.nanorc +include ~/.config/nano/syntax/etc-hosts.nanorc +include ~/.config/nano/syntax/gemini.nanorc +include ~/.config/nano/syntax/git.nanorc +include ~/.config/nano/syntax/gitignore.nanorc +include ~/.config/nano/syntax/glsl.nanorc +include ~/.config/nano/syntax/go.nanorc +include ~/.config/nano/syntax/gophermap.nanorc +include ~/.config/nano/syntax/gradle.nanorc +include ~/.config/nano/syntax/html.nanorc +include ~/.config/nano/syntax/ini.nanorc +include ~/.config/nano/syntax/inputrc.nanorc +include ~/.config/nano/syntax/java.nanorc +include ~/.config/nano/syntax/javascript.nanorc +include ~/.config/nano/syntax/json.nanorc +include ~/.config/nano/syntax/kotlin.nanorc +include ~/.config/nano/syntax/lua.nanorc +include ~/.config/nano/syntax/m3u.nanorc +include ~/.config/nano/syntax/makefile.nanorc +include ~/.config/nano/syntax/man.nanorc +include ~/.config/nano/syntax/markdown.nanorc +include ~/.config/nano/syntax/nanorc.nanorc +include ~/.config/nano/syntax/nginx.nanorc +include ~/.config/nano/syntax/nmap.nanorc +include ~/.config/nano/syntax/patch.nanorc +include ~/.config/nano/syntax/pkg-config.nanorc +include ~/.config/nano/syntax/pkgbuild.nanorc +include ~/.config/nano/syntax/powershell.nanorc +include ~/.config/nano/syntax/properties.nanorc +include ~/.config/nano/syntax/puppet.nanorc +include ~/.config/nano/syntax/python.nanorc +include ~/.config/nano/syntax/rust.nanorc +include ~/.config/nano/syntax/sed.nanorc +include ~/.config/nano/syntax/sh.nanorc +include ~/.config/nano/syntax/sql.nanorc +include ~/.config/nano/syntax/systemd.nanorc +include ~/.config/nano/syntax/toml.nanorc +include ~/.config/nano/syntax/ts.nanorc +include ~/.config/nano/syntax/vi.nanorc +include ~/.config/nano/syntax/x11basic.nanorc +include ~/.config/nano/syntax/xml.nanorc +include ~/.config/nano/syntax/xresources.nanorc +include ~/.config/nano/syntax/yaml.nanorc +include ~/.config/nano/syntax/zig.nanorc +include ~/.config/nano/syntax/zsh.nanorc + +extendsyntax JavaScript formatter prettier-nano +extendsyntax JavaScript linter eslint -f unix +extendsyntax JSON formatter prettier-nano +extendsyntax CSS formatter prettier-nano + +extendsyntax nanorc color ,red "[[:space:]]+$" +extendsyntax SH color ,red "[[:space:]]+$" +extendsyntax JavaScript color ,red "[[:space:]]+$" +extendsyntax JSON color ,red "[[:space:]]+$" +extendsyntax CSS color ,red "[[:space:]]+$" +extendsyntax HTML color ,red "[[:space:]]+$" +extendsyntax Lua color ,red "[[:space:]]+$" diff --git a/common/nano/syntax/awk.nanorc b/common/nano/syntax/awk.nanorc new file mode 100644 index 0000000..501bc97 --- /dev/null +++ b/common/nano/syntax/awk.nanorc @@ -0,0 +1,27 @@ +syntax "AWK" "\.awk$" +header "^#!.*bin/(env +)?awk( |$)" +magic "awk script" +comment "#" + +color brightyellow "\$[A-Za-z0-9_!@#$*?-]+" +color brightyellow "\<(ARGC|ARGIND|ARGV|BINMODE|CONVFMT|ENVIRON|ERRNO|FIELDWIDTHS)\>" +color brightyellow "\<(FILENAME|FNR|FS|IGNORECASE|LINT|NF|NR|OFMT|OFS|ORS)\>" +color brightyellow "\<(PROCINFO|RS|RT|RSTART|RLENGTH|SUBSEP|TEXTDOMAIN)\>" +color brightblue "\<(function|extension|BEGIN|END)\>" +color red "[-+*/%^|!=&<>?;:]|\\|\[|\]" +color cyan "\<(for|if|while|do|else|in|delete|exit)\>" +color cyan "\<(break|continue|return)\>" +color brightblue "\<(close|getline|next|nextfile|print|printf|system|fflush)\>" +color brightblue "\<(atan2|cos|exp|int|log|rand|sin|sqrt|srand)\>" +color brightblue "\<(asort|asorti|gensub|gsub|index|length|match)\>" +color brightblue "\<(split|sprintf|strtonum|sub|substr|tolower|toupper)\>" +color brightblue "\<(mktime|strftime|systime)\>" +color brightblue "\<(and|compl|lshift|or|rshift|xor)\>" +color brightblue "\<(bindtextdomain|dcgettext|dcngettext)\>" +color magenta "/.*[^\]/" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color magenta "\\." +color brightblack "(^|[[:space:]])#([^{].*)?$" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" diff --git a/common/nano/syntax/c.nanorc b/common/nano/syntax/c.nanorc new file mode 100644 index 0000000..d05f482 --- /dev/null +++ b/common/nano/syntax/c.nanorc @@ -0,0 +1,52 @@ +## Here is an example for C/C++. +## +syntax "C" "\.(c(c|pp|xx)?|C)$" "\.(h(h|pp|xx)?|H)$" "\.ii?$" "\.(def)$" "\.ino" +magic "^(C|C\+\+) (source|program)" +comment "//" +color brightred "\<[A-Z_][0-9A-Z_]+\>" +color green "\<(float|double|bool|char|wchar_t|int|short|long|sizeof|enum|void|static|const|struct|union|typedef|extern|(un)?signed|inline)\>" +color green "\<((s?size)|(char(16|32))|((u_?)?int(_fast|_least)?(8|16|32|64))|u?int(max|ptr))_t\>" +color green "\<(class|namespace|template|public|protected|private|typename|this|friend|virtual|using|mutable|volatile|register|explicit)\>" +color green "\<(for|if|while|do|else|case|default|switch)\>" +color green "\<(try|throw|catch|operator|new|delete)\>" +color green "\<((const|dynamic|reinterpret|static)_cast)\>" +color green "\<(alignas|alignof|asm|auto|compl|concept|constexpr|decltype|export|noexcept|nullptr|requires|static_assert|thread_local|typeid|override|final)\>" +color green "\<(and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\>" +color brightmagenta "\<(goto|continue|break|return)\>" +color brightcyan "^[[:space:]]*#[[:space:]]*(define|include|(un|ifn?)def|endif|el(if|se)|if|warning|error)" +color brightmagenta "'([^'\]|(\\["'abfnrtv\\]))'" "'\\(([0-3]?[0-7]{1,2}))'" "'\\x[0-9A-Fa-f]{1,2}'" + +## +## GCC builtins +color green "__attribute__[[:space:]]*\(\([^)]*\)\)" "__(aligned|asm|builtin|hidden|inline|packed|restrict|section|typeof|weak)__" + +#Operator Color +color yellow "[.:;,+*|=!\%]" "<" ">" "/" "-" "&" + +#Parenthetical Color +color magenta "[(){}]" "\[" "\]" + + +## +## String highlighting. You will in general want your comments and +## strings to come last, because syntax highlighting rules will be +## applied in the order they are read in. +color cyan "<[^= ]*>" ""(\\.|[^"])*"" +## +## This string is VERY resource intensive! +#color cyan start=""(\\.|[^"])*\\[[:space:]]*$" end="^(\\.|[^"])*"" + +## printf-family format specifiers +color yellow "%(\#|(0-+))?(hh|h|l|ll|q|L|j|z|Z|t)?[A-Za-z]" "%%" + +## Comment highlighting +color brightblue "//.*" +color brightblue start="/\*" end="\*/" + +# Highlighting for documentation comments +color magenta "@param [a-zA-Z_][a-z0-9A-Z_]+" +color magenta "@return" +color magenta "@author.*" + +## Trailing whitespace +color ,green "[[:space:]]+$" diff --git a/common/nano/syntax/cmake.nanorc b/common/nano/syntax/cmake.nanorc new file mode 100644 index 0000000..728d14a --- /dev/null +++ b/common/nano/syntax/cmake.nanorc @@ -0,0 +1,26 @@ +## CMake syntax highlighter for GNU Nano +## +syntax "CMake" "(CMakeLists\.txt|\.cmake)$" +comment "#" + +icolor green "^[[:space:]]*[A-Z0-9_]+" +icolor brightyellow "^[[:space:]]*(include|include_directories|include_external_msproject)\>" + +icolor brightgreen "^[[:space:]]*\<((else|end)?if|else|(end)?while|(end)?foreach|break)\>" +color brightgreen "\<(COPY|NOT|COMMAND|PROPERTY|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)" + +#String Color +color cyan "['][^']*[^\\][']" "[']{3}.*[^\\][']{3}" +color cyan "["][^"]*[^\\]["]" "["]{3}.*[^\\]["]{3}" + +icolor brightred start="\$(\{|ENV\{)" end="\}" +color magenta "\<(APPLE|UNIX|WIN32|CYGWIN|BORLAND|MINGW|MSVC(_IDE|60|71|80|90)?)\>" + +icolor brightblue "^([[:space:]]*)?#.*" +icolor brightblue "[[:space:]]#.*" + +## Trailing whitespace +color ,green "[[:space:]]+$" diff --git a/common/nano/syntax/colortest.nanorc b/common/nano/syntax/colortest.nanorc new file mode 100644 index 0000000..f2b44f2 --- /dev/null +++ b/common/nano/syntax/colortest.nanorc @@ -0,0 +1,17 @@ +syntax "colorTest" "ColorTest$" + +color black "\" + +color red "\" +color green "\" +color yellow "\" +color blue "\" +color magenta "\" +color cyan "\" + +color brightred "\" +color brightgreen "\" +color brightyellow "\" +color brightblue "\" +color brightmagenta "\" +color brightcyan "\" diff --git a/common/nano/syntax/conf.nanorc b/common/nano/syntax/conf.nanorc new file mode 100644 index 0000000..cf9f58a --- /dev/null +++ b/common/nano/syntax/conf.nanorc @@ -0,0 +1,11 @@ +## Here is an example for nanorc files. +## +syntax "Conf" "\.c[o]?nf$" +## Possible errors and parameters +## Strings +icolor white ""(\\.|[^"])*"" +## Comments +icolor brightblue "^[[:space:]]*#.*$" +icolor cyan "^[[:space:]]*##.*$" +## Trailing spaces +color ,green "[[:space:]]+$" diff --git a/common/nano/syntax/csharp.nanorc b/common/nano/syntax/csharp.nanorc new file mode 100644 index 0000000..893bb37 --- /dev/null +++ b/common/nano/syntax/csharp.nanorc @@ -0,0 +1,26 @@ +syntax "C#" "\.cs$" + +# Class +color brightmagenta "class +[A-Za-z0-9]+ *((:) +[A-Za-z0-9.]+)?" + +# Annotation +color magenta "@[A-Za-z]+" + +color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[()]" +color green "\<(bool|byte|sbyte|char|decimal|double|float|IntPtr|int|uint|long|ulong|object|short|ushort|string|base|this|var|void)\>" +color cyan "\<(alias|as|case|catch|checked|default|do|dynamic|else|finally|fixed|for|foreach|goto|if|is|lock|new|null|return|switch|throw|try|unchecked|while)\>" +color cyan "\<(abstract|async|class|const|delegate|enum|event|explicit|extern|get|implicit|in|internal|interface|namespace|operator|out|override|params|partial|private|protected|public|readonly|ref|sealed|set|sizeof|stackalloc|static|struct|typeof|unsafe|using|value|virtual|volatile|yield)\>" +# LINQ-only keywords (ones that cannot be used outside of a LINQ query - lots others can) +color cyan "\<(from|where|select|group|info|orderby|join|let|in|on|equals|by|ascending|descending)\>" +color brightred "\<(break|continue)\>" +color brightcyan "\<(true|false)\>" +color red "[-+/*=<>?:!~%&|]" +color blue "\<([0-9._]+|0x[A-Fa-f0-9_]+|0b[0-1_]+)[FL]?\>" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color magenta "\\([btnfr]|'|\"|\\)" +color magenta "\\u[A-Fa-f0-9]{4}" +color brightblack "(^|[[:space:]])//.*" +color brightblack start="^\s*/\*" end="\*/" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" diff --git a/common/nano/syntax/css.nanorc b/common/nano/syntax/css.nanorc new file mode 100644 index 0000000..04d4a97 --- /dev/null +++ b/common/nano/syntax/css.nanorc @@ -0,0 +1,13 @@ +## Here is an example for css files. +## + +syntax "CSS" "\.(css|scss|less)$" +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 ";|:|\{|\}" + +## Trailing spaces +color ,green "[[:space:]]+$" diff --git a/common/nano/syntax/csv.nanorc b/common/nano/syntax/csv.nanorc new file mode 100644 index 0000000..14d7d9c --- /dev/null +++ b/common/nano/syntax/csv.nanorc @@ -0,0 +1,16 @@ +# Rainbow CSV highlighting rules (12 column coverage) +# Inspired by https://github.com/mechatroner/rainbow_csv +syntax "CSV" "\.csv$" + +color brightmagenta "^("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)|^([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?" +color brightcyan "^("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)|^([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?" +color brightblue "^("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)|^([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?" +color brightyellow "^("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)|^([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?" +color brightgreen "^("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)|^([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?" +color brightred "^("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)|^([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?([^,]*,?))?" +color cyan "^("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)|^([^,]*,)?([^,]*,)?([^,]*,)?([^,]*,)?([^,]*,)?([^,]*,)?" +color magenta "^("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)|^([^,]*,)?([^,]*,)?([^,]*,)?([^,]*,)?([^,]*,)?" +color blue "^("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)|^([^,]*,)?([^,]*,)?([^,]*,)?([^,]*,)?" +color yellow "^("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)|^([^,]*,)?([^,]*,)?([^,]*,)?" +color green "^("([^"]*"")*[^"]*",?)("([^"]*"")*[^"]*",?)|^([^,]*,)?([^,]*,)?" +color red "^("([^"]*"")*[^"]*",?)|^([^,]*,?))?" diff --git a/common/nano/syntax/dot.nanorc b/common/nano/syntax/dot.nanorc new file mode 100644 index 0000000..40d4d06 --- /dev/null +++ b/common/nano/syntax/dot.nanorc @@ -0,0 +1,8 @@ +syntax "DOT" "\.(dot|gv)$" + +color cyan "\<(digraph|edge|graph|node|subgraph)\>" +color magenta "\<(arrowhead|arrowsize|arrowtail|bgcolor|center|color|constraint|decorateP|dir|distortion|fillcolor|fontcolor|fontname|fontsize|headclip|headlabel|height|labelangle|labeldistance|labelfontcolor|labelfontname|labelfontsize|label|layers|layer|margin|mclimit|minlen|name|nodesep|nslimit|ordering|orientation|pagedir|page|peripheries|port_label_distance|rankdir|ranksep|rank|ratio|regular|rotate|samehead|sametail|shapefile|shape|sides|size|skew|style|tailclip|taillabel|URL|weight|width)\>" +color red "=|->|--" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color brightblack "(^|[[:space:]])//.*" +color brightblack start="^\s*/\*" end="\*/" diff --git a/common/nano/syntax/dotenv.nanorc b/common/nano/syntax/dotenv.nanorc new file mode 100644 index 0000000..3f21b9b --- /dev/null +++ b/common/nano/syntax/dotenv.nanorc @@ -0,0 +1,10 @@ +## Syntax highlight for .env files, eg. https://symfony.com/doc/current/components/dotenv.html +## +## Derived from sh.nanorc +## +syntax "dotenv" "\.env" "\.env\..+" + +color green "(\(|\)|\$|=)" +color brightyellow ""(\\.|[^"])*"" "'(\\.|[^'])*'" +color cyan "(^|[[:space:]])#.*$" +color ,green "[[:space:]]+$" diff --git a/common/nano/syntax/etc-hosts.nanorc b/common/nano/syntax/etc-hosts.nanorc new file mode 100644 index 0000000..a746dd6 --- /dev/null +++ b/common/nano/syntax/etc-hosts.nanorc @@ -0,0 +1,14 @@ +## Make /etc/hosts nicer to read, see `man hosts 5` to see the format +syntax "/etc/hosts" "^/etc/hosts$" + +# IPv4 +color yellow "^[0-9\.]+\s" + +# IPv6 +icolor green "^[0-9a-f:]+\s" + +# interpunction +color normal "[.:]" + +# comments +color brightblack "^#.*" diff --git a/common/nano/syntax/gemini.nanorc b/common/nano/syntax/gemini.nanorc new file mode 100644 index 0000000..ac8f9d4 --- /dev/null +++ b/common/nano/syntax/gemini.nanorc @@ -0,0 +1,21 @@ +## syntax highlighting for gemini:// markup language + +syntax gemini "\.(gemini|gmi)$" + +# Heading levels +color brightgreen "^#.*" +color brightcyan "^##.*" +color brightmagenta "^###.*" + +# Link Text +color brightred "^=>\s*\S+\s+.*" +# Link URL +color green "^=>\s*\S+" +# Link Prefix +color yellow "^=>" + +# Bullet Lists +color brightblue "^\*.*" + +# Monospaced Blocks +color white,black start="^```" end="^```" diff --git a/common/nano/syntax/git.nanorc b/common/nano/syntax/git.nanorc new file mode 100644 index 0000000..929cf79 --- /dev/null +++ b/common/nano/syntax/git.nanorc @@ -0,0 +1,80 @@ +syntax "git-config" "git(config|modules)$|\.git/config$" + +color brightcyan "\<(true|false)\>" +color cyan "^[[:space:]]*[^=]*=" +color brightmagenta "^[[:space:]]*\[.*\]$" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color brightblack "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red "^ +" + +# This code is free software; you can redistribute it and/or modify it under +# the terms of the new BSD License. +# +# Copyright (c) 2010, Sebastian Staudt + +# A nano configuration file to enable syntax highlighting of some Git specific +# files with the GNU nano text editor (http://www.nano-editor.org) +# +syntax "git-commit" "COMMIT_EDITMSG|TAG_EDITMSG" + +# Commit message +color yellow ".*" + +# Comments +color brightblack "^#.*" + +# Files changes +color white "#[[:space:]](deleted|modified|new file|renamed):[[:space:]].*" +color red "#[[:space:]]deleted:" +color green "#[[:space:]]modified:" +color brightgreen "#[[:space:]]new file:" +color brightblue "#[[:space:]]renamed:" + +# Untracked filenames +color black "^# [^/?*:;{}\\]+\.[^/?*:;{}\\]+$" + +color brightmagenta "^#[[:space:]]Changes.*[:]" +color brightred "^#[[:space:]]Your branch and '[^']+" +color brightblack "^#[[:space:]]Your branch and '" +color brightwhite "^#[[:space:]]On branch [^ ]+" +color brightblack "^#[[:space:]]On branch" + +# Recolor hash symbols + +# Recolor hash symbols +color brightblack "#" + +# Trailing spaces (+LINT is not ok, git uses tabs) +color ,green "[[:space:]]+$" + + +# This syntax format is used for interactive rebasing +syntax "git-rebase-todo" "git-rebase-todo" + +# Default +color yellow ".*" + +# Comments +color brightblack "^#.*" + +# Rebase commands +color green "^(e|edit) [0-9a-f]{7,40}" +color green "^# (e, edit)" +color brightgreen "^(f|fixup) [0-9a-f]{7,40}" +color brightgreen "^# (f, fixup)" +color brightwhite "^(p|pick) [0-9a-f]{7,40}" +color brightwhite "^# (p, pick)" +color blue "^(r|reword) [0-9a-f]{7,40}" +color blue "^# (r, reword)" +color brightred "^(s|squash) [0-9a-f]{7,40}" +color brightred "^# (s, squash)" +color yellow "^(x|exec) [^ ]+ [0-9a-f]{7,40}" +color yellow "^# (x, exec)" + +# Recolor hash symbols +color brightblack "#" + +# Commit IDs +color brightblue "[0-9a-f]{7,40}" + diff --git a/common/nano/syntax/gitignore.nanorc b/common/nano/syntax/gitignore.nanorc new file mode 100644 index 0000000..08b1e21 --- /dev/null +++ b/common/nano/syntax/gitignore.nanorc @@ -0,0 +1,3 @@ +syntax "gitignore" ".gitignore$" + +icolor brightblue "^[[:space:]]*#.*$" diff --git a/common/nano/syntax/glsl.nanorc b/common/nano/syntax/glsl.nanorc new file mode 100644 index 0000000..d098e29 --- /dev/null +++ b/common/nano/syntax/glsl.nanorc @@ -0,0 +1,15 @@ +syntax "GLSL" "\.(frag|vert|fp|vp|glsl)$" + +color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[()]" +color green "\<(void|bool|bvec2|bvec3|bvec4|int|ivec2|ivec3|ivec4|float|vec2|vec3|vec4|mat2|mat3|mat4|struct|sampler1D|sampler2D|sampler3D|samplerCUBE|sampler1DShadow|sampler2DShadow)\>" +color green "\" +color cyan "\<(const|attribute|varying|uniform|in|out|inout|if|else|return|discard|while|for|do)\>" +color brightred "\<(break|continue)\>" +color brightcyan "\<(true|false)\>" +color red "[-+/*=<>?:!~%&|^]" +color blue "\<([0-9]+|0x[0-9a-fA-F]*)\>" +color brightblack "(^|[[:space:]])//.*" +color brightblack start="^\s*/\*" end="\*/" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" diff --git a/common/nano/syntax/go.nanorc b/common/nano/syntax/go.nanorc new file mode 100644 index 0000000..acd32df --- /dev/null +++ b/common/nano/syntax/go.nanorc @@ -0,0 +1,23 @@ +syntax "GO" "\.go$" +comment "//" + +color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[()]" +color brightblue "\<(append|cap|close|complex|copy|delete|imag|len)\>" +color brightblue "\<(make|new|panic|print|println|protect|real|recover)\>" +color green "\<(u?int(8|16|32|64)?|float(32|64)|complex(64|128))\>" +color green "\<(uintptr|byte|rune|string|interface|bool|map|chan|error)\>" +color cyan "\<(package|import|const|var|type|struct|func|go|defer|nil|iota)\>" +color cyan "\<(for|range|if|else|case|default|switch|return)\>" +color brightred "\<(go|goto|break|continue)\>" +color brightcyan "\<(true|false)\>" +color red "[-+/*=<>!~%&|^]|:=" +color blue "\<([0-9]+|0x[0-9a-fA-F]*)\>|'.'" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color magenta "\\[abfnrtv'\"\\]" +color magenta "\\([0-7]{3}|x[A-Fa-f0-9]{2}|u[A-Fa-f0-9]{4}|U[A-Fa-f0-9]{8})" +color yellow "`[^`]*`" +color brightblack "(^|[[:space:]])//.*" +color brightblack start="^\s*/\*" end="\*/" +color brightwhite,cyan "TODO:?" +color ,green "[[:space:]]+$" +color ,red " + +| + +" diff --git a/common/nano/syntax/gophermap.nanorc b/common/nano/syntax/gophermap.nanorc new file mode 100644 index 0000000..7c868e2 --- /dev/null +++ b/common/nano/syntax/gophermap.nanorc @@ -0,0 +1,45 @@ +## syntax for gophernicus gophermaps + +syntax gophermap "\.(gophermap|gph)$" + + +# Port Numbers +color yellow "^.[ -~]*.[ -~]*.[ -~]*.[ -~]+" + +# Domains +color red "^.[ -~]*.[ -~]*.[ -~]+" + +# Resource Path (no directories) +color green "^[^1][ -~]*.[ -~]*" + +# Directories (w/ Name) +color brightmagenta "^1[ -~]*.[ -~]*" + +# Names +color brightblue "^[ -~]+." + +# Directories (w/o Name) +color brightyellow "^1[ -~]+.$" + +# URLs +color brightcyan "URL:.*" + + +# Types + +# General +color magenta "^." + +# HTML & Interactive Content +color brightcyan "^(h|7|8)" + +# Info Text +color cyan "^i.*" +color cyan "^[ -~]*$" +color blue "^i" + +# Special Tags & Characters +color brightgreen "^(!|-|:|~|%|=|\*|\.).*" + +# Comments +color white,blue "#.*" diff --git a/common/nano/syntax/gradle.nanorc b/common/nano/syntax/gradle.nanorc new file mode 100644 index 0000000..58d7376 --- /dev/null +++ b/common/nano/syntax/gradle.nanorc @@ -0,0 +1,23 @@ +syntax "groovy" "\.(groovy|gradle)$" + +# Keywords +color brightblue "\<(boolean|byte|char|double|enum|float|int|long|new|short|super|this|transient)\>" +color brightblue "\<(as|assert|break|case|catch|continue|default|do|else|finally|for|goto|if|in|return|switch|throw|try|while)\>" +color brightblue "\<(abstract|class|extends|implements|import|interface|native|package|private|protected|public|static|strictfp|synchronized|throws|trait|void|volatile)\>" +color brightblue "\<(const|def|final|instanceof)\>" +color brightblue "\<(true|false|null)\>" + +# Strings +color brightyellow ""(\\.|[^"])*"" "'(\\.|[^'])*'" + +# Interpolation +icolor yellow "\$\{[^\}]*}" + +# Comments +color cyan "^//.*" +color cyan "\s//.*" +color cyan start="^/\*(\*)?" end="\*/" +color cyan start="\s/\*(\*)?" end="\*/" + +# Trailing whitespace +color ,green "[[:space:]]+$" diff --git a/common/nano/syntax/html.nanorc b/common/nano/syntax/html.nanorc new file mode 100644 index 0000000..01bb24a --- /dev/null +++ b/common/nano/syntax/html.nanorc @@ -0,0 +1,41 @@ +## HTML syntax highlighting rules for Nano + +syntax "HTML" "\.html?(.j2)?(.twig)?$" +magic "HTML document" +comment "" + +## Emphasis tags +color brightwhite start="<([biu]|em|strong)[^>]*>" end="" + +## Tags +color cyan start="<" end=">" + +## Attributes +color brightblue "[[:space:]](abbr|accept(-charset)?|accesskey|action|[av]?link|alt|archive|axis|background|(bg)?color|border)=" +color brightblue "[[:space:]](cell(padding|spacing)|char(off|set)?|checked|cite|class(id)?|compact|code(base|tag)?|cols(pan)?)=" +color brightblue "[[:space:]](content(editable)?|contextmenu|coords|data|datetime|declare|defer|dir|enctype)=" +color brightblue "[[:space:]](for|frame(border)?|headers|height|hidden|href(lang)?|hspace|http-equiv|id|ismap)=" +color brightblue "[[:space:]](label|lang|longdesc|margin(height|width)|maxlength|media|method|multiple)=" +color brightblue "[[:space:]](name|nohref|noresize|noshade|object|on(click|focus|load|mouseover|keypress)|profile|readonly|rel|rev)=" +color brightblue "[[:space:]](rows(pan)?|rules|scheme|scope|scrolling|shape|size|span|src|standby|start|style|summary|pattern)=" +color brightblue "[[:space:]](tabindex|target|text|title|type|usemap|v?align|value(type)?|vspace|width|xmlns|xml:space)=" +color brightblue "[[:space:]](required|disabled|selected)[[:space:]=>]" + +## Strings +color yellow ""(\\.|[^"])*"" + +## Named character references and entities +color red "&#?[[:alnum:]]*;" + +## Template strings (not in the HTML spec, but very commonly used) +color magenta "\{[^\}]*\}\}?" +color brightgreen "[[:space:]]((end)?if|(end)?for|in|not|(end)?block)[[:space:]]" + +## Comments +color green start="" + +## Trailing spaces +color ,green "[[:space:]]+$" + +## Reminders +color brightwhite,yellow "(FIXME|TODO|XXX)" diff --git a/common/nano/syntax/ini.nanorc b/common/nano/syntax/ini.nanorc new file mode 100644 index 0000000..d89f729 --- /dev/null +++ b/common/nano/syntax/ini.nanorc @@ -0,0 +1,11 @@ +syntax "INI" "\.(ini|desktop|lfl|override|cfg)$" "(mimeapps\.list|pinforc|setup\.cfg)$" "weechat/.+\.conf$" +header "^\[[A-Za-z]+\]$" + +color brightcyan "\<(true|false)\>" +color cyan "^[[:space:]]*[^=]*=" +color brightmagenta "^[[:space:]]*\[.*\]$" +color red "[=;]" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color brightblue "(^|[[:space:]])(#([^{].*)?|;.*)$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" diff --git a/common/nano/syntax/inputrc.nanorc b/common/nano/syntax/inputrc.nanorc new file mode 100644 index 0000000..c2f6005 --- /dev/null +++ b/common/nano/syntax/inputrc.nanorc @@ -0,0 +1,10 @@ +syntax "Inputrc" "inputrc$" + +color red "\<(off|none)\>" +color green "\" +color brightblue "\" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color magenta "\\.?" +color brightblack "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" diff --git a/common/nano/syntax/java.nanorc b/common/nano/syntax/java.nanorc new file mode 100644 index 0000000..fe3f286 --- /dev/null +++ b/common/nano/syntax/java.nanorc @@ -0,0 +1,22 @@ +## 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|package|private|protected|public|static|strictfp|super|synchronized|throws|volatile)\>" +color red ""[^"]*"" +color yellow "\<(true|false|null)\>" +icolor yellow "\b(([1-9][0-9]+)|0+)\.[0-9]+\b" "\b[1-9][0-9]*\b" "\b0[0-7]*\b" "\b0x[1-9a-f][0-9a-f]*\b" +color blue "//.*" +color blue start="^\s*/\*" end="\*/" +color brightblue start="/\*\*" end="\*/" + +# Highlighting for javadoc stuff +color magenta "@param [a-zA-Z_][a-z0-9A-Z_]+" +color magenta "@return" +color magenta "@author.*" + +color ,green "[[:space:]]+$" diff --git a/common/nano/syntax/javascript.nanorc b/common/nano/syntax/javascript.nanorc new file mode 100644 index 0000000..2cdd4a2 --- /dev/null +++ b/common/nano/syntax/javascript.nanorc @@ -0,0 +1,25 @@ +syntax "JavaScript" "\.(js|ts)$" +comment "//" +color blue "\<[-+]?([1-9][0-9]*|0[0-7]*|0x[0-9a-fA-F]+)([uU][lL]?|[lL][uU]?)?\>" +color blue "\<[-+]?([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([EePp][+-]?[0-9]+)?[fFlL]?" +color blue "\<[-+]?([0-9]+[EePp][+-]?[0-9]+)[fFlL]?" +color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]|)" +color cyan "\<(break|case|catch|continue|default|delete|do|else|finally)\>" +color cyan "\<(for|function|get|if|in|instanceof|new|return|set|switch)\>" +color cyan "\<(switch|this|throw|try|typeof|var|void|while|with)\>" +color cyan "\<(null|undefined|NaN)\>" +color cyan "\<(import|as|from|export)\>" +color cyan "\<(const|let|class|extends|get|set|of|async|await|yield)\>" +color brightcyan "\<(true|false)\>" +color green "\<(Array|Boolean|Date|Enumerator|Error|Function|Math)\>" +color green "\<(Map|WeakMap|Set|WeakSet|Promise|Symbol)\>" +color green "\<(Number|Object|RegExp|String)\>" +color red "[-+/*=<>!~%?:&|]" +color magenta "/[^*]([^/]|(\\/))*[^\\]/[gim]*" +color magenta "\\[0-7][0-7]?[0-7]?|\\x[0-9a-fA-F]+|\\[bfnrt'"\?\\]" +color brightblack "//.*" +color brightblack "/\*.+\*/" +color brightwhite,cyan "TODO:?" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'|(`|\})(\\.|[^`$]|$[^{])*(\$\{|`)" +color ,green "[[:space:]]+$" +color ,red " + +| + +" diff --git a/common/nano/syntax/json.nanorc b/common/nano/syntax/json.nanorc new file mode 100644 index 0000000..1f79c18 --- /dev/null +++ b/common/nano/syntax/json.nanorc @@ -0,0 +1,13 @@ +syntax "JSON" "\.json$" +header "^\{$" +# You can't add a comment to JSON. +comment "" + +color blue "\<[-]?[1-9][0-9]*([Ee][+-]?[0-9]+)?\>" "\<[-]?[0](\.[0-9]+)?\>" +color cyan "\" +color brightcyan "\<(true|false)\>" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color brightyellow "\"(\\"|[^"])*\"[[:space:]]*:" "'(\'|[^'])*'[[:space:]]*:" +color magenta "\\u[0-9a-fA-F]{4}|\\[bfnrt'"/\\]" +color ,green "[[:space:]]+$" +color ,red " + +| + +" diff --git a/common/nano/syntax/kotlin.nanorc b/common/nano/syntax/kotlin.nanorc new file mode 100644 index 0000000..bde7592 --- /dev/null +++ b/common/nano/syntax/kotlin.nanorc @@ -0,0 +1,26 @@ +# Nano syntax file +# Language: Kotlin +# Maintainer: Bjarne Holen +# Edited by: Ritiek Malhotra +# Last Change: 2017 May 24 +# Copyright (c) 2014, Bjarne Holen + +syntax "kotlin" "\.kt$" "\.kts$" +color magenta "\b(([1-9][0-9]+)|0+)\.[0-9]+\b" "\b[1-9][0-9]*\b" "\b0[0-7]*\b" "\b0x[1-9a-f][0-9a-f]*\b" +color yellow "[.:;,+*|=!\%@]" "<" ">" "/" "-" "&" +color green "\<(namespace|as|type|class|this|super|val|var|fun|is|in|object|when|trait|import|where|by|get|set|abstract|enum|open|annotation|override|private|public|internal|protected|out|vararg|inline|final|package|lateinit|constructor|companion|const|suspend|sealed)\>" +color yellow "\<(true|false|null)\>" +color cyan "\<(break|catch|continue|do|else|finally|for|if|return|throw|try|while|repeat)\>" +color brightred "\<(inner|outer)\>" +## +## String highlighting. You will in general want your comments and +## strings to come last, because syntax highlighting rules will be +## applied in the order they are read in. +color brightblue "<[^= ]*>" ""(\\.|[^"])*"" + +## Comment highlighting +color red "^\s*//.*" +color red start="^\s*/\*" end="\*/" + +## Trailing whitespace +color ,green "[[:space:]]+$" diff --git a/common/nano/syntax/license b/common/nano/syntax/license new file mode 100644 index 0000000..f05e2ce --- /dev/null +++ b/common/nano/syntax/license @@ -0,0 +1,16 @@ + nano run control files + Copyright (C) 2022+ Galen Guyer + 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 . diff --git a/common/nano/syntax/lua.nanorc b/common/nano/syntax/lua.nanorc new file mode 100644 index 0000000..bec44ad --- /dev/null +++ b/common/nano/syntax/lua.nanorc @@ -0,0 +1,80 @@ +############################################################################## +# +# Lua syntax highlighting for Nano. +# +# Author: Matthew Wild +# License: GPL 2 or later +# +# Version: 2007-06-06 +# +# Notes: Originally based on Ruby syntax rc by Josef 'Jupp' Schugt +############################################################################## + + +# Automatically use for '.lua' files +syntax "Lua" ".*\.lua$" +magic "Lua script" +comment "--" + +linter luacheck --no-color + +# General +color brightwhite ".+" + +# Operators +color brightyellow ":|\*\*|\*|/|%|\+|-|\^|>|>=|<|<=|~=|=|\.\.|\<(not|and|or)\>" + +# Statements +color brightblue "\<(do|end|while|repeat|until|if|elseif|then|else|for|in|function|local|return)\>" + +# Keywords +color brightyellow "\<(debug|string|math|table|io|coroutine|os|utf8|bit32)\>\." +color brightyellow "\<(_ENV|_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 "io\.\<(close|flush|input|lines|open|output|popen|read|tmpfile|type|write)\>" +color brightyellow "math\.\<(abs|acos|asin|atan2|atan|ceil|cosh|cos|deg|exp|floor|fmod|frexp|huge|ldexp|log10|log|max|maxinteger|min|mininteger|modf|pi|pow|rad|random|randomseed|sinh|sqrt|tan|tointeger|type|ult)\>" +color brightyellow "os\.\<(clock|date|difftime|execute|exit|getenv|remove|rename|setlocale|time|tmpname)\>" +color brightyellow "package\.\<(config|cpath|loaded|loadlib|path|preload|seeall|searchers|searchpath)\>" +color brightyellow "string\.\<(byte|char|dump|find|format|gmatch|gsub|len|lower|match|pack|packsize|rep|reverse|sub|unpack|upper)\>" +color brightyellow "table\.\<(concat|insert|maxn|move|pack|remove|sort|unpack)\>" +color brightyellow "utf8\.\<(char|charpattern|codes|codepoint|len|offset)\>" +color brightyellow "coroutine\.\<(create|isyieldable|resume|running|status|wrap|yield)\>" +color brightyellow "debug\.\<(debug|getfenv|gethook|getinfo|getlocal|getmetatable|getregistry|getupvalue|getuservalue|setfenv|sethook|setlocal|setmetatable|setupvalue|setuservalue|traceback|upvalueid|upvaluejoin)\>" +color brightyellow "bit32\.\<(arshift|band|bnot|bor|btest|bxor|extract|replace|lrotate|lshift|rrotate|rshift)\>" + +# File handle methods +color brightyellow "\:\<(close|flush|lines|read|seek|setvbuf|write)\>" + +# false, nil, true +color brightmagenta "\<(false|nil|true)\>" + +# External files +color brightgreen "(\<(dofile|require|include)|%q|%!|%Q|%r|%x)\>" + +# Numbers +color red "\<([0-9]+)\>" + +# Symbols +color brightmagenta "(\(|\)|\[|\]|\{|\})" + +# Strings +color red "\"(\\.|[^\\\"])*\"|'(\\.|[^\\'])*'" + +# Multiline strings +color red start="\s*\[\[" end="\]\]" + +# Escapes +color red "\\[0-7][0-7][0-7]|\\x[0-9a-fA-F][0-9a-fA-F]|\\[abefnrs]|(\\c|\\C-|\\M-|\\M-\\C-)." + +# Shebang +color brightcyan "^#!.*" + +# Simple comments +color green "\-\-.*$" + +# Multiline comments +color green start="\s*\-\-\s*\[\[" end="\]\]" + +# Trailing whitespaces +color ,green "[[:space:]]+$" diff --git a/common/nano/syntax/m3u.nanorc b/common/nano/syntax/m3u.nanorc new file mode 100644 index 0000000..3e237e3 --- /dev/null +++ b/common/nano/syntax/m3u.nanorc @@ -0,0 +1,22 @@ +syntax "m3u" "\.(m3u|m3u8)$" + +# Header text +color brightcyan "^#EXTINF.*,[^,]*$" + +# Header property values +color brightyellow "^#[^:]*:[^ ,]*" +color brightyellow "=[^ ,]*" +color brightyellow "=[\"][^\"]*[\"]" + +# Header property keys +color brightgreen "[a-zA-Z-]*=" + +# Headers +color brightred "^#EXT[-A-Z]*:" +color brightmagenta "^#EXTM3U" + +# Separators +color normal "[,=]" + +# URLs +color normal "^[^#].*" diff --git a/common/nano/syntax/makefile.nanorc b/common/nano/syntax/makefile.nanorc new file mode 100644 index 0000000..5bda434 --- /dev/null +++ b/common/nano/syntax/makefile.nanorc @@ -0,0 +1,25 @@ +syntax "Makefile" "([Mm]akefile|\.ma?k)$" +header "^#!.*/(env +)?[bg]?make( |$)" +magic "makefile script" +comment "#" + +color cyan "\<(ifeq|ifdef|ifneq|ifndef|else|endif)\>" +color cyan "^(export|include|override)\>" +color brightmagenta "^[^:= ]+:" +color brightmagenta "^[^:+ ]+\+" +color red "[=,%]" "\+=|\?=|:=|&&|\|\|" +color brightblue "\$\((abspath|addprefix|addsuffix|and|basename|call|dir)[[:space:]]" +color brightblue "\$\((error|eval|filter|filter-out|findstring|firstword)[[:space:]]" +color brightblue "\$\((flavor|foreach|if|info|join|lastword|notdir|or)[[:space:]]" +color brightblue "\$\((origin|patsubst|realpath|shell|sort|strip|suffix)[[:space:]]" +color brightblue "\$\((value|warning|wildcard|word|wordlist|words)[[:space:]]" +color black "[()$]" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color brightyellow "\$+(\{[^} ]+\}|\([^) ]+\))" +color brightyellow "\$[@^<*?%|+]|\$\([@^<*?%+-][DF]\)" +color magenta "\$\$|\\.?" +color brightblack "(^|[[:space:]])#([^{].*)?$" +color brightblack "^ @#.*" + +# Show trailing whitespace +color ,green "[[:space:]]+$" diff --git a/common/nano/syntax/man.nanorc b/common/nano/syntax/man.nanorc new file mode 100644 index 0000000..5239bea --- /dev/null +++ b/common/nano/syntax/man.nanorc @@ -0,0 +1,12 @@ +## Here is an example for manpages. +## +syntax "Man" "\.[1-9]x?$" +magic "troff or preprocessor input" +comment ".\"" + +color green "\.(S|T)H.*$" +color brightgreen "\.(S|T)H" "\.TP" +color brightred "\.(BR?|I[PR]?).*$" +color brightblue "\.(BR?|I[PR]?|PP)" +color brightwhite "\\f[BIPR]" +color yellow "\.(br|DS|RS|RE|PD)" diff --git a/common/nano/syntax/markdown.nanorc b/common/nano/syntax/markdown.nanorc new file mode 100644 index 0000000..f5d2954 --- /dev/null +++ b/common/nano/syntax/markdown.nanorc @@ -0,0 +1,51 @@ +syntax "Markdown" "\.(md|mkd|mkdn|markdown|mdx|mdown)$" + +# Tables (Github extension) +color cyan ".*[ :]\|[ :].*" + +# quotes +color brightblack start="^>" end="^$" +color brightblack "^>.*" + +# Emphasis +color green "(^|[[:space:]])(_[^ ][^_]*_|\*[^ ][^*]*\*)" + +# Strong emphasis +color brightgreen "(^|[[:space:]])(__[^ ][^_]*__|\*\*[^ ][^*]*\*\*)" + +# strike-through +color red "(^|[[:space:]])~~[^ ][^~]*~~" + +# horizontal rules +color brightmagenta "^(---+|===+|___+|\*\*\*+)\s*$" + +# headlines +color brightwhite "^#{1,6} .*" + +# lists +color brightblue "^[[:space:]]*[\*+-] |^[[:space:]]*[0-9]+\. " + +# leading whitespace +color black "^[[:space:]]+" + +# misc +color magenta "\(([CcRr]|[Tt][Mm])\)" "\.{3}" "(^|[[:space:]])\-\-($|[[:space:]])" + +# links +color brightblue "\[[^]]+\]" +color brightblue "\[([^][]|\[[^]]*\])*\]\([^)]+\)" + +# images +color magenta "!\[[^][]*\](\([^)]+\)|\[[^]]+\])" + +# urls +color brightyellow "https?://[^ )>]+" + +# code +color yellow "`[^`]*`|^ {4}[^-+*].*" +# code blocks +color yellow start="^```[^$]" end="^```$" +color yellow "^```$" + +## Trailing spaces +color ,green "[[:space:]]+$" diff --git a/common/nano/syntax/nanorc.nanorc b/common/nano/syntax/nanorc.nanorc new file mode 100644 index 0000000..50976cd --- /dev/null +++ b/common/nano/syntax/nanorc.nanorc @@ -0,0 +1,50 @@ +## Syntax highlighting for nanorc files. + +syntax nanorc "[/.]nanorc(\.in)?$" +comment "#" + +# Everything that does not get recolored is invalid +color brightred ".*" + +# Color names +color yellow "^[[:blank:]]*(i?color|set[[:blank:]]+((error|function|key|mini|number|prompt|scroller|selected|spotlight|status|stripe|title)color))[[:blank:]]+(bold,)?(italic,)?(((bright|light)?(white|black|red|blue|green|yellow|magenta|cyan))|normal|pink|purple|mauve|lagoon|mint|lime|peach|orange|latte|rosy|beet|plum|sea|sky|slate|teal|sage|brown|ocher|sand|tawny|brick|crimson|grey|gray|#[[:xdigit:]]{3})?(,(((light)?(white|black|red|blue|green|yellow|magenta|cyan))|normal|pink|purple|mauve|lagoon|mint|lime|peach|orange|latte|rosy|beet|plum|sea|sky|slate|teal|sage|brown|ocher|sand|tawny|brick|crimson|grey|gray|#[[:xdigit:]]{3}))?\>" + +# The arguments of two special commands +color brightmagenta "^[[:blank:]]*include[[:blank:]][^"]*([[:blank:]]|$)" +color brightgreen "^[[:blank:]]*extendsyntax[[:blank:]]+[[:alpha:]]+[[:blank:]]+(i?color|header|magic|comment|formatter|linter|tabgives)[[:blank:]]+.*" + +# The arguments of commands +color brightgreen "^[[:blank:]]*(set|unset)[[:blank:]]+(afterends|allow_insecure_backup|atblanks|autoindent|backup|boldtext|bookstyle|breaklonglines|casesensitive|constantshow|cutfromcursor|emptyline|historylog|indicator|jumpyscrolling|linenumbers|locking|magic|minibar|mouse|multibuffer|noconvert|nohelp|nonewlines|positionlog|preserve|quickblank|rawsequences|rebinddelete|regexp|saveonexit|showcursor|smarthome|softwrap|stateflags|tabstospaces|trimblanks|unix|wordbounds|zap|zero)\>" +color brightgreen "^[[:blank:]]*set[[:blank:]]+(backupdir|brackets|errorcolor|functioncolor|keycolor|matchbrackets|minicolor|numbercolor|operatingdir|promptcolor|punct|quotestr|scrollercolor|selectedcolor|speller|spotlightcolor|statuscolor|stripecolor|titlecolor|whitespace|wordchars)[[:blank:]]+" +color brightgreen "^[[:blank:]]*set[[:blank:]]+(fill[[:blank:]]+-?[[:digit:]]+|(guidestripe|tabsize)[[:blank:]]+[1-9][0-9]*)\>" +color brightgreen "^[[:blank:]]*bind[[:blank:]]+((\^([A-Za-z]|[]/@\^_`-]|Space)|([Ss][Hh]-)?[Mm]-[A-Za-z]|[Mm]-([][!"#$%&'()*+,./0-9:;<=>?@\^_`{|}~-]|Space))|F([1-9]|1[0-9]|2[0-4])|Ins|Del)[[:blank:]]+([a-z]+|".*")[[:blank:]]+(main|help|search|replace(with)?|yesno|gotoline|writeout|insert|execute|browser|whereisfile|gotodir|spell|linter|all)\>" +color brightgreen "^[[:blank:]]*unbind[[:blank:]]+((\^([A-Za-z]|[]/@\^_`-]|Space)|([Ss][Hh]-)?[Mm]-[A-Za-z]|[Mm]-([][!"#$%&'()*+,./0-9:;<=>?@\^_`{|}~-]|Space))|F([1-9]|1[0-9]|2[0-4])|Ins|Del)[[:blank:]]+(main|help|search|replace(with)?|yesno|gotoline|writeout|insert|execute|browser|whereisfile|gotodir|spell|linter|all)\>" +color brightgreen "^[[:blank:]]*extendsyntax[[:blank:]]+[[:alpha:]]+[[:blank:]]+" +color brightgreen "^[[:blank:]]*(syntax[[:blank:]]+[^[:space:]]+|(formatter|linter)[[:blank:]]+.+)" + +# Strings +color brightmagenta "[[:blank:]](start=)?".+"" + +# Function names in string binds +color crimson "\{(help|cancel|exit|savefile|writeout|discardbuffer|insert|where(is|was)|find(previous|next|bracket)|replace)\}" +color crimson "\{(cut|copy|paste|zap|chopword(left|right)|cutrestoffile|execute|mark|speller|linter|formatter|(full)?justify)\}" +color crimson "\{(location|gotoline|(begin|end)para|comment|complete|(un)?indent|wordcount|(record|run)macro|anchor|undo|redo)\}" +color crimson "\{(left|right|up|down|home|end|(scroll|page)(up|down)|center|(prev|next)(word|block|anchor|buf))\}" +color crimson "\{(tab|enter|delete|backspace|verbatim|refresh|suspend|casesens|regexp|backwards|older|newer|(dos|mac)format)\}" +color crimson "\{(append|prepend|backup|flip(goto|replace|execute|pipe|convert|newbuffer)|browser|gotodir|(first|last)(file|line))\}" +color crimson "\{(nohelp|constantshow|softwrap|linenumbers|whitespacedisplay|nosyntax|zero)\}" +color crimson "\{(smarthome|autoindent|cutfromcursor|breaklonglines|tabstospaces|mouse|\{)\}" + +# Commands +color green "^[[:blank:]]*((un)?(bind|set)|include|syntax|header|magic|comment|formatter|linter|tabgives|extendsyntax)\>" +color magenta "^[[:blank:]]*i?color\>|[[:blank:]](start=|end=)" + +# Control codes +color bold,pink "[[:cntrl:]]" + +# Comments +color brightblue "^[[:blank:]]*#.*|[[:blank:]]#.{0,2}[^[:xdigit:]].*" +color cyan "^[[:blank:]]*##.*" + +# Trailing whitespace +color ,green "[[:space:]]+$" diff --git a/common/nano/syntax/nginx.nanorc b/common/nano/syntax/nginx.nanorc new file mode 100644 index 0000000..164b7e4 --- /dev/null +++ b/common/nano/syntax/nginx.nanorc @@ -0,0 +1,13 @@ +syntax "Nginx" "nginx.*\.conf$" "\.nginx$" ".*\/sites\-available\/.*$" ".*\/sites\-enabled\/.*$" +header "^(server|upstream)[^{]*\{$" + +color brightmagenta "\<(events|server|http|location|upstream)[[:space:]]*\{" +color cyan "(^|[[:space:]{;])(absolute_redirect|accept_mutex|accept_mutex_delay|access_log|add_after_body|add_before_body|add_header|add_trailer|addition_types|aio|aio_write|alias|allow|ancient_browser|ancient_browser_value|auth_basic|auth_basic_user_file|auth_delay|auth_http|auth_http_header|auth_http_pass_client_cert|auth_http_timeout|auth_jwt|auth_jwt_claim_set|auth_jwt_header_set|auth_jwt_key_file|auth_jwt_key_request|auth_jwt_leeway|auth_jwt_type|auth_request|auth_request_set|autoindex|autoindex_exact_size|autoindex_format|autoindex_localtime|break|charset|charset_map|charset_types|chunked_transfer_encoding|client_body_buffer_size|client_body_in_file_only|client_body_in_single_buffer|client_body_temp_path|client_body_timeout|client_header_buffer_size|client_header_timeout|client_max_body_size|connection_pool_size|create_full_put_path|daemon|dav_access|dav_methods|debug_connection|debug_points|default_type|deny|directio|directio_alignment|disable_symlinks|empty_gif|env|error_log|error_page|etag|events|expires|f4f|f4f_buffer_size|fastcgi_bind|fastcgi_buffer_size|fastcgi_buffering|fastcgi_buffers|fastcgi_busy_buffers_size|fastcgi_cache|fastcgi_cache_background_update|fastcgi_cache_bypass|fastcgi_cache_key|fastcgi_cache_lock|fastcgi_cache_lock_age|fastcgi_cache_lock_timeout|fastcgi_cache_max_range_offset|fastcgi_cache_methods|fastcgi_cache_min_uses|fastcgi_cache_path|fastcgi_cache_purge|fastcgi_cache_revalidate|fastcgi_cache_use_stale|fastcgi_cache_valid|fastcgi_catch_stderr|fastcgi_connect_timeout|fastcgi_force_ranges|fastcgi_hide_header|fastcgi_ignore_client_abort|fastcgi_ignore_headers|fastcgi_index|fastcgi_intercept_errors|fastcgi_keep_conn|fastcgi_limit_rate|fastcgi_max_temp_file_size|fastcgi_next_upstream|fastcgi_next_upstream_timeout|fastcgi_next_upstream_tries|fastcgi_no_cache|fastcgi_param|fastcgi_pass|fastcgi_pass_header|fastcgi_pass_request_body|fastcgi_pass_request_headers|fastcgi_read_timeout|fastcgi_request_buffering|fastcgi_send_lowat|fastcgi_send_timeout|fastcgi_socket_keepalive|fastcgi_split_path_info|fastcgi_store|fastcgi_store_access|fastcgi_temp_file_write_size|fastcgi_temp_path|flv|geo|geoip_city|geoip_country|geoip_org|geoip_proxy|geoip_proxy_recursive|google_perftools_profiles|grpc_bind|grpc_buffer_size|grpc_connect_timeout|grpc_hide_header|grpc_ignore_headers|grpc_intercept_errors|grpc_next_upstream|grpc_next_upstream_timeout|grpc_next_upstream_tries|grpc_pass|grpc_pass_header|grpc_read_timeout|grpc_send_timeout|grpc_set_header|grpc_socket_keepalive|grpc_ssl_certificate|grpc_ssl_certificate_key|grpc_ssl_ciphers|grpc_ssl_conf_command|grpc_ssl_crl|grpc_ssl_name|grpc_ssl_password_file|grpc_ssl_protocols|grpc_ssl_server_name|grpc_ssl_session_reuse|grpc_ssl_trusted_certificate|grpc_ssl_verify|grpc_ssl_verify_depth|gunzip|gunzip_buffers|gzip|gzip_buffers|gzip_comp_level|gzip_disable|gzip_http_version|gzip_min_length|gzip_proxied|gzip_static|gzip_types|gzip_vary|hash|health_check|health_check_timeout|hls|hls_buffers|hls_forward_args|hls_fragment|hls_mp4_buffer_size|hls_mp4_max_buffer_size|http|http2_body_preread_size|http2_chunk_size|http2_idle_timeout|http2_max_concurrent_pushes|http2_max_concurrent_streams|http2_max_field_size|http2_max_header_size|http2_max_requests|http2_push|http2_push_preload|http2_recv_buffer_size|http2_recv_timeout|if|if_modified_since|ignore_invalid_headers|image_filter|image_filter_buffer|image_filter_interlace|image_filter_jpeg_quality|image_filter_sharpen|image_filter_transparency|image_filter_webp_quality|imap_auth|imap_capabilities|imap_client_buffer|include|index|internal|ip_hash|js_access|js_body_filter|js_content|js_filter|js_header_filter|js_import|js_include|js_path|js_preread|js_set|js_var|keepalive|keepalive_disable|keepalive_requests|keepalive_time|keepalive_timeout|large_client_header_buffers|least_conn|least_time|limit_conn|limit_conn_dry_run|limit_conn_log_level|limit_conn_status|limit_conn_zone|limit_except|limit_rate|limit_rate_after|limit_req|limit_req_dry_run|limit_req_log_level|limit_req_status|limit_req_zone|limit_zone|lingering_close|lingering_time|lingering_timeout|listen|load_module|location|lock_file|log_format|log_not_found|log_subrequest|mail|map|map_hash_bucket_size|map_hash_max_size|master_process|match|max_errors|max_ranges|memcached_bind|memcached_buffer_size|memcached_connect_timeout|memcached_force_ranges|memcached_gzip_flag|memcached_next_upstream|memcached_next_upstream_timeout|memcached_next_upstream_tries|memcached_pass|memcached_read_timeout|memcached_send_timeout|memcached_socket_keepalive|merge_slashes|min_delete_depth|mirror|mirror_request_body|modern_browser|modern_browser_value|mp4|mp4_buffer_size|mp4_limit_rate|mp4_limit_rate_after|mp4_max_buffer_size|msie_padding|msie_refresh|multi_accept|ntlm|open_file_cache|open_file_cache_errors|open_file_cache_min_uses|open_file_cache_valid|open_log_file_cache|output_buffers|override_charset|pcre_jit|perl|perl_modules|perl_require|perl_set|pid|pop3_auth|pop3_capabilities|port_in_redirect|postpone_output|preread_buffer_size|preread_timeout|protocol|proxy_bind|proxy_buffer|proxy_buffer_size|proxy_buffering|proxy_buffers|proxy_busy_buffers_size|proxy_cache|proxy_cache_background_update|proxy_cache_bypass|proxy_cache_convert_head|proxy_cache_key|proxy_cache_lock|proxy_cache_lock_age|proxy_cache_lock_timeout|proxy_cache_max_range_offset|proxy_cache_methods|proxy_cache_min_uses|proxy_cache_path|proxy_cache_purge|proxy_cache_revalidate|proxy_cache_use_stale|proxy_cache_valid|proxy_connect_timeout|proxy_cookie_domain|proxy_cookie_flags|proxy_cookie_path|proxy_download_rate|proxy_force_ranges|proxy_headers_hash_bucket_size|proxy_headers_hash_max_size|proxy_hide_header|proxy_http_version|proxy_ignore_client_abort|proxy_ignore_headers|proxy_intercept_errors|proxy_limit_rate|proxy_max_temp_file_size|proxy_method|proxy_next_upstream|proxy_next_upstream_timeout|proxy_next_upstream_tries|proxy_no_cache|proxy_pass|proxy_pass_error_message|proxy_pass_header|proxy_pass_request_body|proxy_pass_request_headers|proxy_protocol|proxy_protocol_timeout|proxy_read_timeout|proxy_redirect|proxy_request_buffering|proxy_requests|proxy_responses|proxy_send_lowat|proxy_send_timeout|proxy_session_drop|proxy_set_body|proxy_set_header|proxy_smtp_auth|proxy_socket_keepalive|proxy_ssl|proxy_ssl_certificate|proxy_ssl_certificate_key|proxy_ssl_ciphers|proxy_ssl_conf_command|proxy_ssl_crl|proxy_ssl_name|proxy_ssl_password_file|proxy_ssl_protocols|proxy_ssl_server_name|proxy_ssl_session_reuse|proxy_ssl_trusted_certificate|proxy_ssl_verify|proxy_ssl_verify_depth|proxy_store|proxy_store_access|proxy_temp_file_write_size|proxy_temp_path|proxy_timeout|proxy_upload_rate|queue|random|random_index|read_ahead|real_ip_header|real_ip_recursive|recursive_error_pages|referer_hash_bucket_size|referer_hash_max_size|request_pool_size|reset_timedout_connection|resolver|resolver_timeout|return|rewrite|rewrite_log|root|satisfy|scgi_bind|scgi_buffer_size|scgi_buffering|scgi_buffers|scgi_busy_buffers_size|scgi_cache|scgi_cache_background_update|scgi_cache_bypass|scgi_cache_key|scgi_cache_lock|scgi_cache_lock_age|scgi_cache_lock_timeout|scgi_cache_max_range_offset|scgi_cache_methods|scgi_cache_min_uses|scgi_cache_path|scgi_cache_purge|scgi_cache_revalidate|scgi_cache_use_stale|scgi_cache_valid|scgi_connect_timeout|scgi_force_ranges|scgi_hide_header|scgi_ignore_client_abort|scgi_ignore_headers|scgi_intercept_errors|scgi_limit_rate|scgi_max_temp_file_size|scgi_next_upstream|scgi_next_upstream_timeout|scgi_next_upstream_tries|scgi_no_cache|scgi_param|scgi_pass|scgi_pass_header|scgi_pass_request_body|scgi_pass_request_headers|scgi_read_timeout|scgi_request_buffering|scgi_send_timeout|scgi_socket_keepalive|scgi_store|scgi_store_access|scgi_temp_file_write_size|scgi_temp_path|secure_link|secure_link_md5|secure_link_secret|send_lowat|send_timeout|sendfile|sendfile_max_chunk|server|server_name|server_name_in_redirect|server_names_hash_bucket_size|server_names_hash_max_size|server_tokens|set|set_real_ip_from|slice|smtp_auth|smtp_capabilities|smtp_client_buffer|smtp_greeting_delay|source_charset|spdy_chunk_size|spdy_headers_comp|split_clients|ssi|ssi_last_modified|ssi_min_file_chunk|ssi_silent_errors|ssi_types|ssi_value_length|ssl|ssl_buffer_size|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_client_certificate|ssl_conf_command|ssl_crl|ssl_dhparam|ssl_early_data|ssl_ecdh_curve|ssl_engine|ssl_handshake_timeout|ssl_ocsp|ssl_ocsp_cache|ssl_ocsp_responder|ssl_password_file|ssl_prefer_server_ciphers|ssl_preread|ssl_protocols|ssl_reject_handshake|ssl_session_cache|ssl_session_ticket_key|ssl_session_tickets|ssl_session_timeout|ssl_stapling|ssl_stapling_file|ssl_stapling_responder|ssl_stapling_verify|ssl_trusted_certificate|ssl_verify_client|ssl_verify_depth|starttls|state|status|status_format|status_zone|sticky|sticky_cookie_insert|stream|stub_status|sub_filter|sub_filter_last_modified|sub_filter_once|sub_filter_types|subrequest_output_buffer_size|tcp_nodelay|tcp_nopush|thread_pool|timeout|timer_resolution|try_files|types|types_hash_bucket_size|types_hash_max_size|underscores_in_headers|uninitialized_variable_warn|upstream|upstream_conf|use|user|userid|userid_domain|userid_expires|userid_flags|userid_mark|userid_name|userid_p3p|userid_path|userid_service|uwsgi_bind|uwsgi_buffer_size|uwsgi_buffering|uwsgi_buffers|uwsgi_busy_buffers_size|uwsgi_cache|uwsgi_cache_background_update|uwsgi_cache_bypass|uwsgi_cache_key|uwsgi_cache_lock|uwsgi_cache_lock_age|uwsgi_cache_lock_timeout|uwsgi_cache_max_range_offset|uwsgi_cache_methods|uwsgi_cache_min_uses|uwsgi_cache_path|uwsgi_cache_purge|uwsgi_cache_revalidate|uwsgi_cache_use_stale|uwsgi_cache_valid|uwsgi_connect_timeout|uwsgi_force_ranges|uwsgi_hide_header|uwsgi_ignore_client_abort|uwsgi_ignore_headers|uwsgi_intercept_errors|uwsgi_limit_rate|uwsgi_max_temp_file_size|uwsgi_modifier1|uwsgi_modifier2|uwsgi_next_upstream|uwsgi_next_upstream_timeout|uwsgi_next_upstream_tries|uwsgi_no_cache|uwsgi_param|uwsgi_pass|uwsgi_pass_header|uwsgi_pass_request_body|uwsgi_pass_request_headers|uwsgi_read_timeout|uwsgi_request_buffering|uwsgi_send_timeout|uwsgi_socket_keepalive|uwsgi_ssl_certificate|uwsgi_ssl_certificate_key|uwsgi_ssl_ciphers|uwsgi_ssl_conf_command|uwsgi_ssl_crl|uwsgi_ssl_name|uwsgi_ssl_password_file|uwsgi_ssl_protocols|uwsgi_ssl_server_name|uwsgi_ssl_session_reuse|uwsgi_ssl_trusted_certificate|uwsgi_ssl_verify|uwsgi_ssl_verify_depth|uwsgi_store|uwsgi_store_access|uwsgi_temp_file_write_size|uwsgi_temp_path|valid_referers|variables_hash_bucket_size|variables_hash_max_size|worker_aio_requests|worker_connections|worker_cpu_affinity|worker_priority|worker_processes|worker_rlimit_core|worker_rlimit_nofile|worker_shutdown_timeout|working_directory|xclient|xml_entities|xslt_last_modified|xslt_param|xslt_string_param|xslt_stylesheet|xslt_types|zone)([[:space:]]|$)" +color brightcyan "\<(on|off)\>" +color brightyellow "\$[A-Za-z][A-Za-z0-9_]*" +color red "[*]" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color yellow start="'$" end="';$" +color brightblue "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" diff --git a/common/nano/syntax/nmap.nanorc b/common/nano/syntax/nmap.nanorc new file mode 100644 index 0000000..c573f42 --- /dev/null +++ b/common/nano/syntax/nmap.nanorc @@ -0,0 +1,18 @@ +syntax "NMAP" "\.nmap$" + +color yellow "^Nmap scan report for.*" +color brightwhite "^Not shown.*" +color brightwhite "^Host is up.*" +color brightwhite "^All.*" + +color yellow "^[0-9]+/(tcp|udp).*$" +color cyan "^[0-9]+/(tcp|udp)" + +color brightgreen "(Host is )?(open|up)" +color white "\(([0-9]+\.[0-9]+s latency)\)\." +color brightyellow "filtered" +color brightred "(Host is )?(All .* scanned ports on .*)?(^Not shown: [0-9]+ )?(closed|down)( ports)?" + +color magenta "^PORT *STATE *SERVICE" + +color brightblue "^#.*" \ No newline at end of file diff --git a/common/nano/syntax/patch.nanorc b/common/nano/syntax/patch.nanorc new file mode 100644 index 0000000..bd282b7 --- /dev/null +++ b/common/nano/syntax/patch.nanorc @@ -0,0 +1,14 @@ +## Here is an example for patch files. +## +syntax "Patch" "\.(patch|diff)$" +magic "diff output" +# You can't add comments in patch files. +comment "" + +color brightgreen "^\+.*" +color green "^\+\+\+.*" +color brightblue "^ .*" +color brightred "^-.*" +color red "^---.*" +color brightyellow "^@@.*" +color magenta "^diff.*" diff --git a/common/nano/syntax/pkg-config.nanorc b/common/nano/syntax/pkg-config.nanorc new file mode 100644 index 0000000..4c83ce8 --- /dev/null +++ b/common/nano/syntax/pkg-config.nanorc @@ -0,0 +1,8 @@ +syntax "PC" "\.pc$" + +color cyan "^(Name|Description|URL|Version|Conflicts|Cflags):" +color cyan "^(Requires|Libs)(\.private)?:" +color red "=" +color brightyellow "\$\{[A-Za-z_][A-Za-z0-9_]*\}" +color ,green "[[:space:]]+$" +color ,red " + +| + +" diff --git a/common/nano/syntax/pkgbuild.nanorc b/common/nano/syntax/pkgbuild.nanorc new file mode 100644 index 0000000..85d359c --- /dev/null +++ b/common/nano/syntax/pkgbuild.nanorc @@ -0,0 +1,26 @@ +## Arch PKGBUILD files +## +syntax "PKGBUILD" "^.*PKGBUILD$" +color green start="^." end="$" +color cyan "^.*(pkgbase|pkgname|epoch|pkgver|pkgrel|pkgdesc|arch|url|license).*=.*$" +color brightcyan "\<(pkgbase|pkgname|epoch|pkgver|pkgrel|pkgdesc|arch|url|license)\>" +color brightcyan "(\$|\$\{|\$\()(pkgbase|epoch|pkgname|pkgver|pkgrel|pkgdesc|arch|url|license)(\}|\))" +color cyan "^.*(depends|makedepends|checkdepends|optdepends|conflicts|provides|replaces).*=.*$" +color brightcyan "\<(depends|makedepends|checkdepends|optdepends|conflicts|provides|replaces)\>" +color brightcyan "(\$|\$\{|\$\()(depends|makedepends|checkdepends|optdepends|conflicts|provides|replaces)(\}|\))" +color cyan "^.*(groups|backup|noextract|options|validpgpkeys|changelog).*=.*$" +color brightcyan "\<(groups|backup|noextract|options|validpgpkeys|changelog)\>" +color brightcyan "(\$|\$\{|\$\()(groups|backup|noextract|options|validpgpkeys|changelog)(\}|\))" +color cyan "^.*(install|source|md5sums|sha1sums|sha224sums|sha256sums|sha384sums|sha512sums).*=.*$" +color brightcyan "\<(install|source|md5sums|sha1sums|sha224sums|sha256sums|sha384sums|sha512sums)\>" +color brightcyan "(\$|\$\{|\$\()(install|source|md5sums|sha1sums|sha224sums|sha256sums|sha384sums|sha512sums)(\}|\))" +color brightcyan "\<(startdir|srcdir|pkgdir)\>" +color cyan "\.install" +color brightwhite "=" "'" "\(" "\)" "\"" "#.*$" "\," "\{" "\}" +color brightred "build\(\)" +color brightred "package_.*.*$" +color brightred "\<(configure|make|cmake|scons)\>" +color red "\<(DESTDIR|PREFIX|prefix|sysconfdir|datadir|libdir|includedir|mandir|infodir)\>" + +## Trailing whitespace +color ,green "[[:space:]]+$" diff --git a/common/nano/syntax/powershell.nanorc b/common/nano/syntax/powershell.nanorc new file mode 100644 index 0000000..e4e87e2 --- /dev/null +++ b/common/nano/syntax/powershell.nanorc @@ -0,0 +1,40 @@ +## Nano syntax highlighting file for PowerShell +## Written by Rashil Gandhi (https://github.com/rashil2000) +## Enhanced by davidhcefx (https://github.com/davidhcefx) + +syntax "PowerShell" "\.[pP][sS][1]$" "\.[pP][sS][mM][1]$" +comment "# " + +## Commands +# https://docs.microsoft.com/en-us/powershell/scripting/developer/cmdlet/approved-verbs-for-windows-powershell-commands +icolor brightblue "\<(Add|Clear|Close|Copy|Enter|Exit|Find|Format|Get|Hide|Join|Lock|Move|New|Open|Optimize|Pop|Push|Redo|Remove|Rename|Reset|Resize|Search|Select|Set|Show|Skip|Split|Step|Switch|Undo|Unlock|Watch|Backup|Checkpoint|Compare|Compress|Convert|ConvertFrom|ConvertTo|Dismount|Edit|Expand|Export|Group|Import|Initialize|Limit|Merge|Out|Publish|Restore|Save|Sync|Unpublish|Update|Approve|Assert|Complete|Confirm|Deny|Disable|Enable|Install|Invoke|Register|Request|Restart|Resume|Start|Stop|Submit|Suspend|Uninstall|Unregister|Wait|Debug|Measure|Ping|Repair|Resolve|Test|Trace|Connect|Disconnect|Read|Receive|Send|Write|Block|Grant|Protect|Revoke|Unblock|Unprotect|Use|ForEach|Sort|Tee|Where)+(-)[[:alnum:]_]+" +# Builtin aliases +icolor brightblue "\<(ac|asnp|cat|cd|CFS|chdir|clc|clear|clhy|cli|clp|cls|clv|cnsn|compare|copy|cp|cpi|cpp|curl|cvpa|dbp|del|diff|dir|dnsn|ebp|echo|0|epal|epcsv|epsn|erase|etsn|exsn|fc|fhx|fl|ft|fw|gal|gbp|gc|gcb|gci|gcm|gcs|gdr|gerr|ghy|gi|gin|gjb|gl|gm|gmo|gp|gps|gpv|group|gsn|gsnp|gsv|gtz|gu|gv|gwmi|h|history|icm|iex|ihy|ii|ipal|ipcsv|ipmo|ipsn|irm|ise|iwmi|iwr|kill|lp|ls|man|md|measure|mi|mount|move|mp|mv|nal|ndr|ni|nmo|npssc|nsn|nv|ogv|oh|popd|ps|pushd|pwd|r|rbp|rcjb|rcsn|rd|rdr|ren|ri|rjb|rm|rmdir|rmo|rni|rnp|rp|rsn|rsnp|rujb|rv|rvpa|rwmi|sajb|sal|saps|sasv|sbp|sc|scb|select|set|shcm|si|sl|sleep|sls|sort|sp|spjb|spps|spsv|start|stz|sujb|sv|swmi|tee|trcm|type|wget|where|wjb|write)\>" + +## Operators +icolor green "-\<(and|as|band|bnot|bor|bxor|casesensitive|ccontains|ceq|cge|cgt|cle|clike|clt|cmatch|cne|cnotcontains|cnotlike|cnotmatch|contains|creplace|csplit|eq|exact|f|file|ge|gt|icontains|ieq|ige|igt|ile|ilike|ilt|imatch|in|ine|inotcontains|inotlike|inotmatch|ireplace|is|isnot|isplit|join|le|like|lt|match|ne|not|notcontains|notin|notlike|notmatch|or|regex|replace|shl|shr|split|wildcard|xor)\>" + +## Variables +icolor brightred "\$[[:alnum:]_]+" + +## Keywords +icolor brightcyan "\<(if|else|foreach|return|do|while|until|elseif|begin|for|trap|data|dynamicparam|end|break|throw|param|continue|finally|in|switch|exit|filter|try|process|catch|hidden|static|parameter)\>" +icolor brightcyan "\<(class|enum|function|using|assembly|command|module|namespace|type)\>" + +## Types +icolor green "\<(string|char|byte|int|long|bool|decimal|single|double|DateTime|xml|array|hashtable|void)\>" + +# TODO: This logic seems a bit off... look into this +## Comments +color cyan start="<#" end="#>" +color cyan "(^|[[:space:]])#[^>].*$" + +## Quoted text +color brightyellow "\"[^\"]*\"" +color brightyellow "'[^']*'" +## Here strings +icolor brightmagenta start="@\"" end="\"@" +icolor brightmagenta start="@'" end="'@" + +## Trailing whitespace +color ,green "[[:space:]]+$" diff --git a/common/nano/syntax/properties.nanorc b/common/nano/syntax/properties.nanorc new file mode 100644 index 0000000..bb75d45 --- /dev/null +++ b/common/nano/syntax/properties.nanorc @@ -0,0 +1,6 @@ +syntax "properties" "\.properties$" +# property key +icolor green "^[^:=]+[:=]" + +# comments +icolor blue "([[:space:]])*[#!].*$" diff --git a/common/nano/syntax/puppet.nanorc b/common/nano/syntax/puppet.nanorc new file mode 100644 index 0000000..8511dc5 --- /dev/null +++ b/common/nano/syntax/puppet.nanorc @@ -0,0 +1,38 @@ +## Nano syntax highlighting for Puppet. +## +syntax "Puppet" "\.pp$" + +#This goes first, so the normal builtins will override in some classes +## Paramerers +color brightwhite "^[[:space:]]([a-z][a-z0-9_]+)" +color brightgreen "\$[a-z:][a-z0-9_:]+" + +## List of built in types, also catches defines +color yellow "\<(augeas|computer|cron|exec|file|filebucket|group|host|interface|k5login|macauthorization|mailalias|maillist|mcx|mount|nagios_command|nagios_contact|nagios_contactgroup|nagios_host|nagios_hostdependency|nagios_hostescalation|nagios_hostextinfo|nagios_hostgroup|nagios_service|nagios_servicedependency|nagios_serviceescalation|nagios_serviceextinfo|nagios_servicegroup|nagios_timeperiod|notify|package|resources|router|schedule|scheduled_task|selboolean|selmodule|service|ssh_authorized_key|sshkey|stage|tidy|user|vlan|yumrepo|zfs|zone|zpool|anchor)\>" +color yellow "\<(class|define|if|else|undef|inherits)\>" +color red "(=|-|~|>)" + +## Constants +color brightblue "(\$|@|@@)?\<[A-Z]+[0-9A-Z_a-z]*" +## Ruby "symbols" +color magenta "([ ]|^):[0-9A-Z_]+\>" +## 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 "##[^{].*$" "##$" +## Some common markers +color brightcyan "(XXX|TODO|FIXME|\?\?\?)" +## Trailing spaces +color ,green "[[:space:]]+$" + diff --git a/common/nano/syntax/python.nanorc b/common/nano/syntax/python.nanorc new file mode 100644 index 0000000..014b26b --- /dev/null +++ b/common/nano/syntax/python.nanorc @@ -0,0 +1,56 @@ +## Python syntax highlighting rules for Nano + +syntax "python" "\.py$" +header "^#!.*/(env +)?python[-0-9._]*( |$)" +magic "Python script" +comment "#" + +linter pyflakes + +## built-in objects +color cyan "\<(None|self|True|False)\>" +## built-in attributes +color cyan "\<(__builtin__|__dict__|__methods__|__members__|__class__|__bases__|__import__|__name__|__doc__|__self__|__debug__)\>" +## built-in functions +color cyan "\<(abs|append|apply|buffer|callable|chr|clear|close|closed|cmp|coerce|compile|complex|conjugate|copy|count|delattr|dir|divmod|eval|execfile|exec|extend|fileno|filter|float|flush|get|getattr|globals|has_key|hasattr|hash|hex|id|index|input|insert|int|intern|isatty|isinstance|issubclass|items|keys|len|list|locals|long|map|max|min|mode|name|oct|open|ord|pop|pow|print|range|raw_input|read|readline|readlines|reduce|reload|remove|repr|reverse|round|seek|setattr|slice|softspace|sort|str|tell|truncate|tuple|type|unichr|unicode|update|values|vars|write|writelines|xrange|zip|bool)\>" +## built-in functions that were previously keywords +color brightblue "\<(print|exec)\>([[:space:]]|$)" +## special method names +color cyan "\<(__abs__|__add__|__and__|__call__|__cmp__|__coerce__|__complex__|__concat__|__contains__|__del__|__delattr__|__delitem__|__delslice__|__div__|__divmod__|__float__|__getattr__|__getitem__|__getslice__|__hash__|__hex__|__init__|__int__|__inv__|__invert__|__len__|__long__|__lshift__|__mod__|__mul__|__neg__|__nonzero__|__oct__|__or__|__pos__|__pow__|__radd__|__rand__|__rcmp__|__rdiv__|__rdivmod__|__repeat__|__repr__|__rlshift__|__rmod__|__rmul__|__ror__|__rpow__|__rrshift__|__rshift__|__rsub__|__rxor__|__setattr__|__setitem__|__setslice__|__str__|__sub__|__xor__|__bool__)\>" +## exception classes +color cyan "\<(Exception|StandardError|ArithmeticError|LookupError|EnvironmentError|AssertionError|AttributeError|EOFError|FloatingPointError|IOError|ImportError|IndexError|KeyError|KeyboardInterrupt|MemoryError|NameError|NotImplementedError|OSError|OverflowError|RuntimeError|SyntaxError|SystemError|SystemExit|TypeError|UnboundLocalError|UnicodeError|ValueError|WindowsError|ZeroDivisionError)\>" +## types +color brightcyan "\<(NoneType|TypeType|IntType|LongType|FloatType|ComplexType|StringType|UnicodeType|BufferType|TupleType|ListType|DictType|FunctionType|LambdaType|CodeType|ClassType|UnboundMethodType|InstanceType|MethodType|BuiltinFunctionType|BuiltinMethodType|ModuleType|FileType|XRangeType|TracebackType|FrameType|SliceType|EllipsisType)\>" +## definitions +color brightcyan "def [a-zA-Z_0-9]+" +## keywords +color brightblue "\<(and|as|assert|async|await|break|class|continue|def|del|elif|else|except|finally|for|from|global|if|import|in|is|lambda|map|not|or|pass|raise|return|try|with|while|yield)\>" + +## decorators +color brightgreen "@.*[(]" + +## operators +color magenta "[.:;,+*|=!\%@]" "<" ">" "/" "-" "&" + +## parentheses +color magenta "[(){}]" "\[" "\]" + +## numbers +icolor brightyellow "\b(([1-9][0-9]+)|0+)\.[0-9]+j?\b" "\b([1-9][0-9]*[Lj]?)\b" "\b0o?[0-7]*L?\b" "\b0x[1-9a-f][0-9a-f]*L?\b" "\b0b[01]+\b" + + +## strings +color yellow "['][^']*[^\\][']" "[']{3}.*[^\\][']{3}" +color yellow "["][^"]*[^\\]["]" "["]{3}.*[^\\]["]{3}" + +## comments +color green "^#.*|[[:space:]]#.*$" + +## block comments +color yellow start=""""[^"]" end=""""" start="'''[^']" end="'''" + +## trailing spaces +color ,green "[[:space:]]+$" + +## reminders +color brightwhite,yellow "(FIXME|TODO|XXX)" diff --git a/common/nano/syntax/readme.md b/common/nano/syntax/readme.md new file mode 100644 index 0000000..565baa9 --- /dev/null +++ b/common/nano/syntax/readme.md @@ -0,0 +1,116 @@ +# Improved Nano Syntax Highlighting Files + +This repository holds ``{lang}.nanorc`` files that have improved definitions of syntax highlighting for various languages. + +This repository is forked from [github.com/scopatz/nanorc](https://github.com/scopatz/nanorc) after almost 2 years of no activity from the maintainer. + +## Installation + +There are three ways to install this repo. + +### 1. Automatic installer + +Copy the following code to download and run the installer script: + +```sh +curl https://raw.githubusercontent.com/galenguyer/nano-syntax-highlighting/master/install.sh | sh +``` + +If your machine doesn't have `curl` command, use this code: + +```sh +wget https://raw.githubusercontent.com/galenguyer/nano-syntax-highlighting/master/install.sh -O- | sh +``` + +This automatically unpacks all the `.nanorc` files to `~/.nano`. + +#### Note + +Some syntax definitions which exist in Nano upstream may be preferable to the ones provided by this package. +The ` install.sh` script may be run with `-l` or `--lite` to insert the included syntax definitions from this package with *lower* precedence than the ones provided by the standard package. + +### 2. Package managers + +As this is a fork, it is not (yet) available in any official repositories. + + + +### 3. Clone repo (copy the files) + +The files should be placed inside of the `~/.nano/` directory. + +You can put the files in another directory inside the correct `.nano` folder. +For example: `~/.nano/nanorc/`. +For readability will use `$install_path` for the path of your choose (in *system wide* the path is always `/usr/share/nano-syntax-highlighting/`). + +For user, only run: + +`git clone git@github.com:galenguyer/nano-syntax-highlighting.git $install_path` or +`git clone https://github.com/galenguyer/nano-syntax-highlighting.git $install_path` + +For system wide, run: + +`sudo git clone https://github.com/galenguyer/nano-syntax-highlighting.git $install_path` + +## Configuration + +After installation, you need to inform `nano` to used the new highlight files. +The configuration file is located at `~/.nanorc`, for users, and at `/etc/nanorc`, for system wide. +If this file doesn't exist, create a new one. + +Again there are three ways: + +### 1. Include all + +Append the content of the folder in one line, with wildcard: + +`echo "include $install_path/*.nanorc" >> ~/.nanorc` or +`echo "include $install_path/*.nanorc" >> /etc/nanorc` + +### 2. Include/append our `nanorc` file + +Simply run: + +`cat $install_path/nanorc >> ~/.nanorc` or +`cat $install_path/nanorc >> /etc/nanorc` + +### 3. One by one + +Add your preferable languages one by one into the file. For example: + +``` +## C/C++ +include "~/.nano/c.nanorc" +``` + +## Tricks & Tweaks + +### MacOS + +`\<` and `\>` are regular character escapes on MacOS. +The bug is fixed in Nano, but this might be a problem if you are using an older version +If this is the case, replace them respectively with `[[:<:]]` and `[[:>:]]`. +This is reported in [Issue 52](https://github.com/scopatz/nanorc/issues/52). + +### Why not include the original files? + +Good question! It's due to the way that nano reads the files, the regex instructions should be in a _specific order_ which is evident in some nanorc files. +And if we use the `include` or `extendsyntax` commands, the colors or other things may not work as expected. +The best way to make changes is by copying and editing the original files. +Please see this [issue](https://savannah.gnu.org/bugs/index.php?5698). +But if some original nanorc file needs an update, feel free to [patch it](https://savannah.gnu.org/patch/?func=additem&group=nano)! + +### My shortcut is not working! + +Please see this [issue](https://savannah.gnu.org/bugs/?56994). + +## 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) diff --git a/common/nano/syntax/rust.nanorc b/common/nano/syntax/rust.nanorc new file mode 100644 index 0000000..88a0be8 --- /dev/null +++ b/common/nano/syntax/rust.nanorc @@ -0,0 +1,42 @@ +# Nano configuration for Rust +# Copyright 2015 The Rust Project Developers. +# +# NOTE: Rules are applied in order: later rules re-colorize matching text. + + +syntax "Rust" "\.rs" +comment "//" + +# function definition +color magenta "fn [a-z0-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_]+" + +# Traits/Enums/Structs/Types/etc. +color magenta "[A-Z][a-z]+" + +# 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 "^\s*//.*" +color blue start="^\s*/\*" end="\*/" + +# Attributes +color magenta start="#!\[" end="\]" + +# Some common markers +color brightcyan "(XXX|TODO|FIXME|\?\?\?)" + +## Trailing spaces +color ,green "[[:space:]]+$" diff --git a/common/nano/syntax/sed.nanorc b/common/nano/syntax/sed.nanorc new file mode 100644 index 0000000..286c8ca --- /dev/null +++ b/common/nano/syntax/sed.nanorc @@ -0,0 +1,9 @@ +syntax "SED" "\.sed$" +header "^#!.*bin/(env +)?sed( |$)" + +color red "[|^$.*+]" +color brightyellow "\{[0-9]+,?[0-9]*\}" +color magenta "\\." +color brightblack "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" diff --git a/common/nano/syntax/sh.nanorc b/common/nano/syntax/sh.nanorc new file mode 100644 index 0000000..c418262 --- /dev/null +++ b/common/nano/syntax/sh.nanorc @@ -0,0 +1,23 @@ +## Here is an example for Bourne shell scripts. +## +syntax "SH" "\.sh$" "\.ash" "\.bashrc" "bashrc" "\.bash_aliases" "bash_aliases" "\.bash_functions" "bash_functions" "\.bash_login" "\.bash_logout" "\.bash_profile" "bash_profile" "\.profile" "revise\..+$" +header "^#!.*/(env +)?(ba|da|a)?sh( |$)" +magic "(POSIX|Bourne-Again) shell script.*text" +comment "#" + +linter dash -n + +## keywords: +color green "\<(case|do|done|elif|else|esac|fi|for|function|if|in|select|then|time|until|while)\>" +color green "(\{|\}|\(|\)|\;|\]|\[|`|\\|\$|<|>|!|=|&|\|)" +color green "-[Ldefgruwx]\>" +color green "-(eq|ne|gt|lt|ge|le|s|n|z)\>" +## builtins: +color brightblue "\<(alias|bg|bind|break|builtin|caller|cd|command|compgen|complete|compopt|continue|declare|dirs|disown|echo|enable|eval|exec|exit|export|false|fc|fg|getopts|hash|help|history|jobs|kill|let|local|logout|mapfile|popd|printf|pushd|pwd|read|readarray|readonly|return|set|shift|shopt|source|suspend|test|times|trap|true|type|typeset|ulimit|umask|unalias|unset|wait)\>" +## not buitins: +## cat|chmod|chown|cp|env|grep|install|ln|make|mkdir|mv|rm|sed|tar|touch +icolor brightgreen "^\s+[0-9A-Z_]+\s+\(\)" +icolor brightred "\$\{?[0-9A-Z_!@#%$*?-]+\}?" +color brightyellow ""(\\.|[^"])*"" "'(\\.|[^'])*'" +color cyan "(^|[[:space:]])#.*$" +color ,green "[[:space:]]+$" diff --git a/common/nano/syntax/sql.nanorc b/common/nano/syntax/sql.nanorc new file mode 100644 index 0000000..1ebd574 --- /dev/null +++ b/common/nano/syntax/sql.nanorc @@ -0,0 +1,34 @@ +syntax "SQL" "\.sql$" "sqliterc$" + +icolor cyan "\<(ALL|ASC|AS|ALTER|AND|ADD|AUTO_INCREMENT)\>" +icolor cyan "\<(BETWEEN|BINARY|BOTH|BY|BOOLEAN)\>" +icolor cyan "\<(CHANGE|CHECK|COLUMNS|COLUMN|CROSS|CREATE)\>" +icolor cyan "\<(DATABASES|DATABASE|DATA|DELAYED|DESCRIBE|DESC|DISTINCT|DELETE|DROP|DEFAULT)\>" +icolor cyan "\<(ENCLOSED|ESCAPED|EXISTS|EXPLAIN)\>" +icolor cyan "\<(FIELDS|FIELD|FLUSH|FOR|FOREIGN|FUNCTION|FROM)\>" +icolor cyan "\<(GROUP|GRANT|HAVING)\>" +icolor cyan "\<(IGNORE|INDEX|INFILE|INSERT|INNER|INTO|IDENTIFIED|IN|IS|IF)\>" +icolor cyan "\<(JOIN|KEYS|KILL|KEY)\>" +icolor cyan "\<(LEADING|LIKE|LIMIT|LINES|LOAD|LOCAL|LOCK|LOW_PRIORITY|LEFT|LANGUAGE)\>" +icolor cyan "\<(MODIFY|NATURAL|NOT|NULL|NEXTVAL)\>" +icolor cyan "\<(OPTIMIZE|OPTION|OPTIONALLY|ORDER|OUTFILE|OR|OUTER|ON)\>" +icolor cyan "\<(PROCEDURE|PROCEDURAL|PRIMARY)\>" +icolor cyan "\<(READ|REFERENCES|REGEXP|RENAME|REPLACE|RETURN|REVOKE|RLIKE|RIGHT)\>" +icolor cyan "\<(SHOW|SONAME|STATUS|STRAIGHT_JOIN|SELECT|SETVAL|SET)\>" +icolor cyan "\<(TABLES|TERMINATED|TO|TRAILING|TRUNCATE|TABLE|TEMPORARY|TRIGGER|TRUSTED)\>" +icolor cyan "\<(UNIQUE|UNLOCK|USE|USING|UPDATE|VALUES|VARIABLES|VIEW)\>" +icolor cyan "\<(WITH|WRITE|WHERE|ZEROFILL|TYPE|XOR)\>" +color green "\<(VARCHAR|TINYINT|TEXT|DATE|SMALLINT|MEDIUMINT|INT|INTEGER|BIGINT|FLOAT|DOUBLE|DECIMAL|DATETIME|TIMESTAMP|TIME|YEAR|UNSIGNED|CHAR|TINYBLOB|TINYTEXT|BLOB|MEDIUMBLOB|MEDIUMTEXT|LONGBLOB|LONGTEXT|ENUM|BOOL|BINARY|VARBINARY)\>" + +# SQLite meta commands +icolor cyan "\.\<(databases|dump|echo|exit|explain|header(s)?|help)\>" +icolor cyan "\.\<(import|indices|mode|nullvalue|output|prompt|quit|read)\>" +icolor cyan "\.\<(schema|separator|show|tables|timeout|width)\>" +color brightcyan "\<(ON|OFF)\>" + +color blue "\<([0-9]+)\>" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color yellow "`(\\.|[^\\`])*`" +color brightblack "\-\-.*$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" diff --git a/common/nano/syntax/systemd.nanorc b/common/nano/syntax/systemd.nanorc new file mode 100644 index 0000000..0a2787a --- /dev/null +++ b/common/nano/syntax/systemd.nanorc @@ -0,0 +1,12 @@ +syntax "Systemd" "\.(service|socket|timer)$" +header "^\[Unit\]$" + +color cyan "^(Accept|After|Alias|AllowIsolate|Also|AmbientCapabilities|ANSI_COLOR|_AUDIT_LOGINUID|_AUDIT_SESSION|Backlog|Before|BindIPv6Only|BindsTo|BindToDevice|BlockIOReadBandwidth|BlockIOWeight|BlockIOWriteBandwidth|_BOOT_ID|Broadcast|BUG_REPORT_URL|BusName|Capabilities|CapabilityBoundingSet|CHASSIS|cipher|class|_CMDLINE|CODE_FILE|CODE_FUNC|CODE_LINE|_COMM|Compress|ConditionACPower|ConditionCapability|ConditionDirectoryNotEmpty|ConditionFileIsExecutable|ConditionFileNotEmpty|ConditionHost|ConditionKernelCommandLine|ConditionNull|ConditionPathExists|ConditionPathExistsGlob|ConditionPathIsDirectory|ConditionPathIsMountPoint|ConditionPathIsReadWrite|ConditionPathIsSymbolicLink|ConditionSecurity|ConditionVirtualization|Conflicts|ControlGroup|ControlGroupAttribute|ControlGroupModify|ControlGroupPersistent|controllers|Controllers|CPE_NAME|CPUAffinity|CPUSchedulingPolicy|CPUSchedulingPriority|CPUSchedulingResetOnFork|CPUShares|CrashChVT|CrashShell|__CURSOR|debug|DefaultControllers|DefaultDependencies|DefaultLimitAS|DefaultLimitCORE|DefaultLimitCPU|DefaultLimitDATA|DefaultLimitFSIZE|DefaultLimitLOCKS|DefaultLimitMEMLOCK|DefaultLimitMSGQUEUE|DefaultLimitNICE|DefaultLimitNOFILE|DefaultLimitNPROC|DefaultLimitRSS|DefaultLimitRTPRIO|DefaultLimitRTTIME|DefaultLimitSIGPENDING|DefaultLimitSTACK|DefaultStandardError|DefaultStandardOutput|Description|DeviceAllow|DeviceDeny|DirectoryMode|DirectoryNotEmpty|Documentation|DumpCore|entropy|Environment|EnvironmentFile|ERRNO|event_timeout|_EXE|ExecReload|ExecStart|ExecStartPost|ExecStartPre|ExecStop|ExecStopPost|ExecStopPre|filter|FONT|FONT_MAP|FONT_UNIMAP|ForwardToConsole|ForwardToKMsg|ForwardToSyslog|FreeBind|freq|FsckPassNo|fstab|_GID|Group|GuessMainPID|HandleHibernateKey|HandleLidSwitch|HandlePowerKey|HandleSuspendKey|hash|HibernateKeyIgnoreInhibited|HOME_URL|_HOSTNAME|ICON_NAME|ID|IdleAction|IdleActionSec|ID_LIKE|ID_MODEL|ID_MODEL_FROM_DATABASE|IgnoreOnIsolate|IgnoreOnSnapshot|IgnoreSIGPIPE|InaccessibleDirectories|InhibitDelayMaxSec|init|IOSchedulingClass|IOSchedulingPriority|IPTOS|IPTTL|JobTimeoutSec|JoinControllers|KeepAlive|KEYMAP|KEYMAP_TOGGLE|KillExcludeUsers|KillMode|KillOnlyUsers|KillSignal|KillUserProcesses|LidSwitchIgnoreInhibited|LimitAS|LimitCORE|LimitCPU|LimitDATA|LimitFSIZE|LimitLOCKS|LimitMEMLOCK|LimitMSGQUEUE|LimitNICE|LimitNOFILE|LimitNPROC|LimitRSS|LimitRTPRIO|LimitRTTIME|LimitSIGPENDING|LimitSTACK|link_priority|valueListenDatagram|ListenFIFO|ListenMessageQueue|ListenNetlink|ListenSequentialPacket|ListenSpecial|ListenStream|LogColor|LogLevel|LogLocation|LogTarget|luks|_MACHINE_ID|MakeDirectory|Mark|MaxConnections|MaxFileSec|MaxLevelConsole|MaxLevelKMsg|MaxLevelStore|MaxLevelSyslog|MaxRetentionSec|MemoryLimit|MemorySoftLimit|MESSAGE|MESSAGE_ID|MessageQueueMaxMessages|MessageQueueMessageSize|__MONOTONIC_TIMESTAMP|MountFlags|NAME|NAutoVTs|Nice|NonBlocking|NoNewPrivileges|NotifyAccess|OnActiveSec|OnBootSec|OnCalendar|OnFailure|OnFailureIsolate|OnStartupSec|OnUnitActiveSec|OnUnitInactiveSec|OOMScoreAdjust|Options|output|PAMName|PartOf|PassCredentials|PassSecurity|PathChanged|PathExists|PathExistsGlob|PathModified|PermissionsStartOnly|_PID|PIDFile|PipeSize|PowerKeyIgnoreInhibited|PRETTY_HOSTNAME|PRETTY_NAME|Priority|PRIORITY|PrivateDevices|PrivateNetwork|PrivateTmp|PropagatesReloadTo|ProtectControlGroups|ProtectHome|ProtectKernelModules|ProtectKernelTunables|ProtectSystem|pss|RateLimitBurst|RateLimitInterval|ReadOnlyDirectories|ReadWriteDirectories|__REALTIME_TIMESTAMP|ReceiveBuffer|RefuseManualStart|RefuseManualStop|rel|ReloadPropagatedFrom|RemainAfterExit|RestrictAddressFamilies|RestrictNamespaces|RestrictRealtime|RequiredBy|Requires|RequiresMountsFor|RequiresOverridable|Requisite|RequisiteOverridable|ReserveVT|ResetControllers|Restart|RestartPreventExitStatus|RestartSec|RootDirectory|RootDirectoryStartOnly|RuntimeKeepFree|RuntimeMaxFileSize|RuntimeMaxUse|RuntimeWatchdogSec|samples|scale_x|scale_y|Seal|SecureBits|_SELINUX_CONTEXT|SendBuffer|SendSIGKILL|Service|ShowStatus|ShutdownWatchdogSec|size|SmackLabel|SmackLabelIPIn|SmackLabelIPOut|SocketMode|Sockets|SourcePath|_SOURCE_REALTIME_TIMESTAMP|SplitMode|StandardError|StandardInput|StandardOutput|StartLimitAction|StartLimitBurst|StartLimitInterval|static_node|StopWhenUnneeded|Storage|string_escape|none|replaceSuccessExitStatus|SupplementaryGroups|SUPPORT_URL|SuspendKeyIgnoreInhibited|SyslogFacility|SYSLOG_FACILITY|SyslogIdentifier|SYSLOG_IDENTIFIER|SyslogLevel|SyslogLevelPrefix|SYSLOG_PID|SystemCallArchitectures|SystemCallFilter|SYSTEMD_ALIAS|_SYSTEMD_CGROUP|_SYSTEMD_OWNER_UID|SYSTEMD_READY|_SYSTEMD_SESSION|_SYSTEMD_UNIT|_SYSTEMD_USER_UNIT|SYSTEMD_WANTS|SystemKeepFree|SystemMaxFileSize|SystemMaxUse|SysVStartPriority|TCPCongestion|TCPWrapName|timeout|TimeoutSec|TimeoutStartSec|TimeoutStopSec|TimerSlackNSec|Transparent|_TRANSPORT|tries|TTYPath|TTYReset|TTYVHangup|TTYVTDisallocate|Type|_UID|UMask|Unit|User|UtmpIdentifier|VERSION|VERSION_ID|WantedBy|Wants|WatchdogSec|What|Where|WorkingDirectory)=" +color green "^\.include\>" +color red "=" +color brightmagenta "^\[(Unit|Install|Service|Socket)\]" +color brightyellow "\$MAINPID" +color brightcyan "\<(true|false)\>" +color brightblue "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" diff --git a/common/nano/syntax/toml.nanorc b/common/nano/syntax/toml.nanorc new file mode 100644 index 0000000..3bafa74 --- /dev/null +++ b/common/nano/syntax/toml.nanorc @@ -0,0 +1,54 @@ +syntax "toml" "\.toml$" +comment "#" + +# Booleans +color magenta "true|false" + +# Numbers +color green "[+-]?[[:space:]]*[0-9]+(\.[0-9]+)?([Ee][+-]?[0-9]+)?" +color green "[0-9]+(_[0-9]+)*" + +# Tables / unwrapped keys +color brightgreen "[a-zA-Z0-9_]*(\.[a-zA-Z0-9_]+)*" + +# Invalid Table names +color ,red "^[[:space:]]*\[\]" +color ,red "^[[:space:]]*\[[a-zA-Z0-9_]\.\]" +color ,red "^[[:space:]]*\[.*\.\..*\]" +color ,red "^[[:space:]]*\[\..*?\]" + +# Strings +color brightyellow ""(\.|[^"])*"" "'(\.|[^'])*'" +color yellow start="\"\"\"" end="\"\"\"" + +# Comments +color brightblue "#.*" + +# Keyless value +color ,red "^[[:space:]]*=.*" + +# Trailing whitespace +color ,green "[[:space:]]+$" + + +# MIT License + +# Copyright (c) 2017 Uninteresting Account + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. diff --git a/common/nano/syntax/ts.nanorc b/common/nano/syntax/ts.nanorc new file mode 100644 index 0000000..b504c1e --- /dev/null +++ b/common/nano/syntax/ts.nanorc @@ -0,0 +1,47 @@ +syntax "typescript" "\.(ts)$" +header "^#!.*\/(env +)ts-node" + +## Default +color white "^.+$" + +## Decimal, octal and hexadecimal numbers +color yellow "\<[-+]?([1-9][0-9]*|0[0-7]*|0x[0-9a-fA-F]+)([uU][lL]?|[lL][uU]?)?\>" + +## Floating point number with at least one digit before decimal point +color yellow "\<[-+]?([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([EePp][+-]?[0-9]+)?[fFlL]?" +color yellow "\<[-+]?([0-9]+[EePp][+-]?[0-9]+)[fFlL]?" + +## Keywords +color green "\<(as|abstract|asserts|boolean|break|byte|case|catch)\>" +color green "\<(class|const|continue|debugger|default|delete|readonly)\>" +color green "\<(do|else|enum|export|extends|finally|final|for)\>" +color green "\<(from|function|goto|if|implements|import|instanceof)\>" +color green "\<(var|interface|int|in|is|infer|let|new|package|private)\>" +color green "\<(protected|public|return|static|super|switch)\>" +color green "\<(this|throw|try|typeof|type)\>" +color green "\<(void|while|with|yield)\>" +color green "\<(async|await)\>" +color green "\<(set|get)\>" +color green "\<(module|namespace)\>" +color green "\<(declare)\>" + +## Type specifiers +color red "\<(Array|Boolean|Date|Enumerator|Error|Function)\>" +color red "\<(Number|Object|RegExp|String)\>" +color red "\<(true|false)\>" + +## String +color brightyellow "L?\"(\\"|[^"])*\"" +color brightyellow "L?'(\'|[^'])*'" +color brightcyan "L?`(\`|[^`])*`" +color brightwhite,blue start="\$\{" end="\}" + +## Escapes +color red "\\[0-7][0-7]?[0-7]?|\\x[0-9a-fA-F]+|\\[bfnrt'"\?\\]" + +## Comments +color magenta start="/\*" end="\*/" +color magenta "^\s*//.*$" + +## Trailing whitespace +color ,green "[[:space:]]+$" diff --git a/common/nano/syntax/vi.nanorc b/common/nano/syntax/vi.nanorc new file mode 100644 index 0000000..a2e2888 --- /dev/null +++ b/common/nano/syntax/vi.nanorc @@ -0,0 +1,10 @@ +syntax "VI" "(^|/|\.)(ex|vim)rc$|\.vim" + +color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[()]" +color cyan "\<([nvxsoilc]?(nore|un)?map|[nvlx]n|[ico]?no|[cilovx][um]|s?unm)\>" +color cyan "\<(snor|nun|nm|set|if|endif|let|unlet)\>" +color red "[!&=]" +color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'" +color brightblack "(^|[[:space:]])\"[^"]*$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" diff --git a/common/nano/syntax/x11basic.nanorc b/common/nano/syntax/x11basic.nanorc new file mode 100644 index 0000000..2a8d236 --- /dev/null +++ b/common/nano/syntax/x11basic.nanorc @@ -0,0 +1,172 @@ +## Sytax highlighting for nano and pico for X11-Basic. (c) Markus Hoffmann 2019 + +# This file is part of X11-Basic, the basic interpreter for Unix/X +# ====================================================================== +# X11-Basic is free software and comes with NO WARRANTY - read the file +# COPYING for details + +syntax "x11basic" "\.(bas|xbas|LST|BAS)$" + +# Variable names + +icolor brightwhite "\<[A-Z_][A-Za-z0-9_]*(|\$|\%|\&|\||\(\))\>" + +# system vars +icolor cyan "\<(CCSAPLID|CCSERR|COLS|CRSCOL|CRSLIN|CTIMER|ERR|FALSE)\>" +icolor cyan "\<(GPS_ALT|GPS_LAT|GPS_LON|MOUSEK|MOUSES|MOUSEX|MOUSEY)\>" +icolor cyan "\<(PC|PI|ROWS|SP|STIMER|TIMER|TRUE)\>" + +# system string vars +icolor cyan "\<(DATE|FILEEVENT|INKEY|TERMINALNAME|TIME|TRACE)\$" + +#special system vars +icolor cyan "\<(ANDROID|GPIO|GPS|SENSOR|WIN32|UNIX)\?" + + +# system array vars + +# regular functions + +icolor green "\<(ABS|ACOS|ACOSH|ADD|AND|ARG|ARRPTR|ASC|ASIN|ASINH|ATAN|ATANH|ATN)\(" +icolor green "\<(BCHG|BCLR|BSET|BTST|BYTE)\(" +icolor green "\<(CALL|CALLD|CARD|CBRT|CEIL|COLOR_RGB|COMBIN|CONJ|COS|COSH|CRC|CVD|CVF|CVI|CVL|CVS)\(" +icolor green "\<(DEG|DET|DEVICE|DIV|DPEEK)\(" +icolor green "\<(EOF|EVAL|EVEN|EXEC|EXIST|EXP|EXPM1)\(" +icolor green "\<(FACT|FIX|FLOOR|FORK|FORM_ALERT|FORM_CENTER|FORM_DIAL|FORM_DO|FRAC|FREEFILE)\(" +icolor green "\<(GAMMA|GASDEV|GCD|GET_COLOR|GLOB|GPIO|GRAY)\(" +icolor green "\<(HYPOT)\(" +icolor green "\<(IMAG|INODE|INP|INSTR|INT|INVERT|IOCTL)\(" +icolor green "\<(JULIAN)\(" +icolor green "\<(LCM|LEN|LGAMMA|LISTSELECT|LN|LOC|LOF|LOG|LOG10|LOG1P|LOGB|LPEEK|LTEXTLEN)\(" +icolor green "\<(MALLOC|MAX|MIN|MOD|MODE|MSHRINK|MUL)\(" +icolor green "\<(NEXTPRIME|NLINK|NOT)\(" +icolor green "\<(OBJC_DRAW|OBJC_FIND|OBJC_OFFSET|ODD|OR)\(" +icolor green "\<(PEEK|POINT|POWM|PRED|PTST)\(" +icolor green "\<(RAD|RAND|RANDOM|REAL|REALLOC|RINSTR|RND|ROL|ROOT|ROR|ROUND|RSRC_GADDR)\(" +icolor green "\<(SENSOR|SGN|SHL|SHM_ATTACH|SHM_MALLOC|SHR|SIN|SINH|SIZE|SQR|SQRT|SRAND|SUB|SUCC|SWAP|SYM_ADR)\(" +icolor green "\<(TALLY|TAN|TANH|TRUNC)\(" +icolor green "\<(UBOUND)\(" +icolor green "\<(VAL|VARIAT|VARPTR|VRFY)\(" +icolor green "\<(WORD|WORT_SEP)\(" +icolor green "\<(XOR)\(" + +# question functions +icolor green "\<(DIM|EVENT|INP|TYP|VAL)\?\(" + +# special functions + +icolor green "\<(INP)\%\(" +icolor green "\<(INP)\&\(" + + + +# string functions +icolor green "\<(ARID|ARIE)\$\(" +icolor green "\<(BIN|BWTD|BWTE)\$\(" +icolor green "\<(CALL|CHR|COMPRESS)\$\(" +icolor green "\<(DECLOSE|DECRYPT|DIR)\$\(" +icolor green "\<(ENCLOSE|ENCRYPT|ENV|ERR)\$\(" +icolor green "\<(FSFIRST|FSNEXT)\$\(" +icolor green "\<(HASH|HEX)\$\(" +icolor green "\<(INLINE|INPUT)\$\(" +icolor green "\<(JULDATE)\$\(" +icolor green "\<(LEFT|LEFTOF|LINEINPUT|LOWER)\$\(" +icolor green "\<(MID|MKA|MKD|MKF|MKI|MKL|MKS|MTFD|MTFE)\$\(" +icolor green "\<(OCT)\$\(" +icolor green "\<(PARAM|PNGDECODE|PNGENCODE|PRG)\$\(" +icolor green "\<(REPLACE|REVERSE|RADIX|RIGHT|RIGHTOF|RLD|RLE)\$\(" +icolor green "\<(SIGN|SPACE|STR|STRING|SYSTEM)\$\(" +icolor green "\<(TERMINALNAME|TRIM)\$\(" +icolor green "\<(UCASE|UNCOMPRESS|UNIXDATE|UNIXTIME|UPPER|USING)\$\(" +icolor green "\<(WORD)\$\(" +icolor green "\<(XTRIM)\$\(" + +# array functions + +icolor green "\<(0|1|CONVOLUT|CVA|FFT|INV|SMUL|SOLVE|TRANS)\(" + + + +# special commands + +icolor brightmagenta "(^|^[[:space:]]*)(DIM|LOCAL|LET)\>" +icolor cyan "(^|^[[:space:]]*)DATA.*$" + +icolor red "(^|^[[:space:]]*)ENDFUNCTION\>" +icolor red "(^|^[[:space:]]*)(RETURN|BREAK|CONTINUE|EXIT\ IF)\>" +icolor red "(^|^[[:space:]]*)(FUNCTION|PROCEDURE|DEFFN)\>" + +icolor blue "(^|^[[:space:]]*)(endselect|select|default|endif|else\ if|else|case|do|loop|next|for|if|while|wend|repeat|until|goto|gosub|spawn|void)\>" +icolor brightred "(^|^[[:space:]]*)(END|QUIT|STOP|TRON|TROFF|ECHO|EDIT|NEW|RUN)\>" + + +# regular commands + +icolor brightgreen "(^|^[[:space:]]*)(ABSOLUTE|ADD|AFTER|ALERT|ARRAYCOPY|ARRAYFILL)\>" +icolor brightgreen "(^|^[[:space:]]*)(BEEP|BELL|BGET|BLOAD|BMOVE|BOTTOMW|BOUNDARY|BOX|BPUT|BSAVE)\>" +icolor brightgreen "(^|^[[:space:]]*)(CALL|CHAIN|CHDIR|CHMOD|CIRCLE|CLEAR|CLEARW|CLIP|CLOSE|CLOSEW|CLR|CLS|COLOR|CONNECT|COPYAREA|CURVE)\>" +icolor brightgreen "(^|^[[:space:]]*)(DEC|DEFFILL|DEFLINE|DEFMARK|DEFMOUSE|DEFTEXT|DELAY|DIV|DPOKE|DRAW|DUMP)\>" +icolor brightgreen "(^|^[[:space:]]*)(ELLIPSE|ERASE|ERROR|EVAL|EVENT|EVERY|EXEC)\>" +icolor brightgreen "(^|^[[:space:]]*)(FFT|FILESELECT|FILL|FIT|FIT_LINEAR|FIT_POLY|FLUSH|FREE|FULLW)\>" +icolor brightgreen "(^|^[[:space:]]*)(GET|GET_GEOMETRY|GET_LOCATION|GET_SCREENSIZE|GPIO|GPRINT|GPS|GRAPHMODE)\>" +icolor brightgreen "(^|^[[:space:]]*)(HELP|HIDEK|HIDEM|HOME)\>" +icolor brightgreen "(^|^[[:space:]]*)(INC|INFOW|INPUT)\>" +icolor brightgreen "(^|^[[:space:]]*)(KEYEVENT|KILL)\>" +icolor brightgreen "(^|^[[:space:]]*)(LINE|LINEINPUT|LINK|LIST|LOAD|LOCATE|LPOKE|LTEXT)\>" +icolor brightgreen "(^|^[[:space:]]*)(MEMDUMP|MENU|MENUDEF|MENUKILL|MENUSET|MERGE|MFREE|MKDIR|MOUSE|MOUSEEVENT|MOTIONEVENT|MOVEW|MSYNC|MUL)\>" +icolor brightgreen "(^|^[[:space:]]*)(NOOP|NOP|NOROOTWINDOW)\>" +icolor brightgreen "(^|^[[:space:]]*)(OBJC_ADD|OBJC_DELETE|ON|OPEN|OPENW|OUT)\>" +icolor brightgreen "(^|^[[:space:]]*)(PAUSE|PBOX|PCIRCLE|PELLIPSE|PIPE|PLAYSOUND|PLAYSOUNDFILE|PLIST|PLOT|POKE|POLYFILL|POLYLINE|POLYMARK|PRBOX|PRINT|PUT|PUTBACK|PUT_BITMAP)\>" +icolor brightgreen "(^|^[[:space:]]*)(RANDOMIZE|RBOX|READ|RECEIVE|RELSEEK|RENAME|RESTORE|RMDIR|ROOTWINDOW|RSRC_FREE|RSRC_LOAD)\>" +icolor brightgreen "(^|^[[:space:]]*)(SAVE|SAVESCREEN|SAVEWINDOW|SCOPE|SCREEN|SEEK|SEND|SENSOR|SETFONT|SETMOUSE|SGET|SHELL|SHM_DETACH|SHM_FREE|SHOWK|SHOWM|SHOEPAGE|SIZEW|SORT|SOUND|SPEAK|SPLIT|SPUT|SUB|SWAP|SYSTEM)\>" +icolor brightgreen "(^|^[[:space:]]*)(TEXT|TITLEW|TOPW|TOUCH)\>" +icolor brightgreen "(^|^[[:space:]]*)(UNLINK|UNMAP|USEWINDOW)\>" +icolor brightgreen "(^|^[[:space:]]*)(VERSION|VSYNC)\>" +icolor brightgreen "(^|^[[:space:]]*)(WATCH|WAVE|WORT_SEP)\>" +icolor brightgreen "(^|^[[:space:]]*)(XLOAD|XRUN)\>" + +## commands with a blank in it + +icolor brightblue "(^|^[[:space:]]*)(ON\ ERROR\ CONT)" +icolor brightblue "(^|^[[:space:]]*)(ON\ BREAK\ CONT)" +icolor brightred "(^|^[[:space:]]*)(ECHO\ (ON|OFF))" + + +## keywords +icolor brightblue "\<(and|or|not|to|xor|not|then|step|var|tab|using)\>" + +## operators +color white "[+*=\^]" "<" ">" "/" "-" +color brightred "[@\~]" + + +## number constants +icolor brightyellow "\b(([1-9][0-9]+)|0+)\.[0-9]+j?\b" "\b([1-9][0-9]*[Lj]?)\b" "\b0o?[0-7]*L?\b" "\b0x[1-9a-f][0-9a-f]*L?\b" "\b0b[01]+\b" +icolor brightyellow "[\ ,\(]\#[1-9][0-9]*\b" + +## parentheses +color magenta "[(){}]" "\[" "\]" + +# labels +icolor red "(^|^[[:space:]]*)[^\ ^=.]*:" + +# Comments. +color yellow "(^|^[[:space:]]*)'.*$" +icolor yellow "(^|^[[:space:]]*)REM.*$" +color yellow "!.*$" + +icolor brightwhite,blue "(^|^[[:space:]]*)PROGRAM.*$" + +#shebang line +icolor brightwhite,green "^\#\!.*$" + + + +# Strings +color yellow "<[^= ]*>" ""(\\.|[^"])*"" + +## trailing spaces +color ,green "[[:space:]]+$" + +## reminders +color brightwhite,yellow "(FIXME|TODO|XXX)" diff --git a/common/nano/syntax/xml.nanorc b/common/nano/syntax/xml.nanorc new file mode 100644 index 0000000..6d4e8f0 --- /dev/null +++ b/common/nano/syntax/xml.nanorc @@ -0,0 +1,25 @@ +## Here is an example for xml files. +## + +syntax "XML" ".*\.([jrs]?html?|xml|sgml?|rng|vue|mei|musicxml)$" +header "<\?xml.*version=.*\?>" +magic "(XML|SGML) (sub)?document" +comment "" + +color white "^.+$" +# Attributes +color green start="<" end=">" +color brightgreen "=\"[^\"]*\"" +# Opening tags +color brightcyan "<[^/][^> ]*" +color brightcyan ">" +# Closing tags +color cyan " ]*>" +# Self-closing part +color cyan "/>" +color yellow start="" +color yellow start="" +color red "&[^;]*;" + +## Trailing spaces +color ,green "[[:space:]]+$" diff --git a/common/nano/syntax/xresources.nanorc b/common/nano/syntax/xresources.nanorc new file mode 100644 index 0000000..7773642 --- /dev/null +++ b/common/nano/syntax/xresources.nanorc @@ -0,0 +1,10 @@ +syntax "Xresources" "X(defaults|resources)$" + +color green "^[[:alnum:]]+\*" +color brightyellow "\*[[:alnum:]]+\:" +color blue "\<[0-9]+\>" +color red "[*:=]" +color brightcyan "\<(true|false)\>" +color brightblack "(^|[[:space:]])#([^{].*)?$" +color ,green "[[:space:]]+$" +color ,red " + +| + +" diff --git a/common/nano/syntax/yaml.nanorc b/common/nano/syntax/yaml.nanorc new file mode 100644 index 0000000..bf2314b --- /dev/null +++ b/common/nano/syntax/yaml.nanorc @@ -0,0 +1,24 @@ +syntax "yaml" "\.ya?ml$" +#comment "#" +header "^---" "%YAML" + +# Values +color green "(:|^|\s)+\S+" + +# Keys +color red "(^|\s+).*+\s*:(\s|$)" + +# Special values +color yellow "[:-]\s+(true|false|null)\s*$" +color yellow "[:-]\s+[0-9]+\.?[0-9]*(\s*($|#))" +color yellow "(^| )!!(binary|bool|float|int|map|null|omap|seq|set|str) " + +# Separator +color brightwhite "^\s*-" +color brightwhite ":(\s|$)" + +# Comments +color brightblue "(^|[[:space:]])#.*$" + +# Trailing whitespace +color ,red "[[:space:]]+$" diff --git a/common/nano/syntax/zig.nanorc b/common/nano/syntax/zig.nanorc new file mode 100644 index 0000000..1baad37 --- /dev/null +++ b/common/nano/syntax/zig.nanorc @@ -0,0 +1,9 @@ +syntax "Zig" "\.zig$$" +color green "\<(align|allowzero|and|anyframe|anytype|asm|async|await|break|catch|comptime|const|continue|defer|else|enum|errdefer|error|export|extern|fn|for|if|inline|noalias|nosuspend|or|orelse|packed|pub|resume|return|linksection|struct|suspend|switch|test|threadlocal|try|union|unreachable|usingnamespace|var|volatile|while)\>" +color brightcyan "@[a-zA-Z]+[0-9]{0,2}" +color cyan "(true|false|null|undefined)" +color cyan "\<(0[xob])?([0-9]_?)+\>" +color blue "\<([iu][0-9]{1,5}|f16|f32|f64|f128)\>" +color magenta "\"[^\"]*\"" +comment "//" +tabgives " " diff --git a/common/nano/syntax/zsh.nanorc b/common/nano/syntax/zsh.nanorc new file mode 100644 index 0000000..9578667 --- /dev/null +++ b/common/nano/syntax/zsh.nanorc @@ -0,0 +1,42 @@ +## Syntax highlighting for ZSH scripts (initially copied from sh.nanorc) +syntax "ZSH" "\.zsh$" "\.?(zshenv|zprofile|zshrc|zlogin|zlogout|zsh-theme)$" +header "^#!.*/(env +)?zsh( |$)" + +## Numbers +color brightyellow "\b[0-9]+\b" + +## Conditionals and control flow +color green "\<(always|break|bye|case|continue|disown|do|done|elif|else|esac|exit|fi|for|function|if|in|local|read|return|select|shift|then|time|until|while)\>" + +color green "(\{|\}|\(|\)|\;|\]|\[|`|\\|\$|<|>|!|=|&|\|)" +## Conditional flags +color green "-[Ldefgruwx]\>" +color green "-(eq|ne|gt|lt|ge|le|s|n|z)\>" + +## Bash-inherited +color brightblue "\<((un)?alias|bindkey|builtin|cd|command|declare|eval|exec|export|jobs|let|popd|pushd|set|source|typeset|umask|unset)\>" +## ZSH-specific +color brightblue "\<(add-zsh-hook|autoload|cdr|chdir|compinit|dirs|(dis|en)able|echotc|echoti|emulate|print|printf|prompt(init)?|(un)?setopt|zle|zmodload|zstyle|whence|zargs|zmv)\>" + +## Common linux commands +color brightmagenta "\<((g|ig)?awk|find|diff|\w{0,4}grep|kill|killall|\w{0,4}less|make|pkill|sed|sudo|tar)\>" + +## Coreutils commands +color brightmagenta "\<(base(32|64)|basename|cat|chcon|chgrp|chmod|chown|chroot|cksum|comm|cp|csplit|cut|date|dd|df|dir|dircolors|dirname|du|echo|env|expand|expr|factor|false|fmt|fold|head|hostid|id|install|join|link|ln|logname|ls|md5sum|mkdir|mkfifo|mknod|mktemp|mv|nice|nl|nohup|nproc|numfmt|od|paste|pathchk|pinky|pr|printenv|ptx|pwd|readlink|realpath|rm|rmdir|runcon|seq|(sha1|sha224|sha256|sha384|sha512)sum|shred|shuf|sleep|sort|split|stat|stdbuf|stty|sum|sync|tac|tail|tee|test|timeout|touch|tr|true|truncate|tsort|tty|uname|unexpand|uniq|unlink|users|vdir|wc|who|whoami|yes)\>" + +## Function definition +icolor brightgreen "^\s+(function\s+)[0-9A-Z_]+\s+\(\)" + +## Variables +icolor brightred "\$\{?[0-9A-Z_!@#%$*?-]+\}?" + +## Strings +color yellow ""(\\.|[^"])*"" +color yellow "'(\\.|[^'])*'" + +## Comments +color cyan "(^|[[:space:]])#.*$" +color brightcyan "(^|[[:space:]])##.*$" + +## Trailing spaces +color ,green "[[:space:]]+$" diff --git a/linux/.config/awesome/config.lua b/linux/.config/awesome/config.lua index be1ffea..5dc6bb3 100644 --- a/linux/.config/awesome/config.lua +++ b/linux/.config/awesome/config.lua @@ -3,15 +3,15 @@ local HOME = os.getenv("HOME") return { terminal = HOME .. "/.local/bin/wezterm", terminal_separator = "start", - editor = "nvim", + editor = "nano", screenshot = HOME .. "/.local/bin/screenie", modkey = "Mod4", - theme = "tokyo_night", + theme = "amora_focus", font = "Terminus 8", gap = 4, border_width = 1, icon_theme = "Chicago95-tux", - wallpaper = HOME .. "/Pictures/pixelart_night_stars_clouds_trees_cozy.png", + wallpaper = HOME .. "/Pictures/starrynight.png", layouts = { "fair", "fair.horizontal", diff --git a/linux/.config/awesome/rc.lua b/linux/.config/awesome/rc.lua index 83eef8d..0e6190c 100644 --- a/linux/.config/awesome/rc.lua +++ b/linux/.config/awesome/rc.lua @@ -75,6 +75,9 @@ local modkey = config.modkey or "Mod4" local altkey = config.altkey or "Mod1" cyclefocus.move_mouse_pointer = false +cyclefocus.cycle_filters = { + function(c, source_c) return true end, +} -- Themes define colours, icons, font and wallpapers. do @@ -246,7 +249,7 @@ local function set_wallpaper(s) if type(wallpaper) == "function" then wallpaper = wallpaper(s) end - gears.wallpaper.maximized(wallpaper, s, true) + gears.wallpaper.maximized(wallpaper, s, false) end end @@ -330,6 +333,8 @@ local function makeBarIcon(icon) end -- Widgets +local clock_icon = makeBarIcon("clock") +local uclock = wibox.widget.textclock(markup(beautiful.widget_clock or beautiful.wibar_fg, "(UTC: %H) "), 1, "UTC") local clock = wibox.widget.textclock(markup(beautiful.widget_clock or beautiful.wibar_fg, "%H:%M:%S"), 1) local calendar = lain.widget.cal({ attach_to = {clock}, @@ -375,18 +380,21 @@ local volume_buttons = awful.util.table.join( volume.widget:buttons(volume_buttons) volume_icon:buttons(volume_buttons)--]] +local memory_icon = makeBarIcon("memory") local memory = lain.widget.mem({ settings = function() widget:set_markup(markup(beautiful.widget_memory or beautiful.wibar_fg, mem_now.used .. " MB, " .. mem_now.swapused .. " MB")) end }) +local cpu_icon = makeBarIcon("cpu") local cpu = lain.widget.cpu({ settings = function() widget:set_markup(markup(beautiful.widget_cpu or beautiful.wibar_fg, cpu_now.usage .. "%")) end }) +local cpu_temp_icon = makeBarIcon("cpu_temp") local cpu_temp = wibox.widget.textbox() awful.widget.watch( 'bash -c "cat /sys/class/hwmon/hwmon1/temp1_input"', @@ -397,6 +405,7 @@ awful.widget.watch( cpu_temp ) +local gpu_icon = makeBarIcon("gpu") local gpu = wibox.widget.textbox() awful.widget.watch( 'bash -c "radeontop -d - -l 1"', @@ -410,6 +419,7 @@ awful.widget.watch( gpu ) +local gpu_temp_icon = makeBarIcon("gpu_temp") local gpu_temp = wibox.widget.textbox() awful.widget.watch( 'bash -c "cat /sys/class/hwmon/hwmon0/temp1_input"', @@ -626,7 +636,7 @@ awful.screen.connect_for_each_screen(function(s) music_wrapper, { { - makeBarIcon("cpu"), + cpu_icon, cpu.widget, layout = wibox.layout.fixed.horizontal, }, @@ -638,7 +648,7 @@ awful.screen.connect_for_each_screen(function(s) }, { { - makeBarIcon("cpu_temp"), + cpu_temp_icon, cpu_temp, layout = wibox.layout.fixed.horizontal, }, @@ -650,7 +660,7 @@ awful.screen.connect_for_each_screen(function(s) }, { { - makeBarIcon("gpu"), + gpu_icon, gpu, layout = wibox.layout.fixed.horizontal, }, @@ -662,7 +672,7 @@ awful.screen.connect_for_each_screen(function(s) }, { { - makeBarIcon("gpu_temp"), + gpu_temp_icon, gpu_temp, layout = wibox.layout.fixed.horizontal, }, @@ -674,7 +684,7 @@ awful.screen.connect_for_each_screen(function(s) }, { { - makeBarIcon("memory"), + memory_icon, memory.widget, layout = wibox.layout.fixed.horizontal, }, @@ -723,7 +733,8 @@ awful.screen.connect_for_each_screen(function(s) },--]] { { - makeBarIcon("clock"), + clock_icon, + uclock, clock, layout = wibox.layout.fixed.horizontal, }, @@ -755,6 +766,8 @@ root.buttons(gears.table.join( -- }}} -- {{{ Key bindings + + globalkeys = gears.table.join( -- awesome awful.key( @@ -841,7 +854,24 @@ globalkeys = gears.table.join( awful.key( {}, "Print", function() - awful.spawn(screenshot) + awful.spawn.with_line_callback("screenie-min", { + stdout = function(path) + awful.menu({ + { + "Upload Image", + function() + awful.spawn('elixiremanager.sh "' .. path .. '"') + end, + }, + { + "Copy Image", + function() + awful.spawn('xclip -selection clipboard -target image/png "' .. path .. '"') + end, + } + }):show() + end, + }) end, { description = "run screenshot tool", diff --git a/linux/.config/awesome/themes/amora_focus.lua b/linux/.config/awesome/themes/amora_focus.lua new file mode 100755 index 0000000..8087de6 --- /dev/null +++ b/linux/.config/awesome/themes/amora_focus.lua @@ -0,0 +1,146 @@ +--------------------------- +-- Default awesome theme -- +--------------------------- + +local theme_assets = require("beautiful.theme_assets") +local xresources = require("beautiful.xresources") +local dpi = xresources.apply_dpi + +local gfs = require("gears.filesystem") +local themes_path = gfs.get_themes_dir() + +local colors = { + background = "#1a1a1a", + foreground = "#dedbeb", + secondary = "#171717", + tertiary = "#141414", + accent = "#634e75", + + color0 = "#2d2d2d", + color1 = "#e83f80", + color2 = "#a2baa8", + color3 = "#eacac0", + color4 = "#9985d1", + color5 = "#e68ac1", + color6 = "#aabae7", + color7 = "#dedbeb", + + color8 = "#383838", + color9 = "#f55d8f", + color10 = "#bfd1c3", + color11 = "#f0ddd8", + color12 = "#b4a4de", + color13 = "#edabd2", + color14 = "#c4d1f5", + color15 = "#edebf7", +} + +local theme = dofile(themes_path .. "default/theme.lua") + +theme.__colors = colors + +theme.bg_normal = colors.secondary +theme.bg_focus = colors.background +theme.bg_urgent = colors.color0 +theme.bg_minimize = colors.tertiary +theme.bg_systray = colors.background + +theme.fg_normal = colors.color7 +theme.fg_focus = colors.foreground +theme.fg_urgent = colors.color1 +theme.fg_minimize = colors.color0 + +theme.border_normal = theme.bg_normal +theme.border_focus = colors.accent +theme.border_marked = colors.color2 + +-- There are other variable sets +-- overriding the default one when +-- defined, the sets are: +-- taglist_[bg|fg]_[focus|urgent|occupied|empty|volatile] +-- tasklist_[bg|fg]_[focus|urgent] +-- titlebar_[bg|fg]_[normal|focus] +-- tooltip_[font|opacity|fg_color|bg_color|border_width|border_color] +-- mouse_finder_[color|timeout|animate_timeout|radius|factor] +-- prompt_[fg|bg|fg_cursor|bg_cursor|font] +-- hotkeys_[bg|fg|border_width|border_color|shape|opacity|modifiers_fg|label_bg|label_fg|group_margin|font|description_font] +-- Example: +--theme.taglist_bg_focus = "#ff0000" + +theme.taglist_bg_focus = colors.background +theme.taglist_bg_urgent = theme.taglist_bg_focus +theme.taglist_bg_occupied = theme.taglist_bg_focus +theme.taglist_bg_empty = theme.taglist_bg_focus +theme.taglist_bg_volatile = theme.taglist_bg_focus + +theme.taglist_fg_focus = colors.color5 +theme.taglist_fg_urgent = colors.color1 +theme.taglist_fg_occupied = colors.color2 +theme.taglist_fg_empty = colors.foreground +theme.taglist_fg_volatile = colors.color3 + +theme.tasklist_fg_focus = colors.color5 +theme.tasklist_fg_urgent = colors.color1 + +theme.wibar_bg = colors.background +theme.wibar_fg = colors.foreground + +theme.layout_fg = colors.foreground + +-- bar items +theme.widget_clock = colors.color6 +theme.widget_volume = colors.color4 +theme.widget_volume_muted = colors.color9 +theme.widget_cpu = colors.color10 +theme.widget_gpu = colors.color14 +theme.widget_memory = colors.color11 +theme.widget_music = colors.color13 +theme.widget_packages = colors.color4 +theme.widget_net_up = colors.color1 +theme.widget_net_down = colors.color2 + +-- Generate taglist squares: +--[[local taglist_square_size = dpi(4) +theme.taglist_squares_sel = theme_assets.taglist_squares_sel( + taglist_square_size, theme.fg_normal +) +theme.taglist_squares_unsel = theme_assets.taglist_squares_unsel( + taglist_square_size, theme.fg_normal +)--]] +theme.taglist_squares_sel = nil +theme.taglist_squares_unsel = nil + +-- Variables set for theming notifications: +-- notification_font +-- notification_[bg|fg] +-- notification_[width|height|margin] +-- notification_[border_color|border_width|shape|opacity] + +theme.notification_bg = colors.background +theme.notification_fg = colors.foreground +theme.notification_border_color = colors.color5 + +-- Variables set for theming the menu: +-- menu_[bg|fg]_[normal|focus] +-- menu_[border_color|border_width] +theme.menu_bg_normal = colors.background +theme.menu_bg_focus = colors.accent + +theme.menu_fg_normal = colors.foreground +theme.menu_fg_focus = "#ffffff" + +theme.menu_border_color = colors.background + +-- Generate Awesome icon: +theme.awesome_icon = theme_assets.awesome_icon( + 16, colors.background, colors.accent +) + +-- You can add as many variables as +-- you wish and access them by using +-- beautiful.variable in your rc.lua +--theme.bg_widget = "#cc0000" + +return theme + +-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80