如何让VSCode扩展仅在手动调用灯泡代码动作建议时返回代码动作
仅在手动触发VSCode代码动作时返回建议
要实现仅在用户手动调用「灯泡」代码动作建议时返回代码片段,可通过以下方式处理:
- 识别手动触发条件:当用户手动触发代码动作时,
context.only数组会包含vscode.CodeActionKind.Empty,这是VSCode用于标记主动触发所有代码动作请求的特殊类型。 - 使用数组标准方法判断:
context.only是CodeActionKind数组,直接用数组的includes方法判断是否包含目标类型即可。
修改后的代码示例:
import * as vscode from 'vscode'; export function activate(context: vscode.ExtensionContext) { context.subscriptions.push(vscode.languages.registerCodeActionsProvider('python', { provideCodeActions: async (document, range, context, token) => { // 仅在手动触发时执行后续逻辑 if (!context.only?.includes(vscode.CodeActionKind.Empty)) { return []; } const action = await suggestfix(document, range, context); return action ? [action] : []; }, })); };
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

