[clangd] Update the CompletionItemKind.

Summary: Fix some FIXMEs.

Reviewers: kadircet

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D74609
This commit is contained in:
Haojian Wu 2020-02-14 14:55:51 +01:00
parent 61dd0603bd
commit 5dc2314d5e
2 changed files with 14 additions and 7 deletions

View File

@ -87,9 +87,8 @@ CompletionItemKind toCompletionItemKind(index::SymbolKind Kind) {
return CompletionItemKind::Text;
case SK::Enum:
return CompletionItemKind::Enum;
// FIXME(ioeric): use LSP struct instead of class when it is suppoted in the
// protocol.
case SK::Struct:
return CompletionItemKind::Struct;
case SK::Class:
case SK::Protocol:
case SK::Extension:
@ -102,8 +101,6 @@ CompletionItemKind toCompletionItemKind(index::SymbolKind Kind) {
case SK::Using:
return CompletionItemKind::Reference;
case SK::Function:
// FIXME(ioeric): this should probably be an operator. This should be fixed
// when `Operator` is support type in the protocol.
case SK::ConversionFunction:
return CompletionItemKind::Function;
case SK::Variable:
@ -112,9 +109,8 @@ CompletionItemKind toCompletionItemKind(index::SymbolKind Kind) {
return CompletionItemKind::Variable;
case SK::Field:
return CompletionItemKind::Field;
// FIXME(ioeric): use LSP enum constant when it is supported in the protocol.
case SK::EnumConstant:
return CompletionItemKind::Value;
return CompletionItemKind::EnumMember;
case SK::InstanceMethod:
case SK::ClassMethod:
case SK::StaticMethod:

View File

@ -481,7 +481,7 @@ TEST(CompletionTest, Kinds) {
AllOf(Has("function", CompletionItemKind::Function),
Has("variable", CompletionItemKind::Variable),
Has("int", CompletionItemKind::Keyword),
Has("Struct", CompletionItemKind::Class),
Has("Struct", CompletionItemKind::Struct),
Has("MACRO", CompletionItemKind::Text),
Has("indexFunction", CompletionItemKind::Function),
Has("indexVariable", CompletionItemKind::Variable),
@ -529,6 +529,17 @@ TEST(CompletionTest, Kinds) {
AllOf(Named("complete_variable"), Kind(CompletionItemKind::Variable)),
AllOf(Named("complete_static_member"),
Kind(CompletionItemKind::Property))));
Results = completions(
R"cpp(
enum Color {
Red
};
Color u = ^
)cpp");
EXPECT_THAT(Results.Completions,
Contains(
AllOf(Named("Red"), Kind(CompletionItemKind::EnumMember))));
}
TEST(CompletionTest, NoDuplicates) {