Open
Description
I wasn't sure if this was a bug report or rule change, so posting here (didn't see a Discussion section in this repo).
The problem you want to solve.
I have 'no-multi-spaces': [ 'warn', { ignoreEOLComments: true }]
in my general eslint config, which allows multiple spaces for comments:
const meaning = 42; // obviously
But when using JS inside Vue templates, this rule isn't respected:
<div
:class="{
'is-good': isGood(thing) // hopefully
}"
>
Warning: Multiple spaces found before '// hopefully'.
Your take on the correct solution to problem.
It would be ideal if vue/no-multi-spaces
were able to use the global setting and ignore comments in this case. Alternatively, could vue/no-multi-spaces
support the same ignoreEOLComments
option?
Additional context
I tried using the ignoreProperties
option, but that only appears to consider spaces after the property name up to the ':
'
Activity
FloEdelmann commentedon Jan 10, 2025
That is not possible; the rule only knows its own options.
That would need to be implemented which is certainly possible. PR welcome 🙂
dsl101 commentedon Jan 17, 2025
OK, I'm happy to take a stab at that. But looking at the innards of the existing rule, it doesn't look like it's trivial to detect comments at the end of the line. For example, this content:
is parsed as the following sequence of tokens:
The comment is of type '
Line
'. Similarly, if the template is:then the token containing the comment is of type '
Block
'. It seems like ignoring spaces when aLine
orBlock
is the last token on a line might have a lot of unintended side-effects. Any thoughts on that?