[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kdevelop] plugins/clang: Fix CodeCompletion of Strongly Typed Enum
From: Aaron Puchert <null () kde ! org>
Date: 2018-02-26 22:12:58
Message-ID: E1eqR10-00029A-Fi () code ! kde ! org
[Download RAW message or body]
Git commit 1b0fe932941112f1bccf37713f052fc6028cbb89 by Aaron Puchert, on behalf of \
Shashwat Dixit. Committed on 26/02/2018 at 22:11.
Pushed by aaronpuchert into branch 'master'.
Fix CodeCompletion of Strongly Typed Enum
Summary: BUG: 375635
Reviewers: nalvarez, #kdevelop, kfunk, mwolff
Reviewed By: #kdevelop, mwolff
Subscribers: mwolff, kdevelop-devel
Tags: #kdevelop
Differential Revision: https://phabricator.kde.org/D10738
M +4 -1 plugins/clang/codecompletion/context.cpp
M +6 -0 plugins/clang/tests/test_codecompletion.cpp
https://commits.kde.org/kdevelop/1b0fe932941112f1bccf37713f052fc6028cbb89
diff --git a/plugins/clang/codecompletion/context.cpp \
b/plugins/clang/codecompletion/context.cpp index 2b3e8fc867..5be6f8cd0d 100644
--- a/plugins/clang/codecompletion/context.cpp
+++ b/plugins/clang/codecompletion/context.cpp
@@ -1035,7 +1035,7 @@ QList<CompletionTreeItemPointer> \
ClangCodeCompletionContext::completionItems(boo switch (kind) {
case CXCompletionChunk_TypedText:
typed = string;
- replacement = string;
+ replacement += string;
break;
case CXCompletionChunk_ResultType:
resultType = string;
@@ -1062,6 +1062,9 @@ QList<CompletionTreeItemPointer> \
ClangCodeCompletionContext::completionItems(boo if (isOverloadCandidate) {
typed += string;
}
+ else if (result.CursorKind == CXCursor_EnumConstantDecl) {
+ replacement += string;
+ }
break;
case CXCompletionChunk_CurrentParameter:
argumentRange.start = arguments.size();
diff --git a/plugins/clang/tests/test_codecompletion.cpp \
b/plugins/clang/tests/test_codecompletion.cpp index d12ad5236b..3c946b738b 100644
--- a/plugins/clang/tests/test_codecompletion.cpp
+++ b/plugins/clang/tests/test_codecompletion.cpp
@@ -1354,6 +1354,12 @@ void TestCodeCompletion::testCompleteFunction_data()
<< CompletionItems({2, 0}, {"foo", "main"})
<< "main"
<< "int foo();\nint main() {\nmain();\n}";
+
+ QTest::newRow("bug375635")
+ << "enum class Color {\nBlue, Green, Red, Yellow\n};\nvoid foo() {\nColor \
x;\nswitch (x) {\ncase : break;}\n}" + << CompletionItems({6, 5}, {"Blue", \
"Green", "Red", "Yellow"}) + << "Yellow"
+ << "enum class Color {\nBlue, Green, Red, Yellow\n};\nvoid foo() {\nColor \
x;\nswitch (x) {\ncase Color::Yellow: break;}\n}"; }
void TestCodeCompletion::testIgnoreGccBuiltins()
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic