Dev_arch

Nvim :help 页面,生成源代码 使用 tree-sitter-vimdoc 解析器。


如何开发 Nvim,模块和子系统的解释
每个主要模块的顶部都应该在文件顶部的注释中提供概述。 本文档的目的是提供
1. 概述它们如何协同工作 2. 常见任务的指南,例如
弃用公共函数
添加新的公共(API)函数
添加新的公共(UI)事件 3. TODO: 将 src/nvim/README.md 移至此文档中。

数据结构

对于大多数列表,使用 kvec.h。 当你绝对需要链表时,使用 lib/queue_defs.h,它定义了一个“侵入式”链表。

UI 事件

与 UI 事件最直接相关的源文件是: 1. src/nvim/ui.*: 调用注册的 UI 结构的处理程序函数(独立于 msgpack-rpc) 2. src/nvim/api/ui.*: 将消息通过 msgpack-rpc 转发到远程 UI。
UI 事件定义在 src/nvim/api/ui_events.in.h 中,此文件不会直接编译,而是由 src/nvim/generators/gen_api_ui_events.lua 解析,该解析器自动生成上述源文件使用的包装函数。 它还生成可作为 api_info().ui_events 访问的元数据。
查看提交 d3a8e9217f39c59dd7762bd22a76b8bd03ca85ff 作为添加新 UI 事件的示例。
UI 事件被推迟到 UI,这意味着 UI 事件数据的深拷贝。
记住,如果在本开发周期中尚未完成,则将 NVIM_API_LEVEL 递增。
命令索引
快速参考