2026-03-22
最近、WebAssemblyをターゲットにしたプログラミング言語MoonBit を触り始めました。 NeoVimでMoonBitの開発環境を整備したので、その手順をまとめておきます。
MoonBitは、WebAssembly(Wasm)をターゲットとしたクラウド・エッジコンピューティング向けのプログラミング言語およびツールチェーンです。
従来の言語(C、Rustなど)もWasmにコンパイルできますが、もともとWasm用に設計されていないため非効率な部分があります。 MoonBitは最初からWasmを前提に設計されているので、より小さく高速なWasmバイナリを生成できるのが強みです。
流れとしてはこんなイメージです。
まずMoonBitのCLIツールをインストールします。
プロジェクトの作成は moon new コマンドで行います。
注意点として、プロジェクト名にハイフンは使えません。英数字とアンダースコアのみ対応しています。
MoonBitをNeoVimで快適に書くために、以下の3つの設定を行いました。
.mbt拡張子をmoonbitファイルタイプとして認識させるため、ftdetect/moonbit.luaを作成します。
MoonBit LSPサーバーをインストールします。 現在NeoVimに組み込みのtree-sitterは標準ではmoonbitの構文をサポートしていないので、独自で追加する必要があります。
次に、lsp/moonbit_lsp.luaでLSPサーバーの設定を行います。moon.mod.jsonをプロジェクトルートとして認識させます。
設定したら、plugin/lsp-config.luaのLSP有効化リストにmoonbit_lspを追加します。
シンタックスハイライトのために、MoonBitのtree-sitterパーサーを登録します。
登録後、:TSInstall moonbitでパーサーをインストールします。
MoonBitはまだ新しい言語ですが、Wasm特化ということもあり今後が楽しみです。 NeoVimでの開発環境もLSP・Tree-sitterを設定すれば快適に書けるようになりました。