mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-29 21:35:20 +00:00
Add LifetimeParam and ConstParam to CompletionItemKind
This commit is contained in:
parent
f647e134a7
commit
83e49200d8
4 changed files with 34 additions and 24 deletions
|
@ -241,7 +241,7 @@ fn main() {
|
||||||
check(
|
check(
|
||||||
r#"fn quux<const C: usize>() { $0 }"#,
|
r#"fn quux<const C: usize>() { $0 }"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
tp C
|
cp C
|
||||||
fn quux() fn quux<const C: usize>()
|
fn quux() fn quux<const C: usize>()
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
|
|
|
@ -117,24 +117,26 @@ pub enum CompletionScore {
|
||||||
|
|
||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||||
pub enum CompletionItemKind {
|
pub enum CompletionItemKind {
|
||||||
Snippet,
|
Attribute,
|
||||||
Keyword,
|
Binding,
|
||||||
Module,
|
|
||||||
Function,
|
|
||||||
BuiltinType,
|
BuiltinType,
|
||||||
Struct,
|
Const,
|
||||||
|
ConstParam,
|
||||||
Enum,
|
Enum,
|
||||||
EnumVariant,
|
EnumVariant,
|
||||||
Binding,
|
|
||||||
Field,
|
Field,
|
||||||
|
Function,
|
||||||
|
Keyword,
|
||||||
|
LifetimeParam,
|
||||||
|
Macro,
|
||||||
|
Method,
|
||||||
|
Module,
|
||||||
|
Snippet,
|
||||||
Static,
|
Static,
|
||||||
Const,
|
Struct,
|
||||||
Trait,
|
Trait,
|
||||||
TypeAlias,
|
TypeAlias,
|
||||||
Method,
|
|
||||||
TypeParam,
|
TypeParam,
|
||||||
Macro,
|
|
||||||
Attribute,
|
|
||||||
UnresolvedReference,
|
UnresolvedReference,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -146,11 +148,13 @@ impl CompletionItemKind {
|
||||||
CompletionItemKind::Binding => "bn",
|
CompletionItemKind::Binding => "bn",
|
||||||
CompletionItemKind::BuiltinType => "bt",
|
CompletionItemKind::BuiltinType => "bt",
|
||||||
CompletionItemKind::Const => "ct",
|
CompletionItemKind::Const => "ct",
|
||||||
|
CompletionItemKind::ConstParam => "cp",
|
||||||
CompletionItemKind::Enum => "en",
|
CompletionItemKind::Enum => "en",
|
||||||
CompletionItemKind::EnumVariant => "ev",
|
CompletionItemKind::EnumVariant => "ev",
|
||||||
CompletionItemKind::Field => "fd",
|
CompletionItemKind::Field => "fd",
|
||||||
CompletionItemKind::Function => "fn",
|
CompletionItemKind::Function => "fn",
|
||||||
CompletionItemKind::Keyword => "kw",
|
CompletionItemKind::Keyword => "kw",
|
||||||
|
CompletionItemKind::LifetimeParam => "lt",
|
||||||
CompletionItemKind::Macro => "ma",
|
CompletionItemKind::Macro => "ma",
|
||||||
CompletionItemKind::Method => "me",
|
CompletionItemKind::Method => "me",
|
||||||
CompletionItemKind::Module => "md",
|
CompletionItemKind::Module => "md",
|
||||||
|
|
|
@ -208,7 +208,11 @@ impl<'a> Render<'a> {
|
||||||
ScopeDef::ModuleDef(Trait(..)) => CompletionItemKind::Trait,
|
ScopeDef::ModuleDef(Trait(..)) => CompletionItemKind::Trait,
|
||||||
ScopeDef::ModuleDef(TypeAlias(..)) => CompletionItemKind::TypeAlias,
|
ScopeDef::ModuleDef(TypeAlias(..)) => CompletionItemKind::TypeAlias,
|
||||||
ScopeDef::ModuleDef(BuiltinType(..)) => CompletionItemKind::BuiltinType,
|
ScopeDef::ModuleDef(BuiltinType(..)) => CompletionItemKind::BuiltinType,
|
||||||
ScopeDef::GenericParam(..) => CompletionItemKind::TypeParam,
|
ScopeDef::GenericParam(param) => match param {
|
||||||
|
hir::GenericParam::TypeParam(_) => CompletionItemKind::TypeParam,
|
||||||
|
hir::GenericParam::LifetimeParam(_) => CompletionItemKind::LifetimeParam,
|
||||||
|
hir::GenericParam::ConstParam(_) => CompletionItemKind::ConstParam,
|
||||||
|
},
|
||||||
ScopeDef::Local(..) => CompletionItemKind::Binding,
|
ScopeDef::Local(..) => CompletionItemKind::Binding,
|
||||||
// (does this need its own kind?)
|
// (does this need its own kind?)
|
||||||
ScopeDef::AdtSelfType(..) | ScopeDef::ImplSelfType(..) => CompletionItemKind::TypeParam,
|
ScopeDef::AdtSelfType(..) | ScopeDef::ImplSelfType(..) => CompletionItemKind::TypeParam,
|
||||||
|
|
|
@ -87,24 +87,26 @@ 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::Keyword => lsp_types::CompletionItemKind::Keyword,
|
CompletionItemKind::Attribute => lsp_types::CompletionItemKind::EnumMember,
|
||||||
CompletionItemKind::Snippet => lsp_types::CompletionItemKind::Snippet,
|
CompletionItemKind::Binding => lsp_types::CompletionItemKind::Variable,
|
||||||
CompletionItemKind::Module => lsp_types::CompletionItemKind::Module,
|
CompletionItemKind::BuiltinType => lsp_types::CompletionItemKind::Struct,
|
||||||
CompletionItemKind::Function => lsp_types::CompletionItemKind::Function,
|
CompletionItemKind::Const => lsp_types::CompletionItemKind::Constant,
|
||||||
CompletionItemKind::Struct => lsp_types::CompletionItemKind::Struct,
|
CompletionItemKind::ConstParam => lsp_types::CompletionItemKind::TypeParameter,
|
||||||
CompletionItemKind::Enum => lsp_types::CompletionItemKind::Enum,
|
CompletionItemKind::Enum => lsp_types::CompletionItemKind::Enum,
|
||||||
CompletionItemKind::EnumVariant => lsp_types::CompletionItemKind::EnumMember,
|
CompletionItemKind::EnumVariant => lsp_types::CompletionItemKind::EnumMember,
|
||||||
CompletionItemKind::BuiltinType => lsp_types::CompletionItemKind::Struct,
|
|
||||||
CompletionItemKind::Binding => lsp_types::CompletionItemKind::Variable,
|
|
||||||
CompletionItemKind::Field => lsp_types::CompletionItemKind::Field,
|
CompletionItemKind::Field => lsp_types::CompletionItemKind::Field,
|
||||||
|
CompletionItemKind::Function => lsp_types::CompletionItemKind::Function,
|
||||||
|
CompletionItemKind::Keyword => lsp_types::CompletionItemKind::Keyword,
|
||||||
|
CompletionItemKind::LifetimeParam => lsp_types::CompletionItemKind::TypeParameter,
|
||||||
|
CompletionItemKind::Macro => lsp_types::CompletionItemKind::Method,
|
||||||
|
CompletionItemKind::Method => lsp_types::CompletionItemKind::Method,
|
||||||
|
CompletionItemKind::Module => lsp_types::CompletionItemKind::Module,
|
||||||
|
CompletionItemKind::Snippet => lsp_types::CompletionItemKind::Snippet,
|
||||||
|
CompletionItemKind::Static => lsp_types::CompletionItemKind::Value,
|
||||||
|
CompletionItemKind::Struct => lsp_types::CompletionItemKind::Struct,
|
||||||
CompletionItemKind::Trait => lsp_types::CompletionItemKind::Interface,
|
CompletionItemKind::Trait => lsp_types::CompletionItemKind::Interface,
|
||||||
CompletionItemKind::TypeAlias => lsp_types::CompletionItemKind::Struct,
|
CompletionItemKind::TypeAlias => lsp_types::CompletionItemKind::Struct,
|
||||||
CompletionItemKind::Const => lsp_types::CompletionItemKind::Constant,
|
|
||||||
CompletionItemKind::Static => lsp_types::CompletionItemKind::Value,
|
|
||||||
CompletionItemKind::Method => lsp_types::CompletionItemKind::Method,
|
|
||||||
CompletionItemKind::TypeParam => lsp_types::CompletionItemKind::TypeParameter,
|
CompletionItemKind::TypeParam => lsp_types::CompletionItemKind::TypeParameter,
|
||||||
CompletionItemKind::Macro => lsp_types::CompletionItemKind::Method,
|
|
||||||
CompletionItemKind::Attribute => lsp_types::CompletionItemKind::EnumMember,
|
|
||||||
CompletionItemKind::UnresolvedReference => lsp_types::CompletionItemKind::Reference,
|
CompletionItemKind::UnresolvedReference => lsp_types::CompletionItemKind::Reference,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue