选择解析模式

了解 Hybrid、Flyweight、Compiler 和 Tag 的能力边界。

切换模式

点击状态栏的模式名称,或在命令面板执行 Hornet C/C++: Switch Parsing Mode。你也可以编辑设置:

{
  "hornet-cpp.mode": "hybrid"
}

Hybrid · 推荐

同时维护 Tag 索引和可用的 Compiler 服务,按每个文件的编译命令覆盖情况,自动选择合适的解析方式。

配置要求:开箱即可浏览;语义功能需要 clangd 与有效的编译数据库。

适用场景:日常开发、已有工程、逐步完善编译配置。

Flyweight

在后台线程运行随插件附带的 Tree-sitter C/C++ WebAssembly 解析器,近期文件使用增量语法树。

配置要求:无须额外安装编译器、clangd 或生成 compile_commands.json。

适用场景:阅读陌生代码、轻量浏览、尚未建立构建环境的工程。

Compiler

由 clangd 提供语义跳转、重命名、代码操作和实时编译诊断。理解宏、类型与头文件,需要完整的项目编译配置。

配置要求:有效的 compile_commands.json、clangd,以及项目实际工具链。

适用场景:精确导航、重构、维护复杂的 C/C++ 项目。

Tag

在后台线程快速建立词法标签索引,提供基础符号浏览、跳转和调用关系,适合快速进入项目。

配置要求:无额外工具要求。

适用场景:快速检索、基础补全与定义导航。

轻量模式的边界

Tag 与 Flyweight 提供符号搜索、大纲、基础补全、定义 / 声明跳转、语法引用和调用图。它们不执行预处理、类型检查或重构。同名符号可能出现多个候选。

需要精确重命名、代码操作和编译诊断时,使用 Compiler,或为 Hybrid 配置相应文件的编译命令。Flyweight 性能取决于文件和编辑方式,不保证所有项目都快于 Tag。

搜索使用文档

输入关键词查找文档。

Esc 关闭 · Tab 选择结果