Commit graph

3247 commits

Author SHA1 Message Date
Mikayla Maki
313316fe88 fixed 2022-07-25 16:08:31 -07:00
Julia
888405a4b2
Merge pull request #1409 from zed-industries/middle-mouse-close-tabs
Allow closing tabs with the middle mouse button
2022-07-25 17:05:00 -04:00
Max Brunsfeld
13097ea110 Update terminal test to reflect new text insertion approach 2022-07-25 12:21:26 -07:00
Max Brunsfeld
ab037fe844 Simulate calling of text-insertion APIs in TestAppContext::dispatch_keystroke 2022-07-25 12:20:12 -07:00
Max Brunsfeld
a54d9f1697 Add comment about noop performKeyEquivalent function 2022-07-25 11:42:54 -07:00
Max Brunsfeld
09c0211c96 Bump the RPC protocol version 2022-07-25 11:36:52 -07:00
Max Brunsfeld
4c8d9384b1 Replaces lines_utf16 with a single u32 - last_line_len_utf16 2022-07-25 11:35:42 -07:00
ForLoveOfCats
36d789ff84 Allow closing tabs with the middle mouse button 2022-07-25 14:23:38 -04:00
Antonio Scandurra
6dc27cbba2 Add test for IME composition with multiple cursors 2022-07-25 17:47:10 +02:00
Antonio Scandurra
ff99f8d0ca Clip UTF-16 offsets provided by Cocoa when composing IME input 2022-07-25 17:32:33 +02:00
Antonio Scandurra
47e8bd5f4f Introduce MultiBuffer::clip_offset_utf16 2022-07-25 15:06:04 +02:00
Antonio Scandurra
c46be992e0 Introduce Rope::clip_offset_utf16 2022-07-25 15:02:45 +02:00
Antonio Scandurra
bb55d654ce Handle IME composition with multiple cursors 2022-07-25 14:50:09 +02:00
Antonio Scandurra
acdfb933e8 Honor shift if pressing command switches keyboard 2022-07-25 11:01:38 +02:00
Antonio Scandurra
ca3e73106c Merge branch 'main' into ime-support-2 2022-07-25 10:47:49 +02:00
Antonio Scandurra
d3567e381c Coalesce IME compositions into a single edit 2022-07-25 09:53:51 +02:00
Antonio Scandurra
555e705ccb 🎨 2022-07-23 09:31:41 +02:00
Antonio Scandurra
0fc7308932 Allow grouping local transactions even if remote peer edits in between 2022-07-23 09:27:21 +02:00
Max Brunsfeld
79f960b69e Combine adjacent ranges in 'edited_ranges_for_transaction' 2022-07-22 17:41:31 -07:00
Max Brunsfeld
7c3421e041 Remove versioned offset ranges from transactions and undo operations
Now, instead of using these versioned offset ranges, we locate the
fragments associated with a transaction using the transaction's
edit ids. To make this possible, buffers now store a new map called
`insertion_slices`, which lets you look up the ranges of insertions
that were affected by a given edit.

Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2022-07-22 17:28:55 -07:00
Nate Butler
f963c0ed45 WIP for keith 2022-07-22 17:28:58 -04:00
Mikayla Maki
8c1d4d877f
Merge pull request #1393 from zed-industries/graceful-exit
Polishing the terminal
2022-07-22 13:59:13 -07:00
Mikayla Maki
a41e54f3dc Finished terminal refactoring 2022-07-22 13:54:46 -07:00
Mikayla Maki
119207a9e5 Refactored a bunch of stuff, working on tidying element code 2022-07-22 12:06:42 -07:00
Max Brunsfeld
65fd943509 Move edited_ranges_for_transaction from BufferSnapshot to Buffer
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2022-07-22 11:24:14 -07:00
Keith Simmons
2111fdc118
Merge pull request #1378 from zed-industries/diagnostics-popover
Diagnostics Popover
2022-07-22 11:12:56 -07:00
K Simmons
b93040a6ae attempt to fix broken test 2022-07-22 10:55:57 -07:00
Mikayla Maki
dce27870ce Refactored terminal tests 2022-07-22 10:20:15 -07:00
Nate Butler
088668ecf8 Fix reversed disclosure arrows in project panel 2022-07-22 11:57:53 -04:00
Antonio Scandurra
7b009c8bbe Merge branch 'main' into ime-support-2 2022-07-22 16:03:38 +02:00
Antonio Scandurra
2bfa3b9006 Synthesize CGEvents instead of using charactersByApplyingModifiers 2022-07-22 15:51:34 +02:00
Antonio Scandurra
622596619c Honor ⌘ when Dvorak-QWERTY is used 2022-07-22 14:52:24 +02:00
Antonio Scandurra
136550de9f Discard shift when it causes keyboard to output a different character 2022-07-22 08:15:44 +02:00
Max Brunsfeld
9c412a8806 Remove test for handling input via key events
Now, textual input is handled by a different code path than other key events.
2022-07-21 21:40:37 -07:00
Max Brunsfeld
372c3eed52 Adjust editor tests to use input APIs instead of key events 2022-07-21 21:36:40 -07:00
Max Brunsfeld
0185b4fef4 Add simple IME handling to the terminal 2022-07-21 21:32:58 -07:00
Keith Simmons
9286e5ea04
Merge pull request #1396 from zed-industries/better-empty-pane
Fix Pane Focus Issues
2022-07-21 15:07:03 -07:00
K Simmons
d6519ad280 Minor naming improvements and revert empty pane background color change 2022-07-21 14:56:17 -07:00
Max Brunsfeld
6d264502b2 Remove print statements 2022-07-21 13:44:58 -07:00
Max Brunsfeld
2142fca673 Remove Input action, detect ignored input in vim via an event 2022-07-21 13:40:48 -07:00
Max Brunsfeld
beeaec8647 Prevent IME window from appearing while editor's input is disabled (vim) 2022-07-21 12:48:36 -07:00
Mikayla Maki
c6d5decbf9 Finished erorr terminal refactoring 2022-07-21 12:37:15 -07:00
Max Brunsfeld
7c575990be Remove the set_selected_text_range method from the InputHandler trait 2022-07-21 12:22:12 -07:00
Mikayla Maki
7c0a031506 added cursor text back 2022-07-21 10:04:12 -07:00
Antonio Scandurra
509f54bf20 Don't dispatch keydown event if editor is still composing 2022-07-21 17:37:32 +02:00
Antonio Scandurra
97ce3998ec Position IME input according to where the selection is rendered 2022-07-21 17:35:40 +02:00
Antonio Scandurra
3c5d7e001e Always mark keydown events as handled to suppress beep 2022-07-21 15:53:21 +02:00
Antonio Scandurra
3d6c257551 🎨 2022-07-21 14:39:22 +02:00
Antonio Scandurra
b2f2c5b055 Handle keydown event even when charactersIgnoringModifiers is empty
This allows the input system to work in the presence of dead keys.
2022-07-21 14:36:47 +02:00
Antonio Scandurra
101a0663d3 Remove input from KeyDownEvent 2022-07-21 14:29:27 +02:00
Antonio Scandurra
f170582c26 Remove println statements from NSTextInputClient protocol functions 2022-07-21 13:51:31 +02:00
Antonio Scandurra
a4ceae3cf2 Remove unused {cancel,finish}_composition methods 2022-07-21 13:48:56 +02:00
Antonio Scandurra
481078ae22 Restructure IME composition to not follow Chromium so closely 2022-07-21 13:41:55 +02:00
Antonio Scandurra
b02681ee8a Treat NSTextInputClient ranges as UTF-16 2022-07-21 13:41:35 +02:00
Antonio Scandurra
32662b6b92 Start indexing UTF-16 offsets
This is needed because cocoa will report ranges as UTF-16 indices.
2022-07-21 09:40:48 +02:00
Antonio Scandurra
eda60effed Honor setting the selected range in addition to marking text 2022-07-21 08:57:20 +02:00
K Simmons
fb2fbf2ac7 fix test failure 2022-07-20 19:13:16 -07:00
K Simmons
b85b2a90aa address warnings 2022-07-20 19:02:33 -07:00
K Simmons
02a47d962e add test coverage for diagnostic popover 2022-07-20 19:02:33 -07:00
K Simmons
95952f0c66 working diagnostic popover. Also renamed GoToNextDiagnostic to GoToDiagnostic and adjusted it's action to jump to the popover's diagnostic if it is visible 2022-07-20 19:02:33 -07:00
K Simmons
dbedc30abe WIP 2022-07-20 19:02:33 -07:00
K Simmons
daceb1eb5f Fix warning 2022-07-20 19:02:12 -07:00
K Simmons
225055ed5d Address some issues where panes don't get focused properly, make the focused pane more obvious, and prevent splitting of the pane with no items 2022-07-20 18:52:32 -07:00
Max Brunsfeld
f712dec4c0 Use new API for input handling in Terminal 2022-07-20 17:33:37 -07:00
Mikayla Maki
ee87c8ebde Render is snappier, less locking, and errors feel nicely modeled 2022-07-20 17:25:21 -07:00
Mikayla Maki
741b78a15b I think I'm finished 2022-07-20 17:11:36 -07:00
Mikayla Maki
061dde5a9b Compiling with new result based error handling 2022-07-20 16:48:40 -07:00
Max Brunsfeld
f985515141 Start work on new text input handling in Editor 2022-07-20 16:45:27 -07:00
Max Brunsfeld
0b81a4dfae Call methods on the focused view during input events 2022-07-20 16:44:26 -07:00
Keith Simmons
d34d6ea184
Merge pull request #1392 from zed-industries/mouse-vim-mode-clipping
Fixup Clipping at Line Ends when Selecting with the Mouse in Vim Mode
2022-07-20 13:39:24 -07:00
Mikayla Maki
9b6df1fb61 Checkpoint, this commit does not compile 2022-07-20 12:41:04 -07:00
Mikayla Maki
b493bafb48 Fixed failing test 2022-07-20 10:34:00 -07:00
Mikayla Maki
e2a9a6f361 Maybe fixed toml 2022-07-20 10:04:08 -07:00
Mikayla Maki
18079ced20 Updated alacritty version 2022-07-20 10:04:08 -07:00
Mikayla Maki
ef1a32ee92 Done updating rendering performance for now. Further changes would require more fundamental work, I'm still not really happy with it as is though. Will probably take a few hours to clean the code though. 2022-07-20 10:04:08 -07:00
Mikayla Maki
005e2cb2be Compiling again... finally 2022-07-20 10:04:08 -07:00
Mikayla Maki
4f7b6b8b22 Finally finished merging this massive ball of changes 2022-07-20 10:04:08 -07:00
Mikayla Maki
150d2ff53f Attempting to continue rebase 2022-07-20 10:04:08 -07:00
Mikayla Maki
4a483618be Finished graceful terminal failure 2022-07-20 10:04:08 -07:00
Mikayla Maki
40d30a898b Rebasing continues 2022-07-20 10:04:08 -07:00
Mikayla Maki
9d063ae6d8 Switched to hybrid iterator and while loop grid processor. Still hairy but much more managable. Not finished compiling yet. 2022-07-20 10:04:08 -07:00
Mikayla Maki
c9584a9d0c Continuing rebases on other work 2022-07-20 10:04:08 -07:00
Mikayla Maki
a4ca11ba17 Finished design touchups 2022-07-20 10:04:08 -07:00
Mikayla Maki
c19956373a Finished bel, moving on to title 2022-07-20 10:04:06 -07:00
Max Brunsfeld
1b0e93b153 Change interpretation of marked_text and edit when handling input
Co-authored-by: Antonio Scandurra <antonio@zed.dev
2022-07-20 09:53:49 -07:00
Antonio Scandurra
42ac4bf9fc WIP 2022-07-20 18:06:29 +02:00
Antonio Scandurra
2ea0b89e7c WIP 2022-07-20 15:07:09 +02:00
K Simmons
a77cf914ec Fix failing test re mode switch in buffer search 2022-07-19 17:18:17 -07:00
K Simmons
1cfaac1bc5 Fix clipping when dragging the mouse with vim-mode enabled and adjust single line editor selections 2022-07-19 17:18:17 -07:00
Nate Butler
bcc554a3db Merge branch 'main' into theme-improvements 2022-07-19 20:12:02 -04:00
Keith Simmons
c2868a39e8
Merge pull request #1388 from zed-industries/mouse-region-refactor
Mouse Region Refactor
2022-07-19 16:50:12 -07:00
Nate Butler
46384e71b7 Add icon sets for sizes 8, 12 and 16, remove old icons 2022-07-19 17:11:15 -04:00
Antonio Scandurra
7757fbe241 Implement NSTextInputClient protocol on window using no-ops 2022-07-19 14:52:02 +02:00
Antonio Scandurra
456a390166 Add character palette menu item 2022-07-19 14:51:57 +02:00
Max Brunsfeld
e5602b0ad4 0.48.1 2022-07-18 19:11:12 -07:00
Max Brunsfeld
815ce22fb7 Revert "Merge pull request #1359 from zed-industries/plugin-json-enable"
This reverts commit 94b443a704, reversing
changes made to 285832e810.
2022-07-18 19:04:49 -07:00
Max Brunsfeld
142a019ada 0.48.0 2022-07-18 16:24:57 -07:00
Max Brunsfeld
c1dfb6294b Dismiss project panel's rename editor when it loses focus 2022-07-18 16:10:09 -07:00
Max Brunsfeld
2ab732efdb
Merge pull request #1390 from zed-industries/fix-fs-watch-leak
Ensure that FS watchers are dropped when dropping their event stream
2022-07-18 15:16:41 -07:00
Max Brunsfeld
43613fe2ac Ensure that fs watches are dropped when dropping the event stream 2022-07-18 14:55:24 -07:00
Max Brunsfeld
7998771d9f Avoid panic when unable to access a GPU
This will remove noise from our panic logs.

Co-authored-by: Nathan Sobo <nathan@zed.dev>
2022-07-18 14:13:12 -07:00
K Simmons
deeefed7eb Change mouse_event_handler to use HandlerSet 2022-07-18 10:08:14 -07:00
K Simmons
ec25fa9260 Extract handler set from MouseRegion 2022-07-18 09:54:48 -07:00
Antonio Scandurra
11ef6bfbae Avoid unnecessarily emitting fake fs events for dirs that exist 2022-07-18 17:36:40 +02:00
Antonio Scandurra
f9df5fe595 Detect cycles also when processing events 2022-07-18 17:31:09 +02:00
Antonio Scandurra
b3218641cd Create intermediate directories in FakeFs::create_dir 2022-07-18 16:38:26 +02:00
Antonio Scandurra
b48118830f Detect cycles when scanning a directory 2022-07-18 13:47:15 +02:00
Antonio Scandurra
df33556693 Introduce a new TreeSet struct in sum_tree
This is just a special case of `TreeMap<K, V>` where `V = ()`.
2022-07-18 13:40:30 +02:00
Max Brunsfeld
f9a5ed3a85 Start work on a test for a worktree with symlink cycles 2022-07-18 12:23:07 +02:00
Max Brunsfeld
f6c1393dfd Restructure FakeFs to let it model symlinks
Instead of storing paths, model the FS more directly
as nodes
2022-07-18 12:23:07 +02:00
Antonio Scandurra
0aafc78eb7
Merge pull request #1385 from zed-industries/fix-lifetime-error
Fix spurious borrow checker error
2022-07-18 12:22:54 +02:00
Antonio Scandurra
51c40f4136
Merge pull request #1384 from zed-industries/expose-collaboration-metrics
Expose collaboration metrics
2022-07-18 10:44:29 +02:00
Antonio Scandurra
316a534a16 Allow querying active user counts for people that have collaborated 2022-07-18 10:29:10 +02:00
Isaac Clayton
c326a20193
Merge pull request #1367 from zed-industries/plugin-opaque
Guide to Opaque Types and Callbacks in Plugins
2022-07-18 09:20:10 +02:00
Antonio Scandurra
2cbb0ae843 Expose max number of project collaborators in Db::get_top_user_activity 2022-07-18 08:58:09 +02:00
K Simmons
8add81350e Rework presenter and MouseRegion to use Handler hashmap rather than individual fields 2022-07-17 23:19:32 -07:00
Nate Butler
4ca4449394 Update icons in rust
Updated icons
- Diagnostic states
- Sidebar icons (project, contacts)
- Navigation arrows
2022-07-16 11:51:10 -04:00
Antonio Scandurra
af917de684 Handle inserting multiple tabs on the same row
This also fixes a panic when tabbing on a row that contained multi-byte
characters.
2022-07-16 08:40:44 +02:00
Mikayla Maki
8349ead6b2 Add bracketed paste support 2022-07-15 19:01:08 -07:00
Mikayla Maki
cfc956d78f
Merge pull request #1376 from zed-industries/terminal-settings
Added settings for common terminal configurations
2022-07-15 18:50:40 -07:00
Mikayla Maki
6675c96c8a Removed some old dbgs and comments 2022-07-15 18:42:07 -07:00
Mikayla Maki
523e565b9b bad patch for panic on mis configured shell 2022-07-15 18:38:17 -07:00
Mikayla Maki
dc120c1e05 Added settings for common terminal configurations 2022-07-15 18:27:10 -07:00
Max Brunsfeld
69146fb318 Allow the web client to specify activity bucket durations 2022-07-15 16:46:44 -07:00
Max Brunsfeld
1363d2c502 Add admin API for counting users with a given amount of activity 2022-07-15 16:46:44 -07:00
Mikayla Maki
1b3fb257b2
Merge branch 'main' into copy-test-update 2022-07-15 13:24:11 -07:00
Mikayla Maki
e156675640 Revamped testing in terminals 2022-07-15 12:15:55 -07:00
Mikayla Maki
8282858941 Updated copy integration test to match retries on terminal integration test 2022-07-15 11:30:14 -07:00
Mikayla Maki
f38206f819
Merge branch 'main' into keybindings-grind 2022-07-15 11:24:16 -07:00
Mikayla Maki
3e86411627 Finished new keybindings system for now 2022-07-15 11:20:54 -07:00
Mikayla Maki
90428255d9 Added some simple tests for the new keybindings 2022-07-15 10:36:37 -07:00
Isaac Clayton
85cf703282 Fix typos, minor revisions 2022-07-15 13:16:01 +02:00
Isaac Clayton
d121226cd6 Write initial plan 2022-07-15 12:58:20 +02:00
Mikayla Maki
f9995e1fcd Starting on tests 2022-07-15 00:26:04 -07:00
Antonio Scandurra
d89465c451
Merge pull request #1356 from zed-industries/differentiate-same-tab-titles
Differentiate among tabs with the same name
2022-07-15 08:30:22 +02:00
Mikayla Maki
8220b37c4f Method rename 2022-07-14 17:25:17 -07:00
Mikayla Maki
1935208de6 Clean up prints 2022-07-14 17:23:43 -07:00
Mikayla Maki
98651c4b86 New key mapping system in place and working 2022-07-14 17:21:30 -07:00
Mikayla Maki
2e749631fe Checkpoint, have caret notation implemented 2022-07-14 16:27:02 -07:00
Mikayla Maki
cf5c20c3a5 Remembered how to use a terminal 2022-07-14 13:15:42 -07:00
Keith Simmons
17f52fb587
Merge pull request #1355 from zed-industries/better-tab-ordering
More intuitive tab ordering
2022-07-14 12:26:46 -07:00
Antonio Scandurra
d4ee372eab 🎨 2022-07-14 16:46:45 +02:00
Antonio Scandurra
49ef33090c Add test for tab disambiguation 2022-07-14 16:42:30 +02:00
Isaac Clayton
91fefae96a Add retries to failing terminal test 2022-07-14 16:05:10 +02:00
Isaac Clayton
52e4774e8a Re-enable JSON plugin 2022-07-14 15:13:12 +02:00
Antonio Scandurra
fd5cb02ea9 Truncate description in tab title when it is too long 2022-07-14 15:12:16 +02:00
Isaac Clayton
b3ac63b7b5 Remove triple-based suffix 2022-07-14 15:05:54 +02:00
Isaac Clayton
af1ad474e3 Update docs 2022-07-14 13:46:41 +02:00
Isaac Clayton
80b45ef93b Precompile plugins depending on target triple 2022-07-14 13:23:04 +02:00
Antonio Scandurra
07d269234f Differentiate among tabs with the same name
This commit introduces a new, optional `Item::tab_description` method
that lets implementers define a description for the tab with a certain
`detail`. When two or more tabs match the same description, we will
increase the `detail` until tabs don't match anymore or increasing the
`detail` doesn't disambiguate tabs any further.

As soon as we find a valid `detail` that disambiguates tabs enough, we
will pass it to `Item::tab_content`. In `Editor`, this is implemented by
showing more and more of the path's suffix as `detail` is increased.
2022-07-14 11:54:11 +02:00