visual-studio-code - 如何在 VSCode 中检索活动的 CustomTextEditor
问题描述
如自定义文本编辑器示例所示,我实现并注册了一个 CustomTextEditorProvider
export class MyCustomEditorProvider implements vscode.CustomTextEditorProvider{
public static register(context: vscode.ExtensionContext): vscode.Disposable {
const provider = new MyCustomEditorProvider(context);
const providerRegistration = vscode.window.registerCustomEditorProvider(MyCustomEditorProvider.viewType, provider);
return providerRegistration;
}
}
现在我想在调用命令并且自定义编辑器处于活动状态(聚焦)时执行操作。
问题是,如果我的编辑器聚焦,api vscode.window.activeTextEditor 返回 undefined。这是 api 的预期行为吗?我找不到任何其他用于检索活动非文本编辑器的 api,有吗?
任何帮助表示赞赏
解决方案
vscode.window.activeTextEditor
当用户关注自定义编辑器时,预计是未定义的,因为自定义编辑器不是TextEditor
.
自定义编辑器对扩展是私有的(其他扩展不应与它们交互),因此您需要跟踪扩展内的活动编辑器。您可以使用onDidChangeViewState
自定义编辑器的 web 视图上的事件来执行此操作。当自定义编辑器聚焦和不聚焦时它会触发
推荐阅读
- tensorflow - 张量流变量值
- r - 在 R 中使用 XGBOOST 进行多类分类 - 测试数据的 100% 准确度 - 这是可以接受的吗?
- javascript - 使用react-router重定向后,如何从redux reducer初始化react组件状态
- android - 带有协程的嵌套回调函数
- workday-api - Workday中工人照片的更新时间可以被检索或用作过滤吗?
- mongodb - 从任何地方访问 Mongodb 集合
- android - 有没有办法检索用户的活动订阅或购买历史记录,并且只检索特定的 Android 应用程序?
- c++ - 智能指针与常规指针的性能
- c# - 字符串表达式到 Linq Where
- scala - 有没有办法模拟未作为服务参数接收的 WSClient - Scala + PlayFramework