소스에 명시적 설계 문서가 있는 건 아니지만, 구현을 보면 이유는 거의 이쪽으로 보입니다.
- LSP tool은 아직 experimental flag 뒤에 있음
- LSP 서버 availability가 언어/프로젝트마다 들쭉날쭉함
- findReferences는 file/line/character가 필요해서 LLM이 바로 쓰기 어렵다
- grep은 언제나 동작하고 실패 모드가 단순함
- diagnostics는 edit/write 후 검증 루프로 쓰기 좋아 안정적임
그래서 opencode는 LSP를 기본적으로 “수정 품질 보증 장치” 로 먼저 붙이고, semantic navigation은 아직 선택/실험 기능으로 둔 것 같습니다.
이라고 GPT와 분석을 해봤습니다.
은근 lsp 가 사용하기 까다롭고 런타임 성능이 별로일때가 있어서 recall이 좋은 grep을 많이 쓰는군요
