Commit Graph

1184 Commits

Author SHA1 Message Date
Kirill Bulatov
29cbeb39bd Allow selecting all search matches in buffer 2023-07-14 14:47:12 +03:00
Mikayla Maki
50623c018c
Fix serialization error 2023-07-13 14:48:56 -07:00
Mikayla Maki
9da8f609cf
tidy up names 2023-07-13 14:34:32 -07:00
Mikayla Maki
331fd896b5
fmt 2023-07-13 14:21:30 -07:00
Mikayla Maki
5797282b98
Add resising serialization 2023-07-13 14:21:14 -07:00
Mikayla Maki
00b04f1c85
Restore active pane magnification 2023-07-13 13:10:36 -07:00
Mikayla Maki
d5f7ad08fa
Styled and refined behavior for split resizing 2023-07-13 11:28:21 -07:00
Mikayla Maki
26b9be628e
Add the math for pane resizing 2023-07-12 22:35:51 -07:00
Mikayla Maki
5385ca411b
Added the new elements and wired through the pointers to update the pane axis ratios 2023-07-12 17:53:01 -07:00
Mikayla Maki
488b41826b
WIP 2023-07-12 12:46:56 -07:00
Mikayla Maki
9165320390
Fix a bug where the terminal would not be closed by the terminal exiting (#2706)
Release Notes:

- Fixed a bug where terminal tabs in the panel would not close on tty
process exit.
2023-07-11 12:23:26 -07:00
Mikayla Maki
be881369fa
Fix a bug where the terminal panel's items wouldn't be hooked up properly to workspace actions 2023-07-11 12:12:37 -07:00
Kirill Bulatov
4b4d049b0a Refactor LSP restart logic
Instead of storing `initialization_options` in every LSP adapter as
before, store previous LSP settings in `Project` entirely.

This way, we can later have use multiple different project
configurations per single LSP with its associated adapter.

co-authored-by: Max Brunsfeld <max@zed.dev>
2023-07-11 21:56:55 +03:00
Conrad Irwin
b4b0f622de Rebuild vim search experience on refactored code 2023-07-07 15:57:54 -06:00
Kirill Bulatov
fff65968bf Restart LSP server on initialization options change 2023-07-06 23:27:22 +03:00
Antonio Scandurra
03a00df8b1 Restore focus to previously focused view when dismissing a modal 2023-07-05 09:40:26 +02:00
Antonio Scandurra
a8602b2a0c Add Modal::has_focus and introduce a ModalHandle trait object 2023-07-05 09:39:56 +02:00
Mikayla Maki
73b0f3b23d
fmt 2023-06-29 17:19:35 -07:00
Mikayla Maki
5366631173
Remove on_click_out handler from context menu
Add 'delay_cancel()' method and on_down handler to relevant buttons
2023-06-29 17:10:51 -07:00
Mikayla Maki
ce52d90a9d
Collab UI v2 (#2618)
This PR implements
https://www.figma.com/file/pLq7dvhx2mFeWFOedXpUQ5/Project-%E2%80%93-Collaboration-UI?type=design&node-id=666%3A8610&t=XFGk6KEtTCFXBvCQ-1

Release notes:
- [x] Redesigned collaboration UI
- [x] Added voice support
2023-06-28 09:14:39 -07:00
Nathan Sobo
f52d3ea5ef Clean up tooltips, create conversation on cmd-n
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-28 10:27:29 +02:00
Nate Butler
8b2732c3aa workspace.titlebar -> titlebar in Theme 2023-06-27 17:27:58 -04:00
Piotr Osiewicz
625814d30a Merge branch 'main' into collab-titlebar-2 2023-06-27 15:40:43 +02:00
Antonio Scandurra
5ea5368c07 Re-enable buffer search in assistant 2023-06-23 09:57:31 +02:00
Antonio Scandurra
6f0efec146 Merge remote-tracking branch 'origin/main' into save-conversations 2023-06-23 09:09:42 +02:00
Nathan Sobo
1707652643 Always focus a panel when zooming it
This allows us to zoom a panel when clicking a button, even if the
panel isn't currently focused.
2023-06-22 06:55:31 -06:00
Piotr Osiewicz
76366422a6 Merge branch 'main' into collab-titlebar-2 2023-06-22 13:48:16 +02:00
Nate Butler
6ab0143469
Split Interactive into Interactive and Toggleable (#2628)
This is a part of the intensity driven theme rewrite. 

It introduces the `toggle` and `interactive` helper functions to build
Toggle<T> and Interactive<T> styles for interactive elements in the
theme.

This PR also removes the `theme_testbench` crate and related actions.

Huge thanks to @osiewicz and @mikayla-maki for pushing this forward 🙏🏽

Release Notes:

- Updated the style of many interactive elements.
2023-06-21 15:03:08 -04:00
Nathan Sobo
23bc11f8b3 Remove the nested Pane from the assistant
Since we don't want tabs, I think it would be better to render the toolbar
for ourselves directly and handle switching between conversations.

Co-Authored-By: Julia Risley <julia@zed.dev>
2023-06-20 18:52:48 -06:00
Mikayla Maki
11125a62c7
Add copy-on-click to diagnostic messages 2023-06-20 16:48:30 -07:00
Mikayla Maki
dacfd70fb4
Remove unescessary enum 2023-06-20 16:05:23 -07:00
Piotr Osiewicz
31c1177737
Adjust some of the styles to the new Toggleable format 2023-06-20 16:05:23 -07:00
Piotr Osiewicz
0256f89dd6
Rename on/off states to active/inactive 2023-06-20 16:05:23 -07:00
Piotr Osiewicz
e92015b12f
Split out Interactive<T> into Toggle<T> and Interactive<T> 2023-06-20 16:05:20 -07:00
Max Brunsfeld
57c2d85c66 Show a notification that gopls can't be installed without go 2023-06-19 18:05:12 -07:00
Mikayla Maki
dedc117cca
Add audio APIs to Zed
Share mic on joining room
2023-06-16 10:13:27 -07:00
Mikayla Maki
b9270925dd
Focus on toggle dock (#2612)
This PR updates some dock behaviors. Now the toggle-dock commands
(cmd-j/b/r) also toggle focus. This also adds zoom serialization to the
docks.

Release Notes:
- Bug fix: Toggle dock commands (cmd-j/b/r) now move focus 
- Bug fix: Dock zoom is now restored with the rest of the workspace
2023-06-15 15:20:20 -07:00
Mikayla Maki
b156644daf
fixed tests to match new behavior 2023-06-15 15:09:37 -07:00
Mikayla Maki
b7e3ac5bf4
Fix bug on workspace deserialization 2023-06-15 14:56:37 -07:00
Mikayla Maki
b9cb594626
Fix fmt 2023-06-15 14:51:38 -07:00
Antonio Scandurra
f068712a0a Activate screen-sharing when leader activates a panel 2023-06-15 18:01:30 +02:00
Mikayla Maki
6662066821
Add zoom serialization to the workspace 2023-06-14 23:43:45 -07:00
Mikayla Maki
790d995381
Add focusing into the toggle dock commands 2023-06-14 23:04:41 -07:00
Max Brunsfeld
66f215cd13 Restructure LSP log view to show log messages in addition to RPC trace 2023-06-07 16:51:09 -07:00
Antonio Scandurra
0dae8f2dd8 Merge remote-tracking branch 'origin/main' into assistant-2 2023-06-07 09:34:16 +02:00
Max Brunsfeld
dbbd0558c3 Eliminate assets crate 2023-06-06 11:46:46 -07:00
Antonio Scandurra
7a78e64831 Merge remote-tracking branch 'origin/main' into assistant-2 2023-06-06 19:18:22 +02:00
Antonio Scandurra
9c59146026 Set assistant editor's title based on the first question/answer pair
Co-Authored-By: Julia Risley <julia@zed.dev>
2023-06-06 15:59:10 +02:00
Max Brunsfeld
0949ee84d8 🎨 Move OpenSettings action back to the zed crate 2023-06-05 17:43:05 -07:00
Max Brunsfeld
3d1ba1b363 Apply bounds to all windows when using start-local-collaboration script 2023-06-05 14:36:21 -07:00
Joseph Lyons
7c60f636d5 Fix typos 2023-06-02 22:02:19 -04:00
Antonio Scandurra
20e65a533c Merge remote-tracking branch 'origin/main' into assistant-2 2023-06-02 09:32:11 +02:00
Max Brunsfeld
585d13d3db Unzoom all panes when opening a dock 2023-06-01 15:20:15 -07:00
Kirill Bulatov
d8ce333cf8 Remove wrong assertion 2023-06-01 16:51:29 +03:00
Mikayla Maki
6f4fd74f43
Add a dock-keybinding-changed one-time notification (#2546)
This code is intended to be removed at a later date.

Release Notes:

- N/A
2023-05-31 14:28:12 -07:00
Mikayla Maki
bf2016adf5
Remove version check 2023-05-31 14:23:56 -07:00
Mikayla Maki
27ef0e2b52
De-morgans properly 2023-05-31 14:21:38 -07:00
Mikayla Maki
45b42c512d
fmt 2023-05-31 14:17:27 -07:00
Mikayla Maki
705e36827c
add version check 2023-05-31 14:16:37 -07:00
Mikayla Maki
b875d4ed40
Remove silly panic 2023-05-31 14:10:50 -07:00
Mikayla Maki
ed0b9acb0a
Add panic if version is 0.91 2023-05-31 14:06:36 -07:00
Mikayla Maki
ef80b539d1
Fix notification styling, minimize database reads 2023-05-31 13:56:41 -07:00
Max Brunsfeld
193474a346 🎨 2023-05-31 13:07:20 -07:00
Max Brunsfeld
c48fed26bd When revealing items, zoom-out any inactive panes 2023-05-31 13:05:50 -07:00
Max Brunsfeld
3f6aa94a5f Use active color for zoom button in a zoomed pane 2023-05-31 12:51:57 -07:00
Max Brunsfeld
893615236d Only include one border edge for zoomed panels 2023-05-31 12:45:55 -07:00
Max Brunsfeld
ac41564a8f Dismiss zoomed panels by closing their dock, not zooming them out 2023-05-31 12:45:55 -07:00
Max Brunsfeld
76927b6d95 Make active panel's button close its dock 2023-05-31 10:29:59 -07:00
Mikayla Maki
c9820fde61
WIP: Add toast when users attempt to use shift-escape for the first time 2023-05-30 17:48:41 -07:00
Mikayla Maki
0122cd61c5
fmt 2023-05-30 16:33:42 -07:00
Mikayla Maki
685e8d7007
Seperate pane and panel styling
co-authored-by: max <max@zed.dev>
2023-05-30 16:23:16 -07:00
Mikayla Maki
9c707eff27
Rework new terminal actions 2023-05-30 16:10:07 -07:00
Mikayla Maki
e80ab5f096
Fix focus bug with new docks
co-authored-by: max <max@zed.dev>
2023-05-30 15:40:30 -07:00
Mikayla Maki
5e4a9abd09
Fix bug in panel button dispatch 2023-05-30 15:17:42 -07:00
Mikayla Maki
5065804388
WIP: iron out bugs in interaction between toggle and toggle focus key bindings
co-authored-by: max <max@zed.dev>
2023-05-30 14:55:49 -07:00
Mikayla Maki
9c9af5ed94
Remove focus side effects from toggle dock commands
co-authored-by: max <max@zed.dev>
2023-05-30 12:32:00 -07:00
Mikayla Maki
1a23fe91b4
WIP: Remove focus side effects from toggle dock commands
co-authored-by: max <max@zed.dev>
2023-05-30 12:00:15 -07:00
Mikayla Maki
84f98f13c4
Seperate open and zoom bits conceptually for new panels
co-authored-by: max <max@zed.dev>
2023-05-30 11:52:14 -07:00
Antonio Scandurra
69e8a166e4 Start on assistant::QuoteSelection 2023-05-30 15:25:53 +02:00
Antonio Scandurra
bd494037bb Call ItemHandle::added_to_pane when an item is added to a pane 2023-05-30 14:46:41 +02:00
Antonio Scandurra
88eb2b2163 Move history navigation logic to Workspace
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-05-29 19:47:59 +02:00
Antonio Scandurra
6d3464fd1f Make Pane::add_item a proper Pane method
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-05-29 19:16:22 +02:00
Kirill Bulatov
3a3c1c5a5b Add a test
co-authored-by: Mikayla <mikayla@zed.dev>
2023-05-27 01:12:22 +03:00
Kirill Bulatov
cf2bbfc85a Better display labels for external files 2023-05-26 18:18:32 +03:00
Kirill Bulatov
508533ebb7 Track abs paths in history 2023-05-26 17:31:35 +03:00
Kirill Bulatov
2fdc960704 Properly display labels for currently opened external files 2023-05-26 15:44:44 +03:00
Julia
8d662edb6c Remove concept of git diff refresh from Item trait 2023-05-25 14:29:28 -04:00
Antonio Scandurra
4185a178e7 Prevent bottom dock from becoming too large or too small 2023-05-25 15:29:59 +02:00
Antonio Scandurra
aa8c0475b1 Don't show navigation controls for terminal panel 2023-05-25 15:15:20 +02:00
Antonio Scandurra
c2f3ac24a4 Prevent zoom from being restored when focusing a modal 2023-05-25 12:11:11 +02:00
Nathan Sobo
0b7d095c0a
Introduce the ability to talk to GPT-4 within buffers on preview and dev (#2524)
This adds basic ability to interact with OpenAI inside a buffer.

Release Notes:

* If`OPENAI_API_KEY` is defined in your environment, you can now run the
`ai: assist` command to pass the text of your current buffer to GPT-4.
If you're editing a file with a `.zmd` extension, you can also invoke
the model with `cmd-enter.` (preview-only)
2023-05-24 12:00:43 -06:00
Nathan Sobo
747322a02d Merge remote-tracking branch 'origin/main' into zmd 2023-05-24 11:04:07 -06:00
Max Brunsfeld
66b3be8687 Make toggle dock actions appear in the command palette 2023-05-24 09:58:41 -07:00
Antonio Scandurra
f67a22828b Show keystroke in panel tooltips
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-05-24 16:13:58 +02:00
Antonio Scandurra
50cfe5eec3 Use cmd-b/cmd-r/cmd-j to toggle left/right/bottom dock and focus when opening
Also, bind the same keys with shift to toggle the dock without focusing.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-05-24 15:59:06 +02:00
Antonio Scandurra
e5fd953b4f Provide tooltips for pane buttons 2023-05-24 11:18:30 +02:00
Antonio Scandurra
1a353ad25d Show maximize/minimize icon for panes and terminal panel 2023-05-24 11:00:12 +02:00
Antonio Scandurra
168ff99927 Prevent empty panes from being zoomed 2023-05-24 10:34:56 +02:00
Joseph Lyons
2457c55fe7 add toggle right and bottom dock actions 2023-05-23 13:53:56 -04:00
Antonio Scandurra
19b817e48a Improve styling of bottom and right docks 2023-05-23 09:02:45 +02:00
Antonio Scandurra
208ff2fba7 Merge remote-tracking branch 'origin/main' into panels 2023-05-23 08:24:28 +02:00
Nathan Sobo
30de64845f WIP 2023-05-22 23:11:27 -06:00
Antonio Scandurra
f22067b236 Remove unused imports 2023-05-22 19:38:57 +02:00
Antonio Scandurra
33f6c56b14 Fix more warnings 2023-05-22 19:36:01 +02:00
Antonio Scandurra
6f39d49b18 Fix warnings 2023-05-22 19:33:11 +02:00
Antonio Scandurra
048498e39b Test zooming panels 2023-05-22 19:30:31 +02:00
Antonio Scandurra
3ca95678f1 Avoid leaking docks when adding panels 2023-05-22 18:57:14 +02:00
Antonio Scandurra
75a0742c90 Uncomment persistence test 2023-05-22 18:32:28 +02:00
Antonio Scandurra
5b7e852903 Await closing of items in tests 2023-05-22 18:28:30 +02:00
Antonio Scandurra
10e947cb5f Persist project and terminal panel sizes 2023-05-22 15:55:44 +02:00
Antonio Scandurra
146809eef0 Merge branch 'main' into panels 2023-05-22 14:10:17 +02:00
Max Brunsfeld
e32233c826 Fix spurious setting error logs on non-existent setting keys 2023-05-19 17:15:05 -07:00
Mikayla Maki
c193b0b8fc
Add guards to other pane index removals 2023-05-19 15:10:44 -07:00
Kirill Bulatov
2c8fffc4f8 Use better name for the method that closes deleted buffers
co-authored-by: Max <max@zed.dev>
2023-05-19 21:47:00 +03:00
Antonio Scandurra
5a8fb18c20 Show workspace only after initializing it 2023-05-19 19:35:00 +02:00
Antonio Scandurra
5ff49bde31 Serialize and deserialize TerminalPanel 2023-05-19 19:26:32 +02:00
Kirill Bulatov
583b15badc When the file is deleted via project panel, close it in editors 2023-05-19 18:52:30 +03:00
Antonio Scandurra
e49281699c Add new terminal when the terminal panel is activated, and not on focus 2023-05-19 16:07:47 +02:00
Antonio Scandurra
924ec961ff Toggle project panel when opening new workspace in a dock-agnostic way 2023-05-19 15:27:18 +02:00
Antonio Scandurra
3d6b728364 Activate the correct panel when deserializing workspace 2023-05-19 14:18:11 +02:00
Kirill Bulatov
201d513c50 Show navigation history in the file finder modal
co-authored-by: Max <max@zed.dev>
2023-05-18 21:50:38 +03:00
Antonio Scandurra
f2ad17dbc0 WIP 2023-05-18 15:35:46 +02:00
Mikayla Maki
89d8bb1425
WIP: Add persistence to new docks 2023-05-17 17:34:20 -07:00
Max Brunsfeld
258723566f Rename settings::register_setting -> settings::register 2023-05-17 15:06:11 -07:00
Max Brunsfeld
2d5f03e148 Remove optional path argument when getting settings 2023-05-17 15:05:20 -07:00
Max Brunsfeld
67a25126d4 Define theme/ui text style settings in theme crate 2023-05-17 14:44:59 -07:00
Max Brunsfeld
89204e85c0 Merge branch 'main' into setting-store 2023-05-17 09:55:24 -07:00
Antonio Scandurra
4898417617 Drop foreign key constraint from workspaces.dock_pane to panes table
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
2023-05-17 18:21:35 +02:00
Antonio Scandurra
05fb051924 Store whether a panel is zoomed in the panel itself
Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
2023-05-17 17:51:11 +02:00
Antonio Scandurra
f097444546 Rebind ctrl-` to toggle terminal panel focus
Also, add `ctrl-~` to create new terminals.

Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
2023-05-17 17:35:10 +02:00
Antonio Scandurra
981129ef8e Show a panel/pane as zoomed only if it's the active item in workspace 2023-05-17 15:06:58 +02:00
Max Brunsfeld
6403bb86e1 Define workspace settings in workspace crate 2023-05-16 20:25:18 -07:00
Max Brunsfeld
39618ae32d Define language settings in the language crate 2023-05-16 17:29:53 -07:00
Kirill Bulatov
55950e52c2 Remove extra dbg! 2023-05-16 22:15:56 +03:00
Kirill Bulatov
be7a58b508 Finalize the CLI opening part 2023-05-16 21:07:48 +03:00
Kirill Bulatov
0c6f103899 Return proper items on workspace restoration.
co-authored-by: Mikayla <mikayla@zed.dev>
2023-05-16 21:07:48 +03:00
Antonio Scandurra
f87ae6032e Don't rely on action propagation for zooming in and out
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-05-16 10:34:50 -06:00
Antonio Scandurra
adf361b374 Implement zooming for panes and docks 2023-05-16 11:49:48 +02:00
Antonio Scandurra
c03e470fe6 Introduce Panel::can_zoom 2023-05-15 17:10:30 +02:00
Kirill Bulatov
18e0ee44a6 Remove redundant scopes and actions to fix the focus toggle on ESC
co-authored-by: Antonio <antonio@zed.dev>
2023-05-15 13:10:15 +03:00
Nathan Sobo
ba50b35de6 wip 2023-05-13 14:34:09 -06:00
Nathan Sobo
6c60853842 Don't close panel on event unless active; add tests 2023-05-12 15:44:09 -06:00
Nathan Sobo
bd795d7607 Preserve panel size when re-docking between left and right 2023-05-12 15:15:11 -06:00
Nathan Sobo
214354b4da Make panels independently resizable 2023-05-12 09:44:14 -06:00
Max Brunsfeld
cee7edabf9 Ensure the SettingsStore global is added in tests 2023-05-10 16:39:59 -07:00
Nathan Sobo
5549669316 Test moving panels
Co-Authored-By: Julia Risley <julia@zed.dev>
2023-05-10 10:41:03 -06:00
Mikayla Maki
c7fcc031eb
Merge pull request #2460 from zed-industries/show-dock-on-activate
Fix bug with terminal button
2023-05-10 09:08:45 -07:00
Nathan Sobo
cc21421ea8 Rename item to panel in various locations 2023-05-10 09:54:20 -06:00
Mikayla Maki
0dce5ba7ae
Fix bug with terminal button 2023-05-10 08:15:20 -07:00
Antonio Scandurra
0ccb4a50e6 Create more specific dock position settings associated with each panel 2023-05-10 16:52:10 +02:00
Antonio Scandurra
e507eadb4b Rely on root getting re-focused when panel isn't rendered
This achieves two things:

- When a panel like `TerminalPanel` closes its last tab, the focus
is returned to the root view (the `Workspace`)
- When a panel is moved from a dock to another, it will get rendered
in another spot but the focus will be kept on the panel

This also ensures the focus is not lost when a panel is moved from
a dock to another because that view
2023-05-10 15:43:44 +02:00
Antonio Scandurra
cdcb7c8084 Merge branch 'main' into panels 2023-05-10 15:23:37 +02:00
Antonio Scandurra
f28eee88b6 Add context menu to change panel position 2023-05-10 14:05:48 +02:00
Antonio Scandurra
8fa379bbc5 Maintain panel visibility when changing its position 2023-05-10 11:06:37 +02:00
Kirill Bulatov
dfdf7e4866 Test the search inclusions/exclusions 2023-05-10 11:11:31 +03:00
Kirill Bulatov
3da55c14a6 Fix arrow layout 2023-05-10 11:11:31 +03:00
Kirill Bulatov
13296d502c Extra rows approach draft
co-authored-by: Max <max@zed.dev>
2023-05-10 11:11:31 +03:00
Nathan Sobo
f554877ff4 Render the bottom dock buttons before the right dock buttons 2023-05-09 17:41:24 -06:00
Nathan Sobo
6a7feb4c4c Allow the project panel to be docked right or left
Co-Authored-By: Joseph Lyons <joseph@zed.dev>
2023-05-09 17:26:54 -06:00
Nathan Sobo
6d16d2224d Merge branch 'main' into panels 2023-05-09 16:35:04 -06:00
Mikayla Maki
0214228689
Fix format 2023-05-09 12:54:53 -07:00
Nathan Sobo
6645323f1b WIP 2023-05-09 13:28:34 -06:00
Mikayla Maki
6dfb48dbd5
Fix center items not being activated when deserialized 2023-05-09 12:27:07 -07:00
Mikayla Maki
8d561d6408
Make dock not eagerly steal focus from sub items 2023-05-09 12:00:09 -07:00
Antonio Scandurra
8f12489937 WIP: Allow panels to be moved
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-05-09 18:57:25 +02:00
Antonio Scandurra
45df09245b Remove unused code
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-05-09 18:06:59 +02:00
Antonio Scandurra
37d3ed5f5f Focus new item if pane was focused when removing previous active item
Previously, we were relying on the item getting blurred and the workspace
receiving focus, which would in turn focus the active pane. This doesn't
play well with docks because they aren't part of the workspace panes.
2023-05-09 17:38:54 +02:00
Antonio Scandurra
634b699281 Allow customization of Pane tab bar buttons 2023-05-09 15:05:29 +02:00
Antonio Scandurra
ad7f32d7d2 Fix bottom dock resizing 2023-05-09 14:46:15 +02:00
Antonio Scandurra
26fe7a81f3 Prevent splits in the terminal panel 2023-05-09 12:29:16 +02:00
Antonio Scandurra
e6be35c9a5 Show terminal count in panel button 2023-05-09 12:21:35 +02:00
Antonio Scandurra
02066afb0e Don't pass &mut Workspace when closing items in a Pane
This allows closing items via actions even in the `TerminalPanel`
where the `Pane` is not directly owned by a `Workspace`.
2023-05-09 11:45:39 +02:00
Antonio Scandurra
506f978c41 Automatically close terminal dock when the last terminal was closed 2023-05-09 10:18:11 +02:00
Antonio Scandurra
916612caf1 Prevent dragging items that aren't terminals to the terminal panel 2023-05-09 10:18:11 +02:00
Antonio Scandurra
6ddc610fa2 WIP: Start on TerminalPanel 2023-05-09 10:18:11 +02:00
Nathan Sobo
1ddbda5095 Rename DockItem to Panel 2023-05-09 10:18:11 +02:00
Nathan Sobo
03f8c1206a Rename Sidebar to Dock 2023-05-09 10:18:10 +02:00
Nathan Sobo
1919a826f9 Remove dock from workspace 2023-05-09 10:18:10 +02:00
Mikayla Maki
fa049bea6e
Refactor and fix format 2023-05-08 17:32:40 -07:00
Mikayla Maki
49335d017a
Add manual removal code to remove_panes 2023-05-08 17:25:28 -07:00
Mikayla Maki
9b2d3fcd48
Fully remove panes and update internal data structures 2023-05-08 17:09:29 -07:00
Antonio Scandurra
0296974ab1
Merge pull request #2441 from zed-industries/implicit-ancestry
Determine view ancestry during layout
2023-05-05 10:58:00 +02:00
Antonio Scandurra
80ad59a620 Make focusing the parent an effect to avoid querying ancestors 2023-05-05 10:04:54 +02:00
Julia
eacea55aaf Fixup cases using buffer model handle id as buffer id 2023-05-04 12:32:31 -04:00
Antonio Scandurra
d6b0569bed Merge branch 'main' into implicit-ancestry 2023-05-04 17:19:06 +02:00
Antonio Scandurra
64e0c16baa Use Workspace::toggle_sidebar_item when clicking on sidebar button
Previously, we were mistakenly using `Sidebar::toggle_item`, which only
performs part of the toggle operation.
2023-05-04 17:06:37 +02:00
Antonio Scandurra
da19edc3e3 Merge branch 'main' into implicit-ancestry 2023-05-04 14:39:58 +02:00
Antonio Scandurra
3d679ddb26 Avoid re-allocating KeymapContext after every view notification 2023-05-04 12:04:30 +02:00
Antonio Scandurra
f6f18be9c3 Remove WindowContext::is_child_focused 2023-05-04 09:53:35 +02:00
Antonio Scandurra
92183e0d72 Ensure querying keystrokes or actions is safe
This is achieved by moving `available_actions` into `AsyncAppContext` (where
we know no view/window is on the stack) and `keystrokes_for_action` into `LayoutContext`
where we'll fetch the previous frame's ancestors and notify the current view if those
change after we perform a layout.
2023-05-04 09:53:31 +02:00
Max Brunsfeld
9d41f83b1b Merge branch 'main' into copilot-disabled-globs 2023-05-03 10:53:28 -07:00
Max Brunsfeld
8eb1312deb Add copilot menu item for enabling paths by glob 2023-05-03 10:14:01 -07:00
Antonio Scandurra
9e8f852afb Remove ViewContext::is_child 2023-05-03 19:09:07 +02:00
Antonio Scandurra
e9ed40da37 Remove the ability to retrieve the view's parent 2023-05-03 16:52:55 +02:00
Antonio Scandurra
7f137ed3dd Compute view ancestry at layout time 2023-05-03 16:36:14 +02:00
Antonio Scandurra
7f345f8bf5 Separate Window::build_scene into layout and paint 2023-05-03 12:18:16 +02:00
Antonio Scandurra
70f8cf4cf6 Move methods querying window state into AsyncAppContext 2023-05-02 19:38:48 +02:00
Antonio Scandurra
780ece551e Defer hiding the dock and going back/forward when Pane is on the stack 2023-05-01 17:06:05 +02:00
Antonio Scandurra
c4472b0786 Remove ViewContext::dispatch_action 2023-05-01 16:27:36 +02:00
Antonio Scandurra
d815fc88ae Remove ViewContext::dispatch_any_action 2023-05-01 14:24:00 +02:00
Antonio Scandurra
4bcba487c5 Remove SplitWithProjectEntry internal action 2023-04-28 12:19:38 +02:00
Antonio Scandurra
272039a858 Remove SplitWithItem internal action 2023-04-28 12:17:31 +02:00
Antonio Scandurra
6857426b78 Remove RemoveWorktreeFromProject internal action 2023-04-28 12:11:59 +02:00
Antonio Scandurra
71a4bc7905 Remove OpenSharedScreen internal action 2023-04-28 12:09:34 +02:00
Antonio Scandurra
d953729233 Remove JoinProject internal action 2023-04-28 11:22:04 +02:00
Antonio Scandurra
f881f9e3d8 Remove ToggleFollow internal action 2023-04-28 10:07:44 +02:00
Antonio Scandurra
06c01a5937 Eliminate OpenPaths global action for workspace and replace with methods
We no longer want to invoke this with dispatch_action.
2023-04-27 18:36:28 -06:00
Antonio Scandurra
6cbc1dcd87 💄 2023-04-27 14:56:16 +02:00
Antonio Scandurra
20e38d2def Remove OpenProjectEntryInPane internal action 2023-04-27 14:51:02 +02:00
Antonio Scandurra
b6437d6d9e Remove Toast and DismissToast internal actions 2023-04-27 14:43:10 +02:00
Antonio Scandurra
2950344c25 Remove internal actions from Dock 2023-04-27 14:29:15 +02:00
Antonio Scandurra
022368225e Remove internal actions from Pane 2023-04-27 14:23:26 +02:00
Antonio Scandurra
5521ff1b22 Allow passing a handler function to context menu items 2023-04-27 11:32:12 +02:00
Antonio Scandurra
6317e885c7 Don't allow strong view handles to be read/updated with an AsyncAppContext
This avoids an invitation to hold strong view handles across async await
points, which is a common source of leaks.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-04-26 13:36:13 +02:00
Antonio Scandurra
689e878bd8 Use a WeakViewHandle in Client for view message handlers 2023-04-26 12:21:02 +02:00
Antonio Scandurra
57beec6071 Allow direct read/update of WeakViewHandle only in AsyncAppContext 2023-04-26 12:20:57 +02:00
Antonio Scandurra
2b6830c798 Remove unnecessary calls to WeakViewHandle::upgrade 2023-04-26 11:13:46 +02:00
Antonio Scandurra
94c2eaad23 Replace ViewContext::spawn with ViewContext::spawn_weak 2023-04-26 10:23:27 +02:00
Antonio Scandurra
7ca412ade3 Merge remote-tracking branch 'origin/main' into fewer-context-traits 2023-04-26 09:54:58 +02:00
Max Brunsfeld
ebbe52e6b0 🎨 Specify more dependencies at the workspace level 2023-04-24 17:41:55 -07:00
Max Brunsfeld
abdccf7393 Use a workspace dependency for the futures crate 2023-04-24 09:43:31 -07:00
Antonio Scandurra
c165fb9be5 Remove ReadView and UpdateView traits
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-04-24 17:36:14 +02:00
Nathan Sobo
993dbf86cb Merge remote-tracking branch 'origin/main' into into-element 2023-04-21 14:27:25 -06:00
Nathan Sobo
fe492eacbf Refine naming of element-related types and traits
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-04-21 13:06:37 -06:00
Antonio Scandurra
03619dfa55 Rename Drawable::boxed to into_element and make containers generic
Multi-element are now generic over any drawable child, which can be converted
into an element.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-04-21 12:43:19 -06:00
Mikayla Maki
69273648b3
Merge pull request #2402 from zed-industries/fix-panics
Fix panic in pane.rs
2023-04-22 05:53:48 +12:00
Mikayla Maki
b8fd6435d7 Fix test covering this case 2023-04-21 10:48:34 -07:00
Mikayla Maki
aa2af53f56 Align return of close_active_item to match original format 2023-04-21 10:44:27 -07:00
Mikayla Maki
6ee0d104d6 Fix panic in remove active item 2023-04-21 10:08:52 -07:00
Antonio Scandurra
8c7f821d14 Introduce a new WindowContext::remove_window API
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-04-21 16:39:53 +02:00
Antonio Scandurra
5b40641fde Take a target view when marking an element as draggable 2023-04-21 15:52:05 +02:00
Antonio Scandurra
c76b9794e4 Merge branch 'main' into window_context_2 2023-04-21 10:58:08 +02:00
Max Brunsfeld
32c57bcd22 Store buffer's diagnostic sets in a smallvec 2023-04-20 08:58:41 -07:00
Antonio Scandurra
c52b6328b7 Merge branch 'main' into window_context_2 2023-04-20 16:01:47 +02:00
Nathan Sobo
d70644618a WIP: Make PickerDelegate a fully owned object instead of a view
This avoids issues with the parent view being on the stack when we want to
interact with the delegate from the picker. Still have several picker usages
to convert.
2023-04-19 22:05:29 -06:00
Max Brunsfeld
7cc868bc8c When opening projects, only reuse the current window if it is empty 2023-04-18 17:05:26 -07:00
Julia
4c086a4836
Merge pull request #2385 from zed-industries/rerender-breadcrumbs-on-focus-change
Re-render toolbar items when updating their knowledge of pane focus
2023-04-18 15:13:53 -04:00
Julia
721baf5746 Re-render toolbar items when updating their knowledge of pane focus 2023-04-18 14:56:39 -04:00
Joseph Lyons
304eddbbe4 Remove unnecessary lifetimes from tab_description 2023-04-18 14:15:56 -04:00
Joseph Lyons
9afd804062 Remove unnecessary lifetimes from tab_tooltip_text 2023-04-18 14:03:02 -04:00
Antonio Scandurra
eee39b4c5c Don't capture Workspace handle in defer when rendering Dock
GPUI already provides a mutable reference to the `Workspace` in the
`defer` callback.
2023-04-18 17:41:40 +02:00
Antonio Scandurra
d03c431f9a Fix warnings/errors now that AsyncAppContext::update returns Result 2023-04-18 14:58:57 +02:00
Antonio Scandurra
31e6bb4fc1 Return Result from AsyncAppContext::update_view 2023-04-18 12:03:53 +02:00
Antonio Scandurra
493a418c91 WIP 2023-04-17 18:52:48 +02:00
Antonio Scandurra
38ab6b123f Make production code compile again 2023-04-17 12:33:33 +02:00
Joseph Lyons
ebe57254e0 Add tab tooltips 2023-04-15 06:46:14 -04:00
Antonio Scandurra
a820862165 Take WindowContext in workspace::ItemHandle methods 2023-04-14 16:36:23 +02:00
Antonio Scandurra
060242a28a Take a WindowContext in StatusItemViewHandle::set_active_pane_item 2023-04-14 14:26:20 +02:00
Antonio Scandurra
74ca223114 Fix formatting for the entire workspace 2023-04-14 12:08:33 +02:00
Antonio Scandurra
33bc47dbe2 Merge branch 'main' into window_context_2 2023-04-14 12:07:09 +02:00