귀하의 프로젝트.
분석 방법.
기본적으로 Hybrid로 시작하거나 프로젝트의 현재 상태에 대한 모드를 선택하세요.
추천
자동 선택, 속도와 정밀도의 균형 유지
Tag 인덱스와 사용 가능한 Compiler 서비스를 유지하고 컴파일 명령 적용 범위에 따라 파일당 파서를 자동으로 선택합니다.
- 파일별 선택
- 데이터베이스가 없는 Tag
- 구성된 대로 의미 체계 활성화
settings.json
{
"hornet-cpp.mode": "hybrid"
}상자 밖으로 찾아보세요. 의미론적 기능에는 clangd와 유효한 컴파일 데이터베이스가 필요합니다.
사용 사례 살펴보기Tree-sitter
경량 구문, 바로 사용 가능
최근 파일에 대한 증분 구문 트리를 사용하여 번들로 제공되는 Tree-sitter C/C++ WebAssembly 파서를 백그라운드 스레드에서 실행합니다.
- 내장 WASM 파서
- 구문 기반 인덱싱
- 증분 구문 트리
settings.json
{
"hornet-cpp.mode": "flyweight"
}추가 컴파일러, clangd 설치 또는 compile_commands.json이 필요하지 않습니다.
사용 사례 살펴보기clangd
실제 컴파일 인수로 코드 이해
clangd는 의미 체계 탐색, 이름 바꾸기, 코드 작업 및 실시간 컴파일러 진단을 제공합니다. 매크로, 유형 및 헤더를 해결하려면 완전한 프로젝트 빌드 구성이 필요합니다.
- 의미론적 분석
- 정확한 이름 바꾸기
- 컴파일러 진단
settings.json
{
"hornet-cpp.mode": "compiler"
}유효한 compile_commands.json, clangd 및 프로젝트의 실제 툴체인.
사용 사례 살펴보기사용 준비 완료
구성 없이 읽기 시작
기본 기호 탐색, 탐색 및 호출 관계를 위해 백그라운드 스레드에서 어휘 태그 색인을 빠르게 구축합니다.
- 어휘 태그
- 기본 탐색
- 배경 인덱싱
선택하기 전에 한계를 알아 두십시오.
경량 모드를 사용하면 쉽게 시작할 수 있습니다. 의미론적 기능에는 실제 빌드 환경이 필요합니다.
| 능력/요구사항 | Hybrid | Flyweight | Compiler | Tag |
|---|---|---|---|---|
| 컴파일 데이터베이스 없이 찾아보기 | 예, Tag를 사용합니다. | 지원됨 | 데이터베이스 필요 | 지원됨 |
| 파싱 방법 | 파일당 Tag / Compiler | Tree-sitter 구문 트리 | clangd 시맨틱 서비스 | 어휘 태그 |
| 기호, 탐색 및 호출 그래프 | 지원됨 | 구문 기반 | 의미론적 | 어휘 |
| 정확한 이름 바꾸기 및 코드 작업 | 컴파일 명령이 포함된 파일 | 사용할 수 없음 | clangd에서 지원하는 대로 | 사용할 수 없음 |
| 컴파일러 진단 / 유형 검사 | 컴파일 명령이 포함된 파일 | 사용할 수 없음 | 지원됨 | 사용할 수 없음 |
| 추가 도구 | 의미론적 특징을 위한 clangd | 없음 | clangd + 컴파일 데이터베이스 | 없음 |
Tag / Flyweight는 전처리 또는 유형 확인을 수행하지 않으며 동일한 이름의 기호는 여러 후보를 반환할 수 있습니다. Flyweight 성능은 파일 및 편집 패턴에 따라 다릅니다. Tag보다 항상 빠른 것은 아닙니다.
전환할 설정은 하나입니다.
VS Code 하단의 모드명을 클릭하거나, Switch Parsing Mode를 실행하세요.