选择解析模式
了解 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。