Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
},
process: [
"parse-input",
"build-model",
"build-map",
"colorize",
"find-element-at-position"
],
throwExceptions: true
};
const response = await argdown.runAsync(request);
if (response.elementAtPosition) {
const title = response.elementAtPosition.title;
let nodeType = ArgdownTypes.ARGUMENT_MAP_NODE;
if (response.elementAtPosition.type === ArgdownTypes.EQUIVALENCE_CLASS) {
nodeType = ArgdownTypes.STATEMENT_MAP_NODE;
}
const node = this.findNodeInMapNodeTree(
response.map!.nodes,
n => n.title === title && n.type === nodeType
);
if (!node) {
return "";
}
return node.id || "";
}
return "";
}
public async getRangeOfHeading(
const node = this.findNodeInMapNodeTree(
response.map!.nodes,
(n: any) => n.id === id
);
if (node && node.type === ArgdownTypes.ARGUMENT_MAP_NODE) {
const argument = response.arguments![node.title!];
const desc = IArgument.getCanonicalMember(argument);
if (desc) {
return new vscode.Range(
(desc.startLine || 1) - 1,
(desc.startColumn || 1) - 1,
(desc.endLine || 1) - 1,
desc.endColumn || 1
);
}
} else if (node && node.type === ArgdownTypes.STATEMENT_MAP_NODE) {
const eqClass = response.statements![node.title!];
const statement = IEquivalenceClass.getCanonicalMember(eqClass);
if (statement) {
return new vscode.Range(
(statement.startLine || 1) - 1,
(statement.startColumn || 1) - 1,
(statement.endLine || 1) - 1,
statement.endColumn || 1
);
}
}
return new vscode.Range(0, 0, 0, 0);
}
private findNodeInMapNodeTree(