8

我正在开发一个使用特定 JavaScript 样式指南的项目。例如,if/else 语句如下所示:

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

我正在寻找的是一个工具,它可以让我根据特定的样式指南检查文件的语法。JSHint / JSLint不关注样式,Closure Linter不可定制,Uncrustify 会在没有警告的情况下重新格式化文件(并且不正式支持 Javascript)。

我能用这个程序得到的最好的输出是来自 Closure Linter 但有自定义规则的输出。这个类似问题的答案都是错误的。

这样的工具存在吗?

4

3 回答 3

10

如果您仍在寻找答案,可以尝试一个名为jscs的项目。
您可以自定义代码在几乎任何方面的外观,以及尚未开发的那些(例如函数参数间距)。

一切都可以通过.jscsrc文件进行定制;以下是我使用它的一个项目的示例:

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

如果您正在使用 Grunt,请随意尝试我自己的 jscs 任务 - grunt-jscs-checker

顺便说一句,jQuery 团队 正在使用 jscs :)

于 2013-12-04T00:54:18.900 回答
1

听起来你真的很喜欢JavaScript 美化器。可以通过版本控制支持的“在文件上运行它并查看它们是否更改”来完成检查。

于 2013-04-17T20:19:08.337 回答
0

没有符合您需求的工具。JSLint 正在应用 Crockford 建议(并强制执行)的样式规则,JSHint 更灵活,因为您可以选择更适合您的编码样式的规则,但不够灵活以强制执行任何类型的样式。

通常,您配置您的编辑器,以便它可以帮助您以您喜欢的代码的方式缩进和执行换行符。并使用 linter 来注意重要的地方(一些空白规则,如何使用括号……)。linter 的作用更多的是防止您的语言无法阻止您犯的愚蠢错误。

于 2013-04-17T19:03:18.330 回答