I am using VScode with latest version of Eslint. It is my first time using a linter.
I keep getting this linting error when using a tab as indentation:
severity: 'Error' message: 'Expected indentation of 1 tab but found 4 spaces. (indent)' at: '4,5' source: 'eslint'
Here is my config file
{
"env": {
"browser": true,
"commonjs": true,
"es6": true,
"node": true
},
"extends": "eslint:recommended",
"rules": {
"indent": [
"error",
"tab"
],
"linebreak-style": [
"error",
"unix"
],
"quotes": [
"error",
"single"
],
"semi": [
"error",
"always"
]
}
}
I don't understand why this error is being thrown as I indicated tabs for indentation. It is obviously calculating my 1 tab as 4 spaced but I don't understand why it is doing that when I am pressing tab for indentation.
update: The reason is because in VScode using ctrl + shift + i to beautify code will actually use spaces and not tabs. That is the reason.
答案 0 :(得分:5)
在VSCODE中,转到菜单:
File / Preferences / Settings
然后Text Editor
(或仅在搜索设置框中搜索“标签”)
然后从以下设置中删除刻度:
Insert Spaces
Detect Indentation
还可以使用默认的VSCode键盘快捷键自动设置文档格式:
Shift + Alt + f
答案 1 :(得分:4)
答案 2 :(得分:2)
尝试在 .eslintrc.js 文件中禁用缩进
class paddle(object):
def __init__(self, x, y, width, height):
self.rect = pygame.Rect(x, y, width, height)
def draw(self, win):
pygame.draw.rect(win, (255,255,255), self.rect)
class ball(object):
def __init__(self, x, y, side):
self.rect = pygame.Rect(x, y, side, side)
def draw(self, win):
pygame.draw.rect(win, (255,255,255), self.rect)
这对我来说很好
答案 3 :(得分:2)
我遇到了类似的问题并使用此代码解决了:
rules: {
...
indent: [2, "tab"],
"no-tabs": 0,
...
}
答案 4 :(得分:1)
我使用VScode解决了这个问题。您所要做的就是将鼠标悬停在出现错误的部分上。
然后...
答案 5 :(得分:0)
如果您同时使用 eslint
和 prettier
,请不要通过在规则对象中使用 {'indent': 'off'}
来禁用缩进。为了保证你的代码风格的一致性,你必须使用这个规则。
解决方案:
这个问题很可能是由于 eslint 和 prettier 冲突而发生的。
尝试在 .eslintrc
文件中使用不同的 eslint 选项。
如果您将鼠标悬停在 vsCode 中的错误行上,您可以在错误描述的末尾单击该链接以查看 eslint 文档。
例如,如果 indent
文档在此链接中:
对我来说,通过添加这一行来解决错误(对于三元表达式):
...
rules: {
indent: [
'error',
2,
{
SwitchCase: 1,
ignoredNodes: ['ConditionalExpression'], <-- I add this line
},
],
...
对于三元表达式,您也可以尝试使用 flatTernaryExpressions
或 offsetTernaryExpressions
。
答案 6 :(得分:0)
我遇到了同样的问题,我用文档解决了我的问题。除了禁用 eslint 缩进,您可以按照文档中所示添加它。
简单:
rules: {
indent: ['error', 2, { "MemberExpression": 1 }],
}
答案 7 :(得分:0)
您可以使用
自动修复问题npm run lint -- --fix