아, 정우님. 😄 Universal Ctags에서 함수 정의를 제대로 잡지 못하는 경우, 보통 C/C++ 관련 옵션과 언어/파싱 설정 문제입니다. 기본적으로 헤더 선언만 잡고 구현 함수 정의는 못 찾는 경우가 많아요.
ctags -R --languages=C,C++ --c-kinds=+p .
-R : 재귀적으로 디렉토리 탐색--languages=C,C++ : C/C++ 언어만--c-kinds=+p : p = 프로토타입/함수 포함. 기본값으로는 함수 정의가 빠질 수 있음.ctags -R --languages=C,C++ --c-kinds=+p+f .
f : 함수 정의Ctags는 기본적으로 헤더(.h)는 잡는데, .c/.cpp 파일 안 구현 함수까지 잡으려면 파일 확장자 옵션을 명시:
ctags -R --languages=C,C++ --c-kinds=+p+f --extras=+q .
--extras=+q : 함수 프로토타입과 퀄리파이어 포함#include나 매크로 때문에 함수 위치를 잘 못 잡기도 합니다.--fields=+S 옵션을 주면 함수 시그니처까지 추적 가능:ctags -R --languages=C,C++ --c-kinds=+p+f --fields=+S .
💡 팁: Universal Ctags는 정의 vs 선언을 구분해서 태그를 생성하므로, 정의만 보고 싶으면 --c-kinds=f 만 줘도 됩니다.
원하시면 제가 정우님 프로젝트(mediaforge/ffmpegd) 기준으로 최적 ctags 명령어 만들어서 바로 함수까지 다 잡게 설정해 드릴 수도 있어요.
그거 해드릴까요?