Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature request] ESLint plugin #183

Open
Fordi opened this issue Oct 22, 2020 · 4 comments
Open

[Feature request] ESLint plugin #183

Fordi opened this issue Oct 22, 2020 · 4 comments
Labels
enhancement New feature or request good first issue Good for newcomers

Comments

@Fordi
Copy link

Fordi commented Oct 22, 2020

For the most part this just works, but functions within tagged markup get weird indent assertions, e.g.,

        ${collection.map((item) => {
          const { prop1, prop2 } = workWith(item);  // eslint: expected indentation of 4 but found 10 (indent)
          return html`  // eslint: expected indentation of 4 but found 10 (indent)
            <${Widget} prop1=${prop1} prop2=${prop2} />
          `;
        })} // eslint: expected indentation of 2 but found 8 (indent)

So I'd request an eslint plugin where you could specify the name of the template function, and make the linter comprehend it, or directions to the resources I'd need to implement one.

@Fordi
Copy link
Author

Fordi commented Oct 22, 2020

I found eslint-plugin-lit, which works, albeit by disabling lit/binding-positions (👍 ) and lit/no-invalid-html (😢 ). It doesn't fix the indent comprehension, though. If anyone has any further tips, I'd love to hear 'em.

@Fordi Fordi closed this as completed Oct 22, 2020
@Fordi Fordi reopened this Oct 22, 2020
@developit
Copy link
Owner

developit commented Feb 5, 2021

Starting from the Lit plugin is a great idea - I'd begun hacking on something, but quickly realized it was going to take a lot more work than I had time to prototype:
https://gist.github.com/developit/61d009284458ad4d757991e1756b7f41

@developit developit added enhancement New feature or request good first issue Good for newcomers labels Feb 5, 2021
@ruffin--
Copy link

ruffin-- commented Apr 4, 2022

It looks like spread attributes are also a show-stopping issue with eslint.

TIL:

Spread props: <div ...${props}> instead of <div {...props}>

@GGabrielDev
Copy link

This is kinda old, I know, but there's no progress with this? Would be nice to integrate EsLint to my project knowing that it will work out nicely with HTM.

Sadly, I'm still not savvy enough to write my own EsLint plugin :(

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

4 participants