Your project.
Your way to parse.
Start with Hybrid by default, or select a mode for your project's current state.
Automatic choice, balancing speed and precision
Keeps a Tag index and any available Compiler service, automatically choosing a parser per file based on compilation-command coverage.
- Per-file selection
- Tag without a database
- Semantics enabled as configured
{
"hornet-cpp.mode": "hybrid"
}Browse out of the box; semantic features need clangd and a valid compilation database.
Explore use casesLightweight syntax, ready to go
Runs the bundled Tree-sitter C/C++ WebAssembly parser in a background thread, with incremental syntax trees for recent files.
- Built-in WASM parser
- Syntax-based indexing
- Incremental syntax trees
{
"hornet-cpp.mode": "flyweight"
}No extra compiler, clangd installation or compile_commands.json required.
Explore use casesUnderstand code with real compile arguments
clangd provides semantic navigation, renaming, code actions and live compiler diagnostics. Resolving macros, types and headers requires complete project build configuration.
- Semantic analysis
- Accurate renaming
- Compiler diagnostics
{
"hornet-cpp.mode": "compiler"
}A valid compile_commands.json, clangd and your project's actual toolchain.
Explore use casesStart reading without configuration
Quickly builds a lexical tag index in a background thread for basic symbol browsing, navigation and call relationships.
- Lexical tags
- Basic navigation
- Background indexing
Know the limits before choosing.
Lightweight modes make it easy to start; semantic features need a real build environment.
| Capability / requirement | Hybrid | Flyweight | Compiler | Tag |
|---|---|---|---|---|
| Browse without a compilation database | Yes, using Tag | Supported | Database required | Supported |
| Parsing method | Tag / Compiler per file | Tree-sitter syntax trees | clangd semantic service | Lexical tags |
| Symbols, navigation and call graphs | Supported | Syntax-based | Semantic | Lexical |
| Accurate renaming and code actions | Files with compile commands | Not available | As supported by clangd | Not available |
| Compiler diagnostics / type checking | Files with compile commands | Not available | Supported | Not available |
| Extra tools | clangd for semantic features | None | clangd + compilation database | None |
One setting to switch.
Click the mode name at the bottom of VS Code, or run Switch Parsing Mode.