From ba9214c689b425a4fec07552db9cb5db597af0ab Mon Sep 17 00:00:00 2001 From: Luke Francl Date: Thu, 23 Jun 2016 21:42:12 +0200 Subject: [PATCH] syntaxes: add highlighting rules for Rust With tweaks from Andrea Canciani, Ben Young, Tennix, and Dirkjan Ochtman. This fulfills https://savannah.gnu.org/bugs/?48163. --- doc/syntax/Makefile.am | 1 + doc/syntax/rust.nanorc | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 doc/syntax/rust.nanorc diff --git a/doc/syntax/Makefile.am b/doc/syntax/Makefile.am index 64440357..5e662e2f 100644 --- a/doc/syntax/Makefile.am +++ b/doc/syntax/Makefile.am @@ -34,6 +34,7 @@ pkgdata_DATA = asm.nanorc \ pov.nanorc \ python.nanorc \ ruby.nanorc \ + rust.nanorc \ sh.nanorc \ spec.nanorc \ tcl.nanorc \ diff --git a/doc/syntax/rust.nanorc b/doc/syntax/rust.nanorc new file mode 100644 index 00000000..c664ce02 --- /dev/null +++ b/doc/syntax/rust.nanorc @@ -0,0 +1,39 @@ +## Syntax highlighting for Rust. +## Copyright 2015 Luke Francl. +## Licensed under GPL version 3. + +## NOTE: Rules are applied in order: later rules re-colorize matching text. + +syntax "rust" "\.rs" +comment "//" + +# Function definitions +color magenta "fn [a-z_0-9]+" + +# Reserved words +color yellow "\<(abstract|alignof|as|become|box|break|const|continue|crate|do|else|enum|extern|false|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|offsetof|override|priv|pub|pure|ref|return|sizeof|static|self|struct|super|true|trait|type|typeof|unsafe|unsized|use|virtual|where|while|yield)\>" + +# Macros +color red "[a-z_]+!" + +# Constants +color magenta "[A-Z][A-Z_0-9]+" + +# Traits/Enums/Structs/Types/... +color magenta "[A-Z][a-z0-9]+" + +# Strings +color green "\".*\"" +color green start="\".*\\$" end=".*\"" +## NOTE: This isn't accurate, but matching "#{0,} for the end of the string is too liberal. +color green start="r#+\"" end="\"#+" + +# Comments +color blue "//.*" +color blue start="/\*" end="\*/" + +# Attributes +color magenta start="#!\[" end="\]" + +# Some common markers +color brightcyan "(XXX|TODO|FIXME|\?\?\?)"