[PATCH] D46002: [clangd] Parse all comments in Sema and completion.
Ilya Biryukov via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue May 15 08:05:58 PDT 2018
ilya-biryukov updated this revision to Diff 146831.
ilya-biryukov added a comment.
- Added tests that all comments are being parsed.
Repository:
rCTE Clang Tools Extra
https://reviews.llvm.org/D46002
Files:
clangd/ClangdUnit.cpp
clangd/CodeComplete.cpp
unittests/clangd/CodeCompleteTests.cpp
Index: unittests/clangd/CodeCompleteTests.cpp
===================================================================
--- unittests/clangd/CodeCompleteTests.cpp
+++ unittests/clangd/CodeCompleteTests.cpp
@@ -574,6 +574,30 @@
Doc("Doooc"), Detail("void"))));
}
+TEST(CompletionTest, Documentation) {
+ auto Results = completions(
+ R"cpp(
+ // Non-doxygen comment.
+ int foo();
+ /// Doxygen comment.
+ /// \param int a
+ int bar(int a);
+ /* Multi-line
+ block comment
+ */
+ int baz();
+
+ int x = ^
+ )cpp");
+ EXPECT_THAT(Results.items,
+ Contains(AllOf(Named("foo"), Doc("Non-doxygen comment."))));
+ EXPECT_THAT(
+ Results.items,
+ Contains(AllOf(Named("bar"), Doc("Doxygen comment.\n\\param int a"))));
+ EXPECT_THAT(Results.items,
+ Contains(AllOf(Named("baz"), Doc("Multi-line\nblock comment"))));
+}
+
TEST(CodeCompleteTest, DisableTypoCorrection) {
auto Results = completions(R"cpp(
namespace clang { int v; }
Index: clangd/CodeComplete.cpp
===================================================================
--- clangd/CodeComplete.cpp
+++ clangd/CodeComplete.cpp
@@ -22,6 +22,7 @@
#include "SourceCode.h"
#include "Trace.h"
#include "index/Index.h"
+#include "clang/Basic/LangOptions.h"
#include "clang/Format/Format.h"
#include "clang/Frontend/CompilerInstance.h"
#include "clang/Frontend/FrontendActions.h"
@@ -706,6 +707,7 @@
return false;
}
CI->getFrontendOpts().DisableFree = false;
+ CI->getLangOpts()->CommentOpts.ParseAllComments = true;
std::unique_ptr<llvm::MemoryBuffer> ContentsBuffer =
llvm::MemoryBuffer::getMemBufferCopy(Input.Contents, Input.FileName);
Index: clangd/ClangdUnit.cpp
===================================================================
--- clangd/ClangdUnit.cpp
+++ clangd/ClangdUnit.cpp
@@ -25,6 +25,7 @@
#include "clang/Sema/Sema.h"
#include "clang/Serialization/ASTWriter.h"
#include "clang/Tooling/CompilationDatabase.h"
+#include "clang/Basic/LangOptions.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Support/CrashRecoveryContext.h"
@@ -346,6 +347,7 @@
}
// createInvocationFromCommandLine sets DisableFree.
CI->getFrontendOpts().DisableFree = false;
+ CI->getLangOpts()->CommentOpts.ParseAllComments = true;
}
std::unique_ptr<llvm::MemoryBuffer> ContentsBuffer =
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D46002.146831.patch
Type: text/x-patch
Size: 2466 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180515/3519512c/attachment.bin>
More information about the cfe-commits
mailing list