================
@@ -0,0 +1,35 @@
+// Regression test for https://github.com/llvm/llvm-project/issues/59819
+
+// RUN: rm -rf %t && mkdir -p %t
+// RUN: clang-doc --format=md --doxygen --output=%t --executor=standalone %s
+// RUN: FileCheck %s < %t/GlobalNamespace/MyClass.md 
--check-prefix=MD-MYCLASS-LINE
+// RUN: FileCheck %s < %t/GlobalNamespace/MyClass.md --check-prefix=MD-MYCLASS
+
+// RUN: clang-doc --format=html --doxygen --output=%t --executor=standalone %s
+// RUN: FileCheck %s < %t/GlobalNamespace/MyClass.html 
--check-prefix=HTML-MYCLASS-LINE
+// RUN: FileCheck %s < %t/GlobalNamespace/MyClass.html 
--check-prefix=HTML-MYCLASS
+
+#define DECLARE_METHODS                                           \
+    /**                                                          \
+     * @brief Declare a method to calculate the sum of two numbers\
+     */                                                           \
+    int Add(int a, int b) {                                       \
+        return a + b;                                             \
+    }
+
+// MD-MYCLASS: ### Add
+// MD-MYCLASS: *public int Add(int a, int b)*
+// MD-MYCLASS: **brief** Declare a method to calculate the sum of two numbers
+
+// HTML-MYCLASS: <p>public int Add(int a, int b)</p>
+// HTML-MYCLASS: <div>brief</div>
+// HTML-MYCLASS: <p> Declare a method to calculate the sum of two numbers</p>
+
+
+class MyClass {
+public:
+// MD-MYCLASS-LINE: *Defined at 
{{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}macro.cpp#[[@LINE+2]]*
+// HTML-MYCLASS-LINE: <p>Defined at line [[@LINE+1]] of file 
{{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}macro.cpp</p>
----------------
ZhongUncle wrote:

> So does `ninja check-clang-extra-clang-doc` pass w/ your changes?

No, it doesn't passed w/ my change. I also test it via `llvm-lit 
llvm-project/clang-tools-extra/test/clang-doc/`. 

Because below code
```
#define DECLARE_METHODS                                           \
    /**                                                           \
     * @brief Declare a method to calculate the sum of two numbers\
     */                                                           \
    int Add(int a, int b) {                                       \
        return a + b;                                             \
    }
```
will generate something like below (there are additional `\` appearing):
```
\    
Declare a method to calculate the sum of two numbers\
```
rather than correct content generated:
```
Declare a method to calculate the sum of two numbers
```
But I test it using correct content generated. It is why not pass test. They 
don't match, so not pass. 

We discussed this rare comment style before, and you suggested that I add a `\` 
to each EOL, because it is example in #59819. But recently, I noticed via the 
editor highlighting that if you add a `\`, it will be considered as a character 
in the comment, rather than indicating the comment as a whole. If you add a 
`\`, it will be considered as a character in the comment.

Below image is in vim, you can see color of `\` is same as comment (I also test 
it in VS Code, same highlight):
<img width="490" alt="截屏2025-04-17 14 39 51" 
src="https://github.com/user-attachments/assets/27343500-690d-4081-b228-4083f9e57246";
 />

So I don't think that it is issues of other feature. The problem is our example.

At beginning, I use this kind of comment
```
#define DECLARE_METHODS                                           \
    /**                                                           
     * @brief Declare a method to calculate the sum of two numbers
     */                                                           \
    int Add(int a, int b) {                                       \
        return a + b;                                             \
    }
```

It passed test. So I think: **Should I change code like above**?



> Well, its a test, so it needs to be correct w.r.t. the thing you're testing, 
> and shouldn't be broken overall (or at least not broken in a new way).

Oh, make sense. I will remove this line check in Class. I checked the line 
numbers here because I saw it written in other tests, so I thought I had to 
check all the key parts.

https://github.com/llvm/llvm-project/pull/132510
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to