From 83e49200d82dccda54bbf376bba5a9c75da14cab Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Tue, 19 Jan 2021 20:21:56 +0100 Subject: Add LifetimeParam and ConstParam to CompletionItemKind --- crates/completion/src/item.rs | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) (limited to 'crates/completion/src/item.rs') diff --git a/crates/completion/src/item.rs b/crates/completion/src/item.rs index 4147853e7..ecf581be2 100644 --- a/crates/completion/src/item.rs +++ b/crates/completion/src/item.rs @@ -117,24 +117,26 @@ pub enum CompletionScore { #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub enum CompletionItemKind { - Snippet, - Keyword, - Module, - Function, + Attribute, + Binding, BuiltinType, - Struct, + Const, + ConstParam, Enum, EnumVariant, - Binding, Field, + Function, + Keyword, + LifetimeParam, + Macro, + Method, + Module, + Snippet, Static, - Const, + Struct, Trait, TypeAlias, - Method, TypeParam, - Macro, - Attribute, UnresolvedReference, } @@ -146,11 +148,13 @@ impl CompletionItemKind { CompletionItemKind::Binding => "bn", CompletionItemKind::BuiltinType => "bt", CompletionItemKind::Const => "ct", + CompletionItemKind::ConstParam => "cp", CompletionItemKind::Enum => "en", CompletionItemKind::EnumVariant => "ev", CompletionItemKind::Field => "fd", CompletionItemKind::Function => "fn", CompletionItemKind::Keyword => "kw", + CompletionItemKind::LifetimeParam => "lt", CompletionItemKind::Macro => "ma", CompletionItemKind::Method => "me", CompletionItemKind::Module => "md", -- cgit v1.2.3 From f2cb7dbcb71d81336c95dc7ae1301ba2a79ef707 Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Wed, 20 Jan 2021 18:38:12 +0100 Subject: Partially unify SymbolKind and CompletionItemKind --- crates/completion/src/item.rs | 70 +++++++++++++++++++++---------------------- 1 file changed, 35 insertions(+), 35 deletions(-) (limited to 'crates/completion/src/item.rs') diff --git a/crates/completion/src/item.rs b/crates/completion/src/item.rs index ecf581be2..178e05c46 100644 --- a/crates/completion/src/item.rs +++ b/crates/completion/src/item.rs @@ -3,11 +3,14 @@ use std::fmt; use hir::{Documentation, ModPath, Mutability}; -use ide_db::helpers::{ - insert_use::{self, ImportScope, MergeBehavior}, - mod_path_to_ast, SnippetCap, +use ide_db::{ + helpers::{ + insert_use::{self, ImportScope, MergeBehavior}, + mod_path_to_ast, SnippetCap, + }, + SymbolKind, }; -use stdx::assert_never; +use stdx::{assert_never, impl_from}; use syntax::{algo, TextRange}; use text_edit::TextEdit; @@ -117,53 +120,50 @@ pub enum CompletionScore { #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub enum CompletionItemKind { + SymbolKind(SymbolKind), + BuiltinType, Attribute, Binding, - BuiltinType, - Const, - ConstParam, - Enum, - EnumVariant, - Field, - Function, Keyword, - LifetimeParam, - Macro, Method, - Module, Snippet, - Static, - Struct, - Trait, - TypeAlias, - TypeParam, UnresolvedReference, } +impl_from!(SymbolKind for CompletionItemKind); + impl CompletionItemKind { #[cfg(test)] pub(crate) fn tag(&self) -> &'static str { match self { + CompletionItemKind::SymbolKind(kind) => match kind { + SymbolKind::Const => "ct", + SymbolKind::ConstParam => "cp", + SymbolKind::Enum => "en", + SymbolKind::Field => "fd", + SymbolKind::Function => "fn", + SymbolKind::Impl => "im", + SymbolKind::Label => "lb", + SymbolKind::LifetimeParam => "lt", + SymbolKind::Local => "lc", + SymbolKind::Macro => "ma", + SymbolKind::Module => "md", + SymbolKind::SelfParam => "sp", + SymbolKind::Static => "sc", + SymbolKind::Struct => "st", + SymbolKind::Trait => "tt", + SymbolKind::TypeAlias => "ta", + SymbolKind::TypeParam => "tp", + SymbolKind::Union => "un", + SymbolKind::ValueParam => "vp", + SymbolKind::Variant => "ev", + }, CompletionItemKind::Attribute => "at", CompletionItemKind::Binding => "bn", CompletionItemKind::BuiltinType => "bt", - CompletionItemKind::Const => "ct", - CompletionItemKind::ConstParam => "cp", - CompletionItemKind::Enum => "en", - CompletionItemKind::EnumVariant => "ev", - CompletionItemKind::Field => "fd", - CompletionItemKind::Function => "fn", CompletionItemKind::Keyword => "kw", - CompletionItemKind::LifetimeParam => "lt", - CompletionItemKind::Macro => "ma", CompletionItemKind::Method => "me", - CompletionItemKind::Module => "md", CompletionItemKind::Snippet => "sn", - CompletionItemKind::Static => "sc", - CompletionItemKind::Struct => "st", - CompletionItemKind::Trait => "tt", - CompletionItemKind::TypeAlias => "ta", - CompletionItemKind::TypeParam => "tp", CompletionItemKind::UnresolvedReference => "??", } } @@ -386,8 +386,8 @@ impl Builder { self.insert_text_format = InsertTextFormat::Snippet; self.insert_text(snippet) } - pub(crate) fn kind(mut self, kind: CompletionItemKind) -> Builder { - self.kind = Some(kind); + pub(crate) fn kind(mut self, kind: impl Into) -> Builder { + self.kind = Some(kind.into()); self } pub(crate) fn text_edit(mut self, edit: TextEdit) -> Builder { -- cgit v1.2.3 From 08b822b25914bea7405a30383fe43c7235d14346 Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Wed, 20 Jan 2021 18:46:14 +0100 Subject: Update completions test output --- crates/completion/src/item.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'crates/completion/src/item.rs') diff --git a/crates/completion/src/item.rs b/crates/completion/src/item.rs index 178e05c46..d2e6a6aeb 100644 --- a/crates/completion/src/item.rs +++ b/crates/completion/src/item.rs @@ -121,9 +121,9 @@ pub enum CompletionScore { #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub enum CompletionItemKind { SymbolKind(SymbolKind), - BuiltinType, Attribute, Binding, + BuiltinType, Keyword, Method, Snippet, -- cgit v1.2.3