almide-lsp

Almide の Language Server Protocol サーバー。almide lsp で起動する。v0.19.0 で Phase 1 を実装。

アーキテクチャ

Phase 1 機能(v0.19.0)

Diagnostics

ファイルが開かれた時・変更された時にコンパイルパイプラインを走らせ、エラー/警告を LSP Diagnostic として publish。

Lexer → Parser → Canonicalization → Type Checker
    ↓         ↓              ↓              ↓
    エラーがあればその時点で Diagnostic を収集

Hover

2 パターンのホバー情報を提供:

パターントリガー表示内容
Module.funcstdlib 関数上関数シグネチャ(crate::stdlib::lookup_sig() で参照)
キーワード言語キーワード上キーワードの説明

対応キーワード: fn, let, var, type, match, effect, test, import, mut, true, false, none, some, ok, err

レスポンスは Markdown フォーマット。

Completion

トリガー入力例補完内容
モジュール補完list.モジュール内の関数一覧(シグネチャ付き)
キーワード補完efeffect 等のマッチするキーワード

トリガー文字: "."(ドット入力で発火)

Phase 2-3(未実装)

エディタ統合

vscode-almide が LSP クライアントとして almide lsp を起動する。Neovim 等の LSP 対応エディタでも利用可能。

押さえどころ(カード化候補)

関連

Graph