実行とビルド

このプラグインは ReScript コンパイラと連携し、IDE 内で直接ビルド機能を提供します。プロジェクトの node_modules/.bin/ ディレクトリから rescript CLI を自動検出し、すべての標準コンパイラコマンドをサポートします。

実行構成

Native

RunEdit Configurations+ReScript から ReScript ビルド構成を作成・管理できます。

利用可能なコマンド

コマンド

CLI 引数

説明

Build

rescript build

プロジェクト全体のワンショットコンパイル

Build (Watch)

rescript build -w

ファイル監視による継続的コンパイル

Clean

rescript clean

すべてのコンパイル成果物を削除

Build

Build コマンドは、ReScript プロジェクトのワンショットコンパイルを実行します。コンパイラはすべての .res および .resi ソースファイルを処理し、lib/ フォルダ(通常は lib/js/ または lib/es6/rescript.json の設定に依存)に JavaScript 出力を生成します。

  • 前回のビルド以降に変更されたすべてのソースファイルをコンパイルします

  • 出力は lib/ ディレクトリに書き込まれ、src/ フォルダの構造をミラーリングします

  • コンパイルが失敗した場合、ファイルパス、行番号、列番号を含むエラーメッセージが Run パネルに表示されます

  • エラー時にプロセスはゼロ以外のステータスコードで終了し、IDE では実行失敗として表示されます

ビルド成功後の出力構造の例:

my-project/
├── src/
│   ├── App.res
│   └── Utils.res
└── lib/
    └── js/
        └── src/
            ├── App.bs.js
            └── Utils.bs.js

Build (Watch)

Build (Watch) コマンドは、コンパイラをウォッチモードで起動し、ソースファイルの変更を監視して自動的に再コンパイルします。

  • コンパイラは長期間実行されるプロセスとして動作し続け、ファイルシステムの変更を監視します

  • .res または .resi ファイルを保存すると、コンパイラは影響を受けるファイルとその依存ファイルのみをインクリメンタルに再コンパイルします

  • ビルドステータスの通知は LSP 経由で送信され、ステータスバーのインジケーターがリアルタイムで更新されます

  • ウォッチプロセスを停止するには、Run パネルの Stop ボタン(赤い四角)をクリックするか、Ctrl+F2 を押します

  • ウォッチモードはアクティブな開発に最適で、コード変更に対するほぼ即時のフィードバックを提供します

Tip

Build (Watch) 実行構成をエディタセッションと並行して実行し続けることができます。コンパイルエラーは Run パネルのコンソールと、エディタ内の LSP 診断(赤い下線)の両方に表示されます。

Clean

Clean コマンドは、ReScript コンパイラによって生成されたすべてのコンパイル成果物を削除します。

  • lib/ ディレクトリとその中のすべての生成済み .js ファイルを削除します

  • .ast.cmt.cmti などの中間ビルド成果物も削除します

  • 古いビルド成果物、原因不明のコンパイルエラーが発生した場合や、rescript.json の設定を変更した後に使用します

  • クリーン後、すべての出力ファイルを再生成するにはフル Build を実行する必要があります

設定オプション

  • Working directory -- プロジェクトルート(rescript.json が配置されている場所)です。プラグインはこのパスを使用して rescript CLI を見つけ、コンパイラプロセスの作業ディレクトリとして使用します。

  • Command -- Build、Build (Watch)、または Clean です。

  • Additional arguments -- rescript コマンドに渡す追加の CLI フラグ(例: --verbose)です。

CLI の検出

プラグインは以下の順序で検索し、rescript CLI バイナリを自動的に見つけます:

  1. <working directory>/node_modules/.bin/rescript

  2. <project root>/node_modules/.bin/rescript

  3. プロジェクトルートの親ディレクトリ(依存関係がホイスティングされるモノレポ構成の場合)

CLI が見つからない場合、実行構成はエラーを表示します: CLI が見つからない場合、実行構成にエラーが表示されます: "Cannot find 'rescript' CLI. Ensure it is installed via npm in the project."

Run 構成により、IDE を離れることなく ReScript プロジェクトのビルド、ウォッチ、クリーンが可能になり、ターミナルを空けてビルドワークフローをエディタに統合できます。

ガター実行アイコン

Native

.res ファイルのガター(左余白)に緑色の Run アイコンが表示され、実行構成を手動で作成せずにビルドを素早く開始する方法を提供します。

アイコンの表示位置

実行アイコンはファイル内の最初のトップレベル宣言に配置されます。トップレベルの lettypemodule 宣言のみが対象です。アイコンは最初の該当宣言のキーワードトークン(lettype、または module)に表示されます。

例えば、このファイルでは 1 行目の let の横にアイコンが表示されます:

let greeting = "Hello"  // <-- Run icon appears here

let add = (a, b) => a + b

type user = {name: string, age: int}

前提条件

ガターアイコンは、プロジェクトルートに rescript.json ファイルが含まれている場合にのみ表示されます。これにより、ReScript 以外のプロジェクトや、有効な ReScript プロジェクト外のスタンドアロンの .res ファイルではアイコンが表示されません。

クリック時の動作

