0

我正在 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;
    }
}
4

0 回答 0