2010-03-25 17 views
6

Có IDE hỗ trợ C++ với tìm kiếm thông minh thực sự của tham chiếu không? Bởi 'tham chiếu' tôi có nghĩa là sử dụng một lớp (hoặc thành viên của nó), biến, chức năng trong toàn bộ dự án hoặc không gian làm việc.C++ IDE cho Linux với tham khảo thông minh tìm kiếm

Có rất nhiều IDE cung cấp nó. Một số người trong số họ dường như chỉ để tìm kiếm các văn bản có cùng tên cho rất nhiều thứ, những người khác thông minh hơn và kiểm tra ngữ cảnh (như ranh giới lớp, không gian tên) nhưng không đủ chính xác.

Điều tốt nhất tôi đã thử cho đến nay là Visual SlickEdit, nhưng vẫn còn nhiều điều ước nữa.

class C1 
{ 
    int foo; 
}; 
class C2 
{ 
    int foo; 
}; 

Ví dụ trong tình huống này khi tìm kiếm tài liệu tham khảo C1::foo TÔI KHÔNG muốn C2::foo được hiển thị quá.

Vì vậy, có một IDE có thể thông minh không?

Edit2

10x tất cả mọi người cho câu trả lời cho đến nay.

Tôi đã thử Eclipse, tham khảo tìm kiếm có vẻ tương đối tốt, nhưng phải mất 20 phút để lập chỉ mục dự án có kích thước trung bình và 4 lần trong 5 lần hết bộ nhớ và sự cố. Tôi đã thử tăng nó và một số lời khuyên khác và nó có một chút tốt hơn, nhưng vẫn còn khá chậm và gây phiền nhiễu với những tai nạn này.

Tôi đã thử KDevelop3, nhưng tính năng được đề cập trong câu hỏi này không phải là rất nâng cao - dường như chỉ là tìm kiếm văn bản dựa trên số liệu rất tiên tiến grep.

Edit4

KDevelop4 - Tôi cố gắng để làm cho nó hoạt động, nhưng bản beta mới nhất nó khá không sử dụng được cho các dự án tùy chỉnh makefile, tôi đã không thể làm bất cứ điều gì với nó.

Edit5
Tôi rất ngạc nhiên, nhưng QT Đấng Tạo Hóa đã làm rất tốt trong các thử nghiệm của tôi. Nó dường như không tạo ra một số thẻ/chỉ mục tập tin, nhưng bằng cách nào đó quản lý để hiển thị rất chính xác việc sử dụng các biến/chức năng/lớp học. Thật không may có vẻ như nó không hoạt động đúng với các khuôn mẫu, khi làm theo các định nghĩa của các hàm.

Không có IDE nào có thể cạnh tranh với Visual SlickEdit khi làm việc với các tham chiếu, chức năng ảo, vv.

+0

Tôi sử dụng SlickEdit (14.0.1.2) và điều đó có vẻ phù hợp với tôi. Tôi phải làm một "Tìm trong tập tin" trong dự án-tập tin nếu tôi muốn tất cả các tài liệu tham khảo để foo. Đối với các hàm ảo, nó sẽ hỏi bạn có muốn tham chiếu đến tất cả hay chỉ từ lớp bạn đã chọn. – stefaanv

+0

@stefaanv Tôi sử dụng GoToRefference từ trình đơn nhấp chuột phải trên một số mục. Không phải là "Tìm trong tệp" chỉ tìm kiếm văn bản với các tùy chọn khác nhau? Tôi không thấy bất kỳ tùy chọn nội dung nào ở đó. –

+0

Đúng, "Chuyển đến tham chiếu" chỉ hiển thị các tham chiếu đến C1 :: foo. "Tìm trong tập tin" văn bản tìm kiếm bởi vì tôi thấy không có cách nào khác để hiển thị tài liệu tham khảo vì như xa như SlickEdit là có liên quan, sự giống nhau duy nhất giữa C1 :: foo và C2 :: foo là văn bản. – stefaanv

Trả lời

2

Tôi nghĩ rằng Qt-Creator có thể giúp bạn. Có ít tính năng mới được thêm vào trong bản xem trước mới 2.0.

+0

2.0 là alpha, tôi đang tìm thứ gì đó ổn định hơn, nhưng 1.3.1 cũng đáng ngạc nhiên! 10x –

+0

