2011-10-25 3 views
2

clang에 기호 정의 또는 선언 (또는 참조)을 반환 할 수있는 옵션이 있는지 알려주십시오.clang - 기호 (변수, 함수, 유형 등) 정의 또는 선언 또는 참조

는 말은 : 행 :이 -code 완성-에서 불리는 그 소리 실행 파일 옵션 = path_to_file입니다 coloumn 그 소리가 코드로 모양을하고 완료 문자열 (즉, 예를 표준을 위해 존재하는 경우 :: string_type_variable 반환 . .. 당신에게 std :: string에서 호출 할 수있는 모든 메서드와 특성을 반환합니다.

이제 원하는 것은 clang이 파일의 좌표를 반환하고 심볼의 정의가 시작되는 곳입니다. 만약 std :: string_type_variable - 내가 좌표를 반환하고 싶습니다. 코드에서 문자열을 사용하고 있습니다.

대신 vim에서 사용하고 싶습니다. cscope/ctags의 구식 기능 (vim에서 ctags/cscope를 사용하는 태그 시스템은 컨텍스트를 알지 못합니다 - 더 큰 프로젝트에서는 전혀 사용할 수 없음) clang followup (http://blog.wuwon.id.au/2011/)이 있습니다. 10/vim-plugin-for-navigating-c-with.html)하지만 제대로 작동하지 않습니다. (사실 전혀 작동하지 않습니다.)

심지어 가능합니까? 그게 어렵지 않아서 완성을 되 돌리면 변수의 정의를 읽은 곳에서 이미 알고있을 것입니다 ...

+0

왜 이렇게하는 'clang'이어야합니까? – trojanfoe

+0

그럴 필요는 없습니다. 다른 것에 대해서 알고 있습니까? 합리적인 속도? – majkl

+0

Vim에 귀하의 요구에 맞는 [clang_complete] (https://github.com/Rip-Rip/clang_complete) 플러그인과 [YouCompleteMe] (https://github.com/Valloric/YouCompleteMe) 플러그인이 있습니다. –

답변

2

Clang은 libclang 공유 라이브러리에서 그러한 기능을 제공하지만 단순합니다 그것을 사용하는 방법에 대한 예제. 소스에서 clang을 빌드 한 경우 c-index-test 실행 파일을 살펴보십시오. 도구/c-index-test에있는 소스입니다.

+0

고맙습니다. 나는 그것을 보겠습니다 ... 처음에는 어떻게 든 나던 일을하지는 못합니다 :) – majkl

+0

그래서 저는 C-index-test로 놀았으며 많은 기능을 발견했습니다. 고맙습니다. 정확히 내가 필요한 것. :) – majkl