[PATCH] D142967: [clangd] Introduce source.organizeImports code action.

Kadir Cetinkaya via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon May 1 07:02:24 PDT 2023


kadircet added inline comments.


================
Comment at: clang-tools-extra/clangd/ClangdLSPServer.cpp:1035
   }
+  if (KindAllowed(CodeAction::SOURCE_ORGANIZE_IMPORT)) {
+    std::lock_guard<std::mutex> Lock(FixItsMutex);
----------------
instead of doing this in here, what about introducing a new "tweak" that'll perform include-cleaner fixes?
Pros are:
- We can use it in places that don't use LSPServer.
- We can later on extend "organize imports" behaviour to do other things if needed.
- Results will be always up-to-date, as we can use the AST and compute the fixes. rather than making use of the "latest" cached version.
- Implementation would be a little bit neater (and contained), as we can just re-use the existing components in IncludeCleaner, rather than doing some ad-hoc matching & retrieval.

WDYT?


================
Comment at: clang-tools-extra/clangd/ClangdLSPServer.cpp:1072-1074
+      AddFix(RemoveAllUnused);
+      AddFix(AddAllMissing);
+      AddFix(FixAll);
----------------
what does the UI look like when there are multiple code actions with "organize imports" kind?
e.g. 1&2 can actually be applied together, but 3rd one can't be combined with others, and in theory these can also be triggered on save (if the user opts in). so I am not sure if having multiple code actions, especially when they can't be merged together, really makes much sense on the editor side.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D142967



More information about the cfe-commits mailing list