]> git.lizzy.rs Git - rust.git/commitdiff
Merge branch 'refs/heads/master' into feature/granular-scopes
authorOmer Ben-Amram <omerbenamram@gmail.com>
Sat, 14 Dec 2019 15:29:30 +0000 (17:29 +0200)
committerOmer Ben-Amram <omerbenamram@gmail.com>
Sat, 14 Dec 2019 15:29:30 +0000 (17:29 +0200)
crates/ra_ide/src/snapshots/highlighting.html
crates/ra_ide/src/syntax_highlighting.rs
editors/code/package.json
editors/code/src/highlighting.ts

index 4166a8f90d47f31a0177354edd67b39ebaba5542..40605d9efdfbc4a69573a08538bbac9e19622758 100644 (file)
@@ -10,8 +10,10 @@ pre                 { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
 .builtin            { color: #DD6718; }
 .text               { color: #DCDCCC; }
 .type               { color: #7CB8BB; }
+.type\.param       { color: #20999D; }
 .attribute          { color: #94BFF3; }
 .literal            { color: #BFEBBF; }
+.literal\.numeric  { color: #6A8759; }
 .macro              { color: #94BFF3; }
 .variable           { color: #DCDCCC; }
 .variable\.mut     { color: #DCDCCC; text-decoration: underline; }
@@ -22,36 +24,36 @@ pre                 { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
 </style>
 <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>
 <span class="keyword">struct</span> <span class="type">Foo</span> {
-    <span class="keyword">pub</span> <span class="field">x</span>: <span class="type">i32</span>,
-    <span class="keyword">pub</span> <span class="field">y</span>: <span class="type">i32</span>,
+    <span class="keyword">pub</span> <span class="field">x</span>: <span class="type.builtin">i32</span>,
+    <span class="keyword">pub</span> <span class="field">y</span>: <span class="type.builtin">i32</span>,
 }
 
-<span class="keyword">fn</span> <span class="function">foo</span>&lt;<span class="type">T</span>&gt;() -&gt; <span class="type">T</span> {
+<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> {
     <span class="macro">unimplemented</span><span class="macro">!</span>();
-    <span class="function">foo</span>::&lt;<span class="type">i32</span>&gt;();
+    <span class="function">foo</span>::&lt;<span class="type.builtin">i32</span>&gt;();
 }
 
 <span class="comment">// comment</span>
 <span class="keyword">fn</span> <span class="function">main</span>() {
-    <span class="macro">println</span><span class="macro">!</span>(<span class="string">"Hello, {}!"</span>, <span class="literal">92</span>);
+    <span class="macro">println</span><span class="macro">!</span>(<span class="string">"Hello, {}!"</span>, <span class="literal.numeric">92</span>);
 
     <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>();
     <span class="keyword.control">if</span> <span class="keyword">true</span> {
-        <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> });
+        <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> });
     }
-    <span class="keyword.unsafe">unsafe</span> { <span class="variable.mut">vec</span>.<span class="text">set_len</span>(<span class="literal">0</span>); }
+    <span class="keyword.unsafe">unsafe</span> { <span class="variable.mut">vec</span>.<span class="text">set_len</span>(<span class="literal.numeric">0</span>); }
 
-    <span class="keyword">let</span> <span class="keyword">mut</span> <span class="variable.mut">x</span> = <span class="literal">42</span>;
+    <span class="keyword">let</span> <span class="keyword">mut</span> <span class="variable.mut">x</span> = <span class="literal.numeric">42</span>;
     <span class="keyword">let</span> <span class="variable.mut">y</span> = &<span class="keyword">mut</span> <span class="variable.mut">x</span>;
     <span class="keyword">let</span> <span class="variable">z</span> = &<span class="variable.mut">y</span>;
 
     <span class="variable.mut">y</span>;
 }
 
-<span class="keyword">enum</span> <span class="type">E</span>&lt;<span class="type">X</span>&gt; {
-    <span class="constant">V</span>(<span class="type">X</span>)
+<span class="keyword">enum</span> <span class="type">E</span>&lt;<span class="type.param">X</span>&gt; {
+    <span class="constant">V</span>(<span class="type.param">X</span>)
 }
 
-<span class="keyword">impl</span>&lt;<span class="type">X</span>&gt; <span class="type">E</span>&lt;<span class="type">X</span>&gt; {
-    <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; {}
+<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; {
+    <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; {}
 }</code></pre>
\ No newline at end of file
index 7ecb1a027243070b4cab7ce6dc6e6ea36a1c745a..235e09ffca52ebf4aa82d6d340b419d9a2c6af66 100644 (file)
@@ -108,14 +108,17 @@ fn hash<T: std::hash::Hash + std::fmt::Debug>(x: T) -> u64 {
                 match name_kind {
                     Some(name_kind) => highlight_name(db, name_kind),
                     None => name.syntax().parent().map_or("function", |x| match x.kind() {
-                        TYPE_PARAM | STRUCT_DEF | ENUM_DEF | TRAIT_DEF | TYPE_ALIAS_DEF => "type",
+                        STRUCT_DEF | ENUM_DEF | TRAIT_DEF | TYPE_ALIAS_DEF => "type",
+                        TYPE_PARAM => "type.param",
                         RECORD_FIELD_DEF => "field",
                         _ => "function",
                     }),
                 }
             }
-            INT_NUMBER | FLOAT_NUMBER | CHAR | BYTE => "literal",
-            LIFETIME => "parameter",
+            INT_NUMBER | FLOAT_NUMBER => "literal.numeric",
+            BYTE => "literal.byte",
+            CHAR => "literal.char",
+            LIFETIME => "type.lifetime",
             T![unsafe] => "keyword.unsafe",
             k if is_control_keyword(k) => "keyword.control",
             k if k.is_keyword() => "keyword",
@@ -224,8 +227,9 @@ fn highlight_name(db: &RootDatabase, name_kind: NameKind) -> &'static str {
         Def(hir::ModuleDef::Static(_)) => "constant",
         Def(hir::ModuleDef::Trait(_)) => "type",
         Def(hir::ModuleDef::TypeAlias(_)) => "type",
-        Def(hir::ModuleDef::BuiltinType(_)) => "type",
-        SelfType(_) | TypeParam(_) => "type",
+        Def(hir::ModuleDef::BuiltinType(_)) => "type.builtin",
+        SelfType(_) => "type.self",
+        TypeParam(_) => "type.param",
         Local(local) => {
             if local.is_mut(db) {
                 "variable.mut"
@@ -255,8 +259,10 @@ fn html_escape(text: &str) -> String {
 .builtin            { color: #DD6718; }
 .text               { color: #DCDCCC; }
 .type               { color: #7CB8BB; }
+.type\\.param       { color: #20999D; }
 .attribute          { color: #94BFF3; }
 .literal            { color: #BFEBBF; }
+.literal\\.numeric  { color: #6A8759; }
 .macro              { color: #94BFF3; }
 .variable           { color: #DCDCCC; }
 .variable\\.mut     { color: #DCDCCC; text-decoration: underline; }
index e3bb07be797d98bcdbe073e90f372031adb605a4..43db61a8bc0f82337d406e4e585086c081a8a085 100644 (file)
                     "highContrast": "#B5CEA8"
                 }
             },
+            {
+                "id": "ralsp.literal.numeric",
+                "description": "Color for numeric literals",
+                "defaults": {
+                    "dark": "#BECEA8",
+                    "light": "#09885A",
+                    "highContrast": "#B5CEA8"
+                }
+            },
+            {
+                "id": "ralsp.literal.char",
+                "description": "Color for character literals",
+                "defaults": {
+                    "dark": "#BECEA8",
+                    "light": "#09885A",
+                    "highContrast": "#B5CEA8"
+                }
+            },
+            {
+                "id": "ralsp.literal.byte",
+                "description": "Color for byte literals",
+                "defaults": {
+                    "dark": "#BECEA8",
+                    "light": "#09885A",
+                    "highContrast": "#B5CEA8"
+                }
+            },
             {
                 "id": "ralsp.macro",
                 "description": "Color for macros",
             },
             {
                 "id": "ralsp.type",
-                "description": "Color for types",
+                "description": "Color for other types (traits, aliases..)",
+                "defaults": {
+                    "dark": "#4EC9B0",
+                    "light": "#267F99",
+                    "highContrast": "#4EC9B0"
+                }
+            },
+            {
+                "id": "ralsp.type.builtin",
+                "description": "Color for built-in types (&str, bool, u16, u32)",
+                "defaults": {
+                    "dark": "#4EC9B0",
+                    "light": "#267F99",
+                    "highContrast": "#4EC9B0"
+                }
+            },
+            {
+                "id": "ralsp.type.lifetime",
+                "description": "Color for `Self` param type",
+                "defaults": {
+                    "dark": "#4EC9B0",
+                    "light": "#267F99",
+                    "highContrast": "#4EC9B0"
+                }
+            },
+            {
+                "id": "ralsp.type.self",
+                "description": "Color for `Self` param type",
+                "defaults": {
+                    "dark": "#4EC9B0",
+                    "light": "#267F99",
+                    "highContrast": "#4EC9B0"
+                }
+            },
+            {
+                "id": "ralsp.type.param",
+                "description": "Color for type parameters",
                 "defaults": {
                     "dark": "#4EC9B0",
                     "light": "#267F99",
index 6d50a2f2ded08886227e7d9de60445ba88e3acdc..d7c0ae1316a6b7105f5227b42ffd9e3ce0223d96 100644 (file)
@@ -53,10 +53,17 @@ export class Highlighter {
             decoration('parameter'),
             decoration('constant'),
             decoration('type'),
+            decoration('type.self'),
+            decoration('type.generic'),
+            decoration('type.param'),
+            decoration('type.lifetime'),
             decoration('builtin'),
             decoration('text'),
             decoration('attribute'),
             decoration('literal'),
+            decoration('literal.numeric'),
+            decoration('literal.char'),
+            decoration('literal.byte'),
             decoration('macro'),
             decoration('variable'),
             decoration('variable.mut', 'underline'),