Tôi đang sử dụng công cụ phân tích mã tĩnh OCLint cho mục tiêu-C và muốn tìm hiểu cách tùy chỉnh quy tắc? Các quy tắc được biểu diễn bằng tập hợp các tệp dylib.Tùy chỉnh quy tắc OCLint
Trả lời
Câu trả lời, như với rất nhiều thứ, là nó phụ thuộc.
Nếu bạn muốn viết quy tắc tùy chỉnh của riêng mình, bạn sẽ cần phải viết xuống và viết quy tắc của riêng bạn, trong C++ ở trên cùng của mã nguồn hiện tại. Hãy xem thư mục
oclint-rules/rules
,size/LongLineRule.cpp
là một quy tắc đơn giản để bắt đầu. Bạn sẽ cần phải biên dịch lại, v.v.Nếu bạn muốn thay đổi thông số của quy tắc hiện tại, bạn cần thêm thông số dòng lệnh
-rc=<rulename>=<value>
vào cuộc gọi đếnoclint
. Ví dụ: nếu bạn muốn quy tắc đường dài chỉ kích hoạt cho các dòng dài hơn 150 ký tự, bạn cần phải thêm-rc=LONG_LINE=150
.
Tôi không có đủ kiên nhẫn để liệt kê ra tất cả các thông số khác nhau mà bạn có thể thay đổi. Danh sách các quy tắc ở đây là http://docs.oclint.org/en/dev/rules/index.html và danh sách các quy tắc dựa trên ngưỡng tại đây http://docs.oclint.org/en/dev/customizing/rules.html nhưng không có danh sách các giá trị được chấp nhận và tôi không biết liệu hai URL này có bao gồm tất cả các quy tắc hay không. Bạn có thể phải xem xét mã nguồn cho từng quy tắc để tìm hiểu cách hoạt động của quy tắc.
Nếu bạn đang sử dụng kịch bản Xcode bạn nên sử dụng oclint_args
như thế này:
oclint_args oclint-json biên dịch-cơ sở dữ liệu "-rc LONG_LINE = 150" | sed 's/(.. \ m {1,2}: [0-9]: [0-9] *:)/\ 1 cảnh báo: /'
trong đó mẫu tôi m thay đổi các quy tắc của LONG_LINE đến 150 ký tự
thay qua cấu hình như các đối số (xem câu trả lời Jon Boydell của), bạn cũng có thể tạo một file YML tên .oclint
trong thư mục dự án.
Dưới đây là một tập tin ví dụ mà tùy một vài điều:
rules:
- LongLine
disable-rules:
rulePaths:
- /etc/rules
rule-configurations:
- key: LONG_LINE
value: 20
output: filename
report-type: xml
max-priority-1: 10
max-priority-2: 20
max-priority-3: 30
enable-clang-static-analyzer: false
- 1. Đặt với quy tắc tùy chỉnh
- 2. CMake: Cách thêm quy tắc biên dịch chung tùy chỉnh?
- 3. cakephp Thông báo quy tắc xác thực tùy chỉnh
- 4. Quy tắc tùy chỉnh cho phpcs sử dụng PHPStorm
- 5. Tạo quy tắc xác thực mã tùy chỉnh
- 6. Quy tắc xác thực email tùy chỉnh mã vạch
- 7. Tạo cú pháp vim tùy chỉnh: Tôi có thể đặt các quy tắc tự động thụt lề tùy chỉnh không?
- 8. make: quy tắc gọi quy tắc
- 9. Nơi đặt các quy tắc CSS trong điều khiển tùy chỉnh ASCX?
- 10. Có quy tắc StyleCop tùy chỉnh nào dựa trên Tiêu chuẩn mã hóa IDesign không?
- 11. Quy tắc tùy chỉnh Lint: cách xử lý nút sửa chữa, nhấp vào
- 12. Aptana PHP Formatter - sử dụng tùy chỉnh quy tắc định dạng
- 13. quy tắc tùy chỉnh fxcop - Tránh có nhiều hơn một lớp cho mỗi tệp
- 14. FxCop: quy tắc tùy chỉnh để kiểm tra giá trị thông tin lắp ráp
- 15. Thêm trường tùy chỉnh đơn giản vào Django - Cách viết quy tắc nội tại phía nam
- 16. Có cách nào để thêm quy tắc định dạng tùy chỉnh vào netbeans không?
- 17. Cách thêm quy tắc xác thực tùy chỉnh vào mô hình trong Sencha Touch
- 18. Quy tắc phân tích mã tĩnh tùy chỉnh trong FxCop hoặc StyleCop?
- 19. jquery-validate - addMethod - cách áp dụng quy tắc tùy chỉnh tham chiếu hai hộp văn bản?
- 20. Chuyển đổi markdown thành Rd hoặc xác định quy tắc chuyển đổi đánh dấu tùy chỉnh?
- 21. Động cơ Ruby & Quy tắc
- 22. Xcode 5.0: Quy tắc Thêm quy tắc của Apple đã biến mất ở đâu?
- 23. Quy tắc JUnit TemporaryFolder tùy ý ném một IOException
- 24. Công cụ quy tắc - Cách lưu trữ các quy tắc để tránh phân tích cú pháp khi chỉnh sửa?
- 25. easyphp .htaccess quy tắc
- 26. Quy tắc mẫu NMake
- 27. Tắt quy tắc StyleCop
- 28. Quy tắc JUnit TemporaryFolder
- 29. Tắt quy tắc CSS
- 30. Quy tắc động .htaccess