如何在ESLint中将制表符大小定义为4?

18

我正在尝试在我的工作区中使用ESLint,并且我对缩进规则感到有些困惑。

以下是我的缩进设置规则:

"rules": {
  "indent": [
    "error", "tab"
  ]
}
文档仅说明有两个选项: "tab" 和正数表示空格数。我的问题是,如何定义制表符大小为4而不仅仅是使用“tab”?是否可以使用缩进规则?我正在使用VSCode。

你的意思是只允许使用制表符进行缩进,但在代码编辑器中查看时,制表符应该是4个空格的大小吗? - CertainPerformance
是的,我正在尝试手动将制表符大小定义为4个字符或更多。使用缩进规则可以实现吗? - Louie Albarico
我想使用带有制表符和首个参数的规则,就像这样:"indent": ["error", "tab", {"FunctionExpression": {"parameters": "first"}}]。但是 eslint 不知道我的制表符大小是4。有什么办法可以让它工作吗? - undefined
4个回答

14

你需要配置 Vscode 将制表符大小定义为 4。ESlint 用于显示错误,而不是将制表符转换为空格。

你可以在 ESlint 中使用以下规则,在意图与默认样式(4个空格)不同时显示错误:

{
    "indent": ["error", 4]
}

10
你所寻找的内容不可能作为 linter 设置。ESLint 对源文件(或纯文本)进行代码检查,所有源文件在制表位的位置都有一个制表符。不同制表长度没有单独的制表符。相反,每个显示制表符的应用程序自行决定如何显示制表符。VSCode 可能有一个设置,但是当您在其他编辑器或浏览器中打开文件时,另一个编辑器或浏览器可能选择以不同的方式显示它(例如占用 2 个空格或占用 8 个空格等)。
即使在浏览器中,同一制表符 的长度也可以有多个不同的设置,尽管它们来自同一个源文件。请参见 here 中相关讨论的示例。
不过,VSCode 确实有一个制表符的可视大小设置:转到 文件 -> 首选项 -> 制表符大小 并将其设置为 4:

enter image description here


2

即使我将选项卡大小设置为4,我仍然遇到了一些错误,eslint说我仍然应该使用四个空格。

   "rules": {
        "indent": ["error", { "allowIndentationTabs": true }]
     }

但是,在文档中使用的allowIndentationTabs https://eslint.org/docs/latest/rules/no-tabs#allowindentationtabs可以消除错误。同时将no-tabs设置为0也可以解决问题。

   "rules": {
        "indent": [4, "tab"],
        "no-tabs": 0,
     }

0

这似乎是一个与IDE有关的问题。可以告诉ESLint需要4个空格或制表符(一个转义字符'\t')的缩进。如果你想把制表符的空间定义为4个空格,那么你就必须更改你正在使用的任何代码编辑器中的设置。

如何自定义制表符转换因子?

这向您展示了如何在VSCode中进行设置。


谢谢您,我尝试将我的vscode缩进设置为4,它正常工作。 - Louie Albarico

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接