ガターアイコンをクリックすると、標準の IntelliJ 実行メニューが開き、以下の操作ができます:

  • Run -- デフォルトの ReScript ビルド構成を実行します

  • Debug -- ReScript ビルドには適用されません(オプションは表示されますが機能しません)

  • Edit Configurations -- 実行構成エディタを開いてビルドコマンドをカスタマイズします

ReScript の実行構成がまだ存在しない場合、アイコンをクリックするとデフォルト設定(Build コマンド、プロジェクトルートを作業ディレクトリとする)で新しい実行構成が作成されます。

ガターの実行アイコンは設定不要でビルドを開始する方法を提供します — 新しいユーザーは Run 構成やターミナルコマンドを理解しなくても、すぐにコンパイルを開始できます。

ビルドステータスインジケーター

LSP Required

IDE 下部のステータスバーに、現在の ReScript コンパイルステータスが表示されます。このウィジェットは rescript.json ファイルを含むプロジェクトでのみ表示されます。

ステータスの状態

ステータス

表示

意味

Compiling

ReScript: Compiling...

コンパイラが現在実行中です

Success

ReScript:

エラーや警告なしでビルドが完了しました

Error

ReScript: N error(s)

N 件のコンパイルエラーでビルドが失敗しました

Warning

ReScript: N warning(s)

N 件の警告付きでビルドが完了しました

Unknown

ReScript

コンパイルステータスがまだ受信されていません

仕組み

ビルドステータスインジケーターは、Run パネルからではなく LSP プロトコル経由で更新を受信します。以下がその流れです:

  1. ReScript Language Server がコンパイラプロセスを監視します

  2. コンパイル状態が変化すると、サーバーが rescript/compilationStatus 通知を送信します

  3. プラグインの LSP クライアントがこの通知を受信し、RescriptCompilationStatusService を更新します

  4. ステータスバーウィジェットが変更を監視し、表示を更新します

つまり、Language Server が接続されている限り、IDE の外部(例えばターミナル)でコンパイラを実行した場合でもステータスバーが更新されます。

ツールチップ情報

ステータスバーウィジェットにカーソルを合わせると、詳細なツールチップが表示されます:

  • コンパイル中: "ReScript compiler is running..."

  • 成功時: "ReScript compilation succeeded"

  • エラー時(件数付き): "ReScript compilation failed: 3 errors, 2 warnings"

  • 警告のみの場合: "ReScript compilation completed with 2 warnings"

ステータスバーによりコンパイラの状態を一目で確認でき、Run パネルが閉じていても、コードがクリーンか、壊れているか、まだコンパイル中かを常に把握できます。

参考

コード分析 では、エディタ内にインラインで表示される詳細な診断(エラー、警告)について説明しています。

コンソール出力

Native

ビルド出力は IDE 下部の Run パネルに表示されます。プラグインはファイルパスの自動リンク化により、生のコンソール出力を拡張します。

ファイルパスのリンク化

ReScript コンパイラがファイルパスを含むエラーまたは警告メッセージを出力すると、プラグインはそれらを自動的にクリック可能なハイパーリンクに変換します。認識されるパターンは以下の通りです:

path/to/file.res:line:column

例えば、コンパイラは以下のように出力します:

  Syntax error!

  src/App.res:10:5

  8 │ let greeting = "Hello"
  9 │
  10 │ let result = add(1, )

パス src/App.res:10:5 がクリック可能なリンクになります。クリックするとエディタで src/App.res が開き、カーソルが 10 行目、5 列目に配置されます。

パスの解決

プラグインは 2 つの方法でファイルパスを解決します:

  1. 絶対パス -- パスが絶対パスでファイルが存在する場合、そのまま使用されます

  2. 相対パス -- パスはプロジェクトルート(プロジェクトのベースパス)からの相対パスとして解決されます

リンクフィルターは .res.resi の両方のファイル拡張子を認識します。

サポートされる出力パターン

コンソールフィルターは <path>.res:<line>:<column> または <path>.resi:<line>:<column> 形式のパスにマッチする正規表現を使用します。コンパイラ出力の行番号と列番号は 1 ベースですが、プラグインは IntelliJ エディタが使用する 0 ベースのオフセットに自動変換します。

注釈

コンソール出力のフィルタリングは、ReScript の実行構成だけでなく、プロジェクト内のすべてのコンソール出力に適用されます。つまり、テスト出力、スクリプト出力、その他のコンソールパネルのファイルパスもリンク化されます。

コンパイラ出力のクリック可能なファイルパスにより、エラーメッセージが直接ナビゲーションリンクに変わり、ファイルを手動で開いてスクロールする代わりに、問題の行に直接ジャンプできます。

Run Anything

Native

Ctrl+Ctrl(Ctrl キーのダブルタップ)を押して Run Anything ダイアログを開き、ReScript CLI コマンドを入力すると、実行構成を作成せずに即座に実行できます。

利用可能なコマンド

コマンド

説明

rescript build

プロジェクトをコンパイル

rescript build -w

ウォッチモードでコンパイル

rescript clean

ビルド成果物のクリーン

rescript format

