2013-04-16 39 views
7

Tôi đang làm việc trên một dự án sử dụng một hướng dẫn kiểu dáng cụ thể cho javascript. Ví dụ: một câu lệnh if/else sẽ trông giống như sau:Trình kích hoạt mã Javascript hoặc trình kiểm tra

if(condition){ 
    // Bla bla 
} 
else { 
    // Another bla bla 
} 

Điều tôi đang tìm kiếm là công cụ cho phép tôi kiểm tra cú pháp của tệp theo một phong cách cụ thể. JSHint/JSLint không tập trung vào kiểu, Closure Linter không thể tùy chỉnh và Uncrustify định dạng lại tệp mà không cần cảnh báo (và không chính thức hỗ trợ Javascript).

Sản lượng tốt nhất tôi có thể nhận được với chương trình này sẽ là sản phẩm từ Closure Linter nhưng có quy tắc tùy chỉnh. Các câu trả lời cho this similar question đều sai.

Công cụ như vậy có tồn tại không?

+1

Tôi nghĩ JSLint chủ yếu là về phong cách, mặc dù không phải là phong cách thể hiện trong ví dụ của bạn – user2264587

Trả lời

8

Nếu bạn vẫn đang tìm kiếm câu trả lời, bạn có thể thử một dự án có tên là jscs.
Bạn có thể tùy chỉnh cách mã của bạn trông như thế nào trong hầu hết mọi khía cạnh và những thứ bạn chưa thể phát triển (ví dụ như khoảng cách đối số của hàm).

Mọi thứ đều có thể tùy chỉnh thông qua tệp .jscsrc; sau đây là một ví dụ về một trong những dự án của tôi sử dụng nó:

{ 
    "requireCurlyBraces":     [ "if", "else", "for", "while", "do", "switch" ], 
    "requireSpaceAfterKeywords":   [ "if", "else", "for", "while", "do", "switch" ], 
    "disallowSpaceAfterKeywords":   [], 
    "requireSpacesInsideObjectBrackets": "all", 
    "disallowSpaceAfterObjectKeys":   true, 
    "disallowImplicitTypeConversion":  [], 
    "disallowKeywords":      [ "with" ], 
    // ... 
} 

Nếu bạn đang sử dụng Grunt, cảm thấy tự do để thử nhiệm vụ của riêng mình cho công ty cổ phần - đó là grunt-jscs-checker.

BTW, the jQuery teamis using jscs :)

+1

Đây là cực kỳ hữu ích, cảm ơn bạn! –

+0

Hãy xem bản chỉnh sửa tôi đã thực hiện. Có lẽ đó là điều bạn quan tâm! – gustavohenke

+0

Chúng tôi có thể sử dụng jscs cho các tệp CoffeeScript không? – ankakusu

0

Không có công cụ nào phù hợp với mong muốn của bạn. JSLint đang áp dụng các quy tắc kiểu Crockford lời khuyên (và thực thi), JSHint linh hoạt hơn, trong đó bạn có thể chọn các quy tắc phù hợp hơn với kiểu mã hóa của bạn, nhưng không đủ linh hoạt để thực thi bất kỳ kiểu nào.

Thông thường, bạn định cấu hình trình chỉnh sửa của mình để giúp bạn thụt lề và thực hiện các dòng mới giống như cách bạn muốn mã của mình. Và sử dụng các linter để xem ra nơi nó quan trọng (một số quy tắc whitespacing, làm thế nào để sử dụng parens ...). Vai trò của linter là nhiều hơn một bảo vệ chống lại những sai lầm ngu ngốc mà từ đó ngôn ngữ của bạn không ngăn cản bạn.

1

Có vẻ như bạn đang thực sự sau JavaScript beautifier. Kiểm tra có thể được thực hiện thông qua "chạy nó trên các tập tin và xem nếu họ thay đổi" được hỗ trợ bởi kiểm soát phiên bản.

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