2011-03-09 33 views
12

Chúng tôi muốn có thể định dạng lại khối C++/chức năng mã trực tiếp từ Visual Studio IDE, để nhà phát triển dễ dàng đảm bảo rằng mã mới họ chèn tuân thủ nguyên tắc định dạng của chúng tôi.Nâng cao (C++) Mã nguồn Định dạng lại bằng Visual Studio?

Tôi đã tìm thấy Artistic Style tool, bao gồm rất nhiều tính năng chúng tôi cần. Tuy nhiên, nó chỉ có thể làm việc trên toàn bộ tập tin từ CLI, vì vậy nó không phải là rất hữu ích cho những gì chúng tôi muốn sử dụng nó. (Định dạng toàn bộ tập tin chắc chắn không bao giờ là gì chúng ta muốn [a].)

Visual Studio (2005) có các tính năng tự động định dạng giới hạn, nhưng AFAICS, hầu hết là về thụt lề chính xác, thiếu một chút. Vì vậy, câu hỏi của tôi là nếu có bất kỳ công cụ có thể làm định dạng nâng cao trên một lựa chọn từ IDE VS, hoặc có thể nếu có một plugin VS IDE làm việc sử dụng AStyle? Không.

Chỉnh sửa: Câu hỏi được liên kết để đề xuất công cụ - ProFactor's StyleManager - có bất kỳ công cụ nào khác như thế này không?

Lưu ý [a]: Định dạng lại toàn bộ tệp hoặc toàn bộ cây dự án chỉ hữu ích cho các dự án cá nhân hoặc cho mã kiểm tra ban đầu, IMHO. Đối với một dự án nhóm (lớn), việc định dạng lại chăn sẽ làm hỏng lịch sử thay đổi của các tệp hoặc các dòng trong các tệp, khiến cho việc theo dõi ai đã thay đổi nội dung nào khó khăn hơn nhiều.

+1

Tôi personnaly chạy 'astyle' định kỳ trên toàn bộ dự án. Điều này giúp duy trì một phong cách nhất quán trên các tệp nguồn. –

+0

http://stackoverflow.com/questions/1663794/visual-studio-unmanaged-c-code-formatter/1663828#1663828 –

+2

Đối với ghi chú của bạn [a]: Tôi chưa từng gặp phải vấn đề như vậy. Các cơ chế khác được sử dụng bởi hầu hết các hệ thống kiểm soát phiên bản (ít nhất là trên Linux) là khoan dung để di chuyển các dòng. Và astyle có thể được cấu hình không thay đổi tem thời gian của các tập tin mà nó chạm vào, để nó không vít hệ thống xây dựng. Miễn là bạn chạy astyle trước khi cam kết (hoặc trước khi xây dựng) mỗi lần, hoàn toàn không có vấn đề gì. –

Trả lời

2

Tôi tìm thấy một bài viết trên blog rằng mô tả làm thế nào để tích hợp một định dạng mã bên ngoài với Visual Studio: Per-Project Code Formatting in Visual Studio

(. ..) Sau đó, bạn có thể định cấu hình (các) IDE của mình thành rằng các lệnh định dạng mặc định của chúng là thay vì sử dụng Uncrustify. tệp giải pháp, sau đó là dòng lệnh

-c $(SolutionDir)uncrustify.cfg --no-backup "$(ItemPath)"

sẽ định dạng lại tệp nguồn hiện tại. Sau đó, bạn có thể chỉ định ánh xạ bàn phím (hoặc gán lại cho Edit.FormatDocument, như tôi) để truy cập nhanh .

Tôi chưa thử, nhưng có vẻ như đun sôi xuống để định cấu hình trình định dạng của bạn (ví dụ: AStlye/Uncrustify) làm Công cụ bên ngoài trong Visual Studio để có thể gọi nó trên tệp nguồn từ IDE.

Vẫn chỉ cho mỗi tệp, nhưng có vẻ như một trong những ý tưởng tốt hơn tôi đã tìm thấy.

1

Có vẻ đã có câu trả lời cho rằng https://stackoverflow.com/questions/1663794/visual-studio-unmanaged-c-code-formatter

Ngoài ra. Tôi biết trong KDevelop và code :: block họ có các trình cải cách mã C++ tốt đẹp và bạn có thể tùy chỉnh phong cách rất hiệu quả. Tôi thích cả hai .. nhưng mã :: khối tiếp tục đâm vào tôi lúc này :(

+0

Tôi đã đề cập câu hỏi/câu trả lời này trong liên kết nhận xét và chỉnh sửa câu hỏi trước câu trả lời của bạn. –

0

Câu hỏi có hơi cũ, nhưng vấn đề thì không.

Tôi sử dụng mã số VS macro để chạy mã C++ thông qua không được sửa lỗi và kích hoạt bằng phím tắt (ALT + SHIFT + U, tùy chọn của tôi).Macro chạy không được xác thực trên tài liệu trình soạn thảo hiện đang hoạt động, gửi đầu ra đến tệp tạm thời, và sau đó thay thế văn bản của trình soạn thảo hiện tại bằng đầu ra của không được xác nhận.

Rõ ràng luồng công việc này thay đổi tất cả mã trong tệp, nhưng việc sử dụng thường xuyên phím tắt sẽ giữ cho mã của bạn đẹp và sạch sẽ. Có thể hiểu rằng macro được kích hoạt tự động khi n% văn bản của trình soạn thảo thay đổi? Tôi sẽ để lại cho EnvDTE rất kinh nghiệm.

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