From c2358365ad0b82d4a5f023192ee0ab2c198d6aee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lauren=C8=9Biu=20Nicola?= <lnicola@dend.ro> Date: Mon, 25 May 2020 11:51:56 +0300 Subject: Add self keyword semantic token type --- crates/ra_ide/src/snapshots/highlighting.html | 8 ++++---- crates/ra_ide/src/syntax_highlighting.rs | 1 + crates/ra_ide/src/syntax_highlighting/tags.rs | 2 ++ 3 files changed, 7 insertions(+), 4 deletions(-) (limited to 'crates/ra_ide') diff --git a/crates/ra_ide/src/snapshots/highlighting.html b/crates/ra_ide/src/snapshots/highlighting.html index 198139220..352e35095 100644 --- a/crates/ra_ide/src/snapshots/highlighting.html +++ b/crates/ra_ide/src/snapshots/highlighting.html @@ -35,12 +35,12 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd } <span class="keyword">trait</span> <span class="trait declaration">Bar</span> { - <span class="keyword">fn</span> <span class="function declaration">bar</span>(&<span class="keyword">self</span>) -> <span class="builtin_type">i32</span>; + <span class="keyword">fn</span> <span class="function declaration">bar</span>(&<span class="self_keyword">self</span>) -> <span class="builtin_type">i32</span>; } <span class="keyword">impl</span> <span class="trait">Bar</span> <span class="keyword">for</span> <span class="struct">Foo</span> { - <span class="keyword">fn</span> <span class="function declaration">bar</span>(&<span class="keyword">self</span>) -> <span class="builtin_type">i32</span> { - <span class="keyword">self</span>.<span class="field">x</span> + <span class="keyword">fn</span> <span class="function declaration">bar</span>(&<span class="self_keyword">self</span>) -> <span class="builtin_type">i32</span> { + <span class="self_keyword">self</span>.<span class="field">x</span> } } @@ -92,7 +92,7 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd <span class="keyword">use</span> <span class="enum">Option</span>::*; <span class="keyword">impl</span><<span class="type_param declaration">T</span>> <span class="enum">Option</span><<span class="type_param">T</span>> { - <span class="keyword">fn</span> <span class="function declaration">and</span><<span class="type_param declaration">U</span>>(<span class="keyword">self</span>, <span class="variable declaration">other</span>: <span class="enum">Option</span><<span class="type_param">U</span>>) -> <span class="enum">Option</span><(<span class="type_param">T</span>, <span class="type_param">U</span>)> { + <span class="keyword">fn</span> <span class="function declaration">and</span><<span class="type_param declaration">U</span>>(<span class="self_keyword">self</span>, <span class="variable declaration">other</span>: <span class="enum">Option</span><<span class="type_param">U</span>>) -> <span class="enum">Option</span><(<span class="type_param">T</span>, <span class="type_param">U</span>)> { <span class="keyword control">match</span> <span class="variable">other</span> { <span class="enum_variant">None</span> => <span class="macro">unimplemented!</span>(), <span class="variable declaration">Nope</span> => <span class="variable">Nope</span>, diff --git a/crates/ra_ide/src/syntax_highlighting.rs b/crates/ra_ide/src/syntax_highlighting.rs index 61aeb28cb..8a995d779 100644 --- a/crates/ra_ide/src/syntax_highlighting.rs +++ b/crates/ra_ide/src/syntax_highlighting.rs @@ -414,6 +414,7 @@ fn highlight_element( T![for] if !is_child_of_impl(element) => h | HighlightModifier::ControlFlow, T![unsafe] => h | HighlightModifier::Unsafe, T![true] | T![false] => HighlightTag::BoolLiteral.into(), + T![self] => HighlightTag::SelfKeyword.into(), _ => h, } } diff --git a/crates/ra_ide/src/syntax_highlighting/tags.rs b/crates/ra_ide/src/syntax_highlighting/tags.rs index 09652a5b1..46c718c91 100644 --- a/crates/ra_ide/src/syntax_highlighting/tags.rs +++ b/crates/ra_ide/src/syntax_highlighting/tags.rs @@ -30,6 +30,7 @@ pub enum HighlightTag { Macro, Module, NumericLiteral, + SelfKeyword, SelfType, Static, StringLiteral, @@ -76,6 +77,7 @@ impl HighlightTag { HighlightTag::Macro => "macro", HighlightTag::Module => "module", HighlightTag::NumericLiteral => "numeric_literal", + HighlightTag::SelfKeyword => "self_keyword", HighlightTag::SelfType => "self_type", HighlightTag::Static => "static", HighlightTag::StringLiteral => "string_literal", -- cgit v1.2.3