Commit Graph
350 Commits
Author SHA1 Message Date
Max Brunsfeld 2fb2545b48 Give nav buttons a background on hover 2022-07-06 16:33:44 -07:00
Max Brunsfeld 4259f51c73 Add test for pane nav history covering notification of pane's toolbar 2022-07-06 16:29:11 -07:00
Max Brunsfeld 4adcffcc9f Enable and disable nav buttons based on pane's navigation stack
Also, make the `NavHistory` type private to the `workspace` crate.
Expose only the `ItemNavHistory` type, via a method on Pane called
`nav_history_for_item`.
2022-07-06 15:46:43 -07:00
Max Brunsfeld 53833d2e12 Add forward and backward navigation buttons to toolbar 2022-07-06 14:05:24 -07:00
Max Brunsfeld db9354e8a8 Treat window deactivation as a focus change for the purpose of autosave 2022-07-06 11:20:29 -07:00
Antonio Scandurra 8ba44e5f47 Prevent autosave for deleted files 2022-07-06 17:25:33 +02:00
Antonio Scandurra 79f438ed97 Save item when closing it if autosave on focus change is enabled 2022-07-06 17:04:41 +02:00
Antonio Scandurra 6ff2f165a7 Move autosave tests down into Workspace 2022-07-06 16:55:05 +02:00
Antonio Scandurra f879f75a45 Move autosave logic up into Workspace and Pane 2022-07-06 16:33:22 +02:00
Max Brunsfeld acc7492a9f Add application menu item to open default key bindings 2022-07-05 12:41:38 -07:00
Max Brunsfeld d791858a07 Adjust pane, tab, panel management bindings to match VS Code 2022-06-29 15:33:46 -07:00
Max Brunsfeld 3973098faf Exclude hidden worktrees from project's diagnostic summaries 2022-06-28 14:23:24 -07:00
Antonio Scandurra 03ce0f633f 💄 2022-06-28 08:04:39 +02:00
Antonio Scandurra 677db5fcd1 Add test for reopening closed items 2022-06-27 17:59:25 +02:00
Antonio Scandurra e8aa673c39 Introduce pane::ReopenClosedItem bound to cmd-shift-t 2022-06-27 17:44:33 +02:00
Antonio Scandurra d0a3f73907 Update window edited status when pane item is removed 2022-06-23 14:28:10 +02:00
Antonio Scandurra ae5c838ee4 Always prevent window from closing and manually invoke Workspace::close
This ensures we ask the user to save their state if there are unsaved
changes.
2022-06-23 11:44:14 +02:00
Antonio Scandurra 0fe62ab0ab Set window's edited = true when there are unsaved changes 2022-06-23 10:59:50 +02:00
Antonio Scandurra 5589b9d345 Replace "Remove Folder from Project" label with "Remove from Project` 2022-06-20 10:53:26 +02:00
Max Brunsfeld 91d7e33ce5 Return focus to the workspace center on escape 2022-06-16 11:30:02 -07:00
Antonio Scandurra 7fbfa16b68 Open a buffer for every language server error when clicking on status 2022-06-16 10:00:29 +02:00
Antonio Scandurra 2296e5a08d Add tooltip to follow collaborators 2022-06-15 17:08:39 +02:00
Antonio Scandurra 0fef627123 Add tooltips for sidebar buttons 2022-06-15 13:50:04 +02:00
Antonio Scandurra 87394db13d Replace pane::Split action with Split{Left,Up,Right,Down}
This allows us to show them in the command palette.
2022-06-15 13:06:59 +02:00
Antonio Scandurra 297842b911 Broadcast only visible worktree root names 2022-06-14 15:15:23 +02:00
Antonio Scandurra ebcbcc3956 Prevent setting files from showing up in project and contacts panels 2022-06-14 14:47:16 +02:00
Max Brunsfeld a71a9eb665 Prompt to save changes before quitting the app 2022-06-10 17:26:33 -07:00
Antonio Scandurra 77224e023a Require that PartialEq is implemented for Action 2022-06-06 09:18:44 +02:00
Antonio Scandurra ca99157d9e Capture mouse events when rendering disconnected overlay
We do so by replacing `EventHandler::capture` with a new `::capture_all` method.
After switching to mouse regions as part of zed-industries/zed#1081, overriding
`dispatch_event` on `EventHandler` wasn't enough anymore because mouse interactions
take place on a privileged code path that runs *before* dispatching any event.

