hitode909の日記

趣味はマリンスポーツですの日記です

雑でもいいから動くものを作っておく

最新版のVSCodeではworkbench.editor.limit.enabledの設定ができるようになった。同時に開けるタブの数に上限を指定でき、古い順にタブを自動的に閉じてくれる設定。これを見た瞬間にオッと思って、というのも自作して使っていた拡張の機能が公式の機能で置き換えられることを意味している。
code.visualstudio.com

Atomにあったzentabsという拡張を真似した自作して使っていたけどこれが不要になる。使ってる人はアンインストールしてください。
marketplace.visualstudio.com

issueをみてると、zentabsはあり、動いているけど、これはビルトインの機能があるほうがよいですねという話になっていた。
github.com

zentabsは強引な実装をして実現していて、指定したドキュメントを閉じるために、まずフォーカスを移してからcloseActiveEditorするという方法で閉じている。awaitしてる間に別のエディタにフォーカスが移るとまずいのでlockを取ったり、を手で書いている。今なら良いAPIがあるのかもしれないけど当時はドキュメントを指定して閉じるにはこうするしかなかった。
https://github.com/hitode909/vscode-zentabs/blob/master/src/ZenTabs.ts#L29-L30

await vscode.window.showTextDocument(itemToTrim.editor.document, itemToTrim.editor.viewColumn);
await vscode.commands.executeCommand('workbench.action.closeActiveEditor');

雑でもいいから動くものを作っておくのは良い動きができたと思う。サクッと作った割に2314 installされているし、1.5年ほど常用できていたのでコスパ良かった。