Tôi đề nghị bạn thảo luận về yêu cầu của bạn trong diễn đàn chính thức hoặc đăng nó trong vấn đề Q (tại http://qt.gitorious.org/qt-creator) để nó có thể được đưa vào bản phát hành cuối cùng 2.0. – Sharique

+0

10q, tôi sẽ thử –

3

Tôi nghĩ rằng bạn có thể sử dụng Eclipse, chủ yếu là tôi nghĩ rằng nó sẽ có thể làm những gì bạn muốn, hoặc gần đủ. Ngoài ra here' s mô tả ngắn gọn về các tùy chọn tìm kiếm của nó.

+0

10x, tôi đang thử. Nếu tôi thắng trận OutOfMemory, nó có thể thực hiện công việc. –

1

Không và tôi không bao giờ nghĩ rằng chúng ta sẽ thấy hiện thực mà là tốt như những người trong C# hoặc Java biên tập viên vì hai lý do:

1) Preprocessor:

#ifdef _DEBUG 
#define FOO(x) C1(x).foo 
#else 
#define FOO(x) C2(x).foo 
#endif 

2) mẫu :

template<class C> void Method(C const& c) { 
    printf("%d", c.foo); 
} 

Trong cả hai trường hợp, khó xác định lớp nào thực sự được tham chiếu.

+0

Tôi nghĩ chúng ta sẽ thấy nó cuối cùng. Vì các công cụ như gccxml và các khái niệm như biên dịch liên tục trở nên chủ đạo hơn nên các tác giả biên tập sẽ dễ dàng hơn trong việc tích hợp các tìm kiếm đúng ngữ cảnh "đúng". Có nói rằng tôi không nghĩ rằng bất kỳ trình soạn thảo/quá trình như vậy hiện những điều "đúng" trên Linux được nêu ra. –

+0

Tôi nghĩ rằng tôi đã đọc trên blog của nhà phát triển Visual Studio về việc triển khai của họ và tại sao nó lại khó khăn như vậy. Nếu tôi nhớ lại chính xác, họ đã sử dụng trình biên dịch để điền vào chỉ mục của họ về các biểu tượng nhưng điều này là không đủ bởi vì việc phân tích cú pháp phải có lỗi rất khoan dung. Trong hầu hết các lần trong khi chỉnh sửa, mã của bạn không được tạo đúng C++. Điều này giữ cho tất cả các ngôn ngữ mặc dù. – Sebastian

0

Tôi chưa tự mình sử dụng KDevelop, nhưng tôi có ấn tượng rằng nó thực hiện phân tích cú pháp nghiêm trọng mã nguồn và có thể truy cập thông tin mã nguồn mặc dù trình chỉnh sửa. Nó có ít nhất một số tiên tiến code assistant functionality.

+0

Tất cả các IDE làm điều này. –

+0

Vâng, tôi hiểu rồi. Vì tôi không lập trình bằng C++ và đã không sử dụng bản thân KDevelop, tôi sợ phải bán nó. Ấn tượng của tôi về công cụ này bằng cách đọc các bài đăng trên blog về v.v. qua thời gian là nó rất tốt và trên trung bình về điều này. Nhưng tôi không biết. Do đó một "kiểm tra nó ra" câu trả lời. – hlovdal

0

Bạn phải thử KDevelop 4, không phải phiên bản cũ.

+0

Tôi đã xây dựng nó, tôi sẽ xem những gì tôi có thể làm với nó. –

0

Bạn có thể xem CodeBlocks [http://www.codeblocks.org/]. Tôi chỉ mới bắt đầu sử dụng nó, nhưng không được thử nghiệm cho yêu cầu của bạn. Vì vậy, tôi không yêu cầu 10X ngay bây giờ. Nhưng bạn có thể thử. Nguồn mở của nó và một nguồn tốt.

+0

Có, tôi đã thử nó trước đây, nhưng có vẻ như chỉ tìm kiếm văn bản khi tìm kiếm sự xuất hiện của một số mục, tôi đang tìm kiếm một cái gì đó với sự hiểu biết mã sâu hơn. Ngoại trừ điều này nó có vẻ thực sự tốt đẹp. –

1

Bạn đã bao giờ thử Netbeans chưa. Đóng đối thủ cạnh tranh của Eclipse nó có tất cả các tính năng của nó như phát triển web, ide ứng dụng di động, bổ sung cho hầu như cho phép bất cứ điều gì để làm. Tất cả điều này với CPU và bộ nhớ thấp hơn. Và nó giải quyết tên một cách chính xác.

+0

Tôi đã thử nó một lần và không thích nó, nhưng bây giờ nó có vẻ tốt hơn bằng cách nào đó. Và nó cho thấy việc sử dụng một cách chính xác. 10q, tôi sẽ thử. –

+0

Tôi cảm thấy rằng mọi người thường đẩy lùi chủ đề Swing ở cái nhìn đầu tiên nếu chính Netbeans. Nếu bạn thay đổi thành chủ đề gốc thì nó sẽ trông đẹp hơn. – Xolve

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