Commit log

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

830f533 Start work on wrapping lines without text shaping

Max Brunsfeld created

f169f8e Ensure that soft wrapped lines don't cause horizontal scrolling

Nathan Sobo created

699e558 Remove logging

Nathan Sobo created

ef42d14 Fix `WrapMap::clip_point` at the end of a soft-wrapped line

Click to expand commit body
If that's the case and `Bias` is `Left` we clip to the last
character of the soft-wrapped line.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

915c710 Ensure that we use the `WrapMap` where appropriate in `DisplayMap`

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

Antonio Scandurra and Nathan Sobo created

0875a86 Account for the impact of edits on tab expansion

Click to expand commit body
Tab characters are expanded differently based on the column on which
they appear, which edits can affect. Thus, `TabMap::sync` will now
expand edits to the first tab that appears on the line in which the edit
occurred.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

62ad97a Add randomized test for `DisplayMap::buffer_rows` and fix logic errors

Antonio Scandurra created

72fdd3f Start rendering highlighted text and line numbers via the wrap map

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

Max Brunsfeld and Nathan Sobo created

b513df3 WIP

Nathan Sobo created

07e97e6 wip

Max Brunsfeld created

d0fdc7b Get simple unit test passing for soft-wrap in DisplayMap

Max Brunsfeld created

7832562 Add WrapMap as a member of DisplayMap

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

Max Brunsfeld and Nathan Sobo created

dbc8fc3 Fix assertions in fold map test

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

Max Brunsfeld and Nathan Sobo created