aboutsummaryrefslogtreecommitdiff
path: root/crates/completion/src/item.rs
diff options
context:
space:
mode:
authorLukas Wirth <[email protected]>2021-01-20 17:38:12 +0000
committerLukas Wirth <[email protected]>2021-01-20 17:39:46 +0000
commitf2cb7dbcb71d81336c95dc7ae1301ba2a79ef707 (patch)
treec17a9cf589910137b5388fc22856c991a5ec0a31 /crates/completion/src/item.rs
parent563a175fdb9073a548fc2e161d5de0a093b0d74d (diff)
Partially unify SymbolKind and CompletionItemKind
Diffstat (limited to 'crates/completion/src/item.rs')
-rw-r--r--crates/completion/src/item.rs70
1 files changed, 35 insertions, 35 deletions
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 @@
3use std::fmt; 3use std::fmt;
4 4
5use hir::{Documentation, ModPath, Mutability}; 5use hir::{Documentation, ModPath, Mutability};
6use ide_db::helpers::{ 6use ide_db::{
7 insert_use::{self, ImportScope, MergeBehavior}, 7 helpers::{
8 mod_path_to_ast, SnippetCap, 8 insert_use::{self, ImportScope, MergeBehavior},
9 mod_path_to_ast, SnippetCap,
10 },
11 SymbolKind,
9}; 12};
10use stdx::assert_never; 13use stdx::{assert_never, impl_from};
11use syntax::{algo, TextRange}; 14use syntax::{algo, TextRange};
12use text_edit::TextEdit; 15use text_edit::TextEdit;
13 16
@@ -117,53 +120,50 @@ pub enum CompletionScore {
117 120
118#[derive(Debug, Clone, Copy, PartialEq, Eq)] 121#[derive(Debug, Clone, Copy, PartialEq, Eq)]
119pub enum CompletionItemKind { 122pub enum CompletionItemKind {
123 SymbolKind(SymbolKind),
124 BuiltinType,
120 Attribute, 125 Attribute,
121 Binding, 126 Binding,
122 BuiltinType,
123 Const,
124 ConstParam,
125 Enum,
126 EnumVariant,
127 Field,
128 Function,
129 Keyword, 127 Keyword,
130 LifetimeParam,
131 Macro,
132 Method, 128 Method,
133 Module,
134 Snippet, 129 Snippet,
135 Static,
136 Struct,
137 Trait,
138 TypeAlias,
139 TypeParam,
140 UnresolvedReference, 130 UnresolvedReference,
141} 131}
142 132
133impl_from!(SymbolKind for CompletionItemKind);
134
143impl CompletionItemKind { 135impl CompletionItemKind {
144 #[cfg(test)] 136 #[cfg(test)]
145 pub(crate) fn tag(&self) -> &'static str { 137 pub(crate) fn tag(&self) -> &'static str {
146 match self { 138 match self {
139 CompletionItemKind::SymbolKind(kind) => match kind {
140 SymbolKind::Const => "ct",
141 SymbolKind::ConstParam => "cp",
142 SymbolKind::Enum => "en",
143 SymbolKind::Field => "fd",
144 SymbolKind::Function => "fn",
145 SymbolKind::Impl => "im",
146 SymbolKind::Label => "lb",
147 SymbolKind::LifetimeParam => "lt",
148 SymbolKind::Local => "lc",
149 SymbolKind::Macro => "ma",
150 SymbolKind::Module => "md",
151 SymbolKind::SelfParam => "sp",
152 SymbolKind::Static => "sc",
153 SymbolKind::Struct => "st",
154 SymbolKind::Trait => "tt",
155 SymbolKind::TypeAlias => "ta",
156 SymbolKind::TypeParam => "tp",
157 SymbolKind::Union => "un",
158 SymbolKind::ValueParam => "vp",
159 SymbolKind::Variant => "ev",
160 },
147 CompletionItemKind::Attribute => "at", 161 CompletionItemKind::Attribute => "at",
148 CompletionItemKind::Binding => "bn", 162 CompletionItemKind::Binding => "bn",
149 CompletionItemKind::BuiltinType => "bt", 163 CompletionItemKind::BuiltinType => "bt",
150 CompletionItemKind::Const => "ct",
151 CompletionItemKind::ConstParam => "cp",
152 CompletionItemKind::Enum => "en",
153 CompletionItemKind::EnumVariant => "ev",
154 CompletionItemKind::Field => "fd",
155 CompletionItemKind::Function => "fn",
156 CompletionItemKind::Keyword => "kw", 164 CompletionItemKind::Keyword => "kw",
157 CompletionItemKind::LifetimeParam => "lt",
158 CompletionItemKind::Macro => "ma",
159 CompletionItemKind::Method => "me", 165 CompletionItemKind::Method => "me",
160 CompletionItemKind::Module => "md",
161 CompletionItemKind::Snippet => "sn", 166 CompletionItemKind::Snippet => "sn",
162 CompletionItemKind::Static => "sc",
163 CompletionItemKind::Struct => "st",
164 CompletionItemKind::Trait => "tt",
165 CompletionItemKind::TypeAlias => "ta",
166 CompletionItemKind::TypeParam => "tp",
167 CompletionItemKind::UnresolvedReference => "??", 167 CompletionItemKind::UnresolvedReference => "??",
168 } 168 }
169 } 169 }
@@ -386,8 +386,8 @@ impl Builder {
386 self.insert_text_format = InsertTextFormat::Snippet; 386 self.insert_text_format = InsertTextFormat::Snippet;
387 self.insert_text(snippet) 387 self.insert_text(snippet)
388 } 388 }
389 pub(crate) fn kind(mut self, kind: CompletionItemKind) -> Builder { 389 pub(crate) fn kind(mut self, kind: impl Into<CompletionItemKind>) -> Builder {
390 self.kind = Some(kind); 390 self.kind = Some(kind.into());
391 self 391 self
392 } 392 }
393 pub(crate) fn text_edit(mut self, edit: TextEdit) -> Builder { 393 pub(crate) fn text_edit(mut self, edit: TextEdit) -> Builder {