diff options
author | Lukas Wirth <[email protected]> | 2021-01-20 17:38:12 +0000 |
---|---|---|
committer | Lukas Wirth <[email protected]> | 2021-01-20 17:39:46 +0000 |
commit | f2cb7dbcb71d81336c95dc7ae1301ba2a79ef707 (patch) | |
tree | c17a9cf589910137b5388fc22856c991a5ec0a31 /crates/completion/src/item.rs | |
parent | 563a175fdb9073a548fc2e161d5de0a093b0d74d (diff) |
Partially unify SymbolKind and CompletionItemKind
Diffstat (limited to 'crates/completion/src/item.rs')
-rw-r--r-- | crates/completion/src/item.rs | 70 |
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 @@ | |||
3 | use std::fmt; | 3 | use std::fmt; |
4 | 4 | ||
5 | use hir::{Documentation, ModPath, Mutability}; | 5 | use hir::{Documentation, ModPath, Mutability}; |
6 | use ide_db::helpers::{ | 6 | use 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 | }; |
10 | use stdx::assert_never; | 13 | use stdx::{assert_never, impl_from}; |
11 | use syntax::{algo, TextRange}; | 14 | use syntax::{algo, TextRange}; |
12 | use text_edit::TextEdit; | 15 | use 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)] |
119 | pub enum CompletionItemKind { | 122 | pub 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 | ||
133 | impl_from!(SymbolKind for CompletionItemKind); | ||
134 | |||
143 | impl CompletionItemKind { | 135 | impl 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 { |