With this change, `EventHandler` will now push a mouse region that intercepts all
mouse interactions, as well as pushing a cursor region that resets the cursor style
to `Arrow`.

One interesting change as part of this is that we've removed the ability to see which
event we are capturing: we were not using this capability anyway and `capture_all` provides
a simpler interface, so I went with that. In the future, we can opt into capturing specific
events or mouse interactions if there's a code path that needs that.
2022-06-04 10:41:29 +02:00
Max Brunsfeld 99fb11eb53 Rename a public/private to online/offline in a few more places 2022-06-03 17:08:44 -07:00
Max Brunsfeld 20565017ec Rename project's 'public'/'private' flag to 'online'/'offline' 2022-06-03 14:39:06 -07:00
Max BrunsfeldandAntonio Scandurra b431b4b421 Move persistence and restoration logic from workspace into project
Co-authored-by: Antonio Scandurra <me@as-cii.com>
2022-06-03 11:52:14 -07:00
Max BrunsfeldandAntonio Scandurra c2e18bda45 Add tooltip to the toggle public button in the contacts panel
Co-authored-by: Antonio Scandurra <me@as-cii.com>
2022-06-03 10:36:29 -07:00
Max Brunsfeld 6263737ec8 Use rocksdb to store project paths' public/private state 2022-06-02 17:38:33 -07:00
Max Brunsfeld 4bb17889e8 Allow making projects private 2022-06-02 17:32:42 -07:00
Max Brunsfeld f04e05f966 Show private projects in the contacts panel
Introduce a ProjectStore that lets you iterate through all open projects.
Allow projects to be made public by clicking the lock.
2022-06-02 17:29:11 -07:00
Max Brunsfeld ae57175611 Start work on private projects 2022-06-02 17:29:11 -07:00
Antonio Scandurra eaf133b04e Jump to primary diagnostic when clicking on header's jump icon 2022-05-31 16:25:14 +02:00
Antonio Scandurra 025f9af73b Cap MessageStream buffer size to 1MB
We temporarily let it grow when the message size exceed the limit,
but restore the buffer's capacity shortly after. This ensures that,
for each connection in its entire lifetime, we only ever use 1MB.
2022-05-31 11:16:32 +02:00
Antonio Scandurra cf0c9b089c Merge branch 'main' into project-panel-with-new-mouse-events 2022-05-30 18:29:46 +02:00
Max Brunsfeld b07d00020e Populate the window title whenever worktrees or active path change
* Refactor the way the project's active entry is assigned. Assign it
  together with the window title, as opposed to on every notification
  from a pane.
* Emit the ActiveItem event from panes consistently, even when adding
  the first item to an empty pane.
2022-05-27 10:51:14 -07:00
Antonio Scandurra d71e5455a0 Merge branch 'mouse-events' into project-panel-context-menu 2022-05-27 12:07:00 +02:00
Antonio Scandurra 6d92c9188c Use a MouseEventHandler for activating tabs on mouse down
Previously, we were using an `EventHandler` which doesn't take into
account other mouse regions floating above the rendered element. This
was problematic because, when clicking the `x` icon on a tab that was
not active, we were first activating it and then closing it.
2022-05-27 11:43:58 +02:00
Antonio Scandurra 351ac2bd38 Don't focus editor when clicking on sidebar resize handle 2022-05-27 11:36:37 +02:00
Nathan SoboandMax Brunsfeld eb71ed400b Switch MouseEventHandler to use MouseRegions
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-05-26 20:00:01 -06:00
Antonio Scandurra 355f8469f2 Introduce keyboard navigation in context menus 2022-05-26 16:36:30 +02:00
Antonio Scandurra 919d5fd68b Start adding project panel context menu actions 2022-05-26 15:23:40 +02:00
Nathan Sobo 287aff941e Render a context menu when right-clicking in project panel
It doesn't currently do anything, but I managed to get it rendering in an absolutely positioned way.
2022-05-26 09:59:25 +02:00
Antonio Scandurra ce06f5ef2a Pretty-print JSON of server snapshot 2022-05-26 09:34:39 +02:00
Max Brunsfeld d14224a54d Merge pull request #1027 from zed-industries/missing-menu-commands
Add missing File menu commands, improve handling of unsaved multibuffers
2022-05-23 21:29:32 -07:00