microsoft / microsoft/TypeScript

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

オープン
#35,113 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

Domain: LS: TSServer Domain: Performance Domain: tsc: --incremental Experimentation Needed In Discussion Needs Proposal Suggestion
主要言語
Go
スター
111k
フォーク
14.4k
平均マージ
1日 19時間
マージ済み PR(30日)
117

説明

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.

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

まず、tsserver がプロジェクトを開く方法と、.tsbuildinfo ファイルが生成・利用される方法を調査します。ファイルが変更されていない場合のプロジェクトの繰り返し読み込みを比較し、動作を変更せずにシリアライゼーションによってその作業を削減できるかを定義します。合意された設計があり、変更されていないプロジェクトで不要な読み込み、解析、依存関係の解決を回避できることを示す証拠が得られれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
typescript
領域
devtools
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。