FOUR WAYS TO UNDERSTAND CODE

Your project.
Your way to parse.

Start with Hybrid by default, or select a mode for your project's current state.

Recommended

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
settings.json
{
  "hornet-cpp.mode": "hybrid"
}

Browse out of the box; semantic features need clangd and a valid compilation database.

Explore use cases

Know the limits before choosing.

Lightweight modes make it easy to start; semantic features need a real build environment.

Comparison of the four parsing modes
Capability / requirementHybridFlyweightCompilerTag
Browse without a compilation databaseYes, using TagSupportedDatabase requiredSupported
Parsing methodTag / Compiler per fileTree-sitter syntax treesclangd semantic serviceLexical tags
Symbols, navigation and call graphsSupportedSyntax-basedSemanticLexical
Accurate renaming and code actionsFiles with compile commandsNot availableAs supported by clangdNot available
Compiler diagnostics / type checkingFiles with compile commandsNot availableSupportedNot available
Extra toolsclangd for semantic featuresNoneclangd + compilation databaseNone
Tag / Flyweight do not preprocess or type-check, and same-name symbols may return multiple candidates. Flyweight performance depends on files and editing patterns; it is not always faster than Tag.

One setting to switch.

Click the mode name at the bottom of VS Code, or run Switch Parsing Mode.

Set up a compilation database

Search documentation

Enter keywords to find documentation.

Esc Close · Tab Select a result