Chỉ số C ++ tốt nhất?


10

Gần đây tôi đã chuyển từ CDT Eclipse sang Spacemac với lớp C ++ làm môi trường phát triển của tôi.

Cho đến nay ... tuyệt vời! Tuy nhiên, một trong những điều tôi nhớ về Eclipse là trình chỉ mục của nó .

Hiện tại tôi đang sử dụng GNU Global với lớp gtags . Vấn đề với gtags là nó là một hệ thống gắn thẻ , không phải là một bộ chỉ mục.

Thí dụ:

Tìm kiếm các tham chiếu cho một hàm được gọi settrong lớp Fieldtrả về 165 tham chiếu trong cơ sở mã của tôi, chỉ một trong số đó thực sự là một tham chiếu đếnField::set

Tìm kiếm các tài liệu tham khảo settrong CDT trả về 1 kết quả.

Có một giải pháp lập chỉ mục tốt hơn mà tôi có thể sử dụng trong emacs?

Tìm kiếm trực tuyến Tôi tìm thấy trang này nơi liệt kê 3 chỉ số dựa trên clang.

Câu hỏi:

  • Bất kỳ trong số này sẽ cung cấp một kinh nghiệm lập chỉ mục tốt hơn?
  • Bất kỳ đề nghị để sử dụng?
  • Có một sự thay thế tốt hơn không được liệt kê?

Ghi chú:

Tôi cũng đã sử dụng clang-completeđể hoàn thành mã, nhưng thấy nó rất chậm. Chậm lạ thường. ( Tôi không phải là người duy nhất trải nghiệm điều này ) Nếu bất kỳ giải pháp lập chỉ mục nào gặp phải vấn đề tương tự, nó sẽ không hoạt động.


Không phải tôi đang làm việc với các dự án C ++, nhưng có lẽ bạn có thể tìm thấy nội dung hữu ích trên emacs.zeef.com trong phần C ++?
ReneFroger

Tôi đã nhận thấy rằng clang-indexerkhông có bất kỳ sự phát triển nào gần đây và bản thân tác giả nói rằng nó "thô bạo" - vì vậy tôi sẽ không thử điều đó so với hai người kia
Steve Lorimer

rtagsdường như là phổ biến nhất trong số 3 được liệt kê
Steve Lorimer

1
Nói đúng ra, câu hỏi này có liên quan gì đến Emacs không?
PythonNut

1
Như hiện tại, câu hỏi này rất chủ quan và có khả năng mang lại câu trả lời chủ yếu dựa trên ý kiến. Vui lòng chỉnh sửa bài viết của bạn để làm cho câu hỏi cụ thể hơn.
Dân

Câu trả lời:


4

Tôi chỉ có thể nói với rtags rằng tôi đã sử dụng tích cực trong 1-2 năm qua.

rtags hoạt động như mong đợi. Nó là trình biên dịch dựa trên và cung cấp điều hướng mã chính xác. Một cái gì đó tôi đã tìm kiếm trong 10 năm qua như là một người dùng emacs.

Thiết lập có thể là một chút khó khăn. Tôi khuyên bạn nên xem cmake-ide, đó là một phần của thiết lập tự động. https://github.com/atilaneves/cmake-ide

Bài đăng trên blog này cũng có thể giúp https://vxlabs.com/2016/04/11/step-by-step-guide-to-c-navestion-and-completion-with-emacs-and-the-clang-basing- rtags /

Bạn cũng có thể xem (hoặc sử dụng) cấu hình của riêng tôi: https://github.com/jardon-u/dotfiles/blob/master/emacs.d/development/c/_init.el Tôi sử dụng kết hợp cmake- ide (khám phá dự án), trớ trêu (để hoàn thành mã) và rtags (để điều hướng mã). Tôi khá chắc chắn rằng điều này có thể được đơn giản hóa khi một số chức năng chồng chéo giữa mỗi chế độ, nhưng kết quả là ở mức tôi đang mong đợi từ một IDE hiện đại.

rtags cũng cung cấp các cơ sở tái cấu trúc mã, nhưng nó khá hạn chế (chủ yếu là đổi tên)


1
Đã hai năm kể từ khi câu trả lời này được chấp nhận, bạn vẫn đang sử dụng rtags chứ? Tôi tò mò nếu tài liệu về thiết lập đã thay đổi hoặc thiết lập dễ dàng hơn đã được giới thiệu. Bất kỳ thông tin về điều đó? Bạn có thể chia sẻ tập tin setup / config không?
A_P

@A_P Vì một số lý do tôi chỉ thấy bình luận của bạn bây giờ. Tôi vẫn đang sử dụng rtags. Bạn nên kiểm tra lại trang cmake-ide + cấu hình của tôi (liên kết trong câu trả lời của tôi). Tôi cũng tự động hầu hết các cài đặt. Kiểm tra: github.com/jardon-u/dotfiles/blob/master/install.sh (mặc dù phiên bản emacs có thể không phải là phiên bản mới nhất. Tôi sẽ thử cập nhật thông tin này)
log0
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.