RedNix-Base/Modules/nanoconf.nix

87 lines
2.0 KiB
Nix

{ config, pkgs, ... }:
{
programs.nano.enable = true;
programs.nano.syntaxHighlight = true;
programs.nano.nanorc = ''
# Provides syntax highlighting for C# in nano
syntax "C#" "\.cs$"
comment "//"
# Statement Keywords
# Selection
color red "\<(if|else|switch|case)\>"
# Iteration
color red "\<(do|for|foreach|in|while)\>"
# Jumps
color red "\<(break|continue|default|goto|return|yield)\>"
# Exception Handling
color red "\<(throw|try|catch|finally)\>"
# Misc
color brightgreen "\<((un)?checked|fixed|lock)\>"
# Method Parameters
color brightblue "\<(params|ref|out)\>"
# Namespace Keywords
color cyan "\<(namespace|using|extern|alias)\>"
# Operator Keywords
color brightgreen "\<(as|await|is|nameof|sizeof|typeof|stackalloc)\>"
# Conversion Keywords
color cyan "\<(explicit|implicit|operator)\>"
# Access Keywords
color green "\<(base|this)\>"
# Query Keywords
color brightgreen "\<(from|where|select|group|into|orderby|join|let|on|equals|by|ascending|descending)\>"
# Contextual Keywords
color brightgreen "\<(add|async|dynamic|get|global|remove|set|value|when)\>"
# Modifiers
# Access
color cyan "\<(public|protected|internal|private)\>"
# Members
color cyan "\<(const|event|new|override|readonly|static|unsafe|virtual|volatile)\>"
# Classes
color cyan "\<(abstract|partial|sealed)\>"
# Labels
color brightblue "\<.*:"
# Types
# Primitives
color green "\<(bool|s?byte|char|decimal|double|float|u?int|u?long|u?short)\>"
# Reference types
color cyan "\<(class|struct|delegate|object|string)\>"
# Misc
color red "\<(void|var|enum)\>"
# Literals
color brightyellow "\<(true|false|null)\>"
icolor brightyellow "\<0x[0-9a-f]+\>"
color brightyellow "\<[0-9]+\>"
color brightyellow "\<0b[01]+\>"
icolor brightyellow "\<[0-9]*\.[0-9]+(e[0-9]+)?\>"
color red "\"([^\"\\]|\\.)*\""
color brightred "'.'"
# Preprocessor Directives
color brightblue "#(if|else|elif|endif|define|undef|warning|error|line|(end)?region|pragma)"
# Comments
color brightblue "//.*"
color brightblue start="/\*" end="\*/"
# Trailing whitespace.
color ,green "[[:space:]]+$"
'';
}