3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

VSCodeのC#拡張で、omnisharp使用を継続する

Last updated at Posted at 2023-08-16

はじめに

VSCodeC#拡張(ms-dotnettools.csharp)が、2.0.320から補完等の動作が変わっているので、従来動作(1.26.0以前)と近い形に戻す方法を書く

設定

vscodeのsettings.jsonに"dotnet.server.useOmnisharp"という設定項目が追加されているので、これをtrueにする。

settings.json
"dotnet.server.useOmnisharp": true

設定後、vscodeを再起動すれば、設定が反映される。

注意点

これは C# DevKitの挙動と競合するものなので、該当モジュールを入れている場合はtrueにしないこと。
C# DevKitかomnisharpのどちらかを選択する必要がある。

設定しなかった場合

これを設定せず、かつC# DevKitを入れてない場合、筆者の場合は"dotnet buildした場合は正常にビルドできるプロジェクトが、ソースジェネレーターが生成したクラスが補完で出なくなり、コンパイルエラーとして表示されるようになった"という症状が出た。
他にもあるかもしれないが、今の所確認できたのはこれ。

終わりに

拡張提供元としては、C# DevKitと挙動が競合するものをどう扱うかという所で出てきた苦肉の策かもしれないが、自分は戸惑ったのであんまりやらないで欲しいなというのが正直な所。

omnisharp自体は他エディタでも使われていることもあるし、そうそう無くなる事は無いとは思う。
vscodeの拡張の方はその内"legacy"とか言って切り捨てる可能性も無くはないけど。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?