Commit graph

1122 commits

Author SHA1 Message Date
Antonio Scandurra
416571e8e0 Fix wrap map randomized tests 2021-07-23 11:26:53 +02:00
Max Brunsfeld
d61f26d03e Get randomized test compiling against new WrapMap structure
It doesn't pass.
2021-07-22 20:45:14 -07:00
Max Brunsfeld
53fd3a1a92 Move LineWrapper test to line_wrapper.rs 2021-07-22 20:42:18 -07:00
Max Brunsfeld
5d22c6c4bd Start restructuring WrapMap with simpler concurrency
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-07-22 16:21:42 -07:00
Antonio Scandurra
80f13dd737 WIP 2021-07-22 18:31:01 +02:00
Antonio Scandurra
f7c8864995 Fix panic in WrapMap::highlighted_chunks_for_rows
Also, add a unit test for `DisplayMap` with syntax highlighting when
soft wrap is on.
2021-07-22 10:08:29 +02:00
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 DisplayOffsets
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