mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-02 06:41:48 +00:00
Introduce SymbolKind::Attribute
This commit is contained in:
parent
5c00c3e8d4
commit
642c1eb720
15 changed files with 66 additions and 77 deletions
|
@ -133,7 +133,7 @@ fn token(
|
||||||
_ if parent_matches::<ast::RangeExpr>(&token) => HlOperator::Other.into(),
|
_ if parent_matches::<ast::RangeExpr>(&token) => HlOperator::Other.into(),
|
||||||
_ if parent_matches::<ast::RangePat>(&token) => HlOperator::Other.into(),
|
_ if parent_matches::<ast::RangePat>(&token) => HlOperator::Other.into(),
|
||||||
_ if parent_matches::<ast::RestPat>(&token) => HlOperator::Other.into(),
|
_ if parent_matches::<ast::RestPat>(&token) => HlOperator::Other.into(),
|
||||||
_ if parent_matches::<ast::Attr>(&token) => HlTag::Attribute.into(),
|
_ if parent_matches::<ast::Attr>(&token) => HlTag::AttributeBracket.into(),
|
||||||
kind => match kind {
|
kind => match kind {
|
||||||
T!['['] | T![']'] => HlPunct::Bracket,
|
T!['['] | T![']'] => HlPunct::Bracket,
|
||||||
T!['{'] | T!['}'] => HlPunct::Brace,
|
T!['{'] | T!['}'] => HlPunct::Brace,
|
||||||
|
@ -200,7 +200,7 @@ fn node(
|
||||||
return None;
|
return None;
|
||||||
},
|
},
|
||||||
ast::Attr(__) => {
|
ast::Attr(__) => {
|
||||||
HlTag::Attribute.into()
|
HlTag::AttributeBracket.into()
|
||||||
},
|
},
|
||||||
// Highlight definitions depending on the "type" of the definition.
|
// Highlight definitions depending on the "type" of the definition.
|
||||||
ast::Name(name) => {
|
ast::Name(name) => {
|
||||||
|
|
|
@ -18,7 +18,7 @@ pub struct HlMods(u32);
|
||||||
pub enum HlTag {
|
pub enum HlTag {
|
||||||
Symbol(SymbolKind),
|
Symbol(SymbolKind),
|
||||||
|
|
||||||
Attribute,
|
AttributeBracket,
|
||||||
BoolLiteral,
|
BoolLiteral,
|
||||||
BuiltinType,
|
BuiltinType,
|
||||||
ByteLiteral,
|
ByteLiteral,
|
||||||
|
@ -124,6 +124,7 @@ impl HlTag {
|
||||||
fn as_str(self) -> &'static str {
|
fn as_str(self) -> &'static str {
|
||||||
match self {
|
match self {
|
||||||
HlTag::Symbol(symbol) => match symbol {
|
HlTag::Symbol(symbol) => match symbol {
|
||||||
|
SymbolKind::Attribute => "attribute",
|
||||||
SymbolKind::BuiltinAttr => "builtin_attr",
|
SymbolKind::BuiltinAttr => "builtin_attr",
|
||||||
SymbolKind::Const => "constant",
|
SymbolKind::Const => "constant",
|
||||||
SymbolKind::ConstParam => "const_param",
|
SymbolKind::ConstParam => "const_param",
|
||||||
|
@ -147,7 +148,7 @@ impl HlTag {
|
||||||
SymbolKind::ValueParam => "value_param",
|
SymbolKind::ValueParam => "value_param",
|
||||||
SymbolKind::Variant => "enum_variant",
|
SymbolKind::Variant => "enum_variant",
|
||||||
},
|
},
|
||||||
HlTag::Attribute => "attribute",
|
HlTag::AttributeBracket => "attribute_bracket",
|
||||||
HlTag::BoolLiteral => "bool_literal",
|
HlTag::BoolLiteral => "bool_literal",
|
||||||
HlTag::BuiltinType => "builtin_type",
|
HlTag::BuiltinType => "builtin_type",
|
||||||
HlTag::ByteLiteral => "byte_literal",
|
HlTag::ByteLiteral => "byte_literal",
|
||||||
|
|
|
@ -72,7 +72,7 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
|
||||||
<span class="comment documentation">/// # Examples</span>
|
<span class="comment documentation">/// # Examples</span>
|
||||||
<span class="comment documentation">///</span>
|
<span class="comment documentation">///</span>
|
||||||
<span class="comment documentation">/// ```</span>
|
<span class="comment documentation">/// ```</span>
|
||||||
<span class="comment documentation">/// #</span><span class="none injected"> </span><span class="attribute attribute injected">#</span><span class="attribute attribute injected">!</span><span class="attribute attribute injected">[</span><span class="builtin_attr attribute injected library">allow</span><span class="parenthesis attribute injected">(</span><span class="none attribute injected">unused_mut</span><span class="parenthesis attribute injected">)</span><span class="attribute attribute injected">]</span>
|
<span class="comment documentation">/// #</span><span class="none injected"> </span><span class="attribute_bracket attribute injected">#</span><span class="attribute_bracket attribute injected">!</span><span class="attribute_bracket attribute injected">[</span><span class="builtin_attr attribute injected library">allow</span><span class="parenthesis attribute injected">(</span><span class="none attribute injected">unused_mut</span><span class="parenthesis attribute injected">)</span><span class="attribute_bracket attribute injected">]</span>
|
||||||
<span class="comment documentation">/// </span><span class="keyword injected">let</span><span class="none injected"> </span><span class="keyword injected">mut</span><span class="none injected"> </span><span class="variable declaration injected mutable">foo</span><span class="colon injected">:</span><span class="none injected"> </span><span class="struct injected">Foo</span><span class="none injected"> </span><span class="operator injected">=</span><span class="none injected"> </span><span class="struct injected">Foo</span><span class="operator injected">::</span><span class="function injected">new</span><span class="parenthesis injected">(</span><span class="parenthesis injected">)</span><span class="semicolon injected">;</span>
|
<span class="comment documentation">/// </span><span class="keyword injected">let</span><span class="none injected"> </span><span class="keyword injected">mut</span><span class="none injected"> </span><span class="variable declaration injected mutable">foo</span><span class="colon injected">:</span><span class="none injected"> </span><span class="struct injected">Foo</span><span class="none injected"> </span><span class="operator injected">=</span><span class="none injected"> </span><span class="struct injected">Foo</span><span class="operator injected">::</span><span class="function injected">new</span><span class="parenthesis injected">(</span><span class="parenthesis injected">)</span><span class="semicolon injected">;</span>
|
||||||
<span class="comment documentation">/// ```</span>
|
<span class="comment documentation">/// ```</span>
|
||||||
<span class="keyword">pub</span> <span class="keyword">const</span> <span class="keyword">fn</span> <span class="function associated declaration public static">new</span><span class="parenthesis">(</span><span class="parenthesis">)</span> <span class="operator">-></span> <span class="struct">Foo</span> <span class="brace">{</span>
|
<span class="keyword">pub</span> <span class="keyword">const</span> <span class="keyword">fn</span> <span class="function associated declaration public static">new</span><span class="parenthesis">(</span><span class="parenthesis">)</span> <span class="operator">-></span> <span class="struct">Foo</span> <span class="brace">{</span>
|
||||||
|
@ -143,12 +143,12 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
|
||||||
<span class="comment documentation">///</span>
|
<span class="comment documentation">///</span>
|
||||||
<span class="comment documentation">/// ```</span>
|
<span class="comment documentation">/// ```</span>
|
||||||
<span class="comment documentation">/// </span><span class="keyword control injected">loop</span><span class="none injected"> </span><span class="brace injected">{</span><span class="brace injected">}</span>
|
<span class="comment documentation">/// </span><span class="keyword control injected">loop</span><span class="none injected"> </span><span class="brace injected">{</span><span class="brace injected">}</span>
|
||||||
<span class="attribute attribute">#</span><span class="attribute attribute">[</span><span class="builtin_attr attribute library">cfg_attr</span><span class="parenthesis attribute">(</span><span class="none attribute">not</span><span class="parenthesis attribute">(</span><span class="none attribute">feature</span><span class="attribute attribute"> </span><span class="operator attribute">=</span><span class="attribute attribute"> </span><span class="string_literal attribute">"false"</span><span class="parenthesis attribute">)</span><span class="comma attribute">,</span><span class="attribute attribute"> </span><span class="none attribute">doc</span><span class="attribute attribute"> </span><span class="operator attribute">=</span><span class="attribute attribute"> </span><span class="string_literal attribute">"</span><span class="keyword control injected">loop</span><span class="none injected"> </span><span class="brace injected">{</span><span class="brace injected">}</span><span class="string_literal attribute">"</span><span class="parenthesis attribute">)</span><span class="attribute attribute">]</span>
|
<span class="attribute_bracket attribute">#</span><span class="attribute_bracket attribute">[</span><span class="builtin_attr attribute library">cfg_attr</span><span class="parenthesis attribute">(</span><span class="none attribute">not</span><span class="parenthesis attribute">(</span><span class="none attribute">feature</span><span class="attribute_bracket attribute"> </span><span class="operator attribute">=</span><span class="attribute_bracket attribute"> </span><span class="string_literal attribute">"false"</span><span class="parenthesis attribute">)</span><span class="comma attribute">,</span><span class="attribute_bracket attribute"> </span><span class="none attribute">doc</span><span class="attribute_bracket attribute"> </span><span class="operator attribute">=</span><span class="attribute_bracket attribute"> </span><span class="string_literal attribute">"</span><span class="keyword control injected">loop</span><span class="none injected"> </span><span class="brace injected">{</span><span class="brace injected">}</span><span class="string_literal attribute">"</span><span class="parenthesis attribute">)</span><span class="attribute_bracket attribute">]</span>
|
||||||
<span class="attribute attribute">#</span><span class="attribute attribute">[</span><span class="builtin_attr attribute library">doc</span><span class="attribute attribute"> </span><span class="operator attribute">=</span><span class="attribute attribute"> </span><span class="string_literal attribute">"</span><span class="keyword control injected">loop</span><span class="none injected"> </span><span class="brace injected">{</span><span class="brace injected">}</span><span class="string_literal attribute">"</span><span class="attribute attribute">]</span>
|
<span class="attribute_bracket attribute">#</span><span class="attribute_bracket attribute">[</span><span class="builtin_attr attribute library">doc</span><span class="attribute_bracket attribute"> </span><span class="operator attribute">=</span><span class="attribute_bracket attribute"> </span><span class="string_literal attribute">"</span><span class="keyword control injected">loop</span><span class="none injected"> </span><span class="brace injected">{</span><span class="brace injected">}</span><span class="string_literal attribute">"</span><span class="attribute_bracket attribute">]</span>
|
||||||
<span class="comment documentation">/// ```</span>
|
<span class="comment documentation">/// ```</span>
|
||||||
<span class="comment documentation">///</span>
|
<span class="comment documentation">///</span>
|
||||||
<span class="attribute attribute">#</span><span class="attribute attribute">[</span><span class="builtin_attr attribute library">cfg_attr</span><span class="parenthesis attribute">(</span><span class="none attribute">feature</span><span class="attribute attribute"> </span><span class="operator attribute">=</span><span class="attribute attribute"> </span><span class="string_literal attribute">"alloc"</span><span class="comma attribute">,</span><span class="attribute attribute"> </span><span class="none attribute">doc</span><span class="attribute attribute"> </span><span class="operator attribute">=</span><span class="attribute attribute"> </span><span class="string_literal attribute">"```rust"</span><span class="parenthesis attribute">)</span><span class="attribute attribute">]</span>
|
<span class="attribute_bracket attribute">#</span><span class="attribute_bracket attribute">[</span><span class="builtin_attr attribute library">cfg_attr</span><span class="parenthesis attribute">(</span><span class="none attribute">feature</span><span class="attribute_bracket attribute"> </span><span class="operator attribute">=</span><span class="attribute_bracket attribute"> </span><span class="string_literal attribute">"alloc"</span><span class="comma attribute">,</span><span class="attribute_bracket attribute"> </span><span class="none attribute">doc</span><span class="attribute_bracket attribute"> </span><span class="operator attribute">=</span><span class="attribute_bracket attribute"> </span><span class="string_literal attribute">"```rust"</span><span class="parenthesis attribute">)</span><span class="attribute_bracket attribute">]</span>
|
||||||
<span class="attribute attribute">#</span><span class="attribute attribute">[</span><span class="builtin_attr attribute library">cfg_attr</span><span class="parenthesis attribute">(</span><span class="none attribute">not</span><span class="parenthesis attribute">(</span><span class="none attribute">feature</span><span class="attribute attribute"> </span><span class="operator attribute">=</span><span class="attribute attribute"> </span><span class="string_literal attribute">"alloc"</span><span class="parenthesis attribute">)</span><span class="comma attribute">,</span><span class="attribute attribute"> </span><span class="none attribute">doc</span><span class="attribute attribute"> </span><span class="operator attribute">=</span><span class="attribute attribute"> </span><span class="string_literal attribute">"```ignore"</span><span class="parenthesis attribute">)</span><span class="attribute attribute">]</span>
|
<span class="attribute_bracket attribute">#</span><span class="attribute_bracket attribute">[</span><span class="builtin_attr attribute library">cfg_attr</span><span class="parenthesis attribute">(</span><span class="none attribute">not</span><span class="parenthesis attribute">(</span><span class="none attribute">feature</span><span class="attribute_bracket attribute"> </span><span class="operator attribute">=</span><span class="attribute_bracket attribute"> </span><span class="string_literal attribute">"alloc"</span><span class="parenthesis attribute">)</span><span class="comma attribute">,</span><span class="attribute_bracket attribute"> </span><span class="none attribute">doc</span><span class="attribute_bracket attribute"> </span><span class="operator attribute">=</span><span class="attribute_bracket attribute"> </span><span class="string_literal attribute">"```ignore"</span><span class="parenthesis attribute">)</span><span class="attribute_bracket attribute">]</span>
|
||||||
<span class="comment documentation">/// </span><span class="keyword injected">let</span><span class="none injected"> </span><span class="punctuation injected">_</span><span class="none injected"> </span><span class="operator injected">=</span><span class="none injected"> </span><span class="function injected">example</span><span class="parenthesis injected">(</span><span class="operator injected">&</span><span class="none injected">alloc::</span><span class="macro injected">vec!</span><span class="bracket injected">[</span><span class="numeric_literal injected">1</span><span class="comma injected">,</span><span class="none injected"> </span><span class="numeric_literal injected">2</span><span class="comma injected">,</span><span class="none injected"> </span><span class="numeric_literal injected">3</span><span class="bracket injected">]</span><span class="parenthesis injected">)</span><span class="semicolon injected">;</span>
|
<span class="comment documentation">/// </span><span class="keyword injected">let</span><span class="none injected"> </span><span class="punctuation injected">_</span><span class="none injected"> </span><span class="operator injected">=</span><span class="none injected"> </span><span class="function injected">example</span><span class="parenthesis injected">(</span><span class="operator injected">&</span><span class="none injected">alloc::</span><span class="macro injected">vec!</span><span class="bracket injected">[</span><span class="numeric_literal injected">1</span><span class="comma injected">,</span><span class="none injected"> </span><span class="numeric_literal injected">2</span><span class="comma injected">,</span><span class="none injected"> </span><span class="numeric_literal injected">3</span><span class="bracket injected">]</span><span class="parenthesis injected">)</span><span class="semicolon injected">;</span>
|
||||||
<span class="comment documentation">/// ```</span>
|
<span class="comment documentation">/// ```</span>
|
||||||
<span class="keyword">pub</span> <span class="keyword">fn</span> <span class="function declaration public">mix_and_match</span><span class="parenthesis">(</span><span class="parenthesis">)</span> <span class="brace">{</span><span class="brace">}</span>
|
<span class="keyword">pub</span> <span class="keyword">fn</span> <span class="function declaration public">mix_and_match</span><span class="parenthesis">(</span><span class="parenthesis">)</span> <span class="brace">{</span><span class="brace">}</span>
|
||||||
|
|
|
@ -45,14 +45,14 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
|
||||||
<span class="punctuation">$</span>crate<span class="colon">:</span><span class="colon">:</span>io<span class="colon">:</span><span class="colon">:</span>_print<span class="parenthesis">(</span><span class="punctuation">$</span>crate<span class="colon">:</span><span class="colon">:</span>format_args_nl<span class="punctuation">!</span><span class="parenthesis">(</span><span class="punctuation">$</span><span class="parenthesis">(</span><span class="punctuation">$</span>arg<span class="parenthesis">)</span><span class="punctuation">*</span><span class="parenthesis">)</span><span class="parenthesis">)</span><span class="semicolon">;</span>
|
<span class="punctuation">$</span>crate<span class="colon">:</span><span class="colon">:</span>io<span class="colon">:</span><span class="colon">:</span>_print<span class="parenthesis">(</span><span class="punctuation">$</span>crate<span class="colon">:</span><span class="colon">:</span>format_args_nl<span class="punctuation">!</span><span class="parenthesis">(</span><span class="punctuation">$</span><span class="parenthesis">(</span><span class="punctuation">$</span>arg<span class="parenthesis">)</span><span class="punctuation">*</span><span class="parenthesis">)</span><span class="parenthesis">)</span><span class="semicolon">;</span>
|
||||||
<span class="brace">}</span><span class="parenthesis">)</span>
|
<span class="brace">}</span><span class="parenthesis">)</span>
|
||||||
<span class="brace">}</span>
|
<span class="brace">}</span>
|
||||||
<span class="attribute attribute">#</span><span class="attribute attribute">[</span><span class="builtin_attr attribute library">rustc_builtin_macro</span><span class="attribute attribute">]</span>
|
<span class="attribute_bracket attribute">#</span><span class="attribute_bracket attribute">[</span><span class="builtin_attr attribute library">rustc_builtin_macro</span><span class="attribute_bracket attribute">]</span>
|
||||||
<span class="attribute attribute">#</span><span class="attribute attribute">[</span><span class="builtin_attr attribute library">macro_export</span><span class="attribute attribute">]</span>
|
<span class="attribute_bracket attribute">#</span><span class="attribute_bracket attribute">[</span><span class="builtin_attr attribute library">macro_export</span><span class="attribute_bracket attribute">]</span>
|
||||||
<span class="keyword">macro_rules</span><span class="punctuation">!</span> <span class="macro declaration">format_args</span> <span class="brace">{</span><span class="brace">}</span>
|
<span class="keyword">macro_rules</span><span class="punctuation">!</span> <span class="macro declaration">format_args</span> <span class="brace">{</span><span class="brace">}</span>
|
||||||
<span class="attribute attribute">#</span><span class="attribute attribute">[</span><span class="builtin_attr attribute library">rustc_builtin_macro</span><span class="attribute attribute">]</span>
|
<span class="attribute_bracket attribute">#</span><span class="attribute_bracket attribute">[</span><span class="builtin_attr attribute library">rustc_builtin_macro</span><span class="attribute_bracket attribute">]</span>
|
||||||
<span class="attribute attribute">#</span><span class="attribute attribute">[</span><span class="builtin_attr attribute library">macro_export</span><span class="attribute attribute">]</span>
|
<span class="attribute_bracket attribute">#</span><span class="attribute_bracket attribute">[</span><span class="builtin_attr attribute library">macro_export</span><span class="attribute_bracket attribute">]</span>
|
||||||
<span class="keyword">macro_rules</span><span class="punctuation">!</span> <span class="macro declaration">const_format_args</span> <span class="brace">{</span><span class="brace">}</span>
|
<span class="keyword">macro_rules</span><span class="punctuation">!</span> <span class="macro declaration">const_format_args</span> <span class="brace">{</span><span class="brace">}</span>
|
||||||
<span class="attribute attribute">#</span><span class="attribute attribute">[</span><span class="builtin_attr attribute library">rustc_builtin_macro</span><span class="attribute attribute">]</span>
|
<span class="attribute_bracket attribute">#</span><span class="attribute_bracket attribute">[</span><span class="builtin_attr attribute library">rustc_builtin_macro</span><span class="attribute_bracket attribute">]</span>
|
||||||
<span class="attribute attribute">#</span><span class="attribute attribute">[</span><span class="builtin_attr attribute library">macro_export</span><span class="attribute attribute">]</span>
|
<span class="attribute_bracket attribute">#</span><span class="attribute_bracket attribute">[</span><span class="builtin_attr attribute library">macro_export</span><span class="attribute_bracket attribute">]</span>
|
||||||
<span class="keyword">macro_rules</span><span class="punctuation">!</span> <span class="macro declaration">format_args_nl</span> <span class="brace">{</span><span class="brace">}</span>
|
<span class="keyword">macro_rules</span><span class="punctuation">!</span> <span class="macro declaration">format_args_nl</span> <span class="brace">{</span><span class="brace">}</span>
|
||||||
|
|
||||||
<span class="keyword">mod</span> <span class="module declaration">panic</span> <span class="brace">{</span>
|
<span class="keyword">mod</span> <span class="module declaration">panic</span> <span class="brace">{</span>
|
||||||
|
@ -77,12 +77,12 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
|
||||||
<span class="brace">}</span>
|
<span class="brace">}</span>
|
||||||
<span class="brace">}</span>
|
<span class="brace">}</span>
|
||||||
|
|
||||||
<span class="attribute attribute">#</span><span class="attribute attribute">[</span><span class="builtin_attr attribute library">rustc_builtin_macro</span><span class="parenthesis attribute">(</span><span class="none attribute">std_panic</span><span class="parenthesis attribute">)</span><span class="attribute attribute">]</span>
|
<span class="attribute_bracket attribute">#</span><span class="attribute_bracket attribute">[</span><span class="builtin_attr attribute library">rustc_builtin_macro</span><span class="parenthesis attribute">(</span><span class="none attribute">std_panic</span><span class="parenthesis attribute">)</span><span class="attribute_bracket attribute">]</span>
|
||||||
<span class="attribute attribute">#</span><span class="attribute attribute">[</span><span class="builtin_attr attribute library">macro_export</span><span class="attribute attribute">]</span>
|
<span class="attribute_bracket attribute">#</span><span class="attribute_bracket attribute">[</span><span class="builtin_attr attribute library">macro_export</span><span class="attribute_bracket attribute">]</span>
|
||||||
<span class="keyword">macro_rules</span><span class="punctuation">!</span> <span class="macro declaration">panic</span> <span class="brace">{</span><span class="brace">}</span>
|
<span class="keyword">macro_rules</span><span class="punctuation">!</span> <span class="macro declaration">panic</span> <span class="brace">{</span><span class="brace">}</span>
|
||||||
<span class="attribute attribute">#</span><span class="attribute attribute">[</span><span class="builtin_attr attribute library">rustc_builtin_macro</span><span class="attribute attribute">]</span>
|
<span class="attribute_bracket attribute">#</span><span class="attribute_bracket attribute">[</span><span class="builtin_attr attribute library">rustc_builtin_macro</span><span class="attribute_bracket attribute">]</span>
|
||||||
<span class="keyword">macro_rules</span><span class="punctuation">!</span> <span class="macro declaration">assert</span> <span class="brace">{</span><span class="brace">}</span>
|
<span class="keyword">macro_rules</span><span class="punctuation">!</span> <span class="macro declaration">assert</span> <span class="brace">{</span><span class="brace">}</span>
|
||||||
<span class="attribute attribute">#</span><span class="attribute attribute">[</span><span class="builtin_attr attribute library">rustc_builtin_macro</span><span class="attribute attribute">]</span>
|
<span class="attribute_bracket attribute">#</span><span class="attribute_bracket attribute">[</span><span class="builtin_attr attribute library">rustc_builtin_macro</span><span class="attribute_bracket attribute">]</span>
|
||||||
<span class="keyword">macro_rules</span><span class="punctuation">!</span> <span class="macro declaration">asm</span> <span class="brace">{</span><span class="brace">}</span>
|
<span class="keyword">macro_rules</span><span class="punctuation">!</span> <span class="macro declaration">asm</span> <span class="brace">{</span><span class="brace">}</span>
|
||||||
|
|
||||||
<span class="keyword">macro_rules</span><span class="punctuation">!</span> <span class="macro declaration">toho</span> <span class="brace">{</span>
|
<span class="keyword">macro_rules</span><span class="punctuation">!</span> <span class="macro declaration">toho</span> <span class="brace">{</span>
|
||||||
|
|
|
@ -54,7 +54,7 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
|
||||||
<span class="keyword unsafe">unsafe</span> <span class="keyword">fn</span> <span class="function associated declaration reference unsafe">unsafe_method</span><span class="parenthesis">(</span><span class="operator">&</span><span class="self_keyword declaration reference">self</span><span class="parenthesis">)</span> <span class="brace">{</span><span class="brace">}</span>
|
<span class="keyword unsafe">unsafe</span> <span class="keyword">fn</span> <span class="function associated declaration reference unsafe">unsafe_method</span><span class="parenthesis">(</span><span class="operator">&</span><span class="self_keyword declaration reference">self</span><span class="parenthesis">)</span> <span class="brace">{</span><span class="brace">}</span>
|
||||||
<span class="brace">}</span>
|
<span class="brace">}</span>
|
||||||
|
|
||||||
<span class="attribute attribute">#</span><span class="attribute attribute">[</span><span class="builtin_attr attribute library">repr</span><span class="parenthesis attribute">(</span><span class="none attribute">packed</span><span class="parenthesis attribute">)</span><span class="attribute attribute">]</span>
|
<span class="attribute_bracket attribute">#</span><span class="attribute_bracket attribute">[</span><span class="builtin_attr attribute library">repr</span><span class="parenthesis attribute">(</span><span class="none attribute">packed</span><span class="parenthesis attribute">)</span><span class="attribute_bracket attribute">]</span>
|
||||||
<span class="keyword">struct</span> <span class="struct declaration">Packed</span> <span class="brace">{</span>
|
<span class="keyword">struct</span> <span class="struct declaration">Packed</span> <span class="brace">{</span>
|
||||||
<span class="field declaration">a</span><span class="colon">:</span> <span class="builtin_type">u16</span><span class="comma">,</span>
|
<span class="field declaration">a</span><span class="colon">:</span> <span class="builtin_type">u16</span><span class="comma">,</span>
|
||||||
<span class="brace">}</span>
|
<span class="brace">}</span>
|
||||||
|
|
|
@ -43,16 +43,16 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
|
||||||
<pre><code><span class="keyword">use</span> <span class="module">inner</span><span class="operator">::</span><span class="brace">{</span><span class="self_keyword">self</span> <span class="keyword">as</span> <span class="module declaration">inner_mod</span><span class="brace">}</span><span class="semicolon">;</span>
|
<pre><code><span class="keyword">use</span> <span class="module">inner</span><span class="operator">::</span><span class="brace">{</span><span class="self_keyword">self</span> <span class="keyword">as</span> <span class="module declaration">inner_mod</span><span class="brace">}</span><span class="semicolon">;</span>
|
||||||
<span class="keyword">mod</span> <span class="module declaration">inner</span> <span class="brace">{</span><span class="brace">}</span>
|
<span class="keyword">mod</span> <span class="module declaration">inner</span> <span class="brace">{</span><span class="brace">}</span>
|
||||||
|
|
||||||
<span class="attribute attribute">#</span><span class="attribute attribute">[</span><span class="builtin_attr attribute library">allow</span><span class="parenthesis attribute">(</span><span class="parenthesis attribute">)</span><span class="attribute attribute">]</span>
|
<span class="attribute_bracket attribute">#</span><span class="attribute_bracket attribute">[</span><span class="builtin_attr attribute library">allow</span><span class="parenthesis attribute">(</span><span class="parenthesis attribute">)</span><span class="attribute_bracket attribute">]</span>
|
||||||
<span class="attribute attribute">#</span><span class="attribute attribute">[</span><span class="module attribute crate_root library">proc_macros</span><span class="operator attribute">::</span><span class="macro attribute library">identity</span><span class="attribute attribute">]</span>
|
<span class="attribute_bracket attribute">#</span><span class="attribute_bracket attribute">[</span><span class="module attribute crate_root library">proc_macros</span><span class="operator attribute">::</span><span class="macro attribute library">identity</span><span class="attribute_bracket attribute">]</span>
|
||||||
<span class="keyword">pub</span> <span class="keyword">mod</span> <span class="module declaration public">ops</span> <span class="brace">{</span>
|
<span class="keyword">pub</span> <span class="keyword">mod</span> <span class="module declaration public">ops</span> <span class="brace">{</span>
|
||||||
<span class="attribute attribute">#</span><span class="attribute attribute">[</span><span class="builtin_attr attribute library">lang</span> <span class="operator attribute">=</span> <span class="string_literal attribute">"fn_once"</span><span class="attribute attribute">]</span>
|
<span class="attribute_bracket attribute">#</span><span class="attribute_bracket attribute">[</span><span class="builtin_attr attribute library">lang</span> <span class="operator attribute">=</span> <span class="string_literal attribute">"fn_once"</span><span class="attribute_bracket attribute">]</span>
|
||||||
<span class="keyword">pub</span> <span class="keyword">trait</span> <span class="trait declaration public">FnOnce</span><span class="angle"><</span><span class="type_param declaration">Args</span><span class="angle">></span> <span class="brace">{</span><span class="brace">}</span>
|
<span class="keyword">pub</span> <span class="keyword">trait</span> <span class="trait declaration public">FnOnce</span><span class="angle"><</span><span class="type_param declaration">Args</span><span class="angle">></span> <span class="brace">{</span><span class="brace">}</span>
|
||||||
|
|
||||||
<span class="attribute attribute">#</span><span class="attribute attribute">[</span><span class="builtin_attr attribute library">lang</span> <span class="operator attribute">=</span> <span class="string_literal attribute">"fn_mut"</span><span class="attribute attribute">]</span>
|
<span class="attribute_bracket attribute">#</span><span class="attribute_bracket attribute">[</span><span class="builtin_attr attribute library">lang</span> <span class="operator attribute">=</span> <span class="string_literal attribute">"fn_mut"</span><span class="attribute_bracket attribute">]</span>
|
||||||
<span class="keyword">pub</span> <span class="keyword">trait</span> <span class="trait declaration public">FnMut</span><span class="angle"><</span><span class="type_param declaration">Args</span><span class="angle">></span><span class="colon">:</span> <span class="trait public">FnOnce</span><span class="angle"><</span><span class="type_param">Args</span><span class="angle">></span> <span class="brace">{</span><span class="brace">}</span>
|
<span class="keyword">pub</span> <span class="keyword">trait</span> <span class="trait declaration public">FnMut</span><span class="angle"><</span><span class="type_param declaration">Args</span><span class="angle">></span><span class="colon">:</span> <span class="trait public">FnOnce</span><span class="angle"><</span><span class="type_param">Args</span><span class="angle">></span> <span class="brace">{</span><span class="brace">}</span>
|
||||||
|
|
||||||
<span class="attribute attribute">#</span><span class="attribute attribute">[</span><span class="builtin_attr attribute library">lang</span> <span class="operator attribute">=</span> <span class="string_literal attribute">"fn"</span><span class="attribute attribute">]</span>
|
<span class="attribute_bracket attribute">#</span><span class="attribute_bracket attribute">[</span><span class="builtin_attr attribute library">lang</span> <span class="operator attribute">=</span> <span class="string_literal attribute">"fn"</span><span class="attribute_bracket attribute">]</span>
|
||||||
<span class="keyword">pub</span> <span class="keyword">trait</span> <span class="trait declaration public">Fn</span><span class="angle"><</span><span class="type_param declaration">Args</span><span class="angle">></span><span class="colon">:</span> <span class="trait public">FnMut</span><span class="angle"><</span><span class="type_param">Args</span><span class="angle">></span> <span class="brace">{</span><span class="brace">}</span>
|
<span class="keyword">pub</span> <span class="keyword">trait</span> <span class="trait declaration public">Fn</span><span class="angle"><</span><span class="type_param declaration">Args</span><span class="angle">></span><span class="colon">:</span> <span class="trait public">FnMut</span><span class="angle"><</span><span class="type_param">Args</span><span class="angle">></span> <span class="brace">{</span><span class="brace">}</span>
|
||||||
<span class="brace">}</span>
|
<span class="brace">}</span>
|
||||||
|
|
||||||
|
@ -87,7 +87,7 @@ proc_macros::<span class="macro">mirror!</span> <span class="brace">{</span>
|
||||||
<span class="brace">}</span>
|
<span class="brace">}</span>
|
||||||
<span class="brace">}</span>
|
<span class="brace">}</span>
|
||||||
|
|
||||||
<span class="attribute attribute">#</span><span class="attribute attribute">[</span><span class="macro attribute default_library library">derive</span><span class="parenthesis attribute">(</span><span class="macro attribute default_library library">Copy</span><span class="parenthesis attribute">)</span><span class="attribute attribute">]</span>
|
<span class="attribute_bracket attribute">#</span><span class="attribute_bracket attribute">[</span><span class="macro attribute default_library library">derive</span><span class="parenthesis attribute">(</span><span class="macro attribute default_library library">Copy</span><span class="parenthesis attribute">)</span><span class="attribute_bracket attribute">]</span>
|
||||||
<span class="keyword">struct</span> <span class="struct declaration">FooCopy</span> <span class="brace">{</span>
|
<span class="keyword">struct</span> <span class="struct declaration">FooCopy</span> <span class="brace">{</span>
|
||||||
<span class="field declaration">x</span><span class="colon">:</span> <span class="builtin_type">u32</span><span class="comma">,</span>
|
<span class="field declaration">x</span><span class="colon">:</span> <span class="builtin_type">u32</span><span class="comma">,</span>
|
||||||
<span class="brace">}</span>
|
<span class="brace">}</span>
|
||||||
|
|
|
@ -4,20 +4,19 @@
|
||||||
//! for built-in attributes.
|
//! for built-in attributes.
|
||||||
|
|
||||||
use hir::HasAttrs;
|
use hir::HasAttrs;
|
||||||
use ide_db::helpers::{
|
use ide_db::{
|
||||||
generated_lints::{CLIPPY_LINTS, DEFAULT_LINTS, FEATURES, RUSTDOC_LINTS},
|
helpers::{
|
||||||
parse_tt_as_comma_sep_paths,
|
generated_lints::{CLIPPY_LINTS, DEFAULT_LINTS, FEATURES, RUSTDOC_LINTS},
|
||||||
|
parse_tt_as_comma_sep_paths,
|
||||||
|
},
|
||||||
|
SymbolKind,
|
||||||
};
|
};
|
||||||
use itertools::Itertools;
|
use itertools::Itertools;
|
||||||
use once_cell::sync::Lazy;
|
use once_cell::sync::Lazy;
|
||||||
use rustc_hash::FxHashMap;
|
use rustc_hash::FxHashMap;
|
||||||
use syntax::{algo::non_trivia_sibling, ast, AstNode, Direction, SyntaxKind, T};
|
use syntax::{algo::non_trivia_sibling, ast, AstNode, Direction, SyntaxKind, T};
|
||||||
|
|
||||||
use crate::{
|
use crate::{context::CompletionContext, item::CompletionItem, Completions};
|
||||||
context::CompletionContext,
|
|
||||||
item::{CompletionItem, CompletionItemKind},
|
|
||||||
Completions,
|
|
||||||
};
|
|
||||||
|
|
||||||
mod cfg;
|
mod cfg;
|
||||||
mod derive;
|
mod derive;
|
||||||
|
@ -73,11 +72,8 @@ fn complete_new_attribute(acc: &mut Completions, ctx: &CompletionContext, attrib
|
||||||
});
|
});
|
||||||
|
|
||||||
let add_completion = |attr_completion: &AttrCompletion| {
|
let add_completion = |attr_completion: &AttrCompletion| {
|
||||||
let mut item = CompletionItem::new(
|
let mut item =
|
||||||
CompletionItemKind::Attribute,
|
CompletionItem::new(SymbolKind::Attribute, ctx.source_range(), attr_completion.label);
|
||||||
ctx.source_range(),
|
|
||||||
attr_completion.label,
|
|
||||||
);
|
|
||||||
|
|
||||||
if let Some(lookup) = attr_completion.lookup {
|
if let Some(lookup) = attr_completion.lookup {
|
||||||
item.lookup_by(lookup);
|
item.lookup_by(lookup);
|
||||||
|
@ -107,7 +103,7 @@ fn complete_new_attribute(acc: &mut Completions, ctx: &CompletionContext, attrib
|
||||||
if let hir::ScopeDef::MacroDef(mac) = scope_def {
|
if let hir::ScopeDef::MacroDef(mac) = scope_def {
|
||||||
if mac.kind() == hir::MacroKind::Attr {
|
if mac.kind() == hir::MacroKind::Attr {
|
||||||
let mut item = CompletionItem::new(
|
let mut item = CompletionItem::new(
|
||||||
CompletionItemKind::Attribute,
|
SymbolKind::Attribute,
|
||||||
ctx.source_range(),
|
ctx.source_range(),
|
||||||
name.to_smol_str(),
|
name.to_smol_str(),
|
||||||
);
|
);
|
||||||
|
|
|
@ -2,16 +2,14 @@
|
||||||
|
|
||||||
use std::iter;
|
use std::iter;
|
||||||
|
|
||||||
|
use ide_db::SymbolKind;
|
||||||
use syntax::SyntaxKind;
|
use syntax::SyntaxKind;
|
||||||
|
|
||||||
use crate::{
|
use crate::{completions::Completions, context::CompletionContext, CompletionItem};
|
||||||
completions::Completions, context::CompletionContext, CompletionItem, CompletionItemKind,
|
|
||||||
};
|
|
||||||
|
|
||||||
pub(crate) fn complete_cfg(acc: &mut Completions, ctx: &CompletionContext) {
|
pub(crate) fn complete_cfg(acc: &mut Completions, ctx: &CompletionContext) {
|
||||||
let add_completion = |item: &str| {
|
let add_completion = |item: &str| {
|
||||||
let mut completion =
|
let mut completion = CompletionItem::new(SymbolKind::Attribute, ctx.source_range(), item);
|
||||||
CompletionItem::new(CompletionItemKind::Attribute, ctx.source_range(), item);
|
|
||||||
completion.insert_text(format!(r#""{}""#, item));
|
completion.insert_text(format!(r#""{}""#, item));
|
||||||
acc.add(completion.build());
|
acc.add(completion.build());
|
||||||
};
|
};
|
||||||
|
@ -34,7 +32,7 @@ pub(crate) fn complete_cfg(acc: &mut Completions, ctx: &CompletionContext) {
|
||||||
krate.potential_cfg(ctx.db).get_cfg_values(&name).cloned().for_each(|s| {
|
krate.potential_cfg(ctx.db).get_cfg_values(&name).cloned().for_each(|s| {
|
||||||
let insert_text = format!(r#""{}""#, s);
|
let insert_text = format!(r#""{}""#, s);
|
||||||
let mut item =
|
let mut item =
|
||||||
CompletionItem::new(CompletionItemKind::Attribute, ctx.source_range(), s);
|
CompletionItem::new(SymbolKind::Attribute, ctx.source_range(), s);
|
||||||
item.insert_text(insert_text);
|
item.insert_text(insert_text);
|
||||||
|
|
||||||
acc.add(item.build());
|
acc.add(item.build());
|
||||||
|
@ -44,8 +42,7 @@ pub(crate) fn complete_cfg(acc: &mut Completions, ctx: &CompletionContext) {
|
||||||
None => {
|
None => {
|
||||||
if let Some(krate) = ctx.krate {
|
if let Some(krate) = ctx.krate {
|
||||||
krate.potential_cfg(ctx.db).get_cfg_keys().cloned().for_each(|s| {
|
krate.potential_cfg(ctx.db).get_cfg_keys().cloned().for_each(|s| {
|
||||||
let item =
|
let item = CompletionItem::new(SymbolKind::Attribute, ctx.source_range(), s);
|
||||||
CompletionItem::new(CompletionItemKind::Attribute, ctx.source_range(), s);
|
|
||||||
acc.add(item.build());
|
acc.add(item.build());
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,15 +1,16 @@
|
||||||
//! Completion for derives
|
//! Completion for derives
|
||||||
use hir::{HasAttrs, MacroDef, MacroKind};
|
use hir::{HasAttrs, MacroDef, MacroKind};
|
||||||
use ide_db::helpers::{import_assets::ImportAssets, insert_use::ImportScope, FamousDefs};
|
use ide_db::{
|
||||||
|
helpers::{import_assets::ImportAssets, insert_use::ImportScope, FamousDefs},
|
||||||
|
SymbolKind,
|
||||||
|
};
|
||||||
use itertools::Itertools;
|
use itertools::Itertools;
|
||||||
use rustc_hash::FxHashSet;
|
use rustc_hash::FxHashSet;
|
||||||
use syntax::{ast, SmolStr, SyntaxKind};
|
use syntax::{ast, SmolStr, SyntaxKind};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
completions::flyimport::compute_fuzzy_completion_order_key,
|
completions::flyimport::compute_fuzzy_completion_order_key, context::CompletionContext,
|
||||||
context::CompletionContext,
|
item::CompletionItem, Completions, ImportEdit,
|
||||||
item::{CompletionItem, CompletionItemKind},
|
|
||||||
Completions, ImportEdit,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
pub(super) fn complete_derive(
|
pub(super) fn complete_derive(
|
||||||
|
@ -56,8 +57,7 @@ pub(super) fn complete_derive(
|
||||||
_ => (name, None),
|
_ => (name, None),
|
||||||
};
|
};
|
||||||
|
|
||||||
let mut item =
|
let mut item = CompletionItem::new(SymbolKind::Attribute, ctx.source_range(), label);
|
||||||
CompletionItem::new(CompletionItemKind::Attribute, ctx.source_range(), label);
|
|
||||||
if let Some(docs) = mac.docs(ctx.db) {
|
if let Some(docs) = mac.docs(ctx.db) {
|
||||||
item.documentation(docs);
|
item.documentation(docs);
|
||||||
}
|
}
|
||||||
|
@ -112,7 +112,7 @@ fn flyimport_attribute(acc: &mut Completions, ctx: &CompletionContext) -> Option
|
||||||
})
|
})
|
||||||
.filter_map(|(import, mac)| {
|
.filter_map(|(import, mac)| {
|
||||||
let mut item = CompletionItem::new(
|
let mut item = CompletionItem::new(
|
||||||
CompletionItemKind::Attribute,
|
SymbolKind::Attribute,
|
||||||
ctx.source_range(),
|
ctx.source_range(),
|
||||||
mac.name(ctx.db)?.to_smol_str(),
|
mac.name(ctx.db)?.to_smol_str(),
|
||||||
);
|
);
|
||||||
|
|
|
@ -1,12 +1,8 @@
|
||||||
//! Completion for lints
|
//! Completion for lints
|
||||||
use ide_db::helpers::generated_lints::Lint;
|
use ide_db::{helpers::generated_lints::Lint, SymbolKind};
|
||||||
use syntax::{ast, T};
|
use syntax::{ast, T};
|
||||||
|
|
||||||
use crate::{
|
use crate::{context::CompletionContext, item::CompletionItem, Completions};
|
||||||
context::CompletionContext,
|
|
||||||
item::{CompletionItem, CompletionItemKind},
|
|
||||||
Completions,
|
|
||||||
};
|
|
||||||
|
|
||||||
pub(super) fn complete_lint(
|
pub(super) fn complete_lint(
|
||||||
acc: &mut Completions,
|
acc: &mut Completions,
|
||||||
|
@ -58,8 +54,7 @@ pub(super) fn complete_lint(
|
||||||
Some(qual) if !is_qualified => format!("{}::{}", qual, name),
|
Some(qual) if !is_qualified => format!("{}::{}", qual, name),
|
||||||
_ => name.to_owned(),
|
_ => name.to_owned(),
|
||||||
};
|
};
|
||||||
let mut item =
|
let mut item = CompletionItem::new(SymbolKind::Attribute, ctx.source_range(), label);
|
||||||
CompletionItem::new(CompletionItemKind::Attribute, ctx.source_range(), label);
|
|
||||||
item.documentation(hir::Documentation::new(description.to_owned()));
|
item.documentation(hir::Documentation::new(description.to_owned()));
|
||||||
item.add_to(acc)
|
item.add_to(acc)
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,9 @@
|
||||||
//! Completion for representations.
|
//! Completion for representations.
|
||||||
|
|
||||||
|
use ide_db::SymbolKind;
|
||||||
use syntax::ast;
|
use syntax::ast;
|
||||||
|
|
||||||
use crate::{
|
use crate::{context::CompletionContext, item::CompletionItem, Completions};
|
||||||
context::CompletionContext,
|
|
||||||
item::{CompletionItem, CompletionItemKind},
|
|
||||||
Completions,
|
|
||||||
};
|
|
||||||
|
|
||||||
pub(super) fn complete_repr(acc: &mut Completions, ctx: &CompletionContext, input: ast::TokenTree) {
|
pub(super) fn complete_repr(acc: &mut Completions, ctx: &CompletionContext, input: ast::TokenTree) {
|
||||||
if let Some(existing_reprs) = super::parse_comma_sep_expr(input) {
|
if let Some(existing_reprs) = super::parse_comma_sep_expr(input) {
|
||||||
|
@ -29,8 +26,7 @@ pub(super) fn complete_repr(acc: &mut Completions, ctx: &CompletionContext, inpu
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut item =
|
let mut item = CompletionItem::new(SymbolKind::Attribute, ctx.source_range(), label);
|
||||||
CompletionItem::new(CompletionItemKind::Attribute, ctx.source_range(), label);
|
|
||||||
if let Some(lookup) = lookup {
|
if let Some(lookup) = lookup {
|
||||||
item.lookup_by(lookup);
|
item.lookup_by(lookup);
|
||||||
}
|
}
|
||||||
|
|
|
@ -216,7 +216,6 @@ impl CompletionRelevance {
|
||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||||
pub enum CompletionItemKind {
|
pub enum CompletionItemKind {
|
||||||
SymbolKind(SymbolKind),
|
SymbolKind(SymbolKind),
|
||||||
Attribute,
|
|
||||||
Binding,
|
Binding,
|
||||||
BuiltinType,
|
BuiltinType,
|
||||||
Keyword,
|
Keyword,
|
||||||
|
@ -232,6 +231,7 @@ impl CompletionItemKind {
|
||||||
pub(crate) fn tag(&self) -> &'static str {
|
pub(crate) fn tag(&self) -> &'static str {
|
||||||
match self {
|
match self {
|
||||||
CompletionItemKind::SymbolKind(kind) => match kind {
|
CompletionItemKind::SymbolKind(kind) => match kind {
|
||||||
|
SymbolKind::Attribute => "at",
|
||||||
SymbolKind::BuiltinAttr => "ba",
|
SymbolKind::BuiltinAttr => "ba",
|
||||||
SymbolKind::Const => "ct",
|
SymbolKind::Const => "ct",
|
||||||
SymbolKind::ConstParam => "cp",
|
SymbolKind::ConstParam => "cp",
|
||||||
|
@ -255,7 +255,6 @@ impl CompletionItemKind {
|
||||||
SymbolKind::ValueParam => "vp",
|
SymbolKind::ValueParam => "vp",
|
||||||
SymbolKind::Variant => "ev",
|
SymbolKind::Variant => "ev",
|
||||||
},
|
},
|
||||||
CompletionItemKind::Attribute => "at",
|
|
||||||
CompletionItemKind::Binding => "bn",
|
CompletionItemKind::Binding => "bn",
|
||||||
CompletionItemKind::BuiltinType => "bt",
|
CompletionItemKind::BuiltinType => "bt",
|
||||||
CompletionItemKind::Keyword => "kw",
|
CompletionItemKind::Keyword => "kw",
|
||||||
|
|
|
@ -145,6 +145,7 @@ fn line_index(db: &dyn LineIndexDatabase, file_id: FileId) -> Arc<LineIndex> {
|
||||||
|
|
||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||||
pub enum SymbolKind {
|
pub enum SymbolKind {
|
||||||
|
Attribute,
|
||||||
BuiltinAttr,
|
BuiltinAttr,
|
||||||
Const,
|
Const,
|
||||||
ConstParam,
|
ConstParam,
|
||||||
|
|
|
@ -41,6 +41,7 @@ define_semantic_token_types![
|
||||||
(ANGLE, "angle"),
|
(ANGLE, "angle"),
|
||||||
(ARITHMETIC, "arithmetic"),
|
(ARITHMETIC, "arithmetic"),
|
||||||
(ATTRIBUTE, "attribute"),
|
(ATTRIBUTE, "attribute"),
|
||||||
|
(ATTRIBUTE_BRACKET, "attributeBracket"),
|
||||||
(BITWISE, "bitwise"),
|
(BITWISE, "bitwise"),
|
||||||
(BOOLEAN, "boolean"),
|
(BOOLEAN, "boolean"),
|
||||||
(BRACE, "brace"),
|
(BRACE, "brace"),
|
||||||
|
|
|
@ -50,7 +50,9 @@ pub(crate) fn symbol_kind(symbol_kind: SymbolKind) -> lsp_types::SymbolKind {
|
||||||
SymbolKind::Enum => lsp_types::SymbolKind::ENUM,
|
SymbolKind::Enum => lsp_types::SymbolKind::ENUM,
|
||||||
SymbolKind::Variant => lsp_types::SymbolKind::ENUM_MEMBER,
|
SymbolKind::Variant => lsp_types::SymbolKind::ENUM_MEMBER,
|
||||||
SymbolKind::Trait => lsp_types::SymbolKind::INTERFACE,
|
SymbolKind::Trait => lsp_types::SymbolKind::INTERFACE,
|
||||||
SymbolKind::Macro | SymbolKind::BuiltinAttr => lsp_types::SymbolKind::FUNCTION,
|
SymbolKind::Macro | SymbolKind::BuiltinAttr | SymbolKind::Attribute => {
|
||||||
|
lsp_types::SymbolKind::FUNCTION
|
||||||
|
}
|
||||||
SymbolKind::Module | SymbolKind::ToolModule => lsp_types::SymbolKind::MODULE,
|
SymbolKind::Module | SymbolKind::ToolModule => lsp_types::SymbolKind::MODULE,
|
||||||
SymbolKind::TypeAlias | SymbolKind::TypeParam => lsp_types::SymbolKind::TYPE_PARAMETER,
|
SymbolKind::TypeAlias | SymbolKind::TypeParam => lsp_types::SymbolKind::TYPE_PARAMETER,
|
||||||
SymbolKind::Field => lsp_types::SymbolKind::FIELD,
|
SymbolKind::Field => lsp_types::SymbolKind::FIELD,
|
||||||
|
@ -100,7 +102,6 @@ pub(crate) fn completion_item_kind(
|
||||||
completion_item_kind: CompletionItemKind,
|
completion_item_kind: CompletionItemKind,
|
||||||
) -> lsp_types::CompletionItemKind {
|
) -> lsp_types::CompletionItemKind {
|
||||||
match completion_item_kind {
|
match completion_item_kind {
|
||||||
CompletionItemKind::Attribute => lsp_types::CompletionItemKind::ENUM_MEMBER,
|
|
||||||
CompletionItemKind::Binding => lsp_types::CompletionItemKind::VARIABLE,
|
CompletionItemKind::Binding => lsp_types::CompletionItemKind::VARIABLE,
|
||||||
CompletionItemKind::BuiltinType => lsp_types::CompletionItemKind::STRUCT,
|
CompletionItemKind::BuiltinType => lsp_types::CompletionItemKind::STRUCT,
|
||||||
CompletionItemKind::Keyword => lsp_types::CompletionItemKind::KEYWORD,
|
CompletionItemKind::Keyword => lsp_types::CompletionItemKind::KEYWORD,
|
||||||
|
@ -108,6 +109,7 @@ pub(crate) fn completion_item_kind(
|
||||||
CompletionItemKind::Snippet => lsp_types::CompletionItemKind::SNIPPET,
|
CompletionItemKind::Snippet => lsp_types::CompletionItemKind::SNIPPET,
|
||||||
CompletionItemKind::UnresolvedReference => lsp_types::CompletionItemKind::REFERENCE,
|
CompletionItemKind::UnresolvedReference => lsp_types::CompletionItemKind::REFERENCE,
|
||||||
CompletionItemKind::SymbolKind(symbol) => match symbol {
|
CompletionItemKind::SymbolKind(symbol) => match symbol {
|
||||||
|
SymbolKind::Attribute => lsp_types::CompletionItemKind::FUNCTION,
|
||||||
SymbolKind::Const => lsp_types::CompletionItemKind::CONSTANT,
|
SymbolKind::Const => lsp_types::CompletionItemKind::CONSTANT,
|
||||||
SymbolKind::ConstParam => lsp_types::CompletionItemKind::TYPE_PARAMETER,
|
SymbolKind::ConstParam => lsp_types::CompletionItemKind::TYPE_PARAMETER,
|
||||||
SymbolKind::Enum => lsp_types::CompletionItemKind::ENUM,
|
SymbolKind::Enum => lsp_types::CompletionItemKind::ENUM,
|
||||||
|
@ -117,7 +119,7 @@ pub(crate) fn completion_item_kind(
|
||||||
SymbolKind::Label => lsp_types::CompletionItemKind::VARIABLE,
|
SymbolKind::Label => lsp_types::CompletionItemKind::VARIABLE,
|
||||||
SymbolKind::LifetimeParam => lsp_types::CompletionItemKind::TYPE_PARAMETER,
|
SymbolKind::LifetimeParam => lsp_types::CompletionItemKind::TYPE_PARAMETER,
|
||||||
SymbolKind::Local => lsp_types::CompletionItemKind::VARIABLE,
|
SymbolKind::Local => lsp_types::CompletionItemKind::VARIABLE,
|
||||||
SymbolKind::Macro => lsp_types::CompletionItemKind::METHOD,
|
SymbolKind::Macro => lsp_types::CompletionItemKind::FUNCTION,
|
||||||
SymbolKind::Module => lsp_types::CompletionItemKind::MODULE,
|
SymbolKind::Module => lsp_types::CompletionItemKind::MODULE,
|
||||||
SymbolKind::SelfParam => lsp_types::CompletionItemKind::VALUE,
|
SymbolKind::SelfParam => lsp_types::CompletionItemKind::VALUE,
|
||||||
SymbolKind::Static => lsp_types::CompletionItemKind::VALUE,
|
SymbolKind::Static => lsp_types::CompletionItemKind::VALUE,
|
||||||
|
@ -468,6 +470,7 @@ fn semantic_token_type_and_modifiers(
|
||||||
let mut mods = semantic_tokens::ModifierSet::default();
|
let mut mods = semantic_tokens::ModifierSet::default();
|
||||||
let type_ = match highlight.tag {
|
let type_ = match highlight.tag {
|
||||||
HlTag::Symbol(symbol) => match symbol {
|
HlTag::Symbol(symbol) => match symbol {
|
||||||
|
SymbolKind::Attribute => semantic_tokens::ATTRIBUTE,
|
||||||
SymbolKind::Module => lsp_types::SemanticTokenType::NAMESPACE,
|
SymbolKind::Module => lsp_types::SemanticTokenType::NAMESPACE,
|
||||||
SymbolKind::Impl => semantic_tokens::TYPE_ALIAS,
|
SymbolKind::Impl => semantic_tokens::TYPE_ALIAS,
|
||||||
SymbolKind::Field => lsp_types::SemanticTokenType::PROPERTY,
|
SymbolKind::Field => lsp_types::SemanticTokenType::PROPERTY,
|
||||||
|
@ -504,7 +507,7 @@ fn semantic_token_type_and_modifiers(
|
||||||
SymbolKind::BuiltinAttr => semantic_tokens::BUILTIN_ATTRIBUTE,
|
SymbolKind::BuiltinAttr => semantic_tokens::BUILTIN_ATTRIBUTE,
|
||||||
SymbolKind::ToolModule => semantic_tokens::TOOL_MODULE,
|
SymbolKind::ToolModule => semantic_tokens::TOOL_MODULE,
|
||||||
},
|
},
|
||||||
HlTag::Attribute => semantic_tokens::ATTRIBUTE,
|
HlTag::AttributeBracket => semantic_tokens::ATTRIBUTE_BRACKET,
|
||||||
HlTag::BoolLiteral => semantic_tokens::BOOLEAN,
|
HlTag::BoolLiteral => semantic_tokens::BOOLEAN,
|
||||||
HlTag::BuiltinType => semantic_tokens::BUILTIN_TYPE,
|
HlTag::BuiltinType => semantic_tokens::BUILTIN_TYPE,
|
||||||
HlTag::ByteLiteral | HlTag::NumericLiteral => lsp_types::SemanticTokenType::NUMBER,
|
HlTag::ByteLiteral | HlTag::NumericLiteral => lsp_types::SemanticTokenType::NUMBER,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue