Skip to content

Consider some way of serializing open projects in tsserver, potentially leveraging .tsbuildinfo files #35113

Open
@DanielRosenwasser

Description

@DanielRosenwasser

One thing that users often hit is that file navigation might trigger opening an entire project. Opening an entire project involves

  1. File loading
  2. Scanning/parsing
  3. Resolving dependencies
  4. Keep repeating file loading on dependencies until no new files are found

This is a lot of work! If a user jumps back and forth from this file, it can re-trigger this work even if nothing has changed!

A .tsbuildinfo file is used to save time on cold compiler invocations doing this exact set of work, and to reduce work when something actually has changed. It would be interesting to see whether generating a .tsbuildinfo file after project loads could help cut down on this work.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Domain: --incrementalThe issue relates to incremental compilationDomain: PerformanceReports of unusually slow behaviorDomain: TSServerIssues related to the TSServerExperimentation NeededSomeone needs to try this out to see what happensIn DiscussionNot yet reached consensusNeeds ProposalThis issue needs a plan that clarifies the finer details of how it could be implemented.SuggestionAn idea for TypeScript

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions