Atom - JSBeautify 和 JSLint 不同意三元换行
Atom - JSBeautify and JSLint don't agree about ternary line breaking
我在 Atom 中安装了 JSLint 和 Atom-beautify(我认为这是 jsbeautify 的前端)。一般来说,这很漂亮,除了他们对三元运算符争论不休(我认为这是正确的术语)。所以如果我这样做
var theWindow = (thisObj instanceof Panel)? thisObj: new Window("palette", thisObj.scriptTitle, undefined, {resizeable: true});
JSBeautify 会让它看起来像:
var theWindow = (thisObj instanceof Panel)
? thisObj
: new Window("palette", thisObj.scriptTitle, undefined, {resizeable: true});
然后 JSLint 会抱怨错误的换行。
我查看了 JSBeautify 文档和 JSLint 文档,但我找不到任何选项来更改两者关于三元语法的行为。谁能告诉我如何更改它,这样我就不必在每次美化代码时都手动重新格式化所有三元函数?只要他们同意,我不介意哪个占上风。
你问的是 jslint
(“lint”),但使用的 linter 实际上是 jshint
(“hint”)
jshint
创建一个 .jshintrc
文件并添加以下规则以容忍多行字符串
{
"multistr": true
}
您还 可能 必须将 "laxbreak"
设置为 true,这可以容忍可能不安全的换行。查看 example 了解所有可用选项
jslint
同样,您可以创建一个 .jslintrc
文件来覆盖 JSLint. Use the example 的默认选项作为参考。
只需在 .jsbeautifyrc
中添加选项 "preserve_ternary_lines":true
三元行表达式将不再被破坏。
原子美化的相关变化:atom-beautify/pull/726
我在 Atom 中安装了 JSLint 和 Atom-beautify(我认为这是 jsbeautify 的前端)。一般来说,这很漂亮,除了他们对三元运算符争论不休(我认为这是正确的术语)。所以如果我这样做
var theWindow = (thisObj instanceof Panel)? thisObj: new Window("palette", thisObj.scriptTitle, undefined, {resizeable: true});
JSBeautify 会让它看起来像:
var theWindow = (thisObj instanceof Panel)
? thisObj
: new Window("palette", thisObj.scriptTitle, undefined, {resizeable: true});
然后 JSLint 会抱怨错误的换行。
我查看了 JSBeautify 文档和 JSLint 文档,但我找不到任何选项来更改两者关于三元语法的行为。谁能告诉我如何更改它,这样我就不必在每次美化代码时都手动重新格式化所有三元函数?只要他们同意,我不介意哪个占上风。
你问的是 jslint
(“lint”),但使用的 linter 实际上是 jshint
(“hint”)
jshint
创建一个 .jshintrc
文件并添加以下规则以容忍多行字符串
{
"multistr": true
}
您还 可能 必须将 "laxbreak"
设置为 true,这可以容忍可能不安全的换行。查看 example 了解所有可用选项
jslint
同样,您可以创建一个 .jslintrc
文件来覆盖 JSLint. Use the example 的默认选项作为参考。
只需在 .jsbeautifyrc
中添加选项 "preserve_ternary_lines":true
三元行表达式将不再被破坏。
原子美化的相关变化:atom-beautify/pull/726