최고의 C ++ 인덱서?


11

최근에 개발 환경으로 C ++ 레이어 를 사용하여 Eclipse CDT 에서 Spacemacs 로 전환했습니다 .

지금까지 ... 굉장합니다! 그러나 Eclipse에서 내가 놓친 것 중 하나는 인덱서 입니다.

현재 gtags 레이어 와 함께 GNU Global을 사용하고 있습니다. gtags의 문제점 은 인덱서가 아니라 태그 시스템 이라는 것 입니다.

예:

set클래스에서 호출 된 함수에 대한 참조를 검색하면 Field내 코드베이스에서 165 개의 참조가 반환되며 그중 하나만 실제로 참조Field::set

setCDT에서 참조를 검색하면 1 개의 결과가 리턴됩니다.

emacs에서 사용할 수있는 더 나은 색인 솔루션이 있습니까?

온라인 검색 3 개의 clang 기반 인덱서가 나열된 이 페이지를 찾았습니다 .

질문 :

  • 이 중 더 나은 색인 환경을 제공하는 것이 있습니까?
  • 사용할 제안이 있습니까?
  • 더 나은 대안이 목록에 없습니까?

노트 :

clang-complete코드 완성 에도 사용 했지만 속도 가 매우 느립니다. 사용할 수 없을 정도로 느립니다. ( 나는 이것을 경험할 수있는 유일한 사람은 아닙니다. ) 인덱싱 솔루션에 동일한 문제가 발생하면 작동하지 않습니다.


C ++ 프로젝트로 작업하고 있지는 않지만 C ++ 섹션에서 emacs.zeef.com에 유용한 내용을 찾을 수 있습니까?
ReneFroger

나는 clang-indexer최근 개발이 없었 음을 알았고 , 저자 자신은 그것이 "거친"이라고 말합니다. 그래서 나는 다른 두 가지에 대해서는 시도하지 않겠습니다
Steve Lorimer

rtags3 나열된의 가장 인기있는 것 같다
스티브 Lorimer가

1
엄밀히 말하면,이 질문은 Emacs와 관련이 있습니까?
PythonNut

1
현재 말한 것처럼이 질문은 매우 주관적이며 주로 의견 기반의 답변을 제공 할 가능성이 높습니다. 질문을보다 구체적으로 작성하려면 게시물을 수정하십시오.
Dan

답변:


4

지난 1-2 년 동안 적극적으로 사용하고있는 rtag에 대해서만 말할 수 있습니다 .

rtags가 예상대로 작동합니다. 컴파일러 기반이며 올바른 코드 탐색을 제공합니다. 지난 10 년 동안 emacs 사용자로서 찾고 있었던 것.

설정이 약간 까다로울 수 있습니다. 설정의 일부를 자동으로 수행하는 cmake-ide를 살펴 보는 것이 좋습니다. https://github.com/atilaneves/cmake-ide

이 블로그 게시물은 https://vxlabs.com/2016/04/11/step-by-step-guide-to-c-navigation-and-completion-with-emacs-and-the-clang-based- rtags /

내 구성을 살펴볼 수도 있습니다. https://github.com/jardon-u/dotfiles/blob/master/emacs.d/development/c/_init.el 나는 cmake- ide (프로젝트 발견), 아이러니 (코드 완성) 및 rtags (코드 탐색). 각 모드간에 일부 기능이 겹치므로 이것이 단순화 될 수 있다고 확신하지만 결과는 최신 IDE에서 기대하는 수준입니다.

rtags는 코드 리팩토링 기능도 제공하지만 상당히 제한적입니다 (대부분 이름 바꾸기).


1
이 답변을 수락 한 지 2 년이 지났습니다. 아직 rtags를 사용하고 있습니까? 설치 설명서가 변경되었거나 더 쉬운 설치가 도입되었는지 궁금합니다. 그것에 대한 정보가 있습니까? 설정 / 구성 파일을 공유 할 수 있습니까?
A_P

@A_P 어떤 이유로 든 나는 단지 당신의 의견을보고 있습니다. 여전히 rtags를 사용하고 있습니다. cmake-ide page + my config (내 답변의 링크)를 다시 확인해야합니다. 또한 대부분의 설치를 자동화했습니다. 확인 : github.com/jardon-u/dotfiles/blob/master/install.sh을 (이맥스 버전이 최신이되지 않을 수도 있지만 나는이 업데이트하려고합니다.)
log0
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.