Monorepo のセットアップ

LSP Required

目標

複数の ReScript パッケージ(それぞれ独自の rescript.json を持つ)を含む Monorepo で、ReScript IntelliJ Plugin が正しく動作するように設定します。

手順

1. Open the workspace root

File > Open で JetBrains IDE に Monorepo のルートディレクトリを開きます。一般的な Monorepo の構造は次のようになります:

my-monorepo/
  packages/
    app/
      rescript.json
      src/
        App.res
    shared/
      rescript.json
      src/
        Utils.res
  package.json

2. Verify Language Server detection

プラグインはプロジェクトルートの node_modules/ から @rescript/language-server を検索します。多くの Monorepo 構成では、Language Server はルートに巻き上げ(hoist)されています:

my-monorepo/
  node_modules/
    @rescript/
      language-server/    <-- detected automatically
  packages/
    ...

Language Server がインストールされていれば、下部のステータスバーに LSP のステータスが表示されます。

3. Configure custom path (if needed)

Language Server が自動検出されない場合(例: サブパッケージにのみインストールされている場合)は、パスを手動で設定します:

  1. Settings > Languages & Frameworks > ReScript を開く

  2. Language Server path に正しいパスを設定する

  3. Apply をクリックする

4. Verify rescript.json recognition

各パッケージの rescript.json はプラグインによって自動的に認識されます:

  • Project パネルでファイルに ReScript アイコンが表示される

  • rescript.json 内で JSON Schema のバリデーションと補完が動作する

  • Framework Detector が ReScript フレームワークの設定を促す場合がある

5. Run builds per package

各パッケージには独自のビルドプロセスが必要です。Run Configurations を使用して個別のビルドタスクを設定します:

  1. Run > Edit Configurations > + > ReScript Build

  2. 作業ディレクトリを対象パッケージに設定する(例: packages/app/

  3. 独立したビルドが必要な各パッケージに対して繰り返す

または、Run Anything ダイアログ(Ctrl+Ctrl)を使用して、目的のパッケージディレクトリから rescript build と入力します。

期待される結果

  • Language Server の機能(補完、診断、定義ジャンプ)がすべてのパッケージで動作する

  • 各パッケージの rescript.json が適切な Schema バリデーションで認識される

  • 各パッケージに対して個別にビルド構成が設定されている

ヒント

  • パッケージ間の切り替え後に診断が古くなっている場合は、Tools > ReScript > Restart LSP Server で更新してください

  • Package Dependencies ツールウィンドウには、現在フォーカスしている rescript.json の依存関係が表示されます