diff options
Diffstat (limited to 'crates/ra_ide/src')
-rw-r--r-- | crates/ra_ide/src/snapshots/highlighting.html | 26 | ||||
-rw-r--r-- | crates/ra_ide/src/syntax_highlighting.rs | 16 |
2 files changed, 25 insertions, 17 deletions
diff --git a/crates/ra_ide/src/snapshots/highlighting.html b/crates/ra_ide/src/snapshots/highlighting.html index 4166a8f90..40605d9ef 100644 --- a/crates/ra_ide/src/snapshots/highlighting.html +++ b/crates/ra_ide/src/snapshots/highlighting.html | |||
@@ -10,8 +10,10 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd | |||
10 | .builtin { color: #DD6718; } | 10 | .builtin { color: #DD6718; } |
11 | .text { color: #DCDCCC; } | 11 | .text { color: #DCDCCC; } |
12 | .type { color: #7CB8BB; } | 12 | .type { color: #7CB8BB; } |
13 | .type\.param { color: #20999D; } | ||
13 | .attribute { color: #94BFF3; } | 14 | .attribute { color: #94BFF3; } |
14 | .literal { color: #BFEBBF; } | 15 | .literal { color: #BFEBBF; } |
16 | .literal\.numeric { color: #6A8759; } | ||
15 | .macro { color: #94BFF3; } | 17 | .macro { color: #94BFF3; } |
16 | .variable { color: #DCDCCC; } | 18 | .variable { color: #DCDCCC; } |
17 | .variable\.mut { color: #DCDCCC; text-decoration: underline; } | 19 | .variable\.mut { color: #DCDCCC; text-decoration: underline; } |
@@ -22,36 +24,36 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd | |||
22 | </style> | 24 | </style> |
23 | <pre><code><span class="attribute">#</span><span class="attribute">[</span><span class="attribute">derive</span><span class="attribute">(</span><span class="attribute">Clone</span><span class="attribute">,</span><span class="attribute"> </span><span class="attribute">Debug</span><span class="attribute">)</span><span class="attribute">]</span> | 25 | <pre><code><span class="attribute">#</span><span class="attribute">[</span><span class="attribute">derive</span><span class="attribute">(</span><span class="attribute">Clone</span><span class="attribute">,</span><span class="attribute"> </span><span class="attribute">Debug</span><span class="attribute">)</span><span class="attribute">]</span> |
24 | <span class="keyword">struct</span> <span class="type">Foo</span> { | 26 | <span class="keyword">struct</span> <span class="type">Foo</span> { |
25 | <span class="keyword">pub</span> <span class="field">x</span>: <span class="type">i32</span>, | 27 | <span class="keyword">pub</span> <span class="field">x</span>: <span class="type.builtin">i32</span>, |
26 | <span class="keyword">pub</span> <span class="field">y</span>: <span class="type">i32</span>, | 28 | <span class="keyword">pub</span> <span class="field">y</span>: <span class="type.builtin">i32</span>, |
27 | } | 29 | } |
28 | 30 | ||
29 | <span class="keyword">fn</span> <span class="function">foo</span><<span class="type">T</span>>() -> <span class="type">T</span> { | 31 | <span class="keyword">fn</span> <span class="function">foo</span><<span class="type.param">T</span>>() -> <span class="type.param">T</span> { |
30 | <span class="macro">unimplemented</span><span class="macro">!</span>(); | 32 | <span class="macro">unimplemented</span><span class="macro">!</span>(); |
31 | <span class="function">foo</span>::<<span class="type">i32</span>>(); | 33 | <span class="function">foo</span>::<<span class="type.builtin">i32</span>>(); |
32 | } | 34 | } |
33 | 35 | ||
34 | <span class="comment">// comment</span> | 36 | <span class="comment">// comment</span> |
35 | <span class="keyword">fn</span> <span class="function">main</span>() { | 37 | <span class="keyword">fn</span> <span class="function">main</span>() { |
36 | <span class="macro">println</span><span class="macro">!</span>(<span class="string">"Hello, {}!"</span>, <span class="literal">92</span>); | 38 | <span class="macro">println</span><span class="macro">!</span>(<span class="string">"Hello, {}!"</span>, <span class="literal.numeric">92</span>); |
37 | 39 | ||
38 | <span class="keyword">let</span> <span class="keyword">mut</span> <span class="variable.mut">vec</span> = <span class="text">Vec</span>::<span class="text">new</span>(); | 40 | <span class="keyword">let</span> <span class="keyword">mut</span> <span class="variable.mut">vec</span> = <span class="text">Vec</span>::<span class="text">new</span>(); |
39 | <span class="keyword.control">if</span> <span class="keyword">true</span> { | 41 | <span class="keyword.control">if</span> <span class="keyword">true</span> { |
40 | <span class="variable.mut">vec</span>.<span class="text">push</span>(<span class="type">Foo</span> { <span class="field">x</span>: <span class="literal">0</span>, <span class="field">y</span>: <span class="literal">1</span> }); | 42 | <span class="variable.mut">vec</span>.<span class="text">push</span>(<span class="type">Foo</span> { <span class="field">x</span>: <span class="literal.numeric">0</span>, <span class="field">y</span>: <span class="literal.numeric">1</span> }); |
41 | } | 43 | } |
42 | <span class="keyword.unsafe">unsafe</span> { <span class="variable.mut">vec</span>.<span class="text">set_len</span>(<span class="literal">0</span>); } | 44 | <span class="keyword.unsafe">unsafe</span> { <span class="variable.mut">vec</span>.<span class="text">set_len</span>(<span class="literal.numeric">0</span>); } |
43 | 45 | ||
44 | <span class="keyword">let</span> <span class="keyword">mut</span> <span class="variable.mut">x</span> = <span class="literal">42</span>; | 46 | <span class="keyword">let</span> <span class="keyword">mut</span> <span class="variable.mut">x</span> = <span class="literal.numeric">42</span>; |
45 | <span class="keyword">let</span> <span class="variable.mut">y</span> = &<span class="keyword">mut</span> <span class="variable.mut">x</span>; | 47 | <span class="keyword">let</span> <span class="variable.mut">y</span> = &<span class="keyword">mut</span> <span class="variable.mut">x</span>; |
46 | <span class="keyword">let</span> <span class="variable">z</span> = &<span class="variable.mut">y</span>; | 48 | <span class="keyword">let</span> <span class="variable">z</span> = &<span class="variable.mut">y</span>; |
47 | 49 | ||
48 | <span class="variable.mut">y</span>; | 50 | <span class="variable.mut">y</span>; |
49 | } | 51 | } |
50 | 52 | ||
51 | <span class="keyword">enum</span> <span class="type">E</span><<span class="type">X</span>> { | 53 | <span class="keyword">enum</span> <span class="type">E</span><<span class="type.param">X</span>> { |
52 | <span class="constant">V</span>(<span class="type">X</span>) | 54 | <span class="constant">V</span>(<span class="type.param">X</span>) |
53 | } | 55 | } |
54 | 56 | ||
55 | <span class="keyword">impl</span><<span class="type">X</span>> <span class="type">E</span><<span class="type">X</span>> { | 57 | <span class="keyword">impl</span><<span class="type.param">X</span>> <span class="type">E</span><<span class="type.param">X</span>> { |
56 | <span class="keyword">fn</span> <span class="function">new</span><<span class="type">T</span>>() -> <span class="type">E</span><<span class="type">T</span>> {} | 58 | <span class="keyword">fn</span> <span class="function">new</span><<span class="type.param">T</span>>() -> <span class="type">E</span><<span class="type.param">T</span>> {} |
57 | }</code></pre> \ No newline at end of file | 59 | }</code></pre> \ No newline at end of file |
diff --git a/crates/ra_ide/src/syntax_highlighting.rs b/crates/ra_ide/src/syntax_highlighting.rs index 7ecb1a027..235e09ffc 100644 --- a/crates/ra_ide/src/syntax_highlighting.rs +++ b/crates/ra_ide/src/syntax_highlighting.rs | |||
@@ -108,14 +108,17 @@ pub(crate) fn highlight(db: &RootDatabase, file_id: FileId) -> Vec<HighlightedRa | |||
108 | match name_kind { | 108 | match name_kind { |
109 | Some(name_kind) => highlight_name(db, name_kind), | 109 | Some(name_kind) => highlight_name(db, name_kind), |
110 | None => name.syntax().parent().map_or("function", |x| match x.kind() { | 110 | None => name.syntax().parent().map_or("function", |x| match x.kind() { |
111 | TYPE_PARAM | STRUCT_DEF | ENUM_DEF | TRAIT_DEF | TYPE_ALIAS_DEF => "type", | 111 | STRUCT_DEF | ENUM_DEF | TRAIT_DEF | TYPE_ALIAS_DEF => "type", |
112 | TYPE_PARAM => "type.param", | ||
112 | RECORD_FIELD_DEF => "field", | 113 | RECORD_FIELD_DEF => "field", |
113 | _ => "function", | 114 | _ => "function", |
114 | }), | 115 | }), |
115 | } | 116 | } |
116 | } | 117 | } |
117 | INT_NUMBER | FLOAT_NUMBER | CHAR | BYTE => "literal", | 118 | INT_NUMBER | FLOAT_NUMBER => "literal.numeric", |
118 | LIFETIME => "parameter", | 119 | BYTE => "literal.byte", |
120 | CHAR => "literal.char", | ||
121 | LIFETIME => "type.lifetime", | ||
119 | T![unsafe] => "keyword.unsafe", | 122 | T![unsafe] => "keyword.unsafe", |
120 | k if is_control_keyword(k) => "keyword.control", | 123 | k if is_control_keyword(k) => "keyword.control", |
121 | k if k.is_keyword() => "keyword", | 124 | k if k.is_keyword() => "keyword", |
@@ -224,8 +227,9 @@ fn highlight_name(db: &RootDatabase, name_kind: NameKind) -> &'static str { | |||
224 | Def(hir::ModuleDef::Static(_)) => "constant", | 227 | Def(hir::ModuleDef::Static(_)) => "constant", |
225 | Def(hir::ModuleDef::Trait(_)) => "type", | 228 | Def(hir::ModuleDef::Trait(_)) => "type", |
226 | Def(hir::ModuleDef::TypeAlias(_)) => "type", | 229 | Def(hir::ModuleDef::TypeAlias(_)) => "type", |
227 | Def(hir::ModuleDef::BuiltinType(_)) => "type", | 230 | Def(hir::ModuleDef::BuiltinType(_)) => "type.builtin", |
228 | SelfType(_) | TypeParam(_) => "type", | 231 | SelfType(_) => "type.self", |
232 | TypeParam(_) => "type.param", | ||
229 | Local(local) => { | 233 | Local(local) => { |
230 | if local.is_mut(db) { | 234 | if local.is_mut(db) { |
231 | "variable.mut" | 235 | "variable.mut" |
@@ -255,8 +259,10 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd | |||
255 | .builtin { color: #DD6718; } | 259 | .builtin { color: #DD6718; } |
256 | .text { color: #DCDCCC; } | 260 | .text { color: #DCDCCC; } |
257 | .type { color: #7CB8BB; } | 261 | .type { color: #7CB8BB; } |
262 | .type\\.param { color: #20999D; } | ||
258 | .attribute { color: #94BFF3; } | 263 | .attribute { color: #94BFF3; } |
259 | .literal { color: #BFEBBF; } | 264 | .literal { color: #BFEBBF; } |
265 | .literal\\.numeric { color: #6A8759; } | ||
260 | .macro { color: #94BFF3; } | 266 | .macro { color: #94BFF3; } |
261 | .variable { color: #DCDCCC; } | 267 | .variable { color: #DCDCCC; } |
262 | .variable\\.mut { color: #DCDCCC; text-decoration: underline; } | 268 | .variable\\.mut { color: #DCDCCC; text-decoration: underline; } |