Skip to content

Commit 4049e5c

Browse files
authoredDec 10, 2021
Rust: Improved type-definition and use standard tokens correctly (#3253)
1 parent e437325 commit 4049e5c

File tree

4 files changed

+125
-93
lines changed

4 files changed

+125
-93
lines changed
 

‎components/prism-rust.js

+2-3
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,7 @@
2727
},
2828
'char': {
2929
pattern: /b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,
30-
greedy: true,
31-
alias: 'string'
30+
greedy: true
3231
},
3332
'attribute': {
3433
pattern: /#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,
@@ -71,7 +70,7 @@
7170
alias: 'function'
7271
},
7372
'type-definition': {
74-
pattern: /(\b(?:enum|struct|union)\s+)\w+/,
73+
pattern: /(\b(?:enum|struct|trait|type|union)\s+)\w+/,
7574
lookbehind: true,
7675
alias: 'class-name'
7776
},

‎components/prism-rust.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎tests/languages/rust/class-name_feature.test

+34-1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,12 @@ enum Foo {
1616
}
1717
}
1818

19+
pub trait Summary {
20+
fn summarize(&self) -> String;
21+
}
22+
23+
type Point = (u8, u8);
24+
1925
----------------------------------------------------
2026

2127
[
@@ -91,7 +97,34 @@ enum Foo {
9197

9298
["punctuation", "}"],
9399

94-
["punctuation", "}"]
100+
["punctuation", "}"],
101+
102+
["keyword", "pub"],
103+
["keyword", "trait"],
104+
["type-definition", "Summary"],
105+
["punctuation", "{"],
106+
107+
["keyword", "fn"],
108+
["function-definition", "summarize"],
109+
["punctuation", "("],
110+
["operator", "&"],
111+
["keyword", "self"],
112+
["punctuation", ")"],
113+
["punctuation", "->"],
114+
["class-name", "String"],
115+
["punctuation", ";"],
116+
117+
["punctuation", "}"],
118+
119+
["keyword", "type"],
120+
["type-definition", "Point"],
121+
["operator", "="],
122+
["punctuation", "("],
123+
["keyword", "u8"],
124+
["punctuation", ","],
125+
["keyword", "u8"],
126+
["punctuation", ")"],
127+
["punctuation", ";"]
95128
]
96129

97130
----------------------------------------------------

‎tests/languages/rust/keyword_feature.test

+88-88
Original file line numberDiff line numberDiff line change
@@ -1,107 +1,107 @@
1-
abstract
2-
as
3-
async
4-
await
5-
become
6-
box
7-
break
8-
const
9-
continue
1+
abstract;
2+
as;
3+
async;
4+
await;
5+
become;
6+
box;
7+
break;
8+
const;
9+
continue;
1010
crate;
11-
do
12-
dyn
13-
else
11+
do;
12+
dyn;
13+
else;
1414
enum;
15-
extern
16-
final
15+
extern;
16+
final;
1717
fn;
18-
for
19-
if
20-
impl
21-
in
22-
let
23-
loop
24-
macro
25-
match
18+
for;
19+
if;
20+
impl;
21+
in;
22+
let;
23+
loop;
24+
macro;
25+
match;
2626
mod;
27-
move
28-
mut
29-
override
30-
priv
31-
pub
32-
ref
33-
return
34-
self
35-
Self
36-
static
27+
move;
28+
mut;
29+
override;
30+
priv;
31+
pub;
32+
ref;
33+
return;
34+
self;
35+
Self;
36+
static;
3737
struct;
38-
super
39-
trait
40-
try
41-
type
42-
typeof
38+
super;
39+
trait;
40+
try;
41+
type;
42+
typeof;
4343
union;
44-
unsafe
45-
unsized
46-
use
47-
virtual
48-
where
49-
while
50-
yield
44+
unsafe;
45+
unsized;
46+
use;
47+
virtual;
48+
where;
49+
while;
50+
yield;
5151

5252
----------------------------------------------------
5353

5454
[
55-
["keyword", "abstract"],
56-
["keyword", "as"],
57-
["keyword", "async"],
58-
["keyword", "await"],
59-
["keyword", "become"],
60-
["keyword", "box"],
61-
["keyword", "break"],
62-
["keyword", "const"],
63-
["keyword", "continue"],
55+
["keyword", "abstract"], ["punctuation", ";"],
56+
["keyword", "as"], ["punctuation", ";"],
57+
["keyword", "async"], ["punctuation", ";"],
58+
["keyword", "await"], ["punctuation", ";"],
59+
["keyword", "become"], ["punctuation", ";"],
60+
["keyword", "box"], ["punctuation", ";"],
61+
["keyword", "break"], ["punctuation", ";"],
62+
["keyword", "const"], ["punctuation", ";"],
63+
["keyword", "continue"], ["punctuation", ";"],
6464
["keyword", "crate"], ["punctuation", ";"],
65-
["keyword", "do"],
66-
["keyword", "dyn"],
67-
["keyword", "else"],
65+
["keyword", "do"], ["punctuation", ";"],
66+
["keyword", "dyn"], ["punctuation", ";"],
67+
["keyword", "else"], ["punctuation", ";"],
6868
["keyword", "enum"], ["punctuation", ";"],
69-
["keyword", "extern"],
70-
["keyword", "final"],
69+
["keyword", "extern"], ["punctuation", ";"],
70+
["keyword", "final"], ["punctuation", ";"],
7171
["keyword", "fn"], ["punctuation", ";"],
72-
["keyword", "for"],
73-
["keyword", "if"],
74-
["keyword", "impl"],
75-
["keyword", "in"],
76-
["keyword", "let"],
77-
["keyword", "loop"],
78-
["keyword", "macro"],
79-
["keyword", "match"],
72+
["keyword", "for"], ["punctuation", ";"],
73+
["keyword", "if"], ["punctuation", ";"],
74+
["keyword", "impl"], ["punctuation", ";"],
75+
["keyword", "in"], ["punctuation", ";"],
76+
["keyword", "let"], ["punctuation", ";"],
77+
["keyword", "loop"], ["punctuation", ";"],
78+
["keyword", "macro"], ["punctuation", ";"],
79+
["keyword", "match"], ["punctuation", ";"],
8080
["keyword", "mod"], ["punctuation", ";"],
81-
["keyword", "move"],
82-
["keyword", "mut"],
83-
["keyword", "override"],
84-
["keyword", "priv"],
85-
["keyword", "pub"],
86-
["keyword", "ref"],
87-
["keyword", "return"],
88-
["keyword", "self"],
89-
["keyword", "Self"],
90-
["keyword", "static"],
81+
["keyword", "move"], ["punctuation", ";"],
82+
["keyword", "mut"], ["punctuation", ";"],
83+
["keyword", "override"], ["punctuation", ";"],
84+
["keyword", "priv"], ["punctuation", ";"],
85+
["keyword", "pub"], ["punctuation", ";"],
86+
["keyword", "ref"], ["punctuation", ";"],
87+
["keyword", "return"], ["punctuation", ";"],
88+
["keyword", "self"], ["punctuation", ";"],
89+
["keyword", "Self"], ["punctuation", ";"],
90+
["keyword", "static"], ["punctuation", ";"],
9191
["keyword", "struct"], ["punctuation", ";"],
92-
["keyword", "super"],
93-
["keyword", "trait"],
94-
["keyword", "try"],
95-
["keyword", "type"],
96-
["keyword", "typeof"],
92+
["keyword", "super"], ["punctuation", ";"],
93+
["keyword", "trait"], ["punctuation", ";"],
94+
["keyword", "try"], ["punctuation", ";"],
95+
["keyword", "type"], ["punctuation", ";"],
96+
["keyword", "typeof"], ["punctuation", ";"],
9797
["keyword", "union"], ["punctuation", ";"],
98-
["keyword", "unsafe"],
99-
["keyword", "unsized"],
100-
["keyword", "use"],
101-
["keyword", "virtual"],
102-
["keyword", "where"],
103-
["keyword", "while"],
104-
["keyword", "yield"]
98+
["keyword", "unsafe"], ["punctuation", ";"],
99+
["keyword", "unsized"], ["punctuation", ";"],
100+
["keyword", "use"], ["punctuation", ";"],
101+
["keyword", "virtual"], ["punctuation", ";"],
102+
["keyword", "where"], ["punctuation", ";"],
103+
["keyword", "while"], ["punctuation", ";"],
104+
["keyword", "yield"], ["punctuation", ";"]
105105
]
106106

107107
----------------------------------------------------

0 commit comments

Comments
 (0)
Please sign in to comment.