aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--crates/ra_ide/src/snapshots/highlighting.html26
-rw-r--r--crates/ra_ide/src/syntax_highlighting.rs6
-rw-r--r--editors/code/package.json9
-rw-r--r--editors/code/src/highlighting.ts1
4 files changed, 28 insertions, 14 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>&lt;<span class="type">T</span>&gt;() -&gt; <span class="type">T</span> { 31<span class="keyword">fn</span> <span class="function">foo</span>&lt;<span class="type.param">T</span>&gt;() -&gt; <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>::&lt;<span class="type">i32</span>&gt;(); 33 <span class="function">foo</span>::&lt;<span class="type.builtin">i32</span>&gt;();
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>&lt;<span class="type">X</span>&gt; { 53<span class="keyword">enum</span> <span class="type">E</span>&lt;<span class="type.param">X</span>&gt; {
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>&lt;<span class="type">X</span>&gt; <span class="type">E</span>&lt;<span class="type">X</span>&gt; { 57<span class="keyword">impl</span>&lt;<span class="type.param">X</span>&gt; <span class="type">E</span>&lt;<span class="type.param">X</span>&gt; {
56 <span class="keyword">fn</span> <span class="function">new</span>&lt;<span class="type">T</span>&gt;() -&gt; <span class="type">E</span>&lt;<span class="type">T</span>&gt; {} 58 <span class="keyword">fn</span> <span class="function">new</span>&lt;<span class="type.param">T</span>&gt;() -&gt; <span class="type">E</span>&lt;<span class="type.param">T</span>&gt; {}
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 7be25b234..235e09ffc 100644
--- a/crates/ra_ide/src/syntax_highlighting.rs
+++ b/crates/ra_ide/src/syntax_highlighting.rs
@@ -118,7 +118,7 @@ pub(crate) fn highlight(db: &RootDatabase, file_id: FileId) -> Vec<HighlightedRa
118 INT_NUMBER | FLOAT_NUMBER => "literal.numeric", 118 INT_NUMBER | FLOAT_NUMBER => "literal.numeric",
119 BYTE => "literal.byte", 119 BYTE => "literal.byte",
120 CHAR => "literal.char", 120 CHAR => "literal.char",
121 LIFETIME => "lifetime", 121 LIFETIME => "type.lifetime",
122 T![unsafe] => "keyword.unsafe", 122 T![unsafe] => "keyword.unsafe",
123 k if is_control_keyword(k) => "keyword.control", 123 k if is_control_keyword(k) => "keyword.control",
124 k if k.is_keyword() => "keyword", 124 k if k.is_keyword() => "keyword",
@@ -218,7 +218,7 @@ fn highlight_name(db: &RootDatabase, name_kind: NameKind) -> &'static str {
218 Field(_) => "field", 218 Field(_) => "field",
219 AssocItem(hir::AssocItem::Function(_)) => "function", 219 AssocItem(hir::AssocItem::Function(_)) => "function",
220 AssocItem(hir::AssocItem::Const(_)) => "constant", 220 AssocItem(hir::AssocItem::Const(_)) => "constant",
221 AssocItem(hir::AssocItem::TypeAlias(_)) => "type.alias", 221 AssocItem(hir::AssocItem::TypeAlias(_)) => "type",
222 Def(hir::ModuleDef::Module(_)) => "module", 222 Def(hir::ModuleDef::Module(_)) => "module",
223 Def(hir::ModuleDef::Function(_)) => "function", 223 Def(hir::ModuleDef::Function(_)) => "function",
224 Def(hir::ModuleDef::Adt(_)) => "type", 224 Def(hir::ModuleDef::Adt(_)) => "type",
@@ -259,8 +259,10 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
259.builtin { color: #DD6718; } 259.builtin { color: #DD6718; }
260.text { color: #DCDCCC; } 260.text { color: #DCDCCC; }
261.type { color: #7CB8BB; } 261.type { color: #7CB8BB; }
262.type\\.param { color: #20999D; }
262.attribute { color: #94BFF3; } 263.attribute { color: #94BFF3; }
263.literal { color: #BFEBBF; } 264.literal { color: #BFEBBF; }
265.literal\\.numeric { color: #6A8759; }
264.macro { color: #94BFF3; } 266.macro { color: #94BFF3; }
265.variable { color: #DCDCCC; } 267.variable { color: #DCDCCC; }
266.variable\\.mut { color: #DCDCCC; text-decoration: underline; } 268.variable\\.mut { color: #DCDCCC; text-decoration: underline; }
diff --git a/editors/code/package.json b/editors/code/package.json
index c24e73d24..68b3b6e05 100644
--- a/editors/code/package.json
+++ b/editors/code/package.json
@@ -486,6 +486,15 @@
486 } 486 }
487 }, 487 },
488 { 488 {
489 "id": "ralsp.type.lifetime",
490 "description": "Color for `Self` param type",
491 "defaults": {
492 "dark": "#4EC9B0",
493 "light": "#267F99",
494 "highContrast": "#4EC9B0"
495 }
496 },
497 {
489 "id": "ralsp.type.self", 498 "id": "ralsp.type.self",
490 "description": "Color for `Self` param type", 499 "description": "Color for `Self` param type",
491 "defaults": { 500 "defaults": {
diff --git a/editors/code/src/highlighting.ts b/editors/code/src/highlighting.ts
index 2c8a98aa6..d7c0ae131 100644
--- a/editors/code/src/highlighting.ts
+++ b/editors/code/src/highlighting.ts
@@ -56,6 +56,7 @@ export class Highlighter {
56 decoration('type.self'), 56 decoration('type.self'),
57 decoration('type.generic'), 57 decoration('type.generic'),
58 decoration('type.param'), 58 decoration('type.param'),
59 decoration('type.lifetime'),
59 decoration('builtin'), 60 decoration('builtin'),
60 decoration('text'), 61 decoration('text'),
61 decoration('attribute'), 62 decoration('attribute'),