-
Notifications
You must be signed in to change notification settings - Fork 12.6k
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
RFC: Extensibility model #9038
Closed
Closed
RFC: Extensibility model #9038
Changes from all commits
Commits
Show all changes
62 commits
Select commit
Hold shift + click to select a range
8b3aeb8
Functional extension loading & lint passes
weswigham 8583037
Dont look for extensions in a namespace
weswigham a7ae427
Language service extensions and tests
weswigham a03e465
Fix comments - make behavior align with comments
weswigham 4eee39d
accept -> stop, add more overloads to error
weswigham bff6b05
Merge branch 'extensibility-model' into language-service-extensions
weswigham f4384f6
address @rbuckton and @mhegazy PR comments
weswigham b874ad9
Use friendlier field name, pass options in property bag
weswigham d716dc9
Add readonly modifier
weswigham 1433411
Merge branch 'master' into extensibility-model
weswigham 0f9a816
Fix new lints
weswigham 0e9650c
Implement field access per @rbuckton
weswigham dec0bf8
Fix mock host
weswigham 06dbfb7
Merge branch 'master' into extensibility-model
weswigham 80d89fb
Merge branch 'extensibility-model' into language-service-extensions
weswigham 67f6e26
Add overloads supporting additional shortnames to lint errors
weswigham 2c15bb3
Extract extension cache into new file (so it can be shared/persisted)
weswigham 02834c4
Merge branch 'extensibility-model' into language-service-extensions
weswigham 257e939
Fix lints, identify lifetimeissue
weswigham 9425485
remove excess deep equal overload
weswigham c2f1cc5
Backport all code related to making extensions run in an LS context
weswigham 3480c7c
Merge branch 'extensibility-model' into language-service-extensions
weswigham adccddf
Remove whitespace/trailing comma changes
weswigham af9c1e1
Fix lint
weswigham 908d9e7
Add missing members to type
weswigham a4762a8
Add extension profiling functions
weswigham 3036843
Rejigger references to make scripts compiler
weswigham 69f0473
Add compiler option to enable extension profiling
weswigham 680a75b
Add profiling for lint extensions
weswigham 19846c3
Encapsulate all the extensions types in the extensions file, ref it f…
weswigham 8283881
Write a test runner for discovering & running extensions tests, remov…
weswigham 4fd46c8
Do away with the Extension diagnostic category
weswigham 7eca070
First set of baselines for the new test runner
weswigham ab90cba
Fix error baselines, add cache persistence to the LS
weswigham 8a972d9
Fix lints, remove ref to extensionAPI unit, add perf trace test
weswigham dad1bbe
Remove TS from extension error baselines, maybe deterministic profili…
weswigham 9405dd3
Make extension profiling be a two-level process
weswigham 5c97262
Always print global perf buckets (if any are present)
weswigham 9f10c74
Merge branch 'master' into extensibility-model
weswigham 625e3cf
Resolve paths early - stop considering all files in cache as root files
weswigham ed12a9c
Do not retain programs from compiler extension compilations
weswigham a011aec
Merge branch 'language-service-extensions' into extensibility-model
weswigham b4fc76c
Actually accept the baselines for the LS extension tests
weswigham 1582d10
FourSlash tests for ExtensionRunner basic functionality
weswigham b5b7817
Semicolon.
weswigham 84c683e
Add meaningful fourslash test covering much of the LS extension surface
weswigham ee23587
Merge branch 'master' into extensibility-model
weswigham 5d2618b
Fix comments by @sandersn
weswigham 67063cc
Convert kind anotations to actual kind overrides
weswigham 50735ae
Add after visit, more error overloads, more robust error handling
weswigham 732da00
Merge branch 'master' into extensibility-model
weswigham eab3c5a
Feedback from pr
weswigham 86fcfb4
Reexpose startsWith and endsWith
weswigham e173bc6
PR feedback
weswigham 4676ca2
Merge branch 'master' into extensibility-model
weswigham b8ca16a
Use new performance framework, remove extra compiler option, traces
weswigham 563d71f
Merge branch 'master' into extensibility-model
weswigham ae66e99
Cleanup performLintPass from feedback from @sandersn
weswigham 842d3c3
Fix typo
weswigham 805bc2f
Merge branch 'master' into extensibility-model
weswigham 40b35c4
Fix baselines with new AST, semantic lint test uses type instead of node
weswigham e5c342a
Make filters always run
weswigham File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
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
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
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do we really need all the features that
deepEqual
provides for its single use? I feel like it would be safer to put a utility in services that does only the equality that is needed there, and only generalise it as we find new uses for it. #ResolvedThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Extension arguments objects can be literally any object, and that's what's getting compared. I think the only thing this handles which I shouldn't (provided good input from any language service wrappers or other API consumers) need to worry about for that is circularly referential objects. (Which is why all the shortcomings listed in the comment were OK)