From a27f953341f1baa75511b9bc5a3dcc2371971080 Mon Sep 17 00:00:00 2001 From: Tim Austin Date: Sun, 21 Jul 2019 21:40:02 -0700 Subject: [PATCH] basic elixir highlighting --- elixir.nanorc | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 elixir.nanorc diff --git a/elixir.nanorc b/elixir.nanorc new file mode 100644 index 0000000..25b0cb0 --- /dev/null +++ b/elixir.nanorc @@ -0,0 +1,50 @@ +## Here is an example for Elixir. +## +syntax "Elixir" "\.ex$" "\.exs$" +header "^#!.*/(env +)?elixir( |$)" + +## reserved words +color yellow "\<(case|cond|true|if|false|nil|when|and|or|not|in|fn|do|end|catch|rescue|after|else|with)\>" +color yellow "def[a-z]*" + +## Constants +color brightblue "@[a-z]+" + +## Elixir atoms +color magenta ":[0-9a-z_]+" + +## Elixir Modules +color magenta "[A-Z][a-zA-Z0-9]*" + +## Elixir types +color red "[A-Z][A-Za-z]+\.t\(\)" + +## Some unique things we want to stand out +color brightyellow "\<(__CALLER__|__DIR__|__ENV__|__MODULE__|__STACKTRACE__)\>" +color brightyellow "\<(__add__|__aliases__|__build__|__block__|__deriving__|__info__|__protocol__|__struct__|__using__)\>" + +## sigils +color brightmagenta "~[a-z]\/([^\/])*\/[a-z]*" "~[a-z]\|([^\|])*\|[a-z]*" "~[a-z]\"([^\"])*\"[a-z]*" "~[a-z]\'([^\'])*\'[a-z]*" "~[a-z]\(([^\(\)])*\)[a-z]*" "~[a-z]\[([^\[\]])*\][a-z]*" "~[a-z]\{([^\{\}])*\}[a-z]*" "~[a-z]\<([^\<\>])*\>[a-z]*" + +## Strings, double-quoted +color green ""([^"]|(\\"))*"" + +## Expression substitution. These go inside double-quoted strings, +## "like #{this}". +color brightgreen "#\{[^}]*\}" + +## Strings, single-quoted +color green "'([^']|(\\'))*'" + +## Comments +color cyan "#.*$" "#$" +color brightcyan "##.*$" "##$" + +## "Here" docs +color green start="\"\"\"" end="\"\"\"" + +## Some common markers +color brightcyan "(XXX|TODO|FIXME|\?\?\?)" + +## Trailing spaces +color ,green "[[:space:]]+$"