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
Medium-term roadmap #28
Comments
@Stupremee On the topic of test262, thinking more about it, i would rather make a tester crate which is run by CI to generate a coverage report, having it run each thing as a test is unrealistic and will make CI always fail for the near future. |
Yep that's the problem I wanted to avoid. As soon as we have 100% coverage we can run it in CI. |
Yeah then we can simply have rslint_parser call the tester and expect 100% |
I think we should also put all of the crates in a |
Actually, i dont think a new crate is needed, we should just add a |
I can add test262 support in the next few days. |
That would be great! |
Just out of curiosity, why is TypeScript parsing unlikely? Is it technically difficult or something? |
I do not mean typescript wont be supported, it 100% will be, i just meant its unlikely to be done in the next few months because its a lot of parser work and testing and essential analyzers and good js support must come first |
Ah I see, that sounds great. |
The basic rslint lsp has been merged, ill count that as complete, its not production ready but its great for debugging the linter and we will improve it later on 🙂 |
Do you think it's a good moment to move all crates to a |
Haha yeah, its gotten a bit big, xtask will need a couple of changes |
I ran test262 using the parser, and it appears the results are better than i initially thought they would be, it only ran 18k tests for some odd reason, ill have to figure out why, but here are the initial results after fixing a couple of glaring issues:
There is a very weird bug which occurs sometimes when a comment has a unicode char followed by a period which arises in the LosslessSyntaxTree. I am not quite sure what causes it yet since it is very obscure:
There are also a couple more glaring issues:
infinitely recurses Edit: down to ~150 errors woohoo |
The more that i think about it, the more is start to think TS support should come first, it would open up the linter for a ton of users, and we would not be left with a huge burden of integrating TS into some analyzers. Therefore i think i will actively focus on both sorting out parser issues with test262 as well as TS support, that way once the parser is mostly done we can focus on bigger pieces of linting like scope analysis, autofix, regex, etc. If you would like to work on autofix mention it though since i have a lot of already made code for scope analysis and autofix 🙂 |
Update: I have now merged the TypeScript PR, i am sure there might be some bugs here and there but it passes the entire test suite taken from swc. For now i will be focusing mostly on polishing the lsp, getting it to work with config and such. Then i'll release 0.3 with everything 🎉 |
Thank you for typescript support! I was going to try and build my own native linter, but it seems someone already had the same idea. |
This issue is meant to serve as a roadmap for the next few months to coordinate and discuss what should be done first, as well as give some updates on things i am working on.
First off, the things i am actively working on:
Another person also mentioned they made an LSP and a VSC extension for rslint on the rust discord to me, so that is exciting and i will be awaiting the PR for that.
The issue when it comes to deciding what to work on is the fact that i would like to hold off on making more rules until we have all the features that rules should have, which includes autofix. This is vital to the long term of the project, if we rush rules then we end up with buggy rules and a lot of work to do once we add more features for rules. It seems to me that deno_lint ended up suffering from this issue greatly, since they added a lot of rules really fast, which caused bugs to not be caught, see denoland/deno_lint#330, and now they must add documentation, options, and suggestions to every rule. This is why i would rather hold off on adding more.
I am undecided when it comes to order of features, i believe parser tests should be done relatively soon, since the parser is the heart of the linter.
Here is a list of features i would like to get done in the next few months:
90% compliance (i don't expect full compliance to be achieved soon, there are many weird productions not allowed in ecma2021)100% seems achievableThe text was updated successfully, but these errors were encountered: