Skip to content
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

Re-engineer the wrapping algorithm & more #88405

Merged
merged 36 commits into from
Jan 10, 2020
Merged

Re-engineer the wrapping algorithm & more #88405

merged 36 commits into from
Jan 10, 2020

Conversation

alexdima
Copy link
Member

@alexdima alexdima commented Jan 10, 2020

Fixes #21196

  • removes wordWrapBreakObtrusiveCharacters from the wrapping algorithm.
  • makes Tab characters have widths that are not influenced by wrapping points
  • introduces an incremental implementation of the wrapping algorithm which uses the previous wrapping points
  • introduces discrete times for when wrapping computation occurs (uses requests and finalize)
  • faster implementation of PieceTreeBase.getLinesContent()
  • introduces LineNumberMapper to handle model-view line mapping queries in the ViewModel (moving away from the PrefixSumComputer)
  • avoids an unnecessary layout in indentGuides.ts

Resizing times using a large file (40000 lines, 5MB): wrapping-large.zip

Before

image

After

image

@alexdima alexdima self-assigned this Jan 10, 2020
@alexdima alexdima added this to the January 2020 milestone Jan 10, 2020
@alexdima alexdima merged commit 222b31e into master Jan 10, 2020
@alexdima alexdima deleted the alex/wrapping branch January 10, 2020 08:32
@github-actions github-actions bot locked and limited conversation to collaborators Mar 27, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Speed up wrapping points computation
1 participant