mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-12-26 04:53:34 +00:00
Add self keyword semantic token type
This commit is contained in:
parent
1527feb744
commit
c2358365ad
6 changed files with 14 additions and 4 deletions
|
@ -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>,
|
||||
|
|
|
@ -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,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -40,6 +40,7 @@ define_semantic_token_types![
|
|||
(BUILTIN_TYPE, "builtinType"),
|
||||
(ENUM_MEMBER, "enumMember"),
|
||||
(LIFETIME, "lifetime"),
|
||||
(SELF_KEYWORD, "selfKeyword"),
|
||||
(TYPE_ALIAS, "typeAlias"),
|
||||
(UNION, "union"),
|
||||
(UNRESOLVED_REFERENCE, "unresolvedReference"),
|
||||
|
|
|
@ -274,6 +274,7 @@ fn semantic_token_type_and_modifiers(
|
|||
HighlightTag::TypeAlias => semantic_tokens::TYPE_ALIAS,
|
||||
HighlightTag::Trait => lsp_types::SemanticTokenType::INTERFACE,
|
||||
HighlightTag::BuiltinType => semantic_tokens::BUILTIN_TYPE,
|
||||
HighlightTag::SelfKeyword => semantic_tokens::SELF_KEYWORD,
|
||||
HighlightTag::SelfType => lsp_types::SemanticTokenType::TYPE,
|
||||
HighlightTag::Field => lsp_types::SemanticTokenType::PROPERTY,
|
||||
HighlightTag::Function => lsp_types::SemanticTokenType::FUNCTION,
|
||||
|
|
|
@ -595,6 +595,11 @@
|
|||
"id": "lifetime",
|
||||
"description": "Style for lifetimes"
|
||||
},
|
||||
{
|
||||
"id": "selfKeyword",
|
||||
"description": "Style for the self keyword",
|
||||
"superType": "keyword"
|
||||
},
|
||||
{
|
||||
"id": "typeAlias",
|
||||
"description": "Style for type aliases",
|
||||
|
|
Loading…
Reference in a new issue