【问题标题】:VSCode - Event that fires when a non-text file has been opened / selectedVSCode - 打开/选择非文本文件时触发的事件
【发布时间】:2019-01-06 15:01:25
【问题描述】:

在 VSCode 中,当活动的 text 编辑器发生更改时会发生一个事件:onDidChangeActiveTextEditor,当打开不是文本文件的文件时(例如图片)。我搜索了 VSCode API,并用谷歌搜索了它,但没有找到任何东西。

虽然onDidChangeActiveTextEditor 事件会在选择文本文件然后您选择图像文件时触发,但在您选择图像文件并选择另一个图像文件时不会触发。

所以我的问题是,当在资源管理器中选择 任何 文件时会触发一个事件,还是我忽略了 onDidChangeActiveTextEditor 的某些内容?

编辑:看起来有一个未解决的问题:https://github.com/Microsoft/vscode/issues/15178

【问题讨论】:

    标签: visual-studio-code vscode-extensions


    【解决方案1】:

    为了明确这个问题已经得到解答,我正在使用 OP 编辑​​的问题信息来做出正确的回答:

    • 目前 (VSCode 1.37.1)没有此类事件可以监听活动的非文本编辑器的更改。
    • 有一个公开的 VSCode 问题 15178,表面上跟踪此请求。
    • 但是,在我看来,14483 确实是正确的问题,将其作为副本关闭是错误的。 (15178 是关于枚举打开的编辑器,而只有 14483 专门针对通知事件。)

    【讨论】:

      【解决方案2】:

      建议的 api(参见 vscode.proposed.tabs.d.ts)确实提供了两个事件侦听器,它们适用于在我的测试中打开或关闭的任何文件类型:

      vscode.window.onDidChangeActiveTab(tab => {  
        console.log(`tab : ${tab}`);         
      });
      
      vscode.window.onDidChangeTabs(tabs => {  
        console.log(`tabs : ${tabs}`);          
      })
      

      目前,这只是一个提议的 api,但您可以在 Insiders Build 中轻松对其进行测试并报告任何问题。我专门用图像文件(gif和jpg)尝试过它并且它有效。但是,对于单个打开或关闭,事件触发次数过多存在问题。

      【讨论】:

        猜你喜欢
        • 2017-07-24
        • 2020-05-11
        • 2012-08-15
        • 2019-06-05
        • 1970-01-01
        • 2022-01-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多