summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Schlosser <christophschlosser@users.noreply.github.com>2020-06-29 21:35:32 +0200
committerGitHub <noreply@github.com>2020-06-29 21:35:32 +0200
commite689a0085cdd5329611a982f666104cec1477a03 (patch)
tree3fa73e64752a60c0ea30dbe7e4533f36ac6f2995
parent07c77d40f5a84d7cf2bc1c0e99734d9e3742c0b0 (diff)
downloaddoxdocgen-e689a0085cdd5329611a982f666104cec1477a03.tar.gz
Fix detection of closing comments (#162)
* Fix detection of closing comments * Add tests
-rw-r--r--src/Lang/Cpp/CppParser.ts10
-rw-r--r--src/test/CppTests/Preprocessor.test.ts19
2 files changed, 24 insertions, 5 deletions
diff --git a/src/Lang/Cpp/CppParser.ts b/src/Lang/Cpp/CppParser.ts
index 708af68..61a4d76 100644
--- a/src/Lang/Cpp/CppParser.ts
+++ b/src/Lang/Cpp/CppParser.ts
@@ -426,19 +426,19 @@ export default class CppParser implements ICodeParser {
if (nextLineTxt.startsWith("#include")) {
this.commentType = CommentType.file;
return "";
- } else if (nextLineTxt.startsWith("#")) { // preprocessor stuff
- this.commentType = CommentType.method;
- return "#";
}
- if (!this.isVsCodeAutoComplete(nextLineTxt)) {
+ if (this.isVsCodeAutoComplete(nextLineTxt) === true) {
+ // Can only be true if it's in the next line
+ this.vscodeAutoGeneratedComment = linesToGet === (this.cfg.Generic.linesToGet - 1);
+ } else {
logicalLine += "\n";
if (finalSlice >= 0) {
logicalLine += nextLineTxt.slice(0, finalSlice);
} else {
logicalLine += nextLineTxt;
}
- logicalLine.replace(/\*\//g, "");
+ logicalLine = logicalLine.replace(/\*\//g, "");
}
if (finalSlice >= 0) {
diff --git a/src/test/CppTests/Preprocessor.test.ts b/src/test/CppTests/Preprocessor.test.ts
index c89a80a..7e4708b 100644
--- a/src/test/CppTests/Preprocessor.test.ts
+++ b/src/test/CppTests/Preprocessor.test.ts
@@ -30,4 +30,23 @@ suite("C++ - Preprocessor Tests", () => {
]).GetResult();
assert.equal("/**\n * @brief \n * \n */", result);
});
+
+ // These two tests don't seem to belong here but the behavior they're testing only is reproducable
+ // for macros otherwise
+ test("detect auto generated closing */", () => {
+ const result = testSetup.SetLines([
+ "*/", // simulate an auto generated closing block comment
+ "void foo(int bar);",
+ ]).GetResult();
+ assert.equal("/**\n * @brief \n * \n * @param bar \n */", result);
+ });
+
+ test("don't detect closing */", () => {
+ const result = testSetup.SetLines([
+ "/*",
+ " */",
+ "void foo(int bar);",
+ ]).GetResult();
+ assert.equal("/**\n * @brief \n * \n */", result);
+ });
});