[clang-tools-extra] [clang-tidy] Replace /* ... */ single-line comments with // ... comments (PR #124319)

Baranov Victor via cfe-commits cfe-commits at lists.llvm.org
Fri Jan 24 11:44:43 PST 2025


================
@@ -0,0 +1,127 @@
+//===--- UseCppStyleCommentsCheck.cpp - clang-tidy-------------------------===//
+
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "UseCppStyleCommentsCheck.h"
+#include "clang/ASTMatchers/ASTMatchFinder.h"
+#include "clang/Lex/Lexer.h"
+#include "clang/Lex/Preprocessor.h"
+#include <iostream>
+using namespace clang::ast_matchers;
+
+namespace clang::tidy::modernize {
+class UseCppStyleCommentsCheck::CStyleCommentHandler : public CommentHandler {
+public:
+  CStyleCommentHandler(UseCppStyleCommentsCheck &Check)
+      : Check(Check),
+        CStyleCommentMatch(
+            "^[ \t]*/\\*+[ \t\r\n]*(.*[ \t\r\n]*)*[ \t\r\n]*\\*+/[ \t\r\n]*$") {
+  }
+
+  std::string convertToCppStyleComment(const SourceManager &SM,
+                                       const SourceRange &Range) {
+    StringRef CommentText = Lexer::getSourceText(
+        CharSourceRange::getTokenRange(Range), SM, LangOptions());
+
+    std::string InnerText = CommentText.str();
+    InnerText.erase(0, 2);
+    InnerText.erase(InnerText.size() - 2, 2);
+
+    std::string Result;
+    std::istringstream Stream(InnerText);
+    std::string Line;
+
+    if (std::getline(Stream, Line)) {
+      size_t startPos = Line.find_first_not_of(" \t");
+      if (startPos != std::string::npos) {
+        Line = Line.substr(startPos);
+      } else {
+        Line.clear();
+      }
+      Result += "// " + Line;
+    }
+
+    while (std::getline(Stream, Line)) {
+      size_t startPos = Line.find_first_not_of(" \t");
----------------
vbvictor wrote:

```suggestion
      size_t StartPos = Line.find_first_not_of(" \t");
```

https://github.com/llvm/llvm-project/pull/124319


More information about the cfe-commits mailing list