よさげなレポジトリを発見した。
GitHub - RMichelsen/Nvy: Nvy - A Neovim client in C++
Nvy - A Neovim client in C++. Contribute to RMichelsen/Nvy development by creating an account on GitHub.
https://github.com/RMichelsen/Nvy
だいぶ前に作ろうとして頓挫した
GitHub - ousttrue/nvim-dx: nvim frontend by D2D
nvim frontend by D2D. Contribute to ousttrue/nvim-dx development by creating an account on GitHub.
https://github.com/ousttrue/nvim-dx
の完成形。 どこがうまくいかなかったのか忘れてしまったが。
改造
GitHub - ousttrue/Nvy: Nvy - A Neovim client in C++
Nvy - A Neovim client in C++. Contribute to ousttrue/Nvy development by creating an account on GitHub.
https://github.com/ousttrue/Nvy
- RenderTarget に対して Nvim をレンダリングする
- nvim の IO を https://think-async.com/Asio/# にのせる
- imgui と合体する
20210815
MsgPack-RPC のバックエンドに昔作った
GitHub - ousttrue/msgpackpp: c++17 header only msgpack implementation. (msgpack-rpc-asio)
c++17 header only msgpack implementation. (msgpack-rpc-asio) - ousttrue/msgpackpp
https://github.com/ousttrue/msgpack-rpc-asio
におきかえる。
さらに、これのシリアライザーを自前の https://github.com/ousttrue/msgpackpp におきかえる。
- CMake 化
- RPC を
c++20
化 (co_await)
で、最初の nvim 初期化を
のように書けるようにして整理する。
20210829
- MsgPack-RPC のバックエンドを置きかえた
- logger に RPC の内容を JSON 化して表示
だいたいリファクタリングが終わって改造しやすい状態になった。
-
<C-/>
できるようにする。
を実装できた。 特定の VK が来たときに nvim のキーに変換するテーブルがあるので追加した。
[2,"nvim_input",["<C-/>"]]
が送信される。
修正が必要
非control時に
[2,"nvim_input",["</>"]]
が送信される。
なるほど。
NvimTexture へ続く