From 5dc2314d5ecf3fe246ee0134f519183844287456 Mon Sep 17 00:00:00 2001 From: Haojian Wu Date: Fri, 14 Feb 2020 14:55:51 +0100 Subject: [PATCH] [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 --- clang-tools-extra/clangd/CodeComplete.cpp | 8 ++------ clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp | 13 ++++++++++++- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/clang-tools-extra/clangd/CodeComplete.cpp b/clang-tools-extra/clangd/CodeComplete.cpp index f7c6f10..3fbf989 100644 --- a/clang-tools-extra/clangd/CodeComplete.cpp +++ b/clang-tools-extra/clangd/CodeComplete.cpp @@ -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: diff --git a/clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp b/clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp index a39c743..f9ffe11 100644 --- a/clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp +++ b/clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp @@ -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) { -- 2.7.4