以下の内容はhttps://tech.guitarrapc.com/entry/2025/01/27/235900より取得しました。


LINQPad for macOS (Beta)を試す

これまでWindows専用だったLINQPadですが、LINQPad 8になってmacOSがベータサポートされました。今回はLINQPad for macOS (Beta)をApple M2、macOS Sequoia 15.2で試してみましょう。

LINQPad for macOSの状況

LINQPad 8ページからLINQPad for Macベータ版をダウンロードできます。

image

レンダリング

気になるUIはAvalonia.XPFを使うことで、WinForms & WPFと同じようにレンダリングしているようです。Windowsでの実装を利用できるのいいですね。

image

ref: https://x.com/linqpad/status/1718077446111830218

起動スプラッシュでもAvalonia.XPFのロゴが表示されます。

image

ライセンス

LINQPad 8と同じライセンスが利用できます。Windowsと同じように、ライセンスを入力するとNuGetやデバッガーも使えます。何ができるかはライセンスページで確認してください。私はPremiumを利用しており、Visual Studioと遜色なく使えています。買い切りかつアップグレード時に割り引かれたりすることや、組織でも無制限ユーザー向けライセンスがあって今でも割安度がすごいです。

image

実装状況

現在の実装状況はWebページでアナウンスされています。 未実装で気になるのはThe Roslyn Syntax Tree visualizerILSpy integrationです。NuGetライブラリなどでステップインしたときにILSpyで見ることがあるので、Windows同様に使えるようになるといいですね。

使ってみた感じでは、私のように「C#挙動を確認するためのデバッガー付きのプレイグラウンド用途」であれば問題ないなという感触でした。例えば、NuGet参照、ブレークポイント、ローカル変数、ステップイン、ReadLine入力やDump出力ができるので、サクッとConsoleApp代わりにライトな使い方であれば問題なさそうです。

image

LINQPad for macOSを使ってみる

インストールからNuGetライブラリを使うまでサクッと試してみます。

インストール

LINQPad for macOSは次の流れでインストールします。いたって普通な.NETアプリケーションですね。

  • .NET SDK 8.0 or 9.0をインストール
  • LINQPad 8 for macOSをダウンロードして、Applicationにコピーする

LINQPadのインストールダイアログで、.NET SDKのインストールを促されるので、そこからインストールしてもいいでしょう。私は.NET SDK 9.0を入れてます。1

image

起動すると、macOSっぽいUIでLINQPadが起動します。

image

動作確認

適当に前の記事で紹介したUtil.Difも問題なく動作します。ちなみにWindows版のショートカットが踏襲されているので、デバッグ実行はF5です。

image

ブレークポイントを仕込んだりデバッガーも使えます。

image

ライセンスを入力するとインテリセンスも使えるようになります。

image

NuGetライブラリを使う

NuGetもF4 > Add NuGetで使えます。(ライセンスがないとNuGet画面で警告が出ます) 適当にProcessXをインストールしてみましょう。

image

image

image

image

namespaceも設定できるので、Zxを入れておきます。

image

これでZxが使えます。awaitできていますね。

image

サクッとプロセス一覧をとってみます。組み込みシェル結果をとれていますね。

await "echo foobar";
var processes = await "ps aux";
foreach (var item in processes.Split(Environment.NewLine).Where(x => x.Contains("LINQPad")))
{
    item.Dump("filtered");
}

image

設定画面

LINQPadの設定画面はmacOSのアプリケーションお作法通りLINQPad > Settingsで開けます。

image

image

設定内容もおおむねWindows版と同じですが、配置は結構違います。2

image image image

Windows版の設定画面を見ると、この古さ...って感じがあるので、macOSのUIなだけでいい感じに見えますね。

image image

細かい挙動

LinqPadは、C# StatementC# Programを切り替えることができます。StatementからProgramに変更すると「void Main()とブロックが追加されてインデントされる」のですがmacOSでも機能します。3

SatementからProgramへの切り替え (Windows)

image image

SatementからProgramへの切り替え (macOS)

image image

ほかにも細かい挙動が気になる気がしますが、いったんここまでで。また気づいたことがあれば追記します。

まとめ

LINQPad for macOS (Beta)はベータと言いつつも、すでに普段使いできるレベルになっていると感じました。Windows版と同じように使えるので、WindowsとmacOSをまたがって使う私にはありがたいです。

しかし、macOSのファンクションキーはデフォルトFnキーを併用しないといけないので、macOSデフォルトとファンクションキー連動はあんまり相性よくないですね。macOSのキーボード設定でFnキーをデフォルトにするといい感じになりますが、それもmacOSの普段の操作とずれるので、どうしようかなと思っています。


  1. .NET SDKを入れずにLINQPadをインストールしても起動せずエラーもでないのでアレってなります、なりました
  2. 相変わらずShow line numbers in editorがデフォルト無効
  3. ProgramからStatementに切り替えると、void Main()とブロックが削除されるのですがそれもありません。



以上の内容はhttps://tech.guitarrapc.com/entry/2025/01/27/235900より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14