我正在 vscode 扩展中实现快速修复。实际上,我可以使用该createFix()
函数直接在其中创建包含任意数量项目的灯泡下拉列表。我的问题是,如何在这个灯泡的任何项目中添加子项目?
以下是创建基本灯泡的代码 -
export class QuickActions implements vscode.CodeActionProvider {
public static readonly providedCodeActionKinds = [
vscode.CodeActionKind.QuickFix
];
public provideCodeActions(document: vscode.TextDocument, range: vscode.Range): vscode.CodeAction[] | undefined {
var newRange = mainRange;
if (!this.isAtPoint(document, range, newRange)) {
return;
}
var suggestion: vscode.CodeAction | undefined;
var generatedRcmd: vscode.CodeAction | undefined;
if (newRange) {
let sgst = "any text"
suggestion = this.createFix(document, range, sgst, false);
let rcmd = "another text"
generatedRcmd = this.createFix(document, range, rcmd, true);
}
if (suggestion && generatedRcmd) {
return [
suggestion,
generatedRcmd,
];
}
}
private createFix(document: vscode.TextDocument, range: vscode.Range, fixing: string, toReplace: boolean): vscode.CodeAction {
const fix = new vscode.CodeAction(fixing, vscode.CodeActionKind.QuickFix);
fix.edit = new vscode.WorkspaceEdit();
if(toReplace){
fix.edit.replace(document.uri, document.lineAt(range.start.line).range, fixing)
}
return fix;
}
}