2009-01-04 33 views
14

Tôi đang làm việc cho một công ty có nguyên tắc về kiểu mã hóa chặt chẽ nhưng không có công cụ tự động nào để xác thực chúng. Tôi đã nhìn xung quanh và các công cụ duy nhất tôi có thể tìm thấy là lint giống như các công cụ dường như nhằm xác minh mã nào làm và ngăn chặn các lỗi và không đảm bảo kiểu mã hóa là chính xác.Trình kiểm tra kiểu mã hóa cho C

Công cụ nào chúng ta nên sử dụng, nếu có?

LƯU Ý: Tôi đang tìm một thứ gì đó cho mã C, mặc dù một cái gì đó phù hợp với C++ cũng sẽ tốt.

Trả lời

12

Làm đẹp truyền thống indent, khả dụng trên mọi máy Unix. Phiên bản tìm thấy trên một số là GNU indent, có thể được biên dịch và cài đặt trên mọi máy. GNU thụt lề có thể đọc một bộ quy tắc từ tập tin ~/.indent.pro, ví dụ:

--original --dont-format-first-column-comments --no-blank-lines-after-commas --parameter-indentation 8 --indent-level 8 --line-length 85 --no-space-after-parentheses --no-comment-delimiters-on-blank-lines 

Vì vậy, chỉ cần chạy thụt lề trước khi cam kết bảo đảm tính thống nhất của bài trình bày. Nếu bạn muốn thực thi, hãy xác định móc trước khi cam kết trong Hệ thống kiểm soát phiên bản bạn sử dụng, sẽ chạy thụt lề và từ chối cam kết nếu phiên bản cam kết khác với những gì thụt lề tạo ra.

10

Bạn đang tìm kiếm 'code beautifier'. Uncrustify là miễn phí.

Bạn chỉ phải có khả năng mô tả kiểu mã hóa của mình trong tệp cấu hình và nó sẽ đảm bảo mọi tệp phù hợp với kiểu được mô tả.

2

Tôi sẽ tranh luận về việc sử dụng công cụ chính thức tại đây. Việc thực thi tốt nhất các tiêu chuẩn mã hóa là áp lực ngang hàng. Áp lực ngang hàng và sự tôn trọng lẫn nhau giữa các thành viên trong nhóm là những yếu tố then chốt của môi trường xây dựng đội ngũ .... không khác biệt là việc quấy rối bản chất tốt là cần thiết khi ai đó vô tình "phá vỡ xây dựng", v.v.

Đánh giá các thành viên mới hơn 'mã là một phần quan trọng của quá trình học tập và tích hợp vào nhóm và học các tiêu chuẩn mã hóa, vv. Nếu tiêu chuẩn mã hóa quá phức tạp hoặc tinh tế để được chọn theo cách này, thay vì tìm kiếm một công cụ để xác nhận tiêu chuẩn, bạn nên tìm kiếm một tiêu chuẩn mã hóa mới.

+1

Đó là lý do tại sao tôi đề xuất thay thế một trình làm đẹp sẽ nhận các tệp theo phong cách yêu cầu thay vì trình xác thực sẽ không tốt chút nào. Bạn có thể mã theo bất kỳ kiểu nào bạn muốn và trước khi đăng ký, bạn chạy trình làm đẹp sẽ đảm bảo phù hợp với yêu cầu. –

+0

@Vinko - Bạn có thể làm điều đó và có thể hữu ích cho những người đóng góp thời gian hoặc nhập mã bên ngoài, nhưng đối với thành viên nhóm toàn thời gian, tôi thực sự tin rằng bạn muốn tất cả họ "suy nghĩ về mã hóa chuẩn" để bạn lợi ích thực sự của việc có một tiêu chuẩn mã hóa ở nơi đầu tiên. –

+1

Không thể đồng ý hơn. Việc xem xét mã và làm rõ các tiêu chuẩn mã hóa nên làm công việc. – Ilya

4

Có (hoặc) nhiều công cụ cho việc này. Một trong những lâu đời nhất là cb (C beautifier) ​​đó là xung quanh trong các phiên bản cổ xưa của Unix - ý nghĩa, trong trường hợp này, phiên bản 7 Unix:

CB (1) UNIX Programmer’s Manual CB (1) 

NAME 
    cb – C program beautifier 
SYNOPSIS 
    cb 
DESCRIPTION 
    Cb places a copy of the C program from the standard input on the standard 
    output with spacing and indentation that displays the structure of the 
    program. 
BUGS 

GNU indent là một beastie bao la phức tạp hơn và cấu hình. Cũng có những công cụ thương mại. Ví dụ: Abraxas Software cung cấp công cụ CodeCheck; chúng tôi sử dụng một thời gian ngắn vào giữa những năm 90, nhưng những thay đổi mà chúng tôi muốn chúng tôi thực hiện là (rất cần thiết, nhưng) quá xâm phạm để quản lý.

9

AStyle làm những gì bạn muốn:

Artistic Style là một mã nguồn indenter, định dạng, và beautifier cho C, C++, C# và các ngôn ngữ lập trình Java.

Có một AStyle Plugin có sẵn cho Eclipse.

Eclipse cũng có trình định dạng mã, nhưng tôi không chắc liệu nó có hoạt động trong CDT hay không.

2

Từ một câu hỏi tương tự: Vera++: "Vera ++ có thể được sử dụng để tìm các kiểu vi phạm và quy tắc mã hóa." Có một phiên bản cộng đồng miễn phí và "tất cả các quy tắc của nó được thực hiện dưới dạng (Tcl) tập lệnh có thể được người dùng sửa đổi hoặc thêm".

-7

Vui lòng sử dụng VIM và tận hưởng sự thoải mái. Bạn có thể làm bất cứ điều gì liên quan đến lập trình nguồn bằng các lệnh đơn giản. Ngoài ra bạn có thể làm cho VIM đáng tin cậy hơn và mạnh mẽ hơn bằng cách chỉnh sửa tập tin .vimrc. Trợ giúp trong đó sẽ giúp bạn rất nhiều.

/renjith g

+2

Bạn đang bị downvoted vì câu hỏi ban đầu là về mã máy in đẹp hoặc một bộ kiểm tra kiểu. Và bạn đang trả lời bằng trình soạn thảo văn bản. Sự khác biệt là trình chỉnh sửa văn bản là nơi bạn viết mã và trình kiểm tra kiểu kiểm tra định dạng mã nguồn độc lập với trình chỉnh sửa văn bản đã được sử dụng. ví dụ: đây là trình kiểm tra kiểu: https://en.wikipedia.org/wiki/Checkstyle – elviejo79

2

Hãy thử UniversalIndentGUI, mà là một wrapper GUI xung quanh indenters phổ biến/beautifiers như Uncrustify, Artistic Style, và GNU Indent. GUI và chức năng xem trước trực tiếp của nó giúp bạn dễ dàng thử các thụt đầu dòng khác nhau và khi bạn đã tìm thấy một trình cắm và cấu hình bạn thích, bạn có thể xuất cấu hình hoặc thậm chí xuất khẩu một tập lệnh shell. Tuyệt vời nếu bạn vẫn đang cố gắng.

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