VSCode LiveShare と格闘する
VSCode には、LiveShare というとても便利な機能がある。オンラインモブプロなんかをやるときに必須となるのだけど、色々と問題が多いので、それらを解決していきたい。
-
Format Document
が効かない(Macなら CMD + Shift + F)- 効かないけど代替案はある
- Goto Definition が効かない(F12)
-
.gitignore
に設定されているファイルを、リモートで参照できない-
.vsls.json
というファイルを置けば参照できるようになる
-
Format Document (prettier)が効かない件。
- ホスト側がやる限りは成功する
- リモート側がやると
Extension 'Prettier - Code formatter' cannot format '/internal/cli/cli.ts'
のようなメッセージが出て失敗する。
- extension prettier code formatter cannot format - Google 検索 で検索してみたものの、関係ありそうなものはヒットせず
- live share document format - Google 検索 で検索しても、どうにも、それっぽいものがヒットせず。
気になるのは[Bug] VS Live Share double format on save event · Issue #541 · MicrosoftDocs/live-shareというもの。むしろ逆に format on save が多重実行されてた?
ホスト側で format on save を設定していれば、リモートからでも問題なくフォーマットできるのでは?実際やってみると、リモートから save すると、フォーマットが実行される。
結論: ホスト側で適切な format 設定と format on save
を設定しておけば、保存時にフォーマットされる。
まぁ、手動で Format Document
を実行するより、モブプロとかペアプロしてるときは、適時 save をすると良い(むしろ、auto save で良い)ということだろう。
format on save
の設定は好みが分かれそうだけど、モブセッションのときは重要。
Goto Definition が効かない件。
F12
を押したり、コンテキストメニューで Goto Definition
を実行すると、定義元にジャンプできるのだが、リモートだとできない。
- ホスト側で、F12 などを押すと、正しい挙動をする(定義元に飛ぶ)
- リモートで、F12 などを押すと、
Cannot read property 'startLineNumber' of undefined
という JavaScript でよく見かけるタイプのエラーが生じる
Cannot read property 'startLineNumber' of undefined - Google 検索 で検索して、github.com › live-share › issues
なのがいきなりあるので、もうこれだわー。
とりあえず、バグとして認識はしてるけど、まだ誰も手を付けてない感じなのかな
これ、昨日調べたらリモートからでもF12が効いたような気がした
.gitignore に登録されたファイルを参照できない件
liveshare .gitignore - Google 検索を見ると、まぁ 【Tips】VSCode Live Share で.gitignore に記述したファイルが共有されない - Qiita というそのものズバリな記事がヒット。
プロジェクトルートに .vsls.json
というファイル名で、
{
"$schema": "http://json.schemastore.org/vsls",
"gitignore":"none"
}
を設定すると、.gitignore のファイルを参照できるようになった。
もう一つ考えつく解決方法としては、セッションの間だけ .gitignore
を消したり、.gitignore
を編集するという方法だが、セッションの途中で commit をしようとしたときに困るのを考えると .vsls.json
を追加するのが無難ではありそう。
結論: .vsls.json
を置く