2011-10-22 18 views
42

clang Trình biên dịch C++ tuyên bố được xây dựng, trong số những thứ khác, tích hợp IDE tốt hơn bằng cách cung cấp API cho IDE để sử dụng cho các tác vụ như phân tích mã. Vì vậy, có bất kỳ IDE C++ nào tốt sử dụng clang để cung cấp các tính năng như làm nổi bật ngữ nghĩa, tái cấu trúc và tìm và hiển thị các lỗi ngữ nghĩa trong thời gian thực không? Không.C++ IDE đa nền tảng dựa trên clang?

Tôi đã sử dụng CDT Eclipse, nhưng trình phân tích cú pháp C++ của nó đầy những khiếm khuyết khiến cho IDE báo cáo rất nhiều lỗi giả mạo gây phiền nhiễu trong mã. Tôi muốn có một IDE báo cáo một lỗi nếu và chỉ khi trình biên dịch sẽ báo cáo cùng một lỗi, do đó tôi quan tâm đến một IDE được xây dựng trên bên trong của trình biên dịch.

tôi chủ yếu quan tâm đến nền tảng IDE, mặc dù tôi sẽ không quan tâm biết về những single-nền tảng cho Windows hoặc Linux (để không Xcode), miễn là họ FOSS (một lý do tại sao không phải Xcode).

Trả lời

4

bạn đã thử clang complete chưa?

nếu bạn punk rock, sau đó vim là đủ ide;)

tôi thường xuyên làm việc với xcode như vậy ... thực sự không thể chia sẻ kinh nghiệm trực tiếp, nhưng tôi biết về sự tồn tại của nó.

+0

@lurscher bạn được chào đón - tôi cũng sẽ cố gắng cung cấp cho nó một phát bắn vào cuối tuần này. – justin

15

Qt Creator là căn cứ đang phân tích thế hệ tiếp theo của họ và chức năng liên quan trên Clang:

http://blog.qt.digia.com/blog/2011/10/19/qt-creator-and-clang/

Trông rất, rất hứa hẹn!

+0

Rất thú vị! Vừa mới công bố vài ngày trước. – HighCommander4

+1

HighCommander4: nó giúp nếu bạn đang ở trong danh sách gửi thư Clang ;-) – rubenvb

+0

Tôi đã hy vọng sẽ có nhiều hơn ... nhưng tôi đoán clang là một dự án khá trẻ, và nhiều hơn nữa sẽ đi cùng trong thời gian. Trong thời gian này, câu trả lời được chấp nhận :) – HighCommander4

3

Dường như CodeLite v3.5 starts hỗ trợ Clang nguyên bản. Tuy nhiên tôi đã không tìm thấy là nó có thể thiết lập LLVM như phụ trợ.

+0

Và có vẻ như (10 phút thử nghiệm) để làm việc ... – g2mk

+0

tuyệt vời !! xin vui lòng không kiềm chế bản thân bạn từ việc cập nhật câu trả lời này nếu bạn gặp phải vấn đề – lurscher

1

Không FOSS, nhưng JetBrains (của IDEA và ReSharper nổi tiếng) đang xây dựng ra sản phẩm AppCode của họ vào một full C++ IDE supporting Win/Linux/Mac and using clang.

Yes, really.

+0

Bạn có bất kỳ bằng chứng nào cho thấy đây là dựa trên clang, ngoài việc được tích hợp với máy phân tích tĩnh không? – HighCommander4

+0

Tôi không biết liệu nó có sử dụng clang hay defers đến nền tảng toolchain cho việc xây dựng thực tế, nhưng đó không phải là những gì câu hỏi ban đầu của bạn là về. Tôi chắc chắn nó sẽ sử dụng clang cho tất cả mọi thứ khác, mặc dù - đó là những gì kêu vang được thiết kế cho, và nó không phải là nếu có bất kỳ lựa chọn thay thế khả thi. – mrec

+0

Tôi đã đề cập đến các tính năng như hoàn thành mã, điều hướng mã, tô sáng cú pháp và tái cấu trúc đang được hỗ trợ bởi clang. Đây không phải là trường hợp của bất kỳ IDE C++ nào khác mà tôi biết về - Eclipse, Code :: Blocks, CodeLite, NetBeans, KDevelop, Qt Creator - ngoại trừ XCode và trình tạo Qt Creator tiếp theo mà @rubenvb đang nói đến, vì vậy đó là tại sao tôi hỏi. – HighCommander4

3

KDevelop hiện có hỗ trợ c và c + dựa trên clang, bao gồm phân tích ngữ nghĩa và tự động hoàn thành. Nó là chủ yếu cho Linux nhưng (tính đến tháng 10 năm 2016) có một phiên bản beta ra cho windows và mac là tốt.

Đối với các emacs có irony-modertags cung cấp các tính năng như tự động hoàn thành, khi kiểm tra lỗi bay và nhảy tới biểu tượng. Khi kết hợp với cmake-ide, chúng là những công cụ rất mạnh mẽ và một công cụ linh hoạt trong các emacs có thể mang lại hiệu quả cao trong môi trường này.

3

Phát triển mới có liên quan trong lĩnh vực này trong dự án Language Server Protocol (LSP), nhằm mục đích trở thành API không cho phép ngôn ngữ cho phép người chỉnh sửa/IDE tách khỏi các chương trình phụ trợ cung cấp thông tin/phân tích mã.

Có công việc đang diễn ra để tạo chương trình phụ trợ C++ dựa trên tiếng kêu gọi là Clangd.

Cũng có công việc đang diễn ra trên several editors/IDEs để hỗ trợ LSP làm khách hàng.

Sau khi triển khai chương trình phụ trợ hoàn thành, tất cả các trình chỉnh sửa hỗ trợ LSP sẽ về nguyên tắc có thể tận dụng các khả năng của clang như được hiển thị thông qua Clangd.