2010-03-10 66 views
9

Có tiện ích hay plugin nào cung cấp cscope giống như chức năng cho C++ hay không. Tôi đang tìm kiếmcscope giống như chức năng cho C++ (sử dụng vim)

  • tất cả các tham chiếu đến một biểu tượng
  • định nghĩa toàn cầu
  • chức năng gọi bằng một hàm
  • chức năng gọi một hàm
  • các file bao gồm một tập tin

Trả lời

4

Vim thể giao diện trực tiếp với cscope ra khỏi hộp. Nhập :h cscope. Điều này đòi hỏi chức năng cscope được kích hoạt khi Vim được biên dịch và cho cscope được cài đặt trên máy tính của bạn.

Vim + cscope tutorial trên trang web cscope.

+4

không may, nó không hoạt động mà tốt với C++ – UncleZeiv

+0

là có bất kỳ công cụ khác có thể cung cấp chức năng tương tự –

+1

tôi có tìm thấy một chương trình tên là Silent Bob (http://silentbob.sourceforge.net/), nhưng hav e không thử nó. Nó tuyên bố hỗ trợ C++, perl và Python. –

2

Có một số lệ phí cầu đường được liệt kê trong các chủ đề https://www.reddit.com/r/emacs/comments/1qktcb/cscope_like_functionality_that_correctly_handles/:

  • Clang ctags https://github.com/drothlis/clang-ctags (sử dụng kêu vang để phân tích, hỗ trợ C/C++) - Dường như để tạo đồng bằng "TAGS" cổ điển tập tin (đi đến định nghĩa duy nhất, "cấp 1" của Exuberant Ctags) cho Emacs và Vi
  • Thẻ Clang https://github.com/ffevotte/clang-tags (sử dụng clang để phân tích cú pháp, hỗ trợ C/C++; cần máy chủ đang chạy để sử dụng) - hoạt động với JSON Compilation Database, hỗ trợ cả hai đi đến định nghĩa (clang-tag find-def)/chuyển đến sử dụng (clang-tag grep). vim-clang-tags có thể được sử dụng để liệt kê tất cả các tập quán (:ClangTagsGrep lệnh); có emacs plugin quá
  • Rtags https://github.com/Andersbakken/rtags (được đặt tên cho Roberto Raggi người viết C++ parser và yên tâm để chuyển sang phân tích cú pháp; C/C++ với giới hạn ObjC/ObjC++; dựa trên máy chủ với ./bin/rdm daemon) - có "biểu tượng sau" và "tìm tham khảo". Tương tác với các emacs - "rtags.el"; có hai dự án cho Vim: https://github.com/lyuts/vim-rtags (hỗ trợ phong phú của rtags) và https://github.com/shaneharper/vim-rtags (chỉ có 2 lệnh) cả hai với chức năng "Tìm tham chiếu" và "tìm định nghĩa"
  • gấu https://github.com/rizsotto/Bear (không dựa trên tiếng kêu, có thể tạo ra "cơ sở dữ liệu biên dịch JSON "cho các dự án cmake và không cmake). Không có chức năng tham chiếu chéo nào?

Một số liên kết khác

  • https://ruben2020.github.io/codequery/ "CodeQuery là một dự án mà cố gắng để kết hợp các tính năng có sẵn từ cả hai cscope và ctags, cung cấp truy cập cơ sở dữ liệu nhanh hơn so với cscope (vì nó sử dụng SQLite) và cung cấp một công cụ GUI đẹp nữa. ", có plugin gui và vim riêng https://github.com/devjoe/vim-codequery; không thể tạo ra cơ sở dữ liệu cscope, nhưng "CodeQuery sqlite3 db" của riêng nó được chuyển đổi từ cscope.out, được tạo ra bởi pycscope cho python; starscope cho Ruby, Go và Javascript; cscope gốc cho C và giới hạn C++; cũng có thể sử dụng TAGS.
  • https://github.com/cquery-project/cquery "cquery là một máy chủ ngôn ngữ có độ mở cao, có độ trễ thấp cho C/C++/Objective-C. Nó được kiểm tra và thiết kế cho các cơ sở mã lớn như Chromium. Cquery cung cấp phân tích ngữ nghĩa chính xác và nhanh chóng mà không làm gián đoạn quy trình làm việc. "... tìm định nghĩa/tham chiếu, với clang, C/C++; công việc rất nhanh, cập nhật nhanh và ăn nhiều RAM.Có hỗ trợ vim: https://github.com/cquery-project/cquery/wiki/Vim
  • https://www.gnu.org/software/global/ GNU Global đôi khi được khuyến nghị là thay thế cscope. Nó có "định nghĩa không chỉ các định nghĩa mà còn tham chiếu" và hỗ trợ "6 ngôn ngữ bằng trình phân tích cú pháp tích hợp (định nghĩa và tham chiếu): C, C++, Yacc, Java, PHP4 và assembly." Và Vim tích hợp: https://www.gnu.org/software/global/globaldoc_toc.html#Vim-editor

và có một số nhanh (lập chỉ mục) greps như công cụ kiếm mã Russ Cox'(Nó hoạt động với regex quá - https://github.com/google/codesearch; ví dụ là https://codesearch.debian.net/about) hoặc bất kỳ grep lập chỉ mục khác ...

và có các công cụ ref chéo (GUI và web-server) như LXR và khác ... https://github.com/oracle/opengrok/wiki/Comparison-with-Similar-Tools

Các vấn đề liên quan