首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在VSCode中开发扩展时,如何从QuickFix传递错误详细信息和行号?

在VSCode中开发扩展时,如何从QuickFix传递错误详细信息和行号?
EN

Stack Overflow用户
提问于 2020-07-15 14:19:16
回答 1查看 243关注 0票数 1

我正在尝试开发一个插件,它显示与特定行相关的问题。

我能够实现Quick Fix。在这里,它解析问题并显示它:

代码语言:javascript
复制
const uri = vscode.Uri.file(path);
const doc = await vscode.workspace.openTextDocument(uri);
//fix ranges to not include whitespace
issues.forEach((issue) => {

  codeActions.push({
    title: "Uppercase the keyword",
    kind: CodeActionKind.QuickFix,
    diagnostics: [issue]
  });

  const line = doc.lineAt(issue.range.start.line);
  issue.range = new vscode.Range(
    new vscode.Position(line.range.start.line, line.firstNonWhitespaceCharacterIndex),
    line.range.end
  );
});

collection.set(uri, issues);

缺少CodeActionProvider:

代码语言:javascript
复制
import * as vscode from 'vscode';

export class ApexCodeActionProvider implements vscode.CodeActionProvider {

    public provideCodeActions(
        document: vscode.TextDocument,
        _range: vscode.Range,
        _context: vscode.CodeActionContext,
        _token: vscode.CancellationToken
    ): vscode.ProviderResult<vscode.CodeAction[]> {
        const autoFixQuickFix = new vscode.CodeAction('AutoFix QuickFix', vscode.CodeActionKind.QuickFix);
        autoFixQuickFix.command = {
            title: 'AutoFix QuickFix',
            command: 'apex-pmd.fixFile'
        };

        return [autoFixQuickFix];
    }

}   

在extension.ts中注册

代码语言:javascript
复制
context.subscriptions.push(
    vscode.languages.registerCodeActionsProvider(supportedLanguageCodes, new ApexCodeActionProvider(), {
        providedCodeActionKinds: [vscode.CodeActionKind.QuickFix]
    })
);

但是我不能传递错误详细信息和行号吗?你知道怎么通过吗?以及如何在文本编辑器中编辑或更改文本?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-15 21:09:13

您需要提供一个vscode.CodeActionProvider

调用此CodeActionProvider时,将返回vscode.CodeAction对象的列表。

CodeAction中,您可以设置vscode.WorkspaceEdit和/或vscode.Command

WorkspaceEdit中,您可以定义要QuickFix的删除/插入/替换。

Command中,您可以设置一个arguments属性,您可以在该属性中放置命令参数。此数组将是命令的参数之一。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62908698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档