This repository has been archived by the owner on Aug 31, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 666
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Parser conformance results on ubuntu-latestjs/262
jsx/babel
symbols/microsoft
ts/babel
ts/microsoft
|
Deploying with Cloudflare Pages
|
MichaReiser
approved these changes
Jun 16, 2022
leops
approved these changes
Jun 16, 2022
ematipico
approved these changes
Jun 16, 2022
xunilrj
force-pushed
the
feature/rule-context
branch
from
June 16, 2022 15:44
af7e251
to
acf1dce
Compare
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR for this discussion: #2603
The heart of the PR is the type RuleContext. It acts as a simple façade for everything that we want to offer to lint rules. What we offer varies by language. To see an example look at JsRuleContext, which specifies which methods we allow to be called directly on the context (like extension methods), and impl LanguageSpecificServiceBag for JsLanguage which specifies which services are stored inside the context for each language.
The RuleContextServiceBag is typed and not a usual ServiceLocator to avoid all get(...) methods returning Option<...>. This comes with a little bit of complexity but also guarantees that we will not see any runtime errors when linting.
Another nice side effect is that lint rules for other languages will not compile until someone specifies which services these languages need.
Rules now receive just the context as a parameter