From 42a085fbda8e742595cf5b543ac4f8202c03fb7d Mon Sep 17 00:00:00 2001 From: Christoph Schlosser Date: Fri, 26 Jun 2020 14:46:12 +0200 Subject: Return once we found preprocessor stuff (#158) * Return once we found preprocessor stuff * Add tests * Update package lock --- src/Lang/Cpp/CppParser.ts | 3 +++ src/test/CppTests/Preprocessor.test.ts | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 src/test/CppTests/Preprocessor.test.ts (limited to 'src') diff --git a/src/Lang/Cpp/CppParser.ts b/src/Lang/Cpp/CppParser.ts index d51f853..d59ec9b 100644 --- a/src/Lang/Cpp/CppParser.ts +++ b/src/Lang/Cpp/CppParser.ts @@ -424,6 +424,9 @@ 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)) { diff --git a/src/test/CppTests/Preprocessor.test.ts b/src/test/CppTests/Preprocessor.test.ts new file mode 100644 index 0000000..c89a80a --- /dev/null +++ b/src/test/CppTests/Preprocessor.test.ts @@ -0,0 +1,33 @@ +// +// Note: This example test is leveraging the Mocha test framework. +// Please refer to their documentation on https://mochajs.org/ for help. +// + +// The module 'assert' provides assertion methods from node +import * as assert from "assert"; + +// You can import and use all API from the 'vscode' module +// as well as import your extension to test it +import * as vscode from "vscode"; +import TestSetup from "./TestSetup"; + +// Defines a Mocha test suite to group tests of similar kind together +suite("C++ - Preprocessor Tests", () => { + const testSetup: TestSetup = new TestSetup("#define MY_MACRO 1"); + + // Tests + test("Macro", () => { + const result = testSetup.GetResult(); + assert.equal("/**\n * @brief \n * \n */", result); + }); + + // Tests + test("Macro with comment afterwards", () => { + const result = testSetup.SetLines([ + "#define MY_MACRO 1", + "/**", + " */", + ]).GetResult(); + assert.equal("/**\n * @brief \n * \n */", result); + }); +}); -- cgit v1.2.3