summaryrefslogtreecommitdiffstats
path: root/src/CodeParser/CParser.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/CodeParser/CParser.ts')
-rw-r--r--src/CodeParser/CParser.ts46
1 files changed, 25 insertions, 21 deletions
diff --git a/src/CodeParser/CParser.ts b/src/CodeParser/CParser.ts
index 4889de6..8b0bfe1 100644
--- a/src/CodeParser/CParser.ts
+++ b/src/CodeParser/CParser.ts
@@ -25,27 +25,33 @@ export default class CParser implements ICodeParser {
const activeLine: TextLine = this.activeEditor.document.lineAt(this.activeEditor.selection.active.line);
- const method: string = this.getMethodText();
+ const line: string = this.getLogicalLine();
// Not a method
- if (method.length === 0) {
+ if (line.length === 0) {
return null;
}
- const returnValue: string[] = this.getReturn(method);
+ const returnValue: string[] = this.getReturn(line);
- const params: string[] = this.getParams(method);
+ const params: string[] = this.getParams(line);
+ const tparams: string[] = this.getTemplateParams(line);
- const cppGenerator: IDocGen = new Generator(this.activeEditor, this.activeSelection, params, returnValue);
+ const cppGenerator: IDocGen = new Generator(
+ this.activeEditor,
+ this.activeSelection,
+ params,
+ tparams,
+ returnValue,
+ );
return cppGenerator;
}
/***************************************************************************
Implementation
***************************************************************************/
-
- protected getMethodText(): string {
- let method: string = "";
+ protected getLogicalLine(): string {
+ let logicalLine: string = "";
let nextLine: Position = new Position(this.activeSelection.line + 1, this.activeSelection.character);
@@ -61,7 +67,7 @@ export default class CParser implements ICodeParser {
nextLineTxt = this.activeEditor.document.lineAt(nextLine.line).text.trim();
}
- method += nextLineTxt;
+ logicalLine += nextLineTxt;
// Get method end line
while (nextLineTxt.indexOf(")") === -1 &&
@@ -69,22 +75,22 @@ export default class CParser implements ICodeParser {
nextLine = new Position(nextLine.line + 1, nextLine.character);
nextLineTxt = this.activeEditor.document.lineAt(nextLine.line).text.trim();
- method += " " + nextLineTxt;
+ logicalLine += " " + nextLineTxt;
}
// Not a method but some code in the file
- if (method.indexOf(")") === -1) {
+ if (logicalLine.indexOf(")") === -1) {
return "";
}
- return method;
+ return logicalLine;
}
protected getReturn(method: string): string[] {
const retVals: string[] = [];
// Remove the compiler keywords from the signature
- const sign: string = method.replace(/(static)|(inline)|(friend)|(virtual)|(extern)|(explicit)/g, "");
+ const sign: string = method.replace(/(static)|(inline)|(friend)|(virtual)|(extern)|(explicit)|(const)/g, "");
// Remove the parameters from the signature
const returnSignature = sign.slice(0, sign.indexOf("(")).trim();
@@ -106,14 +112,6 @@ export default class CParser implements ICodeParser {
break;
}
- // Don't generate return type if the user doesn't wish to do it
- if (!workspace.getConfiguration(ConfigType.generic).get<boolean>(Config.generateReturnType, true) &&
- retVals.length > 0) {
- retVals.length = 0;
- retVals.push(" ");
- return retVals;
- }
-
return retVals;
}
@@ -139,4 +137,10 @@ export default class CParser implements ICodeParser {
return paramArr;
}
+
+ protected getTemplateParams(method: string): string[] {
+ // Todo implement parsing of template parameters.
+ const tparams: string[] = [];
+ return tparams;
+ }
}