Commit graph

406 commits

Author SHA1 Message Date
Antonio Scandurra
861893b7b6 Autoscroll vertically to the newest selection on SelectNext
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-25 16:02:39 +01:00
Antonio Scandurra
10b3fae2c3 Implement SelectNext
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-25 15:44:06 +01:00
Antonio Scandurra
543ebb7e4e Adjust padding on sign in prompt in titlebar 2021-11-25 10:37:30 +01:00
Antonio Scandurra
0d8c68ae1d Replace signed out silhouette with a "Sign in" label 2021-11-25 10:34:03 +01:00
Nathan Sobo
f7532c785e Render the current line, column, and line count in go to line dialog 2021-11-24 16:52:18 -07:00
Nathan Sobo
a07fe3aa58 Improve styling of the go to line modal 2021-11-24 16:16:29 -07:00
Nathan Sobo
1e49b56626 Restore scroll position and selections when cancelling go-to-line
But preserve the line when confirming.
2021-11-24 15:43:48 -07:00
Nathan Sobo
8c0541b455 Fix warnings 2021-11-24 15:24:27 -07:00
Nathan Sobo
0854976691 Highlight the selected line when typing in the go to line dialog 2021-11-24 15:23:45 -07:00
Antonio Scandurra
53a7da9d3f Allow centering selections when requesting autoscroll
We use this new capability in the "go to line" modal.
2021-11-24 19:50:47 +01:00
Antonio Scandurra
cea8107242 WIP: Start on go to line 2021-11-24 18:45:36 +01:00
Antonio Scandurra
afdac15572 Move integration test up into the zed crate 2021-11-24 17:39:15 +01:00
Antonio Scandurra
e88d3bb97e Invert dependency between editor and workspace
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-24 17:07:16 +01:00
Antonio Scandurra
2cf44d30b7 🔥
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-24 16:17:41 +01:00
Antonio Scandurra
03bd6d6c33 Pull up diagnostic and cursor position status bar items creation 2021-11-24 16:04:24 +01:00
Antonio Scandurra
9bb195e177 Introduce "entry openers" but still register editors in workspace 2021-11-24 15:18:15 +01:00
Antonio Scandurra
a7186c643f Skip over block lines when building columnar selections 2021-11-24 10:40:06 +01:00
Antonio Scandurra
3a9b69077e Reverse columnar selections when head moves before tail's column 2021-11-24 10:37:35 +01:00
Antonio Scandurra
d19d3bbe45 Calculate an overshoot when mousing to build columnar selections 2021-11-24 10:28:32 +01:00
Nathan Sobo
2b9db911c7 WIP 2021-11-24 09:18:41 +01:00
Nathan Sobo
e0bf5337ca
Merge pull request #244 from zed-industries/mouse-selections
Improve support for selecting text via the mouse
2021-11-23 18:11:04 -07:00
Max Brunsfeld
294769be35 Add outdent command, fix indent bugs 2021-11-23 16:44:05 -08:00
Nathan Sobo
bfecdb7bc0 Remove newest selection when adding a selection with a click count > 1
This prevents selections added in earlier clicks from being rendered under the pending selection.
2021-11-23 16:30:33 -07:00
Nathan Sobo
73afb29b04 Use alt modifier instead of cmd to add selections 2021-11-23 16:23:30 -07:00
Nathan Sobo
9e651ee127 Simplify handling of shift-click to extend selections 2021-11-23 16:03:21 -07:00
Nathan Sobo
d969f38850 Implement shift-click to extend the newest selection 2021-11-23 15:42:21 -07:00
Max Brunsfeld
f0db748ba1 Implement toggle-comments 2021-11-23 14:13:28 -08:00
Max Brunsfeld
091ed9ab47 Maximize new windows 2021-11-23 10:24:31 -08:00
Antonio Scandurra
63089badf1 Simulate line-wise selection when clicking on the gutter 2021-11-23 19:14:39 +01:00
Antonio Scandurra
7a79df7a24 Implement line-wise selection 2021-11-23 19:10:15 +01:00
Antonio Scandurra
bcf38e6bb5 Implement word-wise mouse selection
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-23 18:50:17 +01:00
Max Brunsfeld
a0287920e5 Remove cargo-bundle from dev-dependencies
The cargo-bundle crate is installed separately in the
'bundle' script via 'cargo install'.
2021-11-23 09:25:22 -08:00
Antonio Scandurra
3269b9925f WIP: Start integrating SelectMode and movement::surrounding_word 2021-11-23 17:04:58 +01:00
Antonio Scandurra
a0ea5b38a0 Add a new movement::surrounding_word function 2021-11-23 17:04:37 +01:00
Antonio Scandurra
005a7076af Expose a count field on Event::LeftMouseDown 2021-11-23 16:18:17 +01:00
Antonio Scandurra
6b7ee10287 Retry flaky test_soft_wraps 5 times before giving up
We have other tests that rely on loading fonts that intermittently
fail on CI and for which we used the same mitigation.
2021-11-23 11:25:04 +01:00
Max Brunsfeld
4002be882f Clear sprite cache when scale factor changes 2021-11-22 16:47:51 -08:00
Max Brunsfeld
23fbeaf978 Include scale factor in glyph cache keys 2021-11-22 16:37:01 -08:00
Max Brunsfeld
66e27b7420
Merge pull request #233 from zed-industries/fix-split-selection-into-lines
Place the cursor at end of first line when splitting selections into lines
2021-11-22 16:25:19 -08:00
Max Brunsfeld
ce71ed3959 Adjust assertion in test for split_selection_into_lines 2021-11-22 16:19:24 -08:00
Nathan Sobo
68223bdb67 Place the cursor at end of first line when splitting selections into lines 2021-11-22 15:53:37 -07:00
Nathan Sobo
2f39dee28b Use uniform biases in AnchorMap, AnchorRangeMap
Specifying a different bias for every point makes the interface feel pretty unwieldy and we don't really use it.
2021-11-22 15:30:46 -07:00
Max Brunsfeld
612b4404a9 Fix the bias of deserialized selection sets
Fixes #224

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-22 14:14:48 -08:00
Max Brunsfeld
cfe6103daf Fix selection set id mismatch when rendering guest selections
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-22 14:10:17 -08:00
Max Brunsfeld
ca4086b844 0.8.0 2021-11-22 13:33:54 -08:00
Max Brunsfeld
c13a26ff7b Bump RPC protocol version 2021-11-22 13:33:05 -08:00
Max Brunsfeld
cfaab6cfb6
Merge pull request #228 from zed-industries/faster-clock-global
Switch to a dense representation for `clock::Global`
2021-11-22 13:31:27 -08:00
Max Brunsfeld
7474813a17 Impose a timeout on writing RPC messages
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-22 13:23:55 -08:00
Antonio Scandurra
b25c3eb740 Switch to a dense representation for clock::Global
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-22 17:20:43 +01:00
Max Brunsfeld
447f710570
Merge pull request #226 from zed-industries/1d-block-map
Allow full diagnostic messages to be displayed in the editor
2021-11-19 09:16:49 -08:00
Antonio Scandurra
6f5ca6064b Use anchor_after in randomized tests to match BlockMap 2021-11-19 18:04:31 +01:00
Antonio Scandurra
c844fcdc09 Invalidate active diagnostic when its primary range collapses
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-19 16:46:54 +01:00
Antonio Scandurra
b0afc80678 Ignore diagnostics with empty ranges
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-19 16:30:26 +01:00
Antonio Scandurra
a023950f28 Remove unused group_range field
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-19 16:17:50 +01:00
Antonio Scandurra
8e74cc178e Invalidate active diagnostics when they are removed
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-19 16:15:22 +01:00
Antonio Scandurra
61d8848b31 Make BlockMap::sync private
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-19 15:44:19 +01:00
Antonio Scandurra
dfbfa86548 WIP 2021-11-19 15:31:33 +01:00
Antonio Scandurra
2664dad2bc Allow styling of invalid diagnostics
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-19 14:35:00 +01:00
Antonio Scandurra
8d5e3fb159 Allow styling of the gutter for block lines 2021-11-19 11:30:01 +01:00
Max Brunsfeld
8d1a4a6a24 Start work on allowing blocks to be styled 2021-11-18 18:16:35 -08:00
Max Brunsfeld
c04151f999 Bind ShowNextDiagnostic to f8 2021-11-18 14:24:03 -08:00
Max Brunsfeld
0b63d882ce Allow key bindings to F1 through F12 2021-11-18 14:23:36 -08:00
Max Brunsfeld
6aa346dec8 Fix switched input + output rows in BlockSnapshot::buffer_rows 2021-11-18 12:41:58 -08:00
Max Brunsfeld
bef09696f6 Align block text with the anchor's column
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-18 12:17:22 -08:00
Antonio Scandurra
1a8b23e118 Color diagnostic messages based on their severity
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-18 17:47:10 +01:00
Antonio Scandurra
f39942863b Dismiss active diagnostics when hitting escape
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-18 16:57:05 +01:00
Antonio Scandurra
5094380c83 Enhance keyboard navigation when showing next diagnostic
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-18 16:55:18 +01:00
Antonio Scandurra
643545e91e When showing the next diagnostic, advance to the next *primary* one
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-18 16:04:16 +01:00
Antonio Scandurra
0e51365770 In a diagnostic group, mark the highest-severity diagnostic as primary
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-18 15:53:00 +01:00
Antonio Scandurra
401b59be5c Refactor retrieving oldest and newest selection
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-18 15:18:35 +01:00
Antonio Scandurra
0a6293bcda Support highlighting in blocks
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-18 14:08:21 +01:00
Antonio Scandurra
0f1eb3dd2e Skip block lines when moving up and down
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-18 13:45:06 +01:00
Antonio Scandurra
856768a43c Remove aggressive logging from WrapMap update code paths 2021-11-18 11:13:40 +01:00
Antonio Scandurra
08e0444ee4 Use char count instead of byte count to determine longest row 2021-11-18 11:01:12 +01:00
Antonio Scandurra
b80887dabe Don't insert blocks within multi-byte characters in randomized test 2021-11-18 10:54:25 +01:00
Antonio Scandurra
572e571927 Test longest row only when tabs are not present or the tab size is 1
This is because the longest row calculation is best-effort at the moment,
since this information is not indexed in the `TabMap`.
2021-11-18 10:54:22 +01:00
Antonio Scandurra
5a9dea5299 Ensure TabMap works correctly when there are folds 2021-11-18 10:37:04 +01:00
Antonio Scandurra
9ba24794c7 Re-enable tabs, spaces and multi-byte characters in randomized tests 2021-11-18 10:35:31 +01:00
Antonio Scandurra
84d257470a Fix empty range edge case in FoldMap 2021-11-18 10:33:31 +01:00
Antonio Scandurra
4967a8d5ef Trim expanded tabs if they overshoot the provided range 2021-11-18 09:52:42 +01:00
Antonio Scandurra
b10c82c015 Stop at range.end when computing text summary for range in TabMap 2021-11-18 09:52:05 +01:00
Nathan Sobo
213aa36e1c WIP: Track down bugs with longest_row on wrap map
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-11-17 19:45:56 -07:00
Nathan Sobo
c5956a0363 Start at the end of the last transform when catching up to edits during wrapping
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-11-17 19:44:17 -07:00
Max Brunsfeld
8230dd9a3b WIP - BlockSnapshot::longest_row 2021-11-17 16:00:52 -08:00
Max Brunsfeld
cb18131432 Represent scroll position correctly when scrolled mid-block
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-17 14:56:55 -08:00
Max Brunsfeld
707ffe8ff3 Implement BlockSnapshot::line_len, use it in DisplayMap
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-17 14:56:05 -08:00
Max Brunsfeld
00b5cc472e Fix BlockSnapshot::chunks when starting in a block
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-17 14:54:47 -08:00
Max Brunsfeld
1c3bf90a8a Reimplement BlockSnapshot::{clip_point,to_block_point,max_point}
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-17 12:54:14 -08:00
Antonio Scandurra
e60500dd7c Re-enable soft-wrapping in randomized tests
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-11-17 19:46:43 +01:00
Antonio Scandurra
88d0c04444 Implement BlockSnapshot::buffer_rows
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-11-17 19:45:06 +01:00
Antonio Scandurra
198f6694b7 Use options to represent soft-wrapped buffer rows
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-11-17 19:30:40 +01:00
Antonio Scandurra
d9283efbe6 Make BlockMap 1d
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-11-17 19:26:57 +01:00
Nathan Sobo
18354c5e04 Hack in show next diagnostic command
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-11-16 16:51:38 -08:00
Nathan Sobo
52a4c15c14 Eliminate non-highlighted chunks APIs
Now we only have a single code path for chunks across all layers, but highlighting is optional and controlled by a flag.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-11-16 16:51:38 -08:00
Nathan Sobo
7dd9b9539e WIP 2021-11-16 13:19:04 -07:00
Nathan Sobo
092689ed56 WIP
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-11-16 13:10:06 -07:00
Nathan Sobo
880b3f087f Insert empty isomorphic transforms on empty lines
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-11-16 12:14:00 -07:00
Antonio Scandurra
d25ec39a23 Rework BufferRows iterator to pass the randomized tests
...without booleans.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-11-16 18:18:47 +01:00
Antonio Scandurra
712616d167 Start on a randomized test for BlockMap::buffer_rows 2021-11-16 15:35:35 +01:00
Max Brunsfeld
1cc7615d06 Implement basic version of BlockMap::buffer_rows
Passed 1 simple test

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-15 17:41:13 -08:00
Max Brunsfeld
76ee44748e Fix minor bug in BlockMap::clip_point
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-15 16:25:51 -08:00
Nathan Sobo
7d1ba6455b Implement BlockMapWriter::remove
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-11-15 17:09:26 -07:00
Nathan Sobo
7b12c1c9e0 Enable soft wrap in randomized test of BlockMap
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-11-15 16:59:02 -07:00
Nathan Sobo
862b988d56 Position blocks above/below buffer lines, even when the anchored line is soft-wrapped
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-11-15 16:45:51 -07:00
Max Brunsfeld
2cb8b0fcd3 wip 2021-11-15 15:04:53 -08:00
Max Brunsfeld
3bd4542bce Remove bias parameter when converting display points to buffer points
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-15 14:36:03 -08:00
Max Brunsfeld
213b94afd4 Remove bias parameter from to_display_point
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-15 14:21:55 -08:00
Max Brunsfeld
8b1b35913a Fix group_ids assertions in diagnostics test
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-15 14:18:58 -08:00
Max Brunsfeld
0a704b8d67 Fix infinite loop in BlockMap::highlighted_chunks
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-15 14:18:45 -08:00
Max Brunsfeld
b4bc7906d2 Propagate wrap edits to block map when folding / unfolding
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-15 14:18:24 -08:00
Max Brunsfeld
d2f4d37af8 Get BlockMap randomized test passing w/o soft wraps
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-15 13:36:40 -08:00
Max Brunsfeld
3498e92d1c Get BlockMap unit test passing 2021-11-15 12:39:40 -08:00
Antonio Scandurra
763ab4d5f1 WIP 2021-11-15 19:52:48 +01:00
Antonio Scandurra
53872a6024 WIP 2021-11-15 19:38:06 +01:00
Antonio Scandurra
314c97715d WIP 2021-11-15 18:01:30 +01:00
Antonio Scandurra
131979dff0 WIP 2021-11-15 17:54:28 +01:00
Antonio Scandurra
34f85b5690 WIP 2021-11-15 17:15:30 +01:00
Antonio Scandurra
cebab56c94 Make BlockMap randomized test pass in low-complexity cases
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-15 16:47:30 +01:00
Antonio Scandurra
296944e34d Make BlockMap unit test pass with 2d coordinates
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-15 16:30:58 +01:00
Nathan Sobo
3154ccbafe WIP 2021-11-14 16:24:40 -07:00
Nathan Sobo
e644c0876e WIP: Start moving BlockMap to a 2d indexing scheme 2021-11-14 08:29:41 -07:00
Nathan Sobo
5832153712 Hack: Synthesize a newline before blocks below the last line of the buffer 2021-11-14 07:43:35 -07:00
Nathan Sobo
b6e6dafca7 Account for trailing below blocks in BlockSnapshot::max_point 2021-11-13 19:50:42 -07:00
Nathan Sobo
d6bc05cad0 Fix BlockMap unit test by skipping below blocks when advancing transforms 2021-11-13 18:19:21 -07:00
Nathan Sobo
c9cbeafc05 Start on BlockSnapshot::clip_point
Not sure it works yet. Ran into another failure in the unit tests.
2021-11-13 17:44:09 -07:00
Max Brunsfeld
364fab7b5f wip - wiring up blockmap into displaymap 2021-11-12 17:29:09 -08:00
Max Brunsfeld
c278503166 Make block insertion work in simple cases
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-12 16:40:01 -08:00
Max Brunsfeld
2e61a586b6 Fix compile errors 2021-11-12 13:55:47 -08:00
Nathan Sobo
e605a5ead2 Sketch an initial implementation for block_map::HighlightedChunks
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-11-12 14:51:25 -07:00
Max Brunsfeld
6f97a9be3b wip 2021-11-12 12:09:35 -08:00
Max Brunsfeld
227c612dac BlockMap WIP 2021-11-12 11:49:48 -08:00
Antonio Scandurra
c8e47a8c63 Start on a randomized test for BlockMap
This is currently passing and ensures we maintain the input coordinate
space correctly.

Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-11-12 19:01:39 +01:00
Antonio Scandurra
d721c2ba4b Remove redundant code path in Patch::compose 2021-11-12 17:24:25 +01:00
Antonio Scandurra
3f11b8af56 Maintain row edits since last sync in WrapMap 2021-11-12 17:05:49 +01:00
Antonio Scandurra
4e32fabfdc Add text manipulation facilities to Rope for test purposes 2021-11-12 17:02:51 +01:00
Antonio Scandurra
fe786f3366 Init env_logger in the editor crate for tests only 2021-11-12 17:01:57 +01:00
Antonio Scandurra
b9c459e800 Use log::info instead of println in patch randomized tests 2021-11-12 17:00:44 +01:00
Antonio Scandurra
b2aab0c773 🎨 2021-11-12 16:31:01 +01:00
Antonio Scandurra
f49c9db423 Make Patch::compose work 2021-11-12 15:07:28 +01:00
Antonio Scandurra
6e882bcd02 Avoid composing edits together for now 2021-11-12 09:01:15 +01:00
Nathan Sobo
068aa1adb3 WIP 2021-11-12 00:20:39 -07:00
Nathan Sobo
47ad9baebc wip 2021-11-12 00:03:47 -07:00
Nathan Sobo
84d789b8ac WIP 2021-11-11 23:28:45 -07:00
Max Brunsfeld
0159019850 Simplify assertions in randomized patch test, fix some patch bugs 2021-11-11 18:28:07 -08:00
Max Brunsfeld
1f2eb9ddbc Add patch unit tests, get composition working for ops <= 3
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-11 17:36:30 -08:00
Antonio Scandurra
d75f415b25 WIP 2021-11-11 19:49:01 +01:00
Antonio Scandurra
4fecab6d4b WIP 2021-11-11 19:42:55 +01:00
Antonio Scandurra
e0897cd019 WIP 2021-11-11 18:13:35 +01:00
Antonio Scandurra
a939535d95 WIP
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-11 16:52:14 +01:00
Antonio Scandurra
59bbe43a46 WIP
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-11-11 16:00:52 +01:00