用語集

このドキュメント全体で使用される主要な用語です。

ReScript 言語

Binding

名前を値や関数に関連付ける let 宣言です。他の言語における変数宣言に似ていますが、Binding はデフォルトで不変(イミュータブル)です。

Module

関連する型、値、サブモジュールをグループ化する ReScript の名前空間の単位です。すべての .res ファイルは暗黙的にファイル名と同じ名前のモジュールになります。

Interface

モジュールの公開 API を宣言する .resi ファイルです。インターフェースファイルに記載された宣言のみが他のモジュールから参照可能になります。

Variant

複数の名前付きコンストラクタのいずれかを保持できる代数的データ型です。各コンストラクタはオプションでデータを持つことができます。例: type color = Red | Green | Blue

Record

名前付きフィールドを持つ構造化データ型です。フィールドはドット記法でアクセスし、デフォルトで不変(イミュータブル)です。

Pipe Operator

左の式の結果を右の関数の第一引数として渡す -> 演算子です。読みやすい左から右へのデータ変換チェーンを実現します。

Decorator

後続の宣言の振る舞いを変更する @ アノテーションです。@module@val@send@genType@react.component などがあります。

External

ReScript の名前を JavaScript の値や関数にバインドする external 宣言です。JavaScript との FFI(外部関数インターフェース)に使用されます。

JSX

React コンポーネントを構築するために ReScript で使用される XML ライクな構文です。ReScript の JSX は React.createElement 呼び出しにコンパイルされます。

Pattern Matching

値を分解してパターンに対してマッチングする switch 式です。従来の switch/case よりも強力で、コンパイル時に網羅性をチェックします。

Type Inference

明示的な型注釈なしに式の型を自動的に決定するコンパイラの機能です。ReScript は Hindley-Milner 型システムによる完全な型推論を備えています。

PPX

コンパイル時に AST(抽象構文木)を変換するプリプロセッサ拡張です。@react.component@deriving などの Decorator は PPX 変換として実装されています。

Open Statement

モジュールのすべてのエクスポートを現在のスコープに取り込む open 宣言です。モジュールプレフィックスなしでそれらを使用できるようになります。

IDE 機能

Intention Action

Alt+Enter(macOS では Option+Return)で利用できるコンテキスト対応のコード変換です。カーソル位置のコードに基づいて改善やリファクタリングを提案します。

Live Template

Tab キーを押すと省略形から展開されるコードスニペットです。例えば、letfn と入力して Tab を押すと、完全な関数宣言に展開されます。

Postfix Completion

式の後にドットサフィックスを入力することでトリガーされる補完です。例えば、expr.switch と入力すると式が switch 文に変換されます。Live Template とは異なり、Postfix Completion は既存のコードをラップします。

Code Folding

コードブロック(モジュール、関数、コメント)を折りたたんで最初の行のみを表示する機能です。大きなファイルのナビゲーションが容易になります。

Structure View

現在のファイル内の宣言(モジュール、関数、型、external)をツリー形式で表示するツールウィンドウ(Alt+7)です。

Code Lens

関数宣言の上に表示される、推論された型シグネチャを示すインラインアノテーションです。CodeVision API を利用しています。

Inlay Hint

変数やパラメータの型情報を示す、エディタに表示される小さなインラインラベルです。Language Server によって提供されます。

Code Inspection

バックグラウンドで実行され、潜在的な問題を警告やサジェスチョンでハイライトする自動コード品質チェックです。利用可能なインスペクションは設定で構成できます。

Quick Fix

検出された問題に対する自動修正で、コンテキストメニューまたは Alt+Enter で提供されます。Quick Fix は通常、インスペクションやコンパイラ診断と組み合わせて使用されます。

Surround With

選択したコードを ifswitchtry、ブロック {} などの制御構造で囲む機能(Ctrl+Alt+T)です。

Run Configuration

タスクを実行するための保存されたパラメータセットです。ReScript プロジェクトのビルド、テストの実行、コンパイル済み JavaScript のデバッグなどに使用します。

Error Lens

エディタの各行末に表示されるインライン診断メッセージです。ホバーせずにエラーや警告を確認できます。重大度に応じて色分けされます。

プラグインアーキテクチャ

LSP

Language Server Protocol の略です。IDE(クライアント)と言語固有のサーバー間の通信のための標準化された JSON-RPC プロトコルで、補完、診断、ナビゲーションなどのセマンティック機能を提供します。

Language Server

バックグラウンドで動作する @rescript/language-server プロセスです。ReScript プロジェクトを解析し、LSP 経由でプラグインにセマンティック機能を提供します。

Native Feature

JFlex レクサーと IntelliJ Platform API を使用してプラグインに直接実装された機能です。Native Feature は Language Server なしで動作します。例えば、シンタックスハイライト、コード折りたたみ、ブレースマッチングなどがあります。

Semantic Token

Language Server が提供するセマンティックな意味を持つトークン分類です(例:「この識別子は型である」「これは名前空間である」)。レクサーベースのトークン化のみよりも正確なハイライトを実現します。

Diagnostics

Language Server によって報告され、エディタにインラインで表示されるエラー、警告、情報メッセージです。コードを編集するとリアルタイムに更新されます。

PSI

Program Structure Interface の略です。ソースコードを型付き要素のツリーとして表現する IntelliJ Platform のインメモリ表現です。プラグインのレクサーとパーサーは PSI ツリーを構築し、ナビゲーション、Structure View、リファクタリングを実現します。

Stub Index

PSI スタブから抽出された宣言シグネチャ(名前、型、モジュール)の永続的なファイルベースのインデックスです。すべてのファイルを解析せずに、プロジェクト全体で高速なシンボル検索を実現します。