プロジェクトをフォーマット

Run Anything ダイアログで rescript と入力し始めると、自動補完付きで一致するコマンドが表示されます。

注釈

ReScript の Run Anything は、プロジェクトルートに rescript.json(または bsconfig.json)を含むプロジェクトでのみ利用可能です。ReScript CLI がプロジェクトの node_modules にインストールされている必要があります。

Run Anything を使えば、キーボードショートカットで任意の ReScript CLI コマンドを実行でき、単発のビルドやフォーマット操作のために Run 構成を作成するオーバーヘッドを回避できます。

スクラッチファイル

Native

プロジェクトに影響を与えずに、素早い実験用の一時的な ReScript ファイルを作成できます。

使い方

  1. File > New > Scratch File(または Ctrl+Alt+Shift+Insert)を選択します

  2. 言語リストから ReScript を選択します

  3. スクラッチファイルでコードを書いて実験します

スクラッチファイルは IDE のスクラッチディレクトリ(プロジェクト外)に保存され、IDE の再起動後も保持されます。シンタックスハイライトとコード折りたたみを完全にサポートしており、小さなコードスニペットのテストに最適です。

ユースケース

  • 素早いプロトタイピング — プロジェクトにファイルを作成せずにアイデアを試せます

  • 学習 — ReScript の構文と機能を実験できます

  • デバッグ — 特定のロジックを分離してテストできます

スクラッチファイルは素早い実験のための使い捨てワークスペースを提供し、プロジェクトにファイルを作成したりソースツリーを汚すことなくアイデアを試せます。

REPL

Native

ツールウィンドウとして利用できるインタラクティブな ReScript 実行環境です。

起動方法: View > Tool Windows > ReScript REPL

仕組み

REPL はプロジェクトの ReScript コンパイラと Node.js ランタイムを使用して ReScript 式をコンパイル・実行します。各式は一時ファイルにラップされ、JavaScript にコンパイルされて実行され、結果が出力パネルに表示されます。

機能

  • 式の評価 — ReScript の式を入力すると、すぐに結果が表示されます

  • 履歴ナビゲーション — 上下キーで以前の式を呼び出せます

  • プロジェクトコンテキスト — REPL はプロジェクトの rescript.json 設定と依存関係を使用します

  • 出力のクリア — ツールバーボタンで出力パネルをクリアできます

要件

  • プロジェクトの node_modules に ReScript コンパイラがインストールされていること

  • システムに Node.js が利用可能であること

REPL はファイルの作成、コンパイル、実行のオーバーヘッドなしに式のテストや API の探索ができるインタラクティブなフィードバックループを提供します — ReScript の学習や素早い仮定の検証に最適です。

Worksheet モード

Native

.resw(ReScript Worksheet)ファイル全体をインタラクティブに評価し、各式の横にインラインで結果を表示します。

使い方

  1. .resw 拡張子のファイルを作成します

  2. ReScript の式を 1 行ずつ記述します

  3. 評価後、各式の横にインラインアノテーションとして結果が表示されます

let x = 1 + 2          // => 3
let name = "ReScript"   // => "ReScript"
String.length(name)     // => 8

機能

  • 自動評価 — ファイルの保存時またはオンデマンドで式が評価されます

  • インライン結果 — 各行の末尾にグレーアウトされたアノテーションとして結果が表示されます

  • エラー表示 — コンパイルエラーが該当する式の横にインラインで表示されます

  • 完全な言語サポート — Worksheet は ReScript の完全な構文をサポートし、プロジェクトの依存関係にアクセスできます

REPL との違い

  • REPL はインタラクティブなセッションで一度に 1 つの式を評価します

  • Worksheet はファイル全体を一度に評価し、ソースコードと並べてすべての結果を表示します

Worksheet は ReScript をノートブックのような体験に変え、コードの横にすべての式の結果が表示されるため、探索的プログラミングやドキュメントの例に最適です。

コンパイル済み JavaScript のデバッグ

Native

Alt+Shift+D を押して、現在の .res ファイルのコンパイル済み JavaScript 出力をデバッグします。

仕組み

  1. プラグインは現在の .res ファイルを lib/js/ 内のコンパイル済み .js 出力に解決します

  2. コンパイル済みファイルに対して node --inspect-brk を使用してデバッグセッションが起動されます

  3. IDE のデバッガーが Node.js インスペクタに接続し、ブレークポイントの設定やコードのステップ実行が可能になります

要件

  • プロジェクトを先にコンパイルする必要があります --- コンパイル済み .js ファイルが見つからない場合、プロジェクトのビルドを促すメッセージが表示されます

  • システムに Node.js が利用可能である必要があります

  • JavaScript Debugger プラグインがインストールされている必要があります(IntelliJ IDEA Ultimate および WebStorm にバンドル済み)

Tip

デバッグ前にコンパイル出力を理解するために、Compiled JS Preview ツールウィンドウと組み合わせて使用してください。

ランタイムの動作をデバッグする必要がある場合、IDE のフルデバッガで コンパイル済み JavaScript をステップ実行でき、ReScript のソースロジックと実際の JavaScript 実行を結び付けられます。