K Simmons
2bd0819ac8
Extract tab bar from workspace
2022-07-26 10:41:02 -07:00
ForLoveOfCats
36d789ff84
Allow closing tabs with the middle mouse button
2022-07-25 14:23:38 -04:00
K Simmons
d6519ad280
Minor naming improvements and revert empty pane background color change
2022-07-21 14:56:17 -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
Nate Butler
bcc554a3db
Merge branch 'main' into theme-improvements
2022-07-19 20:12:02 -04:00
Nate Butler
46384e71b7
Add icon sets for sizes 8, 12 and 16, remove old icons
2022-07-19 17:11:15 -04:00
K Simmons
8add81350e
Rework presenter and MouseRegion to use Handler hashmap rather than individual fields
2022-07-17 23:19:32 -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
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
K Simmons
52b29c0928
When tab closed, move to previous tab, and when opening an existing tab, reorder it to be after the current active tab
2022-07-13 20:14:44 -07:00
Antonio Scandurra
9677db9f8f
Deploy context menu when clicking on split icon
2022-07-13 12:15:36 +02:00
Antonio Scandurra
c87efb0dbc
Show split button at the right edge of the tab bar
2022-07-13 11:44:33 +02:00
Max Brunsfeld
a378ec49ec
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
7e5cf6669f
Add forward and backward navigation buttons to toolbar
2022-07-06 14:05:24 -07:00
Antonio Scandurra
ab4931da65
Prevent autosave for deleted files
2022-07-06 17:25:33 +02:00
Antonio Scandurra
9286893177
Save item when closing it if autosave on focus change is enabled
2022-07-06 17:04:41 +02:00
Antonio Scandurra
b937c1acec
Move autosave logic up into Workspace
and Pane
2022-07-06 16:33:22 +02:00
Max Brunsfeld
581c9af395
Adjust pane, tab, panel management bindings to match VS Code
2022-06-29 15:33:46 -07:00
Antonio Scandurra
57f34c6992
💄
2022-06-28 08:04:39 +02:00
Antonio Scandurra
c6e7ae528f
Add test for reopening closed items
2022-06-27 17:59:25 +02:00
Antonio Scandurra
0652542f60
Introduce pane::ReopenClosedItem
bound to cmd-shift-t
2022-06-27 17:44:33 +02:00
Antonio Scandurra
a21dbdd0d6
Update window edited status when pane item is removed
2022-06-23 14:28:10 +02:00
Antonio Scandurra
da1eb91935
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
3a69943df3
Require that PartialEq
is implemented for Action
2022-06-06 09:18:44 +02:00
Antonio Scandurra
d180f7a2c3
Jump to primary diagnostic when clicking on header's jump icon
2022-05-31 16:25:14 +02:00
Antonio Scandurra
20e1044d49
Merge branch 'main' into project-panel-with-new-mouse-events
2022-05-30 18:29:46 +02:00
Max Brunsfeld
a88b4eb3c5
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
82d6e606fc
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
Nathan Sobo
893f15ddab
Switch MouseEventHandler to use MouseRegions
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-05-26 20:00:01 -06:00
Max Brunsfeld
ece8604547
Fix comments in Pane::close_items
2022-05-23 18:07:22 -07:00
Max Brunsfeld
0becbe482a
Distinguish between singleton and non-singleton workspace items
...
* Prompt to save singleton items before non-singleton ones
* Don't prompt to save multi-buffers if they contain excerpts to items that are open elsewhere and not being closed.
Co-authored-by: Nathan Sobo <nathan@zed.dev>
2022-05-23 16:03:00 -07:00
Max Brunsfeld
fbd589b589
Start work on handling multibuffers properly when closing unsaved buffers
2022-05-22 16:48:33 -07:00
Max Brunsfeld
21206800bc
Add "Close Window" command
2022-05-20 16:53:03 -07:00
Max Brunsfeld
ef0b584532
Remove AppState from workspace actions
...
This allows those actions to be bound to keystrokes in the keymap.
Also, remove the WorkspaceParams struct, simplify how Workspaces are
constructed.
2022-05-19 14:37:26 -07:00
Antonio Scandurra
2e6cf2011d
When opening items via project panel, only focus them on double-click
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-05-05 15:27:27 +02:00
Antonio Scandurra
61346f734d
WIP
2022-05-05 15:15:58 +02:00
Max Brunsfeld
3636c9ec25
Load workspace and editor key bindings from a JSON file
2022-04-10 11:18:08 -07:00
Max Brunsfeld
fd4b81c8fc
Allow actions to be deserialized from JSON
...
Introduce separate macro for implementing 'internal' actions which
are not intended to be loaded from keymaps.
2022-04-08 15:47:51 -07:00
Max Brunsfeld
5242a3a6dc
Restructure action macro to assign a namespace to every action
...
Also, allow arbitrary types to be used as Actions via the impl_actions macro
Co-authored-by: Nathan Sobo <nathan@zed.dev>
Co-authored-by: Keith Simmons <keith@zed.dev>
2022-04-07 16:20:49 -07:00
Antonio Scandurra
52251c3463
Merge pull request #745 from zed-industries/scroll-tabs
...
Allow pane tabs to be scrolled when they overflow
2022-04-07 09:48:54 +02:00
Keith Simmons
67b15ee037
Use language specific tabsize in editor commands
...
Co-authored-by: Max Brunsfeld <max@zed.dev>
2022-04-06 15:10:29 -07:00
Max Brunsfeld
866ffdd4ae
Move Settings to its own crate
...
Co-authored-by: Keith Simmons <keith@zed.dev>
2022-04-06 10:23:33 -07:00
Antonio Scandurra
d7342e2875
Use Pane::activate_item
when navigating to remove duplicated logic
2022-04-06 09:31:54 +02:00
Antonio Scandurra
1453954ef4
Autoscroll to active tab when activating a new item
2022-04-06 09:08:44 +02:00
Nathan Sobo
ab3bbe1e17
Make the tabs scrollable when they overflow
...
This adds the ability to make a Flex element scrollable by passing a type tag and instance id, which we use to store the scroll position in an ElementStateHandle.
Still need to allow the element to auto-scroll.
2022-04-05 19:58:15 -06:00
Nathan Sobo
4f4364d510
Ensure we drop the last pane item
...
Previously, we weren't updating the toolbar's active item when emptying out a pane. This enhances an integration test to ensure that we don't hold references to any editors or buffers once we close everything.
2022-04-05 13:05:14 -06:00
Antonio Scandurra
c3b947ca26
Show unsaved/conflict prompt only when closing the last tab for an item
...
Also, ensure we show the correct prompt when files have conflicts.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-04-05 19:38:27 +02:00
Antonio Scandurra
cac0dddb1b
Restructure item closing to take the Workspace
instead of the Pane
2022-04-05 19:12:17 +02:00
Antonio Scandurra
5ef484c9a1
Update followers when navigating back and forth
2022-04-05 10:42:35 +02:00