삼항 연산자 내에 object 사용 시 룰이 충돌하는 이슈가 있습니다.
Closed this issue · 10 comments
tubeheesu commented
const user = ctx.req
? {
name: ctx.req.headers['x-forwarded-user'],
email: ctx.req.headers['x-forwarded-email'],
groups: ctx.req.headers['x-forwarded-groups'],
}
: undefined
여기서 prettier랑 indent의 룰이 충돌하는 이슈가 있습니다.
prettier는 object 안에 있는 라인들 공백 두 칸 더 두라고 하고, indent는 그러면 안된다고 하네요... 어떻게 해결할까요?
boxersb commented
AS-IS Standard Rule
{
...
indent: [
'error',
2,
{
SwitchCase: 1,
VariableDeclarator: 1,
outerIIFEBody: 1,
MemberExpression: 1,
FunctionDeclaration: { parameters: 1, body: 1 },
FunctionExpression: { parameters: 1, body: 1 },
CallExpression: { arguments: 1 },
ArrayExpression: 1,
ObjectExpression: 1,
ImportDeclaration: 1,
flatTernaryExpressions: false,
ignoreComments: false,
},
],
...
}
prettier 설정은 특별한게 없고, "tabWidth": 2
이 규칙에 따라 indent 가 추가된것 같습니다.
boxersb commented
이 케이스는 예외로 보고 무시 처리하는게 어떨까 합니다. 세부적인 indent 를 조정하기 어려워 보이네요.
- 1️⃣ -
ignoredNodes: ['ConditionalExpression > ObjectExpression'],
룰 추가- 삼항연산자 하위의 객체 표현식에 대해서는 indent rule 을 무시한다.
로 의견 드립니다.
다른 의견 있으시면, 번호 추가해서 올려주시거나, 제 의견에 동의하신다면 :one:
번호 찍어주세요 ㅎ
cc) @tubeheesu
tubeheesu commented
1️⃣
넵 감사합니다! ㅎㅎ
inbeom commented
1️⃣ 일단은 Prettier에서 customize가 안 되는 영역일 듯 하여.. 다른 방법이 없거나 있더라도 엄청나게 어려워보이네요 ㅠ
yceffort commented
1️⃣
polysiya commented
1️⃣
steve-triple commented
1️⃣
appear commented
1️⃣ 🍏
boxersb commented
1 번으로 가결되었습니다~~~
boxersb commented
위 이슈 처럼 예외 케이스가 많아서, 아래와 같이 수정하겠습니다~
ignoredNodes: ['ConditionalExpression > *'],
3항 연산자 하위의 indent 에 대해서는 eslint 에서 무시한다.