在Sublime Text 2中禁用或覆盖JSLint选项

时间:2013-05-03 14:07:02

标签: sublimetext2 jslint sublime-jslint

我在Sublime Text 2中安装了JSLint插件。但是我不同意JSLint强加的一些规则,特别是这个错误在循环中声明变量。

Move 'var' declarations to the top of the function.
    for (var i = 0; i < 100; i++) { // Line 12, Pos 10

我的问题是如何在Sublime Text 2上的JSLint中覆盖或禁用此规则。

2 个答案:

答案 0 :(得分:3)

如果您有Darren DeRidder's plugin(Sublime Text有两个JSLint插件),则执行this

  

您可以在首选项下设置任何jslint的选项 - &gt;包   设置 - &gt; jslint - &gt;高级建筑设置。看到   http://www.jslint.com/lint.html#options获取选项列表   JSLint的。

现在,您将很难在循环中禁用 var声明。您可以将vars option变为true,但随后JSLint将允许您在页面的任何位置拥有任意数量的var声明。这可能是一种误导性的做法,因为JavaScript有些人称之为Function Scope"hoists" declarations to the top of their scope

编辑:唉,我骗了。 vars只允许多个var声明语句,但它们仍然必须位于函数的顶部。它只允许你这样做:

function fnTest() {
  var i;
  var j;  // Oh boy! Two var statements at the TOP of the same function
  for (i = 0; i < 100; i++) {
    j++;
  }
}

而不是

function fnTest() {
  var j;
  for (var i = 0; i < 100; i++) { // still can't do this.
    j++;
  }
}

虽然我很惊讶Crockford不允许你这样做,我认为你是out of luck,而且必须使用JSHint代替(似乎有一个Sublime插件{{3}虽然我还没用过它。)

答案 1 :(得分:0)

@chanHXC使用sublime-jslint中的新默认选项跳过var声明警告。