ilya-biryukov requested changes to this revision.
ilya-biryukov added a comment.
This revision now requires changes to proceed.
I haven't looked into the `getHover` method's body yet, but here are some
comments about other parts.
Good work, BTW, this looks close to being ready.
================
Comment at: clangd/ClangdServer.cpp:511
+Tagged<Hover> ClangdServer::findHover(PathRef File, Position Pos) {
+
+ //Default Hover values
----------------
NIT: could you remove the empty newlines at the start of the methods?
================
Comment at: clangd/ClangdServer.cpp:514
+ std::vector<MarkedString> EmptyVector;
+ Position BeginPosition = {0,0};
+ Position EndPosition = {0,0};
----------------
Let's follow error-reporting pattern used in other `ClangdServer` features.
We should return `llvm::Expected` and do `Ctx.replyError` on error return
values.
================
Comment at: clangd/ClangdUnit.cpp:959
+ std::sort(DeclarationDecls.begin(), DeclarationDecls.end());
+ auto last = std::unique(DeclarationDecls.begin(), DeclarationDecls.end());
+ DeclarationDecls.erase(last, DeclarationDecls.end());
----------------
NIT: local vars are `UpperCamelCase`. (Not introduced by this commit, but
probably a good place to fix the naming anyway).
================
Comment at: clangd/ClangdUnit.cpp:967
+ // This can happen when nodes in the AST are visited twice.
+ std::sort(DeclarationMacroInfs.begin(), DeclarationMacroInfs.end());
auto last =
----------------
NIT: local vars are `UpperCamelCase`. (Not introduced by this commit, but
probably a good place to fix the naming anyway).
================
Comment at: clangd/ClangdUnit.cpp:1100
+
+ const SourceManager &SM = AST.getASTContext().getSourceManager();
+ const LangOptions &LangOpts = AST.getASTContext().getLangOpts();
----------------
I think this functionality is already implemented in clang. Could you use
`ASTContext::getRawCommentForAnyRedecl`?
================
Comment at: clangd/ClangdUnit.cpp:1199
+ } else if (dyn_cast<TypedefDecl>(LocationDecl)) {
+ // TODO: find a way to get the hover for the type that is being aliased
+ SR = LocationDecl->getSourceRange();
----------------
NIT: we use `FIXME`
================
Comment at: clangd/ClangdUnit.h:323
+
+Location getDeclarationLocation(ParsedAST &AST, const SourceRange
&ValSourceRange);
+
----------------
Could we put `getDeclarationLocation` and `getFunctionComments` in the cpp file
instead? They're just implementation detail of `findDefinitions`/`getHover`,
right?
================
Comment at: clangd/MyClass.cpp:1
+#include "MyClass.h"
+
----------------
Remove it.
================
Comment at: clangd/Protocol.h:26
#include "llvm/ADT/Optional.h"
+#include "clang/Basic/SourceLocation.h"
+#include "llvm/ADT/Optional.h"
----------------
We don't need `SourceLocation` here
================
Comment at: clangd/Protocol.h:27
+#include "clang/Basic/SourceLocation.h"
+#include "llvm/ADT/Optional.h"
#include "llvm/Support/YAMLParser.h"
----------------
This include is redundant
https://reviews.llvm.org/D35894
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits