用語集¶
このドキュメント全体で使用される主要な用語です。
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¶
選択したコードを
if、switch、try、ブロック{}などの制御構造で囲む機能(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 スタブから抽出された宣言シグネチャ(名前、型、モジュール)の永続的なファイルベースのインデックスです。すべてのファイルを解析せずに、プロジェクト全体で高速なシンボル検索を実現します。