如何仅当活动选项卡是某种文件类型时才修改状态栏

How can I modify the statusbar only when the active tab is of a certain file type

我为 VSC 创建了一个扩展,它在打开 JS/TS 类型的文件时添加了一些状态栏按钮。但如果活动选项卡是 JS/TS,我宁愿只显示按钮。目前,如果我打开一个 markdown 文件和一个 JS 文件,即使 MD 文件是活动选项卡,也会添加状态栏按钮。

当用户交换选项卡时是否会调用某种事件,我可以使用它来 show/hide 我的按钮。

这是我的回购:

https://github.com/sketchbuch/vsc_quokka_statusbar

正在更改活动的文本编辑器事件

vscode.window.onDidChangeActiveTextEditor(editor => {
    if (!editor) {
        // hide
        return;
    }
    if (editor.document.languageId === 'javascript' || editor.document.languageId === 'typescript') {
        // show
    } else {
        // hide
    }
});

如果要考虑所有可见的编辑器(split/grid):

vscode.window.onDidChangeVisibleTextEditors(editors => {
    if (editors.some(editor => {
        return editor.document.languageId === 'javascript' || editor.document.languageId === 'typescript';
    })) {
        // show
    } else {
        // hide
    }
});