Escolha um modo de análise
Entenda as capacidades e limites do Hybrid, Flyweight, Compiler e Tag.
Alternar modos
Clique no nome do modo na barra de status ou abra a paleta de comandos e execute Hornet C/C++: Switch Parsing Mode. Você também pode editar as configurações:
{
"hornet-cpp.mode": "hybrid"
}Hybrid · Recomendado
Mantém um índice Tag e qualquer serviço Compiler disponível, escolhendo automaticamente um analisador por arquivo com base na cobertura do comando de compilação.
Requisitos:Navegue fora da caixa; recursos semânticos precisam do clangd e de um banco de dados de compilação válido.
Melhor para:Desenvolvimento diário, projetos existentes e configuração gradual de construção。
Flyweight
Executa o analisador Tree-sitter C/C++ WebAssembly incluído em um thread em segundo plano, com árvores de sintaxe incrementais para arquivos recentes.
Requisitos:Não é necessário nenhum compilador extra, instalação clangd ou compile_commands.json.
Melhor para:Leitura de código desconhecido, navegação leve e projetos sem ambiente de construção。
Compiler
clangd fornece navegação semântica, renomeação, ações de código e diagnósticos de compilador ao vivo. A resolução de macros, tipos e cabeçalhos requer configuração completa de construção do projeto.
Requisitos:Um compile_commands.json válido, clangd e o conjunto de ferramentas real do seu projeto.
Melhor para:Navegação precisa, refatoração e manutenção complexa de C/C++。
Tag
Cria rapidamente um índice de tag lexical em um thread de segundo plano para navegação básica de símbolos, navegação e relacionamentos de chamada.
Requisitos:Não são necessárias ferramentas adicionais.
Melhor para:Pesquisa rápida, preenchimento básico e navegação de definição。
Limites dos modos leves
Tag e Flyweight fornecem pesquisa de símbolos, contornos, preenchimento básico, navegação de definição/declaração, referências de sintaxe e gráficos de chamada. Eles não pré-processam, verificam o tipo ou refatoram. Símbolos com o mesmo nome podem produzir vários candidatos.
Para renomeação precisa, ações de código e diagnósticos do compilador, use Compiler ou configure comandos de compilação por arquivo para Hybrid. O desempenho do Flyweight depende de seus arquivos e padrões de edição; nem sempre é mais rápido que o Tag.