ts-standardとVS Codeの設定を見直したら快適になった

StandardのVS Code拡張がなんか特にTypeScriptで動いてない疑惑

この間の

Standard gemを試してみた (2022-06-05) | あーありがち

の続き。最近 Lint 周りの整備を一気に進めております。

実はもう数年

の組み合わせが TypeScript の時にうまく動かないなーと悩んでいた(ゆうてそんなに悩んでない)んだけど、原因が分かった話。結論から言うと VS Code 勢ちゃんと設定見直してくれって感じだったけど、まぁいいか。

これで安心して TypeScript を推しやすくなった。

engineをts-standardにすればいいわけじゃない

StandardJS - JavaScript Standard Style - Visual Studio Marketplace

のドキュメントを読んでいてふと気づいたので設定を確認してみたところ、以下の点で注意が必要そう。特に Emacs の Flycheck と考え方が違うので、自分が Emacs を使っていて気づかないなんてことが起きがち。

Enable Globally

これは Emacs の Flycheck と考え方が違っていて、globally じゃない場合はいつ有効になるのかよく分からなくなりやすいので、globally にしちゃった方がいいと思う。

Engine

これを ts-standard にしないと TypeScript に対しては機能しない。

Use Package JSON

これが true だと global install した stanard を利用してくれない。これは JavaScript でも TypeScript でも同じで、「今から Standard をこのプロジェクトに適用できるようにしていきますよー」というタイミングでだいたいハマる。まぁいろんなプロジェクトを渡り歩いている人にはこういうきめ細かな設定は有効なのかもしれないけど。

Validate

なぜか対象ファイルを制限できる。例えば Engine が ts-standard になっていても Validate で対象ファイルを

"standard.validate": [
  "javascript"
]

なんてことをしていると結局 TypeScript に対しては無効になってしまう。(ts-standard を JavaScript に対して実行しても意図通りに動くので、余計分かりにくい)

More