OSDN Git Service

[clangd] Track tweaks that fail the apply stage
authorKadir Cetinkaya <kadircet@google.com>
Fri, 11 Sep 2020 09:40:54 +0000 (11:40 +0200)
committerKadir Cetinkaya <kadircet@google.com>
Mon, 14 Sep 2020 09:24:02 +0000 (11:24 +0200)
Differential Revision: https://reviews.llvm.org/D87501

clang-tools-extra/clangd/ClangdServer.cpp

index a571ff5..27d1a2d 100644 (file)
@@ -536,9 +536,12 @@ void ClangdServer::enumerateTweaks(PathRef File, Range Sel,
 
 void ClangdServer::applyTweak(PathRef File, Range Sel, StringRef TweakID,
                               Callback<Tweak::Effect> CB) {
-  // Tracks number of times a tweak has been applied.
+  // Tracks number of times a tweak has been attempted.
   static constexpr trace::Metric TweakAttempt(
       "tweak_attempt", trace::Metric::Counter, "tweak_id");
+  // Tracks number of times a tweak has failed to produce edits.
+  static constexpr trace::Metric TweakFailed(
+      "tweak_failed", trace::Metric::Counter, "tweak_id");
   TweakAttempt.record(1, TweakID);
   auto Action = [File = File.str(), Sel, TweakID = TweakID.str(),
                  CB = std::move(CB),
@@ -569,6 +572,8 @@ void ClangdServer::applyTweak(PathRef File, Range Sel, StringRef TweakID,
         if (llvm::Error Err = reformatEdit(E, Style))
           elog("Failed to format {0}: {1}", It.first(), std::move(Err));
       }
+    } else {
+      TweakFailed.record(1, TweakID);
     }
     return CB(std::move(*Effect));
   };