diff --git a/lexers/embedded/rust.xml b/lexers/embedded/rust.xml index 2ae11b419..f2d7a52f4 100644 --- a/lexers/embedded/rust.xml +++ b/lexers/embedded/rust.xml @@ -218,9 +218,6 @@ - - - @@ -297,6 +294,13 @@ + + + + + + + diff --git a/lexers/testdata/rust/proc_macros.actual b/lexers/testdata/rust/proc_macros.actual new file mode 100644 index 000000000..5e56e202e --- /dev/null +++ b/lexers/testdata/rust/proc_macros.actual @@ -0,0 +1,14 @@ +use smallvec::{smallvec, SmallVec}; + +lazy_static::lazy_static! { + static ref ONE: usize = 1; +} + +fn main() { + pretty_assertions::assert_eq!(*ONE, *ONE); + let _: SmallVec<[_; 16]> = smallvec![1, 2, 3]; + + // And some builtin ones + println!("Hello, world!"); + panic!(); +} diff --git a/lexers/testdata/rust/proc_macros.expected b/lexers/testdata/rust/proc_macros.expected new file mode 100644 index 000000000..55947a3d8 --- /dev/null +++ b/lexers/testdata/rust/proc_macros.expected @@ -0,0 +1,92 @@ +[ + {"type":"Keyword","value":"use"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"smallvec"}, + {"type":"Text","value":"::"}, + {"type":"Punctuation","value":"{"}, + {"type":"Name","value":"smallvec"}, + {"type":"Punctuation","value":","}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"SmallVec"}, + {"type":"Punctuation","value":"};"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"Name","value":"lazy_static"}, + {"type":"Text","value":"::"}, + {"type":"NameFunctionMagic","value":"lazy_static!"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"{"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"Keyword","value":"static"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Keyword","value":"ref"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameConstant","value":"ONE"}, + {"type":"Text","value":": "}, + {"type":"KeywordType","value":"usize"}, + {"type":"Text","value":" "}, + {"type":"Operator","value":"="}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"Punctuation","value":";"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"Punctuation","value":"}"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"Keyword","value":"fn"}, + {"type":"Text","value":" "}, + {"type":"NameFunction","value":"main"}, + {"type":"Punctuation","value":"()"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"{"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"Name","value":"pretty_assertions"}, + {"type":"Text","value":"::"}, + {"type":"NameFunctionMagic","value":"assert_eq!"}, + {"type":"Punctuation","value":"("}, + {"type":"Operator","value":"*"}, + {"type":"NameConstant","value":"ONE"}, + {"type":"Punctuation","value":","}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"*"}, + {"type":"NameConstant","value":"ONE"}, + {"type":"Punctuation","value":");"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"KeywordDeclaration","value":"let"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"_"}, + {"type":"Text","value":": "}, + {"type":"NameClass","value":"SmallVec"}, + {"type":"Operator","value":"\u003c"}, + {"type":"Punctuation","value":"["}, + {"type":"Name","value":"_"}, + {"type":"Punctuation","value":";"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"16"}, + {"type":"Punctuation","value":"]"}, + {"type":"Operator","value":"\u003e"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"="}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameFunctionMagic","value":"smallvec!"}, + {"type":"Punctuation","value":"["}, + {"type":"LiteralNumberInteger","value":"1"}, + {"type":"Punctuation","value":","}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"2"}, + {"type":"Punctuation","value":","}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberInteger","value":"3"}, + {"type":"Punctuation","value":"];"}, + {"type":"TextWhitespace","value":"\n\n "}, + {"type":"CommentSingle","value":"// And some builtin ones\n"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameFunctionMagic","value":"println!"}, + {"type":"Punctuation","value":"("}, + {"type":"LiteralString","value":"\"Hello, world!\""}, + {"type":"Punctuation","value":");"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameFunctionMagic","value":"panic!"}, + {"type":"Punctuation","value":"();"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"Punctuation","value":"}"}, + {"type":"TextWhitespace","value":"\n"} +]