diff options
Diffstat (limited to 'src/Lang/Cpp/CppParser.ts')
| -rw-r--r-- | src/Lang/Cpp/CppParser.ts | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/src/Lang/Cpp/CppParser.ts b/src/Lang/Cpp/CppParser.ts index 4792e14..46f22e3 100644 --- a/src/Lang/Cpp/CppParser.ts +++ b/src/Lang/Cpp/CppParser.ts @@ -227,22 +227,27 @@ export default class CppParser implements ICodeParser { } catch (err) { // console.dir(err); } - - // template parsing is simpler by using heuristics rather then CppTokenizing first. const templateArgs: string[] = []; - while (line.startsWith("template")) { - const template: string = this.GetTemplate(line); + let args: [CppArgument, CppArgument[]] = [new CppArgument(), []]; - templateArgs.push.apply(templateArgs, this.GetArgsFromTemplate(template)); + if (line === "#include" || + (activeEdit.selection.active.line === 0 && line.length === 0)) { // head of file + args[0].name = "#include"; + } else { // method + // template parsing is simpler by using heuristics rather then CppTokenizing first. + while (line.startsWith("template")) { + const template: string = this.GetTemplate(line); - line = line.slice(template.length, line.length + 1).trim(); - } + templateArgs.push.apply(templateArgs, this.GetArgsFromTemplate(template)); - let args: [CppArgument, CppArgument[]] = [new CppArgument(), []]; - try { - args = this.GetReturnAndArgs(line); - } catch (err) { - // console.dir(err); + line = line.slice(template.length, line.length + 1).trim(); + } + + try { + args = this.GetReturnAndArgs(line); + } catch (err) { + // console.dir(err); + } } return new CppDocGen( @@ -298,6 +303,11 @@ export default class CppParser implements ICodeParser { } } + // Head of file probably + if (nextLineTxt.startsWith("#include")) { + return "#include"; + } + logicalLine += "\n" + nextLineTxt; } |