GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — [WIP] Open bigger set of configured projects when opening composite project for operations that operate over multiple projects like rename by sheetalkamat · Pull Request #28261 · microsoft/TypeScript

Conversation

@sheetalkamat

@sheetalkamat Sheetal Nandi (sheetalkamat) commented Oct 31, 2018 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member
  • Add tests
  • Bigger project opening set means that much longer time to do the operation. So we need some optimizers for this. There are multiple options here and one or many can be chosen.
    • Need some sort of indicator if the operation is exposing something that's outside scope of the project. (eg renaming local function in checker shouldn't need to open this so that we are delaying this as much as possible)
    • May be send more locations as event (eg in find all references if not rename can handle that)
  • We need to have way to unload projects (with some sort of priority based) when the operation might cause too many projects resulting in it running out of memory. This could probably be different PR but then we need some sort of flag to opt out of opening that bigger set so that people have a way to work with the set.
  • need to have sourceMap decoders per declaration file and cache them based on sourcefile or map file changes to avoid corruption and impact on memory. This can be separate PR but that needs to go first. There is wip branch for this.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

hediet reacted with thumbs up emoji
All reactions
  • 👍 1 reaction
@sheetalkamat Sheetal Nandi (sheetalkamat) mentioned this pull request Oct 31, 2018
Fix source map decoding to handle case sensitivity and --out option #28273
Merged
@sheetalkamat
Sheetal Nandi (sheetalkamat) force-pushed the compositeConfigProjects branch from 5a9d949 to 490927a Compare November 1, 2018 15:46
@sheetalkamat
Sheetal Nandi (sheetalkamat) force-pushed the compositeConfigProjects branch from 490927a to 6018678 Compare November 9, 2018 00:05
Sheetal Nandi (sheetalkamat) added 4 commits November 12, 2018 10:27
@sheetalkamat
Create ancestor projects when opening file
6fe1c79
@sheetalkamat
Create ancestor projects for composite projects till projectRoot but …
4b88a67
…load them and their references when doing all project wide operation like rename
@sheetalkamat
When iterating to load configured project, create copy.
8854037
@sheetalkamat
Create ancestor project if load is pending or if project is composite
e422dae
@sheetalkamat
Sheetal Nandi (sheetalkamat) force-pushed the compositeConfigProjects branch from 6018678 to e422dae Compare November 12, 2018 18:45
Sheetal Nandi (sheetalkamat) added 4 commits November 12, 2018 11:02
@sheetalkamat
Update Public API
367112b
@sheetalkamat
Test case to verify that rename loads ancestor project and references…
170b69b
… causing all the locations to be renamed
@sheetalkamat
Keep whole set of original projects, referenced projects and projects…
d37e822
… with open ref alive
@sheetalkamat
Merge branch 'master' into compositeConfigProjects
1e249a0
@RyanCavanaugh Ryan Cavanaugh (RyanCavanaugh) assigned Sheetal Nandi (sheetalkamat) Jan 24, 2019
@sheetalkamat Sheetal Nandi (sheetalkamat) mentioned this pull request Apr 11, 2019
Find references even when TypeScript sub-projects not yet open #30823
Closed
@bajtos

Miroslav Bajtoš (bajtos) commented Jun 25, 2019

Copy link
Copy Markdown

Re-posting my comment #30823 (comment):

Personally, I will happily trade off performance for "Find all references" and "Rename symbol" that actually works.

In https://github.com/strongloop/loopback-next, we have configured TypeScript to treat the entire monorepo as a single project, so that we can use "Find all references" and "Rename symbol".
We also don't use declaration maps, therefore cross-project imports are resolved against the original TypeScript sources, not via .d.ts and .d.ts.map files.

This setup works pretty well for us and I am not aware of any performance or memory limitation when working in VS Code. If the performance of #28261 is similar, then I would happily accept it.

Why we want to migrate from our single-project setup to project references when VS Code experience is good now? The problem is that our build times are super slow. We are building each monorepo package independently, because each package has its own outDir, e.g. packages/{name}/dist. Because cross-project imports are resolved against the original TypeScript sources, I suspect that the compiler is repeatedly parsing each TypeScript source file again and again for each top-level package depending on it.

Anyhow. Is there a way how to finish #28261 sooner, possibly without performance optimizations and perhaps behind a new feature flag?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@sheetalkamat

Sheetal Nandi (sheetalkamat) commented Jun 25, 2019

Copy link
Copy Markdown
Member Author

Miroslav Bajtoš (@bajtos) Thank you for your feedback. I am currently investigating #32028 and looking to improve project references editing experience and you might be interested to give that a try as well.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@bajtos

Miroslav Bajtoš (bajtos) commented Jun 28, 2019

Copy link
Copy Markdown

Thanks, #32028 looks very promising! I'll give it a try and let you know about my experience.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@sheetalkamat
Create ancestor projects when opening file
4daccf6
This was referenced Sep 6, 2019
Project references are not picked up (1) microsoft/vscode#80423
Closed
Project references are not picked up (2) microsoft/vscode#80438
Closed
For editing experience, use source instead of .d.ts files from project references #32028
Merged
@sheetalkamat
Merge branch 'master' into compositeConfigProjects
68c8547
@sheetalkamat Sheetal Nandi (sheetalkamat) mentioned this pull request Sep 6, 2019
Open bigger set of configured projects when opening composite project for operations that operate over multiple projects like rename #33287
Merged
3 tasks done
@jb4e Jacob Edelstein (jb4e) mentioned this pull request Sep 10, 2019
[TypeScript] Find All References does not find references in modules within same workspace microsoft/vscode#80087
Closed
@sheetalkamat Sheetal Nandi (sheetalkamat) closed this Sep 26, 2019
@sheetalkamat
Sheetal Nandi (sheetalkamat) deleted the compositeConfigProjects branch September 26, 2019 18:38
@sheetalkamat

Sheetal Nandi (sheetalkamat) commented Sep 26, 2019

Copy link
Copy Markdown
Member Author

Closing in favor of #33287

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@microsoft Microsoft (microsoft) locked as resolved and limited conversation to collaborators Oct 21, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Reviewers

No reviews

Uh oh!

There was an error while loading. Please reload this page.

Assignees

@sheetalkamat Sheetal Nandi (sheetalkamat)

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

2 participants

@sheetalkamat @bajtos
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.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.