Max Brunsfeld
830f5336b9
Start work on wrapping lines without text shaping
2021-07-21 17:50:37 -07:00
Nathan Sobo
f169f8e358
Ensure that soft wrapped lines don't cause horizontal scrolling
2021-07-21 12:27:01 -06:00
Nathan Sobo
699e558db9
Remove logging
2021-07-21 11:21:13 -06:00
Antonio Scandurra
ef42d14b8c
Fix WrapMap::clip_point
at the end of a soft-wrapped line
...
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>
2021-07-21 18:32:32 +02:00
Antonio Scandurra
915c710f94
Ensure that we use the WrapMap
where appropriate in DisplayMap
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-07-21 18:04:58 +02:00
Antonio Scandurra
0875a86c69
Account for the impact of edits on tab expansion
...
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>
2021-07-21 17:18:15 +02:00
Antonio Scandurra
62ad97a728
Add randomized test for DisplayMap::buffer_rows
and fix logic errors
2021-07-21 14:45:25 +02:00
Max Brunsfeld
72fdd3fb9a
Start rendering highlighted text and line numbers via the wrap map
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-07-20 18:03:02 -07:00
Nathan Sobo
b513df3844
WIP
2021-07-20 17:22:03 -06:00
Max Brunsfeld
07e97e6cad
wip
2021-07-20 15:30:50 -07:00
Max Brunsfeld
d0fdc7b5e8
Get simple unit test passing for soft-wrap in DisplayMap
2021-07-20 15:22:11 -07:00
Max Brunsfeld
7832562675
Add WrapMap as a member of DisplayMap
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-07-20 13:03:59 -07:00
Max Brunsfeld
dbc8fc3bfa
Fix assertions in fold map test
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-07-20 11:43:10 -07:00
Max Brunsfeld
61397f2f2f
Avoid holding executor's state lock while parked
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-07-20 11:37:02 -07:00
Nathan Sobo
ee213696aa
Replace DeterministicExecutor::reset with forbid_parking
...
There's really no point calling reset if we plan on parking afterwards.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-07-20 12:28:04 -06:00
Nathan Sobo
64927abbc4
Allow DeterministicExecutor to park until forbid_parking is called
...
This allows us to perform async setup such as talking to the database.
2021-07-20 12:22:02 -06:00
Antonio Scandurra
f6263768b3
WIP: interpolate edits into snapshot coming from BackgroundWrapper
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-07-20 19:21:52 +02:00
Antonio Scandurra
3d3a14b650
Add DeterministicExecutor::block_on(duration, future)
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-07-20 19:20:50 +02:00
Antonio Scandurra
3d8c59af31
Implement Snapshot::interpolate
2021-07-20 14:25:56 +02:00
Antonio Scandurra
b66de06d0e
Ensure that WrapMap
's input lines match TabMap
's output lines
2021-07-20 11:30:00 +02:00
Antonio Scandurra
d0113a114c
Coalesce contiguous isomorphic transforms
2021-07-20 11:27:12 +02:00
Antonio Scandurra
3d845f81b1
Remove stray logging statements
2021-07-20 11:10:02 +02:00
Antonio Scandurra
39b73496cb
Make randomized tests pass with one operation
2021-07-20 11:06:17 +02:00
Nathan Sobo
3b77b011e2
Iterate on randomized wrapping test and fix some bugs
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-07-19 19:31:03 -06:00
Nathan Sobo
e0da3fd714
Get the randomized soft wrap test passing with no edits
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-07-19 18:37:29 -06:00
Nathan Sobo
2ce42ff6b6
Honor the last line when wrapping even if it doesn't end in \n
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-07-19 18:29:20 -06:00
Max Brunsfeld
f9e13f3429
Start work on WrapMap::chunks_at
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-07-19 16:23:56 -07:00
Max Brunsfeld
8e9a5e072d
Fix typo in Point::add_assign
2021-07-19 13:28:35 -07:00
Nathan Sobo
e193a660aa
WIP
2021-07-19 13:59:07 -06:00
Antonio Scandurra
5a33612f0f
WIP
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-07-19 19:34:41 +02:00
Antonio Scandurra
631a6a2f45
Re-enable wrap_map
module and fix compile errors
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-07-19 18:40:57 +02:00
Antonio Scandurra
359132ac19
Extract tab expansion logic into TabMap
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-07-19 17:29:03 +02:00
Antonio Scandurra
5a0d156cc5
Clarify input and output coordinates in display_map
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-07-19 16:18:20 +02:00
Antonio Scandurra
e00eafb3e8
WIP
2021-07-19 15:45:49 +02:00
Antonio Scandurra
9e448e694d
Add fold_map::Snapshot::text_summary_for_range
2021-07-19 12:25:27 +02:00
Antonio Scandurra
7a86a2c831
Change fold_map::Edit
to return DisplayOffset
s
...
This is needed so that we can translate display offsets into display
points in the `WrapMap`.
2021-07-19 11:34:47 +02:00
Antonio Scandurra
38dffc310f
Fix errors in WrapMap randomized tests
2021-07-19 10:48:13 +02:00
Max Brunsfeld
05e5e5f747
Implement FontSystem::wrap_line
2021-07-16 17:14:43 -07:00
Antonio Scandurra
9895c77f5c
WIP
2021-07-16 18:43:50 +02:00
Antonio Scandurra
1ba9e48271
Start on adding a randomized test for BackgroundWrapper
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-07-16 17:53:23 +02:00
Antonio Scandurra
8d3c3d7c46
Work on a randomized test for edits/snapshots returned by FoldMap
...
...and make it pass too!
2021-07-16 15:48:43 +02:00
Antonio Scandurra
831b620e51
Make writing/reading FoldMap
explicit so that we can retrieve edits
2021-07-16 13:49:38 +02:00
Antonio Scandurra
23b55d88d9
Pull snapshot history out of fold map
2021-07-16 13:49:02 +02:00
Max Brunsfeld
e0930ddc09
Add FoldMapSnapshot::edits_since_creation
2021-07-15 18:27:59 -07:00
Nathan Sobo
8b34deab58
Try to return edits from FoldMap::apply_edits
...
The goal is to describe how the fold map changed. Hopefully this is correct.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-07-15 15:08:18 -06:00
Nathan Sobo
2c9f730638
Give the FoldMap its own edit type that does not have deleted_lines
...
We want to use this struct to communicate about edits performed to the fold map itself, and it will be simpler if we don't have to communicate this data.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-07-15 14:19:58 -06:00
Max Brunsfeld
f561f33aa9
Move DisplayMap's reading methods to DisplayMapSnapshot
2021-07-15 11:48:57 -07:00
Nathan Sobo
2bde54971e
Move all FoldMap query methods to FoldMapSnapshot
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-07-15 11:36:24 -06:00
Nathan Sobo
09afba9251
Introduce buffer::Content<'a> struct to share logic with buffer::Snapshot
...
We want to move a bunch of methods on FoldMap to fold_map::Snapshot. This captures a buffer snapshot, and we'll need a bunch of methods that currently are on Buffer to also be implemented on buffer::Snapshot. This Content reference struct will be a good zero-cost place to store that logic.
2021-07-15 09:50:50 -06:00
Antonio Scandurra
be954872d0
Calculate an old_lines
range in Edits
iterator
2021-07-15 10:11:24 +02:00