2023年5月7日日曜日

Mac Mini M2のUnity+VSCodeでまた「一致するワークスペースシンボルがありません」で悩む

 

Unity のスクリプト・エディタとして Visual Studio Code を設定する。
Settings...  - External Tools - External Script Editor :  Visual Studio Code

Comand + T で関数一覧を表示できるのが便利だが、以前より時々
「一致するワークスペースシンボルがありません」
表示されないことがあるので悩んでいた。

肝心なことを先に書いておくと、Visual Studio Codeのログに大量に出力されているエラーに惑わされてはいけない。これらのエラーがあってもワークスペースシンボルは表示される。

さて、Mac Mini M2 でも「一致するワークスペースシンボルがありません」だった。

  • 拡張機能の C# もインストールしてある。
  • .Net Core SDK もインストールしてある。


Unity側で .csproj ファイルを作成する機能をみつけ(以前からあった???)

  • 「Regenerate project files」を実行。

これで、開いている .cs ファイルに改行でも追加すれば、ワークスペースシンボルのリストが表示されるようになる。


しかし、これを忘れてしまっていて「OmniSharp Log」の大量エラーをみて

[fail]: OmniSharp.MSBuild.ProjectLoader
        This project targets .NET version that requires reference assemblies 
        that are not installed (e.g. .NET Framework). 
        The most common solution is to make sure Mono is fully updated 
        on your machine (https://mono-project.com/download/) 
        and that you are running the .NET Framework build of OmniSharp 
        (e.g. 'omnisharp.useModernNet': false in C# Extension for VS Code).
 

mono やらバージョンが違う .Net Core SDK などをインストールしてしまったので、UnInstall した。


mono Uninstall

ターミナルで実行
  sudo /bin/sh -x
rm -r /Library/Frameworks/Mono.framework
rm -r /Library/Receipts/MonoFramework-*
for dir in /usr/bin /usr/share/man/man1 /usr/share/man/man4 /usr/share/man/man5; do
(cd ${dir};
for i in `ls -al | grep /Library/Frameworks/Mono.framework/ | awk '{print $9}'`; do
rm ${i}
done);
done
 
「このMacについて」-「詳細情報」-「システムレポート」の「フレームワーク」から Mono が消えればOK。

参考: Uninstalling Mono Framework.
https://discussions.apple.com/thread/3848498


.Net Core SDK Uninstall

version="7.0.102"をインストールしてあるので、古いものを削除した
version="6.0.405"
sudo rm -rf /usr/local/share/dotnet/sdk/$version
sudo rm -rf /usr/local/share/dotnet/shared/Microsoft.NETCore.App/$version
sudo rm -rf /usr/local/share/dotnet/shared/Microsoft.AspNetCore.All/$version
sudo rm -rf /usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/$version
sudo rm -rf /usr/local/share/dotnet/host/fxr/$version


参考 : .NET ランタイムと SDK を削除する方法
https://learn.microsoft.com/ja-jp/dotnet/core/install/remove-runtime-sdk-versions?pivots=os-macos


Swift+VSCodeでまた「一致するワークスペースシンボルがありません」で悩む

 Xcode のプロジェクトフォルダを vscode で開いて cmd+T のシンボル検索で 「一致するワークスペースシンボルがありません」 となる 結論としては Package.swift ファイルが必要だった。 一行目の  // swift-tools-version: 6....