Commit log

6efadd1 Reuse FontCache across randomized tests

Click to expand commit body
Co-Authored-By: Antonio Scandurra <me@as-cii.com>

Nathan Sobo and Antonio Scandurra created

a1991a7 Report the end of the current row rather than the start of the next

Click to expand commit body
Co-Authored-By: Antonio Scandurra <me@as-cii.com>

Nathan Sobo and Antonio Scandurra created

82ed33a Fix bugs in {prev,next}_row_boundary

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Max Brunsfeld and Nathan Sobo created

05f8a61 Add a bias parameter when converting buffer points to fold points

Max Brunsfeld created

c1808d0 Add randomized test for DisplayMap

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Max Brunsfeld and Nathan Sobo created

576cabe WIP

Antonio Scandurra created

8ba8fa5 Parse randomized test env vars at runtime

Click to expand commit body
Co-Authored-By: Antonio Scandurra <me@as-cii.com>

Max Brunsfeld and Antonio Scandurra created

c1a9a20 Setup randomized test harness in `gpui::test`

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>

Antonio Scandurra , Nathan Sobo , and Max Brunsfeld created

b0f3778 Allow passing `iterations` and `seed` as env variables

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

42e2b9f Move buffer rows test into `WrapMap` randomized test

Click to expand commit body
Also, change the way we assert on buffer rows to reflect the fact
that we will still show the line as soft-wrapped when there is a
fold that spans multiple buffer rows.

Antonio Scandurra created

d6eb6d3 Use a uniform distribution for generating random characters

Antonio Scandurra created

169a298 Expand edits correctly when there are folds or multi-byte chars

Click to expand commit body
Previously, we were mistakenly adding `tab_size` to the extent
produced by the fold edits but that could cause the edit to land on
a multi-byte character (like a fold or an emoji).

In practice, we only need to expand the edit's extent by 1 because
we are operating in the fold coordinate space and all we need to
convey is that we want to encapsulate the first tab next to whatever
edit has just occurred in the `FoldMap`.

Antonio Scandurra created

e7d1af2 Add fold mutations to randomized test for `WrapMap`

Antonio Scandurra created

6131929 Don't render line numbers for soft-wrapped line segments

Nathan Sobo created

4718717 Clip left when moving cursor to end of line

Click to expand commit body
This ensures we stay on the same line when the current display line ends with a soft wrap.

Nathan Sobo created

b14721f Clip left when moving vertically

Nathan Sobo created

7a5f1b5 Preserve logical scroll position when wrap width changes

Nathan Sobo created

3d07be3 Remove unnecessary `Mutex` from scroll-related state in `Editor`

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

694ab0d Fix outdated test assertions after changing wrapping behavior

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

164cafa Preserve indentation when soft-wrapping

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

2f1a5c4 Use `LineWrapper` in a thread-local fashion

Click to expand commit body
This removes the critical section from a hot code path, yielding a 2x
speedup to rewrap an entire file.

Antonio Scandurra created

2dcf04c Avoid allocation in LineWrapper::wrap_line

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Max Brunsfeld and Nathan Sobo created

59bb662 :racehorse: Avoid SumTree::update_last when wrapping lines

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Max Brunsfeld and Nathan Sobo created

8de8c67 Fix panic when fuzzy-matching on a `Worktree` that contains no files

Click to expand commit body
As part of our work on the deterministic executor, in c4e37dc we fixed a
bug that occurred when there were more CPUs than paths to fuzzy-match
on.

However, that introduced another bug that caused Zed to panic when
trying to calculate how many paths should be fuzzy-matched by each
available worker thread for worktrees that didn't contain any file.

This commit bails out early in `fuzzy::match_paths` if the vector of
paths to search is empty.

Antonio Scandurra created

dd6820e Avoid crashes from trying to lay out too large of lines

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Max Brunsfeld and Nathan Sobo created

9d14ca8 Store pending edits until applying them to a non-interpolated snapshot

Antonio Scandurra created

1ef7474 Change wrap width in randomized test and fix discovered bugs

Antonio Scandurra created

0586a89 Fix unused variable warning

Antonio Scandurra created

b647e3e Make `WrapMap` and `DisplayMap` models

Click to expand commit body
This removes the need for a lock around in `WrapMap` and also removes
`WrapMap::notifications` because gpui already has a standard way of
notifying when a model updates.

Antonio Scandurra created

b04c574 Set snapshot in the foreground after recomputing it in the background

Antonio Scandurra created

623d574 Fix mistakenly moved line in beginning/end of line editor tests

Antonio Scandurra created

0004dc6 Remove remaining I/O nomenclature for `DisplayMap` coordinates

Antonio Scandurra created

58054c6 Fix panic due to incorrectly calculating editor text size in layout

Antonio Scandurra created

61b5d66 Eliminate input/output nomenclature from fold_map

Click to expand commit body
Instead, just use FoldPoint, FoldOffset, etc. We don't need the naming to be general because we know exactly which layer we're building on at each layer of the DisplayMap.

Nathan Sobo created

da50576 Fix remaining errors and warnings

Nathan Sobo created

9edc8b9 WIP

Nathan Sobo created

3bf47be WIP

Nathan Sobo created

f81f043 WIP

Nathan Sobo created

11285f3 Pass a MutableAppContext to Element::layout and ::dispatch_event

Click to expand commit body
We need to mutate the app in these cases to relay layout state, so this just makes things easier. We won't be able to perform layout in parallel but it's questionable whether we'll ever actually do that. If we do, we can revisit.

Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>

Nathan Sobo , Antonio Scandurra , and Max Brunsfeld created

61f4580 Optimize `Buffer::edits_since` when the version hasn't changed

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

14fcc26 Don't insert empty isomorphic transforms when interpolating

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

a8db064 Get wrapping randomized test passing with wrap width as small as 0

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

174a546 Expand tabs correctly in `TabMap`'s highlighted chunks iterator

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

502f54a Don't poll foreground futures during `DeterministicExecutor::block_on`

Antonio Scandurra created

416571e Fix wrap map randomized tests

Antonio Scandurra created

d61f26d Get randomized test compiling against new WrapMap structure

Click to expand commit body
It doesn't pass.

Max Brunsfeld created

53fd3a1 Move LineWrapper test to line_wrapper.rs

Max Brunsfeld created

5d22c6c Start restructuring WrapMap with simpler concurrency

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Max Brunsfeld and Nathan Sobo created

80f13dd WIP

Antonio Scandurra created

f7c8864 Fix panic in `WrapMap::highlighted_chunks_for_rows`

Click to expand commit body
Also, add a unit test for `DisplayMap` with syntax highlighting when
soft wrap is on.

Antonio Scandurra created