kadircet added inline comments.

================
Comment at: clang-tools-extra/clangd/ClangdLSPServer.cpp:810-815
+  Server->applyTweak(Args.tweakID,
+                     {Args.file.file().str(),
+                      Args.selection,
+                      Args.requestedActionKinds,
+                      {},
+                      {}},
----------------
this is kind of hard to read


================
Comment at: clang-tools-extra/clangd/ParsedAST.h:124
+  PreambleBounds getPreambleBounds() const {
+    return Preamble->Preamble.getBounds();
+  }
----------------
Unfortunately this won't work in presence of stale preambles. You can use the 
"patched bounds" we calculate when building a parsedast in 
https://github.com/llvm/llvm-project/blob/main/clang-tools-extra/clangd/ParsedAST.cpp#L646;
 store it in `ParsedAST` in a new field, and return it here.


================
Comment at: clang-tools-extra/clangd/refactor/Tweak.h:74
+    /// code action request context.
+    std::vector<std::string> RequestedActionKinds;
     // FIXME: provide a way to get sources and ASTs for other files.
----------------
prefer `llvm::ArrayRef<std:string>` here, `Selection`s are not passed in 
between threads. So no need to make an extra copy when creating one.


================
Comment at: clang-tools-extra/clangd/refactor/tweaks/OrganizeImports.cpp:52
+    return false;
+  if (std::find(Inputs.RequestedActionKinds.begin(),
+                Inputs.RequestedActionKinds.end(),
----------------
nit: llvm::find(Inputs.RequestedActionKinds, CodeAction::SOURCE_KIND)


================
Comment at: clang-tools-extra/clangd/refactor/tweaks/OrganizeImports.cpp:56
+    return true;
+  if (Inputs.RequestedActionKinds.empty())
+    // To accommodate clients without knowledge of source actions, we trigger
----------------
nit:
```
if (!Inputs.RequestedActionKinds.empty())
  return llvm::find(Inputs.RequestedActionKinds, CodeAction::SOURCE_KIND) != 
Inputs.RequestedActionKinds.end();
// To accommodate clients without knowledge of source actions, we trigger
// without checking code action kinds when inside the preamble region.
return Inputs.SelectionEnd <= Inputs.AST->getPreambleBounds().Size;
```


================
Comment at: clang-tools-extra/clangd/refactor/tweaks/OrganizeImports.cpp:68
+  tooling::Replacements Replacements;
+  for (const auto *Inc : Findings.UnusedIncludes)
+    llvm::cantFail(Replacements.add(
----------------
we should respect `Config::Diagnostics::Includes::IgnoreHeader` here, similar 
to finding integration, similarly for missing include fixes.


================
Comment at: clang-tools-extra/clangd/unittests/ClangdTests.cpp:1307
+  Server.applyTweak(
+      TweakID, {FooCpp, {}, {}, {}, {}}, [&](llvm::Expected<Tweak::Effect> E) {
+        ASSERT_TRUE(static_cast<bool>(E));
----------------
nit: Again extracting CodeActionInputs, setting filename explicitly and passing 
that into the call would be great here.


================
Comment at: 
clang-tools-extra/clangd/unittests/tweaks/OrganizeImportsTests.cpp:35-41
+               {
+                   R"cpp(
+#include "Te^stTU.h"
+)cpp",
+                   true,
+                   {}},
+               {"void foo(^) {}", false, {}}};
----------------
nit: you can use EXPECT_AVAILABLE and EXPECT_UNAVAILABLE directly for these two 
cases


================
Comment at: clang-tools-extra/clangd/unittests/tweaks/TweakTesting.h:101
+  bool isAvailable(WrappedAST &, llvm::Annotations::Range,
+                   const std::vector<std::string> & = {}) const;
   // Return code re-decorated with a single point/range.
----------------
type is not really giving any ideas what the parameter is about here, can you 
name it ?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D153769/new/

https://reviews.llvm.org/D153769

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to