Ваш проект.
Ваш способ разбора.
Начните с Hybrid по умолчанию или выберите режим для текущего состояния вашего проекта.
Автоматический выбор, баланс скорости и точности
Сохраняет индекс Tag и любую доступную службу Compiler, автоматически выбирая парсер для каждого файла на основе покрытия команд компиляции.
- Выбор для каждого файла
- Tag без базы данных
- Семантика включена согласно настройке
{
"hornet-cpp.mode": "hybrid"
}Просмотр из коробки; для семантических функций необходим clangd и действительная база данных компиляции.
Изучите варианты использованияЛегкий синтаксис, готовый к работе
Запускает встроенный синтаксический анализатор WebAssembly Tree-sitter C/C++ в фоновом потоке с инкрементными деревьями синтаксиса для последних файлов.
- Встроенный парсер WASM.
- Индексирование на основе синтаксиса
- Инкрементные синтаксические деревья
{
"hornet-cpp.mode": "flyweight"
}Никакого дополнительного компилятора, установки clangd или compile_commands.json не требуется.
Изучите варианты использованияПонимание кода с реальными аргументами компиляции
clangd обеспечивает семантическую навигацию, переименование, действия с кодом и диагностику компилятора в реальном времени. Разрешение макросов, типов и заголовков требует полной настройки сборки проекта.
- Семантический анализ
- Точное переименование
- Диагностика компилятора
{
"hornet-cpp.mode": "compiler"
}Действительный compile_commands.json, clangd и актуальная цепочка инструментов вашего проекта.
Изучите варианты использованияНачать чтение без настройки
Быстро создает индекс лексических тегов в фоновом потоке для базового просмотра символов, навигации и взаимосвязей вызовов.
- Лексические теги
- Базовая навигация
- Фоновое индексирование
{
"hornet-cpp.mode": "tag"
}Никаких дополнительных инструментов не требуется.
Изучите варианты использованияПрежде чем сделать выбор, знайте пределы.
Облегченные режимы облегчают запуск; семантические функции нуждаются в реальной среде сборки.
| Возможность/требование | Hybrid | Flyweight | Compiler | Tag |
|---|---|---|---|---|
| Просмотр без компиляционной базы данных | Да, используя Tag | Поддерживается | Требуется база данных | Поддерживается |
| Метод разбора | Tag / Compiler за файл | Синтаксические деревья Tree-sitter | семантическая служба clangd | Лексические теги |
| Символы, навигация и графики вызовов | Поддерживается | На основе синтаксиса | Семантический | Лексический |
| Точное переименование и действия с кодом | Файлы с командами компиляции | Недоступно | При поддержке clangd | Недоступно |
| Диагностика компилятора/проверка типа | Файлы с командами компиляции | Недоступно | Поддерживается | Недоступно |
| Дополнительные инструменты | clangd для семантических функций | Нет | clangd + база данных компиляции | Нет |
Одна настройка для переключения.
Щелкните имя режима внизу VS Code или запустите Switch Parsing Mode.