neovim/neovim
6 articles
前提知識
- ›C 言語の基礎知識
- ›Vim の基本概念(モード、バッファ、ウィンドウ)への親しみ
01
Neovim のアーキテクチャ:コードベースの全体地図
libuv イベントループを基盤とするクライアント・サーバー型エディタとしての Neovim のアーキテクチャ、コード生成パイプライン、Lua ランタイム層を包括的に解説します。
02
Neovimの心臓部:イベントループとステートマシン
VimのSync的なキー読み取りループを、モーダルなステートマシンを維持しながらいかに非同期対応のイベント駆動アーキテクチャへと変換したかを解説します。
03
NeovimのAPI:RPC、コード生成、UIプロトコル
NeovimのAPI関数が特殊なアノテーション付きのC言語で一度だけ定義され、RPCディスパッチテーブル・Luaバインディング・イントロスペクション可能なメタデータを自動生成する仕組みを解説します。
04
C と Lua をつなぐ:Neovim の Lua ランタイムアーキテクチャ
C-Lua ブリッジから vim.* 名前空間、遅延ロードシステムまで、Lua が Neovim にファーストクラスのスクリプトレイヤーとして組み込まれる仕組みを解説します。
05
バッファからスクリーンへ:Neovimのレンダリングパイプラインとデコレーションシステム
テキストがバッファに保存されてからマークツリー、デコレーションシステム、三層構造のレンダリングパイプラインを経て、スクリーンやリモートUIに表示されるまでの流れを解説します。
06
Lua エコシステム:LSP、Treesitter、そして Diagnostics
Neovim の主要な Lua 機能である LSP クライアント、Treesitter インテグレーション、Diagnostics フレームワークの三つを取り上げ、それぞれの仕組みと C コアとの連携方法を解説します。