VSCode からの移行¶
このガイドは、VSCode の ReScript 拡張機能から JetBrains ReScript プラグインへの移行を支援します。キーボードショートカットの対応表、機能比較、セットアップの違いについて説明します。
キーボードショートカット対応表¶
以下の表は、VSCode と JetBrains IDE の主要な操作のショートカット対応表です。ショートカットキーは異なりますが、機能は同等です。
操作 |
VSCode |
JetBrains (macOS) |
JetBrains (Win/Linux) |
|---|---|---|---|
Go to Definition |
F12 / Cmd+Click |
Cmd+B / Cmd+Click |
Ctrl+B / Ctrl+Click |
Find References |
Shift+F12 |
Alt+F7 |
Alt+F7 |
Rename Symbol |
F2 |
Shift+F6 |
Shift+F6 |
Format Document |
Shift+Alt+F |
Cmd+Opt+L |
Ctrl+Alt+L |
Quick Fix / Code Action |
Cmd+. |
Alt+Enter |
Alt+Enter |
Command Palette |
Cmd+Shift+P |
Cmd+Shift+A |
Ctrl+Shift+A |
Go to Symbol (File) |
Cmd+Shift+O |
Cmd+F12 |
Ctrl+F12 |
Go to Symbol (Workspace) |
Cmd+T |
Cmd+Opt+O |
Ctrl+Alt+O |
Toggle Line Comment |
Cmd+/ |
Cmd+/ |
Ctrl+/ |
Toggle Block Comment |
Shift+Alt+A |
Cmd+Shift+/ |
Ctrl+Shift+/ |
Search Everywhere |
Cmd+P (files) |
Shift Shift |
Shift Shift |
Open Terminal |
Ctrl+` |
Alt+F12 |
Alt+F12 |
Trigger Completion |
Ctrl+Space |
Ctrl+Space |
Ctrl+Space |
Hover Documentation |
Hover mouse |
Hover / Ctrl+Q |
Hover / Ctrl+Q |
Surround With |
-- |
Cmd+Alt+T |
Ctrl+Alt+T |
Extract Variable |
-- |
Cmd+Alt+V |
Ctrl+Alt+V |
Extract Function |
-- |
Cmd+Alt+M |
Ctrl+Alt+M |
Tip
JetBrains IDE には "VSCode" keymap プラグイン があり、ほとんどのショートカットを VSCode のデフォルトに変更できます。Settings > Plugins > Marketplace から "VSCode Keymap" で検索してインストールしてください。移行を大幅に楽にできます。
機能比較¶
JetBrains ReScript プラグインは、VSCode 拡張機能で利用可能なすべての LSP ベースの機能に加え、多数のネイティブ IDE 統合機能を提供します。
機能 |
VSCode 拡張機能 |
JetBrains プラグイン |
|---|---|---|
シンタックスハイライト |
TextMate grammar |
JFlex レクサー + LSP セマンティックトークン(2層構造) |
コード補完 |
LSP のみ |
LSP + Postfix テンプレート + Live Templates |
診断 |
LSP |
LSP + Error Lens インライン表示 |
コードフォーマット |
LSP |
|
リファクタリング |
LSP リネーム |
Rename + Extract Variable/Function + Inline + Change Signature + React コンポーネント抽出 |
デッドコード分析 |
手動の reanalyze CLI |
reanalyze サーバーモードによる統合インスペクション |
テストランナー |
外部ターミナル |
統合テストツリー UI(Jest/Vitest 自動検出) |
コード生成 |
-- |
switch アーム、モジュールタイプ、make 関数、JSON コーデックの生成 |
Surround With |
-- |
if/switch/try/block |
Postfix Completion |
-- |
|
Live Templates |
-- |
21 種のスニペット( |
コードインスペクション |
-- |
重複 open、空モジュール、シグネチャ同期、スタイルリント |
Project Wizard |
-- |
12 種のプロジェクトテンプレート |
Module Hierarchy |
-- |
モジュール依存関係のビジュアルツリー |
Call Hierarchy |
-- |
Caller/Callee ツリー |
セットアップの違い¶
Language Server¶
VSCode: ReScript 拡張機能に Language Server がバンドルされているため、追加のインストールは不要です。
JetBrains: プロジェクトの
node_modulesに@rescript/language-serverをインストールする必要があります。Language Server が検出されない場合、プラグインは通知バーに ワンクリックインストールボタン を表示し、パッケージマネージャ(npm/yarn/pnpm)を自動検出してバックグラウンドでインストールを実行します。
手動でインストールする場合:
npm install -D @rescript/language-server
設定¶
VSCode:
settings.json(ユーザーレベルまたはワークスペースレベル)のrescript.*名前空間で設定します。JetBrains: Settings > Languages & Frameworks > ReScript で設定します。インクリメンタル型チェック、Signature Help、Inlay Hints、コンパイルステータス表示などのオプションがあります。
キーマップ¶
VSCode のキー操作に慣れている場合は、VSCode Keymap プラグインをインストールしてください:
Settings > Plugins > Marketplace を開く
"VSCode Keymap" を検索する
Install をクリックして IDE を再起動する
これにより、ほとんどの主要なショートカットが VSCode と同じキーに変更されます。
JetBrains 限定の機能¶
以下の機能は JetBrains ReScript プラグインでのみ利用可能で、VSCode 拡張機能には対応する機能がありません:
コード編集
Postfix completion --
.switch,.pipe,.log,.promise,.awaitなどLive Templates -- よく使うパターン用の 21 種の組み込みスニペット(
let,switch,@react.component, FFI バインディング)Surround with -- 選択コードを
if/switch/try/block で囲む(Cmd+Alt+T)Smart Enter --
Shift+Enterで括弧やブレースを自動補完Statement mover --
Alt+Shift+Up/Downでトップレベル宣言を上下に移動
リファクタリング
Extract Variable (
Cmd+Alt+V) -- 式をlet束縛に抽出Extract Function (
Cmd+Alt+M) -- 選択コードを新しい関数に抽出Inline Variable/Function (
Cmd+Alt+N) -- 変数や関数を使用箇所にインライン展開Change Signature (
Cmd+F6) -- 関数パラメータを変更し、呼び出し側を自動更新React コンポーネント抽出 -- JSX を新しい React コンポーネントに抽出
コード生成 (Cmd+N)
バリアント型から switch アームを生成
モジュールタイプのスケルトンと実装を生成
レコード型から
makeコンストラクタ関数を生成JSON エンコーダ/デコーダ関数を生成
デフォルトフィールドでレコード値を生成
コードインスペクション
重複
openの検出空モジュールの検出
.resiシグネチャ同期チェックスタイルリンティング(冗長ブール式、Belt API の提案)
Reanalyze サーバーモード -- 高速デッドコード分析用の常駐デーモン
テストランナー
Jest と Vitest の自動検出による統合テストツリー UI
ガターアイコンからの個別テスト実行/デバッグ
Project Wizard
16 種のテンプレート(Basic, Vite+React, Next.js, Electron, Hono, Cloudflare Workers など)から新規 ReScript プロジェクトを作成
ツールウィンドウ
Module hierarchy -- モジュール依存関係のビジュアルツリー
Call hierarchy -- Caller/Callee ツリー(
Ctrl+Alt+H)Dependency diagram -- モジュール依存関係のグラフ可視化
PPX expansion view -- PPX マクロの出力を確認
Type info panel -- カーソル位置の型を常時表示するパネル
REPL -- ReScript インタラクティブ実行環境
Package dependencies --
rescript.jsonの依存関係ツリーを表示
その他の機能
.d.ts バインディング生成 -- TypeScript 定義から ReScript
externalバインディングを生成Worksheet モード --
.reswファイルをインタラクティブに評価スクラッチファイル -- 一時的な ReScript スニペットの作成と実行
型シグネチャ検索 -- 型シグネチャで関数を検索(
Shift+Shift)Error Lens -- 各行の末尾に診断情報をインライン表示
JS/TS → ReScript 変換ペースト -- JavaScript/TypeScript コードをペースト時に ReScript に自動変換