ttrace / vscode-language-japanese-novel

Visual Studio Code で小説を執筆する時に使う言語拡張です。
MIT License
391 stars 27 forks source link

Nodeのfsモジュールをvscode APIのFileSystemに置き換えたい #18

Open takahashim opened 3 years ago

takahashim commented 3 years ago

この拡張では以下のようにNodeのfsモジュールを使っていますが、

https://github.com/ttrace/vscode-language-japanese-novel/blob/82354de1f2e2e2b58c159996fbd48c82826336c1/src/extension.ts#L2

vscodeではvscode自体が用意しているFileSystem APIを使うほうが良いそうです(どうもSSHやWSL remote file systemsで動かす時の移植性の問題のようです)。

https://code.visualstudio.com/updates/v1_37#_vscodeworkspacefs

Call to Action: If your extension is currently using the fs module from Node.js, consider migrating to the new vscode.workspace.fs API.

async/awaitが前提のようなのでちょっと使い方が面倒かもしれません…(私も詳しくなくて、「functionの前にasyncを付けて、関数呼び出しの前にawaitをつけると動くっぽい」程度の理解です)。

参考資料:

takahashim commented 3 years ago

あとでPRを作ってみる予定です

ttrace commented 3 years ago

わわわ、これは面倒そうですね。非同期前提ですか。

takahashim commented 3 years ago

今どきのTypeScriptは非同期前提なので…というのに加えて、例えばそれなりに大きなファイルを読み込んでいる間はエディタが固まる、みたいなことが起きると非常に体験が良くないというのもありそうです。

extension.tsについては #19 で修正してみました。ご確認いただければ。

ttrace commented 3 years ago

ありがとうございます。なるほど、と思うことしきり。 これからは仮想環境で動かすこともあるでしょうから(spacesみたいに)、VS Code APIを使えというのは正しいやり方ですね。