Compare commits

..

7697 Commits

Author SHA1 Message Date
Max Brunsfeld
9ec697390d Move Participant and ParticipantLocation down into client crate 2024-01-05 17:09:18 -08:00
Max Brunsfeld
be56f775d4 Move live_kit re-exports to main call module 2024-01-05 17:01:40 -08:00
Max Brunsfeld
a0049f8d16 Move audio + video tracks off of participant struct
This way, that struct can be used in the project crate.
2024-01-05 16:57:52 -08:00
Max Brunsfeld
a7901ab8e0 following tests (#3902)
Starting work on the following tests.

* The first failure was caused by not properly dropping the references,
which is now fixed.
* The next failure is caused by a `cx.after_window_update` being changed
to `cx.on_next_frame`. This doesn't seem to work (at least in tests),
but might also explain the flaky following behavior Max and I observed
if there's a timing bug in production too.
* * When you are following someone and they move their cursor you should
receive two proto messages: UpdateBuffer to move the cursor, and
UpdateFollowers to update where you're following. It seems like this
could be made a bit less chatty/fragile, but probably out of scope for
this.
* With that worked around, there's one more failure, but I haven't
looked into it yet. (possibly caused by an incorrect fix for the cx
one).
2024-01-05 15:44:57 -08:00
Conrad Irwin
385cbfea2d Tidy up context usage
Co-Authored-By: Max <max@zed.dev>
2024-01-05 16:35:20 -07:00
Conrad Irwin
709682e8bc Tidy up TestContext lifecycle
Co-Authored-By: Max <max@zed.dev>
2024-01-05 16:31:41 -07:00
Conrad Irwin
c7568a7d37 All the following tests
Co-Authored-By: Max <max@zed.dev>
2024-01-05 16:18:01 -07:00
Conrad Irwin
204ef451d0 Merge branch 'main' into following-tests 2024-01-05 16:14:12 -07:00
Conrad Irwin
f239a8292e More following tests 2024-01-05 16:13:40 -07:00
Conrad Irwin
81d707adbc Port 1.00 following tests
Co-Authored-By: Max <max@zed.dev>
2024-01-05 15:55:33 -07:00
Max Brunsfeld
7e810d7e0d Restore the ability to disable key bindings by setting them to null in your keymap (#3921)
* Fix an incorrect use of `Any::type_id` that prevented the disabling of
key bindings
* Restructured the representation of disabled key bindings so that they
handle context predicates correctly. Previously, to disable key binding,
you needed to supply the exact same context predicate (e.g. `Editor &&
mode == "full"`) as the binding that you are trying to disable. Now, the
context predicates of disabled key bindings are evaluated just like any
other context predicate (with the current context) to see if they apply.

Release Notes:

- Fixed an issue where disabling key bindings didn't work. To disable a
key binding, set it to `null` in your keymap.
2024-01-05 13:51:47 -08:00
Marshall Bowers
be98ff408e Iterate on design of channel management modal (#3923)
This PR refines the design of the channel management modal:

#### Before

<img width="585" alt="Screenshot 2024-01-05 at 4 17 32 PM"
src="https://github.com/zed-industries/zed/assets/1486634/a6d96674-b688-4549-8fb8-0a7b2c7c88be">

#### After

<img width="589" alt="Screenshot 2024-01-05 at 4 15 20 PM"
src="https://github.com/zed-industries/zed/assets/1486634/31ae8dc1-a129-4a15-963e-9779b9b79bd9">

Release Notes:

- Improved the look of the channel management modal.
2024-01-05 16:22:43 -05:00
Max Brunsfeld
8a96562adf Handle contexts correctly for disabled key bindings 2024-01-05 13:06:59 -08:00
Marshall Bowers
6cb8b86aeb Tidy up styling of connection status in the title bar (#3922)
This PR tidies up the styling of the connection status indicators in the
title bar.

Removed some debug styles and tweaked the styling to match the rest of
the title bar overall.

Release Notes:

- Improved the connection status indicators in the title bar.
2024-01-05 15:36:30 -05:00
Conrad Irwin
573b74906f Deploy tweaks (#3920)
Bugs from the 0.34.0 collab nightly deploy
2024-01-05 13:32:47 -07:00
Conrad Irwin
0dfeae6e24 Deploy tweaks 2024-01-05 13:24:29 -07:00
Marshall Bowers
ff82fb980b Gracefully prevent submitting feedback while in a shared project (#3919)
This PR fixes a panic that would occur when trying to submit feedback
while within a shared project.

There may be a way we want to support this in the future, but for now we
just show a toast letting the user know this is not supported:

<img width="415" alt="Screenshot 2024-01-05 at 2 46 02 PM"
src="https://github.com/zed-industries/zed/assets/1486634/d3eff4d9-90ba-4257-9857-19b1bc933cf3">

Release Notes:

- Fixed a panic when attempting to open the feedback modal while in a
shared project.
2024-01-05 15:03:09 -05:00
Nate Butler
fa40433125 Remove old theme system (#3883)
This PR removes the old typescript-based theme system, and it's related
functions.

TODO:
- [x] Create standalone repo of old theme system in case it is needed.
  - https://github.com/zed-industries/zed1-styletrees
- [x] Remove `styles`
- [x] Remove licenses generating code related to `styles`
- [x] Remove docs related to old theme system
- [x] Add license generation to new theme system (#3917)
- [x] Check as best possible that all the places we were accessing
`styles` are removed or updated.

Note: For now, the JSON files in `assets/themes` will remain until we
are finished with the Zed 1 theme importer. We should be able to remove
those in the next few weeks.

Release Notes:

- N/A
2024-01-05 14:42:14 -05:00
Marshall Bowers
79cccdb6d1 Use regular text color for diagnostic popovers (#3918)
This PR updates the diagnostic popovers to use the regular editor text
color rather than one specific to the diagnostic kind.

Release Notes:

- Updated text color in diagnostic popovers.
2024-01-05 14:13:43 -05:00
Marshall Bowers
1e7e3804f2 Merge branch 'main' into remove-old-theme 2024-01-05 13:39:45 -05:00
Marshall Bowers
c7c874a371 Decouple theme license generation from TypeScript theme definitions (#3917)
This PR decouples the generation of licenses for the themes we ship from
the TypeScript theme definitions.

For now, we are embedding the license information for the themes in the
`theme_importer`, and emit a combined `LICENSES` file in the `theme`
crate whenever we import themes. This is also where we check that each
theme has a valid license.

We then use this `LICENSES` file when building up the global license
file for Zed.

This decoupling is one step towards us being able to delete the old Zed1
styles.

Release Notes:

- N/A
2024-01-05 13:38:12 -05:00
Piotr Osiewicz
254a52d0a1 gpui: Remove dependency on sqlez (#3871)
This removes one of the path dependencies in gpui that's only really
needed by `workspace` (which can work around lack of these
implementations by itself). In theory it should also improve build
scheduling (as gpui doesn't have to wait for main dependency of sqlez -
libsqlite3 - to finish it's 25 seconds-long build in release), though in
practice I didn't notice a substantial improvement.
Moreover `sqlez` was unused by `settings` too, so that's removed
as well.

Release Notes:

- N/A
2024-01-05 19:36:55 +01:00
Conrad Irwin
15d8fed378 collab 0.34.0 2024-01-05 11:30:00 -07:00
Conrad Irwin
1a993ca496 Read-only access for channel guests (#3841) 2024-01-05 11:21:18 -07:00
Conrad Irwin
460b364daf Disable Dangerous Downtime-causing Default (#3873)
According to
https://docs.digitalocean.com/products/kubernetes/how-to/configure-load-balancers/#ssl-certificates

you can specify whether to disable automatic DNS record
creation for the certificate upon the load balancer’s creation using the
do-loadbalancer-disable-lets-encrypt-dns-records annotation. If you
specify true, we will not automatically create a DNS A record at the
apex of your domain to support the SSL certificate.
2024-01-05 11:21:03 -07:00
Kirill Bulatov
94d0fe9ff0 Fix current lsp logs menu item not shown as selected (#3916)
Release Notes:

- Fixed current LSP logs menu item not shown as selected
2024-01-05 19:29:12 +02:00
Kirill Bulatov
12b5dbff68 Fix current lsp logs menu item not shown as selected 2024-01-05 19:23:15 +02:00
Conrad Irwin
c066480e31 Fix dock right click labels (#3626)
Release Notes:

- N/A
2024-01-05 10:08:58 -07:00
Marshall Bowers
4644d55493 Upgrade ctor to v0.2.6 (#3915)
This PR upgrades our version of `ctor` to v0.2.6.

We were previously using a fork that contained this fix:
https://github.com/mmastrac/rust-ctor/pull/295.

A new version of `ctor` has now been released with that change, so we
can switch back to the mainline version.

I scanned through the diff between versions (since we're upgrading from
effectively v0.1.20) and didn't notice anything that seemed obviously
breaking:
564b87f1dc...ee6b4b1c7b

Release Notes:

- N/A
2024-01-05 12:08:41 -05:00
Conrad Irwin
3c0052850c Merge branch 'main' into channel-guests 2024-01-05 10:05:59 -07:00
Joseph T. Lyons
7cc006822b Bump nu tree sitter dependency (#3914)
My contact over at nushell told me they are finally getting some fixes
in on the tree sitter repo, as they have an enthusiastic user running
around opening PRs - figured it would be good to bump this again, since
it wasn't in a great place before.

https://github.com/nushell/tree-sitter-nu/commits/main/

Release Notes:

- Bumped `nu` tree sitter dependency
2024-01-05 12:03:43 -05:00
Conrad Irwin
df0076a4eb Better TestWindow support (#3876)
Adding guest roles led us down a rabbit hole where we'd have liked to
rely on a
side-effect of activating a window in tests; but the test window didn't
implement that.

Looking into that, I realized our TestWindow wasn't doing a great job of
emulating the MacWindow, so this makes the two more similar.
2024-01-05 09:59:48 -07:00
Conrad Irwin
fa73cf3983 Correct dock menu names 2024-01-05 09:58:07 -07:00
Joseph T. Lyons
c57a556c4c Bump nu tree sitter dependency 2024-01-05 11:57:26 -05:00
Conrad Irwin
06ab986599 fmt 2024-01-05 09:52:39 -07:00
Marshall Bowers
ea43d7a5c6 Iterate on design of project search bar (#3913)
This PR iterates on the design of the project search bar:

- Mode selections have been updated to use `ToggleButton`s
- Spacing has been added between the various elements.

Release Notes:

- Improved the look of the project search bar.
2024-01-05 11:48:52 -05:00
Kirill Bulatov
5935979a96 Set a minimum size for the search input field (#3912)
Release Notes:

- Show search input field wider for narrow panes
2024-01-05 18:46:48 +02:00
Marshall Bowers
319f18e962 Use the editor_background color for the project search empty state (#3911)
This PR updates the project search empty state to use the same
background color as the editor.

Release Notes:

- Updated the background color of the project search's empty state to
match the editor background.
2024-01-05 11:42:40 -05:00
Kirill Bulatov
6cc48b97dd Set a minimum size for the search input field 2024-01-05 18:41:40 +02:00
Marshall Bowers
0083ca38e3 Use the editor_background color for the welcome screen's background (#3910)
This PR updates the welcome screen to use the same background color as
the editor.

<img width="1136" alt="Screenshot 2024-01-05 at 11 28 19 AM"
src="https://github.com/zed-industries/zed/assets/1486634/30f2bd7b-e25f-4851-9f43-eb187d1d62e6">

Release Notes:

- Updated the background color of the welcome screen to match the editor
background.
2024-01-05 11:34:32 -05:00
Nate Butler
a205b2dbf3 Update call controls & Add tinted buttons (#3886)
This PR introduces Tinted button styles and the `selected_style` field
on buttons to allow replicating the previous design of titlebar call
controls. It also updates the styles of the titlebar controls.

### Creating a tinted button:

```
Button::new("accept-cta", "Accept")
    .style(ButtonStyle::Tinted(TintColor::Accent))
    .on_click(...)
```

Ths button will always be tinted blue.

### Creating a button that becomes tinted when selected::

```rust
IconButton::new("screen-share", Icon::Screen)
    .style(ButtonStyle::Subtle)
    .selected(is_screen_sharing)
    .selected_style(ButtonStyle::Tinted(TintColor::Accent))
    .on_click(...),
```

This button will be flat/subtle by default, but be tinted blue when it
is `selected`.

Note: There appears to be some issue where `is_deafened` isn't
activating correctly, making the speaker icon not toggle when selected.

Release Notes:

- Restore call control styles to a similar look to Zed 1.
2024-01-05 11:28:18 -05:00
Nate Butler
6c4350933f Update titlebar call status icons 2024-01-05 11:20:24 -05:00
Nate Butler
9d4d58a915 Implement Tinted buttons and selected_style for buttons 2024-01-05 11:19:58 -05:00
Marshall Bowers
c8dcc80a1f Respect the setting to show/hide the assistant and chat panels (#3909)
This PR makes it so we respect the setting to show/hide the assistant
and chat panels.

Resolves https://github.com/zed-industries/community/issues/2370.

Release Notes:

- Fixed an issue where the settings to show/hide certain panels were not
respected.
2024-01-05 11:17:29 -05:00
Kirill Bulatov
bf11a04410 Remove extra dbg!'s 2024-01-05 17:48:07 +02:00
Antonio Scandurra
eceed71824 Avoid leaking TerminalPanel, which would in turn leak Project (#3908)
Release Notes:

- Fixed a leak that would prevent projects from being automatically
unshared or left when closing the corresponding window.
2024-01-05 16:10:08 +01:00
Antonio Scandurra
b8539373aa Avoid leaking TerminalPanel, which would in turn leak Project 2024-01-05 15:54:23 +01:00
Kirill Bulatov
92d6a8c253 Return back git status colors for tab labels (#3906) 2024-01-05 13:52:51 +02:00
Piotr Osiewicz
a984a158fc gpui: Use async-task 4.7 2024-01-05 11:42:28 +01:00
Kirill Bulatov
3070a6ef26 Return back git status colors for tab labels 2024-01-05 12:38:42 +02:00
Antonio Scandurra
3e6b4a1298 Don't shift pane content when following someone (#3905)
Release Notes:

- Fixed a bug that would shrink the pane when following someone.
2024-01-05 11:01:23 +01:00
Antonio Scandurra
cf03ea2da9 Don't shift pane content when following someone 2024-01-05 10:55:33 +01:00
Kirill Bulatov
fbf2f790dd Return back old project search behavior as default. (#3892)
Add a `workspace::DeploySearch` action and use it as a default for
"cmd-shift-f" binding. This action opens existing search tab if it
exists, or creates a new one otherwise. `workspace::NewSearch` action is
still available and always opens an existing search tab.

Release Notes:

- Added a `workspace::DeploySearch` action and use it as a default for
"cmd-shift-f" binding. `workspace::NewSearch` action is still available
and always opens an existing search tab.
2024-01-05 11:35:28 +02:00
Conrad Irwin
fff415e3e9 Improve deactivate simulation 2024-01-04 22:06:52 -07:00
Conrad Irwin
1f09f98c9b Remove un-needed change 2024-01-04 22:06:12 -07:00
Conrad Irwin
319bfff14e Fix more tests broken by timing change 2024-01-04 21:34:56 -07:00
Conrad Irwin
9840a8427e Add LeakDetector for gpui2 (#3903)
Needed for debugging some fun following tests
2024-01-04 21:31:37 -07:00
Conrad Irwin
5037cca7ec Add LeakDetector for gpui2
Co-Authored-By: Julia <julia@zed.dev>
2024-01-04 20:29:44 -07:00
Conrad Irwin
22c3eb7d5f Uncomment editor tests (#3896)
Co-Authored-By: Julia <julia@zed.dev>

[[PR Description]]

Release Notes:

- (Added|Fixed|Improved) ...
([#<public_issue_number_if_exists>](https://github.com/zed-industries/community/issues/<public_issue_number_if_exists>)).
2024-01-04 20:00:04 -07:00
Conrad Irwin
4a7233f8f0 Fixy fix 2024-01-04 19:43:12 -07:00
Julia
a86f401a7c Moar terminal bugs de2ified (#3894)
Release Notes:

- N/A
2024-01-04 18:40:55 -05:00
Max Brunsfeld
1d09c9ad41 Fix accidental load of default keymap *after* loading user keymap (#3901) 2024-01-04 15:37:04 -08:00
Max Brunsfeld
c29a7f28b1 Fix terminal selection when cursor leaves terminal bounds (#3898)
Previously, terminal mouse selection didn't work when the cursor moved
outside the bounds of the terminal, which made it difficult to select
large amounts of text in the terminal.
2024-01-04 15:32:53 -08:00
Max Brunsfeld
ad20bc39c5 Fix accidental load of default keymap *after* loading user keymap
Co-authored-by: Mikayla <mikayla@zed.dev>
Co-authored-by: Marshall <marshall@zed.dev>
2024-01-04 15:31:00 -08:00
Piotr Osiewicz
783256c80e Move Registrar implementation for Workspace to outer scope.
This fixes various actions like "Activate regex mode" that were dispatched onto main pane instead of assistant search bar.
2024-01-05 00:10:23 +01:00
Piotr Osiewicz
b6655def70 Add DivRegistrar to reduce code duplication 2024-01-05 00:10:23 +01:00
Piotr Osiewicz
9cdcdbea41 Use Registrar in Assistant Panel.
This fixes various actions like "Activate regex mode" that were dispatched onto main pane instead of assistant search bar.
2024-01-05 00:10:23 +01:00
Piotr Osiewicz
5ad125a9e9 Touchups to registrar API 2024-01-05 00:10:23 +01:00
Piotr Osiewicz
f70eddc988 Explore registrar-based API for search bar.
This commit adds a Registrar trait for use by search crate. Registrar can register actions on some target and search can utilize that trait to opaquely add actions on that target.
Notably, search is now opt-in (it always was in zed2 actually). Having editor doesn't make it searchable straight out of the gate. You might have to call BufferSearchBar::new a bunch more.
2024-01-05 00:10:23 +01:00
Piotr Osiewicz
cd0b15e23d fixup! terminal/search: Partially fix search in terminal. There are two issues with search in terminal as is: - terminal's pane is not registered as a "legit" pane, so we dispatch buffer search bar::Deploy on the most recent "legit" pane. By legit I mean that workspace::active_pane will *never* return terminal pane as active. - We've had the implementation of as_searchable commented out. Duh! 2024-01-05 00:10:23 +01:00
Piotr Osiewicz
b3d8b23139 terminal/search: Partially fix search in terminal.
There are two issues with search in terminal as is:
- terminal's pane is not registered as a "legit" pane, so we dispatch buffer search bar::Deploy on the most recent "legit" pane. By legit I mean that
  workspace::active_pane will *never* return terminal pane as active.
- We've had the implementation of as_searchable commented out. Duh!

This commit fixes second issue. That means that if you drag the terminal over to the main editor pane (so that it's in a "legit" pane), it'll work. 1st issue still stands though.
2024-01-05 00:10:23 +01:00
Marshall Bowers
3f06a05060 Iterate on collab panel filter input style (#3900)
This PR takes another pass at the collab panel filter input to improve
its styling.

Release Notes:

- Improved the look of the filter input in the collab panel.
2024-01-04 18:08:28 -05:00
Max Brunsfeld
ba13540c77 Fix inconsistent selection start when dragging outside of terminal bounds
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-01-04 15:05:39 -08:00
Max Brunsfeld
61db60b3e2 Fix incorrect placement of terminal selection when dragging
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-01-04 14:55:45 -08:00
Marshall Bowers
e5af1cb9a2 Remove unneeded branches 2024-01-04 17:35:18 -05:00
Joseph T. Lyons
269b665618 Remove outdated TODO 2024-01-04 17:32:00 -05:00
Marshall Bowers
afbbb1c41f Merge branch 'main' into collab-titlebar-fixes 2024-01-04 17:31:58 -05:00
Joseph T. Lyons
a8efb41e56 Remove outdated TODOs 2024-01-04 17:28:07 -05:00
Marshall Bowers
47476faef1 Fix label color for inactive tabs (#3899)
This PR fixes an issue where certain tabs were not using the correct
color for their labels when they were inactive.

Release Notes:

- Fixed an issue where some inactive tabs were not using the correct
label color.
2024-01-04 17:25:11 -05:00
Marshall Bowers
32cd4d778a Render an empty placeholder when not showing file icons in the project panel (#3897)
This PR makes it so when we're not showing file icons in the project
panel we render an empty placeholder instead of nothing.

This prevents the indentation of the items in the file tree from
changing based on the presence of the icon.

Release Notes:

- Fixed layout shift when `project_panel.file_icons` is set to `false`.
2024-01-04 17:10:08 -05:00
Max Brunsfeld
0c4e2ef419 Fix terminal selection when cursor leaves terminal bounds 2024-01-04 14:08:18 -08:00
Max Brunsfeld
5e3d4885bf Fix some bugs in keymap handling (#3895)
- `base_keymap` setting was not respected, now it is
- without a `~/.config/zed/keymap.json` file, we would fail to load the
*default* keymap

Co-authored-by: Marshall <marshall@zed.dev>
2024-01-04 16:04:17 -05:00
Conrad Irwin
931bd687dc Uncomment editor tests
Co-Authored-By: Julia <julia@zed.dev>
2024-01-04 13:58:19 -07:00
Julia
bf8f3e3d68 Unbork test relying on old keystroke behavior
Previously it would both send the keydown *and then* the action, now
it send the action, and then because there was an action, does not send
the keydown

Co-Authored-By: Conrad Irwin <conrad@zed.dev>
2024-01-04 15:07:46 -05:00
Marshall Bowers
2da314fb79 Fix font resolution for UI text so we render with the fallback font (#3893)
This PR updates the font resolution for shaped text to use the new
`resolve_font` method on the text system.

This makes it so we use the fallback font if the desired font cannot be
found rather than rendering nothing.

Release Notes:

- Fixed an issue where nothing would render when the font set in
`ui_font_family` was not found.
2024-01-04 14:26:08 -05:00
Conrad Irwin
be426e67cc Tidy up guest count 2024-01-04 12:22:45 -07:00
Kirill Bulatov
4dbec66cdd Return back old project search behavior as default.
Add a `workspace::DeploySearch` action and use it as a default for "cmd-shift-f" binding.
This action opens existing search tab if it exists, or creates a new one otherwise.
`workspace::NewSearch` action is still available and always opens an existing search tab.
2024-01-04 21:17:24 +02:00
Marshall Bowers
e4aa7ba4f2 Try to load fallback fonts instead of panicking when a font is not found (#3891)
This PR adjusts our font resolution code to attempt to use a fallback
font if the specified font cannot be found.

Right now our fallback font stack is `Zed Mono`, followed by `Helvetica`
(in practice we should always be able to resolve `Zed Mono` since we
bundle it with the app).

In the future we'll want to surface the ability to set the fallback font
stack from GPUI consumers, and potentially even support specifying font
stacks in the user settings (as opposed to a single font family).

Release Notes:

- Fixed a panic when trying to load a font that could not be found.
2024-01-04 14:10:46 -05:00
Julia
09b32e6a0e Attempt to run keystroke actions before attempting key listeners 2024-01-04 14:01:01 -05:00
Conrad Irwin
d2afc97b53 Tidy up branch 2024-01-04 11:55:14 -07:00
Piotr Osiewicz
3d1023ef52 lsp: Do not cache initialization options 2024-01-04 19:54:58 +01:00
Max Brunsfeld
c209712b32 Fix version comparison in auto update (#3889) 2024-01-04 10:01:07 -08:00
Max Brunsfeld
90fc1ebaf6 Fix version comparison in auto update
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2024-01-04 09:53:57 -08:00
Julia
d79b8e4b98 Fix SendText/SendKeystroke having the wrong context name in terminal
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2024-01-04 12:35:51 -05:00
Conrad Irwin
4e1b9873b4 Implement "open in terminal" (#3888) 2024-01-04 10:35:17 -07:00
Antonio Scandurra
8d07246f7d Prevent scrolling editor and resizing panels at the same time (#3887)
Release Notes:

- Fixed a bug that would cause Zed to never stop resizing panels when
the drag handle overlapped with an editor scrollbar.
2024-01-04 18:06:22 +01:00
Conrad Irwin
fcf7007e0b let search happen too 2024-01-04 09:48:47 -07:00
Conrad Irwin
4e310b99aa Implement "open in terminal" 2024-01-04 09:45:39 -07:00
Julia
dd89ecffbf Show pointer hand on tab & give last tab border right (#3865)
Release Notes:

- N/A
2024-01-04 11:42:00 -05:00
Conrad Irwin
427e7f6b4f Read only permissions for project panel too 2024-01-04 09:40:12 -07:00
Antonio Scandurra
6f4a08ba5a Prevent scrolling editor and resizing panels at the same time
This fixes a bug that would cause Zed to never stop resizing
panels when the drag handle overlapped with an editor scrollbar.

Co-Authored-By: Marshall <marshall@zed.dev>
2024-01-04 17:25:02 +01:00
Nate Butler
6f140c8ae3 WIP tinted buttons 2024-01-04 11:15:53 -05:00
Julia
a7550de8c5 Show pointer hand on tab & give last tab border right 2024-01-04 11:08:56 -05:00
Conrad Irwin
9d146a2a6f Fix vim tests 2024-01-04 08:59:31 -07:00
Antonio Scandurra
7f62a17276 Re-enable key bindings for AssistantPanel (#3885)
Release Notes:

- Fixed a bug that caused `cmd-g` and `cmd-shift-g` to not work anymore
in the assistant panel.
2024-01-04 16:42:07 +01:00
Antonio Scandurra
5a1509ef26 Re-enable key bindings for AssistantPanel 2024-01-04 16:37:13 +01:00
Antonio Scandurra
f14149503d Fix border rendering (#3884)
After implementing it a while ago, our previous interpolation scheme
didn't really make sense to me and was causing borders to be rendered
incorrectly. We don't really draw backgrounds and borders as part of the
same draw call anymore, but it seemed reasonable to have a correct
implementation in the shader anyway.

This commit uses Porter-Duff compositing (i.e., `over`) to produce a
color that is the result of superimposing the border on top of the
background. Then, we linearly interpolate towards the background color
as we slide out of the border and into the background.

Release Notes:

- Fixed incorrect rendering of borders.
2024-01-04 16:35:09 +01:00
Antonio Scandurra
3ab2062614 Fix border rendering
After implementing it a while ago, our previous interpolation scheme
didn't really make sense to me and was causing borders to be rendered
incorrectly. We don't really draw backgrounds and borders as part of
the same draw call anymore, but it seemed reasonable to have a correct
implementation in the shader anyway.

This commit uses Porter-Duff compositing (i.e., `over`) to produce
a color that is the result of superimposing the border on top of the
background. Then, we linearly interpolate towards the background color
as we slide out of the border and into the background.
2024-01-04 16:27:20 +01:00
Nate Butler
5da057288d Delete generating-theme-types.md 2024-01-04 10:14:58 -05:00
Conrad Irwin
5c32dd5688 Better TestWindow support 2024-01-04 08:00:40 -07:00
Nate Butler
c106d3ea6b Remove old theme license code 2024-01-04 09:58:26 -05:00
Nate Butler
9fe0168dc9 Remove styles dir 2024-01-04 09:58:09 -05:00
Antonio Scandurra
e5156d1f85 Clip List items that partially overflow (#3882)
Release Notes:

- Fixed a visual bug that caused channels to overlap with the filter
input.
2024-01-04 15:21:41 +01:00
Antonio Scandurra
b78497bf54 Clip List items that partially overflow 2024-01-04 15:12:25 +01:00
Antonio Scandurra
8ad741817e Fix quitting Zed when project was unshared (#3881)
Release Notes:

- Fixed a bug that would disable `cmd-q` after a remote project was
unshared.
2024-01-04 15:12:25 +01:00
Antonio Scandurra
f6af7ab27c Fix quitting Zed when project was unshared 2024-01-04 15:00:36 +01:00
Antonio Scandurra
f4290c9805 Show scrollbar even when buffer search highlights are outside viewport (#3880)
Release Notes:

- Fixed a bug that prevented scrollbars from being shown when search
matches were outside the viewport.
2024-01-04 12:45:55 +01:00
Antonio Scandurra
f0afa3f9e3 Show scrollbar even when buffer search highlights are outside viewport 2024-01-04 12:39:15 +01:00
Piotr Osiewicz
5a43cbacbe channels: Move name of the channel to the same line as the hash icon. 2024-01-04 12:11:23 +01:00
Joseph T. Lyons
1d98132eed Move telemetry settings check into telemetry module (#3877)
This is a small change I've been meaning to do to make it easier to call
the telemetry report event methods.

Release Notes:

- N/A
2024-01-04 01:21:28 -05:00
Joseph T. Lyons
2972ee8ced Move telemetry settings check into telemetry module 2024-01-04 01:13:21 -05:00
Nate Butler
c76fcb3ca5 UI grab bag (#3875)
- Tidy up some ui crate docs
- Update "checking" diagnostic color + add icon
- Make scrollbar track transparent in all themes
- Update border variant color in all themes
- Use theme colors for muted/speaking indicators

Release Notes:

- N/A
2024-01-03 23:26:02 -05:00
Nate Butler
77647fa088 Use theme colors for muted/speaking indicators 2024-01-03 23:19:47 -05:00
Nate Butler
20a897d511 Update border variant color 2024-01-03 23:13:26 -05:00
Nate Butler
d643d99943 Make scrollbar track transparent 2024-01-03 23:09:24 -05:00
Nate Butler
710a26ce32 Add "Checking" icon for diagnostics 2024-01-03 23:07:21 -05:00
Marshall Bowers
e903adf016 Use dense spacing for completion menu items (#3874)
This PR updates the completion menu to use dense spacing for its items.

Release Notes:

- Adjusted styling of completion menu entries.
2024-01-03 23:06:16 -05:00
Joseph T. Lyons
e94063be7f Rename notification_store (#3872)
Release Notes:

- N/A
2024-01-03 23:04:03 -05:00
Joseph T. Lyons
b99e9d5f38 Merge branch 'main' into rename-notification-store 2024-01-03 22:59:43 -05:00
Joseph T. Lyons
bea527d647 Update version in Cargo.lock 2024-01-03 22:56:33 -05:00
Nate Butler
f633043859 Update ui docs 2024-01-03 22:44:31 -05:00
Conrad Irwin
26a4b6af0b Disable Dangerous Downtime-causing Default
According to https://docs.digitalocean.com/products/kubernetes/how-to/configure-load-balancers/#ssl-certificates

you can specify whether to disable automatic DNS record
creation for the certificate upon the load balancer’s creation using the
do-loadbalancer-disable-lets-encrypt-dns-records annotation. If you
specify true, we will not automatically create a DNS A record at the
apex of your domain to support the SSL certificate.
2024-01-03 19:55:17 -07:00
Max Brunsfeld
073128e4f3 Remove wasmtime for now 2024-01-03 21:44:58 -05:00
Mikayla
3b90c778b9 Change binary name 2024-01-03 21:44:45 -05:00
Conrad Irwin
1930258d39 Show guests in fewer places 2024-01-03 19:31:43 -07:00
Conrad Irwin
c3402024bc Fix privilege escalation when guests invite people 2024-01-03 19:31:43 -07:00
Conrad Irwin
9fe17a1d1d Prevent guests from screen-sharing, unmuting or screen sharing 2024-01-03 19:31:43 -07:00
Conrad Irwin
6877bd4969 Make read only buffers feel more read only 2024-01-03 19:31:43 -07:00
Conrad Irwin
84171787a5 Track read_only per project and buffer
This uses a new enum to avoid confusing booleans
2024-01-03 19:31:43 -07:00
Conrad Irwin
bf304b3fe7 Track room participant role
(Also wire that through to project collaboration rules for now)
2024-01-03 19:30:32 -07:00
Conrad Irwin
88ed5f7290 Plumbing to pass role for room participants 2024-01-03 19:30:32 -07:00
Conrad Irwin
a801c85a1b TEMP 2024-01-03 19:30:32 -07:00
Max Brunsfeld
28c39aae17 Start work on read-only project access for channel guests
Co-authored-by: Conrad <conrad@zed.dev>
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-01-03 19:30:32 -07:00
Joseph T. Lyons
570abe0590 Rename notification_store 2024-01-03 20:02:23 -05:00
Joseph T. Lyons
1bc2e0ee5c Remove zed2-related comment
This was the last result when searching for `zed2`
2024-01-03 20:00:58 -05:00
Marshall Bowers
3ddba6fc71 Restore timestamp insertion for journal: new journal entry (#3870)
This PR restores the insertion of the timestamp when using the `journal:
new journal entry` action.

Release Notes:

- Restored timestamp insertion when creating new journal entries.
2024-01-03 18:09:55 -05:00
Marshall Bowers
1a3c931d61 Fix icon path for Icon::AudioOn (#3869)
This PR fixes the icon path for `Icon::AudioOn` so that it points to a
file that exists.

Release Notes:

- Fixed the loading of the deafen icon in the call controls.
2024-01-03 17:54:53 -05:00
Marshall Bowers
2ec58c0438 Follow the project host when clicking their name in the title bar (#3868)
This PR adds back the ability to follow the project host when clicking
on their name in the title bar.

Release Notes:

- Added back following the project host when clicking their name in the
title bar.
2024-01-03 17:48:46 -05:00
Joseph T. Lyons
ad28ae5562 Merge branch 'main' of https://github.com/zed-industries/zed 2024-01-03 17:20:36 -05:00
Joseph T. Lyons
5944fcb999 collab 0.33.0 2024-01-03 17:20:01 -05:00
Joseph T. Lyons
9936b07472 Bump collab version back to what it was before 2024-01-03 17:19:39 -05:00
Marshall Bowers
a4986c397d Fix predictive text color (#3867)
This PR fixes the predictive text colors, which were no longer correct
after #3842.

Release Notes:

- Fixed predictive text colors.
2024-01-03 17:09:01 -05:00
Nate Butler
afeae56fab Add additional keybinding icons (#3861)
Note: There is still some consistency work to do between all the
keybinding icons. I'll tackle this at a later time.

- Adds `return`, `space`, `tab`, `escape`, `pgup` and `pgdn`
- Simplifies keybinding rendering (due to theme changes)
- Standardizes icon naming convention to use `_` everywhere.

Release Notes:

- Zed 2: Added additional keybinding icons
2024-01-03 17:05:40 -05:00
Marshall Bowers
7f6770d272 Add empty state for project panel (#3863)
This PR adds an empty state for the project panel.

It will now display an "Open a project" button.

Release Notes:

- Added an empty state for the project panel.
2024-01-03 17:00:47 -05:00
Mikayla Maki
94536ba24a Update Cargo.toml 2024-01-03 13:57:32 -08:00
Nate Butler
46e44f9853 Restore keybinding changes 2024-01-03 16:55:56 -05:00
Mikayla Maki
0932665bc9 Update Cargo.toml 2024-01-03 13:55:55 -08:00
Nate Butler
f39bc6e132 Merge branch 'main' into additional-keybinding-icons 2024-01-03 16:49:34 -05:00
Max Brunsfeld
b2efec9824 Replace zed with zed2 (#3862) 2024-01-03 13:33:54 -08:00
Max Brunsfeld
202db11987 Remove stray files 2024-01-03 13:25:04 -08:00
Mikayla Maki
55175982b6 Update release_nightly.yml 2024-01-03 13:24:37 -08:00
Max Brunsfeld
fcacb46f4e Remove unused scripts 2024-01-03 13:22:19 -08:00
Max Brunsfeld
76426ee7d3 Fix path to zed languages 2024-01-03 13:22:13 -08:00
Max Brunsfeld
1184de64d5 Fix UI doc test 2024-01-03 13:21:45 -08:00
Max Brunsfeld
a8061232a5 cargo fmt 2024-01-03 13:13:50 -08:00
Max Brunsfeld
83f4c61657 Remove 2 suffix from gpui_macros, fix compile errors in tests
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-01-03 13:12:21 -08:00
Max Brunsfeld
f5ba22659b Remove 2 suffix from gpui
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-01-03 12:59:39 -08:00
Max Brunsfeld
3c81dda8e2 Remove 2 suffix from live_kit_client
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-01-03 12:49:33 -08:00
Max Brunsfeld
ce4bc994e7 Merge branch 'main' 2024-01-03 12:43:52 -08:00
Max Brunsfeld
dfcb17fe74 Remove 2 suffix for theme
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-01-03 12:41:01 -08:00
Max Brunsfeld
4305c5fdbe Remove 2 suffix for ui, storybook, text
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-01-03 12:33:51 -08:00
Max Brunsfeld
0cf65223ce Remove 2 suffix for collab, rope, settings, menu
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-01-03 12:29:16 -08:00
Max Brunsfeld
177e3028a9 Remove 3 suffix for git crate
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-01-03 12:11:59 -08:00
Max Brunsfeld
5ddd298b4d Remove 2 suffix for fs, db, semantic_index, prettier
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-01-03 12:09:42 -08:00
Marshall Bowers
324ac96977 Remove unneeded theme dependency 2024-01-03 15:07:08 -05:00
Marshall Bowers
500772459f Remove unneeded theme dependency 2024-01-03 15:06:31 -05:00
Marshall Bowers
6cb913d8af Decouple theme_importer from old GPUI 1 crates (#3866)
This PR decouples the `theme_importer` from the `theme` and `gpui`
crates.

We achieve this by inlining all of the relevant bits needed to
deserialize Zed1 themes.

This will allow us to continue to import Zed1 themes after we land
#3862.

Release Notes:

- N/A
2024-01-03 15:03:52 -05:00
Marshall Bowers
e43d5dfea8 Decouple theme_importer from old GPUI 1 crates (#3866)
This PR decouples the `theme_importer` from the `theme` and `gpui`
crates.

We achieve this by inlining all of the relevant bits needed to
deserialize Zed1 themes.

This will allow us to continue to import Zed1 themes after we land
#3862.

Release Notes:

- N/A
2024-01-03 15:02:55 -05:00
Max Brunsfeld
53bdf6beb3 Remove 2 suffix for client, call, channel
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-01-03 12:02:14 -08:00
Max Brunsfeld
9f99e58834 Remove 2 suffix for lsp, language, fuzzy
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-01-03 11:58:02 -08:00
Max Brunsfeld
c5a1950522 Remove 2 suffix for project
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-01-03 11:53:34 -08:00
Max Brunsfeld
4ddb26204f Remove 2 suffix for ai, zed_actions, install_ci, feature_flags
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-01-03 11:48:46 -08:00
Max Brunsfeld
ecbd115542 Remove 2 suffix for assistant, journal
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-01-03 11:14:01 -08:00
Max Brunsfeld
789ce8dd75 Remove 2 suffix for workspace
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-01-03 11:08:51 -08:00
Max Brunsfeld
492805af9c Remove 2 suffix for multi_buffer, outline, copilot
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-01-03 11:01:58 -08:00
Max Brunsfeld
588976d27a Remove 2 suffix for editor
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-01-03 10:58:57 -08:00
Max Brunsfeld
bcad3a5847 Remove 2 suffix for picker, feedback
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-01-03 10:55:34 -08:00
Max Brunsfeld
0ac8aae17b Remove 2 suffix for language_tools, search, terminal_view, auto_update
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-01-03 10:52:40 -08:00
Max Brunsfeld
292b3397ab Remove 2 suffix for language selector, project panel, recent_projects, copilot_button, breadcrumbs, activity_indicator
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-01-03 10:47:33 -08:00
Max Brunsfeld
252694390a Remove 2 suffix for vim, diagnostics, go_to_line, theme_selector, command_palette, file_finder
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-01-03 10:42:49 -08:00
Max Brunsfeld
37e6533b28 Remove 2 suffix for project_symbols, theme_selector
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-01-03 10:38:23 -08:00
Max Brunsfeld
2b8822fd08 Remove 2 suffix for welcome, vcs_menu, quick_action_bar, collab_ui
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-01-03 10:30:52 -08:00
Joseph T. Lyons
5ab789e390 v0.120.x dev 2024-01-03 13:27:23 -05:00
Max Brunsfeld
7986ee18cd Rename zed2 -> zed
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-01-03 10:14:19 -08:00
Max Brunsfeld
b594e59134 Lay some groundwork for language plugins (#3837)
This PR adds undocumented functionality for loading custom language
plugins at runtime. I don't intend to expose the functionality to end
users yet, but this will allow the team to test the capability
internally.

### Implementation

There isn't much new code in Zed. Most of the work here is within
Tree-sitter, in PRs https://github.com/tree-sitter/tree-sitter/pull/1864
and https://github.com/tree-sitter/tree-sitter/pull/2840, which allow
Tree-sitter to load languages from WASM blobs. I've tested the
functionality in Tree-sitter's test suite and via its CLI, but having it
wired into Zed allows us to test the functionality more fully.

### Details

Now, on startup, Zed will look for subdirectories inside of
`~/Application Support/plugins`. These subdirectories are expected to
look similar to the per-language subdirectories in
[`crates/zed2/src/languages`](https://github.com/zed-industries/zed/tree/main/crates/zed2/src/languages),
except that they also contain a `.wasm` file for the parser itself.

I'll add more details here as I go.
2024-01-03 09:37:42 -08:00
Nathan Sobo
5f8417249c Return impl IntoElement in Render and RenderOnce traits (#3839)
- Returning `IntoElement` because it's more universal than `Element` and
allows us to easily return components.
- Using `impl IntoElement` in `RenderOnce` for consistency, which
requires `Component` to allocate an `AnyElement`. We use a bump
allocated arena anyway for these, and my benchmark doesn't show an
impact.


![frame-time-histogram](https://github.com/zed-industries/zed/assets/1789/d3889cca-9ebc-4d72-aa68-34a5be3bad3c)

In this histogram, frames-0 is this PR, frames-1 is main.

Release Notes:

- N/A
2024-01-03 10:37:26 -07:00
Marshall Bowers
d3e9760ba7 Layout completion single-line documentation to the right of item (#3845)
Don't love how this turned out, it seems uniform list doesn't tie the
widths of its items together, so there needs to be a set size to fill in
order to put the documentation detail on the right side. That means it
won't be able to shrink for completion lists which don't need the full
width. Zed1 has this same limitation but it would be nice to do it nicer
now

Before
![CleanShot 2024-01-02 at 16 04
04](https://github.com/zed-industries/zed/assets/30666851/6c154465-83cd-41c3-a16a-5f2ff5041bc1)

After
![CleanShot 2024-01-02 at 16 05
29](https://github.com/zed-industries/zed/assets/30666851/4f641040-a06a-4474-a2c7-bd3c89ae049e)

Release Notes:

- N/A
2024-01-03 12:01:00 -05:00
Nate Butler
15fb9d9195 Standardize icon naming 2024-01-03 11:45:41 -05:00
Marshall Bowers
c4f7dedd63 Merge branch 'main' into completion-menu-detail-layout 2024-01-03 11:44:29 -05:00
Marshall Bowers
092eb37a71 Tweak styling for inline documentation labels
Co-Authored-By: Julia <julia@zed.dev>
2024-01-03 11:44:17 -05:00
Marshall Bowers
231fd1c5c0 Clip completion labels when they would otherwise overflow their container
Co-Authored-By: Julia <julia@zed.dev>
2024-01-03 11:41:15 -05:00
Nate Butler
127acede25 Update keybinding rendering 2024-01-03 11:37:49 -05:00
Nate Butler
124604c019 Add pageup and pagedown icons and keybinding icons 2024-01-03 11:28:31 -05:00
Nate Butler
b0bbb742ab Add return, space, tab, escape keybinding icons 2024-01-03 11:14:33 -05:00
Antonio Scandurra
b348d0e59f Focus active item when pressing tab in buffer search bar (#3859)
Release Notes:

- N/A
2024-01-03 16:58:30 +01:00
Marshall Bowers
f4f9aab8a9 Remove text_ui
So we don't regress from #3852.
2024-01-03 10:56:51 -05:00
Antonio Scandurra
209fe7e0fa Focus active item when pressing tab in buffer search bar 2024-01-03 16:39:58 +01:00
Marshall Bowers
f73f735d41 Polish off channel buttons (#3858)
This PR polishes off the channel buttons such that they behave as
expected.

The absolutely-positioned button container will now no longer take up
space—and thus obscure the channel name—when there are no notifications
and the channel entry is not hovered.

Release Notes:

- N/A
2024-01-03 10:31:01 -05:00
Piotr Osiewicz
b4a205b37c Pane: Fix flicker when opening/closing tabs
Tab bar was losing focus for one frame which led to it skipping rendering of tab controls & flickering. It also occured when opening new tabs.
2024-01-03 13:21:21 +01:00
Piotr Osiewicz
406edd279a Merge branch 'main' into refine-render-traits 2024-01-03 12:27:42 +01:00
Piotr Osiewicz
7747c5dbd9 Fix up storybooks in theme2 2024-01-03 12:23:05 +01:00
Julia
1810824bc4 Merge branch 'main' into completion-menu-detail-layout 2024-01-02 22:46:13 -05:00
Joseph T. Lyons
017b25e511 Add debounce time back to telemetry queue (#3856)
After talking with Max, we decided to bring back the debounce time to
the telemetry queue, only, with a longer duration than before.

Release Notes:

- N/A
2024-01-02 21:56:15 -05:00
Julia
2a73eb3fad Add icon_tooltip for panel buttons rather than using persistent name (#3849)
Fixes missing spaces in these tooltips

Release Notes:

- N/A
2024-01-02 21:55:57 -05:00
Joseph T. Lyons
366d386dbb Add debounce time back to telemetry queue 2024-01-02 21:50:00 -05:00
Max Brunsfeld
5437c8041a Use buffer font size for editor overlays and blocks (#3852)
Previously, the buffer font size was not respected by these editor
features.
2024-01-02 17:41:57 -08:00
Conrad Irwin
e43be065d9 Fix position calculation (#3854)
Fixes a bug where the context menu appears in the wrong place
2024-01-02 18:36:57 -07:00
Marshall Bowers
e8df1a7284 Fix hint colors (#3855)
This PR fixes the hint colors, which were no longer correct after #3842.

Release Notes:

- N/A
2024-01-02 20:34:18 -05:00
Conrad Irwin
4ab5fa564d Fix overlay position calculation
(but keep rounding)
2024-01-02 18:17:26 -07:00
Max Brunsfeld
75acb4918c Use buffer font size for diagnostic headers
Co-authored-by: Nathan <nathan@zed.dev>
2024-01-02 17:14:32 -08:00
Marshall Bowers
d637657a99 Revert "Round tooltip co-ordinates (#3836)" (#3853)
This reverts commit 09951208a7, reversing
changes made to 93a818d018.

I noticed an issue where context menus were appearing in the wrong
location (shifted to the right) as a result of this change.

Release Notes:

- N/A
2024-01-02 20:04:11 -05:00
Max Brunsfeld
4b006ccd5b Use buffer font size for editor overlays and blocks
Co-authored-by: Nathan <nathan@zed.dev>
2024-01-02 15:55:56 -08:00
Marshall Bowers
74468a88c8 Improve positioning of channel buttons (#3850)
This PR is another pass at improving the positioning of channel buttons.

I had to employ some dirty hacks to get it to work, but I think it is
~mostly there.

Release Notes:

- N/A
2024-01-02 18:42:17 -05:00
Max Brunsfeld
335e00778f Add nightly environment for collab (#3848)
For now, we'll need to deploy to `nightly` manually, using the same
scripts that we use to deploy to `preview` and `production`.

We've renamed the `deploy` script to `deploy-collab`, and added a new
script, `deploy-postgrest` that sets up the Postgrest database admin
API. We split that out, since it's not needed for environments that
share a database with prod.
2024-01-02 15:18:52 -08:00
Julia
14066c4f0e Add icon_tooltip for panel buttons rather than using persistent name 2024-01-02 17:56:19 -05:00
Max Brunsfeld
5b35dedc5f Add nightly environment for collab
Also, move postgrest service + deployment into a separate manifest
file, which is deployed via a separate script, `deploy-postgrest`.
This way, we don't have unused postgrest instances in preview and
nightly, since those use the prod database.

Co-authored-by: Conrad <conrad@zed.dev>
2024-01-02 14:29:21 -08:00
Joseph T. Lyons
850a9e33e3 Add settings events (#3847)
Adds the infractucture for settings events and specifically tracks theme
settings. Currently, we only take note of the theme at app open and when
the user switches the theme with the theme selector. Changes at the
config file are ignored, as putting code that low leads to a lot of
chances of reporting theme events when the user hasn't done anything.
This change is done in both Zed 1 and Zed 2.

I'll open up a PR on zed.dev and adjust the database accordingly.

Release Notes:

- N/A
2024-01-02 17:19:21 -05:00
Conrad Irwin
09951208a7 Round tooltip co-ordinates (#3836)
There was a hypothesis that this would fix border rendering.

It doesn't :D; but it does at least mean that they are always
consistently
broken, so it may be easier to fix.
2024-01-02 15:06:19 -07:00
Marshall Bowers
ce5855da2f Render completion menu items using ListItems 2024-01-02 17:03:02 -05:00
Joseph T. Lyons
3dd5641d2b Add settings events 2024-01-02 17:02:53 -05:00
Marshall Bowers
93a818d018 Add additional status colors and style diagnostic popovers (#3846)
This PR adds additional background and border colors for each of the
status colors to the theme.

These colors are then used to style the diagnostic popovers:

<img width="407" alt="Screenshot 2024-01-02 at 4 25 50 PM"
src="https://github.com/zed-industries/zed/assets/1486634/fbc64ea7-3dcd-43b7-8520-91f16304bfba">

<img width="396" alt="Screenshot 2024-01-02 at 4 26 05 PM"
src="https://github.com/zed-industries/zed/assets/1486634/6e4a44bf-4aac-4595-afff-7fbf8b2b9e1f">

Release Notes:

- N/A
2024-01-02 16:37:55 -05:00
Julia
ae71d1ad5d Layout completion single-line documentation to the right of item 2024-01-02 15:56:35 -05:00
Marshall Bowers
2b9570e3e7 Fix spacing in diagnostics tab (#3844)
This PR fixes the spacing in the diagnostics tab.

#### Before

<img width="108" alt="Screenshot 2024-01-02 at 3 40 51 PM"
src="https://github.com/zed-industries/zed/assets/1486634/9508d867-5b5d-45b0-8b16-be35a23e3e7a">

#### After

<img width="121" alt="Screenshot 2024-01-02 at 3 40 54 PM"
src="https://github.com/zed-industries/zed/assets/1486634/33e665e7-2935-4d4f-b1d0-9cb655235867">

Release Notes:

- N/A
2024-01-02 15:51:16 -05:00
Marshall Bowers
d64d91a321 Restore transparency to scroll bar handles (#3843)
This PR restores the semi-transparency to the scroll bar handle colors
that were lost in #3842.

If we adjust the rendering of the scrollbar to draw the status
indicators on top of the scrollbar handle then we can remove the
transparency.

Release Notes:

- N/A
2024-01-02 15:39:04 -05:00
Marshall Bowers
8247be3a45 Use Zed1 Color Scheme to update Zed1 Theme Importer (#3842)
Bring Zed1 themes closer to their old appearance using the `base_theme`
values.

This will inevitably re-introduce some outstanding design issues from
Zed 1 that we will need to solve (low contrasts in some places, etc.)
We'll work on some of these in a later PR.

Known issues introduced:
- Scrollbar thumb is incorrectly drawn in front of the indicators
- Borders aren't quite correct - will fix in a followup
- Titlebar/status bar buttons will now have low contrast states
- Keybinding background color blends with palette

There are likely more issues, add them to the product checklist as you
find them.

Release Notes:

- N/A
2024-01-02 15:14:28 -05:00
Nate Butler
711b099ea0 Update status colors in zed1 importer
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2024-01-02 14:53:51 -05:00
Nate Butler
ff74c9367a Get zed1 theme importer down to no warnings
Note: We removed some unused theme colors
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2024-01-02 14:47:46 -05:00
Conrad Irwin
12f06a96d0 Merge branch 'main' into overlay-rounding 2024-01-02 12:35:38 -07:00
Nate Butler
9c91b65ce2 Use mostly base theme
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2024-01-02 14:30:11 -05:00
Nate Butler
7ea9725125 Start using base theme in zed1 theme importer
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2024-01-02 14:21:20 -05:00
Marshall Bowers
9996fbee54 Absolutely position channel buttons (#3840)
This PR absolutely positions the channel buttons on top of the channels.

This prevents the buttons from getting pushed off the edge of the panel
when the channel names are long.

Still needs some fine-tuning, but gets us closer to where we want to be.

Release Notes:

- N/A
2024-01-02 14:04:55 -05:00
Nathan Sobo
cb6652e7bf Clippy fixes for gpui2 (#3826)
It's not quite complete, but we gotta start somewhere.
Release Notes:

- N/A
2024-01-02 11:38:25 -07:00
Nathan Sobo
c636731fd9 Add some docs 2024-01-02 11:30:58 -07:00
Nathan Sobo
30624b9899 Fix anti-aliasing artifacts in GPUI 2 borders (#3818)
Previously, we changed borders to be drawn after content, so they are no
longer part of the same quads as the background. In our change, we gave
the background quad a transparent black border and the border quads
transparent black backgrounds. However, this caused the other channels
to blend toward that black color before becoming fully transparent,
causing them to become darker.

In this PR, I source the "placeholder" color by duplicating the values
for the other channels and only adjust the alpha down to zero.

Release Notes:

- N/A
2024-01-02 10:32:23 -07:00
Nathan Sobo
68e7d99219 Return impl IntoElement from RenderOnce::render
This makes it a bit more approachable to implement.

This required converting the state of Component to AnyElement, which
costs an allocation. I'm hoping this will be ok performance-wise now
that AnyElements use bump allocation, but I need to benchmark still.
2024-01-02 10:27:09 -07:00
Conrad Irwin
2e349a806a Round tooltip co-ordinates 2024-01-02 10:12:57 -07:00
Nathan Sobo
1b5c8b2b4a Return impl IntoElement from Render::render trait 2024-01-02 10:09:05 -07:00
Marshall Bowers
853192b059 Map suggestion colors from Zed1 themes (#3835)
This PR maps the suggestions colors from the Zed1 themes to the Zed2
themes.

Release Notes:

- N/A
2024-01-02 12:08:29 -05:00
Marshall Bowers
0f33775a91 Add general-purpose functions for sizing in viewport units (#3833)
This PR adds general-purpose functions for obtaining a `Length` in
viewport units.

Previously in #3600 we had added specific variants of `w` and `h` that
took viewport units, but I think it makes more sense to just have a
primitive that can compose with any styling method that accepts a
`Length` or `Into<Length>`.

Release Notes:

- N/A
2024-01-02 11:53:57 -05:00
Marshall Bowers
8ba52b839f Use small icons in channel list (#3832)
This PR adjusts the size of the chat and channel note icons in the
channel list to be smaller.

Release Notes:

- N/A
2024-01-02 11:41:35 -05:00
Marshall Bowers
f5b60adcf9 Increase outline picker max height (#3831)
This PR increases the max height of the outline picker so that it can
take up a larger area of the screen when there are lots of results.

This behavior is similar to the way it was in Zed1.

Release Notes:

- N/A
2024-01-02 11:15:27 -05:00
Max Brunsfeld
64e512232d Start work on supporting custom languages 2024-01-02 08:01:59 -08:00
Piotr Osiewicz
c6d9bc5a16 ui: Add Backspace/Delete icons and use them for keybindings. 2024-01-02 16:41:56 +01:00
Marshall Bowers
f5b3e473fc theme_importer: Map drop target colors (#3830)
This PR maps the drop target background color in the `theme_importer`.

Release Notes:

- N/A
2024-01-02 10:40:24 -05:00
Nathan Sobo
6b14f2fd08 Rename build_view to new_view and build_model to new_model (#3823)
The word "new" is shorter and blends in with `new` constructors that are
common in Rust. Been meaning to do this for a while.

Release Notes:

- N/A
2024-01-02 08:11:53 -07:00
Piotr Osiewicz
7314838fa4 project search: Move to results with ESC 2024-01-02 14:11:01 +01:00
Piotr Osiewicz
e81072ac0f Fix missing breadcrumbs on first open of project search.
Fixes:
Project search does not have breadcrumbs on its first open: after switching to other tab and back, breadcrumbs are shown
2024-01-02 14:10:47 +01:00
Piotr Osiewicz
576d8806f5 Fix up gpui1 2024-01-02 13:18:56 +01:00
Piotr Osiewicz
388c2d8e7f cargo fmt 2024-01-02 13:15:57 +01:00
Piotr Osiewicz
4af6ac25e9 gpui2: Another round of fixups 2024-01-02 13:11:36 +01:00
Piotr Osiewicz
945dba8099 gpui2: redundant_locals 2024-01-02 12:59:40 +01:00
Piotr Osiewicz
bcff7a8631 gpui2: Fix instance of map_entry lint 2024-01-02 12:56:53 +01:00
Piotr Osiewicz
1a03cf3268 Merge branch 'main' into clippy-fixes-for-zed2 2024-01-02 12:21:15 +01:00
Piotr Osiewicz
d185fca80c Another pass of #[allow()] removal (#3825)
We still have a bunch of leftovers in ui2/theme2 and in gpui2
display_link module.

Release Notes:

- N/A
2024-01-02 12:17:30 +01:00
Piotr Osiewicz
1c20a7fc37 search: Add "Error" borders for query editors with malformed content. (#3824)
This commit also changes the way search queries are built (we do not bail early anymore if include/exclude editor queries are malformed) to propagate error status of the panel.
Release Notes:

- N/A
2024-01-02 10:43:50 +01:00
Nathan Sobo
47071605a1 Merge remote-tracking branch 'origin/main' into new-view-new-model-rename 2024-01-01 17:42:12 -07:00
Nathan Sobo
db1cf8f6e1 Rename build_view to new_view and build_model to new_model
The word "new" is shorter and blends in with `new` constructors that are common
in Rust. Been meaning to do this for a while.
2024-01-01 17:42:01 -07:00
Nathan Sobo
789db30c42 Clean up Element API and start on docs (#3821)
Getting some scaffold docs in place and making some naming adjustments
to improve consistency with Rust APIs and clarity.

- Render::Element -> Render::Output, and Render::Output is now only
required to be IntoElement instead of Element so we can return
components.
- RenderOnce::Element -> RenderOnce::Output
- Element::layout -> Render::request_layout - Clarify that this doesn't
actually *perform* layout, but simply requests

Release Notes:

- N/A
2024-01-01 17:41:12 -07:00
Piotr Osiewicz
a3759f9a33 Another batch of fixups 2024-01-02 00:24:11 +01:00
Piotr Osiewicz
2621efebea Rest of fixups for gpui2 2024-01-02 00:09:24 +01:00
Piotr Osiewicz
7d420edb84 Start fixing up gpui2 2024-01-02 00:04:51 +01:00
Piotr Osiewicz
86facbbe4a sqlez 2024-01-01 23:56:04 +01:00
Piotr Osiewicz
e2ec96e44a Fixes for gpui2_macros 2024-01-01 23:52:07 +01:00
Piotr Osiewicz
4fa28b3de2 chore: fix clippy lints for rope2, sum_tree, text2 and util 2024-01-01 23:50:14 +01:00
Nathan Sobo
f836873764 Fix merge 2024-01-01 12:23:42 -07:00
Nathan Sobo
bcf0e3fb05 Merge branch 'pre-merge' into clean-up-doc-elements 2024-01-01 12:21:33 -07:00
Nathan Sobo
81b03d379e Rearrange to hopefully make merging easier 2024-01-01 12:21:17 -07:00
Nathan Sobo
c6ae885c5d Add more docs 2024-01-01 11:35:40 -07:00
Piotr Osiewicz
219999cd8d theme2: Move stories to RPITIT for Render 2024-01-01 14:23:02 +01:00
Piotr Osiewicz
6027962937 fixup! Work around lifetime woes by turning the element in language_tools2 into any element 2024-01-01 14:23:02 +01:00
Piotr Osiewicz
fa0d507639 Work around lifetime woes by turning the element in language_tools2 into any element 2024-01-01 14:23:02 +01:00
Nathan Sobo
51d1d92d66 Attempt to return impl Element from render. 3 errors. 2024-01-01 14:23:02 +01:00
Nathan Sobo
83923fd6d5 Clean up Element API and start on docs 2023-12-31 08:33:40 -07:00
Kirill Bulatov
5f2bb82ef3 Use ghost_element_background for avatar background color (#3819)
Also add a couple todo!()s on top of the comments

Release Notes:

- N/A
2023-12-30 01:19:26 +02:00
Kirill Bulatov
1c13c3a243 Use ghost_element_background for avatar background color
Also add a couple todo!()s on top of the comments
2023-12-30 01:10:48 +02:00
Nathan Sobo
21f0409e3b Fix anti-aliasing artifacts in borders
Previously, we changed borders to be drawn after content, so they are no longer
part of the same quads as the background. In our change, we gave the background
quad a transparent black border and the border quads transparent black
backgrounds. However, this caused the other channels to blend toward that black
color before becoming fully transparent, causing them to become darker.

In this PR, I source the "placeholder" color by duplicating the values for
the other channels and only adjust the alpha down to zero.
2023-12-29 08:49:01 -07:00
Nathan Sobo
4e9fb26102 Adjust terminal and popover colors to better match original styling (#3816)
This may have made something else worse, but overall brings us more into
harmony.

Release Notes:

- N/A
2023-12-29 08:44:26 -07:00
Kirill Bulatov
ebd4b53b37 Remove async_trait from the only trait that allows it now (#3817)
* `EmbeddingProvider`, `NodeRuntime`, `Fs`,
`live_kit_server::api::Client` produce messages similar to
```
error[E0038]: the trait `EmbeddingProvider` cannot be made into an object
    --> crates/semantic_index/src/semantic_index_tests.rs:1096:51
     |
1096 |     let mut retriever = CodeContextRetriever::new(embedding_provider);
     |                                                   ^^^^^^^^^^^^^^^^^^ `EmbeddingProvider` cannot be made into an object
     |
note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
    --> /Users/someonetoignore/work/zed/zed/crates/ai/src/embedding.rs:73:14
     |
73   |     async fn embed_batch(&self, spans: Vec<String>) -> Result<Vec<Embedding>>;
     |              ^^^^^^^^^^^ the trait cannot be made into an object because method `embed_batch` is `async`
     = help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `EmbeddingProvider` for this new enum and using it instead:
               ai::providers::open_ai::OpenAIEmbeddingProvider
               ai::test::FakeEmbeddingProvider
```

* `LspAdapter` produces something even more obscure:

```
error[E0391]: cycle detected when checking effective visibilities
    |
note: ...which requires computing type of `<impl at crates/language2/src/language2.rs:122:1: 122:22>::new::{opaque#0}`...
   --> crates/language2/src/language2.rs:123:5
    |
123 |     pub async fn new(adapter: Arc<dyn LspAdapter>) -> Arc<Self> {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: ...which requires type-checking `<impl at crates/language2/src/language2.rs:122:1: 122:22>::new`...
   --> crates/language2/src/language2.rs:123:5
    |
123 |     pub async fn new(adapter: Arc<dyn LspAdapter>) -> Arc<Self> {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: ...which again requires checking effective visibilities, completing the cycle
note: cycle used when checking that `CachedLspAdapter` is well-formed
   --> crates/language2/src/language2.rs:111:1
    |
111 | pub struct CachedLspAdapter {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: see https://rustc-dev-guide.rust-lang.org/overview.html#queries and https://rustc-dev-guide.rust-lang.org/query.html for more information
```



Release Notes:

- N/A
2023-12-29 00:06:48 +02:00
Kirill Bulatov
ce8cc50ae5 Remove async_trait from the only trait that allows it now 2023-12-28 23:45:30 +02:00
Piotr Osiewicz
e932f4cf47 Bump Rust to 1.75 (#3815)
**This PR also bumps wasmtime version from 0.38 to 2.0 as 0.38 does not
build with Rust 1.75**. I did not test the plugin runtime as (AFAIK) we
intend to deprecate it; also, wasmtime's most recent version is 16.0, so
it'd make sense to bump the version at some point anyways. I did not
bump the version to 16.0 straight away as that'd require code changes in
`plugin_runtime`.
Release Notes:

- N/A
2023-12-28 19:22:43 +01:00
Nathan Sobo
02f7e681a7 Import elevated surface color from hover popover 2023-12-27 11:58:26 -07:00
Nathan Sobo
a2b0f14dc1 Rename size to dimensions for consistency 2023-12-27 11:23:12 -07:00
Nathan Sobo
ddd6f0806b Render cursor text with the terminal's background color 2023-12-27 11:08:43 -07:00
Nathan Sobo
5cfd4b06b9 Use correct terminal background color 2023-12-27 10:46:25 -07:00
Kirill Bulatov
772429c086 More zed2 fixes (#3814) 2023-12-26 15:44:48 +02:00
Kirill Bulatov
937f237c8f Add breadcrumbs to the multibuffer editor
The breadcrumbs are not being open on the fisrt time, for some reason.
2023-12-26 15:18:20 +02:00
Kirill Bulatov
f27c63bb54 Fix color-related terminal todo! 2023-12-26 14:11:51 +02:00
Kirill Bulatov
af6f467890 Avoid trailing separators in file finder 2023-12-26 13:49:00 +02:00
Piotr Osiewicz
16626592db Remove allow unused from gpui2, vim2 tests and terminal_view2 (#3813)
Release Notes:

- N/A
2023-12-26 01:23:08 +01:00
Joseph T. Lyons
41fb29bc5a Tidy up main (#3812)
Release Notes:

- N/A
2023-12-25 07:45:39 -05:00
Piotr Osiewicz
ee57658abe Fix up superfluous mod declaration 2023-12-25 13:30:27 +01:00
Joseph T. Lyons
12fe64b177 Fix more warnings 2023-12-25 07:02:19 -05:00
Piotr Osiewicz
904358263c Remove #[allow(unused)] annotations in zed2 crates (#3798)
Release Notes:

- N/A
2023-12-25 12:23:44 +01:00
Joseph T. Lyons
8f3ea6ccb3 Remove silencing of warnings and fix warnings 2023-12-25 03:47:28 -05:00
Joseph T. Lyons
ada1da48ca Remove already-implemented comment 2023-12-25 03:47:03 -05:00
Joseph T. Lyons
6c21683ed0 Wire up journal (#3811)
Release Notes:

- N/A
2023-12-25 03:42:19 -05:00
Joseph T. Lyons
88d05fd814 Wire up journal 2023-12-25 03:36:54 -05:00
Joseph T. Lyons
11d3526f10 Migrate from device_id to installation_id key (#3810)
This PR is just a quick house-cleaning PR that I've been meaning to do
for awhile. In the past, `installation_id` was called `device_id`. But
this name never reflected what it actually was - so we renamed it to
`installation_id`, but we kept the name as `device_id` in the
`kv_store`. I'm wanting to use the `device_id` key in the future, so to
keep things clearly labeled, I'm doing the key rename now.

Release Notes:

- N/A
2023-12-23 22:38:35 -05:00
Joseph T. Lyons
81ed861288 Migrate from device_id to installation_id key 2023-12-23 22:26:00 -05:00
Joseph T. Lyons
bab3b231b8 Remove telemetry debounce time in zed 2 (#3809)
Remove the event send timer in Zed 2 telemetry in effort to continue
reducing the amount of stress the vercel endpoint receives. This allows
the queues to fill up entirely before sending them off. I'm leaving the
timer in for Zed 1 because we don't force the events queue to clear on
app close in Zed 1, so it feels best to leave it in there, as it might
catch some unsent events before closing.

Release Notes:

- N/A
2023-12-23 17:39:36 -05:00
Joseph T. Lyons
58c5720c32 Remove telemetry debounce time in zed 2 2023-12-23 17:25:04 -05:00
Kirill Bulatov
894a033520 Add a horizontal separator between history and query file finder matches (#3808)
To avoid confusion with the way file results are matched, add a
separator between history and query matches in file finders.

Release Notes:

- N/A
2023-12-23 23:23:49 +02:00
Kirill Bulatov
1096eeff3a Add a horizontal separator between history and query file finder matches 2023-12-23 22:33:52 +02:00
Kirill Bulatov
1f603afbc1 Hide pane tab bar buttons in certain contexts (#3807)
* entirely remove history navigation buttons in the terminal pane that
allows terminal elements only
* hide the entire tab bar if no active item is in pane (as in zed1)
* hide +/split/zoom buttons when the pane is not in focus (as in zed1)

Release Notes:

- N/A
2023-12-23 22:27:41 +02:00
Kirill Bulatov
a249375f99 Do not show nav history buttons in terminal pane 2023-12-23 22:10:11 +02:00
Kirill Bulatov
e839dc5ee6 Hide pane tab bar for 0 items, hide its end buttons for no focus 2023-12-23 21:53:08 +02:00
Marshall Bowers
698460ea89 Style inlay hints (#3806)
This PR styles the inlay hints after the changes to the themes.

Release Notes:

- N/A
2023-12-22 23:06:30 -05:00
Marshall Bowers
e5148b4a1b Assign player colors from the theme (#3805)
This PR updates the `theme_importer` to pull in the player colors so
that we can assign them based on the current theme.

Release Notes:

- N/A
2023-12-22 22:28:41 -05:00
Marshall Bowers
5a910aa874 Refine ported Zed1 themes (#3804)
This PR applies another round of refinements to the ported Zed1 themes.

Most of this was focused around the coloration of UI text to better
match Zed1.

Release Notes:

- N/A
2023-12-22 21:49:27 -05:00
Marshall Bowers
14ed4a4316 Render project panel entries as muted, unless selected 2023-12-22 21:36:20 -05:00
Marshall Bowers
446c947ad1 Render breadcrumb using muted colors 2023-12-22 21:33:57 -05:00
Marshall Bowers
04d26353d2 Adjust muted text colors 2023-12-22 21:25:45 -05:00
Marshall Bowers
bdb89d4700 Render tab bar tools as muted 2023-12-22 21:25:31 -05:00
Marshall Bowers
9cb613245e Adjust border colors 2023-12-22 21:18:43 -05:00
Marshall Bowers
e8a14b1971 Adjust color used for text 2023-12-22 21:10:53 -05:00
Joseph T. Lyons
7966bc32c0 Add open project event (#3803) 2023-12-22 21:08:30 -05:00
Joseph T. Lyons
b1870af386 Add project open event
Give the caller of report_app_event() the choice of whether to immediately flush the queue or not.
2023-12-22 20:23:55 -05:00
Joseph T. Lyons
72b3a1dd9a Increase telemetry queue size (#3802)
It seems like we've fixed the clickhouse errors by switching to
`async_insert`, but we're still seeing a hiccup here and there on
vercel's socket. I slowed down the collection of cpu and memory events
earlier, and this PR will slow down how frequently we send events in
general, by increasing the queue size and the debounce time.

Release Notes:

- N/A
2023-12-22 19:58:53 -05:00
Joseph T. Lyons
1989094e6d Increase queue flush debounce time 2023-12-22 19:57:13 -05:00
Joseph T. Lyons
0746a10d9b Increase telemetry queue size 2023-12-22 19:56:06 -05:00
Max Brunsfeld
2edf560e5c Maintain workspace's zoom state when opening/closing docks, activating panels (#3801)
Fixes an issue where zoom didn't work when closing and re-opening a
zoomed panel.
2023-12-22 16:54:13 -08:00
Max Brunsfeld
d7b0662058 Maintain workspace's zoom state when opening/closing docks, activating panels 2023-12-22 16:45:44 -08:00
Marshall Bowers
0e145a8435 Make current call controls in title bar smaller (#3800)
This PR adjusts the sizes of the current call controls in the title bar
to be smaller.

This matches the size of the other title bar items that are always
present.

Release Notes:

- N/A
2023-12-22 19:32:07 -05:00
Kirill Bulatov
a1915ce6c4 Add spacing to terminal tab bar buttons 2023-12-23 02:29:33 +02:00
Marshall Bowers
f03ee1ea24 Add spacing between tab bar buttons (#3799)
This PR adds spacing between buttons in the tab bar.

Release Notes:

- N/A
2023-12-22 19:18:04 -05:00
Kirill Bulatov
e1d8e2001b Properly color file labels in project panel (#3794)
Also fixes an error with mouse listeners placement in
https://github.com/zed-industries/zed/pull/3792

Release Notes:

- N/A
2023-12-23 02:01:55 +02:00
Marshall Bowers
3213a860a6 Use extra small label for tab descriptions (#3797)
This PR adjusts the size of the tab descriptions to use the extra small
label size.

This makes it easier to distinguish between the filename and the
description:

<img width="320" alt="Screenshot 2023-12-22 at 6 49 11 PM"
src="https://github.com/zed-industries/zed/assets/1486634/451d4cd0-666c-43c2-b5df-6d9cf91dacda">

It's also more in line with how things look in Zed1.

Release Notes:

- N/A
2023-12-22 18:56:17 -05:00
Kirill Bulatov
c6f3f439c4 Fix mouse listeners' z-index for editor 2023-12-23 01:55:40 +02:00
Piotr Osiewicz
ca7e504817 titlebar: show "Share project" button only in local projects. (#3795)
Fixes '"Share" button is shown even for remote projects'.

Release Notes:

- N/A
2023-12-23 00:49:51 +01:00
Marshall Bowers
1ebfafc03d Map additional text colors from Zed1 themes (#3796)
This PR maps additional text colors from the Zed1 themes to the Zed2
themes.

Release Notes:

- N/A
2023-12-22 18:45:58 -05:00
Kirill Bulatov
9600337d81 Properly color file labels in project panel 2023-12-23 01:27:41 +02:00
Marshall Bowers
b501f4eafc Begin porting Zed1 themes to Zed2 (#3793)
This PR is a first pass at porting the Zed1 themes to Zed2.

For the initial release of Zed2 we'll be shipping just the themes that
existed in Zed1, ported to Zed2. The new themes that were previously
added just in Zed2 have been removed.

Release Notes:

- N/A
2023-12-22 17:37:53 -05:00
Kirill Bulatov
a1bd636c18 Fix multibuffer scroll by reordering z-index of its elements (#3792)
1. Blocks (with their headers) and mouse listeners should be drawn
together otherwise either starts to loose mouse events.

2. Scrollbar should be above all to match zed1 look and avoid buffer
headers popping slightly to the right of the scrollbar.

Release Notes:

- N/A
2023-12-22 23:07:10 +02:00
Kirill Bulatov
764a2755e2 Fix multibuffer scroll by reordering z-index of its elements
1. Blocks (with their headers) and mouse listeners should be drawn together otherwise either starts to loose mouse events.

2. Scrollbar should be above all to match zed1 look and avoid buffer headers popping slightly to the right of the scrollbar.
2023-12-22 22:56:35 +02:00
Marshall Bowers
dc64411cca Extend theme_importer in preparation for importing Zed1 themes (#3791)
This PR extends the `theme_importer` with the overall structure required
to support importing themes from Zed1.

Release Notes:

- N/A
2023-12-22 13:47:30 -05:00
Antonio Scandurra
c34a81152f Fix panic when deploying emoji picker (character palette) (#3790)
The panic was caused by Cocoa synchronously invoking the
`selected_text_range` method on the registered input handler while we
already had a borrow of the app.

This pull request fixes this issue by showing the character palette on
the next tick of the loop (we've had this problem in other spots too and
used the same technique).

Release Notes:

- N/A
2023-12-22 18:52:35 +01:00
Marshall Bowers
7ef2ddd7a5 Disambiguate GPUI2 macOS class names (#3789)
This PR disambiguates the macOS class names used in GPUI2 from the ones
used in GPUI1.

Right now if you happen to end up with a copy of both `gpui` and `gpui2`
in the dependency tree you get an unhelpful `unwrap` error when we try
to build the class names.

By giving them different names we are able to get to our more helpful
error that informs you that both GPUI1 and GPUI2 are in the module tree.

We can change these names back once we do the big "un-2-ing".

Release Notes:

- N/A
2023-12-22 12:46:06 -05:00
Antonio Scandurra
9a6688bdfb Fix panic when deploying emoji picker (character palette)
The panic was caused by Cocoa synchronously invoking the `selected_text_range`
method on the registered input handler while we already had a borrow of the
app.

This commit fixes this issue by showing the character palette on the next tick
of the loop (we've had this problem in other spots too and used the same technique).
2023-12-22 18:41:43 +01:00
Antonio Scandurra
30340535e9 Prevent panels from getting so small they can't be resized (#3788)
This also switches to using `Pixels` instead of `f32` to store the panel
size everywhere.

Release Notes:

- N/A
2023-12-22 18:37:13 +01:00
Antonio Scandurra
961d8331f3 Prevent panels from getting so small they can't be resized 2023-12-22 18:28:28 +01:00
Antonio Scandurra
3715ddfa74 Use Pixels instead of f32 for panel size 2023-12-22 18:26:33 +01:00
Piotr Osiewicz
25a5eda76f picker: Reintroduce headers and footers (#3786)
Update VCS menu to match Zed1.
<img width="444" alt="image"
src="https://github.com/zed-industries/zed/assets/24362066/6cb27510-f501-46bc-862f-1fb78006b77c">

Release Notes:

- N/A
2023-12-22 18:10:59 +01:00
Antonio Scandurra
87ff5f04cb Fix resizing for bottom dock (#3787)
We were not using `flex` on the `PaneGroup`, which caused the bottom
dock to be unable to satisfy the desired resize value.

Release Notes:

- N/A
2023-12-22 18:10:50 +01:00
Antonio Scandurra
54e45306c5 Fix resizing for bottom dock
We were not using `flex` on the `PaneGroup`, which caused the bottom
dock to be unable to satisfy the desired resize value.
2023-12-22 18:00:03 +01:00
Kirill Bulatov
f3ab5ce34b Fix enter, tab and shift-tab behavior in project search 2 (#3785) 2023-12-22 18:56:18 +02:00
Kirill Bulatov
2f4cedbd53 Remove the old code 2023-12-22 18:43:57 +02:00
Kirill Bulatov
a03306fd01 Fix enter, tab and shift-tab behavior in project search 2 2023-12-22 18:43:02 +02:00
Piotr Osiewicz
dc1ed3c39d Titlebar project menu double click (#3784)
This addresses a bug where popover menus in the titlebar were rendered
only after a 2nd click. The first click was creating the View which the
second one then rendered.
In addition to this, `PopoverMenu::menu` function argument can now
return an `Option<View<T>>` instead of `View<T>` as the creation of the
menu can fail (as it might in case of git popover).

Release Notes:

- N/A
2023-12-22 17:18:12 +01:00
Kirill Bulatov
5de32f7b0b Do not display a getting start message when the project is open 2023-12-22 18:06:23 +02:00
Antonio Scandurra
172e434bec Allow horizontal scrolling of tab bar on vertical mouse wheel (#3783)
Now, if we receive a scroll event for an axis, but that axis can't be
scrolled (overflow != scroll), we will apply it to the opposite axis
instead if that axis supports scrolling.

Release Notes:

- N/A
2023-12-22 16:08:29 +01:00
Antonio Scandurra
dd093477a3 Allow horizontal scrolling of tab bar on vertical mouse wheel
Now, if we receive a scroll event for an axis, but that axis can't be scrolled
(overflow != scroll), we will apply it to the opposite axis instead
if that axis supports scrolling.
2023-12-22 15:56:37 +01:00
Antonio Scandurra
15bf131065 Dismiss mention notification when x icon is clicked (#3782)
We were emitting the wrong kind of event, which caused the workspace to
never remove the notification.

Release Notes:

- N/A
2023-12-22 15:23:53 +01:00
Antonio Scandurra
2f3b408880 Dismiss mention notification when x icon is clicked
We were emitting the wrong kind of event, which caused the workspace
to never remove the notification.
2023-12-22 15:12:01 +01:00
Antonio Scandurra
bb93144b8a Reveal item even if project panel was closed while active entry changed (#3781)
The project panel was actually working just fine, the problem was due to
`UniformList` not re-hydrating the element state's scroll offset when
being rendered again.

Release Notes:

- N/A
2023-12-22 14:55:38 +01:00
Kirill Bulatov
4e3337f1c9 Restore zoom buttons in pane tab bars, fix + button in the terminal one (#3780)
Release Notes:

- N/A
2023-12-22 15:48:38 +02:00
Antonio Scandurra
68cf631cfc Reveal item even if project panel was closed while active entry changed
The project panel was actually working just fine, the problem was due to
`UniformList` not re-hydrating the element state's scroll offset when
being rendered again.
2023-12-22 14:39:16 +01:00
Kirill Bulatov
420253a752 Restore zoom buttons in pane tab bars, fix + button in the terminal one 2023-12-22 15:32:47 +02:00
Antonio Scandurra
061bcf1b6e Fix dismissing context menu when clicking on an item dispatched action (#3779)
Release Notes:

- N/A
2023-12-22 12:34:08 +01:00
Antonio Scandurra
62aea418de Fix panic in completions menu (#3778)
We were shifting all the positions while keeping the original string,
which caused problems later when combining highlighted ranges with
matched indices.

Release Notes:

- N/A
2023-12-22 12:27:52 +01:00
Antonio Scandurra
c1ad079f09 Fix dismissing context menu when clicking on an item dispatched action 2023-12-22 12:27:20 +01:00
Antonio Scandurra
a551647ec1 Fix panic in completions menu
We were shifting all the positions while keeping the original
string, which caused problems later when combining highlighted
ranges with matched indices.
2023-12-22 12:12:39 +01:00
Kirill Bulatov
e3eafdba59 Move multibuffer "go to file" button into the buffer header (#3777)
Release Notes:

- N/A
2023-12-22 12:24:51 +02:00
Kirill Bulatov
4d5ff77abe Fix the tests 2023-12-22 12:14:53 +02:00
Joseph T. Lyons
169266b006 Slow down sampling metric collection rate (#3775)
Release Notes:

- N/A
2023-12-22 05:03:38 -05:00
Kirill Bulatov
d36ec81725 Move multibuffer "go to file" button into the buffer header
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-12-22 12:02:44 +02:00
Kirill Bulatov
fce31b7ddf Remove the warnings from element.rs 2023-12-22 12:02:44 +02:00
Joseph T. Lyons
41ff37d56e Slow down sampling metric collection rate 2023-12-22 04:52:36 -05:00
Antonio Scandurra
854907d721 Fix context menu in tab bar (#3776)
Release Notes:

- N/A
2023-12-22 10:35:05 +01:00
Antonio Scandurra
3de72f8366 Fix context menu in tab bar 2023-12-22 10:23:27 +01:00
Kirill Bulatov
6c4670287d Highlight termina on external files drag and drop 2023-12-22 10:45:51 +02:00
Antonio Scandurra
3d5b903f78 Optimize order rendering and border drawing (#3762)
Reverts zed-industries/zed#3761

There was a bug in the previous implementation of `BatchIterator` that
was being masked by how we were using the BSP tree. The bug caused us to
render primitives without honoring the `PrimitiveKind` implicit
ordering.
2023-12-22 09:40:54 +01:00
Antonio Scandurra
01ce204491 Avoid painting a background quad if it is fully transparent 2023-12-22 09:29:56 +01:00
Antonio Scandurra
2a516ec1e0 Honor PrimitiveKind ordering when order is the same
This was a bug in the previous implementation that was being masked by
how we were using BSP.
2023-12-22 09:24:01 +01:00
Antonio Scandurra
48ad53badd Revert "Revert "Optimize order rendering and border drawing"" 2023-12-22 09:12:18 +01:00
Marshall Bowers
2659b2744a Add vertical padding to the picker empty state (#3774)
This PR adds vertical padding to the picker's empty state.

This matches the styles added in #3769.

Release Notes:

- N/A
2023-12-21 23:41:24 -05:00
Marshall Bowers
248458cef5 Indent contacts in collab panel (#3773)
This PR indents contacts in the collab panel.

Release Notes:

- N/A
2023-12-21 23:35:50 -05:00
Marshall Bowers
cd9156886f Increase the indent step size for the collab panel (#3772)
This PR increases the indent step size for the collab panel.

This gives the channel list a clearer hierarchy for nested channels, as
well as help align the disclosures with the parent channel's icon.

Release Notes:

- N/A
2023-12-21 23:22:22 -05:00
Marshall Bowers
80143b2571 Fix names for Rosé Pine themes (#3771)
This PR fixes the names of the Rosé Pine themes.

We want to keep the Unicode "é" in the theme name, both because this is
the actual name of the theme, and also to maintain parity with Zed1.

Release Notes:

- N/A
2023-12-21 22:45:29 -05:00
Marshall Bowers
94e22ae515 Fix typo in "Noctis Hibernus" theme name (#3770)
This PR fixes a typo in the name of the "Noctis Hibernus" theme.

Release Notes:

- N/A
2023-12-21 22:36:40 -05:00
Marshall Bowers
4fb12cb348 Add vertical padding to the picker entry list (#3769)
This PR adds vertical padding to the list of picker entries.

This prevents us from ending up with entries squished against the edges
of the picker.

Release Notes:

- N/A
2023-12-21 22:36:15 -05:00
Marshall Bowers
5307b75b2f Add more left padding to title bar (#3768)
This PR adds more left padding to the title bar to achieve the same
positioning of the title bar items that we have in Zed1.

Release Notes:

- N/A
2023-12-21 22:29:30 -05:00
Julia
051bad734e Some terminal bugs (#3767)
Fixes:
 - drag and drop into terminal element does not change its style
 - drag and drop terminal tab into main pane then back panics
 - can drop non-terminal items into the terminal pane

Release Notes:

- N/A
2023-12-21 18:05:14 -05:00
Julia
f3fda8018f Prevent drag-dropping non-terminal item into terminal pane 2023-12-21 17:52:29 -05:00
Marshall Bowers
3d1e52297e Scale down status bar items (#3766)
This PR scales down the sizes of items in the status bar.

This brings us more in line with Zed1.

Release Notes:

- N/A
2023-12-21 17:42:54 -05:00
Marshall Bowers
e2c36633ea Align Picker editor with entries (#3765)
This PR re-aligns the `Picker` editor with the entries after the changes
in #3764.

Release Notes:

- N/A
2023-12-21 17:03:57 -05:00
Marshall Bowers
be08a0b2fd Increase spacing of ListItems inside Pickers (#3764)
This PR increases the spacing of `ListItem`s inside of `Picker`s to give
the UI some more breathing room.

#### Before

<img width="584" alt="Screenshot 2023-12-21 at 4 36 21 PM"
src="https://github.com/zed-industries/zed/assets/1486634/ed324c0d-e606-4844-b30a-7d5b8b8c9e47">

#### After

<img width="592" alt="Screenshot 2023-12-21 at 4 36 31 PM"
src="https://github.com/zed-industries/zed/assets/1486634/fbbcb230-0048-4310-8e06-07943af6a38e">

Release Notes:

- N/A
2023-12-21 16:43:38 -05:00
Marshall Bowers
71a222abcb Use sparse spacing for ListItems in Pickers 2023-12-21 16:33:41 -05:00
Marshall Bowers
dc09dbc98c Use a ListItem as the empty state for Pickers 2023-12-21 16:17:04 -05:00
Marshall Bowers
a773a3cb92 Increase horizontal padding for inset ListItems 2023-12-21 16:07:55 -05:00
Marshall Bowers
dabc98690c Use small labels for title bar buttons (#3763)
This PR adjusts the sizing of the labels in the buttons in the title bar
to use the small label size.

This should bring them more in line with how things looked in Zed1.

Release Notes:

- N/A
2023-12-21 15:48:37 -05:00
Antonio Scandurra
a1fe514411 Revert "Optimize order rendering and border drawing" (#3761)
Reverts zed-industries/zed#3759

It seems like this is not quite right yet. Reverting until we figure out
what's wrong.
2023-12-21 19:48:59 +01:00
Antonio Scandurra
7cfea09019 Revert "Optimize order rendering and border drawing" 2023-12-21 19:40:03 +01:00
Julia
9efe5a30aa Fix pane drag target not appearing over terminal element 2023-12-21 13:08:48 -05:00
Julia
31e47f9b52 Prevent panic dragging tab into terminal panel 2023-12-21 12:56:30 -05:00
Joseph T. Lyons
b385373367 Bump tree-sitter-nu rev id (#3760) 2023-12-21 12:29:49 -05:00
Antonio Scandurra
cbb2219c4a Optimize order rendering and border drawing (#3759)
This fixes the slowdowns we were observing when opening the saved
assistant conversations.

Release Notes:

- N/A
2023-12-21 18:19:39 +01:00
Joseph T. Lyons
38a8aa2d04 Bump tree-sitter-nu rev id 2023-12-21 12:15:27 -05:00
Marshall Bowers
824b68788f Improve chat panel styling (#3758)
This PR improves the chat panel styling, especially with regards to the
spacing.

Release Notes:

- N/A
2023-12-21 12:15:11 -05:00
Antonio Scandurra
53a4b711dd Delete stray comment 2023-12-21 17:55:26 +01:00
Antonio Scandurra
c03c0d50d5 Use smaller quads to draw borders
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-12-21 17:54:13 +01:00
Antonio Scandurra
67f76468f1 Replace BspSplitter with brute-force sorting of primitives 2023-12-21 16:58:36 +01:00
Marshall Bowers
7a9c4057a7 Increase inline assistant editor's line height (#3757)
This PR increases the line height for the inline assistant editor.

This fixes an issue where descenders were being clipped.

Release Notes:

- N/A
2023-12-21 10:56:52 -05:00
Antonio Scandurra
a516c3be05 Allow scrolling of saved conversations (#3756)
Release Notes:

- N/A
2023-12-21 15:42:38 +01:00
Antonio Scandurra
01947ed730 Use existing AnyElement::draw 2023-12-21 15:32:05 +01:00
Antonio Scandurra
5e4557ed16 Fix warnings 2023-12-21 15:27:08 +01:00
Antonio Scandurra
176a022b10 Correctly clamp scroll offset vertically 2023-12-21 15:23:16 +01:00
Antonio Scandurra
e2a4474200 Allow scrolling saved conversations 2023-12-21 15:22:49 +01:00
Joseph T. Lyons
73b527ec8f Store email address on modal close 2023-12-21 09:04:54 -05:00
Antonio Scandurra
f83d156d7b Fix clicking on "+" button not working when a tab was underneath (#3755)
We were mistakenly pushing an opaque layer without intersecting it with
the content mask. Also, we were pushing two opaque layers for the same
div unnecessarily.

Release Notes:

- N/A
2023-12-21 14:57:52 +01:00
Antonio Scandurra
b0ee7b2fb9 Fix clicking on "+" button not working when a tab was underneath
We were mistakenly pushing an opaque layer without intersecting it
with the content mask. Also, we were pushing two opaque layers for
the same div unnecessarily.
2023-12-21 14:28:06 +01:00
Kirill Bulatov
8dc691fd6f Fix Zed2 cli actions: opening notes and joining calls (#3754)
Release Notes:

- N/A
2023-12-21 14:34:14 +02:00
Kirill Bulatov
b14c07ca54 Fix Zed cli actions: opening notes and joining calls 2023-12-21 14:27:13 +02:00
Antonio Scandurra
ff845cf829 Fix stale scroll position in tab bar (#3753)
Release Notes:

- N/A
2023-12-21 10:12:45 +01:00
Antonio Scandurra
b38a09526c Fix stale scroll position in tab bar 2023-12-21 10:03:15 +01:00
Antonio Scandurra
e4904e049f Fix WindowContext::available_actions missing some actions (#3752)
This pull request also allows turning an `ArenaBox` into an `ArenaRef`
when non-mutable access is required, which makes `ArenaRef: Clone`. This
fixes a bug that prevented the command palette from reading all the
available actions while the `command_palette::Toggle` action was being
dispatched.

Release Notes:

- N/A
2023-12-21 09:53:34 +01:00
Antonio Scandurra
c7933a6ad8 Remove stray dbg 2023-12-21 09:44:54 +01:00
Antonio Scandurra
73682daf38 Provide mut access to allocated arena struct via non-cloneable ArenaBox
This commit also allows turning an `ArenaBox` into an `ArenaRef` when
non-mutable access is required, which makes `ArenaRef: Clone`. This fixes
a bug that prevented the command palette from reading all the available
actions while the `command_palette::Toggle` action was being dispatched.
2023-12-21 09:41:48 +01:00
Joseph T. Lyons
ca091f3d34 Fix layout issues with feedback modal (#3751)
Release Notes:

- N/A
2023-12-21 00:00:06 -05:00
Joseph T. Lyons
036636ee80 Fix layout issues with feedback modal
The feedback modal still needs a styling update
2023-12-20 23:54:50 -05:00
Nathan Sobo
e5ce5e8692 Clear pending keystrokes when an action is dispatched (#3750)
This prevents the `cmd-k` keystroke, which clears the terminal, from
staying around as a pending keystroke on the parent workspace.

Release Notes:

- N/A
2023-12-20 20:50:59 -07:00
Nathan Sobo
4680aad885 Correctly compute placeholder text for buffer search query editor (#3749)
Rather than relying on the focused element, instead explicitly pass the
focus handle for the query editor when determining the prev/next
bindings. Only compute these values once.

Release Notes:

- N/A
2023-12-20 20:48:31 -07:00
Nathan Sobo
5747c9b7a1 Clear pending keystrokes when an action is dispatched 2023-12-20 20:41:36 -07:00
Nathan Sobo
c56e7cd124 Remove unused import 2023-12-20 19:53:57 -07:00
Nathan Sobo
4f6bef5b63 Improve interaction between clicking and dragging (#3737)
Once a drag starts, we won't fire click listeners or style any elements
as active.

- Don't fire click listeners or show active state once a drag is in
progress
- Don't show hover style when a drag is in progress
- Draw borders above content
- If borders are opaque, apply them to the content mask. This prevents
hovers from firing on content underneath the border, which was creating
issues where the drag handle was inside the border, so we'd flicker the
hover when the mouse moved out of the drag handle and into the 1px
border on the left dock.
- Add a `block_mouse` helper which causes transparent elements to paint
an "opaque" layer to prevent mouse events from falling through. We use
this for the drag handle as well to disable hover, click, etc on items
in the panel.

Release Notes:

- N/A
2023-12-20 19:31:06 -07:00
Max Brunsfeld
afbc655100 Ensure that views' on_release callbacks are always called (#3747)
* Ensure that views' on_release callbacks are always called (even if
their window is gone), by passing them a `AppContext`, not a
`WindowContext`.
* Fix leaked handles to `CollabPanel`, `NotificationPanel`, and
`ChatPanel` caused by captures in a `ListState` render callback.

This fixes two issues we were seeing with following:
* inability to rejoin a remote project after you closed it
* following not working if a window had previously been closed
2023-12-20 16:45:37 -08:00
Kirill Bulatov
87a1387f9a For file finder queries, match in all gitignored worktree entries (#3748)
Deals with https://github.com/zed-industries/community/issues/2347
Part of https://github.com/zed-industries/community/issues/1538

Now file finder will match all gitignored worktree entries.
Zed does not traverse gitignored dirs by default, which means that not
all gitignored files will be matches, but all that were toggled in
project panel and all root non-directory gitignored entries will be now
used, hopefully causing less questions.

Release Notes:

- Improved file finder to match all gitignored files that were added
into worktrees (e.g. due to opening gitignored directories in project
panel)
2023-12-21 02:34:34 +02:00
Max Brunsfeld
24970c1da9 Fix view handle leaks in ListState callbacks 2023-12-20 16:33:10 -08:00
Kirill Bulatov
2f56fe9129 For file finder queries, search in all gitignored worktree entries 2023-12-21 02:21:27 +02:00
Max Brunsfeld
42bdc11112 Prune dead workspaces from WorkspaceStore on read
Also, remove unnecessary window handle from Workspace.
2023-12-20 16:08:58 -08:00
Max Brunsfeld
5e7c74c7b6 Ensure that on_release callbacks are called even if view outlives its window 2023-12-20 16:01:52 -08:00
Marshall Bowers
d61cac6160 Add ToggleButton for use in buffer search (#3746)
This PR adds a new `ToggleButton` component:

<img width="738" alt="Screenshot 2023-12-20 at 6 50 13 PM"
src="https://github.com/zed-industries/zed/assets/1486634/9c5fb45b-0b55-4008-9336-b651a26a99ad">

We're using `ToggleButton`s for the search mode selection in the buffer
search:

<img width="842" alt="Screenshot 2023-12-20 at 6 47 57 PM"
src="https://github.com/zed-industries/zed/assets/1486634/178a278f-172c-4c67-8572-83d59de2ed14">

Release Notes:

- N/A
2023-12-20 19:00:04 -05:00
Marshall Bowers
11807bb82d Add large variant for buttons 2023-12-20 18:47:22 -05:00
Marshall Bowers
93c8bee747 Use ToggleButtons for search mode in buffer search 2023-12-20 18:32:12 -05:00
Kirill Bulatov
8238edb5aa Remove nightly from zed1 and use proper namespaces for nightly in zed2 manifest (#3745)
Currently, I get 404 when trying to open links for nightly, like
https://zed.dev/nightly/channel/Rooms-329
The PR ensures nightly has a separate protocol handler in zed2, removes
nightly mentions from zed1.

See also zed.dev change:
https://github.com/zed-industries/zed.dev/pull/429

Release Notes:

- N/A
2023-12-21 01:24:57 +02:00
Marshall Bowers
443b1dd345 Add ToggleButton component 2023-12-20 18:23:21 -05:00
Kirill Bulatov
2cd7d2db46 Remove nightly from zed1 and use proper namespaces for nightly in zed2 manifest 2023-12-21 01:18:00 +02:00
Kirill Bulatov
56f2b963ef Restore "reveal in project panel" and "search in directory" context menu actions (#3744)
Release Notes:

- N/A
2023-12-21 01:12:06 +02:00
Kirill Bulatov
72c8beae30 Restore "reveal in project panel" and "search in directory" context menu actions 2023-12-21 01:07:05 +02:00
Marshall Bowers
5272794fe1 Refine toolbar and buffer search styling (#3743)
This PR refines the toolbar styling, specifically around the buffer
search.

Spacing has been adjusted to feel less claustrophobic.

Release Notes:

- N/A
2023-12-20 17:43:27 -05:00
Marshall Bowers
e5e8e8882f Inline toggle replace button 2023-12-20 17:34:08 -05:00
Marshall Bowers
2ac472e0e0 Inline buttons 2023-12-20 17:31:36 -05:00
Marshall Bowers
8a8b498ee1 Style replace input 2023-12-20 17:25:38 -05:00
Marshall Bowers
b493d8f6c0 Improve spacing of items in buffer search bar 2023-12-20 17:10:27 -05:00
Marshall Bowers
b9bc74abe5 Increase toolbar padding 2023-12-20 17:03:44 -05:00
Marshall Bowers
53b608378c Don't apply the gap when we don't have any items in the first row 2023-12-20 17:02:15 -05:00
Nathan Sobo
87ae21feb3 Merge remote-tracking branch 'origin/main' into cancel-clicks-on-drag 2023-12-20 15:01:10 -07:00
Nathan Sobo
d499cccebb Only compute placeholder text once 2023-12-20 14:47:56 -07:00
Marshall Bowers
bc479af2c1 Style incoming call notification (#3742)
This PR styles the incoming call notification.

<img width="405" alt="Screenshot 2023-12-20 at 3 56 39 PM"
src="https://github.com/zed-industries/zed/assets/1486634/9cfb89e7-ba5f-4463-bf53-a3f8a82e136f">

Release Notes:

- N/A
2023-12-20 16:16:03 -05:00
Marshall Bowers
7b51f73826 Tighten up project share notifications 2023-12-20 16:06:59 -05:00
Marshall Bowers
9a06b7e77d Style incoming call notifications 2023-12-20 15:59:01 -05:00
Nathan Sobo
9acb5825e6 Compute the query editor placeholder text with a focus handle
So we're not beholden to the current focus.
2023-12-20 13:00:52 -07:00
Piotr Osiewicz
26fb67b3e4 chore: Remove 'db' dependency from recent_projects2 (#3740)
It was pulling in gpui1 into zed2 build.

Release Notes:

- N/A
2023-12-20 20:38:37 +01:00
Marshall Bowers
c1df27c792 Style notification panel (#3741)
This PR makes a first pass at styling the notification panel.

#### Signed out

<img width="381" alt="Screenshot 2023-12-20 at 11 41 25 AM"
src="https://github.com/zed-industries/zed/assets/1486634/f045fa17-4ebc-437f-a25b-d7695d47f18b">

#### No notifications

<img width="380" alt="Screenshot 2023-12-20 at 11 44 23 AM"
src="https://github.com/zed-industries/zed/assets/1486634/3a7543f2-8cd8-4788-8059-d5663f5f6b4c">

#### Notifications

<img width="386" alt="Screenshot 2023-12-20 at 1 27 08 PM"
src="https://github.com/zed-industries/zed/assets/1486634/13b81722-c47a-4c06-b37d-e6515cbfdb9d">

Release Notes:

- N/A
2023-12-20 14:06:33 -05:00
Nathan Sobo
15f16f08d9 Move application of content mask and z-index into Interactivity::paint
This allows the content mask to correctly apply to bounds used in event handlers,
which prevents content under opaque borders from being hovered in overflow hidden
containers.

Co-Authored-By: Antonio <antonio@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-12-20 11:43:45 -07:00
Marshall Bowers
da34dd49bb Fix text wrapping issues with overflow_hidden
This seems to influence sizing calculations in ways I don't fully understand.
2023-12-20 13:25:17 -05:00
Joseph T. Lyons
4c0856e096 collab 0.32.0 2023-12-20 13:15:44 -05:00
Marshall Bowers
b0b4610a73 Fix positioning of right items 2023-12-20 13:05:21 -05:00
Nathan Sobo
fffb30ac6d Add InteractiveElement::block_mouse which renders an "opaque" layer
Co-Authored-By: Antonio <antonio@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-12-20 11:02:47 -07:00
Joseph T. Lyons
73b13b7dc6 v0.119.x dev 2023-12-20 13:00:01 -05:00
Max Brunsfeld
a125610f81 Assign draw order to surfaces using plane splitter (#3739)
It looks like we neglected to incorporate surfaces into the
plane-splitting code path, which assigns each graphics primitive's draw
order.

This fixes an issue where screensharing frames were not visible when the
screenshare tab was zoomed.
2023-12-20 09:54:03 -08:00
Marshall Bowers
87f879bfa9 Add text wrapping to notifications 2023-12-20 12:48:30 -05:00
Nathan Sobo
dc047437c6 Don't consider any element hovered when actively dragging
Co-Authored-By: Antonio <antonio@zed.dev>
2023-12-20 10:46:36 -07:00
Marshall Bowers
9c4e8699ba Remove unneeded wrapping element 2023-12-20 12:45:18 -05:00
Max Brunsfeld
8f677cc0c6 Assign draw order to surfaces using plane splitter 2023-12-20 09:43:04 -08:00
Julia
e1a4e8ea16 Reintroduce LSP diagnostic/status message (#3728)
Release Notes:

- N/A
2023-12-20 12:23:36 -05:00
Julia
11140a1d34 Use ButtonLike rather than ad-hoc button
Co-Authored-By: Marshall Bowers <marshall@zed.dev>
2023-12-20 12:15:13 -05:00
Antonio Scandurra
90db278724 Prevent ArenaRef from being cloned (#3738)
This could cause multiple mutable references to be acquired for the same
arena element, which is unsafe. I didn't see it cause problems in
practice, but I realized this could have been a problem and fixed it
before it bit us.

Release Notes:

- N/A
2023-12-20 17:52:16 +01:00
Marshall Bowers
636c12ec3f Style signed-out and empty states for the notification panel 2023-12-20 11:45:18 -05:00
Marshall Bowers
3886b1993d Fix formatting breakage 2023-12-20 11:41:51 -05:00
Kirill Bulatov
e72f56c432 Port language_tools crate to gpui2 (#3673)
Add back a way to show syntax trees and LSP logs in Zed.

Release Notes:

- N/A
2023-12-20 18:34:40 +02:00
Antonio Scandurra
6e2346c537 Prevent ArenaRef from being cloned 2023-12-20 17:32:59 +01:00
Julia
5840750b3d Avoid workspace use while leased 2023-12-20 11:28:56 -05:00
Kirill Bulatov
fc923a2a98 Close syntax tree view menu on click too 2023-12-20 18:28:32 +02:00
Marshall Bowers
5145795f33 Adjust styles for notification panel container 2023-12-20 11:27:28 -05:00
Kirill Bulatov
331af82cb1 Rework context menu's custom element API to handle clicks properly 2023-12-20 18:23:09 +02:00
Kirill Bulatov
19d1568140 Lsp log selector fixes 2023-12-20 18:23:09 +02:00
Kirill Bulatov
fe40e3920b Fix remaining z-index bugs
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-12-20 18:23:09 +02:00
Kirill Bulatov
1474816a93 Syntax tree panel style fixes 2023-12-20 18:23:08 +02:00
Kirill Bulatov
7b83d65deb Remove temporary imports, fix syntax_tree_view 2023-12-20 18:23:08 +02:00
Kirill Bulatov
6a90a76bf2 Use stock gpui2 ui components 2023-12-20 18:23:08 +02:00
Kirill Bulatov
3586bf8b6b Display something 2023-12-20 18:23:08 +02:00
Kirill Bulatov
c1f8929e43 Add new panels into zed2 2023-12-20 18:23:08 +02:00
Kirill Bulatov
7e6dac383e Uncomment tests 2023-12-20 18:23:08 +02:00
Kirill Bulatov
8471a5f80b Finish all but the styling 2023-12-20 18:23:08 +02:00
Kirill Bulatov
75074c3297 Apply more fixes to the visual part 2023-12-20 18:23:08 +02:00
Kirill Bulatov
676a07270e First fixes 2023-12-20 18:23:08 +02:00
Kirill Bulatov
64925231b0 Create a new crate 2023-12-20 18:23:08 +02:00
Marshall Bowers
229b5aa8f7 Style links in terminal (#3736)
This PR styles links in the terminal using the colors from the theme.

Release Notes:

- N/A
2023-12-20 10:57:15 -05:00
Antonio Scandurra
57a372fcdc Perform a bounds check when allocating in the arena (#3735)
This ensures we don't invoke undefined behavior when overflowing.

Release Notes:

- N/A
2023-12-20 16:56:14 +01:00
Nathan Sobo
5b29c89e1c Clear pending click state when dragging
Once a drag starts, we won't fire click listeners or style any elements
as active.

Co-Authored-By: Antonio <antonio@zed.dev>
2023-12-20 08:55:18 -07:00
Nathan Sobo
12bb13b9fc Perform a bounds check when allocating in the arena
This ensures we don't invoke undefined behavior when overflowing.

Co-Authored-By: Antonio <antonio@zed.dev>
2023-12-20 08:20:00 -07:00
Antonio Scandurra
8f9e813302 Show button as selected if screen sharing is on (#3734)
Release Notes:

- N/A
2023-12-20 14:44:24 +01:00
Antonio Scandurra
53a1b26ff5 Show a "disconnected overlay" when project becomes read-only (#3733)
<img width="1136" alt="image"
src="https://github.com/zed-industries/zed/assets/482957/9daaf21a-90d6-4074-9c65-360df5661221">


Release Notes:

- N/A
2023-12-20 14:18:15 +01:00
Antonio Scandurra
6e1ba645f3 Show button as selected if screen sharing is on 2023-12-20 14:17:15 +01:00
Antonio Scandurra
57f3a882fe Render disconnected overlay when project becomes readonly 2023-12-20 14:10:59 +01:00
Antonio Scandurra
390ccbc6ad Disable focus when disconnecting from host 2023-12-20 14:10:56 +01:00
Antonio Scandurra
8273865fa3 Introduce InteractiveElement::capture_any_mouse_{down,up} 2023-12-20 14:00:12 +01:00
Antonio Scandurra
5781cf6604 Use InteractiveBounds everywhere we change the cursor style 2023-12-20 13:59:52 +01:00
Piotr Osiewicz
2f57a3ccfb Popover buttons titlebar (#3732)
Migrate project picker/vcs menu to use popover_menu.

Release Notes:
- N/A
2023-12-20 12:47:53 +01:00
Antonio Scandurra
ed5a9eb552 Fix sluggish experience when dragging tabs (#3731)
The problem was caused by a missing call to `WindowContext::notify` when
moving the mouse. Actually, we *did* notify as part of a
`MouseMoveEvent` listener registered in `Interactivity` but that code
path was never exercised because we were clearing the
`pending_mouse_down`.

This pull request fixes the issue by automatically redrawing the window
in gpui when there is an active drag and the mouse moves.

Release Notes:

- N/A
2023-12-20 11:34:09 +01:00
Antonio Scandurra
00927db711 Fix sluggish experience when dragging tabs
The problem was caused by a missing call to `WindowContext::notify` when
moving the mouse. Actually, we *did* notify as part of a `MouseMoveEvent`
listener registered in `Interactivity` but that code path was never
exercised because we were clearing the `pending_mouse_down`.

This commit fixes the issue by automatically redrawing the window in gpui
when there is an active drag and the mouse moves.
2023-12-20 11:21:55 +01:00
Max Brunsfeld
dfed171627 Ensure that new view observers are called by WindowContext::replace_root_view (#3730)
This fixes a bug where the window got into a bad, non-interactive state
when opening a project from an empty window.
2023-12-19 17:16:30 -08:00
Max Brunsfeld
c81e89a4f4 Ensure that new view observers are called by WindowContext::replace_root_view 2023-12-19 17:04:42 -08:00
Max Brunsfeld
71d17e268d Fix layout of diagnostic blocks (#3729)
Previously, all of the lines in a multi-line error message were painted
on top of each other. I also simplified the logic for highlighting
backtick-enclosed ranges in a diagnostic message.
2023-12-19 15:49:56 -08:00
Marshall Bowers
305cd9b288 Style go-to-definition links (#3727)
This PR styles go-to-definition links using the link color from the
theme.

Release Notes:

- N/A
2023-12-19 18:41:45 -05:00
Max Brunsfeld
3fccc648d6 Fix layout of diagnostic blocks 2023-12-19 15:41:00 -08:00
Julia
0390fb1449 Reintroduce LSP diagnostic/status message
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-12-19 18:38:25 -05:00
Marshall Bowers
afcf6c6852 Map textLink.activeForeground from VS Code to link_text_hover 2023-12-19 18:29:27 -05:00
Marshall Bowers
a0224b975b Use link_text_hover for go-to-definition links 2023-12-19 18:24:52 -05:00
Marshall Bowers
53b76e3e4d Style pane drop targets (#3726)
This PR styles the pane drop targets using the `drop_target_background`
color from the theme.

We do have to adjust the alpha channel of the color so that it doesn't
obscure the contents of the buffer.

Release Notes:

- N/A
2023-12-19 18:06:21 -05:00
Marshall Bowers
547ad77243 Style tab drop targets for project entries (#3725)
This PR styles the drop targets when dragging a project entry onto a tab
or the tab bar.

I also adjusted the existing tab drop targets to use the
`drop_target_background` from the theme.

Release Notes:

- N/A
2023-12-19 17:45:42 -05:00
Max Brunsfeld
599ec5c25b Make collab panel usable from the keyboard, add missing styling (#3724)
* allow confirming all items via the keyboard
* allow deploying the channel context menu via the keyboard
* add missing selected styling for list items
2023-12-19 14:33:56 -08:00
Max Brunsfeld
afd3bf7746 Add missing selected state and keyboard action for some collab panel items 2023-12-19 14:16:44 -08:00
Max Brunsfeld
901795bcb9 Don't reset the collab panel when it loses focus 2023-12-19 14:12:29 -08:00
Max Brunsfeld
1b09862384 Restrcit context for some editor bindings that don't apply to single-line editors 2023-12-19 14:11:59 -08:00
Kirill Bulatov
acbb3f39f6 Better display items from different sources with different z-indices in the same place (#3723) 2023-12-20 00:01:37 +02:00
Kirill Bulatov
cf12d62fc5 Tidy up z-index handling
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-12-19 23:50:42 +02:00
Marshall Bowers
097640e7c5 Fix typo in ButtonCommon doc comment (#3722)
This PR fixes a small typo in the doc comments for `ButtonCommon`.

Was waiting to roll this up into another PR, but it never ended up
happening.

Release Notes:

- N/A
2023-12-19 16:32:57 -05:00
Kirill Bulatov
f6d31917c1 Optimize stack id in-memory layout 2023-12-19 23:31:17 +02:00
Kirill Bulatov
8f1c5375ef Fix more z-index and rendering issues
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-12-19 23:30:17 +02:00
Kirill Bulatov
825a8f0927 Initial fix of the z-index
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-12-19 23:29:08 +02:00
Marshall Bowers
a9fe108dbb Fix typo in "Quote Selection" tooltip (#3721)
This PR fixes a typo in the "Quote Selection" tooltip.

Release Notes:

- N/A
2023-12-19 16:21:58 -05:00
Marshall Bowers
7bc9319871 Apply padding at the toolbar level (#3720)
This PR adjusts the padding in the toolbar to be applied within the
toolbar itself.

Previously the different elements within the toolbar were applying their
own padding, which led to inconsistencies.

Release Notes:

- N/A
2023-12-19 16:01:03 -05:00
Max Brunsfeld
407478d411 Add missing collab panel features (#3719)
* channel modal
* channel invites in collab panel
2023-12-19 12:16:01 -08:00
Max Brunsfeld
a9b1273e2b Clean up commented code
Co-authored-by: Nathan <nathan@zed.dev>
2023-12-19 12:06:47 -08:00
Max Brunsfeld
1c3698ae20 Implement channel modal
Co-authored-by: Nathan <nathan@zed.dev>
2023-12-19 12:02:35 -08:00
Marshall Bowers
4e07167288 Use child instead of children (#3718)
This PR refactors some code where we were using `children` when we could
have used `child` instead.

Release Notes:

- N/A
2023-12-19 13:49:52 -05:00
Max Brunsfeld
80b6922de7 wip 2023-12-19 10:20:40 -08:00
Max Brunsfeld
a4bfd0147d Render channel invites in collab panel, fix unused warnings 2023-12-19 10:20:40 -08:00
Marshall Bowers
a3bab25792 Style contact finder (#3717)
This PR styles the contact finder.

<img width="598" alt="Screenshot 2023-12-19 at 12 59 00 PM"
src="https://github.com/zed-industries/zed/assets/1486634/ca9d9345-bf27-4256-aabc-6017a0c4d217">

Release Notes:

- N/A
2023-12-19 13:16:14 -05:00
Julia
ef39382c84 Allow editor mouse drag selection outside interactive bounds (#3716)
Release Notes:

- N/A
2023-12-19 13:07:31 -05:00
Julia
961f989388 Match zed1 scrollbar drag behavior (#3715)
Still not ideal, but we need to ship and this is more than reasonable

Release Notes:

- N/A
2023-12-19 13:00:26 -05:00
Julia
e08fc0bbc0 Allow editor mouse drag selection outside interactive bounds
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-12-19 13:00:21 -05:00
Julia
51396344a3 Match zed1 scrollbar drag behavior
Still not ideal, but we need to ship and this is more than reasonable

Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-12-19 12:50:06 -05:00
Nate Butler
e778e17f54 Style assistant panel (#3711)
[[PR Description]]

Styles most of the assistant panel. A few notes:

- We now cut off the title if it gets to long so the assistant tools
don't get cut off
- I wasn't able to get to the "no api key" state, so that hasn't been
style checked yet.
- A few of icons were updated in this PR

I also added a new tooltip that teaches you a bit about role cycling:

![CleanShot 2023-12-19 at 12 08
15@2x](https://github.com/zed-industries/zed/assets/1714999/89dcdcc0-9ef9-4527-94a2-6146b5f127f2)

🐜 Known issues 🐜

- There is a bug where zooming the panel makes it shift 1px (@maxdeviant
I think this has to do with panel borders)
- We are showing a timestamp for new conversations before you have sent
a message/launched an assist action. I wasn't sure how to case this out.

Before:

![CleanShot 2023-12-19 at 12 06
17@2x](https://github.com/zed-industries/zed/assets/1714999/16154add-a7f4-455a-a5c5-706847e012a2)

![CleanShot 2023-12-19 at 12 05
00@2x](https://github.com/zed-industries/zed/assets/1714999/a6d325ec-59c2-41b3-ad82-6cf88f2f70a0)

After:

![CleanShot 2023-12-19 at 12 05
37@2x](https://github.com/zed-industries/zed/assets/1714999/aaa4668e-b361-411a-8865-1989bd1c3ae1)

![CleanShot 2023-12-19 at 12 05
52@2x](https://github.com/zed-industries/zed/assets/1714999/0c6a9970-56ab-43cc-9394-fd3f6bf0ed6a)


Release Notes:

- N/A
2023-12-19 12:11:18 -05:00
Marshall Bowers
616ea131af Style buffer search input (#3713)
This PR styles the text input for the buffer search.

Release Notes:

- N/A
2023-12-19 12:11:06 -05:00
Max Brunsfeld
b797cd3e71 Fix panel resize (#3707)
* [x] Reposition right dock handle
* [x] Handle mouse events correctly for drag and drop
* [x] Prevent drag events from passing through the resize handle to the
draggable items in the panels (channels, files)
* [x] Stop the editor gutter from stealing mouse move events
2023-12-19 09:08:56 -08:00
Nate Butler
5d95e13cc8 Update assistant editor 2023-12-19 12:04:01 -05:00
Max Brunsfeld
e655d2434a Don't stop propagation on mouse move over editor gutter 2023-12-19 09:02:25 -08:00
Nate Butler
d8eea949ef Update assistant panel message header, model switcher 2023-12-19 11:58:20 -05:00
Nate Butler
a1085184a1 use to_string to return the format distance string from FormatDistance 2023-12-19 11:57:57 -05:00
Max Brunsfeld
cf037ea4a8 Merge branch 'main' into fix-panel-resize 2023-12-19 08:55:55 -08:00
Nate Butler
d8a8feb45c Add FormatDistance struct, add hide_prefix option 2023-12-19 11:41:14 -05:00
Marshall Bowers
3e6b84a726 Wire up the middle mouse button to close tabs (#3714)
This PR wires up the middle mouse button to close tabs.

Right now we're doing this using `on_mouse_down`, but we need a way in
GPUI2 to have an `on_click` for a mouse button other than the left one.

Release Notes:

- N/A
2023-12-19 11:26:55 -05:00
Nate Butler
79653d2175 Rename format distance test names 2023-12-19 11:19:18 -05:00
Nate Butler
ae313ff830 Allow format_distance to take a DateTimeType 2023-12-19 11:16:59 -05:00
Nate Butler
30b01b9bc0 Update imports, tab height const 2023-12-19 11:03:08 -05:00
Nate Butler
286f654517 Update assistant header 2023-12-19 10:57:36 -05:00
Antonio Scandurra
cc107f72f8 Maintain scroll position in CollabPanel after updating entries (#3712)
Release Notes:

- N/A
2023-12-19 16:41:25 +01:00
Nate Butler
57efaa92cf Style assistant header, update icons 2023-12-19 10:30:46 -05:00
Antonio Scandurra
dd84993d76 Maintain scroll position in CollabPanel after updating entries
Co-Authored-By: Julia <julia@zed.dev>
2023-12-19 16:06:00 +01:00
Nate Butler
42a02e4fb6 Remove red border 2023-12-19 10:03:59 -05:00
Nate Butler
2c402f9b5d Ensure conversation items fill the container 2023-12-19 10:03:26 -05:00
Nate Butler
49502af4d3 Update conversation item rendering 2023-12-19 09:56:29 -05:00
Antonio Scandurra
91b65958a7 Fix janky editor scrollbar dragging (#3710)
We can receive multiple events before computing the next frame, and in
that case we want to compute a drag delta between the position for the
previous mouse event and the current one.

Release Notes:

- N/A
2023-12-19 15:41:15 +01:00
Antonio Scandurra
b30fd3f574 Fix janky editor scrollbar dragging
We can receive multiple events before computing the next frame, and
in that case we want to compute a drag delta between the position for the
previous mouse event and the current one.
2023-12-19 15:32:42 +01:00
Antonio Scandurra
1bb85c1b9a Prevent default when mousing down on a button that responds to clicks (#3709)
This ensures that ancestors that track focus don't accidentally steal it
on mouse down, which was preventing the editor from deploying the code
actions menu.

Release Notes:

- N/A
2023-12-19 14:41:58 +01:00
Antonio Scandurra
afbc61a344 Prevent default when mousing down on a button that responds to clicks
This ensures that ancestors that track focus don't accidentally steal
it on mouse down, which was preventing the editor from deploying the
code actions menu.
2023-12-19 14:27:19 +01:00
Antonio Scandurra
02e53025f3 Track caller on h_stack and v_stack 2023-12-19 14:26:30 +01:00
Antonio Scandurra
6a0740fa6d Set window edited in zed2 (#3708)
Release Notes:

- N/A
2023-12-19 12:05:32 +01:00
Antonio Scandurra
ae32706cfe Fix tests 2023-12-19 11:04:32 +01:00
Antonio Scandurra
ba0d7e35bb Set window edited 2023-12-19 10:26:06 +01:00
Kirill Bulatov
4b74f30d0a Properly restore termina current dir when deserializing the project 2023-12-19 06:44:26 +02:00
Max Brunsfeld
2979eb9da9 Allow transparent divs to be considered "top layers"
This changes the meaning of `was_top_layer` so that it is checking that
nothing opaque is on top of the given layer. The layer in question
need not be opaque.
2023-12-18 18:32:08 -08:00
Max Brunsfeld
b88370d5ad Respect a div's own z-index when adding its event listeners 2023-12-18 18:02:19 -08:00
Max Brunsfeld
ee8e1454fc Fix drag and drop logic in div's mouse handling
* Attach mouse up and mouse move listeners immediately, not just when there
  is already a drag in progress, because when starting a drag, these other
  events may fire before the next frame.
* Remove bounds checks for handling mouse move and mouse events, since a
  dragged object may be moved outside of its original container.

Co-authored-by: Nathan Sobo <nathan@zed.dev>
2023-12-18 16:17:56 -08:00
Max Brunsfeld
e6f3731efd Fix position of right dock handle
Co-authored-by: Nathan Sobo <nathan@zed.dev>
2023-12-18 16:05:54 -08:00
Marshall Bowers
91f1be213b Style project share notification (#3706)
This PR styles the project share notification, so we're not staring a
red rectangle.

<img width="425" alt="Screenshot 2023-12-18 at 6 06 14 PM"
src="https://github.com/zed-industries/zed/assets/1486634/7ae9a2d3-d5d9-427c-9125-3a47df5f6a2f">

Release Notes:

- N/A
2023-12-18 18:13:09 -05:00
Marshall Bowers
912f7e6c1a Add ability to warn on missing theme values (#3705)
This PR adds the ability to warn in the `theme_importer` when a theme is
missing values.

Providing the `--warn-on-missing` flag to the `theme_importer` will
print a warning for missing theme value when printing the theme.

```sh
cargo run -p theme_importer -- --warn-on-missing
```

Release Notes:

- N/A
2023-12-18 17:18:49 -05:00
Marshall Bowers
734bbfa66f Use status colors for contact availability indicators (#3704)
This PR updates the availability indicators in the contact list to use
the status colors from the theme.

Release Notes:

- N/A
2023-12-18 16:56:44 -05:00
Marshall Bowers
64ceb61aa3 Add pane dividers (#3703)
This PR adds dividers between panes in a split.

Release Notes:

- N/A
2023-12-18 16:32:51 -05:00
Nate Butler
6da0fa98e2 Add toolbar spacing (#3702)
[[PR Description]]

Release Notes:

- N/A
2023-12-18 16:18:53 -05:00
Nate Butler
a286ec4650 Update toolbar.rs 2023-12-18 16:10:13 -05:00
Marshall Bowers
9785481aba Make Disclosure accept an ID (#3701)
This PR makes the `Disclosure` component accept an ID rather than using
a static ID for all disclosures.

Release Notes:

- N/A
2023-12-18 15:21:04 -05:00
Nate Butler
9cd8e99a9a Update toolbar.rs 2023-12-18 14:10:12 -05:00
Nate Butler
2ae39b70c8 Add left side padding 2023-12-18 13:55:30 -05:00
Marshall Bowers
4fdf6a867a Wire up offline contact list (#3700)
This PR wires up the offline contact list.

Also enables toggling both the online and offline contact lists.

Release Notes:

- N/A
2023-12-18 13:54:11 -05:00
Nate Butler
c9893ce2fd Use flex_1 div instead of justify_center in toolbar 2023-12-18 13:51:04 -05:00
Nathan Sobo
d058515b81 Use a different frame arena for each window (#3696)
This fixes a panic that was caused by sharing the same frame allocator
for different windows.

Release Notes:

- N/A
2023-12-18 11:49:59 -07:00
Max Brunsfeld
0000e68310 Remove unused Arena::sized method 2023-12-18 10:41:02 -08:00
Antonio Scandurra
37efe82c5e Use a different frame arena for all elements
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-12-18 19:35:17 +01:00
Marshall Bowers
98f5a3d544 Center text on welcome screen (#3699)
This PR centers the text "Code at the speed of thought" on the welcome
screen.

Release Notes:

- N/A
2023-12-18 13:35:05 -05:00
Marshall Bowers
0aa690f915 Always show channel toggle when collapsed (#3698)
This PR makes the channel toggle disclosure always visible when a
channel tree is collapsed, as opposed to just being visible on hover.

This makes it possible to visually identify collapsed channel trees
without having to hover over each entry.

Release Notes:

- N/A
2023-12-18 13:27:47 -05:00
Nate Butler
f143467478 Update collab panel signed out state (#3697)
[[PR Description]]

Before: 

![CleanShot 2023-12-18 at 13 10
14@2x](https://github.com/zed-industries/zed/assets/1714999/a0e536c3-b5bf-45e2-893b-89b1ae7b4c47)

After:

![CleanShot 2023-12-18 at 13 10
36@2x](https://github.com/zed-industries/zed/assets/1714999/5d66a4a9-cc19-420d-82c7-58ec5cd264e4)

One known issue:

The "Sign in to enable collaboration" text below the button should be
centered, but it looks like label is reserving the full width. Need to
look in to that.

Release Notes:

- N/A
2023-12-18 13:22:45 -05:00
Nate Butler
9d014b0f9a Remove comment 2023-12-18 13:11:51 -05:00
Nate Butler
89b231afeb Update collab panel signed out state 2023-12-18 13:09:46 -05:00
Antonio Scandurra
cef9aa3590 Use a different frame arena for each window
Co-Authored-By: Max Brunsfeld <max@zed.dev>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-12-18 18:58:40 +01:00
Nate Butler
eeaa1e5cf9 Add github icon 2023-12-18 12:56:57 -05:00
Nate Butler
d72cd3795a Fix implementation of full_width and icon_position in button 2023-12-18 12:56:50 -05:00
Marshall Bowers
5900b815e1 Remove unimplemented toggling for project search entries (#3695)
This PR removes the unimplemented toggling of search results in the
project search.

This is new functionality that didn't exist in Zed1, and it's likely
that we won't be adding it before launch, so removing it for now.

Release Notes:

-  N/A
2023-12-18 12:53:08 -05:00
Nate Butler
5c7de103a9 Style wrap guides (#3693)
[[PR Description]]

This PR styles wrap guides. Wrap guides weren't being added to the theme
in the theme importer, and they were also missing from One Dark.

One Dark:

![CleanShot 2023-12-18 at 11 16
48@2x](https://github.com/zed-industries/zed/assets/1714999/5578127f-8d69-4f47-af60-c44de87331e0)

Gruvbox:

![CleanShot 2023-12-18 at 11 17
38@2x](https://github.com/zed-industries/zed/assets/1714999/a2ac5db9-e5bf-4452-9f9d-49f074231587)

Bad border (known importer issue):

![CleanShot 2023-12-18 at 11 17
49@2x](https://github.com/zed-industries/zed/assets/1714999/37d11e37-38b6-4001-aef0-19fc2d925425)

No border (known importer issue):

![CleanShot 2023-12-18 at 11 18
14@2x](https://github.com/zed-industries/zed/assets/1714999/3d74bd8c-514e-4e14-94db-425a39d057ab)


Release Notes:

- N/A
2023-12-18 11:35:00 -05:00
Nate Butler
196df1c378 Start on collab panel empty state 2023-12-18 11:33:37 -05:00
Julia
4707248714 Revert accidental merge of old version of workspace2 render function (#3694)
Something happened with my local diff and
https://github.com/zed-industries/zed/pull/3691 somehow contained an old
version of workspace2's render function. Perhaps I rebased at some point
and borked it? Not sure 🤷‍♀️

Release Notes:

- N/A
2023-12-18 11:32:06 -05:00
Joseph T. Lyons
a623929340 Add backtrace hash to collab server panic api (#3692)
Release Notes:

- N/A
2023-12-18 11:21:41 -05:00
Nate Butler
da7628cc1e Style wrap guides for imported themes 2023-12-18 11:16:22 -05:00
Nate Butler
b46f5be490 Style One Dark wrap guides 2023-12-18 11:16:00 -05:00
Joseph T. Lyons
7cd6825eee Add backtrace hash to collab server panic api 2023-12-18 11:12:23 -05:00
Joseph T. Lyons
02bcc7bbeb Add release channel to zed2 collab server 2023-12-18 11:09:54 -05:00
Julia
488073deba Unbork project search focus (#3691)
I got a little too clever for my own good with these focus handles
originally lol

Release Notes:

- N/A
2023-12-18 10:54:11 -05:00
Julia
b4042feccd Unbork project search focus 2023-12-18 10:44:34 -05:00
Kirill Bulatov
11e657803e Fix worktree panic for out-of-worktree files being opened (#3690)
Fixes
https://zed-industries.slack.com/archives/C04S6T1T7TQ/p1702865855729989

Release Notes:

- Fixed certain files excluded from worktrees causing panics when being
opened
2023-12-18 13:30:46 +02:00
Kirill Bulatov
7e21e0f0eb Do not panic on non-worktree file indexing 2023-12-18 13:10:26 +02:00
Antonio Scandurra
4e544545d1 Introduce an Arena to allocate and deallocate frame-related structs more cheaply (#3689)
Picture worth a thousand words:


![before-after](https://github.com/zed-industries/zed/assets/482957/0aa92baf-f1cd-485e-a234-6d8f8b63a79a)

Note how having an area makes a substantial amount of frames between
0.5ms and 1ms faster (15-20% faster frames).

Release Notes:

- N/A
2023-12-18 11:16:07 +01:00
Antonio Scandurra
5a4e2e6b90 Use a closure to allocate structs onto the Arena
This is a trick borrowed from Bumpalo that helps LLVM understand
it should instantiate the object directly on the heap, as opposed to
doing so on the stack and then moving it.
2023-12-18 10:56:37 +01:00
Max Brunsfeld
29c6061a14 Fix following bugs (#3688)
* Follow command didn't work, because follow task was dropped
* An extra div prevented titlebar facepiles from rendering correctly
2023-12-15 16:34:08 -08:00
Max Brunsfeld
b5ae2f060b Remove div around all avatars in titlebar facepile 2023-12-15 16:26:56 -08:00
Max Brunsfeld
a4cdf365be Fix accidental drop of following task. Add back FollowNextCollaborator 2023-12-15 16:15:31 -08:00
Marshall Bowers
54eb452144 Only apply scroll correction in uniform_list when already scrolled (#3687)
This PR fixes an issue where the scroll correction added to the uniform
list in a35fdf45fc was being applied even
if the list wasn't scrolled at all.

This manifested in the project panel starting with an incorrect scroll
offset that would disappear once scrolled.

It seems like we should only need to apply this scroll correction when
the list is already scrolled.

Release Notes:

- N/A
2023-12-15 17:53:10 -05:00
Marshall Bowers
5447c6d5ee Fix channel filter input (#3686)
This PR fixes the channel filter in the collab panel not showing up.

Release Notes:

- N/A
2023-12-15 17:03:59 -05:00
Max Brunsfeld
c8e918690f Don't scroll List on scroll wheel events outside of its bounds (#3685) 2023-12-15 13:47:40 -08:00
Max Brunsfeld
149a718d65 Don't scroll List on scroll wheel events outside of its bounds 2023-12-15 13:38:49 -08:00
Marshall Bowers
ee77728663 Add --release flag to script/zed-local (#3684)
This PR adds support for the `--release` flag to `script/zed-local`.

This allows you to run a local build of Zed in release mode, which can
be useful when needing to profile things or do other performance work.

Release Notes:

- N/A
2023-12-15 16:38:40 -05:00
Max Brunsfeld
8efc38d43a Pane rendering fixes (#3683)
* Fix a bug where a pane's leader info was not rendered if the pane was
part of a split
* Fix a crash when zooming a pane, due to duplicate render of that view.
2023-12-15 13:34:34 -08:00
Marshall Bowers
170e332417 Add support for --release flag to zed-local script 2023-12-15 16:28:23 -05:00
Marshall Bowers
0ea59d6466 Format zed-local script 2023-12-15 16:27:58 -05:00
Max Brunsfeld
a5e037befa Avoid duplicate render of a pane when it is zoomed 2023-12-15 13:26:48 -08:00
Max Brunsfeld
e3e988c150 Always render panes via pane_group::Member::render
Remove distinct code path for rendering panes in a PaneAxis, as this dropped
the logic for rendering the leader border and info box.
2023-12-15 13:26:36 -08:00
Max Brunsfeld
4eb609a954 Enable zoom (#3668)
* [x] zoom
* [x] pane tests
2023-12-15 12:58:03 -08:00
Nate Butler
7af0edf5b6 Editor UI Cleanup (#3676)
[[PR Description]]

TODO: 
- [x] Style fold marker
- [x] Editor - Code action icon too large, should use muted color,
should have tooltip
- [ ] Style inline assistant
    - Prompt text gets cut off veritcally
- [x] Line height on inline assist editor isn't tall enough
- Nate: This is my fault due to the line height (relative: 1) we are
setting on non-buffer editors. I'll look into this.
- [ ] Style diagnostic hover (right now it's an opaque box on some
themes)
    - Nate: This needs status tints, we are working on it
- [ ] Hovering over a symbol shows a dialogue that appears underneath
the scroll-bar

Release Notes:

- N/A
2023-12-15 15:49:55 -05:00
Nate Butler
e71f2b49e8 Style fold control 2023-12-15 15:41:53 -05:00
Conrad Irwin
b8cdcf4e93 fix theme selector gaps (#3682)
- Don't scroll beyond end of uniform list
- Restore position of uniform_list padding

[[PR Description]]

Release Notes:

- N/A
2023-12-15 13:27:17 -07:00
Nathan Sobo
3781626379 Merge branch 'main' into arena 2023-12-15 13:22:19 -07:00
Conrad Irwin
3c3e5ed7d8 Fix bug where vim commands were copied on each update_matches (#3680)
In zed1, the array of commands was recalculated on every update_matches,
In zed2 it's cached before we change the focus.

Release Notes:

- N/A
2023-12-15 13:20:10 -07:00
Conrad Irwin
2fe9a1df21 Restore position of uniform_list padding
It should be inside the scrollable area.
2023-12-15 13:18:51 -07:00
Max Brunsfeld
4c3ec0a8e5 Enable pane tests 2023-12-15 12:00:58 -08:00
Conrad Irwin
a35fdf45fc Don't scroll beyond end of uniform list 2023-12-15 12:54:12 -07:00
Max Brunsfeld
9a8225c855 When a dock is zoomed, don't render it in its normal place 2023-12-15 11:48:25 -08:00
Max Brunsfeld
a4c123bb11 Fix logic for activating panel when re-docking it 2023-12-15 11:47:01 -08:00
Marshall Bowers
b1a61ca21e Fix toolbar width (#3681)
This PR fixes an issue with the toolbar width introduced in #3666.

The lack of a flex container was making the toolbar contents not take up
the full width, and thus not positions items correctly along its main
axis.

Release Notes:

- N/A
2023-12-15 14:44:29 -05:00
Max Brunsfeld
793381f455 Render zoomed item in the workspace 2023-12-15 11:19:59 -08:00
Marshall Bowers
487edcb12b Rework collab panel rendering to use gpui::list (#3678)
This PR reworks the rendering of the collab panel to use `gpui::list`,
so that we don't render any items that are not visible on the screen.

In the process we also fixed some bugs in the channel list:

- Fixed the context menu for channels not deploying when activated via
keyboard
- Fixed drag and drop for channels
- Made it so when navigating the collab panel via keyboard the list only
scrolls enough to reveal the next item when navigating to an item that
is currently off-screen

Release Notes:

- N/A
2023-12-15 14:11:24 -05:00
Mikayla Maki
dc7f4f4786 Fix editor mouse event dispatch stealing clicks (#3679)
[[PR Description]]

Release Notes:

-
2023-12-15 11:06:31 -08:00
Marshall Bowers
5c060ceb1c Format code 2023-12-15 14:03:49 -05:00
Marshall Bowers
5417127902 Fix channel drag and drop
Also add the ability to unnest a channel by dragging it to the "Channels"
header. This is currently not working due to a collab server issue.

Co-authored-by: Max <max@zed.dev>
2023-12-15 14:01:24 -05:00
Conrad Irwin
d0dbf8e1e2 Fix bug where vim commands were copied on each update_matches
In zed1, the array of commands was recalculated on every update_matches,
In zed2 it's cached before we change the focus.
2023-12-15 11:59:06 -07:00
Marshall Bowers
a40f04b71f Only scroll enough to reveal the next channel if it isn't visible
Co-authored-by: Max <max@zed.dev>
2023-12-15 13:50:51 -05:00
Mikayla
b4135dd2f1 Fix editor mouse event dispatch 2023-12-15 10:26:41 -08:00
Marshall Bowers
47fc03ab98 Fix positioning of the inline context menu
Added a new `bounds_for_item` for `ListState`.

Co-authored-by: Max <max@zed.dev>
2023-12-15 13:24:30 -05:00
Mikayla Maki
a65688abac Fix center pane resizing (#3677)
Release Notes:

- N/A
2023-12-15 10:15:58 -08:00
Mikayla
a2852e36ce Fix pane resizing 2023-12-15 10:07:10 -08:00
Antonio Scandurra
0a57171066 Use a safe API for Arena 2023-12-15 19:03:37 +01:00
Nate Butler
4cb0f60779 Update size of code action indicator and show when active 2023-12-15 12:29:33 -05:00
Nate Butler
83525bf142 Revert change to single line editor height 2023-12-15 12:22:33 -05:00
Marshall Bowers
b478a4c4d5 Perform scroll interactions through the ListState 2023-12-15 12:10:40 -05:00
Nate Butler
d13c1486da Update fold_indicator render 2023-12-15 12:09:06 -05:00
Marshall Bowers
6c10ff8548 Render the collab panel using a gpui::list 2023-12-15 11:56:03 -05:00
Nate Butler
3993b0acde Titlebar cleanup (#3675)
[[PR Description]]

Clean up titlebar design nits

- Remove red borders
- Update menu button styles
- Adjust padding
- Improve tooltips with keybindings

Release Notes:

- N/A
2023-12-15 11:45:52 -05:00
Nate Butler
6345e6d4d2 Add some right side padding in titlebar. 2023-12-15 11:25:24 -05:00
Nate Butler
d099d35948 Reduce intensity of project panel icons 2023-12-15 11:20:56 -05:00
Nate Butler
47eaf1abd8 Remove red borders, improve left side padding 2023-12-15 11:07:40 -05:00
Nate Butler
50a44dd8ba Improve tooltip with keybinding styling 2023-12-15 11:07:17 -05:00
Nate Butler
2b4f779918 Story/Storybook Enhancements (#3674)
[[PR Description]]

- Adds some Story components to reduce the amount of code needed to lay
out stories
- Added the ability to open a story in Zed using a link (see text story)
- Added sections with descriptions and usage.

Release Notes:

- N/A
2023-12-15 10:48:13 -05:00
Nate Butler
f459fc5e27 Fix import 2023-12-15 10:33:27 -05:00
Nate Butler
62ea58618c Merge branch 'main' into story-enhancements 2023-12-15 10:26:59 -05:00
Nate Butler
3d9e051b07 Update storybook2.rs 2023-12-15 10:25:07 -05:00
Antonio Scandurra
be73dd852d Move Arena to a thread-local and use it to allocate AnyElement 2023-12-15 16:18:05 +01:00
Antonio Scandurra
e1ca8e81bb Use an Arena to reuse allocations for listeners 2023-12-15 15:13:32 +01:00
Piotr Osiewicz
ff3f4f3027 search: Reintroduce whole word switch (#3672)
It seems to have been lost in the recent styling pass.

Release Notes:

- N/A
2023-12-15 12:20:54 +01:00
Piotr Osiewicz
2b3d9deabe Dismiss Recent Projects & VCS modals on ESC (#3671)
Release Notes:

- N/A
2023-12-15 12:07:25 +01:00
Kirill Bulatov
83b55de73e zed2: Restore buffer search deploy & focus behavior (#3670)
In zed1, cmd-f either opened the search buffer, or focused into it if it
was open already. Search query got updated, if any selection was made on
the moment of cmd-f call.

The PR restores that behavior and also

* fixes a bug when opened diagnostics error always got pasted
* comments out the panic on multibuffer separator click 
* removes extra stdout & stderr debug logging

Release Notes:

- N/A
2023-12-15 12:33:45 +02:00
Kirill Bulatov
4bfe46f53a Restore zed1 behavior for buffer search deploy 2023-12-15 12:23:03 +02:00
Kirill Bulatov
31ff7d40ed Adjust copy/paste buffer only on the copy error action trigger 2023-12-15 11:34:00 +02:00
Kirill Bulatov
a6403aad1a Remove extra nits, do not panic on clicking the buffer separator 2023-12-15 11:28:48 +02:00
Julia
62d655183b Fire focus handlers on draw to avoid timing with newly created item (#3640)
See title

Any focus changes which fire from within a focus handler should be
handled in the next frame

Release Notes:

- N/A
2023-12-14 23:57:24 -05:00
Julia
de523c2d80 Give correct focus handle when project search has no matches 2023-12-14 23:49:44 -05:00
Julia
4be84f3db0 Merge branch 'main' into focus-handlers-on-draw 2023-12-14 23:08:23 -05:00
Conrad Irwin
70a14bb22f Implement user menu (#3636)
Release Notes:

- N/A
2023-12-14 20:30:28 -07:00
Julia
d4e09230cc Give result-less project search a focus handle 2023-12-14 22:29:33 -05:00
Conrad Irwin
7e1d61d116 Merge branch 'main' into user-menu 2023-12-14 20:18:20 -07:00
Mikayla Maki
46bd6088e8 Fix some todos, add others (#3669)
As it says on the tin

Release Notes:

-
2023-12-14 19:00:58 -08:00
Julia
ff4da878f9 Render panel in these tests 2023-12-14 21:33:11 -05:00
Julia
fbcaf96ab5 Track focus on TestItem 2023-12-14 20:58:59 -05:00
Mikayla
6973b1b592 Add several red outlines 2023-12-14 17:48:49 -08:00
Mikayla
ead5206741 Fix todos in auto-update 2023-12-14 17:00:07 -08:00
Max Brunsfeld
b52db696d3 Fix overlay rendering when dragging onto the center of a pane (#3667) 2023-12-14 16:59:19 -08:00
Max Brunsfeld
52b9fc303b Fix overlay rendering when dragging onto the center of a pane 2023-12-14 16:52:03 -08:00
Mikayla Maki
c27dd57a48 Make more performance improvements to GPUI 2 (#3664)
In the 3 charts below, "window draw" has 3 major subroutines. Request
layout, where we walk over the tree and have everything talk to the
layout engine initially. Compute layout, where we have the layout engine
actually do the layout, and then paint, where we use the computed bounds
to populate the scene.


![image_720](https://github.com/zed-industries/zed/assets/1789/d2225389-865f-4c8a-9452-9f611da64dcf)

Things are moving quickly so before/after comparisons are tough. In the
graph above, green bars are from a commit actually pre-dates a merge of
master which increased the complexity of layout. The red bars represent
the state of the world after this PR. Note how we improve the
performance of `paint`.

Improvements:

- Not moving `self` in `Element::paint`. This was moving from the heap
to the stack and imposing a big cost. This is the biggest win in this
PR.
- We got some minor wins by making the stacking order a bigger smallvec
of u8 instead of u32.
- A big win that doesn't show up in this chart is avoiding a double
render of the editor when autoscrolling by never pushing notification
effects or marking the window dirty when notifying during a window draw.

Release Notes:

- N/A
2023-12-14 16:45:58 -08:00
Max Brunsfeld
b95cc7221c Fix centering of empty pane text (#3666)
The formatting of the empty pane text regressed in #3665, in which I
also made it possible to drag items onto an empty pane.
2023-12-14 16:44:30 -08:00
Mikayla Maki
05cb68eff1 Merge branch 'main' into perf-2 2023-12-14 16:39:10 -08:00
Max Brunsfeld
842f15c65b Fix centering of empty pane text 2023-12-14 16:35:58 -08:00
Max Brunsfeld
82c8b49dac Fix stickiness of main pane drag target (#3665)
Reimplement the pane drag targets using on_drag_move
2023-12-14 16:30:02 -08:00
Mikayla Maki
8418f25d0a Merge branch 'main' into perf-2 2023-12-14 16:25:40 -08:00
Max Brunsfeld
d6383ab0c6 Fix stickiness of main pane drag target
Reimplement the pane drag targets using on_drag_move
2023-12-14 16:23:15 -08:00
Mikayla Maki
0b4b81fa0c Fix dock resizing (#3663)
This fixes some bugs in the display and tracking of dock resizes

Release Notes:

-
2023-12-14 16:20:29 -08:00
Nathan Sobo
ad8165ae79 Rename draw2 -> draw_and_update_state 2023-12-14 17:20:27 -07:00
Nathan Sobo
f4a954db4f Merge remote-tracking branch 'origin/main' into perf-2 2023-12-14 17:15:44 -07:00
Mikayla
8b4cf38379 Fix dock resize handles
co-authored-by: conrad <conrad@zed.dev>
2023-12-14 16:05:10 -08:00
Nathan Sobo
02606d1fb9 Merge remote-tracking branch 'origin/main' into perf-2 2023-12-14 16:56:36 -07:00
Marshall Bowers
bc3e6649f8 Fix warning in release mode (#3662)
This PR fixes a warning that was present in release mode, which was
preventing the nightly builds from running:

```
error: variable does not need to be mutable
   --> crates/gpui2/src/elements/div.rs:547:9
    |
547 |     let mut div = Div {
    |         ----^^^
    |         |
    |         help: remove this `mut`
    |
    = note: `-D unused-mut` implied by `-D warnings`
```

Release Notes:

- N/A
2023-12-14 18:52:14 -05:00
Mikayla
4c63c74f92 Fix bug in drag move dispatch
co-authored-by: conrad <conrad@zed.dev>
2023-12-14 15:23:24 -08:00
Nate Butler
e4f9bddbab Remove unused imports 2023-12-14 17:56:42 -05:00
Marshall Bowers
139fe7c1f1 Use separate editor foreground color (#3661)
This PR populates the `editor_foreground` color in the various themes
and updates the editor to use this as the color for text.

The `text` field in the theme should now be used for UI elements, while
`editor_foreground` should be used for buffers.

This improves the contrast in some themes, notably Ayu Dark.

Release Notes:

- N/A
2023-12-14 17:54:44 -05:00
Nate Butler
936c78be94 WIP IconButton story 2023-12-14 17:51:08 -05:00
Max Brunsfeld
fcbd58fed4 Enable all warnings in workspace, fix all warnings (#3660) 2023-12-14 14:38:28 -08:00
Nate Butler
3cf003763e Use updated story container in Text story 2023-12-14 17:38:22 -05:00
Marshall Bowers
2b278e69f7 Use editor_foreground color in editor 2023-12-14 17:34:07 -05:00
Marshall Bowers
292fac37bb Use editor.foreground from VS Code for the editor foreground 2023-12-14 17:30:37 -05:00
Marshall Bowers
8bac4e199d Emit editor_foreground color from theme converter 2023-12-14 17:28:45 -05:00
Max Brunsfeld
6170895932 Fix bug in Workspace::activate_pane_in_direction
Co-authored-by: Conrad <conrad@zed.dev>
2023-12-14 14:27:44 -08:00
Joseph T. Lyons
4e7005b4f7 Use bitflags to hold error states 2023-12-14 17:22:13 -05:00
Max Brunsfeld
b5e9e277db Re-enable cmd-<number> key bindings for activating panes (#3659) 2023-12-14 14:16:43 -08:00
Max Brunsfeld
23d5f3f3e8 Enable all warnings in workspace, fix all warnings
Bring back some workspace tests

Co-authored-by: Conrad <conrad@zed.dev>
2023-12-14 14:15:56 -08:00
Nathan Sobo
d13a21c238 Don't move in paint 2023-12-14 15:15:18 -07:00
Julia
bbbdb9ff3e Render panel in this test to make sure it can receive focus 2023-12-14 17:11:00 -05:00
Nate Butler
63c3edfb83 Continue styling new story components 2023-12-14 16:52:05 -05:00
Max Brunsfeld
8d994ce8c5 Enable dragging from project panel to panes (#3658)
Rework gpui2 drag API so that receivers need not specify the dragged
view type.
2023-12-14 13:32:40 -08:00
Max Brunsfeld
6b06bb4ffe Re-enable cmd-<number> key bindings for activating panes
co-authored-by: Conrad <conrad@zed.dev>
2023-12-14 13:30:11 -08:00
Mikayla
8791f7cefc Enable dragging from project panel to panes
Rework gpui2 drag API so that receivers need not specify the dragged view type.

co-authored-by: Max <max@zed.dev>
co-authored-by: Conrad <conrad@zed.dev>
2023-12-14 13:20:48 -08:00
Nathan Sobo
fb3382bcc5 Merge remote-tracking branch 'origin/main' into perf-2 2023-12-14 14:16:59 -07:00
Marshall Bowers
35838ae554 Style "Replace in project" input in project search (#3657)
This PR styles the "Replace in project" input in the project search.

Release Notes:

- N/A
2023-12-14 16:10:22 -05:00
Nathan Sobo
0dd6c50a20 Use FxHashMap for element state 2023-12-14 14:06:19 -07:00
Marshall Bowers
c166311c06 Style "Replace in project" input 2023-12-14 15:58:17 -05:00
Marshall Bowers
2484a6969a Fix toolbar flex sizing 2023-12-14 15:57:06 -05:00
Nate Butler
c041799c6a Extend Story components, allow linking to story file
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-12-14 15:55:17 -05:00
Conrad Irwin
2efd7cedbc Ignore invisible layers for mouse events (#3651)
Fixes clicking in the top/bottom 100px of the editor


Release Notes:

- N/A
2023-12-14 12:01:45 -07:00
Marshall Bowers
ed098c834e Style inputs in project search (#3655)
This PR styles the inputs in the project search.

<img width="772" alt="Screenshot 2023-12-14 at 1 53 28 PM"
src="https://github.com/zed-industries/zed/assets/1486634/fe2362be-79db-4551-a473-2acf7a8a1bcb">

Release Notes:

- N/A
2023-12-14 13:58:11 -05:00
Nathan Sobo
3d1dae9a06 Make z_indices bigger in StackingOrder 2023-12-14 11:37:48 -07:00
Nathan Sobo
0d30b698a4 Don't allocate interactive bounds 2023-12-14 11:28:52 -07:00
Joseph T. Lyons
8a361c93e2 Prep feedback code for testing 2023-12-14 13:22:41 -05:00
Marshall Bowers
c6e44683e6 Hide the toolbar if it has no visible items (#3654)
This PR makes the toolbar hide itself if it has no visible items.

This removes the double border beneath the tab bar when there are no
visible tools in the toolbar.

Release Notes:

- N/A
2023-12-14 13:02:27 -05:00
Conrad Irwin
4e1b4c4390 Refactor editor to be more clear about stacking 2023-12-14 10:48:15 -07:00
Conrad Irwin
d8cb0e8a2a Fix z-indexes in editor element
* Ensure that scroll events from blocks scroll the editor
* Ensure that scroll bars show behind hover things
2023-12-14 10:36:16 -07:00
Nathan Sobo
1ae25f52a1 WIP 2023-12-14 10:31:45 -07:00
Marshall Bowers
fd133df896 Improve storybook story selection (#3653)
This PR builds on top of #3652 by adding a selection prompt to the
storybook to allow you to choose from the available list of stories if
you don't provide one explicitly:

<img width="1387" alt="Screenshot 2023-12-14 at 12 00 26 PM"
src="https://github.com/zed-industries/zed/assets/1486634/640d62a3-1340-45f1-9746-69b513faff62">

This way we don't have to keep generating the `script/storybook` script
whenever stories are added/removed.

#### Usage (through `cargo`):

```sh
# Select from the available stories
cargo run -p storybook2

# Run a specific story
cargo run -p storybook2 -- components/list_item
```

#### Usage (through `script/storybook`):

```sh
# Select from the available stories
./script/storybook

# Run a specific story
./script/storybook list_item
```

Release Notes:

- N/A
2023-12-14 12:13:02 -05:00
Conrad Irwin
c2c7eead8a Robustify checks for visibility 2023-12-14 10:02:54 -07:00
Nate Butler
4ace342cf0 Fix typo 2023-12-14 11:59:24 -05:00
Nate Butler
08418618ab Generate script/storybook (#3652)
[[PR Description]]

This PR adds the ability to run stories with `script/storybook`.

Running it directly will give you a selector like this:

```zsh
➜  zed git:(add-storybook-script) script/storybook
1) auto_height_editor	 9) icon		17) scroll
2) avatar		10) icon_button		18) tab
3) button		11) keybinding		19) tab_bar
4) checkbox		12) label		20) text
5) context_menu		13) list		21) viewport_units
6) cursor		14) list_header		22) z_index
7) disclosure		15) list_item		23) picker
8) focus		16) overflow_scroll
```

You can also provide a value like:

`script/storybook {STORY_NAME}` - Example: `script/storybook text`

OR 

`script/storybook components/{STORY_NAME}` - Example: `script/storybook
components/text`

I just wanted an easier way to interface with stories quickly to make
using them a bit easier, and enable discovery of what exists easier with
the selector.

This was a really quick hack, in the future we can extend this to a
proper CLI.

Release Notes:

- N/A
2023-12-14 11:52:06 -05:00
Conrad Irwin
17a80ca09b Ignore invisible layers for mouse events 2023-12-14 09:44:04 -07:00
Nate Butler
ac3622cc6a Generate script/storybook 2023-12-14 11:42:08 -05:00
Nathan Sobo
6f17cf7337 WIP 2023-12-14 09:25:14 -07:00
Piotr Osiewicz
da960fffe7 calls: Fix off by one in prompts for leaving a call. (#3649)
We've noticed how leaving a call with multiple windows open would still
prompt with the popup along the lines of "Do you want to leave the
current call?". In Zed1, that popup only showed up when you've had just
one window open.

The code for prompting did not change at all between zed1 and zed2, but
the way we calculate the window count did. Calling AppContext::windows
to get all window handles from WindowContext::update essentially
excluded the window we were updating (that is the window being closed)
from the returned Vec of window handles. I've decided to keep the code
as close to original as possible (as the alternative would be to change
the \# of workspaces needed for a prompt to pop up). We now query the
window handles via a deref to AsyncAppContext, which does not exclude
"our" window handle from the returned results.

Release Notes:

- N/A
2023-12-14 15:35:31 +01:00
Piotr Osiewicz
9bce30687e Vcs menu2 (#3648)
Header and footer are gonna be added in a separate PR as they require
changes to Picker trait that I feel are separate from the contents of
this PR.

Release Notes:

- N/A
2023-12-14 12:36:53 +01:00
Kirill Bulatov
cfe7336519 Return include warnings toggle to the diagnostics panel 2023-12-14 10:00:31 +02:00
Marshall Bowers
3ad967778a Change project search bar flex axis to column (#3647)
This PR changes project search bar's flex axis to `column`.

This fixes an issue where toggling the filters would cause the search
controls to center themselves vertically instead of staying next to the
search input.

Release Notes:

- N/A
2023-12-13 23:02:49 -05:00
Julia
cd08d349a5 Quick and dirty attempt to immediately apply focus change in tests
Doesn't quite work yet
2023-12-13 21:48:05 -05:00
Joseph T. Lyons
837b4c3462 Avoid unnecessary match 2023-12-13 21:43:21 -05:00
Mikayla Maki
4f196f66fc Fix bugs in resizing the docks + Add debug styling (#3645)
This PR:
- Fixes several bugs with dock resizing
- Adds a new drag move API for resizes 
- Adds special debug styling for elements, including auto-opening Zed at
the element's location in source
- Changes the `cx.paint_quad()` API to take a type and adds several
helpers to create this type.
- Adds `()` as the empty element, and uses it to implement a derive
macro for the `Render` trait.

Release Notes:

- N/A
2023-12-13 18:40:28 -08:00
Joseph T. Lyons
d9adfdeac2 Highlight email address field as red when invalid 2023-12-13 21:39:31 -05:00
Joseph T. Lyons
435256ab0f Remove completed TODOs 2023-12-13 21:35:30 -05:00
Joseph T. Lyons
0db62f0ceb Feedback modal improvements (#3646)
- Cleans up modal state logic by using an enum over multiple booleans
- Simulates sending feedback in dev mode, so UI can be easily tested

Release Notes:

- N/A
2023-12-13 21:33:45 -05:00
Mikayla
53b1948c44 Remove inconsistency with how GPUI used to handle these events 2023-12-13 18:32:42 -08:00
Mikayla
d88fc27b79 Merge branch 'main' into fix-splits-bugs 2023-12-13 18:29:48 -08:00
Joseph T. Lyons
900a2bfb87 Use an enum to represent modal states and simplify logic 2023-12-13 21:20:09 -05:00
Joseph T. Lyons
be2ad2ff86 Add Duration dependency 2023-12-13 21:19:36 -05:00
Mikayla
0dd84924e4 add cmd-click-to-jump-to-element 2023-12-13 18:19:25 -08:00
Joseph T. Lyons
052e05fc74 Use existing convention to silence warnings 2023-12-13 21:19:12 -05:00
Joseph T. Lyons
7ba7b925ff Simulate sending feedback in dev 2023-12-13 21:18:50 -05:00
Marshall Bowers
ceede28fab Ensure the outer ListItem element has a unique ID (#3644)
This PR fixes an issue where the outer `ListItem` element was using a
static ID instead of the one provided to the component.

Now that active states are fixed, this meant that any time there were
sibling list items they would share active states if one of them was
clicked.

Release Notes:

- N/A
2023-12-13 21:14:21 -05:00
Marshall Bowers
474f09ca3f Remove unneeded left-click filtering in ListItem (#3643)
This PR removes the left-click filtering from the `on_click` handler for
`ListItem`s.

It's no longer needed after #3584.

Release Notes:

- N/A
2023-12-13 21:03:50 -05:00
Nathan Sobo
c863227dc2 Log frame timings 2023-12-13 18:44:21 -07:00
Marshall Bowers
057b235c56 Implement VisibleOnHover for IconButton (#3642)
This PR implements the `VisibleOnHover` trait for `IconButton`s.

I noticed that in a lot of places we were wrapping an `IconButton` in an
extra `div` just so we could call `visible_on_hover` on it. By
implementing the trait on `IconButton` directly it allows us to avoid
the interstitial `div` entirely.

Release Notes:

- N/A
2023-12-13 20:42:27 -05:00
Max Brunsfeld
15f62a49f7 Allowing dragging tabs onto panes and pane edges (#3641) 2023-12-13 17:23:43 -08:00
Max Brunsfeld
4f32f66271 Clone item when dragging to split 2023-12-13 17:16:00 -08:00
Max Brunsfeld
9059d70153 Ensure only top layer is styled with drag over style 2023-12-13 17:07:23 -08:00
Max Brunsfeld
93029376d9 Start work on allowing dragging tabs onto panes and pane edges 2023-12-13 17:06:42 -08:00
Mikayla
a4024b297e Add interactive debug info 2023-12-13 17:03:56 -08:00
Mikayla
04389939d3 Add debug and debug below methods for observing the bounds of divs 2023-12-13 16:47:55 -08:00
Mikayla
416bb45531 Tidy up workspace resizing 2023-12-13 16:35:25 -08:00
Marshall Bowers
137e4e9251 Add .visible_on_hover helper method (#3639)
This PR adds a `.visible_on_hover` helper method that can be used to
make an element only visible on hover.

I noticed we were repeating this similar stanza in a bunch of different
spots:

```rs
some_element
    .invisible()
    .group_hover("", |style| style.visible())
``` 

so it seemed like a nice thing to factor out into a reusable utility.

Release Notes:

- N/A
2023-12-13 19:12:20 -05:00
Marshall Bowers
d59de96921 Style collab panel (#3638)
This PR styles the collab panel.

Release Notes:

- N/A

---------

Co-authored-by: Nate Butler <iamnbutler@gmail.com>
Co-authored-by: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-12-13 18:20:04 -05:00
Mikayla
e2bfd46455 Fix dock split resizin 2023-12-13 15:14:51 -08:00
Nathan Sobo
1e4a7e6ef1 Don't notify when drawing 2023-12-13 16:05:34 -07:00
Conrad Irwin
7899833367 Don't hang the app when signing in offline 2023-12-13 15:52:43 -07:00
Joseph T. Lyons
1ad1cc1148 Fix variable name 2023-12-13 17:31:51 -05:00
Marshall Bowers
aa55e55c7a Add config files for running Postgres inside Docker Compose (#3637)
This PR adds config files for running the Postgres instance for local
Zed development in a Docker Compose instance.

For those of us who don't like to have a Postgres install always present
on the host system 😄

Usage:

```
docker compose up -d
```

Release Notes:

- N/A
2023-12-13 17:25:07 -05:00
Joseph T. Lyons
985d4c7429 Remove TODO
Thanks @ConradIrwin
2023-12-13 17:09:26 -05:00
Mikayla
a807e798ec Add new drag API 2023-12-13 13:40:19 -08:00
Max Brunsfeld
26a31b41b9 frame time 2023-12-13 14:22:34 -07:00
Mikayla
bfbbec0b01 Add fluent quad API 2023-12-13 13:21:48 -08:00
Conrad Irwin
3094cb749e Implement user menu 2023-12-13 14:14:03 -07:00
Conrad Irwin
426d298173 Port project_symbols (#3634)
Release Notes:

- N/A
2023-12-13 14:13:25 -07:00
Antonio Scandurra
943acc5819 Optimize inserting lots of primitives with the same StackingOrder (#3631)
Release Notes:

- N/A
2023-12-13 22:12:31 +01:00
Marshall Bowers
ee509e043d Rework ListItem and ListHeader to use slot-based APIs (#3635)
This PR reworks the `ListItem` and `ListHeader` components to use
slot-based APIs, making them less opinionated about their contents.

Splitting this out of the collab UI styling PR so we can land it to
avoid conflicts.

Co-authored-by: Nate <nate@zed.dev>

Release Notes:

- N/A
2023-12-13 16:08:31 -05:00
Antonio Scandurra
06b9055e27 Clear last_order when building Scene 2023-12-13 22:02:30 +01:00
Piotr Osiewicz
72eef116c9 fixup! collab_ui: Wire up project picker 2023-12-13 12:53:41 -08:00
Piotr Osiewicz
a91a42763f collab_ui: Wire up project picker
Co-authored-by: Conrad <conrad@zed.dev>
2023-12-13 12:53:41 -08:00
Joseph T. Lyons
48faa171b5 v0.118.x dev 2023-12-13 12:53:41 -08:00
Marshall Bowers
ab8d0abbc1 Wire up tooltips on tab bar actions (#3629)
This PR wires up the tooltips on the actions in the tab bar.

Release Notes:

- N/A
2023-12-13 12:53:41 -08:00
Marshall Bowers
a874a96e76 Fix tab bar drop target sizing (#3627)
This PR fixes an issue where the tab bar drop target was not receiving
any size.

The styling isn't 100% correct yet, as the updated background color has
a gap around it.

Release Notes:

- N/A
2023-12-13 12:53:41 -08:00
Nate Butler
70c6660ae4 Add note 2023-12-13 12:53:41 -08:00
Nate Butler
f9e7c79672 Add deploy note 2023-12-13 12:53:41 -08:00
Nate Butler
5b3b15e95c Futher outline 2023-12-13 12:53:41 -08:00
Nate Butler
85a1a8f777 WIP 2023-12-13 12:53:41 -08:00
Piotr Osiewicz
ce1489f5dc Add inclusion of ignored files 2023-12-13 12:53:41 -08:00
Piotr Osiewicz
0e19da3107 Bring back semantic search UI 2023-12-13 12:53:41 -08:00
Conrad Irwin
9ff73d3a0a Port project_symbols 2023-12-13 13:43:39 -07:00
Marshall Bowers
5c8257585a Fix styling of project search tabs (#3633)
This PR fixes the styling of the project search tabs.

We now have spacing between the icon and the tab label, as well as use
the correct color for the icon based on whether the tab is active or
not.

Release Notes:

- N/A
2023-12-13 14:50:15 -05:00
Marshall Bowers
9a7de98242 Don't show empty documentation labels in completions menu (#3632)
This PR fixes an issue where we would sometimes have extra blank lines
in the completions menu.

This was due to some items including documentation labels that were
empty strings.

Release Notes:

- N/A
2023-12-13 14:15:03 -05:00
Julia
fd428dfa66 Bump livekit client (#3625)
Release Notes:

- Bump LiveKit client version.
2023-12-13 13:51:13 -05:00
Marshall Bowers
61ab1834c7 Deploy the buffer search in a second row in the toolbar (#3630)
This PR updates the buffer search to deploy to a second row in the
toolbar, instead of trying to deploy into the initial row.

This is the same way it works in Zed1.

Release Notes:

- N/A
2023-12-13 13:06:53 -05:00
Joseph T. Lyons
07a266d93f collab 0.31.0 2023-12-13 12:39:29 -05:00
Piotr Osiewicz
b2965469e1 collab_ui: Wire up project picker (#3628)
Release Notes:

- N/A
2023-12-13 18:26:10 +01:00
Joseph T. Lyons
1055f59925 v0.118.x dev 2023-12-13 12:24:10 -05:00
Julia
cfc050e3fe Fire focus handlers on draw to avoid timing with newly created item
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-12-13 12:16:39 -05:00
Marshall Bowers
599f81f345 Wire up tooltips on tab bar actions (#3629)
This PR wires up the tooltips on the actions in the tab bar.

Release Notes:

- N/A
2023-12-13 12:11:33 -05:00
Piotr Osiewicz
6147530156 fixup! collab_ui: Wire up project picker 2023-12-13 17:58:17 +01:00
Piotr Osiewicz
a71365a1d3 collab_ui: Wire up project picker
Co-authored-by: Conrad <conrad@zed.dev>
2023-12-13 17:56:49 +01:00
Marshall Bowers
988fb91a61 Fix tab bar drop target sizing (#3627)
This PR fixes an issue where the tab bar drop target was not receiving
any size.

The styling isn't 100% correct yet, as the updated background color has
a gap around it.

Release Notes:

- N/A
2023-12-13 11:44:51 -05:00
Nate Butler
226d4929b5 WIP New App Docs (#3624)
[[PR Description]]

These docs are intended to replace both docs.zed.dev and introduce
people to how to build Zed from source.

Add or edit markdown files in the docs/src folder, and follow the
instructions in `how-to-deploy.md` to deploy the docs on
[Vercel](https://vercel.com/zed-industries/zed-app-docs/45ZTNBKSCmCMAvfAcfcocGnmoMyd).

Add pages and organize/reorder docs in the SUMMARY.md.

When you are sure a page is added or is no longer needed you can delete
it from `docs/old`

Release Notes:

- N/A
2023-12-13 10:54:26 -05:00
Julia
5730d0ef21 Bump livekit client 2023-12-13 10:47:32 -05:00
Nate Butler
9cd55a8806 Add note 2023-12-13 10:35:54 -05:00
Nate Butler
d4e088cb11 Add deploy note 2023-12-13 10:35:03 -05:00
Piotr Osiewicz
2a714d6dd8 Bring back semantic search UI (#3623)
- [x] Add "Include ignored" to filters
- [x] There seems to be a bug (seemingly unrelated to this PR) where we
reindex the project on each launch. Edit: Seems to be the case on Zed1
as well if the indexing is interrupted.

Release Notes:
- N/A
2023-12-13 16:17:42 +01:00
Antonio Scandurra
801125974a Optimize inserting lots of primitives with the same StackingOrder 2023-12-13 15:32:32 +01:00
Piotr Osiewicz
b9023a3e49 Add inclusion of ignored files 2023-12-13 14:22:29 +01:00
Piotr Osiewicz
a13468e6ad Bring back semantic search UI 2023-12-13 12:53:53 +01:00
Antonio Scandurra
13c064186a Fix regressions in focus and active support (#3622)
Release Notes:

- N/A
2023-12-13 11:31:37 +01:00
Antonio Scandurra
d147db1db9 Don't mark interactive element as active if default prevented 2023-12-13 11:23:05 +01:00
Antonio Scandurra
5018072203 Automatically transfer focus on mouse down in Interactivity::paint 2023-12-13 09:57:18 +01:00
Conrad Irwin
19e842b860 fix overlay positions (#3621)
- Fix typo in overlay positioning code
- Make overlay positioning more robust

Release Notes:

- N/A
2023-12-12 22:13:56 -07:00
Conrad Irwin
e91ecec8cd fix modal exchange (#3620)
- Fix opening GoToLine from Command
- Extend test to cover go_to_line behavior too

Release Notes:

- N/A
2023-12-12 21:30:34 -07:00
Conrad Irwin
a055a4c163 Make overlay positioning more robust
Previously we would either switch anchor or snap, now we first try switching
anchor (if desired) and then snap to window regardless.
2023-12-12 21:28:58 -07:00
Conrad Irwin
fa36adbf1f Fix typo in overlay positioning code 2023-12-12 21:14:48 -07:00
Conrad Irwin
979db25e91 Extend test to cover go_to_line behavior too
(It's also been broken and fixed a few times along the way)
2023-12-12 20:53:54 -07:00
Conrad Irwin
a2f0accb74 Fix opening GoToLine from Command
This was broken because of the async hop introduced by should_dismiss.

Change that API to instead be syncronous, and require that implementors
(of which there is only one) to call dismiss again if they want to.
2023-12-12 20:46:27 -07:00
Conrad Irwin
c94c6614ed vim2 (#3619)
Fix vim command tests by restoring the spawn in command palette's
confirm


Release Notes:

- N/A
2023-12-12 19:40:54 -07:00
Conrad Irwin
630997db28 And restore the command palette spawn behaviour 2023-12-12 19:27:09 -07:00
Conrad Irwin
b65129437f vim2 (#3618)
- Uncomment editor event tests
- Uncomment vim search tests

Just command left

Release Notes:

- N/A
2023-12-12 19:19:08 -07:00
Conrad Irwin
1a86e4ff96 Fix vim toggle on welcome 2023-12-12 19:03:54 -07:00
Conrad Irwin
a9349267ec hah, oops 2023-12-12 18:54:35 -07:00
Marshall Bowers
573377d9f9 Fix workspace sizing (#3617)
This PR fixes the sizing of the workspace, specifically with regards to
the center pane.

This fixes the issue where the tab bar would get clipped when its width
exceeded the size of the screen.

<img width="1298" alt="Screenshot 2023-12-12 at 8 36 15 PM"
src="https://github.com/zed-industries/zed/assets/1486634/592d7c6d-6901-4bd4-b5e7-e30bcad67e21">

Release Notes:

- N/A
2023-12-12 20:42:48 -05:00
Conrad Irwin
a656d11fed Fix vim2 search tests 2023-12-12 18:39:42 -07:00
Max Brunsfeld
e09b07ddae Allow dragging tabs (#3616) 2023-12-12 16:20:37 -08:00
Max Brunsfeld
6362221363 Scroll the tab bar to show the active tab
Co-authored-by: Nathan <nathan@zed.dev>
Co-authored-by: Marshall <marshall@zed.dev>
2023-12-12 15:42:33 -08:00
Max Brunsfeld
a579713a45 Allow dragging and dropping tabs
Co-authored-by: Nathan <nathan@zed.dev>
Co-authored-by: Marshall <marshall@zed.dev>
2023-12-12 15:07:03 -08:00
Max Brunsfeld
a4a501603e Start work on dragging tabs 2023-12-12 15:04:49 -08:00
Julia
2e00da5a79 zed2 notification panel (#3603)
Release Notes:

- N/A
2023-12-12 18:04:47 -05:00
Joseph T. Lyons
5f5b86ee24 Use release channel display name for feedback (#3615)
Release Notes:

-  N/A
2023-12-12 17:50:29 -05:00
Julia
29413bc72c Fix defer handle double lease
Co-Authored-By: Conrad Irwin <conrad@zed.dev>
2023-12-12 17:47:12 -05:00
Joseph T. Lyons
a63b4c598c Use release channel display name for feedback 2023-12-12 17:29:37 -05:00
Conrad Irwin
3088cbea68 Uncomment vim search tests 2023-12-12 15:29:17 -07:00
Conrad Irwin
c43969eaed Uncomment editor event tests 2023-12-12 15:29:10 -07:00
Julia
51ceb52931 Fix borked layout 2023-12-12 17:22:49 -05:00
Joseph T. Lyons
c9aa4a0e00 Fix placeholder text 2023-12-12 16:56:43 -05:00
Marshall Bowers
e489e2e583 Enable scrolling in tab bar (#3614)
This PR enables scrolling horizontally in the tab bar.

Currently this requires holding down <kbd>Shift</kbd> for the scroll to
activate. We'll need to look into this.

Scrolling also currently works when there is a split in the editor, as
the non-split view goes down a different rendering path that does not
constrain the pane width, which breaks a number of things.

Release Notes:

- N/A
2023-12-12 16:38:25 -05:00
Julia
01d4e711d8 Get notifications rendering in panel 2023-12-12 16:31:26 -05:00
Julia
d3eff6371e Panel showing up 2023-12-12 16:14:43 -05:00
Marshall Bowers
d2feaa41a5 Extract TabBar component (#3613)
This PR extracts a new `TabBar` component from the tab bar
implementation in the workspace.

Release Notes:

- N/A
2023-12-12 15:50:05 -05:00
Max Brunsfeld
31a4892a55 Avoid notifying editor when wrap width changes (#3612)
Wrap width is already assigned from within draw. It can be called
multiple times as taffy iteratively computes the layout.

This fixes a hang we were seeing in nightly when opening the chat panel.
2023-12-12 12:32:05 -08:00
Max Brunsfeld
f5ca514bf0 Avoid notifying editor when wrap width changes
Wrap width is already assigned from within draw. It can be called multiple
times as taffy iteratively computes the layout.

Co-authored-by: Nathan <nathan@zed.dev>
2023-12-12 12:06:38 -08:00
Piotr Osiewicz
2a22208518 Project search2 tests (#3611)
Release Notes:

- N/A
2023-12-12 19:35:15 +01:00
Max Brunsfeld
b3e1514b00 Avoid caching zed build script if git state has changed (#3610)
@as-cii and @SomeoneToIgnore noticed a bug where Zed nightly would
continuously report that an update was available. This nightly
auto-update logic depends on the `ZED_COMMIT_SHA` constant, which is
compiled into the app via an rustc environment variable that is assigned
in the `zed2` build script.

I think the bug was caused by the `zed2` build script's output being
cached on our CI, when building the nightly app bundle. The result was
that the `publish-nightly` action updated the "current SHA" for nightly,
but uploaded an artifact whose `ZED_COMMIT_SHA` was cached from an
earlier version.

I've added a line to the `build.rs` that triggers a rerun if the
`.git/logs/HEAD` file has been changed. I think this should prevent the
unwanted caching.
2023-12-12 10:27:57 -08:00
Julia
52e72d9648 Builds and runs 2023-12-12 13:07:17 -05:00
Max Brunsfeld
e3ed3b8c1c Avoid caching zed build script if git state has changed 2023-12-12 09:55:56 -08:00
Julia
fd6320b136 Finish fixing up Avatar using URI 2023-12-12 11:49:04 -05:00
Antonio Scandurra
e53b9f5ccf Fix Div::active not working
Somehow a condition got inverted and caused the bug.
2023-12-12 17:40:22 +01:00
Antonio Scandurra
35670368a5 Remove focus_listeners from Interactive
We're not using these anymore.
2023-12-12 17:39:07 +01:00
Julia
44d40625fe Start changing Avatar to use URI
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-12-12 11:27:40 -05:00
Piotr Osiewicz
cc97b04627 Buffer search channel notes (#3608)
We were registering `deploy` only on editors, which did succeed for
channel notes; however, channel note does not have an associated
workspace (that we pulled from the editor). It made more sense to just
register these actions for a workspace, notwithstanding the editor.

This PR also fixes a bunch of cx.dispatch_action calls to call the
handler directly instead (e.g. instead of dispatching ReplaceNext we
just call buffer_search_bar.replace_next instead) as otherwise these
actions are not handled if the buffer search bar does not have the
focus.

Release Notes:

- N/A
2023-12-12 17:09:37 +01:00
Marshall Bowers
a334a21f3e Prevent panes from overflowing the window (#3609)
This PR fixes an issues where it was possible for panes to overflow the
window (for instance, by having a large number of tabs in the tab bar).

Release Notes:

- N/A
2023-12-12 11:01:49 -05:00
Antonio Scandurra
c0846d6f74 Set cursor style only if we're the active window (#3607)
Release Notes:

- N/A
2023-12-12 16:56:32 +01:00
Piotr Osiewicz
13f9fec0bd fixup! Move away from using cx.dispatch_action in buffer search 2023-12-12 16:38:58 +01:00
Piotr Osiewicz
be57059195 Move away from using cx.dispatch_action in buffer search 2023-12-12 16:36:00 +01:00
Antonio Scandurra
b87c45e6f5 Set cursor style only if we're the active window 2023-12-12 16:32:45 +01:00
Kirill Bulatov
4684440202 Fix focus issues with gpui2 docks (#3606)
* Fixed dock toggling not focusing the terminal element
* Fixed loosing focus on dock close (e.g. cmd-d on the last terminal in
the dock)
* Removed element stateless focus API since it would not work when the
element is not rendered, update all API usages to the stateful one via
`gpui::Subscription`

Release Notes:

- N/A
2023-12-12 17:26:39 +02:00
Kirill Bulatov
0140bb862e Fix the tests
Co-authored-by: Antonio <antonio@zed.dev>
2023-12-12 17:19:12 +02:00
Kirill Bulatov
ca8e8d1065 Finish removing all dangerous focus APIs 2023-12-12 16:11:14 +02:00
Nate Butler
9f21fe2d50 Futher outline 2023-12-12 09:10:12 -05:00
Antonio Scandurra
97eae4b081 Improve rendering performance in gpui2 (#3605)
The biggest improvements come from preventing element moves where
unnecessary, and when they are absolutely needed, try to make the struct
we're moving as small as possible. Having big structs on the stack (such
as `Interactivity`) increases the cost of moving but also reduces
opportunities for other compiler optimizations (e.g., inlining).

One more notable change was using `FxHashMap` and `FxHashSet` in hot
code paths where we don't need those collections to be resistant to DoS.

Another thing I am seeing a lot in the profiler is interacting with
`StackingOrder` (cloning it, searching for it, inserting into the
`Scene`). I have some thoughts on how to optimize that but I punted on
it because performance seems to be pretty good now.

Release Notes:

- N/A
2023-12-12 15:09:43 +01:00
Antonio Scandurra
6159a59534 Fix assertions now that we use different hash functions 2023-12-12 14:59:51 +01:00
Kirill Bulatov
2cde1a2e15 Re-focus window on workspace on corresponding window blur
Co-authored-by: Antonio <antonio@zed.dev>
2023-12-12 15:36:20 +02:00
Piotr Osiewicz
1c437a2b92 Register buffer search listener on new workspaces and not editors 2023-12-12 14:23:52 +01:00
Kirill Bulatov
717b2885f8 Attempt to remove the dangeous element focus API 2023-12-12 15:07:27 +02:00
Antonio Scandurra
43b8d65fee Transfer focus to the workspace when window focus is lost 2023-12-12 15:07:27 +02:00
Kirill Bulatov
137104e00e Fix dock panels not focusing their contents on toggle
Co-authored-by: Antonio <antonio@zed.dev>
2023-12-12 15:07:27 +02:00
Kirill Bulatov
706dd8246e Improve project panel autoreveal ergonomics (#3604)
Part of
https://linear.app/zed-industries/issue/Z-1386/add-equivalent-setting-to-vscodes-auto-reveal-exclude
Deals with https://github.com/zed-industries/community/issues/800

* add a `project_panel::auto_reveal_entries` config entry to allow
disabling auto reveal in project panel (auto reveal is enabled by
default)
* add a `pane::RevealInProjectPanel` action (and a pane tab context menu
entry) to manually reveal any file entry
* stop auto revealing gitignored directories at all

We can add the auto reveal exclude globs later, if needed, but let's try
to keep the config simpler and start with a more minimalist approach.

Release Notes:

- Improved project panel auto reveal mechanics: gitignored files are not
auto revealed anymore; a `auto_reveal_entries = true` config option for
`project_panel` is added; a `pane::RevealInProjectPanel` action and a
corresponding buffer tab context menu were added
2023-12-12 14:37:30 +02:00
Antonio Scandurra
b871f906d6 Use FxHashMap and FxHashSet in hot code paths
We can also use these maps and sets in place of `SeaHasher` because
they are also deterministic. Note that we're not swapping std's
`HashMap` and `HashSet` wholesale inside of `collections` because
on the server we need cryptographically secure collections.
2023-12-12 13:35:22 +01:00
Antonio Scandurra
385c830bef Make each DispatchNode smaller by allocating more 2023-12-12 13:16:09 +01:00
Kirill Bulatov
d9b0828beb Port to gpui2 2023-12-12 13:50:23 +02:00
Kirill Bulatov
721d7615c3 Add tests 2023-12-12 13:34:46 +02:00
Antonio Scandurra
f312c58b30 Reduce the stack size of Interactivity at the cost of more allocations 2023-12-12 11:57:44 +01:00
Kirill Bulatov
27d6432c84 Rework the way project panel auto reveals entries
* gitignored entries are never auto revealed
* `project_panel::auto_reveal_entries = true` settings entry was added,
setting it to `false` will disable the auto reveal
* `pane::RevealInProjectPanel` action was added that activates the project panel and reveals the entry it got triggered on (including the gitignored ones)
2023-12-12 11:38:51 +02:00
Antonio Scandurra
e7094cc98d Don't move interactivity unnecessarily during layout 2023-12-12 09:43:33 +01:00
Antonio Scandurra
b503edf24f Avoid cloning entries in CollabPanel::render_signed_in 2023-12-12 09:42:35 +01:00
Julia
376716254f Start port of notification panel 2023-12-11 20:40:48 -05:00
Max Brunsfeld
a9f817fc14 Allow dragging and dropping files in the project panel (#3602)
Also, fix a bug that prevented drag and drop from working in the collab
panel.
2023-12-11 17:03:07 -08:00
Max Brunsfeld
6f5b1064ee Fix detection of topmost region under the dragged item
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-12-11 16:50:44 -08:00
Nate Butler
9cb6f6689e WIP 2023-12-11 19:17:13 -05:00
Marshall Bowers
39a115b264 Take a first pass at styling the welcome screen (#3601)
This PR is a first pass at styling the welcome screen in Zed2.

Here's the current state:

<img width="1237" alt="Screenshot 2023-12-11 at 7 00 43 PM"
src="https://github.com/zed-industries/zed/assets/1486634/a0cbd5ca-7331-4785-bf46-f83fc4cb3bb6">

Release Notes:

- N/A
2023-12-11 19:06:33 -05:00
Max Brunsfeld
cbce49ff68 Start work on dragging entries in the project panel 2023-12-11 15:52:58 -08:00
Max Brunsfeld
a208229a2c Use Box instead of Rc for List event handlers 2023-12-11 15:52:06 -08:00
Conrad Irwin
149e90c3d9 vim2 (#3597)
- MOAR TESTS

[[PR Description]]

Release Notes:

- N/A
2023-12-11 16:42:03 -07:00
Marshall Bowers
75c1f0e997 Add w_vw and h_vh to StyledExt for setting sizes in viewport units (#3600)
This PR adds `w_vw` and `h_vh` methods to `StyledExt`.

These methods are the same as their `w` and `h` counterparts, but
operate in viewport units, giving us the equivalent of `vw` and `vh` in
CSS.

You can see them in action in this story:

```
cargo run -p storybook2 -- components/viewport_units
```

Release Notes:

- N/A
2023-12-11 18:19:11 -05:00
Conrad Irwin
3779316e4e Fix scroll tests
For some reason in gpui2, the window contains an extra 59px of space..
2023-12-11 16:12:17 -07:00
Max Brunsfeld
805df4fd15 Implement welcome view in zed2. (#3599)
Still needs styling.
2023-12-11 14:54:03 -08:00
Max Brunsfeld
bb5fa6bc13 Implement welcome view in zed2.
Still needs styling.
2023-12-11 14:48:42 -08:00
Marshall Bowers
3120a9cbea theme_importer: Fall back to inactive tab background if no active tab background set (#3598)
This PR makes it so the `theme_importer` falls back to the inactive tab
background color if the theme doesn't not an active tab background
color.

This fixes the active tab color in the Synthwave 84 theme.

Release Notes:

- N/A
2023-12-11 17:39:46 -05:00
Conrad Irwin
2d59492aac Most tests now... 2023-12-11 15:25:30 -07:00
Conrad Irwin
e37173fe97 And some more 2023-12-11 15:14:13 -07:00
Conrad Irwin
3baf125f4a All the easy tests? 2023-12-11 15:13:11 -07:00
Marshall Bowers
050ff6b27d Adjust scrollbar track background and border colors (#3596)
This PR adjusts the colors we pull from the VS Code themes to use for
the scrollbar track background and border.

For the scrollbar track background we now use the `editor.background`,
and for the scrollbar track border we use `editorOverviewRuler.border`.

Release Notes:

- N/A
2023-12-11 17:08:39 -05:00
Conrad Irwin
d12eb0581a vim2 (#3594)
- First round of vim tests

Add `observe_keystrokes` back to gpui2
Allow multiple actions to match a given key event

[[PR Description]]

Release Notes:

- (Added|Fixed|Improved) ...
([#<public_issue_number_if_exists>](https://github.com/zed-industries/community/issues/<public_issue_number_if_exists>)).
2023-12-11 15:06:51 -07:00
Conrad Irwin
1e89092d62 MOAR TESTS 2023-12-11 15:06:33 -07:00
Conrad Irwin
303189e086 Fix warnings 2023-12-11 14:54:58 -07:00
Marshall Bowers
e271bbe896 Use editorOverviewRuler.border for the scrollbar track border 2023-12-11 16:54:53 -05:00
Marshall Bowers
dfd1b5aa11 Use the editor background for the scrollbar track background 2023-12-11 16:39:26 -05:00
Marshall Bowers
aa27e1bcec Draw the scrollbar track left border 2023-12-11 16:39:00 -05:00
Mikayla Maki
927d18b0f3 Add support for resizing splits and docks, as well as utilities (#3595)
Making this PR to upstream changes to util and GPUI2, resizing exists
but isn't working yet.

Release Notes:

- N/A
2023-12-11 13:32:06 -08:00
Mikayla
cb8109ab98 Remove some debug styles 2023-12-11 13:23:07 -08:00
Conrad Irwin
4942b1962b Moar tests 2023-12-11 14:21:21 -07:00
Mikayla
f03c0f6e63 Add double click handling 2023-12-11 13:17:42 -08:00
Conrad Irwin
d1805d8ada First round of vim tests 2023-12-11 14:16:25 -07:00
Max Brunsfeld
f12510b8b0 Defer drawing the window until the CoreAnimation displayLayer: method is called (#3592)
GPUI (both 1 and 2) currently performs rendering, layout, and painting
at the end of every effect cycle. This leads to poor performance when
the app receives events more frequently than the display refreshes. Such
rapid events can come from a terminal, an LSP, or a mouse with a high
polling rate.

This PR changes GPUI so that we don't render until the OS notifies us
that the content will be presented, via the `displayLayer:` callback.

Because render, layout, and paint have side effects that are sometimes
relied on in tests, we currently keep the old behavior (drawing after
every effects cycle) in tests.

This is similar to what @ForLoveOfCats explored in
https://github.com/zed-industries/zed/pull/3542, but slightly simpler,
in that we're not using the display link. As a follow-up, we could use
the display link to start rendering earlier, to possibly reduce latency
further.
2023-12-11 13:03:04 -08:00
Marshall Bowers
41f55e4d0d Use tab.inactiveForeground from VS Code for muted text color (#3593)
This PR updates the `theme_importer` to pull in the
`tab.inactiveForeground` color from VS Code to use as the muted text
color.

Release Notes:

- N/A
2023-12-11 15:57:47 -05:00
Max Brunsfeld
fdcb413e33 Fix unused field warning 2023-12-11 12:56:18 -08:00
Marshall Bowers
f02a3e8c68 Fix inactive tab styles (the verbose way) (#3591)
This PR fixes the inactive tab style to properly show the label using
the muted text color.

I went about fixing this in the most direct way possible, but the
solution leaves a lot to be desired, IMO. I plan to explore some ideas
on how we can improve the state of styling the tab content without
having the same styles repeated all over the place and subsequently
out-of-sync.

Release Notes:

- N/A
2023-12-11 15:42:17 -05:00
Max Brunsfeld
fbfe108317 Avoid double borrow in tests by drawing windows explicitly in flush_effects
Co-authored-by: Antonio <antonio@zed.dev>
2023-12-11 12:37:10 -08:00
Conrad Irwin
fcbc18a380 vim-flight entertainment (#3574)
- vim2 compiling (but mostly commented out)
- More code written, similar lack of workingness so far

Still todo:
[ ] Figure out the focus/blur stuff
[ ] Uncoment more code
[ ] Fix VimTestContext
[ ] Uncomment the tests

Release Notes:

- N/A
2023-12-11 12:11:13 -07:00
Antonio Scandurra
9b94f1483a Redraw the window at the end of flush_effects in tests
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-12-11 20:10:27 +01:00
Joseph T. Lyons
906505f4dc Fix rustfmt in feedback_modal.rs 2023-12-11 13:56:58 -05:00
Antonio Scandurra
f1ebad22db Defer drawing the scene until macOS's display_layer callback
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-12-11 19:55:55 +01:00
Conrad Irwin
f35453caad COmment out tests again for now 2023-12-11 11:40:54 -07:00
Marshall Bowers
7f4d03fab2 Fix color for selections in scrollbar (#3590)
This PR fixes an issue where we weren't using the right color for
displaying selections within the scrollbar.

Release Notes:

- N/A
2023-12-11 13:34:29 -05:00
Joseph T. Lyons
22e99033e1 Use copy button for copy channel link (#3589)
Release Notes:

- N/A
2023-12-11 13:22:36 -05:00
Mikayla
3198eb6c6d Merge branch 'main' into splits 2023-12-11 10:16:32 -08:00
Joseph T. Lyons
9a36402fbe Use copy button for copy channel link 2023-12-11 13:14:29 -05:00
Marshall Bowers
10b015cdf0 Style scrollbars with theme colors (#3588)
This PR updates the styling of scrollbars in the editor to use the theme
colors.

Release Notes:

- N/A
2023-12-11 13:06:43 -05:00
Joseph T. Lyons
cd2abc7c1d Adjust nightly to build twice a day 2023-12-11 13:05:16 -05:00
Conrad Irwin
8ed642dc16 Clear out easy todo!()s 2023-12-11 11:00:55 -07:00
Marshall Bowers
fe46459982 Pull more scrollbar colors from VS Code 2023-12-11 12:59:03 -05:00
Marshall Bowers
6add17338c Style scrollbar when using diff markers 2023-12-11 12:58:55 -05:00
Marshall Bowers
3271cf1030 Map scrollbar colors from VS Code themes 2023-12-11 12:49:54 -05:00
Marshall Bowers
89884d289f Pull scrollbar colors from theme 2023-12-11 12:47:29 -05:00
Conrad Irwin
dd42adc4e5 Remove warnigns 2023-12-11 10:45:27 -07:00
Nate Butler
b9bbc4a698 Extend theme colors (#3587)
[[PR Description]]

Title

Release Notes:

- N/A
2023-12-11 12:34:06 -05:00
Conrad Irwin
af7c93b8d5 Merge branch 'main' into vim2 2023-12-11 10:19:18 -07:00
Conrad Irwin
c97c9f98c0 Revert actions! changes 2023-12-11 10:19:03 -07:00
Antonio Scandurra
76cea3e7e8 Fire click event only when using left button (#3584)
Release Notes:

- N/A
2023-12-11 18:00:13 +01:00
Nate Butler
ea9a42b802 Add new colors to themes
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-12-11 12:00:12 -05:00
Conrad Irwin
59d0feafc5 actions3 (#3586)
- Fix action registrations

Release Notes:

- N/A
2023-12-11 09:48:57 -07:00
Nate Butler
b8f9918f75 Add new colors to One Dark
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-12-11 11:43:49 -05:00
Conrad Irwin
b66b4915cf Merge branch 'main' into vim2 2023-12-11 09:38:23 -07:00
Nate Butler
6792a216a6 Add new color defs 2023-12-11 11:30:43 -05:00
Conrad Irwin
d678efe7dd Fix some action registrations 2023-12-11 09:29:10 -07:00
Piotr Osiewicz
bc130fd6b0 Project search2 (#3585)
Semantic search and tests are gonna be shipped in a separate PR.

Release Notes:

- N/A
2023-12-11 17:20:13 +01:00
Piotr Osiewicz
01ecbec2b0 Comment out the tests 2023-12-11 16:52:12 +01:00
Piotr Osiewicz
ddbd5cf2cb Merge branch 'main' into project_search2 2023-12-11 16:47:48 +01:00
Piotr Osiewicz
40c1ef88e2 Add Editor::Tab and CycleMode actions 2023-12-11 16:39:17 +01:00
Antonio Scandurra
0b7072bf67 Fire click event only when using left button 2023-12-11 16:20:46 +01:00
Piotr Osiewicz
9f1e7a1e21 fixup! Further warnings churn 2023-12-11 15:54:36 +01:00
Piotr Osiewicz
d4a246cae8 Further warnings churn 2023-12-11 15:53:19 +01:00
Piotr Osiewicz
3c49011d08 Fix up warnings (automatic) 2023-12-11 15:48:42 +01:00
Piotr Osiewicz
7330495709 Make match index 1-based 2023-12-11 15:47:02 +01:00
Piotr Osiewicz
3f87c3541f Make the query editor expand in size less 2023-12-11 15:40:38 +01:00
Piotr Osiewicz
66e0650f75 Forego using dispatch_action for click handlers 2023-12-11 15:32:28 +01:00
Antonio Scandurra
db39c3d582 Fix porting mistake that caused clicking on the editor to misbehave (#3583)
We used `width` instead of `height` in the "pixels-to-point" conversion
code, which would cause clicks to not work correctly when the width was
smaller than the `y` coordinate.

Release Notes:

- N/A
2023-12-11 14:30:06 +01:00
Antonio Scandurra
fdc0ef8ce0 Maintain focus correctly when activating panes in zed2 (#3582)
Previously, before emitting a `Focus` event from the pane inside of the
`focus_in` listener, we would erroneously check whether the pane's focus
handle was _not_ focused. However, by the time the pane was notified of
being "focused in", the focus handle would already be focused, which was
preventing the pane from ever emitting a `Focus` event. In turn, this
would cause the workspace to not maintain the active pane correctly.

This pull request maintains an explicit `was_focused` boolean as part of
the `Pane` state, which ensures we only emit the `Focus` event the first
time the pane receives focus.

As part of this, I also reworked how the outline view gets deployed to
allow clicking breadcrumbs even when the corresponding pane doesn't have
focus.

Release Notes:

- N/A
2023-12-11 14:29:56 +01:00
Antonio Scandurra
b4fc8ea6f7 Fix porting mistake that caused clicking on the editor to misbehave
We used `width` instead of `height` in the "pixels-to-point" conversion
code, which would cause clicks to not work correctly when the width was
smaller than the `y` coordinate.
2023-12-11 14:21:55 +01:00
Antonio Scandurra
3c56f6d5c1 Focus editor when confirming outline item 2023-12-11 14:18:46 +01:00
Piotr Osiewicz
38d844ab66 fixup! Add major text 2023-12-11 14:03:43 +01:00
Antonio Scandurra
5768f14a03 Emit Focus events from Pane only when it didn't have focus before 2023-12-11 14:02:08 +01:00
Antonio Scandurra
e7c14dacae Show the correct outline when clicking on a breadcrumb 2023-12-11 14:01:16 +01:00
Piotr Osiewicz
1599ee5467 Add major text 2023-12-11 13:56:02 +01:00
Piotr Osiewicz
fe315c6111 Bind actions on the whole search bar, not just the query editor 2023-12-11 13:35:25 +01:00
Kirill Bulatov
36d2ab4537 Always open new project search view workspace::NewSearch action (#3581) 2023-12-11 13:45:41 +02:00
Kirill Bulatov
cdf7c10b57 Add an action to expand Rust macros with rust-analyzer (#3580)
Deals with https://github.com/zed-industries/community/issues/1282

If rust-analyzer responds with non-empty message, opens a new singleton
multibuffer with the expansion result:

![image](https://github.com/zed-industries/zed/assets/2690773/5f790ffd-1ad8-4f02-a60d-49ee0756362d)

In gpui2, only editors with excerpts containing Rust languages get the
action, in gpui1 every editor (even the *.ts one) has this action
enabled but it does nothing.

Release Notes:

- Added an `editor::ExpandMacroRecursively` command to expand Rust
macros with rust-analyzer.
2023-12-11 13:11:59 +02:00
Kirill Bulatov
da44b51a53 Always open new project search view workspace::NewSearch action 2023-12-11 13:11:07 +02:00
Kirill Bulatov
55374e8ac0 Port to gpui1 2023-12-11 12:28:22 +02:00
Kirill Bulatov
3694265b6b Finalize the command 2023-12-11 12:28:22 +02:00
Kirill Bulatov
e3fc810b3d Draft an expand macro recusively command 2023-12-11 12:28:22 +02:00
Antonio Scandurra
db8e58b888 Introduce scrollbars in editor2 (#3579)
Release Notes:

- N/A
2023-12-11 11:07:11 +01:00
Antonio Scandurra
e3c0b1f903 Listen for mouse events on scrollbar 2023-12-11 10:33:05 +01:00
Antonio Scandurra
03df63aa00 Merge remote-tracking branch 'origin/main' into scrollbars2 2023-12-11 09:51:43 +01:00
Conrad Irwin
cea26c9d10 actions3 (#3578)
- Restore impl_actions! and remove derive(Action)

Originally in gpui2 we inferred the action's namespace from the module
it was
defined in. This worked most of the time (ignoring the "remove_the_2"
hack),
but caused unintended (and mostly invisible) behavior in crates with
multiple
modules.

#3577 restored the namespace parameter to actions!, and this PR
reintroduces
`impl_actions!` to do the same for non-unit structs.

I considered trying to keep the struct-attribute API work, because it
does feel
more stylistically appropriate for rust, but two problems lead to it
feeling less good than `impl_actions!` in practice:
1. You have to repeat the namespace for each struct (and usually you're
defining them all in the same namespace)
2. You can't pass an argument to a derive macro inline, you need to use
an attribute instead.


Release Notes:

- N/A
2023-12-10 19:59:53 -07:00
Conrad Irwin
c5367e3085 Correct docs re:Debug 2023-12-10 19:52:17 -07:00
Conrad Irwin
9ce7395b74 Restore impl_actions! and remove derive(Action) 2023-12-10 19:33:38 -07:00
Joseph T. Lyons
ff45b43857 Add code for submission and error states for feedback modal (#3572)
Release Notes:

- N/A
2023-12-10 20:49:14 -05:00
Conrad Irwin
62d6a85a71 Restore namespace parameter to actions! (#3577)
This does not yet fix `derive(Action)`, but will conflict with a lot so
wanted to merge quickly.

Although automatically deriving the namespace worked in many situations,
it was
unclear what to do with nested modules. Vim wanted all actions to be
registered
under vim, while collab_ui wanted one namespace per action.

It seems better to make the implicit explicit, and give the flexibility
to hide
implementation details from the end-users.

Release Notes:

- N/A
2023-12-09 15:27:17 -07:00
Conrad Irwin
4290c67b6a Restore namespace parameter to actions!
This does not yet fix `derive(Action)`, but will conflict with a lot so
wanted to merge quickly.
2023-12-09 15:18:31 -07:00
Max Brunsfeld
cbbb0d033e Paint code-action/fold buttons above the gutter (#3576)
Previously, clicking on fold indicators or code action lightning bolts
wouldn't work - it would instead perform the normal gutter click handler
(selecting the clicked line).

By painting those indicators at a higher z-index, we ensure that the
indicators' click handlers are invoked instead.
2023-12-09 11:56:07 -08:00
Max Brunsfeld
7b722c326f Paint code-action/fold buttons above the gutter 2023-12-09 11:41:40 -08:00
Max Brunsfeld
188d727d31 Fix crash due to mutating command palette's candidates on confirmation (#3575)
I was seeing a crash when confirming the command palette. It was caused
by getting the palette's `commands` (match candidates) and `matches`
getting out of sync because we mutated `commands` when removing the
selected command.
2023-12-09 11:16:04 -08:00
Max Brunsfeld
6b58eb202d Fix crash due to mutating command palette's candidates on confirmation 2023-12-09 11:08:33 -08:00
Piotr Osiewicz
0be58eb61a Add a bunch of tooltips 2023-12-09 12:24:55 +01:00
Piotr Osiewicz
b09d2219d0 Add basic landing page 2023-12-09 12:00:44 +01:00
Joseph T. Lyons
33c41fb5e1 Show negative numbers after limit is hit 2023-12-09 00:35:19 -05:00
Mikayla
0ee61e214d Fix drag events 2023-12-08 17:02:25 -08:00
Max Brunsfeld
4adafb1148 Improve the chat panel in zed 2 (#3573)
* render markdown formatting
* wrap the chat messages
* enable the status bar button
2023-12-08 16:54:10 -08:00
Conrad Irwin
a4ea7bf928 More code written, similar lack of workingness so far 2023-12-08 17:45:17 -07:00
Max Brunsfeld
f3b764b7d2 Enable tests for MentionsEditor 2023-12-08 16:42:36 -08:00
Max Brunsfeld
e4bc346723 Initialize toggle chat panel action 2023-12-08 16:42:22 -08:00
Mikayla
fd34d1da31 Add back semi-funcitonal pane resizing code 2023-12-08 16:29:42 -08:00
Joseph T. Lyons
9abf5a1bf2 Add code for submission and error states 2023-12-08 19:16:03 -05:00
Max Brunsfeld
049314e84e Restructure chat message rendering to allow text to wrap 2023-12-08 15:44:27 -08:00
Max Brunsfeld
d03e29d55d Start work on rendering formatted chat messages 2023-12-08 15:44:27 -08:00
Marshall Bowers
8feb11ccee Make clicking the breadcrumb toggle the symbol outline (#3571)
This PR wires up clicks on the breadcrumb to toggle the symbol outline.

Note that the behavior of the symbol outline is a little wonky at the
moment, due to the issues with pane focus.

Release Notes:

- N/A
2023-12-08 18:22:53 -05:00
Marshall Bowers
008c56a09b Adjust which status colors we import from the VS Code theme (#3570)
This PR adjusts the status colors we import from the VS Code theme to be
the right ones.

Instead of looking at the Git status colors, we use the
`editorGutter.addedBackground`, `editorGutter.modifiedBackground`, and
`editorGutter.deletedBackground` colors for added, modified, and deleted
status colors, respectively.

Release Notes:

- N/A
2023-12-08 17:56:25 -05:00
Marshall Bowers
cf42d95af6 Use the diff status colors defined in the theme (#3569)
This PR updates the diff status colors to use the ones defined in the
theme instead of placeholder colors.

Release Notes:

- N/A
2023-12-08 17:41:11 -05:00
Joseph T. Lyons
60e4311294 Fix bug where feedback dismissal prompt is shown twice (#3568)
Release Notes:

- N/A
2023-12-08 17:25:48 -05:00
Joseph T. Lyons
cbbcc3502a Fix bug where feedback dismissal prompt is shown twice 2023-12-08 17:21:14 -05:00
Marshall Bowers
44890d6966 Weight scope matches to improve results (#3567)
This PR adds a simple weighting system for the matching of scopes from
the VS Code theme.

This gives us more control over the matches we get out of the theme, and
subsequently improves the results.

Release Notes:

- N/A
2023-12-08 16:42:13 -05:00
Marshall Bowers
2517b1017b Weight scope matches to improve results 2023-12-08 16:35:54 -05:00
Joseph T. Lyons
1fecd3c327 Allow modals to override their dismissal (#3565)
Release Notes:

- N/A
2023-12-08 16:28:16 -05:00
Max Brunsfeld
be636348c4 Enable chat panel in zed 2 (#3564) 2023-12-08 13:25:59 -08:00
Joseph T. Lyons
13dad89a85 Move all dismissal logic into dismiss_event 2023-12-08 16:14:45 -05:00
Max Brunsfeld
324aeaa0de Enable chat panel test, remove comments 2023-12-08 13:08:47 -08:00
Julia
ad05f22256 zed2: Store constructed terminal tooltip (#3566)
Allows the terminal to actually render its hyperlink tooltip

Release Notes:

- N/A
2023-12-08 16:05:53 -05:00
Marshall Bowers
2ef3954700 Fix function colors in Gruvbox themes 2023-12-08 16:04:58 -05:00
Max Brunsfeld
650ca1f39b Tweak styling of channel header and editor footer in chat panel 2023-12-08 13:04:25 -08:00
Max Brunsfeld
fce0c1f4d0 Dedup actions in WindowContext::available_actions 2023-12-08 13:02:14 -08:00
Julia
e9730e0b5c zed2: Store constructed terminal tooltip 2023-12-08 15:57:22 -05:00
Joseph T. Lyons
cd93ac1d2a Fix error 2023-12-08 15:34:42 -05:00
Max Brunsfeld
c739906413 Make chat message list fill the available space 2023-12-08 12:31:07 -08:00
Max Brunsfeld
c7d8169cab Get the chat panel wired up again 2023-12-08 12:31:07 -08:00
Nathan Sobo
213ed2028c Get more of chat panel compiling, but lots of todos 2023-12-08 12:31:07 -08:00
Max Brunsfeld
6955579f19 Start work on chat panel and non-uniform list
Co-authored-by: Nathan <nathan@zed.dev>
2023-12-08 12:30:49 -08:00
Joseph T. Lyons
113c7287df Allow modals to override their dismissal
Co-Authored-By: Mikayla Maki <mikayla.c.maki@gmail.com>
2023-12-08 15:29:44 -05:00
Marshall Bowers
4353bdb9d5 Restore theme sorting in Zed2 (#3563)
This PR restores the sorting of themes in the theme selector in Zed2.

Release Notes:

- N/A
2023-12-08 15:08:35 -05:00
Julia
40b219f861 zed2: Position terminal context menu, wire up dismis, and unbork context menu (#3561)
Release Notes:

- N/A
2023-12-08 14:47:28 -05:00
Kirill Bulatov
f67d4cea31 Add more harness around nightly builds (#3562)
Part of
https://zed-industries.slack.com/archives/C05SJGT0M33/p1702039430077589
The nightly job managed to pass successfully (build & upload nightly),
logged a proper commit sha that got into latest_sha on the nightly
bucket — but Zed version in about was wrong.

* Log Zed build sha in release builds to ensure CI uses the right one
* make curl to return non-zero code for non-200 nightly file uploads

Release Notes:

- N/A
2023-12-08 21:47:02 +02:00
Kirill Bulatov
0dc02b8354 Log Zed build sha in release builds.
Also ensure that curl commands for nightly uploads return 200 (fail otherwise).
2023-12-08 21:38:28 +02:00
Marshall Bowers
133b1a8ad2 Fix palette/picker colors for imported themes (#3560)
This PR fixes the palette/picker colors for themes imported from VS
Code.

- We now use the `dropdown.background` to set the background color for
elevated surfaces
- We now pull in `list.activeSelectionBackground` to use as the color
for selected ghost elements

Release Notes:

- N/A
2023-12-08 14:27:12 -05:00
Julia
f0cc54a0b5 Comment the weirdness
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-12-08 14:26:02 -05:00
Marshall Bowers
27501d2929 Pull in colors for selected ghost elements 2023-12-08 14:19:56 -05:00
Marshall Bowers
77c8108f9b Use dropdown.background from VS Code for elevated surface background 2023-12-08 14:13:50 -05:00
Marshall Bowers
1c850f495c Use breadcrumb.background from VS Code for toolbar background (#3559)
This PR changes the color we use for the toolbar background from the VS
Code theme to `breadcrumb.background`.

If this value isn't set then we fall back to the `editor.background`.

Release Notes:

- N/A
2023-12-08 14:03:18 -05:00
Marshall Bowers
1d35a815a6 Use editorGroupHeader.tabsBackground from VS Code as tab bar background (#3558)
This PR changes the color we use for the tab bar background from the VS
Code theme to `editorGroupHeader.tabsBackground`.

Release Notes:

- N/A
2023-12-08 13:50:56 -05:00
Julia
79e6dedb7a Track focus shenanigans with context menu
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-12-08 13:49:42 -05:00
Conrad Irwin
32837d67be vim2 compiling (but mostly commented out) 2023-12-08 18:47:14 +00:00
Marshall Bowers
c653a02be3 Refine imported themes further (#3557)
This PR refines the imported themes further:

- Empty strings for color values in the VS Code theme are now ignored
- Pull Git status colors from VS Code themes
- Add `constant` colors as a fallback for `number` tokens

Release Notes:

- N/A
2023-12-08 13:35:11 -05:00
Joseph T. Lyons
f4c93abad5 🚧 Feedback modal UI 🚧 (#3536)
[[PR Description]]

TODO: 
- [x] Add placeholder text to editor
- [x] Add external link icon to "Community repo" button
- [x] Show `not-allowed` cursor for disabled buttons
- [ ] Add `Headline` ui component
- [ ] Finish UI pass
- [ ] Fix `IconPosition` on button (should swap the icon side)
- [ ] Add conditional tooltip for disabled "Send feedback" button.
- [ ] Add common/top feedback link.
- [ ] Add `vw`/`vh` units to allow sizing the modal based on viewport
size.

Release Notes:

- N/A
2023-12-08 13:30:42 -05:00
Marshall Bowers
62155f3a88 Add fallback to constant tokens for numbers 2023-12-08 13:20:00 -05:00
Joseph T. Lyons
fdde76c1a5 Cargo fmt 2023-12-08 13:15:12 -05:00
Marshall Bowers
ab5b76e943 Pull Git status colors from VS Code themes 2023-12-08 13:14:22 -05:00
Joseph T. Lyons
be6c909587 Remove some unused imports 2023-12-08 13:13:40 -05:00
Marshall Bowers
a5a0ad8b5c Add missing serde attribute to foreground 2023-12-08 13:13:19 -05:00
Max Brunsfeld
726d761646 Bump tree-sitter-vue to remove dangling submodule 2023-12-08 10:12:18 -08:00
Marshall Bowers
9ac9532d3d Treat empty strings as None when deserializing VS Code themes 2023-12-08 13:12:09 -05:00
Joseph T. Lyons
63cc9e5068 Move character counter up above editor in feedback modal 2023-12-08 13:07:16 -05:00
Joseph T. Lyons
0cab3de0ae collab 0.30.1 2023-12-08 12:48:02 -05:00
Joseph T. Lyons
21476ec51d Add release channel to panic collab upload (#3556)
Release Notes:

- N/A
2023-12-08 12:25:59 -05:00
Piotr Osiewicz
c51cedef14 Re-enable navigation with mouse navigation buttons (#3555)
Release Notes:

- N/A
2023-12-08 18:18:55 +01:00
Joseph T. Lyons
7964b35607 Add release channel to panic collab upload 2023-12-08 12:10:25 -05:00
Marshall Bowers
8987b2205c Fix line endings in Palenight source themes (#3554)
This PR fixes the line endings in the Palenight source themes.

Release Notes:

- N/A
2023-12-08 12:04:24 -05:00
Julia
970c7b8987 zed2: Properly position terminal context menu & hide on dismiss 2023-12-08 12:02:31 -05:00
Piotr Osiewicz
a283cbaf8f Re-enable navigation with mouse navigation buttons 2023-12-08 17:59:52 +01:00
Marshall Bowers
0b2aa052ea Refine imported themes (#3553)
This PR continues the work of refining the imported VS Code themes.

Release Notes:

- N/A
2023-12-08 11:53:56 -05:00
Marshall Bowers
52e4c577d2 Re-import Rosé Pine source themes 2023-12-08 11:45:08 -05:00
Joseph T. Lyons
4596e7a68a Use consistent text 2023-12-08 11:39:10 -05:00
Joseph T. Lyons
b66e1d2d58 Fix compiler error 2023-12-08 11:35:49 -05:00
Marshall Bowers
6f064cfc36 Improve matching for constructor tokens 2023-12-08 11:34:39 -05:00
Joseph T. Lyons
260a753005 Fix rustfmt 2023-12-08 11:33:18 -05:00
Marshall Bowers
6634a5e9f6 Improve matching for constant tokens further 2023-12-08 11:23:42 -05:00
Marshall Bowers
1b6721170a Improve matching for constant tokens 2023-12-08 11:21:40 -05:00
Marshall Bowers
63ce7cd407 Improve matching for preprocessor tokens 2023-12-08 11:17:05 -05:00
Marshall Bowers
40a95221ea Improve matching for string tokens 2023-12-08 11:13:28 -05:00
Marshall Bowers
a8a5b9524d Improve matching for punctuation tokens 2023-12-08 11:07:52 -05:00
Marshall Bowers
53d77b192a Don't match support.function for function 2023-12-08 10:48:27 -05:00
Antonio Scandurra
9b0bea32ed 🎨 2023-12-08 14:24:58 +01:00
Antonio Scandurra
28dfd3ab43 Paint scrollbars
We still need to wire up mouse listeners.
2023-12-08 14:17:38 +01:00
Piotr Osiewicz
53ff5ff724 buffer_search: Add tooltips, polish keybinds (#3552)
[[PR Description]]

Release Notes:

- N/A
2023-12-08 13:39:08 +01:00
Piotr Osiewicz
d0a673ec62 buffer_search: Add tooltips, polish keybinds 2023-12-08 12:37:20 +01:00
Marshall Bowers
7a9f764aa0 Add support for theme family-specific syntax mapping overrides (#3551)
This PR adds support for adding a specific set of mappings from Zed
syntax tokens to VS Code scopes for a particular theme family.

We can use this as a fallback when we aren't otherwise able to rely on
the mappings in the theme importer, as sometimes it isn't possible to
make a specific enough matcher that works across all of the themes.

Release Notes:

- N/A
2023-12-07 23:37:49 -05:00
Marshall Bowers
5b96ffbbd1 Set various bar backgrounds in imported themes (#3550)
This PR updates the imported themes to set the background colors for the
various bars (title bar, toolbar, tab bar, status bar).

Release Notes:

- N/A
2023-12-07 23:07:24 -05:00
Marshall Bowers
efb4ff816a Set tab bar and toolbar backgrounds 2023-12-07 22:32:41 -05:00
Joseph T. Lyons
1f51f74670 Add TODO 2023-12-07 22:24:32 -05:00
Marshall Bowers
a88372dc99 Set background colors for title and status bars 2023-12-07 22:24:10 -05:00
Marshall Bowers
f272881a6b theme_importer: Improve syntax token matching (#3549)
This PR improves the approach we use to match syntax tokens between Zed
and VS Code in the `theme_importer`.

We now use the list of scopes assigned to each Zed syntax token to rank
the possible candidates in the VS Code and then pick the candidate with
the highest rank.

So far this has proved to provide better colors across the board, but
we'll continue to refine the matching over time.

Release Notes:

- N/A
2023-12-07 22:11:31 -05:00
Mikayla
25df11dd26 Begin porting the PaneAxis element 2023-12-07 17:16:19 -08:00
Max Brunsfeld
89f62a1a69 Fix nightly auto-update failure due to version parsing error (#3548)
After https://github.com/zed-industries/zed/pull/3507, parsing the app's
semver version from the application plist stopped working, which caused
auto-updates to stop.

I don't think we need to put `-nightly` in the version number: it's
already in the release channel name, which is reported alongside the
version in most cases. For example, the 'About' dialog was saying `Zed
Nightly 2.0.0-nightly`.

I think even without nightly, it would be a good idea to include the
*release channel* name in the datadog alerts that show up in slack.
@JosephTLyons could you look into how to do that?

/cc @SomeoneToIgnore
2023-12-07 17:15:41 -08:00
Max Brunsfeld
f9d569f1b8 Remove '-nightly' suffix from nightly build version number
It breaks our semver parsing, and the release channel is already 'nightly'.
2023-12-07 16:51:53 -08:00
Max Brunsfeld
808a0626c0 Show a notification on auto-update check action if updates are disabled 2023-12-07 16:49:27 -08:00
Marshall Bowers
c7e19c0bcd Emit accurate hex colors in generated themes (#3547)
This PR fixes an issues where the hex colors in the generated themes
were not correct.

We're using the [`palette`](https://crates.io/crates/palette) crate to
perform the conversions, as this gives us accurate hex codes that match
the VS Code source themes.

Release Notes:

- N/A
2023-12-07 18:34:03 -05:00
Max Brunsfeld
0b78a401de Show current user avatar when in a room, even if not in a shared project (#3546) 2023-12-07 15:22:29 -08:00
Max Brunsfeld
58d8c51255 Show current user avatar when in a room w/o a shared project 2023-12-07 14:49:32 -08:00
Max Brunsfeld
5e3d0a6d03 Add following UI in collab titlebar (#3544)
* [x] restructure titlebar to show facepiles for each collaborator and
their followers
* [x] allow following collaborators by clicking their avatars in the
titlebar
* [x] show grayscale avatar for collaborators not focused on this
project
* [x] show collaborators' microphone activity and muted status in the
titlebar
* [x] in facepile, show leader in front of followers
2023-12-07 14:38:30 -08:00
Max Brunsfeld
aa34637705 Add tooltip for following collaborators in titlebar 2023-12-07 14:31:21 -08:00
Max Brunsfeld
901bd6ac87 Order face pile front to back, left to right 2023-12-07 14:22:36 -08:00
Julia
445f0da4d8 zed2: Port ProjectSharedNotification (#3545)
Release Notes:

- N/A
2023-12-07 17:21:24 -05:00
Max Brunsfeld
d1b47b4059 Indicate collaborators' presence (grayscale), speaking and muted status 2023-12-07 14:18:34 -08:00
Julia
f3cbce7e86 zed2: Port ProjectSharedNotification 2023-12-07 17:13:22 -05:00
Max Brunsfeld
04d019ef66 Remove comments 2023-12-07 13:17:22 -08:00
Marshall Bowers
d23bba5b18 Pull hint colors from VS Code themes (#3543)
This PR updates the `theme_importer` to pull hint colors from VS Code
themes.

Release Notes:

- N/A
2023-12-07 16:11:56 -05:00
Max Brunsfeld
282e4398a0 In titlebar, render followers and allow following people 2023-12-07 13:09:18 -08:00
Marshall Bowers
fa223e0c6f Pull editor inlay hints from VS Code themes 2023-12-07 15:36:13 -05:00
Marshall Bowers
6a164db700 Rename members in ZedSyntaxToken 2023-12-07 14:35:58 -05:00
Marshall Bowers
8ed04fe798 Remove commented-out code in theme importer 2023-12-07 14:33:37 -05:00
Marshall Bowers
853daf953b Remove padding from ButtonSize::None (#3541)
This PR removes the padding from buttons when using `ButtonSize::None`.

This fixes the size of the tab close buttons.

Release Notes:

- N/A
2023-12-07 14:11:30 -05:00
Joseph T. Lyons
8b9b19195d Fix bug with how characters limits are being displayed 2023-12-07 13:19:03 -05:00
Joseph T. Lyons
5c3b8a1af1 Merge branch 'feedback-modal-ui' of https://github.com/zed-industries/zed into feedback-modal-ui 2023-12-07 13:00:59 -05:00
Joseph T. Lyons
0ee4ad6ba0 Skip using map 2023-12-07 13:00:49 -05:00
Nate Butler
ef4bc5e20b Remove static status bar icons 2023-12-07 12:59:51 -05:00
Joseph T. Lyons
439df24526 Merge branch 'main' into feedback-modal-ui 2023-12-07 12:58:53 -05:00
Joseph T. Lyons
1fcd006b2a Remove when_else (#3540)
Release Notes:

- N/A
2023-12-07 12:46:20 -05:00
Joseph T. Lyons
7c19650a40 Remove when_else
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-12-07 12:37:07 -05:00
Marshall Bowers
393be3cedf Extract Tab component (#3539)
This PR extracts a new `Tab` component from the tabs implementation in
the workspace.

This will allow us to reuse this component anywhere that we need to use
tabs.

Like our other newer components, the `Tab` component has a relatively
open API.

It accepts `children` (or `child`) as well as a `start_slot` and
`end_slot` to position content in the slots on either end of the
content. These slots also respect the `TabCloseSide` and will switch
positions based on this value.

<img width="763" alt="Screenshot 2023-12-07 at 12 19 42 PM"
src="https://github.com/zed-industries/zed/assets/1486634/78e4db6a-f807-431e-8777-f52f2631e6ed">

Release Notes:

- N/A
2023-12-07 12:30:43 -05:00
Antonio Scandurra
c91207b450 Don't panic when trying to reuse an existing workspace (#3538)
Release Notes:

- N/A
2023-12-07 18:23:33 +01:00
Antonio Scandurra
7ad6d489a4 Fix clipping when rendering paths (#3537)
Release Notes:

- N/A
2023-12-07 18:23:19 +01:00
Joseph T. Lyons
794b795800 Add TODO 2023-12-07 12:04:04 -05:00
Piotr Osiewicz
1bf94f0251 Do not render multibuffer without matches 2023-12-07 17:55:03 +01:00
Antonio Scandurra
2461902086 Don't panic when trying to reuse an existing workspace
Co-Authored-By: Nathan <nathan@zed.dev>
2023-12-07 17:53:07 +01:00
Piotr Osiewicz
e9c40963ab Render multibuffer 2023-12-07 17:48:53 +01:00
Antonio Scandurra
08c4e1abdc Fix clipping when rendering paths
Co-Authored-By: Nathan <nathan@zed.dev>
2023-12-07 17:48:00 +01:00
Nate Butler
5e5eb25aab WIP
[no-ci]
2023-12-07 10:50:07 -05:00
Piotr Osiewicz
ed5c05b272 Searches work, but the results are not displayed 2023-12-07 16:43:34 +01:00
Piotr Osiewicz
b04838c23a WIP, search bar looks kinda okay 2023-12-07 16:26:40 +01:00
Kirill Bulatov
49d30b4f67 Fix more bugs around terminal2 and focus (#3534) 2023-12-07 16:52:59 +02:00
Kirill Bulatov
b9a904e552 Add initial OS file drag and drop support 2023-12-07 16:08:48 +02:00
Kirill Bulatov
6c653b9c05 Activate Zed window on external file drop 2023-12-07 16:08:47 +02:00
Kirill Bulatov
b692b4c9c2 Do not expand terminal selections on active drag 2023-12-07 16:08:47 +02:00
Kirill Bulatov
f829120f51 Convert OS file drag and drop enter event into a mouse move, not mouse click 2023-12-07 16:08:47 +02:00
Kirill Bulatov
2a82dff2fe Suppress unused variable r-a warning from action derive procmacro 2023-12-07 16:08:47 +02:00
Kirill Bulatov
646b74e0a7 Move actions to namespaces used in zed1 keybinding settings 2023-12-07 16:08:47 +02:00
Kirill Bulatov
75324abbb5 Do not panic when focusing empty dock 2023-12-07 16:08:47 +02:00
Piotr Osiewicz
0c23e6738b Barebones project search (no UI, but the crate compiles) 2023-12-07 14:36:45 +01:00
Piotr Osiewicz
ea708c50f0 Search2 fixups (#3533)
Fixes several issues with focus and unbound actions.
Release Notes:

- N/A
2023-12-07 14:01:21 +01:00
Piotr Osiewicz
8839bfa1df Remove unused import 2023-12-07 13:54:51 +01:00
Antonio Scandurra
2c2c633104 Fix confirming rename not working on editor2 (#3532)
Release Notes:

- N/A
2023-12-07 13:20:00 +01:00
Piotr Osiewicz
18393d1fac fixup! buffer search: Fix up rough edges 2023-12-07 13:13:38 +01:00
Antonio Scandurra
7842fdeb32 Fix confirming rename not working on editor2 2023-12-07 12:54:28 +01:00
Piotr Osiewicz
45f7ab876f buffer search: Fix up rough edges
Focus query editor when Deploy::focused is true, add missing bindings
2023-12-07 12:52:34 +01:00
Antonio Scandurra
cbd1ce64f7 Rework frame rendering (#3531)
This pull request replaces the old `previous_frame` and `current_frame`
with a new pair of `rendered_frame` and `next_frame` that are swapped
once we are ready to draw a finished frame.

This makes it clearer when to use which: `rendered_frame` should be used
to query the existing state, whereas `next_frame` should be used and
mutated when redrawing a dirty window.

The change was prompted by a bug I encountered in
`FocusHandle::contains`. The implementation was reading `current_frame`,
but that was the wrong field to access if e.g. we were reading it inside
of a `render` function or any other time while drawing the window.

Release Notes:

- N/A
2023-12-07 12:36:06 +01:00
Antonio Scandurra
9a916d71b0 Polish assistant in zed2 (#3530)
This fixes a few bugs that remained after merging #3513 

Release Notes:

- N/A
2023-12-07 12:16:39 +01:00
Antonio Scandurra
a40515dbb3 Rework frame rendering
This commit replaces the old `previous_frame` and `current_frame` with
a new pair of `rendered_frame` and `next_frame` that are swapped once
we are ready to draw a finished frame.

This makes it clearer when to use which: `rendered_frame` should be used
to query the existing state, whereas `next_frame` should be used and mutated when
redrawing a dirty window.

The change was prompted by a bug I encountered in `FocusHandle::contains`. The
implementation was reading `current_frame`, but that was the wrong field to
access if e.g. we were reading it inside of a `render` function or any other
time while drawing the window.
2023-12-07 12:10:49 +01:00
Antonio Scandurra
edb2f60d9d Use the correct icons in AssistantPanel header 2023-12-07 10:53:24 +01:00
Antonio Scandurra
02bd4fb1f1 Simplify focus management in AssistantPanel 2023-12-07 10:38:00 +01:00
Antonio Scandurra
e96197d63b Ensure editor gets focused when selecting conversation 2023-12-07 10:27:25 +01:00
Federico Dionisi
d02ff42608 Dismiss theme_selector on esc (#3502) 2023-12-07 09:07:13 +01:00
Nate Butler
f798b193d0 WIP 2023-12-07 01:46:28 -05:00
Nate Butler
197f355729 Add row-reverse and col-reverse to styled 2023-12-07 01:17:18 -05:00
Nate Butler
7a1eb54106 checkpoint 2023-12-07 00:33:24 -05:00
Nate Butler
42a3da4ba3 Update pickers (#3529)
[[PR Description]]

- Update the size of all pickers
- Additional styling fixes for File Finder and Outline palettes
- Extend the ui prelude to include common imports

Release Notes:

- N/A
2023-12-07 00:24:46 -05:00
Nate Butler
84aaeb4360 Fix incorrect text style in outline palette, use background highlights for matches 2023-12-07 00:16:24 -05:00
Nate Butler
da3ba35d1c add color_alpha function 2023-12-07 00:15:43 -05:00
Joseph T. Lyons
2a68a6171a Remove remnants from conflict resolution (#3528)
Fixes a couple of things that slipped through when going through the
last merge conflict

Release Notes:

- N/A
2023-12-06 23:44:49 -05:00
Nate Butler
fffe4f51fb Update pickers to have a consistently larger size 2023-12-06 23:38:47 -05:00
Joseph T. Lyons
27e1787ce3 Feedback 2 (#3527)
Ports feedback crate over to zed2. Introduces modal feedback. Feedback
submission works, but there are some TODOs in the code for things that
need to be done (needs a UI pass, dismissing the modal in certain cases,
etc), but I might merge this to reduce chances of conflicts (aleady had
to deal with a few).

<img width="1378" alt="SCR-20231206-udgp"
src="https://github.com/zed-industries/zed/assets/19867440/99f9e843-ac9c-4df1-b600-2522863e6459">

Release Notes:

- N/A
2023-12-06 23:25:45 -05:00
Nate Butler
9e6103f863 Merge branch 'main' into update-pickers 2023-12-06 23:21:42 -05:00
Joseph T. Lyons
d2362d7f12 Merge branch 'main' into feedback-2 2023-12-06 23:16:54 -05:00
Joseph T. Lyons
79e0d8ce3b WIP 2023-12-06 23:15:04 -05:00
Joseph T. Lyons
ee45db8a78 Use when_else() 2023-12-06 22:34:28 -05:00
Joseph T. Lyons
8fc15c05c5 Introduce when_else() 2023-12-06 22:34:14 -05:00
Joseph T. Lyons
256f0308ae Renove unused code 2023-12-06 21:32:33 -05:00
Joseph T. Lyons
d62b151bc0 Improve character limit bounds indicator 2023-12-06 21:23:51 -05:00
Mikayla Maki
b2a0c32148 Terminal2 (#3449)
Release Notes:

-
2023-12-06 16:49:46 -08:00
Joseph T. Lyons
668f5accab Highlight whole modal as needing UI tweaks 2023-12-06 19:35:41 -05:00
Mikayla
66b93212fe Fix selection backgrounds 2023-12-06 16:31:28 -08:00
Joseph T. Lyons
57a9f024e7 Remove email address from local database if user removes it 2023-12-06 19:26:25 -05:00
Mikayla
22cd62213b Tear out drag event listener 2023-12-06 16:22:25 -08:00
Joseph T. Lyons
bbe9986f38 Start work to add a confirmation when exiting feedback containing text 2023-12-06 19:13:38 -05:00
Joseph T. Lyons
1abc9800af Switch to if let statement 2023-12-06 19:11:24 -05:00
Joseph T. Lyons
034c11cc96 Hook up community repo button 2023-12-06 19:11:03 -05:00
Joseph T. Lyons
0885fa67fc Hook up submit 2023-12-06 19:10:45 -05:00
Marshall Bowers
c8cb1140b9 Clean up how we open the recent projects picker (#3526)
This PR performs some light cleanup of how we open the recent projects
picker, to bring it more in-line with our other picker code.

Release Notes:

- N/A
2023-12-06 19:10:15 -05:00
Mikayla
c092cfbfb3 Fix bug with IME
Adjust how IME works in the terminal

co-authored-by: nathan <nathan@zed.dev>
2023-12-06 15:54:08 -08:00
Marshall Bowers
a4b271e063 Port recent_projects to Zed2 (#3525)
This PR ports the `recent_projects` crate to Zed2 (`recent_projects2`).

Absent from this PR is wiring up the "Recent Projects" item in the title
bar. We'll come back to that soon.

Release Notes:

- N/A
2023-12-06 18:41:50 -05:00
Joseph T. Lyons
110612bf26 Reduce amount of state being stored 2023-12-06 18:36:17 -05:00
Mikayla
fd31e429f5 Merge branch 'main' into terminal-element 2023-12-06 15:20:04 -08:00
Mikayla
12e7f61f62 Fix a porting bugs for terminal2
co-authored-by: Nathan <nathan@zed.dev>
2023-12-06 15:11:49 -08:00
Max Brunsfeld
1a747c8457 Upgrade async-compression dep (#3524)
Fixes a build failure on CI:


https://github.com/zed-industries/zed/actions/runs/7120057787/job/19387718091

```
2023-12-06 21:26:40.468791 +00:00:00 [ERROR] `cargo metadata` exited with an error:     Updating crates.io index
error: failed to select a version for `async-compression`.
    ... required by package `zed2 v2.0.0-nightly (/Users/administrator/actions-runner-2/_work/zed/zed/crates/zed2)`
versions that meet the requirements `^0.3` (locked to 0.3.15) are: 0.3.15

the package `zed2` depends on `async-compression`, with features: `futures-bufread-nightly` but `async-compression` does not have these features.
```
2023-12-06 14:45:28 -08:00
Max Brunsfeld
2d18b949ad Upgrade async-compression dep 2023-12-06 14:29:09 -08:00
Joseph T. Lyons
46c998ca8d WIP 2023-12-06 17:27:10 -05:00
Max Brunsfeld
a8d96790cf Enable buffer font size adjustment in zed2 (#3523) 2023-12-06 14:15:25 -08:00
Marshall Bowers
b72c54fc31 Don't load the Vim keymap temporarily (#3522)
This PR removes the loading of the Vim keymap temporarily.

This cuts down on the noise from all of the Vim-related action warnings.

We can resume loading the Vim keymap once we're ready to add Vim
support.

Release Notes:

- N/A
2023-12-06 16:59:24 -05:00
Max Brunsfeld
89c8a7c242 Enable buffer font size adjustment in zed2
Co-authored-by: Nathan <nathan@zed.dev>
2023-12-06 13:52:33 -08:00
Marshall Bowers
41fc30f62e Always show tooltips on buttons (#3521)
This PR fixes an issue where tooltips weren't being shown on selected
buttons.

We now always show tooltips on buttons that have one.

Release Notes:

- N/A
2023-12-06 16:29:35 -05:00
Joseph T. Lyons
f4c7b13397 temp 2023-12-06 16:15:44 -05:00
Marshall Bowers
f7c995c4a0 Add "Toggle Inlay Hints" quick action (#3520)
This PR adds the "Toggle Inlay Hints" quick action to the toolbar.

Release Notes:

- N/A
2023-12-06 16:14:39 -05:00
Marshall Bowers
cd818f580c Wire up inline assist quick action (#3519)
This PR wires up the inline assist quick action in the toolbar.

Release Notes:

- N/A
2023-12-06 15:52:51 -05:00
Max Brunsfeld
dba94c5122 Bring back channel notes (#3506) 2023-12-06 12:45:46 -08:00
Marshall Bowers
dbb501d7eb Add gap between label and keybinding in Tooltip 2023-12-06 15:45:03 -05:00
Marshall Bowers
d711087529 Wire up inline assist quick action 2023-12-06 15:44:50 -05:00
Kirill Bulatov
ebddb612c8 Do not run the same workflow concurrently on non-main branches (#3518)
<img width="1376" alt="image"
src="https://github.com/zed-industries/zed/assets/2690773/681cca85-e1b9-4a99-8363-60c931ba1393">

For any push (or force-push) into a branch, a separate CI workflow is
run.
This is rather worker-consuming, esp. given the fact that GitHub will
wait for the last job to update PR's status.
So cancel every old job for the same branch if it's not `main`.
CI run on `main` might catch a regression brought in by specific PR
merged, so run CI on every commit due to that.


Release Notes:

- N/A
2023-12-06 22:35:02 +02:00
Kirill Bulatov
62c41e226b Use distinct version for zed2, append git hash to its nightly version (#3507)
Current panic reports are now harder to tell apart by the following
criteria:
* nightly or preview or stable
* zed2 or zed1
 

![image](https://github.com/zed-industries/zed/assets/2690773/d12c8272-9f78-403c-ba49-e5f05982c0f5)

Current PR adds uses a different version for zed2 (2.0.0, selected
relatively arbitrary as zed2 is nothing officially released now) and
adds a `-nightly` suffix to the version number of the nightly bundle.

Release Notes:

- N/A
2023-12-06 22:23:12 +02:00
Kirill Bulatov
b94c335605 Do not run the same workflow concurrently on non-main branches 2023-12-06 22:19:48 +02:00
Max Brunsfeld
6bbb1642b8 Fix propagation of active item to followers
Enable channel buffer integration tests.
2023-12-06 12:18:48 -08:00
Max Brunsfeld
e9dcca7712 Initialize channel notes to register the view as followable 2023-12-06 12:09:29 -08:00
Max Brunsfeld
1ec81e02da Allow opening channel notes from the channel list 2023-12-06 12:09:29 -08:00
Max Brunsfeld
bcdefb8ec8 Bring back channel notes 2023-12-06 12:09:27 -08:00
Kirill Bulatov
5644815c4c Use a better name for zed2 inlay style field 2023-12-06 22:06:30 +02:00
Kirill Bulatov
9e1d797445 Use distinct version for zed2, append git hash to its nightly version 2023-12-06 22:04:45 +02:00
Kirill Bulatov
ec798e6574 Pass proper theme colors for inlays and suggestions (#3517)
<img width="1728" alt="image"
src="https://github.com/zed-industries/zed/assets/2690773/f6f1e24f-71fe-4a2e-9bcf-9e98861c0da4">


![image](https://github.com/zed-industries/zed/assets/2690773/8434d8a1-ee7e-49c1-9e88-362363225d96)

Now inlays are visible in all zed2 themes, but 
* always have a blue color which is the same as some theme colors
* not other hint-related style changes like font width, background, etc.
seem to exist in the theme, ergo not propagated.

In general though, people want those style changes applied to their
hints, so we might want to do something about it later.
I've left a `// todo!("what about the rest of the highlight style parts
for inlays and suggestions?")` in the corresponding places for that.

Release Notes:

- N/A
2023-12-06 21:54:41 +02:00
Nathan Sobo
d7473ad6e7 Document geometry module and replace zero method with default (#3515)
Nothing earth-shattering here, but all our geometry types are now fully
documented.

Release Notes:

- N/A
2023-12-06 12:52:41 -07:00
Max Brunsfeld
5ebf1d9e4f Put ToggleZoom key binding back into the block with no context (#3516)
Fixes a regression in zed1 from
https://github.com/zed-industries/zed/pull/3491
2023-12-06 11:52:24 -08:00
Kirill Bulatov
f76e1cfd91 Pass proper theme colors for inlays and suggestions 2023-12-06 21:48:39 +02:00
Max Brunsfeld
489c25ac6a Put ToggleZoom key binding back into the block with no context 2023-12-06 11:32:05 -08:00
Nathan Sobo
ac07e230fa Document geometry 2023-12-06 12:28:44 -07:00
Marshall Bowers
147c99f1a7 Fix layout for terminal tabs (#3514)
This PR fixes the layout for terminal tabs.

We need to use an `h_stack` here to get the icon and the label to
position themselves next to each other instead of one on top of the
other.

Release Notes:

- N/A
2023-12-06 14:28:31 -05:00
Joseph T. Lyons
02a6a2e1a3 Revert "Delete feedback_modal.rs"
This reverts commit eff925cb6a.
2023-12-06 14:13:56 -05:00
Joseph T. Lyons
4863c9ac25 WIP 2023-12-06 14:13:44 -05:00
Marshall Bowers
2c350a71fe Port assistant crate to Zed2 (#3513)
This PR contains the initial port of the `assistant` crate to Zed2.

Release Notes:

- N/A
2023-12-06 14:04:01 -05:00
Marshall Bowers
fdd64832e7 Update inline assist styles 2023-12-06 13:52:38 -05:00
Joseph T. Lyons
eff925cb6a Delete feedback_modal.rs 2023-12-06 13:26:20 -05:00
Antonio Scandurra
7e2ff63270 Paint blocks on top of the editor
This ensures blocks get mouse events before the editor beneath
them.

Co-Authored-By: Marshall <marshall@zed.dev>
2023-12-06 19:15:09 +01:00
Antonio Scandurra
cc9eff89f5 Use a handler instead of an action for clicks
This prevents dispatching actions on buttons that were not the target of the click.

Co-Authored-By: Marshall <marshall@zed.dev>
2023-12-06 19:12:01 +01:00
Antonio Scandurra
e4884f1d76 Move assistant actions to the top of the crate
Co-Authored-By: Marshall <marshall@zed.dev>
2023-12-06 18:39:50 +01:00
Joseph T. Lyons
02e7a06cbb Merge branch 'main' of https://github.com/zed-industries/zed 2023-12-06 12:37:20 -05:00
Joseph T. Lyons
5ae2060783 collab 0.30.0 2023-12-06 12:34:47 -05:00
Antonio Scandurra
14def2a1a3 Merge remote-tracking branch 'origin/main' into assistant-2
# Conflicts:
#	crates/ui2/src/components/icon.rs
2023-12-06 18:18:58 +01:00
Antonio Scandurra
7c9e2f6b7d Introduce app menus in zed2 (#3511)
Release Notes:

- N/A
2023-12-06 18:17:02 +01:00
Marshall Bowers
f6a7a6c4d4 v0.117.x dev 2023-12-06 12:03:59 -05:00
Antonio Scandurra
2aee3e3192 Make Node::context optional as well
This was an oversight in d09dfe0.

Co-Authored-By: Marshall <marshall@zed.dev>
2023-12-06 18:02:45 +01:00
Antonio Scandurra
5e558e2a58 Make more menu-related platform methods no-ops 2023-12-06 17:57:18 +01:00
Antonio Scandurra
80f315106d Add key context to ConversationEditor
Co-Authored-By: Marshall <marshall@zed.dev>
2023-12-06 17:56:05 +01:00
Marshall Bowers
80c8fd1f4c Fix toolbar not appearing for initial pane (#3512)
This PR fixes an issues where the toolbar would not appear for the
center pane when Zed2 initially loads.

We resolved this by adding a call to initialize the center pane when the
workspace is initialized

Due to changes in the way subscriptions work we can on longer observe an
event that is emitted in the same event cycle in which the subscription
is created.

Because of this we need to explicitly initialize the center pane, as it
won't get performed by the subscription.

Release Notes:

- N/A

---------

Co-authored-by: Antonio <antonio@zed.dev>
2023-12-06 11:54:59 -05:00
Antonio Scandurra
886ec79d58 Make TestPlatform::set_menus a no-op 2023-12-06 17:45:59 +01:00
Antonio Scandurra
c8ddc95caa Take a Keymap when setting app menus
For a brief period on this branch, we were taking a `DispatchTree`. Doing so
resulted in more accurate key bindings but it meant that we would have had to
recompute the app menus every time the key context changed.

We decided to err on the side of keeping things simple and work in the same
way they worked back in zed1.

Co-Authored-By: Marshall <marshall@zed.dev>
2023-12-06 17:26:54 +01:00
Marshall Bowers
8f1c74b8bc Factor out LabelLike to share common label styles (#3510)
This PR factors out a new `LabelLike` component to share common styles
between the `Label` and `HighlightedLabel` components.

Release Notes:

- N/A
2023-12-06 11:17:12 -05:00
Nate Butler
0ced310f93 Merge branch 'main' into update-pickers 2023-12-06 11:10:30 -05:00
Nate Butler
74e3b12a26 Update file finder style 2023-12-06 11:10:27 -05:00
Nate Butler
cf971f706c Extend ui prelude 2023-12-06 11:07:46 -05:00
Nate Butler
b5c790ed29 WIP update picker style 2023-12-06 11:01:22 -05:00
Piotr Osiewicz
6549a9a091 Let WindowContext::dispatch_action handle global actions
Co-authored-by: Antonio <antonio@zed.dev>
2023-12-06 16:52:52 +01:00
Nate Butler
3b8c566f31 Merge branch 'main' into update-pickers 2023-12-06 10:48:50 -05:00
Marshall Bowers
f833cd7c16 Use specified color for non-highlighted text in HighlightedLabel (#3509)
This PR fixes an issue where the specified color for a
`HighlightedLabel` was not respected as the default color for
non-highlighted text.

Release Notes:

- N/A
2023-12-06 10:41:49 -05:00
Piotr Osiewicz
e9002ab10a Merge branch 'main' into app-menus 2023-12-06 16:34:55 +01:00
Antonio Scandurra
a1c8f01ff3 WIP 2023-12-06 16:34:07 +01:00
Antonio Scandurra
54ea7257ff Copilot2 (#3498)
Add hidden_action_types to CommandPaletteFilter.
WindowContext.available_actions now returns global actions as well.

Release Notes:

- N/A
2023-12-06 16:31:30 +01:00
Piotr Osiewicz
d09dfe01f5 Wire up global actions
Added an ephemeral root node so that even if there's no window/focused handle we still have something to dispatch to.

Co-authored-by: Antonio <antonio@zed.dev>
2023-12-06 16:15:53 +01:00
Kirill Bulatov
3c1bf0260c Disable bundling for main commits (#3508)
(in the first commit, this PR autoformats both yaml files with Zed's
default prettier, to be able to edit those in prettier from now on)

Bundling is a relatively long procedure, and now we have nightly builds
for zed2 (with their own lifecycle, CI file and tag for triggering it
from non-main branch).

Hence, bundling zed1 and/or zed2 by default looks wasteful and
unnecessary, disable them by default.
There's still a `run-build-dmg` label that enables bundling for any PR
needed, and a `startsWith(github.ref, 'refs/tags/v')` check in the CI
run to keep the releases working.

Release Notes:

- N/A
2023-12-06 17:08:48 +02:00
Nate Butler
cb0880cf3c Add debugging colors to styled_ext 2023-12-06 10:08:26 -05:00
Kirill Bulatov
a58f393458 Do not bundle Zed on main branch commits 2023-12-06 16:58:49 +02:00
Kirill Bulatov
0ef97edd6e Format the CI file with Zed's default prettier 2023-12-06 16:58:18 +02:00
Piotr Osiewicz
1f538c5fdd Merge branch 'main' into copilot2 2023-12-06 15:13:13 +01:00
Antonio Scandurra
5f172a52a4 Load assistant panel 2023-12-06 14:23:05 +01:00
Piotr Osiewicz
1b0ec82caa Remove old UI code, remove dbg! 2023-12-06 14:16:19 +01:00
Piotr Osiewicz
7998e8281c Barebones Copilot prompt
Filter out sign in/sign out when user is signed in/not signed in
2023-12-06 14:14:18 +01:00
Piotr Osiewicz
3f9fe58c48 Signed out state is looking good 2023-12-06 13:00:57 +01:00
Antonio Scandurra
9eb98122ec Merge remote-tracking branch 'origin/main' into assistant-2 2023-12-06 12:53:02 +01:00
Antonio Scandurra
1de02cf6e5 Start wiring up assistant2 2023-12-06 12:51:25 +01:00
Antonio Scandurra
b29cea287b WIP 2023-12-06 12:12:28 +01:00
Mikayla
735f2029e9 Add more debugging 2023-12-05 17:31:33 -08:00
Marshall Bowers
5660c8f655 Add missing semicolon 2023-12-05 20:24:43 -05:00
Marshall Bowers
ed31d36ac1 Wire up NewWindow action 2023-12-05 20:24:01 -05:00
Marshall Bowers
d8757845a9 Wire up NewFile action 2023-12-05 20:21:35 -05:00
Mikayla
2ee0ecb677 Add back the main structure 2023-12-05 16:52:29 -08:00
Nathan Sobo
d2fe9f8f9b Merge remote-tracking branch 'origin/main' into app-menus 2023-12-05 16:54:38 -07:00
Nathan Sobo
c9dd6b879c Fix cmd-n in the project panel context menu and bind global workspace actions (#3491)
This PR binds the `workspace::NewFile` action only in the `Workspace`
context. It previously was bound globally, which caused us to hijack the
`cmd-n` binding when the context menu was visible in the project panel.
In the process, we also added some other global workspace actions and
move some other global bindings to be bound only on `Pane` and
`Workspace`.

Release Notes:

- N/A
2023-12-05 16:52:39 -07:00
Nathan Sobo
65bb05af4c Merge main
Co-Authored-By: Marshall <marshall@zed.dev>
2023-12-05 16:47:13 -07:00
Nathan Sobo
82534b6612 Get app menus basically working
- Everything is still disabled when there is no active window.

Co-Authored-By: Marshall <marshall@zed.dev>
2023-12-05 16:37:01 -07:00
Nathan Sobo
79567d1c87 Add AppContext::dispatch_action and use it for app menu actions
Co-Authored-By: Marshall <marshall@zed.dev>
Co-Authored-By: Julia <julia@zed.dev>
2023-12-05 15:49:06 -07:00
Max Brunsfeld
5b6fd3ac1d Implement following and more collaboration panel features in zed2 (#3504) 2023-12-05 13:59:15 -08:00
Joseph T. Lyons
a27db35ff7 temp 2023-12-05 16:37:43 -05:00
Marshall Bowers
02e507b973 Update breadcrumb rendering (#3505)
This PR updates the rendering of the breadcrumb.

Release Notes:

- N/A

Co-authored-by: Nate Butler <iamnbutler@gmail.com>
2023-12-05 16:34:21 -05:00
Max Brunsfeld
f2faa70f73 Make Window::on_next_frame work in tests 2023-12-05 13:34:12 -08:00
Max Brunsfeld
863222edc5 Get following working
Restore a single event type on Item trait, so that the workspace can
subscribe to it and handle following events.
2023-12-05 12:57:23 -08:00
Joseph T. Lyons
fdc2d7ce42 Remove unused code 2023-12-05 15:53:52 -05:00
Joseph T. Lyons
dec4cfa0b4 Implement feedback action
OpenZedCommunityRepo
2023-12-05 15:52:02 -05:00
Joseph T. Lyons
78e1c0f9c3 Implement feedback actions
CopySystemSpecsIntoClipboard
RequestFeature
FileBugReport
2023-12-05 15:48:41 -05:00
Nathan Sobo
631e264e3c Start on app menus 2023-12-05 13:17:59 -07:00
Mikayla
ab140ee4c2 Add event based drag API to GPUI, continue binding mouse handlers to terminal 2023-12-05 12:07:17 -08:00
Marshall Bowers
fc9b662042 Update Tab Bar & Toolbar (#3503)
- Work on default light theme
- Update tab bar and tabs
- Port quick_action_bar crate to zed2
- Add `Indicator` component
- Add `v_stack` & `h_stack` to ui::prelude::*

Release Notes:

- N/A
2023-12-05 14:23:13 -05:00
Marshall Bowers
8141f4fd86 Format code 2023-12-05 14:17:22 -05:00
Marshall Bowers
e0ca7f844a Merge branch 'main' into pane-toolbar-tabbar-ui 2023-12-05 14:15:18 -05:00
Nate Butler
4c4b235b13 make ci happy
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-12-05 14:09:42 -05:00
Nate Butler
dc7e4a4b17 Remove debugging colors
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-12-05 14:09:29 -05:00
Nate Butler
27703a3279 Update tabs rendering, fix tab spacing bug
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-12-05 14:04:12 -05:00
Max Brunsfeld
7b4b068230 Render chat and notes buttons below the current channel 2023-12-05 10:40:51 -08:00
Federico Dionisi
ceb5d0c69e Dismiss theme_selector on esc 2023-12-05 19:31:20 +01:00
Max Brunsfeld
38d41acf9b Fix rendering of shared screens in collab panel 2023-12-05 10:29:19 -08:00
Antonio Scandurra
d86da04584 WIP 2023-12-05 19:27:15 +01:00
Max Brunsfeld
5e79807f6f Fix tree branch rendering in collab panel 2023-12-05 10:14:40 -08:00
Joseph T. Lyons
a80b145d0d temp 2023-12-05 13:04:53 -05:00
Joseph T. Lyons
ce8bdb354b Merge branch 'main' into feedback-2 2023-12-05 12:49:48 -05:00
Nate Butler
dccdcd3221 Add indicator component
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-12-05 12:41:54 -05:00
Mikayla
8d57d6ca6f Merge branch 'main' into terminal-element 2023-12-05 09:33:46 -08:00
Antonio Scandurra
e534c5fdcd WIP 2023-12-05 18:14:24 +01:00
Nate Butler
eed5a698cf Update tab close button 2023-12-05 11:59:23 -05:00
Piotr Osiewicz
412c6157b1 Port quick_action_bar to zed2
Co-authored-by: Nate <nate@zed.dev>
2023-12-05 17:33:35 +01:00
Nathan Sobo
dffe0ea058 Reintroduce menu-related platform callbacks 2023-12-05 09:23:24 -07:00
Marshall Bowers
2299730538 Fix an issue with the text in the theme selector editor not showing (#3501)
This PR fixes an issues where the text—both placeholder and
user-entered—would not show up in the editor in the theme selector.

It seems to be the min width on the wrapper element that fixes this.

Release Notes:

- N/A
2023-12-05 10:59:15 -05:00
Antonio Scandurra
ede86d9187 WIP 2023-12-05 16:49:36 +01:00
Piotr Osiewicz
c9b50c8bab Add v_stack and h_stack to ui::prelude 2023-12-05 16:48:17 +01:00
Nate Butler
7c5df51d2e Update button sizes 2023-12-05 10:11:18 -05:00
Antonio Scandurra
30725d6a17 Port semantic_index to gpui2 (#3500)
Release Notes:

- N/A
2023-12-05 15:52:38 +01:00
Antonio Scandurra
09db455db2 Port semantic_index to gpui2
Co-Authored-By: Julia Risley <julia@zed.dev>
2023-12-05 15:38:36 +01:00
Kirill Bulatov
c2d3e74ffb Allow opening files without project entries (#3497)
Addresses
https://zed-industries.slack.com/archives/C04S5TU0RSN/p1701428432093989
by allowing to open a buffer without a corresponding project `Entry`.
This means that now, we can remove the "fake worktree" requirement and
open files without creating any (the PR does not do this step yet, but
prepares the code for it).

In addition, the PR fixes glob matching code and adds more tests on
excluded files queries.

Release Notes:

- Fixed search query inclusions/exclusions working incorrectly
- Fixed excluded files being opened via CLI and failing or spoiling
project tree view
2023-12-05 16:33:30 +02:00
Federico Dionisi
62bfa3b452 Fix panic opening the theme selector (#3499)
I noticed a panic when trying to open the theme selector. Removing `Arc`
from `cx.global::<Arc<ThemeRegistry>>()` did the job. Is that the right
way? I'm not sure. 😅

Release Notes:

- N/A
2023-12-05 15:28:48 +01:00
Kirill Bulatov
16b5d4b35c Port to gpui2 2023-12-05 16:13:39 +02:00
Federico Dionisi
20352c51c1 Fix panic opening the theme selector 2023-12-05 15:12:37 +01:00
Nate Butler
f9efaebddf Update icon size 2023-12-05 09:10:16 -05:00
Nate Butler
af72772a72 Expand toolbar tools 2023-12-05 09:02:21 -05:00
Piotr Osiewicz
b73ccc8180 Start out Copilot2;
Add hidden_action_types to CommandPaletteFilter.
WindowContext.available_actions now returns global actions as well.

Co-authored-by: Antonio <antonio@zed.dev>
2023-12-05 14:57:20 +01:00
Piotr Osiewicz
d433da1e70 Editor2 tests (#3486)
Release Notes:

- N/A
2023-12-05 14:52:20 +01:00
Piotr Osiewicz
001ce47a0c Fix up the inlay_hint_cache proper (document the bug around inserting at inlay hint).
Co-authored-by: Antonio <antonio@zed.dev>
Co-authored-by: Kirill <kirill@zed.dev>
2023-12-05 14:10:10 +01:00
Kirill Bulatov
e5616bce98 Fix the test 2023-12-05 12:45:44 +02:00
Kirill Bulatov
92fbdb429c Add project search in gitignored test 2023-12-05 12:45:44 +02:00
Kirill Bulatov
b43dc480a9 Integration tests for excluded files 2023-12-05 12:45:44 +02:00
Kirill Bulatov
2c2c14a360 Fix the regex matcher 2023-12-05 12:45:36 +02:00
Piotr Osiewicz
dffe323e73 Fix up test_lkayout_with_placeholder_text_and_blocks (uncomment last standing assert) 2023-12-05 11:31:17 +01:00
Kirill Bulatov
f0ca7141b8 Ignore excluded files on worktree entry refresh 2023-12-05 12:30:29 +02:00
Kirill Bulatov
1f6c69c7dc Allow opening buffers without a project entry 2023-12-05 12:30:29 +02:00
Piotr Osiewicz
590238bcca test_layout_with_placeholder_text_and_blocks (incomplete, one assert commented out)
We need to wire up a field from element state
2023-12-05 11:28:25 +01:00
Piotr Osiewicz
caa5fccbc4 test_wrapped_invisibles_drawing and test_invisibles_dont_appear_in_certain_editors 2023-12-05 11:11:06 +01:00
Piotr Osiewicz
1dd6625dd4 test_all_invisibles_drawing 2023-12-05 11:09:23 +01:00
Piotr Osiewicz
ee695bbb34 Fix up test_vim_visual_selections 2023-12-05 10:59:09 +01:00
Piotr Osiewicz
9695ea1017 test_shape_line_numbers 2023-12-05 10:29:09 +01:00
Piotr Osiewicz
e0ec5032e9 Fix highlight tests (and a quirky behaviour where the highlights were not dismissed when user clicks on something that's not a brace) 2023-12-05 10:17:27 +01:00
Piotr Osiewicz
948c065f86 test_copilot_multibuffer 2023-12-05 10:17:27 +01:00
Max Brunsfeld
ae6ddceb67 Enable more collab UI features (#3496)
* Current Call section of the collab panel
* Improve the collab titlebar
* Add basic UI for following

Following only partially works, but the UI for following is now in
place.
2023-12-04 18:01:11 -08:00
Max Brunsfeld
eff3a72fb5 Start work on following in zed2
Co-authored-by: Nathan <nathan@zed.dev>
2023-12-04 17:51:53 -08:00
Nate Butler
591dc9d82a Remove double first item border in tabs 2023-12-04 20:13:52 -05:00
Max Brunsfeld
71a1125e88 Allow joining remote projects in zed2
Co-authored-by: Nathan <nathan@zed.dev>
2023-12-04 17:06:08 -08:00
Max Brunsfeld
959b2961ff Revert "Decouple workspace from call (#3380)"
This reverts commit 6da57cbc6e, reversing
changes made to 62b1843704.

Also, adjust new code that was written using the "call handler".
2023-12-04 17:05:44 -08:00
Conrad Irwin
45992b0d63 Fix project panel context menu (#3495)
Release Notes:

- N/A
2023-12-05 00:51:07 +00:00
Conrad Irwin
9162f299a7 Fix project panel context menu 2023-12-05 00:41:00 +00:00
Max Brunsfeld
2c5603032d Allow sharing projects
Co-authored-by: Nathan <nathan@zed.dev>
2023-12-04 15:46:56 -08:00
Max Brunsfeld
63667ecf6f Start bringing back the current call section of the collab panel
Co-authored-by: Nathan <nathan@zed.dev>
2023-12-04 15:46:56 -08:00
Conrad Irwin
13bb16577c action dispatch target (#3494)
- Ensure the candidate keybinding matches the correct context
- Fix context key matching
- I was soooo close
- Dispatch actions on focused node

[[PR Description]]

Release Notes:

- (Added|Fixed|Improved) ...
([#<public_issue_number_if_exists>](https://github.com/zed-industries/community/issues/<public_issue_number_if_exists>)).
2023-12-04 23:43:26 +00:00
Conrad Irwin
1c9b984738 Remove cx param 2023-12-04 23:35:31 +00:00
Nate Butler
7db0a9e105 Draw border under tabs 2023-12-04 18:21:50 -05:00
Nate Butler
fc16e4509a Fix double border 2023-12-04 18:13:28 -05:00
Conrad Irwin
c82fea375d Dispatch actions on focused node
Allows us to implement context menu matching nicely
2023-12-04 22:58:04 +00:00
Nate Butler
5bdaf0e074 Work on light theme, update tab 2023-12-04 17:54:37 -05:00
Marshall Bowers
c10d8a8110 Fix cursor styles not displaying properly (#3493)
This PR fixes an issue where an element with a cursor style set would
not update the cursor when hovering over it.

Previously the cursor style would only appear by interacting with the
element in some way, for instance, by clicking on the element or by
having a `.hover` with some other style being applied.

Release Notes:

- N/A
2023-12-04 16:40:53 -05:00
Conrad Irwin
79773178c8 I was soooo close 2023-12-04 21:37:47 +00:00
Conrad Irwin
2c2e5144c9 Fix context key matching
* You need to check all layers of the context stack
* When in command, the context should be based on where focus was (to
  match `available_actions`.
2023-12-04 21:28:37 +00:00
Julia
059959a4ab Zed2 outline view (#3490)
Release Notes:

- N/A
2023-12-04 15:56:53 -05:00
Marshall Bowers
3627ff87f0 Ensure the candidate keybinding matches the correct context 2023-12-04 15:53:38 -05:00
Julia
9a2fd18425 Avoid panic with outline highlight ranges
Previously we were using a function in `editor` to combine syntax
highlighting and fuzzy match positions, it would operate on the full
text as put into the label. However we now have a method `ranges` on
`StringMatch` itself which operates on just the match text.

The outline view has some pretty specific behavior around path/normal
matches and how they are highlighted. So let's just give the match the
full text before it leaves the search function so it can freely index
2023-12-04 15:37:34 -05:00
Marshall Bowers
4cb4033a36 Merge branch 'main' into editor2_tests 2023-12-04 14:09:23 -05:00
Marshall Bowers
b212aab00d Add support for copying diagnostic messages to the clipboard (#3489)
This PR adds support for copying diagnostics messages to the clipboard.

This was already working, but we were missing implementations
clipboard-related methods in the `TestPlatform` that were causing the
tests to fail when the copying functionality was added.

Release Notes:

- N/A
2023-12-04 14:08:05 -05:00
Nate Butler
584a3a7627 Add temp nightly icon (#3488)
[[PR Description]]

This will get updated – I need to get the template derek used for the
new preview icon. Sorry for the jank in advance.

Release Notes:

- N/A
2023-12-04 12:57:22 -05:00
Nate Butler
63213b5a57 Add temp nightly icon 2023-12-04 12:48:21 -05:00
Marshall Bowers
4a5f703c32 Diagnostics style 2 (#3483)
[[PR Description]]

Merge past diagnostic multibuffer style work + some extras

Release Notes:

- N/A
2023-12-04 12:02:14 -05:00
Piotr Osiewicz
a3e4559b0e Fix git test compilation 2023-12-04 17:57:43 +01:00
Marshall Bowers
26c797c358 Format code 2023-12-04 11:57:10 -05:00
Marshall Bowers
fb352af35c Merge branch 'main' into diagnostics-style-2 2023-12-04 11:56:55 -05:00
Nate Butler
4f4029524f Style Grab Bag (#3487)
[[PR Description]]

- Add pane empty state
- Ensure tab bar doesn't resize when a tab is added
- Make ButtonLike respect the style of a disabled button
- Add additional cursors to gpui2

Release Notes:

- N/A
2023-12-04 11:55:26 -05:00
Nate Butler
e928ed44a0 Mark copy button as incomplete
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-12-04 11:53:46 -05:00
Nate Butler
23626aa902 Update diagnostic style
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-12-04 11:50:26 -05:00
Julia
5ab6874ae9 zed2: Port outline view 2023-12-04 11:44:32 -05:00
Nate Butler
4ee4e4e8d8 Fix ci error – Copy to clipboard isn't implemented in tests
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-12-04 11:41:31 -05:00
Nate Butler
7a0aa1e5df Clean up ButtonLike
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-12-04 11:32:25 -05:00
Nate Butler
b6ed3b258c Remove debug
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-12-04 11:32:14 -05:00
Nate Butler
50fe683305 Fix typos
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-12-04 11:28:22 -05:00
Piotr Osiewicz
b5924d6b11 Add simulate_window_resize.
Fixes up tests for movement in editor/scrolling.

Co-authored-by: Antonio <antonio@zed.dev>
2023-12-04 17:27:48 +01:00
Nate Butler
80ae640060 Add additional cursors to gpui2
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-12-04 11:20:41 -05:00
Nate Butler
0af0c5549c Update toolbar left tool group 2023-12-04 11:14:59 -05:00
Piotr Osiewicz
68d309e79c Fix disparity between editor2 and edito1 wrt copilot completions.
Fixes test test_copilot.

Co-authored-by: Antonio <antonio@zed.dev>
2023-12-04 16:39:40 +01:00
Piotr Osiewicz
fd2f1c2594 Fix up copilot2 test
Co-authored-by: Antonio <antonio@zed.dev>
2023-12-04 16:26:34 +01:00
Piotr Osiewicz
2108ddf621 Defer activating Subscriptions that are invoked as a part of an effect.
Fixes test test_edit_events.

Co-authored-by: Antonio <antonio@zed.dev>
2023-12-04 16:17:33 +01:00
Julia
ee23fa43dc Disable instance handshake in dev builds (#3485)
It feels like every week or two someone hits this and is confused about
why the app isn't launch, been meaning to disable this in dev builds for
a while. This does mean that it'll be possible to hit the local DB lock
panic in a dev build if you run it multiple times but that is so rare
that it seems preferable

Release Notes:

- N/A
2023-12-04 09:43:24 -05:00
Nate Butler
118c9b5fe8 Ensure disabled buttons don't have interaction styles 2023-12-04 09:37:56 -05:00
Piotr Osiewicz
b9a917f42a Fix up condition not checking the condition at the start.
Co-authored-by: Antonio <antonio@zed.dev>
2023-12-04 15:31:35 +01:00
Nate Butler
7dc22fef24 Prevent tab bar from growing in height when a tab is added 2023-12-04 09:24:08 -05:00
Piotr Osiewicz
24b08921fe Revert "fix display map tests"
This reverts commit 0f7fc8c1a0.
2023-12-04 15:22:29 +01:00
Julia
dfe4fc4d0a Disable instance handshake in dev builds 2023-12-04 09:16:04 -05:00
Nate Butler
11c16258eb Update empty pane state 2023-12-04 09:13:00 -05:00
Piotr Osiewicz
ff734d494f uncomment and augment mouse_context_menu tests 2023-12-04 15:06:56 +01:00
Piotr Osiewicz
3b1a0652ae inlay hints: Relax the test condition.
We've investigated another spurious failure, this time with test_multiple_excerpts_large_multibuffer; sadly it didn't really get us anywhere, so for now we're relaxing an assert.

Co-authored-by: Kirill <kirill@zed.dev>
2023-12-04 14:50:10 +01:00
Piotr Osiewicz
b3e741b397 Fix up test_highlighted_ranges
Returned highlights were okay, but the test was trying to normalize the output by sorting the highlights by color. The ordering is different between gpui1 Color and gpui2 Hsla.
2023-12-04 13:47:50 +01:00
Piotr Osiewicz
1a5f6f604b Uncomment & fix up test_transpose 2023-12-04 13:42:48 +01:00
Piotr Osiewicz
0f7fc8c1a0 fix display map tests
These tests failed due to an indefinite hang in buffer.condition in the following code:
\`\`\`rust
    let buffer = cx
        .add_model(|cx| Buffer::new(0, cx.model_id() as u64, text).with_language(language, cx));
    buffer.condition(cx, |buf, _| !buf.is_parsing()).await;
`\`\`
In both gpui1 and gpui2 \`.with_language\` spawns a task that notifies the context once it's done. The \`condition\` waits for notifications to be raised. The gist of the problem was that in gpui2, the spawned task was scheduled straight away, so we never really saw the notification with \`condition\`, causing us to wait indefinitely. This is probably a difference in test between schedulers in gpui1 and gpui2, but I kind of sidestepped the issue by spawning a condition before firing off a parsing task with \`set_language\`.
2023-12-04 13:14:03 +01:00
Piotr Osiewicz
9ffe78d264 Fix up random wrap map test 2023-12-04 12:10:01 +01:00
Kirill Bulatov
45230dcaf3 Log project path that was no open due to no project entry found 2023-12-04 12:45:57 +02:00
Conrad Irwin
aa3c9b8568 In-flight entertainment (#3484)
- +language_selector2
- Language Selector 2 working!
- Prevent languages showing in wrong order first
- copilot_menu2 (though only tested offling, which is insufficient)
- Dismiss tooltips at capture
- Get ChannelModal opening

[[PR Description]]

Release Notes:

-  N/A
2023-12-03 13:06:29 -07:00
Conrad Irwin
859f2d2862 Get ChannelModal opening 2023-12-02 00:57:41 -07:00
Conrad Irwin
63b65b2b2e Dismiss tooltips at capture
(Otherwise they stay open when you hover over the editor, which
stops mouse move events propagating)
2023-12-01 23:51:06 -07:00
Conrad Irwin
1da18ebe9a copilot_menu2 (though only tested offling, which is insufficient) 2023-12-01 23:43:02 -07:00
Conrad Irwin
6426997abb Prevent languages showing in wrong order first 2023-12-01 21:26:23 -07:00
Conrad Irwin
6a5b5f022d Language Selector 2 working! 2023-12-01 21:23:20 -07:00
Conrad Irwin
2de6758443 +language_selector2 2023-12-01 21:23:20 -07:00
Mikayla
fe83919746 Get terminal turning on 2023-12-01 17:01:57 -08:00
Mikayla
6730ff3624 Merge branch 'main' into terminal-element 2023-12-01 16:21:38 -08:00
Mikayla
b0f9144167 Compiling layout!
co-authored-by: Max <max@zed.dev>
2023-12-01 16:21:12 -08:00
Nathan Sobo
0edd89a92f Bind CloseWindow and Open actions on workspace
Co-Authored-By: Max <max@zed.dev>
2023-12-01 16:17:48 -07:00
Nathan Sobo
6f7995c150 Enable workspace::Open global action 2023-12-01 16:08:57 -07:00
Nathan Sobo
379ba620b2 Move workspace bindings to workspace context
Without this, hitting cmd-n on the context menu in the project browser
invokes the workspace::NewFile action instead of the project::NewFile
action. We're considering changing the behavior so that bindings with no
context can only invoke global actions.

Co-Authored-By: Max <max@zed.dev>
2023-12-01 15:59:40 -07:00
Nate Butler
2bf48872b6 Progress on diagnostic multibuffer
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-12-01 16:53:09 -05:00
Nate Butler
03ebf0a5a9 Implement FixedWidth for all button types
[no-ci]

Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-12-01 16:20:39 -05:00
Max Brunsfeld
26ae31b503 Bump RPC protocol version in zed2 to match zed1 (#3482) 2023-12-01 13:14:49 -08:00
Max Brunsfeld
6b0457c52f Bump RPC protocol version in zed2 to match zed1 2023-12-01 13:08:45 -08:00
Piotr Osiewicz
d81fb3680e Uncomment copilot2 tests 2023-12-01 22:04:43 +01:00
Max Brunsfeld
d788bf3f1e Fix retrieval of app version in auto_update2 (#3481)
With this fix, auto-updates should work on nightly.
2023-12-01 12:59:02 -08:00
Nate Butler
c07455efa7 Update path header style
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-12-01 15:53:17 -05:00
Max Brunsfeld
d85db44552 Fix retrieval of app version in auto_update2 2023-12-01 12:52:26 -08:00
Nate Butler
89aa6a3726 Re-add diagnostic headers 2023-12-01 15:30:01 -05:00
Nate Butler
f5679f98d6 Update diagnostics style 2023-12-01 14:52:17 -05:00
Piotr Osiewicz
be509a5ce0 test_clipboard 2023-12-01 20:50:30 +01:00
Max Brunsfeld
5dd9db3607 collab 0.29.1 2023-12-01 11:50:05 -08:00
Max Brunsfeld
aace0d816d Prevent moving a channel into its descendant (#3480)
This fixes a bug where it was possible to put the channel tree into a
bad state by accidentally dragging a channel into itself or one of its
descendants.
2023-12-01 11:47:39 -08:00
Max Brunsfeld
4479628342 Prevent moving a channel into its descendant 2023-12-01 11:41:38 -08:00
Piotr Osiewicz
0a1765b01f test_following_with_multiple_excerpts (passes) 2023-12-01 20:32:12 +01:00
Marshall Bowers
c3e7732eab Add support for optional icon to Button (#3479)
This PR extends `Button` with support for an optional icon to be
displayed next to the label.

As part of this, the functionality for displaying an icon within a
button has been factored out into an internal `ButtonIcon` component.
`ButtonIcon` is now used by both `IconButton` and `Button` to
encapsulate the concerns of an icon that is rendered within a button.

Release Notes:

- N/A
2023-12-01 14:30:38 -05:00
Piotr Osiewicz
a985b7aab4 test_following (passes :)) 2023-12-01 20:25:47 +01:00
Piotr Osiewicz
20ae58eddd Bunch of new tests 2023-12-01 20:23:34 +01:00
Piotr Osiewicz
9408eecb6e test_navigation_history (pass) 2023-12-01 20:17:41 +01:00
Piotr Osiewicz
2ab84b81da test_edit_events 2023-12-01 20:16:40 +01:00
Piotr Osiewicz
e821e1fc35 Display map tests (3 flaky tests for chunks) 2023-12-01 20:14:14 +01:00
Piotr Osiewicz
237efc841e Another batch of tests 2023-12-01 19:39:53 +01:00
Marshall Bowers
4b23c5c658 Add selected_label to Button (#3478)
This PR adds a new `selected_label` method to `Button`.

This can be used to set a different label that should be rendered when
the `Button` is selected.

Release Notes:

- N/A
2023-12-01 13:29:11 -05:00
Piotr Osiewicz
1c52b936bc Uncomment flaky tests 2023-12-01 19:21:30 +01:00
Marshall Bowers
4f507756d6 Add selected_icon to IconButton (#3477)
This PR adds a new `selected_icon` method to `IconButton`.

This can be used to set a different icon that should be rendered when
the `IconButton` is selected.

Release Notes:

- N/A
2023-12-01 13:17:32 -05:00
Marshall Bowers
12b58f5b60 Add selected_icon to IconButton 2023-12-01 13:10:53 -05:00
Marshall Bowers
f09d9ef723 Clean up some ButtonLike doc comments 2023-12-01 13:09:35 -05:00
Julia
be5eb3e3b5 Zed2 breadcrumbs & tab bar context menus & pane focus events (#3475)
See title

Release Notes:

- N/A
2023-12-01 12:53:15 -05:00
Piotr Osiewicz
53f3f960d2 Another batch of tests 2023-12-01 18:43:44 +01:00
Julia
6f9e08ceea Merge branch 'main' into zed2-breadcrumbs 2023-12-01 12:28:36 -05:00
Nate Butler
85d72f63c1 Add Tinted button style placeholder and document ButtonLike (#3476)
- Adds a placeholder `ButtonStyle::Tinted`.
  - Note: Using this now will just give you a block of `gpui::red()`
- Documents ButtonLike and ButtonStyle to hopefully help make choosing a
button style easier.

Release Notes:

- N/A
2023-12-01 12:18:35 -05:00
Piotr Osiewicz
4c4ec221af Uncomment a bunch of tests in the editor 2023-12-01 18:11:27 +01:00
Julia
910aeb4f56 I'm a dunce 2023-12-01 11:47:04 -05:00
Nate Butler
0d33f01fa4 Collab UI Refinement - Part 1 (#3460)
[[PR Description]]

Still WIP, merging this to get menu changes in.

Release Notes:

- N/A
2023-12-01 11:42:31 -05:00
Piotr Osiewicz
e0ccaa60ff editor tests: Reintroduce block_on_ticks.
Co-authored-by: Antonio <antonio@zed.dev>
2023-12-01 17:24:47 +01:00
Piotr Osiewicz
a40a5fb212 Revert "editor tests: Reintroduce block_on_ticks."
This reverts commit aed11ee8cb.
2023-12-01 17:24:20 +01:00
Piotr Osiewicz
aed11ee8cb editor tests: Reintroduce block_on_ticks.
Co-authored-by: Antonio <antonio@zed.dev>
2023-12-01 17:22:12 +01:00
Julia
13f4cc563c Merge branch 'main' into zed2-breadcrumbs 2023-12-01 11:02:34 -05:00
Nate Butler
ab75dbe7af Update collab_titlebar_item.rs 2023-12-01 10:52:11 -05:00
Nate Butler
88188b0c30 Merge branch 'main' into collab-ui-refinement 2023-12-01 10:50:25 -05:00
Julia
ce16e5b54a Unbreak toolbar layout & improve disabling ButtonLike 2023-12-01 10:33:44 -05:00
Antonio Scandurra
134f3eb79f Add mouse context menu to editor2 (#3473)
We observed some weird behavior in `ContextMenu`, specifically:

- It seems like we don't intercept actions that have been dispatched,
which causes the context menu to stay open.
- The key bindings for editor actions in the context menu seem to come
from Vim

Release Notes:

- N/A
2023-12-01 16:25:07 +01:00
Antonio Scandurra
5fefc121bf Add mouse context menu to editor2
Co-Authored-By: Piotr <piotr@zed.dev>
2023-12-01 16:01:56 +01:00
Antonio Scandurra
9fedb4c7ee Get editor2 mostly to feature-parity with editor (#3472)
The only missing piece is the context menu, which I'll work on next.

Release Notes:

- N/A
2023-12-01 14:44:56 +01:00
Antonio Scandurra
f0c205be5d Respond to modifiers changed event in editor2 and set cursor 2023-12-01 14:26:49 +01:00
Antonio Scandurra
f0bc4a04bd Uncomment git gutter painting 2023-12-01 13:45:14 +01:00
Antonio Scandurra
1abc876c15 Merge remote-tracking branch 'origin/main' into no-more-todos-in-editor
# Conflicts:
#	crates/editor2/src/items.rs
2023-12-01 12:40:48 +01:00
Antonio Scandurra
8e4f2fb25a Remove all todos in Editor's Item implementation 2023-12-01 12:32:30 +01:00
Antonio Scandurra
faa896343b Register NewFile and NewFileInDirection from Editor 2023-12-01 12:11:54 +01:00
Antonio Scandurra
a8a5785ec5 Re-enable opening excerpts in Editor 2023-12-01 12:03:21 +01:00
Antonio Scandurra
c9be637b6b Re-introduce auto-height in editor2 (#3471)
Release Notes:

- N/A
2023-12-01 12:02:45 +01:00
Antonio Scandurra
0b7e324d86 🔥 2023-12-01 11:53:47 +01:00
Antonio Scandurra
8c59a2d2c0 Delete commented out code for editor element 2023-12-01 11:52:40 +01:00
Antonio Scandurra
21d3ae603d Remove stray dbg statements 2023-12-01 11:49:25 +01:00
Antonio Scandurra
1b07fd6a70 Fix edits not being reported when rewrapping 2023-12-01 11:48:21 +01:00
Joseph T. Lyons
a75f1a4a95 Close feedback modal when clicking cancel 2023-11-30 22:07:10 -05:00
Joseph T. Lyons
eef6c3729e Fix bug preventing spaces from being used in filename (#3454)
This bug was my fault, something I changed months ago to be more
consistent with VS Code - really strange that it took months for someone
to find out spaces couldn't be used in the project panel.

~I didn't apply this fix to zed2 because I dont think the facilities are
in place to do so (@maxbrunsfeld, @mikayla-maki, is there a system in
place for this that I missed?). I did leave a TODO.~

Fix is now in zed 2.

Release Notes:

- Fixed a bug where spaces could not be inserted when editing file names
in the project panel
([#2308](https://github.com/zed-industries/community/issues/2308)).
2023-11-30 21:44:48 -05:00
Joseph T. Lyons
9849a0a6d8 Move project panel's dispatch_context() to render() 2023-11-30 21:37:41 -05:00
Marshall Bowers
6d62e6c562 Respect label_color for Buttons (#3469)
This PR makes `Button`s respect the `label_color` that is specified,
provided they are not disabled or selected.

Release Notes:

- N/A
2023-11-30 20:36:59 -05:00
Conrad Irwin
0441b4805a Show cursor position in status bar (#3464)
Passes the compiler so it must work!

(though it doesn't show up until we fix pane focus)

Release Notes:

- N/A
2023-11-30 16:40:42 -07:00
Conrad Irwin
e1c8369b3d Rename menu_handle to right_click_menu and child to trigger
This makes things more in-line with `popover_menu`.
2023-11-30 16:39:43 -07:00
Max Brunsfeld
4f74d65d0c Restore some workspace functionality, enable workspace tests (#3468)
* Pane history navigation
* Autosave on focus change
* Setting the window title based on the active path
2023-11-30 15:26:44 -08:00
Conrad Irwin
ebbbeca9a6 Flesh out a popover control 2023-11-30 16:13:44 -07:00
Max Brunsfeld
cb11c1282c Re-introduce active path tracking in workspace 2023-11-30 14:58:14 -08:00
Max Brunsfeld
a003a91212 Restore auto-save on focus change, re-enable workspace tests 2023-11-30 14:45:27 -08:00
Nate Butler
bac39e85a8 Add some text to clarify no api key state (#3462)
This PR is a quick-and-dirty approach to clarify what is happening when
a user doesn't have an API key so the assistant opens with the key
editor.

- Adds some text explaining how to close the panel
- Explains that other subscriptions don't cover the assistant, it needs
an api key.
- Helps people understand where to go to get an API key.

This is a Zed 1 change only, a bandaid. Zed 2 will have a better
solution: [Working
issue](https://github.com/zed-industries/zed/issues/3461)

Release Notes:

- N/A
2023-11-30 17:26:50 -05:00
Nate Butler
e228422f14 Update feedback modal UI
Co-Authored-By: Joseph T. Lyons <19867440+JosephTLyons@users.noreply.github.com>
2023-11-30 16:42:58 -05:00
Nate Butler
8b7be8f614 Get feedback2 compiling
Co-Authored-By: Joseph T. Lyons <19867440+JosephTLyons@users.noreply.github.com>
Co-Authored-By: Conrad Irwin <conrad.irwin@gmail.com>
2023-11-30 16:07:54 -05:00
Marshall Bowers
e5a5b1e84c Rework ListHeader to be more open (#3467)
This PR reworks the `ListHeader` component to be more open.

The `meta` method can now be used to append meta items of any element to
the `ListHeader`, and they will be rendered with the appropriate spacing
between them.

Release Notes:

- N/A
2023-11-30 15:55:31 -05:00
Nate Butler
5098fafa02 Add v_stack and h_stack to the UI prelude
Co-Authored-By: Joseph T. Lyons <19867440+JosephTLyons@users.noreply.github.com>
Co-Authored-By: Conrad Irwin <conrad.irwin@gmail.com>
2023-11-30 15:28:18 -05:00
Nate Butler
f987a640fd init feedback2
Co-Authored-By: Joseph T. Lyons <19867440+JosephTLyons@users.noreply.github.com>
Co-Authored-By: Conrad Irwin <conrad.irwin@gmail.com>
2023-11-30 15:23:42 -05:00
Max Brunsfeld
c63ca09eed Reintroduce pane navigation history in zed2 2023-11-30 12:10:25 -08:00
Nate Butler
164084c61c Update collab_titlebar_item.rs 2023-11-30 14:55:59 -05:00
Nate Butler
180ba42456 WIP update popover_menu 2023-11-30 14:54:44 -05:00
Max Brunsfeld
bd6fa66a7c Bump Tree-sitter to fix another crash triggered by a markdown file (#3466)
Bumps Tree-sitter for
https://github.com/tree-sitter/tree-sitter/pull/2802

This fixes a regression introduced in the last Tree-sitter upgrade.

Release Notes:

- Fixed a crash that occurred when editing certain Markdown files.
2023-11-30 11:46:00 -08:00
Max Brunsfeld
16dc978bb4 Bump Tree-sitter for a crash fix 2023-11-30 11:36:36 -08:00
Joseph T. Lyons
f922ad9f7f Fix bug preventing spaces from being used in filename (zed2)
Co-Authored-By: Mikayla Maki <mikayla.c.maki@gmail.com>
2023-11-30 14:24:00 -05:00
Mikayla
39887be7d0 WIP: layout compiling 2023-11-30 11:01:36 -08:00
Julia
d516ae0d8a Pane context menus & focus shenanigans
Co-Authored-By: Conrad Irwin <conrad@zed.dev>
2023-11-30 14:01:09 -05:00
Marshall Bowers
3ffcb97da2 Implement Selectable for list components (#3465)
This PR implements the `Selectable` trait for the `ListItem` and
`ListHeader` components.

These components already had their own selectable behavior, but weren't
formally adhering to the interface defined by the trait.

Release Notes:

- N/A
2023-11-30 13:37:29 -05:00
Marshall Bowers
e78538e162 Implement Selectable for ListItem and ListHeader 2023-11-30 13:26:12 -05:00
Marshall Bowers
865baaa1a1 Remove unused GraphicSlot enum 2023-11-30 13:25:26 -05:00
Nate Butler
5fdfdb046c Remove unused import 2023-11-30 13:13:22 -05:00
Nate Butler
5eb89781e3 Clean up left side titlebar buttons 2023-11-30 13:11:20 -05:00
Mikayla Maki
b34b197d89 Update main.rs 2023-11-30 10:06:08 -08:00
Nate Butler
679851e349 Add render_project_name and render_project_branch
Co-Authored-By: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
2023-11-30 12:51:55 -05:00
Nate Butler
8d4652a4db Scaffold out render_project_owner
Co-Authored-By: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
2023-11-30 12:41:17 -05:00
Julia
21dfe58ad9 Missing return 2023-11-30 12:23:55 -05:00
Conrad Irwin
75afb65b26 Show cursor position in status bar 2023-11-30 10:16:24 -07:00
Marshall Bowers
0a8a84f656 Rename button-related enums (#3463)
This PR renames the `ButtonStyle2` and `ButtonSize2` enums to
`ButtonStyle` and `ButtonSize`, respectively.

Release Notes:

- N/A
2023-11-30 12:04:23 -05:00
Antonio Scandurra
0e1597d385 WIP 2023-11-30 18:00:41 +01:00
Julia
428c517693 Merge branch 'main' into zed2-breadcrumbs 2023-11-30 11:38:29 -05:00
Nate Butler
81098312ef Add some text to clarify no api key state
Co-Authored-By: Joseph T. Lyons <19867440+JosephTLyons@users.noreply.github.com>
2023-11-30 11:20:51 -05:00
Antonio Scandurra
5243401afa Pass a WindowContext in request_measured_layout
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-11-30 17:12:40 +01:00
Julia
591299b4c7 Start getting pane focus code ported 2023-11-30 10:47:28 -05:00
Antonio Scandurra
d9b8c07b1e Lift Send and Sync restriction for measurements 2023-11-30 16:37:57 +01:00
Nate Butler
e20309f560 Update collab_titlebar_item.rs
[no ci]
2023-11-30 09:44:33 -05:00
Nate Butler
daf6201deb Start plugging selected states into collab ui 2023-11-30 09:35:37 -05:00
Kirill Bulatov
b64fe04803 Trim file_finder input queries (#3459)
Addresses a small bit of influencer's feedback

Release Notes:

- Fixed file finder query's whitespaces not being trimmed
2023-11-30 16:22:14 +02:00
Nate Butler
82b3efa16c Update collab button styles 2023-11-30 09:12:39 -05:00
Kirill Bulatov
cdae8ebd06 Exclude gitignored files' diagnostics from project panel and its indicator. (#3458)
Based on influencer's feedback.

The diagnostics are collected and available still, since that might
become a settings/UI toggle later.
Also, buffer diagnostics are still updated for gitignored files.

Release Notes:

- Excluded gitignored files' diagnostics from project panel and its
indicator.
2023-11-30 16:06:16 +02:00
Kirill Bulatov
1b39916438 Trim file_finder input queries 2023-11-30 16:05:45 +02:00
Kirill Bulatov
091d93533d Port to gpui2 2023-11-30 15:46:35 +02:00
Kirill Bulatov
69bfd47cf9 Exclude gitignored files' diagnostics from project panel and its indicator.
The diagnostics are collected and available still, since that might become a settings/UI toggle later.
Also, buffer diagnostics are still updated for gitignored files.
2023-11-30 15:46:30 +02:00
Kirill Bulatov
7b76db4b50 Fix TypeScript diagnostics (#3457)
Deals with https://github.com/zed-industries/community/issues/2124

* sends more ClientCapabilities LSP data, diagnostics capabilities in
particular: those are now required by typescript-language-server LSP to
start publishing diagnostics
* sends more parameters during eslint workspace initialization, so it is
able to correctly look up project's typescript config
Presumably, it's not enough and some convoluted project set ups may
break still, but let's wait for examples and feedback.

Release Notes:

- Fixed typescript-language-server diagnostics not appearing for newer
server versions; fixed eslint diagnostics using wrong directory for
typescript config lookup
2023-11-30 13:25:25 +02:00
Antonio Scandurra
74a5ae5633 Re-introduce screen-sharing in zed2 (#3456)
Release Notes:

- N/A
2023-11-30 12:14:11 +01:00
Antonio Scandurra
fac029b808 Fix errors in theme2 2023-11-30 12:08:00 +01:00
Kirill Bulatov
f052329a6b Port to gpui2 2023-11-30 13:07:47 +02:00
Antonio Scandurra
d2c1897385 Fix error in tests 2023-11-30 11:45:10 +01:00
Kirill Bulatov
14993e0876 Declare more supported client capabilities 2023-11-30 12:22:23 +02:00
Antonio Scandurra
624ea58f2e Polish screen sharing 2023-11-30 11:22:01 +01:00
Antonio Scandurra
cc0bc444b1 Merge remote-tracking branch 'origin/main' into surfaces
# Conflicts:
#	crates/ui2/src/components/avatar.rs
2023-11-30 10:48:20 +01:00
Kirill Bulatov
f9cd45269a Fix eslint diagnostics by passing worktree root during workspace init 2023-11-30 11:38:16 +02:00
Conrad Irwin
02174084ca Collab panel2: Now with scrolling and keyboard (#3455)
Also introducing: .track_scroll() for non-uniform lists.

Release Notes:

- N/A
2023-11-30 00:13:52 -07:00
Conrad Irwin
90b8acfb34 Allow toggling subchannel visiblity without joining channel 2023-11-29 23:55:14 -07:00
Conrad Irwin
4fbbb28da2 Restore logical offset preservation behaviour 2023-11-29 23:51:31 -07:00
Conrad Irwin
54cfcef0aa Keybaord shortcut context menu 2023-11-29 23:04:33 -07:00
Conrad Irwin
a37f86f294 Scroll the collab panel when keyboard focusing 2023-11-29 22:39:15 -07:00
Nate Butler
92d2048aa4 WIP 2023-11-30 00:28:05 -05:00
Conrad Irwin
8638fc4149 Add a ScrollHandle to gpui2 for the collab panel 2023-11-29 22:20:06 -07:00
Conrad Irwin
012543052b Add filtering support 2023-11-29 20:58:15 -07:00
Joseph T. Lyons
1a1451a943 Fix bug preventing spaces from being used in filename 2023-11-29 22:04:41 -05:00
Max Brunsfeld
b4a5701e12 Implement activity indicator in zed2 (#3453)
No more hard-coded "Checking..."
2023-11-29 17:25:12 -08:00
Max Brunsfeld
e49325080c Implement activity indicator in zed2 2023-11-29 17:18:21 -08:00
Max Brunsfeld
c95a7c7387 Address some TODOs in editor2 crate (#3445)
* Fix crash when jumping to definition
* Enabling resolution of completions
* Make links in interactive text clickable
* Enable code paths that use `select_anchors`
2023-11-29 16:32:02 -08:00
Marshall Bowers
bda1dc7721 Use ButtonLike for breadcrumb (#3452)
This PR updates the (placeholder) breadcrumb to use the new `ButtonLike`
component.

Eventually this will need custom styling (e.g., syntax highlighting for
the symbol children), which is why we're using a `ButtonLike` as opposed
to a regular `Button`.

Release Notes:

- N/A
2023-11-29 19:21:34 -05:00
Marshall Bowers
9d53287341 Implement Selectable for buttons (#3451)
This PR implements the `Selectable` trait for `ButtonLike`, `Button`,
and `IconButton`.

Release Notes:

- N/A
2023-11-29 18:46:41 -05:00
Conrad Irwin
481e42ade9 collab panel2 (#3447)
[[PR Description]]

Release Notes:

- N/A
2023-11-29 16:38:35 -07:00
Max Brunsfeld
27a6761afc Fix crash when jumping to a definition in the same buffer 2023-11-29 15:36:22 -08:00
Conrad Irwin
4c27f4453c Merge branch 'main' into collab-panel2 2023-11-29 16:32:25 -07:00
Marshall Bowers
04bbd107c1 Fix the selected state for the panel icons in the status bar (#3450)
This PR fixes a bug where the selected state for the panel icons in the
status bar was not correctly reflecting whether the panel was open.

It was erroneously using the `is_open` state for the context menu.

Release Notes:

- N/A
2023-11-29 18:20:08 -05:00
Marshall Bowers
b357ae4dc3 Add new Button and IconButton components (#3448)
This PR adds new `Button` and `IconButton` components built on top of
our new button abstractions.

Both of these buttons are built from the common `ButtonLike` base, and
implement the `ButtonCommon` (name TBD) trait in order to provide a
common interface.

There are still some visual tweaks that we'll need to make to the new
buttons, but those should be straightforward to make after we land this.

Release Notes:

- N/A
2023-11-29 17:41:44 -05:00
Conrad Irwin
cd60d466b1 Merge branch 'main' into collab-panel2 2023-11-29 15:40:16 -07:00
Conrad Irwin
0eef4d03ed Scrollyscrolly 2023-11-29 15:30:50 -07:00
Max Brunsfeld
0b8f9067ff Implement highlighting of go-to-definition links 2023-11-29 14:30:31 -08:00
Conrad Irwin
4f040208c6 Fix mouse interaction on contact subsections 2023-11-29 15:26:19 -07:00
Max Brunsfeld
9451bd605d Implement completion-resolution in editor2
Enable the completion tests in editor2.
2023-11-29 14:20:47 -08:00
Conrad Irwin
3bdd51cb2a Availability indicators 2023-11-29 15:06:58 -07:00
Conrad Irwin
4ebae4d8bd Make LeftSlot take an element 2023-11-29 14:20:26 -07:00
Marshall Bowers
df5de47a78 Make toggle method accept impl Into<Option<bool>> (#3446)
This PR makes the `toggle` method on the various list components accept
an `impl Into<Option<bool>>` instead of just an `Option<bool>`.

This allows a caller with just a `bool` avoid having to wrap the
`Option` themselves.

Release Notes:

- N/A
2023-11-29 16:13:41 -05:00
Max Brunsfeld
2bd428102b Use pointer cursor style for clickable ranges in InteractiveText 2023-11-29 12:42:09 -08:00
Max Brunsfeld
fc2251e7ed Implement SelectionsCollection::select_anchor_ranges 2023-11-29 12:41:22 -08:00
Conrad Irwin
fb377aed73 Context menu, Dragon Drop, for collab panel (#3441)
Release Notes:

- N/A
2023-11-29 13:40:46 -07:00
Marshall Bowers
d8ed7c0721 Move GraphicSlot out of components module (#3444)
This PR moves the `GraphicSlot` definition out of the `components`
module, as it doesn't contain a component.

Release Notes:

- N/A
2023-11-29 15:29:33 -05:00
Conrad Irwin
6ab3825ab1 No moar toggleable 2023-11-29 13:25:29 -07:00
Conrad Irwin
87cf0cf5ac Merge branch 'main' into collab-panel2 2023-11-29 13:09:57 -07:00
Nate Butler
0d31722589 Style hover popover (#3443)
[[PR Description]]

This PR styles the hover popover, and sets it on the [second elevation
level](https://zed-docs.vercel.app/doc/ui2/trait.StyledExt.html#method.elevation_2).

![CleanShot 2023-11-29 at 14 55
55@2x](https://github.com/zed-industries/zed/assets/1714999/01589b2a-d6e2-4baa-ba5d-050f06cf2c58)


Release Notes:

- N/A
2023-11-29 15:07:46 -05:00
Nate Butler
3c05d57e6a Style hover popover 2023-11-29 14:56:23 -05:00
Marshall Bowers
509504d4d2 Rework Disclosure component (#3442)
This PR reworks the `Disclosure` component.

The primary goal here was to remove the illegal state where a
`Disclosure` is rendered with a `Toggle::NotToggleable` state, as the
`Disclosure` shouldn't exist at all in this case.

Release Notes:

- N/A
2023-11-29 14:46:39 -05:00
Conrad Irwin
139708d486 Merge branch 'main' into collab-panel2 2023-11-29 12:37:29 -07:00
Conrad Irwin
7e5aa5ce77 More drag'n'drop fixes
Co-Authored-By: Max <max@zed.dev>
2023-11-29 12:35:25 -07:00
Marshall Bowers
e77846d2dc Rework Toggle into Toggleable and ToggleState 2023-11-29 14:33:52 -05:00
Conrad Irwin
e377bd805b Add channel drag'n'drop
Co-Authored-By: Max <max@zed.dev>
2023-11-29 12:24:04 -07:00
Marshall Bowers
6f5cc0af94 Rework Disclosure component 2023-11-29 14:07:48 -05:00
Marshall Bowers
e99fa77bda Reorganize list components (#3440)
This PR reorganizes the list components so that each of the sub
components lives in its own file.

### Motivation

I've seen a number of folks have trouble finding the `ListItem`
definition while pairing, so having it in its own file seems more
self-explanatory.

Release Notes:

- N/A
2023-11-29 13:45:59 -05:00
Conrad Irwin
41e7653906 Channel Context Menu 2023-11-29 11:39:26 -07:00
Marshall Bowers
c7b79c9aef Remove unnecessary constructor and Clone derives 2023-11-29 13:38:05 -05:00
Marshall Bowers
390b0d8d56 Reorganize list components 2023-11-29 13:34:50 -05:00
Conrad Irwin
ee260a5e24 Progress 2023-11-29 11:06:24 -07:00
Max Brunsfeld
960ef7116d Add a context menu to the project panel (#3393)
This PR adds a context menu to the project panel in Zed2.

* [x] Allow the context menu to extend outside of the project panel's
bounds
* [x] Add keyboard shortcuts to the context menu
* [x] Dismiss the context menu
    * [x] when running an action
    * [x] when changing selection in the project panel

Release Notes:

NA
2023-11-29 10:04:41 -08:00
Marshall Bowers
3e2c517dd1 Add Disableable trait (#3439)
This PR adds a new `Disableable` trait to use for elements that are
capable of being disabled.

Release Notes:

- N/A
2023-11-29 13:01:26 -05:00
Max Brunsfeld
dbfc7d3555 Merge branch 'main' into project-panel-context-menu 2023-11-29 09:45:31 -08:00
Conrad Irwin
c23a610d52 Move padding on uniform list inside the scrollable area (#3437)
Release Notes:

- N/A
2023-11-29 10:43:04 -07:00
Max Brunsfeld
233aac5573 Make DismissEvent a unit struct
Co-authored-by: Conrad <conrad@zed.dev>
2023-11-29 09:42:54 -08:00
Marshall Bowers
043cef89eb Remove unneeded wrapping divs in ListItem left content (#3438)
This PR removes some unneeded wrapping `div`s around the left content in
`ListItem`s.

Release Notes:

- N/A
2023-11-29 12:40:35 -05:00
Max Brunsfeld
ac34229118 Add keyboard control over context menus
Co-authored-by: Conrad <conrad@zed.dev>
2023-11-29 09:39:20 -08:00
Marshall Bowers
912c30c05b Remove unneeded .clones 2023-11-29 12:35:39 -05:00
Marshall Bowers
97e6fd295a Remove unneeded wrapping divs in ListItem left content 2023-11-29 12:29:48 -05:00
Nate Butler
a8bf0834e6 Button2 – Part1 (#3420)
## TODO

- [x] Remove `InteractionState`
- [ ] `Selectable` should use `Selection` instead of a boolean
- [x] Clean out ui2 prelude
- [ ] Build out button2 button types
- [ ] Port old buttons

Release Notes:

- N/A

---------

Co-authored-by: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-11-29 12:23:09 -05:00
Antonio Scandurra
a4035f15af WIP 2023-11-29 18:18:15 +01:00
Conrad Irwin
35481e2c79 Move padding on uniform list inside the scrollable area 2023-11-29 10:05:31 -07:00
Conrad Irwin
5d59108b97 Inviting/Responding/Creating Channels... etc. (#3433)
Release Notes:

- n/a
2023-11-29 09:29:25 -07:00
Joseph T. Lyons
f735f5287e v0.116.x dev 2023-11-29 11:08:32 -05:00
Kirill Bulatov
a62c4845a9 Make prettier more robust to offline work and errors (#3434)
Refactors prettier support:

* moves away prettier-related code into a separate module, makes
prettier installation & start phases more type-restricted
* ensures prettier installation and start attempts are capped with a
fixed attempts amount: after it's exceeded, no further attempts to
install and/or start prettier area made
* improves default prettier management, by correctly preserving its
plugin set between (re) installations and always installing the prettier
server part
* slightly improves prettier logging 

Release Notes:

- N/A
2023-11-29 14:02:31 +02:00
Kirill Bulatov
d92153218c Log prettier installation start & success 2023-11-29 13:44:19 +02:00
Kirill Bulatov
3e3b64bb1c Fix the tests 2023-11-29 12:10:41 +02:00
Kirill Bulatov
3796e7eecb Port to gpui2 2023-11-29 11:52:26 +02:00
Kirill Bulatov
6e44f53ea1 Style fixes 2023-11-29 11:33:29 +02:00
Kirill Bulatov
f1314afe35 Simplify default prettier installation function 2023-11-29 10:58:22 +02:00
Kirill Bulatov
96f6b89508 Clear failed installation task when error threshold gets exceeded 2023-11-29 10:58:22 +02:00
Kirill Bulatov
acd1aec862 Properly determine default prettier plugins to install 2023-11-29 10:58:22 +02:00
Kirill Bulatov
64259e4a0b Properly increment installation attempts 2023-11-29 10:58:22 +02:00
Kirill Bulatov
43d28cc0c1 Ignore initialized LSP request in prettier wrapper 2023-11-29 10:58:22 +02:00
Kirill Bulatov
465e53ef41 Always install default prettier 2023-11-29 10:58:22 +02:00
Kirill Bulatov
46ac82f498 Do not attempt to run default prettier if it's not installed yet 2023-11-29 10:58:22 +02:00
Kirill Bulatov
938f2531c4 Always write prettier server file 2023-11-29 10:58:22 +02:00
Kirill Bulatov
eab3476304 Split prettier code off to a separate module 2023-11-29 10:58:22 +02:00
Kirill Bulatov
e7e56757dc Limit prettier installation and start attempts 2023-11-29 10:58:22 +02:00
Kirill Bulatov
c288c6eaf9 Use enum variants for prettier installation and startup phases 2023-11-29 10:58:22 +02:00
Kirill Bulatov
d010f5f98d Exctract the common code 2023-11-29 10:58:22 +02:00
Conrad Irwin
5fbc60d8da Inviting/Responding/Creating Channels... etc. 2023-11-28 22:47:04 -07:00
Conrad Irwin
396ecefa4f use the right click event for buttons (#3432)
Previously we used mouse down

Release Notes:

- N/A
2023-11-28 21:27:42 -07:00
Conrad Irwin
0d4839b973 use the right click event for buttons 2023-11-28 21:14:48 -07:00
Marshall Bowers
e36c7dd301 Remove ID hack in ListItem (#3431)
This PR removes the ID hack in `ListItem`, since the underlying issue
was fixed in #3430.

Release Notes:

- N/A
2023-11-28 23:11:29 -05:00
Conrad Irwin
9e7a90a3d4 Fix stateful elements in Components (#3430)
No more wrapper divs for buttons

Release Notes:

- N/A
2023-11-28 20:59:58 -07:00
Conrad Irwin
db5ded0252 Remove useless method
We need to move state from layout to paint in any case
2023-11-28 20:53:46 -07:00
Conrad Irwin
8d1518d70c Fix stateful elements in Components
Previously a component assumed its element was stateless, this was
incorrect!
2023-11-28 20:47:11 -07:00
Max Brunsfeld
77acba9e4c Right-align key bindings in context menus
Remove extra div in `List` that prevented list items from
filling the available space.

Co-authored-by: Marshall <marshall@zed.dev>
2023-11-28 17:23:49 -08:00
Mikayla Maki
fbe440250e Restore welcome page (#3429)
Also restores the theme selector and base keymap selector. This does not
include a UI port.

Release Notes:

- N/A
2023-11-28 16:34:41 -08:00
Max Brunsfeld
6bf7ad71eb Show action key bindings in context menus 2023-11-28 16:07:42 -08:00
Conrad Irwin
7677998470 Channel joining (#3428)
- Remove debugging
- Basic channel joining!

[[PR Description]]

Release Notes:

- N/A
2023-11-28 17:00:21 -07:00
Conrad Irwin
60ce75c34a Togglable channels, the greatest since sliced bread 2023-11-28 16:52:12 -07:00
Mikayla
a41c857855 Merge branch 'main' into welcome2 2023-11-28 15:38:51 -08:00
Mikayla
ed8e62cd18 Restore welcome page and several pickers 2023-11-28 15:25:28 -08:00
Conrad Irwin
4c2348eb53 Fix tests, notify errors 2023-11-28 16:20:54 -07:00
Mikayla
d927c2f497 Implement all but the UI 2023-11-28 15:18:19 -08:00
Max Brunsfeld
bcf449d3fe Add a basic context menu to the project panel 2023-11-28 15:12:46 -08:00
Conrad Irwin
af3fa4ec0b Basic channel joining! 2023-11-28 16:10:18 -07:00
Conrad Irwin
75891e83f3 Fix mouse events when element is occluded (#3417)
This commit adds a depth map to the frame so we can find the "top most"
opaque layer by stacking order for a given point.

This lets us determine whether the element being hovered was part of the
given layer in the previous frame, which fixes the hover issue.

Still to do:
* [ ] Fix up mouse events too (I tried this, but it's not working yet,
and I want to understand why)

Release Notes:

- N/A
2023-11-28 15:57:22 -07:00
Conrad Irwin
b13638fa76 Remove debugging 2023-11-28 15:33:44 -07:00
Conrad Irwin
450f2bf6b6 More progress on collab panel (#3426)
Release Notes:

- n/a
2023-11-28 15:30:51 -07:00
Marshall Bowers
5666066db4 Merge branch 'main' into collab-panel2 2023-11-28 17:07:40 -05:00
Marshall Bowers
ee027bc112 Fix tooltips not showing on IconButtons (#3427)
This PR fixes tooltips not showing on `IconButton`s.

The "fix" here is the same hack that we used to fix `on_click` handlers
for `ListItem`s, where we introduce another layer of wrapping with an
element with an ID set.

This PR also adds a story for the `IconButton` so this issue can be
tested/observed in isolation.

Release Notes:

- N/A
2023-11-28 17:01:53 -05:00
Conrad Irwin
a85e0db1f4 More progress on collab panel 2023-11-28 14:40:32 -07:00
Marshall Bowers
8ee84249ec storybook2: Unsuppress and fix warnings (#3425)
This PR unsupresses the warnings in `storybook2` and summarily fixes
them.

Release Notes:

- N/A
2023-11-28 15:43:43 -05:00
Marshall Bowers
64376ad37a ui2: Reference theme2 and settings2 crates without the 2 (#3424)
This PR updates the `ui2` crate to reference the `theme2` and
`settings2` crates without the `2` the way we do in our other crates.

Release Notes:

- N/A
2023-11-28 15:30:29 -05:00
Nate Butler
d8fd422cf4 Refine keybindings (#3368)
[[PR Description]]

Refine the `Keybinding` component.

Still some issues:

![CleanShot 2023-11-28 at 15 15
38@2x](https://github.com/zed-industries/zed/assets/1714999/4fc1dde4-fe65-4e1d-acf5-6faefa12f053)

Lots of things moving so want to get this in.

Changes:

- use icons for some keys & modifiers
- updates some icons
- updates some state colors

Release Notes:

- N/A

Zed 2 Release Notes:

- Keybindings now use icons for common keys and modifiers
2023-11-28 15:22:38 -05:00
Nate Butler
b24a3b8fcb Unused imports 2023-11-28 15:17:09 -05:00
Nate Butler
525fe70de6 Fix missing arrows 2023-11-28 15:15:49 -05:00
Nate Butler
21755c7d20 Update keybinding.rs 2023-11-28 15:12:40 -05:00
Nate Butler
3855413725 Merge branch 'main' into refine-keybindings 2023-11-28 15:12:22 -05:00
Nate Butler
40bbbd3226 Update command_palette.rs 2023-11-28 15:06:37 -05:00
Marshall Bowers
070674a4fd ui2: Unsuppress and fix warnings (#3423)
This PR unsupresses the warnings in `ui2` and summarily fixes them.

Release Notes:

- N/A
2023-11-28 14:44:19 -05:00
Nate Butler
a9cb6589dd Update keybinding.rs 2023-11-28 14:40:26 -05:00
Marshall Bowers
874fde09ab Add inset variant to ListItem (#3422)
This PR adds an inset variant to the `ListItem` component.

We're now using this inset variant for the `ListItem`s we render in
pickers.

Release Notes:

- N/A
2023-11-28 14:27:19 -05:00
Nate Butler
f33cd3d463 Merge branch 'main' into refine-keybindings 2023-11-28 14:00:09 -05:00
Conrad Irwin
132ad5989c Add logged out collab panel (#3412)
Release Notes:

- N/A
2023-11-28 11:49:09 -07:00
Conrad Irwin
01d3432a40 Merge branch 'main' into collab-panel2 2023-11-28 11:40:58 -07:00
Marshall Bowers
9411898720 Use ListItems in the project panel (#3421)
This PR reworks the project panel to render its items using the
`ListItem` component.

There are a few hacks in here in order to get click handlers working for
the `ListItem`, but we'll want to get these fixed in GPUI.

Release Notes:

- N/A
2023-11-28 13:11:43 -05:00
Kirill Bulatov
4a01726e5e Use proper npm arguments and clean its inherited env vars (#3419)
Previously, `npm i` command could take too much time to download
dependencies, which was caused by wrong flags used.

Since we run `node` and `npm` processes ourselves and try to isolate
them from potentially "bad" user configs, it seems safer to remove any
ways to re-configure the tools via env vars, so strip off those too.

Release Notes:

- N/A
2023-11-28 19:14:10 +02:00
Conrad Irwin
a761e6ca0e More mouse occlusion work 2023-11-28 09:59:58 -07:00
Kirill Bulatov
5451db9c96 Use proper npm arguments and clean its inherited env vars 2023-11-28 18:39:03 +02:00
Antonio Scandurra
3ac545088a WIP: preserve aspect ratio of images 2023-11-28 17:33:11 +01:00
Marshall Bowers
179ad03ebc Render Picker matches using ListItems (#3418)
This PR updates the `PickerDelegate` implementations to render their
matches using the `ListItem` component so that they can have a
consistent style.

At some point it might make sense to move the `ListItem` rendering up
into the `Picker` implementation itself, and just have the delegate
responsible for giving us the inner content of the `ListItem`.

Release Notes:

- N/A
2023-11-28 10:56:27 -05:00
Marshall Bowers
ecb3bd7f59 Use ListItems in Picker story 2023-11-28 10:52:17 -05:00
Antonio Scandurra
600b564bbf Introduce surface rendering
Co-Authored-By: Julia <julia@zed.dev>
2023-11-28 16:47:31 +01:00
Marshall Bowers
1ee109cec7 Use ListItem when rendering picker matches 2023-11-28 10:44:57 -05:00
Marshall Bowers
63bd4ac999 Allow render_match to return an Option to represent no matches 2023-11-28 10:33:13 -05:00
Piotr Osiewicz
9fb3cb6a69 fixup! Add contact finder, change ui::List's on_click handler signature 2023-11-28 14:37:53 +01:00
Piotr Osiewicz
6c37393dd1 Add contact finder, change ui::List's on_click handler signature 2023-11-28 14:16:51 +01:00
Conrad Irwin
ca0dcf741f Use layers to correct mouse event handling too 2023-11-28 00:07:26 -07:00
Conrad Irwin
17b5f9294c Fix hover state when element is occluded 2023-11-27 23:18:25 -07:00
Conrad Irwin
26121713b3 Show channels and users in the sidebar 2023-11-27 19:57:55 -07:00
Mikayla Maki
eac4b2d076 Add Uiua language and Nu LSP (#3416)
Adds support for Uiua to my favorite editor in advance of AOC and
integrates the new nushell lsp. Change made to both zed1 and zed2.

Release Notes:

- Added support for the integrated Nushell LSP
- Added support for the Uiua language
2023-11-27 18:55:51 -08:00
Mikayla
8faa1f6e58 Merge branch 'main' into welcome 2023-11-27 18:55:23 -08:00
Mikayla
a760508080 Add uiua and nu languages 2023-11-27 18:46:56 -08:00
Nate Butler
84ee833d0c 🚧 Completion & Popover Styles 🚧 (#3406)
TODO:

- [ ] Add y axis padding to list instead of popover container
- [x] Combined max-width between completions list and docs
- [ ] Allow docs to be taller than completion list
- [x] Use the workspace bounds to set doc position
- [ ] Clean up markdown styles
- [x] (🐜) Changing items should set doc scroll position to the top
- [x] (🐜) popovers should render on top of all panes
- [ ] (extra) Try adding code block backgrounds to md rendering
- [ ] (extra) Use ui font for markdown text, buffer font for markdown
code.
- [ ] (extra) Try lining up inline code in completions menu

[[PR Description]]

Release Notes:

- N/A
2023-11-27 21:08:21 -05:00
Conrad Irwin
2a8f4f19d6 Scaffolding for update notification too (#3410)
Release Notes:

- N/A
2023-11-27 19:05:15 -07:00
Nate Butler
979ff70196 Update popover.rs 2023-11-27 20:12:20 -05:00
Nate Butler
ca2052b0c1 Merge branch 'main' into completions-styles 2023-11-27 19:22:07 -05:00
Conrad Irwin
eca49ef02e remove zed1 notification mess (#3415)
Accidentally added while testing zed2

Release Notes:

- N/A
2023-11-27 16:52:51 -07:00
Conrad Irwin
f3d142b7e9 remove zed1 notification mess 2023-11-27 16:27:02 -07:00
Conrad Irwin
4a25fae51e TEMP 2023-11-27 16:22:01 -07:00
Max Brunsfeld
369803cbc8 Upgrade Tree-sitter for stack-overflow bugfix (#3413)
Fixes https://github.com/zed-industries/community/issues/2290

This PR bumps Tree-sitter for
https://github.com/tree-sitter/tree-sitter/pull/2788.

Release Notes:

- Fixed a crash that could happen when opening certain large markdown
files.
2023-11-27 15:13:55 -08:00
Max Brunsfeld
6468fe737e Use 'any-match?' predicate in elixir embedding query 2023-11-27 15:06:20 -08:00
Conrad Irwin
e6aab57656 Merge branch 'main' into collab-panel2 2023-11-27 15:57:09 -07:00
Conrad Irwin
ccfc4fc0b9 Fix esc in command palette (#3414)
Also: add editor.register_action

Release Notes:

- N/A
2023-11-27 15:47:01 -07:00
Conrad Irwin
47b4d9942f Fix panic on quit 2023-11-27 15:33:47 -07:00
Conrad Irwin
107c3d7f67 Fix esc in command palette
Also: add editor.register_action
2023-11-27 14:32:22 -07:00
Max Brunsfeld
1c62abbf79 Upgrade Tree-sitter for stack-overflow bugfix 2023-11-27 13:16:50 -08:00
Julia
d551b41aae zed2: Mostly port breadcrumbs & improve StyledText api
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-11-27 16:09:31 -05:00
Piotr Osiewicz
f8614b5909 fixup! Await toggle of mute 2023-11-27 21:46:03 +01:00
Piotr Osiewicz
b0d9e3c8fa Await toggle of mute 2023-11-27 21:44:53 +01:00
Marshall Bowers
24f3034106 Add ListItem story (#3411)
This PR adds a story for the `ListItem` component, so we can work on it
in isolation.

Release Notes:

- N/A
2023-11-27 15:24:41 -05:00
Piotr Osiewicz
52119ca203 call: Restore mute_on_join behaviour 2023-11-27 21:06:06 +01:00
Conrad Irwin
6f839a1b48 Add logged out collab panel 2023-11-27 13:00:12 -07:00
Conrad Irwin
4f885252ab [Zed2] Collab UI (#3403)
Release Notes:

- N/A
2023-11-27 12:40:59 -07:00
Marshall Bowers
19ecccb107 Add ListItem story 2023-11-27 14:20:33 -05:00
Marshall Bowers
feb7753a73 Fix typo in uniform_list's doc comment 2023-11-27 14:20:27 -05:00
Conrad Irwin
e31a8f0536 Scaffolding for update notification too 2023-11-27 12:07:26 -07:00
Conrad Irwin
82f6f77117 Use editor's overlay implementation 2023-11-27 11:49:51 -07:00
Conrad Irwin
212d9254e1 Merge branch 'main' into completions-styles 2023-11-27 11:49:39 -07:00
Conrad Irwin
b48b74559c Break content mask for hoverables (#3409)
Release Notes:

- N/A
2023-11-27 11:49:20 -07:00
Conrad Irwin
7a8aba329b Break content mask for hoverables 2023-11-27 11:43:14 -07:00
Piotr Osiewicz
1c2f906e48 Position incoming call notification on right hand side.
Co-authored-by: Conrad <conrad@zed.dev>
2023-11-27 19:37:04 +01:00
Antonio Scandurra
e9e621518f Introduce hover popover in editor2 (#3408)
<img width="1245" alt="image"
src="https://github.com/zed-industries/zed/assets/482957/ba35e43c-82a6-493e-938b-8798352e636d">

Release Notes:

- N/A
2023-11-27 19:28:14 +01:00
Antonio Scandurra
3ea12ad0d7 Remove commented out code 2023-11-27 19:19:56 +01:00
Antonio Scandurra
fc4b621b32 Use element_hover instead of red 2023-11-27 19:16:06 +01:00
Antonio Scandurra
8c53f1b9c2 Uncomment hover popover tests 2023-11-27 19:14:58 +01:00
Antonio Scandurra
1e6214440d Show diagnostic hover popover 2023-11-27 19:08:25 +01:00
Piotr Osiewicz
b2b5df4428 close notification handler proper on accept/decline
Co-authored-by: Conrad <conrad@zed.dev>
2023-11-27 18:57:25 +01:00
Antonio Scandurra
a5951df21f Start on hover popover 2023-11-27 18:56:37 +01:00
Nate Butler
ab83f4319b revert popover changes
[no ci]
2023-11-27 11:51:42 -05:00
Conrad Irwin
fd165206bf gpui2: Notifications (#3407)
Release Notes:

- N/A
2023-11-27 09:22:31 -07:00
Nate Butler
8a35a02863 Checkpoint - try using overlay for completions popover
[no ci]
2023-11-27 11:22:19 -05:00
Nate Butler
1acc6b462f Start on completions styles 2023-11-27 10:29:29 -05:00
Kirill Bulatov
cd4ea344a6 Slightly less errors in terminal_element2 2023-11-27 16:55:48 +02:00
Piotr Osiewicz
8ca9f4e12a Fix some more warnings 2023-11-27 15:49:47 +01:00
Piotr Osiewicz
30af3ffaf3 fixup! Use AppContext instead of AsyncWindowContext to quit 2023-11-27 15:47:00 +01:00
Piotr Osiewicz
44876062c9 Use AppContext instead of AsyncWindowContext to quit
Fixes refcell-related panic
2023-11-27 15:44:19 +01:00
Nate Butler
56d3d663a5 UI progress (#3405)
[[PR Description]]

- Start outlining unfinished elements in `gpui::red()`
- Update tabs so they don't jump when activated
- Mock out a number of ui elements we haven't started yet.

Release Notes:

- N/A
2023-11-27 09:25:52 -05:00
Antonio Scandurra
0d1d01687b Finish autocomplete (#3404)
![image](https://github.com/zed-industries/zed/assets/482957/f1f40bec-4e8b-457b-8801-ce10ecb6fc80)


TODO:

- [x] Respect max height imposed by editor element
- [x] Ensure mouse down event handler in `EditorElement` doesn't prevent
links from being clicked

Release Notes:

- N/A
2023-11-27 15:24:59 +01:00
Antonio Scandurra
3ba5dbb9e8 Prevent mousedown on docs from being propagated to the editor 2023-11-27 15:15:57 +01:00
Piotr Osiewicz
a71180257d Add deafening support 2023-11-27 15:12:13 +01:00
Nate Butler
c40ab3c3da Update theme2.rs 2023-11-27 09:11:51 -05:00
Piotr Osiewicz
bf4211b03a Use facepile for avatars 2023-11-27 14:56:51 +01:00
Antonio Scandurra
eb647be685 Pass max height manually 2023-11-27 14:56:46 +01:00
Piotr Osiewicz
714b45157b Replace unrendered frame with a frame counter
Move facepile to the left hand side
2023-11-27 13:02:21 +01:00
Piotr Osiewicz
9590f253a9 Fix warnings 2023-11-27 12:46:07 +01:00
Piotr Osiewicz
5cbe8deb50 Fix up tests 2023-11-27 12:33:44 +01:00
Piotr Osiewicz
4c1514edc4 fixup! Remove shared_screen from workspace 2023-11-27 12:10:07 +01:00
Piotr Osiewicz
fad1f8db96 Remove shared_screen from workspace 2023-11-27 12:09:36 +01:00
Conrad Irwin
039c933d8e gpui2: Notifications 2023-11-26 22:28:53 -07:00
Nate Butler
2e61a84bd6 Update tab borders 2023-11-24 16:57:50 -05:00
Nate Butler
48a9f2be4c Update one theme colors 2023-11-24 16:57:35 -05:00
Antonio Scandurra
682712f132 Account for previous line lengths when returning index 2023-11-24 18:32:48 +01:00
Antonio Scandurra
047cfe5108 Fix painting when underlines and quads appeared after a wrap boundary 2023-11-24 18:23:08 +01:00
Antonio Scandurra
f227c3284d Consume newline from run if it spans it 2023-11-24 17:53:48 +01:00
Piotr Osiewicz
481c19fbaf WIP, frames are being sent to the other end 2023-11-24 17:31:47 +01:00
Antonio Scandurra
0baa9a782b Start on wiring up render_parsed_markdown 2023-11-24 17:28:59 +01:00
Antonio Scandurra
d31b53b912 Extract a gpui::combine_highlights function 2023-11-24 16:31:38 +01:00
Nate Butler
d965ddba27 Start debugging tab borders 2023-11-24 09:33:44 -05:00
Nate Butler
6a3925c3e1 Add copilot icons 2023-11-24 09:22:31 -05:00
Nate Butler
31565a810d Outline statusbar items 2023-11-24 09:16:19 -05:00
Piotr Osiewicz
6ebe5d5053 Add mute handling 2023-11-24 15:16:03 +01:00
Antonio Scandurra
e5b6b0ee9e WIP 2023-11-24 15:05:04 +01:00
Nate Butler
3c46e81533 More outlines 2023-11-24 09:03:14 -05:00
Nate Butler
7e61d340ce Outline some unfinished elements 2023-11-24 08:58:49 -05:00
Antonio Scandurra
19bfed165b Show single-line docs in autocomplete and apply completion on mousedown 2023-11-24 13:22:25 +01:00
Antonio Scandurra
54357d6553 Syntax highlight completions 2023-11-24 13:10:56 +01:00
Antonio Scandurra
bf39968105 Return TextRuns in combine_syntax_and_fuzzy_match_highlights 2023-11-24 13:00:20 +01:00
Kirill Bulatov
700168467e Avoid binary target name conflicts (#3401)
Fixes binary build warnings such as 

https://github.com/zed-industries/zed/actions/runs/6980107733/job/18994693722#step:5:9

```
warning: output filename collision.
The bin target `dotenv` in package `collab2 v0.28.0 (/Users/administrator/actions-runner-1/_work/zed/zed/crates/collab2)` has the same output filename as the bin target `dotenv` in package `collab v0.28.0 (/Users/administrator/actions-runner-1/_work/zed/zed/crates/collab)`.
Colliding filename is: /Users/administrator/actions-runner-1/_work/zed/zed/target/debug/dotenv
The targets should have unique names.
Consider changing their names to be unique or compiling them separately.
This may become a hard error in the future; see <https://github.com/rust-lang/cargo/issues/6313>.
warning: output filename collision.
The bin target `dotenv` in package `collab2 v0.28.0 (/Users/administrator/actions-runner-1/_work/zed/zed/crates/collab2)` has the same output filename as the bin target `dotenv` in package `collab v0.28.0 (/Users/administrator/actions-runner-1/_work/zed/zed/crates/collab)`.
Colliding filename is: /Users/administrator/actions-runner-1/_work/zed/zed/target/debug/dotenv.dSYM
The targets should have unique names.
Consider changing their names to be unique or compiling them separately.
This may become a hard error in the future; see <https://github.com/rust-lang/cargo/issues/6313>.
warning: output filename collision.
The bin target `seed` in package `collab2 v0.28.0 (/Users/administrator/actions-runner-1/_work/zed/zed/crates/collab2)` has the same output filename as the bin target `seed` in package `collab v0.28.0 (/Users/administrator/actions-runner-1/_work/zed/zed/crates/collab)`.
Colliding filename is: /Users/administrator/actions-runner-1/_work/zed/zed/target/debug/seed
The targets should have unique names.
Consider changing their names to be unique or compiling them separately.
This may become a hard error in the future; see <https://github.com/rust-lang/cargo/issues/6313>.
warning: output filename collision.
The bin target `seed` in package `collab2 v0.28.0 (/Users/administrator/actions-runner-1/_work/zed/zed/crates/collab2)` has the same output filename as the bin target `seed` in package `collab v0.28.0 (/Users/administrator/actions-runner-1/_work/zed/zed/crates/collab)`.
Colliding filename is: /Users/administrator/actions-runner-1/_work/zed/zed/target/debug/seed.dSYM
The targets should have unique names.
Consider changing their names to be unique or compiling them separately.
This may become a hard error in the future; see <https://github.com/rust-lang/cargo/issues/6313>.
```

by suffixing the collab2 binaries with `2`.

Release Notes:

- N/A
2023-11-24 13:44:23 +02:00
Kirill Bulatov
e19860d3b0 Avoid binary target name conflicts 2023-11-24 13:29:01 +02:00
Kirill Bulatov
bc2dfcfa8e Ignore excluded entries' children FS events (#3400)
Deals with https://github.com/zed-industries/community/issues/2295 and
https://github.com/zed-industries/community/issues/2296

Release Notes:

- Fixed excluded .git files appearing in worktree after FS events
2023-11-24 13:12:44 +02:00
Kirill Bulatov
879a069b35 Port to gpui2 2023-11-24 13:05:53 +02:00
Kirill Bulatov
31a4acf98a Fix collab tests 2023-11-24 12:56:58 +02:00
Kirill Bulatov
95a413847a Properly ignore FS events of excluded files 2023-11-24 11:59:13 +02:00
Kirill Bulatov
4a060db801 Add a test 2023-11-24 11:59:13 +02:00
Joseph T. Lyons
22e6803fc6 Add app close events (#3399)
Release Notes:

- N/A
2023-11-23 21:23:13 -05:00
Joseph T. Lyons
18d3b1c397 Add app close events 2023-11-23 21:14:59 -05:00
Piotr Osiewicz
f2b62c3946 Start emitting notifications for calls 2023-11-24 00:52:44 +01:00
Antonio Scandurra
510320bb47 Introduce InteractiveText (#3397)
This new element will let us react to click events on arbitrary ranges
of some rendered text, e.g.:

```rs
InteractiveText::new(
    "element-id",
    StyledText::new("Hello world, how is it going?").with_runs(vec![
        cx.text_style().to_run(6),
        TextRun {
            background_color: Some(green()),
            ..cx.text_style().to_run(5)
        },
        cx.text_style().to_run(18),
    ]),
)
.on_click(vec![2..4, 1..3, 7..9], |range_ix, cx| {
    println!("Clicked range {range_ix}");
})
```

As part of this, I also added the ability to give text runs a background
color.

Release Notes:

- N/A
2023-11-23 19:35:03 +01:00
Antonio Scandurra
7eeb8078f6 Allow setting text background color via TextStyle 2023-11-23 19:22:18 +01:00
Antonio Scandurra
1ad22231d2 Allow providing a background color in a TextRun 2023-11-23 18:55:16 +01:00
Kirill Bulatov
df7b89b6cb Allow to include gitignored files into project search (#3394) 2023-11-23 19:28:11 +02:00
Piotr Osiewicz
204218b5f5 chore: Use "limited" debug info (#3396)
This one does not contain variable-level debug info; since we mostly
rely on backtraces though, this should be fine. It also improves compile
times a bunch for both incremental and clean scenarios.

Release Notes:

- N/A
2023-11-23 18:17:55 +01:00
Antonio Scandurra
56d043f671 Allow finding which ranges were clicked on an InteractiveText 2023-11-23 18:08:49 +01:00
Piotr Osiewicz
41b7acc1de chore: Use "limited" debug info
This one does not contain variable-level debug info; since we mostly rely on backtraces though, this should be fine. It also improves compile times a bunch for both incremental and clean scenarios.
2023-11-23 17:54:43 +01:00
Piotr Osiewicz
e754c6626d Allow calling an user, render contacts in collab panel 2023-11-23 16:19:25 +01:00
Piotr Osiewicz
2a2b3b5e91 Authenticate on app startup 2023-11-23 15:08:21 +01:00
Piotr Osiewicz
b463454062 Remove redundant comment 2023-11-23 15:03:54 +01:00
Piotr Osiewicz
390ecb5b0c Merge branch 'main' into collab_ui-zed2 2023-11-23 15:02:55 +01:00
Piotr Osiewicz
c191943849 Add basic call/user UI in top-right corner.
Allow ui::Avatar to take custom data instead of always relying on URI resolution
2023-11-23 15:00:13 +01:00
Piotr Osiewicz
72a1ada0ae Add scripts for running Zed2 collab environment (#3395)
./script/zed-local now looks for "--zed2" flag in its args and runs Zed2
binaries instead of zed1. 'foreman start' can be launched with '-f
Procfile.zed2" argument to launch zed2 collab server.

Release Notes:

- N/A
2023-11-23 14:45:52 +01:00
Piotr Osiewicz
0b67983ddf Add scripts for running Zed2 collab environment
./script/zed-local now looks for "--zed2" flag in its args and runs Zed2 binaries instead of zed1.
'foreman start' can be launched with '-f Procfile.zed2" argument to launch zed2 collab server.
2023-11-23 14:19:06 +01:00
Antonio Scandurra
2cc1df9053 Rename element-related traits (#3390)
@as-cii I think this naming makes more sense. If you like it, can you
push forward?

Release Notes:

- N/A
2023-11-23 13:03:05 +01:00
Antonio Scandurra
3b918bfee8 Merge branch 'main' into rename-element-traits
# Conflicts:
#	crates/gpui2/src/elements/uniform_list.rs
#	crates/ui2/src/components/context_menu.rs
#	crates/ui2/src/components/list.rs
2023-11-23 12:47:46 +01:00
Kirill Bulatov
cee6fd8dd3 Port to gpui2 2023-11-23 10:44:05 +02:00
Kirill Bulatov
eee63835fb Exclude more ignored/worktree-less/project-less buffers from inlay hint requests 2023-11-23 10:30:52 +02:00
Kirill Bulatov
c2751c717e Parallelize ignored entries for search lookup 2023-11-23 09:53:00 +02:00
Joseph T. Lyons
f33c0e80a6 Add app events (#3372)
Adds app events (`first open` and `open`). For the time being, I'm
abandonding trying to add `close`, after running into many issues
trying. The code is in place for me to continue on that work, but at the
moment, we require having the telemetry settings in hand when calling
any of the methods that log an event, so we can honor the user's
preference for sending telemetry or not, but when running the
`on_app_close` method, to send off an app `close` event, the settings
are no longer available (probably the order of teardown?), which causes
some tests to end up failing. I'm not sure how to solve this. Maybe we
keep the settings on the telemetry struct and update it each time any
event is logged, then, on app shutdown, when logging the app `close`
event, we can use the stored version (idk).

Release Notes:

- N/A
2023-11-22 23:16:28 -05:00
Joseph T. Lyons
35f35dd476 Remove unused import 2023-11-22 23:03:11 -05:00
Joseph T. Lyons
575ab81409 Disable app close event 2023-11-22 23:01:31 -05:00
Joseph T. Lyons
a876b6f700 Remove comments 2023-11-22 23:01:18 -05:00
Julia
88af458f62 zed2(ish) Cancel completion resolution when new list (#3391)
Release Notes:

- N/A
2023-11-22 18:44:34 -05:00
Mikayla Maki
f01a04a8e0 Fix pane splitting panic (#3381)
Also opens the window on startup.

Release Notes:

-
2023-11-22 14:12:28 -08:00
Piotr Osiewicz
ebeb0fda28 ci: Add ci-config.toml in .cargo folder. (#3392)
Release Notes:

- N/A
2023-11-22 22:54:16 +01:00
Mikayla
6e84d8fbc0 Merge branch 'main' into panic-hunting 2023-11-22 13:47:17 -08:00
Mikayla
eb74ad7caa Fix failing test 2023-11-22 13:41:48 -08:00
Piotr Osiewicz
6da57cbc6e Decouple workspace from call (#3380)
This PR decouples `call2` from `workspace2` in order to improve our
compile times.
Why pick such a small, innocent crate as `call`? It depends on
`live_kit_client`, which is not-so-innocent and is in fact stalling our
clean builds.
In this PR, `call2` depends on `workspace2`; workspace crate defines a
`CallHandler` trait for which the implementation resides in `call`; it
it then all tied together in `zed`, which passes a factory of `Box<dyn
CallHandler>` into workspace's `AppState`.
Clean debug build before this change: ~1m45s
Clean debug build after this change: ~1m25s

Clean release build before this change: ~6m30s
Clean release build after this change: ~4m30s

~Gonna follow up with release timings where I expect the change to be
more impactful (as this allows 2/3 of the infamous trio of
"project-workspace-editor" long pole to proceed quicker, without being
blocked on live-kit-client build script)~.
This should have little effect (if any) in incremental scenarios, where
live_kit_client is already built.
[release
timings.zip](https://github.com/zed-industries/zed/files/13431121/release.timings.zip)

Release Notes:
- N/A
2023-11-22 22:31:47 +01:00
Julia
37e3cc1291 zed2(ish) Cancel completion resolution when new list 2023-11-22 16:26:27 -05:00
Joseph T. Lyons
0def2bc0d2 Remove dbg 2023-11-22 16:26:15 -05:00
Piotr Osiewicz
c04f123e44 ci: Add ci-config.toml in .cargo folder. 2023-11-22 22:25:26 +01:00
Joseph T. Lyons
ee2b6834bd Revert "Convert telemetry into a model"
This reverts commit 6e4268a471.
2023-11-22 16:16:44 -05:00
Joseph T. Lyons
c86e99928b Merge branch 'main' into add-app-events 2023-11-22 16:16:11 -05:00
Joseph T. Lyons
6e4268a471 Convert telemetry into a model
Co-Authored-By: Julia <30666851+ForLoveOfCats@users.noreply.github.com>
2023-11-22 16:16:10 -05:00
Julia
62b1843704 zed1: Cancel completion resolution when new list (#3389)
Release Notes:

- Fixed a bug where Zed would continue to request documentation for
completion lists which were stale or no longer visible.
2023-11-22 14:23:09 -05:00
Julia
f0c7b3e6ee Update copilot when we are the last task 2023-11-22 14:03:43 -05:00
Antonio Scandurra
2611b5d6d7 Fix positioning editor2's context menu when scrolling up/down (#3388)
Release Notes:

- N/A
2023-11-22 19:56:36 +01:00
Piotr Osiewicz
b45234eece Fix warnings in unimplemented function 2023-11-22 19:24:38 +01:00
Piotr Osiewicz
fa74c49dbb Add dummy call handler for tests 2023-11-22 19:23:58 +01:00
Nathan Sobo
c23f17ee0b Reorganize element-related traits 2023-11-22 11:19:43 -07:00
Julia
9abce4bdd9 zed1: Cancel completion resolution when new list
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-11-22 13:16:52 -05:00
Joseph T. Lyons
10c4df20e9 collab 0.29.0 2023-11-22 13:05:29 -05:00
Antonio Scandurra
524f892fb0 Correctly swap position of context menu 2023-11-22 19:02:44 +01:00
Joseph T. Lyons
7b0b87380d v0.115.x dev 2023-11-22 12:57:32 -05:00
Marshall Bowers
cac6e22e8e Rework ListItem to use children (#3387)
This PR reworks the `ListItem` component to accept `children` rather
than just a `Label`.

This is a step towards making the `ListItem` component more open.

As part of this the `ContextMenu` was simplified to only construct the
various list components in `render` rather than holding them as part of
its state.

Release Notes:

- N/A
2023-11-22 12:55:20 -05:00
Marshall Bowers
fd5793ddec Use children for ListItems 2023-11-22 12:44:51 -05:00
Marshall Bowers
031fca4105 Simplify ContextMenu by not storing list components 2023-11-22 12:41:29 -05:00
Marshall Bowers
2c8d243d22 Comment out todo!() to fix panic when opening context menus 2023-11-22 12:41:06 -05:00
Antonio Scandurra
eaf90a4fbd Fix drawing uniform list elements when scrolling 2023-11-22 18:32:02 +01:00
Antonio Scandurra
ca1d9dd0e5 Fix scrolling in gpui2::UniformList (#3386)
Release Notes:

- N/A
2023-11-22 18:10:49 +01:00
Kirill Bulatov
71e9bd8fa3 Use a git file icon for toggle gitignored search option 2023-11-22 19:09:10 +02:00
Kirill Bulatov
566857b0b7 Output non-ignored files first 2023-11-22 19:03:27 +02:00
Antonio Scandurra
8aaa46a1b6 Track scroll in editor's context menu 2023-11-22 17:58:00 +01:00
Antonio Scandurra
bd4a710cef Use interactivity's base style for UniformList 2023-11-22 17:50:34 +01:00
Antonio Scandurra
f37ace63e0 Initial autocomplete support for editor2 (#3383)
Release Notes:

- N/A
2023-11-22 16:02:37 +01:00
Kirill Bulatov
92953fb53d If enabled, search in ignored files during project search 2023-11-22 16:41:02 +02:00
Piotr Osiewicz
ce3acf17cf CI: use global config toml (#3384)
It looks like we should keep RUSTFLAGS consistent in CI if possible;
some commands augmented RUSTFLAGS with "-D warnings" which overrode
`.cargo/config.toml`, causing unnecessary rebuilds even for non-bundling
runs. Tl;dr: for the last few days our average CI time spiked
significantly.
There are several solutions:
- We can place `-D warnings` in our `.cargo/config.toml`. That's not a
good solution, because then you wouldn't ever be able to build Zed with
warnings locally. A true PITA!
- We can place another config.toml somewhere in the search path
(https://doc.rust-lang.org/cargo/reference/config.html#hierarchical-structure)
and rely on the merging of properties. That way we can avoid having `-D
warnings` on developer machines while being able to override CI
behaviour at will.

This PR implements the latter approach by creating the new config file
manually. Ideally we should have it a a separate file in repository
that's moved into $HOME/.cargo on each CI run. Maybe we should even
place it somewhere more local to the checked out Zed version, as placing
it in a global spot is kinda bad too - what if we start building
multiple cargo projects on our CI machines?

Release Notes:

- N/A
2023-11-22 15:25:43 +01:00
Piotr Osiewicz
492c3a1e83 Bump artifact size limit for CI to 100GB 2023-11-22 15:14:24 +01:00
Piotr Osiewicz
6f8e03470c Use printf instead of echo 2023-11-22 14:41:26 +01:00
Piotr Osiewicz
8a6d3094c4 Change tabs to spaces 2023-11-22 14:37:41 +01:00
Piotr Osiewicz
552f03c49d chore/CI: place .cargo/config.toml augmentations in ~/.cargo/config.toml 2023-11-22 14:36:10 +01:00
Antonio Scandurra
2b6e8de11f Don't perform wrapping in completions 2023-11-22 14:23:09 +01:00
Antonio Scandurra
fff2d7955e Round up line width 2023-11-22 14:01:22 +01:00
Antonio Scandurra
3a8e9b5697 Avoid holding borrow to editor while painting child elements 2023-11-22 11:40:38 +01:00
Joseph T. Lyons
a4a1e6ba98 WIP
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-11-21 22:32:07 -05:00
Mikayla Maki
c199d92dac Update main.rs 2023-11-21 18:14:14 -08:00
Mikayla
469b05684f Fix a few identity mixups in GPUI
co-authored-by: nathan <nathan@zed.dev>
2023-11-21 17:12:32 -08:00
Piotr Osiewicz
7e7a778d11 Move CallFactory into AppState
Fix crash caused by double borrow of window handle
2023-11-21 22:04:02 +01:00
Mikayla
e557eb4afe Fix no window showing up on startup
co-authored-by: Marshall <marshall@zed.dev>
2023-11-21 12:45:25 -08:00
Mikayla
663bbb06d9 WIP 2023-11-21 12:40:00 -08:00
Piotr Osiewicz
abe5a9c85f Finish up decoupling workspace from call 2023-11-21 20:51:53 +01:00
Marshall Bowers
a94cf54aab Fix storybook (#3379)
This PR fixes storybook and gets it back into a compiling and running
state.

Release Notes:

- N/A
2023-11-21 14:28:00 -05:00
Piotr Osiewicz
ebccdb64bc Move CallHandler impl into call2 2023-11-21 20:18:35 +01:00
Piotr Osiewicz
170291ff96 Start decoupling workspace and call crates 2023-11-21 19:57:24 +01:00
Nate Butler
6fe7b22164 UI refinements + Popover (#3377)
[[PR Description]]

- Update default ui_font_size
- Update toolbar style
- Start on ui::Popover

Release Notes:

- N/A
2023-11-21 13:49:10 -05:00
Marshall Bowers
1b05aad30c Extract Story into separate story crate (#3378)
This PR extracts the `Story` component into a separate `story` crate so
that it can be shared among various crates that define stories.

Release Notes:

- N/A

---------

Co-authored-by: Nate Butler <iamnbutler@gmail.com>
2023-11-21 13:42:00 -05:00
Nate Butler
40a49e6896 Update popover doc
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-11-21 12:43:56 -05:00
Nate Butler
9a145a4d86 Correctly position popover aside, add list item states
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-11-21 12:40:48 -05:00
Nate Butler
9f2e3bab9b Allow popover to take an aside
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-11-21 12:26:10 -05:00
Nate Butler
dac7912e87 Start on popover 2023-11-21 12:10:06 -05:00
Marshall Bowers
f4b4bdfd83 ui2: Get component stories compiling again (#3376)
This PR gets the component stories defined in `ui2` compiling again.

Release Notes:

- N/A
2023-11-21 12:06:25 -05:00
Nate Butler
f04deeb5f9 Document InteractionState 2023-11-21 11:51:15 -05:00
Antonio Scandurra
f2c63781f9 Merge branch 'main' into editor2-autocomplete
# Conflicts:
#	crates/editor2/src/editor.rs
2023-11-21 17:43:09 +01:00
Nate Butler
bec61123fd Update toolbar.rs 2023-11-21 11:06:27 -05:00
Marshall Bowers
6cd0bcc578 Fix panic when opening settings in zed2 (#3375)
This PR fixes a panic that occurs when opening the settings in zed2.

We store the `ThemeRegistry` as a global without wrapping it in an
`Arc`, so we need to retrieve it the same way.

Release Notes:

- N/A
2023-11-21 10:58:52 -05:00
Nate Butler
6d6aa3b253 Update default ui font settings 2023-11-21 10:43:18 -05:00
Nate Butler
79c890f31a ui2 cleanup (#3374)
[[PR Description]]

Tidies up the `ui2` crate, removing all components we aren't using and
doing a bit of reorganization.

Release Notes:

- N/A
2023-11-21 01:55:00 -05:00
Nate Butler
209fb10731 Remove stories mod until it is re-enabled 2023-11-21 01:36:35 -05:00
Nate Butler
8947438510 Update elevation 2023-11-21 01:23:47 -05:00
Nate Butler
453aa5ffd7 TextColor -> Color 2023-11-21 01:05:29 -05:00
Nate Butler
56d45e72cd Add Shape enum to avatar component, refactor UITextSize to styles/typography.rs 2023-11-21 00:59:29 -05:00
Nate Butler
205607a9cd Clean out UI 2023-11-21 00:44:51 -05:00
Piotr Osiewicz
b4275008f9 Search2 (#3332)
This is just a buffer search (without project search), as the latter
needs a multibuffer from `editor`
Release Notes:

- N/A
2023-11-21 01:38:14 +01:00
Mikayla Maki
361801e527 WIP: Remove V parameter on elements (#3366)
This is an exploration of what it would take to remove the `V` generic
from the element type. Answer: less than I expected.

I added a new struct to GPUI2: `CallbackHandle<Event>`, and reworked the
interactivity related APIs to take this type. I also added a
`.callback()` function to `ViewContext` that can construct a
`CallbackHandle` to wrap our current `|&mut View, &Evt, &mut
ViewContext| {...}` based APIs. With these two changes, we can now
capture the context of the callsite of a click handler, allowing us to
capture all relevant types and data _before_ sending them into GPUI.
This lets us achieve a similar programing style to the existing system,
while also letting us remove all of the generics from the entire element
system. For an example of what this looks like in practice, here's a
side by side diff of the test in `interactive.rs` (which compiles and
passes):

<img width="1310" alt="Screenshot 2023-11-19 at 7 32 08 PM"
src="https://github.com/zed-industries/zed/assets/2280405/596f2a9a-9c8e-4158-bf6d-0003cf973015">

Note how the new arrangement of types is more amenable to rust's type
inference, allowing the code to be just as terse as before despite the
extra function call in the middle.

This approach also allows components to provide well typed APIs to
views, without ever knowing that view's type. This PR includes an
example rewrite of the button component in `ui2`, here's what it's
struct could look like now:

<img width="1105" alt="Screenshot 2023-11-19 at 7 24 28 PM"
src="https://github.com/zed-industries/zed/assets/2280405/fc98d3c2-6831-4c0f-a324-ab0fae33b0bc">

However, I have not yet ported the derive macro for Component to this
new structure, as I know @nathansobo is currently reworking that code.

Once that macro has been rewritten, it should be relatively easy to
rewrite the rest of Zed2 with this approach, the only major difference
that I can foresee is that the editor element would need to wrap it's
operations in an update callback. Though I can think of a few ways to
fix this with a new `ViewElement` trait, that does the wrapping for you.
2023-11-20 16:24:01 -08:00
Piotr Osiewicz
2138715fca Merge remote-tracking branch 'origin/callback-handles' into search2 2023-11-21 01:16:21 +01:00
Mikayla
a844bf7d41 Fix stories
co-authored-by: Piotrek <piotr@zed.dev>
2023-11-20 16:06:10 -08:00
Piotr Osiewicz
3e329861f9 Brave new world awaits
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-11-21 00:47:47 +01:00
Piotr Osiewicz
54a3b56935 Merge remote-tracking branch 'origin/callback-handles' into search2 2023-11-21 00:40:20 +01:00
Conrad Irwin
8049ec674e Fix last thing 2023-11-20 16:35:56 -07:00
Conrad Irwin
5c0f2e75ea Remove all the settings 2023-11-20 16:30:14 -07:00
Conrad Irwin
3e2dba36b4 Merge branch 'main' into callback-handles 2023-11-20 16:28:35 -07:00
Nate Butler
3096222672 Add deploy-docs script (#3373)
[[PR Description]]

Adds `script/deploy-docs`:
- If you don't already have it, it will clone the `zed-docs` repo into
`../zed-docs`
    - It will build the docs and output them in `../zed-docs`
    - Then it will open the docs.
- By default this "dry runs" (doesn't push) but you can pass `-p` to
push the changes.
    - If you add `-c` it will clean out the old docs before running.
    
If you run the script with `p` it will push up the changes, and vercel
will automatically deploy them.

Release Notes:

- N/A
2023-11-20 18:07:37 -05:00
Conrad Irwin
8b6b7e60be borrow less 2023-11-20 16:00:47 -07:00
Nate Butler
a83d626912 Make the script a bit more resilient 2023-11-20 17:50:25 -05:00
Mikayla
2c4d83c9af WIP
co-authored-by: conrad <conrad@zed.dev>
co-authored-by: Nathan <nathan@zed.dev>
2023-11-20 14:46:01 -08:00
Nate Butler
a87ffa58ff Add more crates 2023-11-20 17:07:14 -05:00
Nate Butler
3210d36727 Create deploy-docs 2023-11-20 16:13:18 -05:00
Marshall Bowers
652e3b0bb6 Rename ListEntry to ListItem (#3371)
This PR renames the `ListEntry` component to `ListItem` to better
reflect its intent.

Release Notes:

- N/A
2023-11-20 16:13:06 -05:00
Joseph T. Lyons
daddb03e7a Remove comments 2023-11-20 16:04:32 -05:00
Joseph T. Lyons
a0dcc9618e Mark app event as open if we fail to get installation_id
If we find a previous installation_id, then we send `open`. If we don't find a previous installation_id, then we sent as `first open`. If we fail, we mark it as `open` so that we don't accidentally bloat our `first open` stats.
2023-11-20 16:04:15 -05:00
Joseph T. Lyons
db3f487474 Fix zed2 compile error 2023-11-20 16:00:05 -05:00
Joseph T. Lyons
0926db9111 Add app events 2023-11-20 15:51:36 -05:00
Max Brunsfeld
4f4ef4a357 More fixes for zed nightly (#3370)
When running `script/bundle` with the new `-2` flag, we needed to adjust
the fat-binary creation step to look for the binary called `Zed2`.

We also fixed a source of intermittent build failures in `script/bundle`
due to running multiple `swift build` processes concurrently for the
`live_kit_client2` crate, building for the two architectures.

Release Notes:

NA
2023-11-20 12:36:25 -08:00
Max Brunsfeld
2731855487 Fix error when building live_kit_client2 for two architectures concurrently
Co-authored-by: Julia <julia@zed.dev>
2023-11-20 12:10:35 -08:00
Marshall Bowers
eb307b22f0 Rework List to use children (#3369)
This PR reworks the `List` component to use `children` instead of
accepting a `Vec<ListItem>` in its constructor.

This is a step towards making the `List` component more open.

Release Notes:

- N/A
2023-11-20 14:58:31 -05:00
Mikayla
6985b70859 fix gpui2 2023-11-20 11:55:27 -08:00
Conrad Irwin
25ed7c57c1 WIP 2023-11-20 12:34:08 -07:00
Conrad Irwin
d0dd44faad Merge branch 'main' into callback-handles 2023-11-20 12:21:42 -07:00
Max Brunsfeld
6e84f740aa Set -e in bump-nightly script
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-11-20 11:01:37 -08:00
Max Brunsfeld
c571273ab4 Allow bundling in debug mode with both architectures
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-11-20 11:00:12 -08:00
Max Brunsfeld
babd41916a Remove gpui (1) dependencies from zed2
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-11-20 10:46:16 -08:00
Mikayla
acbad4c7b7 WIP 2023-11-20 10:34:22 -08:00
Piotr Osiewicz
fe0a8b4be2 Fix warnings in tests 2023-11-20 19:25:14 +01:00
Piotr Osiewicz
d60855b06d Merge branch 'main' into search2 2023-11-20 19:23:35 +01:00
Piotr Osiewicz
99ef8ccd3f fixup dismissing of search bar 2023-11-20 19:07:37 +01:00
Conrad Irwin
6f0cdc35f3 Refine element and component traits (#3367)
This PR changes `Element::paint` to move self and introduces a new
`RenderOnce` trait, which renders into an element by moving self.
Elements are required to be `RenderOnce`, and `element_id` is now on
`RenderOnce` so we can get the id without moving self. The `child` and
`children` methods now expect `impl RenderOnce`.

```rust
pub trait Element<V: 'static>: 'static + RenderOnce<V> {
    type State: 'static;

    fn layout(
        &mut self,
        view_state: &mut V,
        element_state: Option<Self::State>,
        cx: &mut ViewContext<V>,
    ) -> (LayoutId, Self::State);

    fn paint(
        self,
        bounds: Bounds<Pixels>,
        view_state: &mut V,
        element_state: &mut Self::State,
        cx: &mut ViewContext<V>,
    );

    fn into_any(self) -> AnyElement<V> {
        AnyElement::new(self)
    }
}

pub trait RenderOnce<V: 'static>: Sized {
    type Element: Element<V> + 'static;

    fn element_id(&self) -> Option<ElementId>;

    fn render_once(self) -> Self::Element;

   // default helpers ...
}
```

To make a type a component, you can add `#[derive(RenderOnce)]`, which
will require your type to implement the `Component` trait:

```rust
pub trait Component<V: 'static>: 'static {
    type Rendered: RenderOnce<V>;

    fn render(self, view: &mut V, cx: &mut ViewContext<V>) -> Self::Rendered;
}
```

I'm satisfied with this being what we open source for elements, aside
from maybe adding a `StatefulComponent` trait that uses element state.
Things finally feel like they slot into a coherent and simple narrative.

Release Notes:

- N/A
2023-11-20 10:48:50 -07:00
Piotr Osiewicz
3ddfc7ff61 Remove unused import 2023-11-20 18:44:51 +01:00
Piotr Osiewicz
fa8cd843ca fixup! Merge branch 'main' into search2 2023-11-20 18:42:15 +01:00
Piotr Osiewicz
07cc5904f8 Merge branch 'main' into search2 2023-11-20 18:37:41 +01:00
Piotr Osiewicz
3d28495c67 fixup! Remove dbg statements 2023-11-20 18:35:39 +01:00
Piotr Osiewicz
ad38708ede Remove dbg statements 2023-11-20 18:31:30 +01:00
Piotr Osiewicz
c1f0ac30a0 Fix up tests once and for good 2023-11-20 18:24:37 +01:00
Conrad Irwin
b19a6c0dcc Fix storybook2 2023-11-20 10:16:05 -07:00
Conrad Irwin
5d16f76518 fmt 2023-11-20 10:05:57 -07:00
Conrad Irwin
8599ba557d Fix more import errors 2023-11-20 10:01:21 -07:00
Conrad Irwin
f08426c7a0 shhhh 2023-11-20 10:00:37 -07:00
Conrad Irwin
f86480ba5d Merge followup mess 2023-11-20 09:58:05 -07:00
Conrad Irwin
0798cfd58c Merge branch 'main' into derive-element-redux 2023-11-20 09:15:38 -07:00
Nate Butler
35e0b53639 Merge branch 'main' into refine-keybindings 2023-11-20 10:46:37 -05:00
Nate Butler
176a68f90f kb 2023-11-20 10:46:23 -05:00
Joseph T. Lyons
385028865e Add timestamp delta to telemetry events (#3365)
- [X] assistant_events
- [X] call_events
- [X] copilot_events
- [X] cpu_events
- [X] download_events
- [X] editor_events
- [X] memory_events
- [X] page_events
- [X] panic_events
---
- [X] For each of the previous tables:
    - [X] backup events to comp
    - [X] make new table (changing any time fields to be datetime64)
    - [X] copy data
    - [X] rename old table
    - [X] rename new table
---
- [ ] Delete all old tables once (going to hold off on this for some
time - want to make sure things are working correctly)
    - [X] we see new data coming in on new tables
    - [X] old times truncate correctly
    - [X] new times show millisecond values
---
- [X] check dashboards to make sure queries didn't get broken from
changing time data type
    - [X] Fix broken charts
- [X] monitor vercel for runtime errors

---

- [X] zed.dev changes
- [X] chrono changes to panicked_on
    - [X] Make sure new panics are good
- [X] remove commented out code and dbg code
- [X] triple check that both crate versions have the changes
- [X] make sure all event function calls use the same original arguments
- [X] Finish testing version 2

Release Notes:

- N/A
2023-11-20 09:27:18 -05:00
Joseph T. Lyons
966bf56ddb Activate telemetry in zed2 2023-11-20 09:08:07 -05:00
Piotr Osiewicz
8d4828a2e8 Circumvent part of the tests 2023-11-20 13:43:56 +01:00
Mikayla
f3eb1d4abf Add button port example 2023-11-19 19:11:51 -08:00
Joseph T. Lyons
5dc3369cf6 Remove unused imports 2023-11-19 22:09:14 -05:00
Joseph T. Lyons
722ad5a01d Fix data types 2023-11-19 22:03:55 -05:00
Joseph T. Lyons
8e612e4287 Restore commented-out code 2023-11-19 22:00:01 -05:00
Joseph T. Lyons
e0f8615d52 Remoe dbg!()s 2023-11-19 21:55:19 -05:00
Joseph T. Lyons
3abd376d6a Add timestamp delta to telemetry events 2023-11-19 21:52:28 -05:00
Conrad Irwin
45371584b1 Focus workspace on launch (#3364)
Fixes action dispatch when no focus is there.

Release Notes:

- N/A
2023-11-19 19:38:41 -07:00
Mikayla
88024ca7c9 Remove V parameter on elements 2023-11-19 18:32:31 -08:00
Conrad Irwin
c0d85dc1dd Fix text wrapping when a child of a v_stack() (#3362)
Previously text that was rendered in a flex-column would reserve the
correct
amount of space during layout, and then paint itself incorrectly.

Release Notes:

- N/A
2023-11-19 11:37:31 -07:00
Piotr Osiewicz
b67193e322 ui2: Do not enable 'stories' feature by default. (#3363)
This cuts down LLVM IR size from 3 million lines to 700k in debug build.
This then leads to ~3s compile time in debug build (without incremental
on ui itself), as opposed to 10.5s on main.

Release Notes:

- N/A
2023-11-19 12:11:42 +01:00
Piotr Osiewicz
e83a297229 Move binding function back into keybinding module 2023-11-19 11:54:46 +01:00
Piotr Osiewicz
31336b0b7d ui2: Do not enable 'stories' feature by default.
This cuts down LLVM IR size from 3 million lines to 700k in debug build.
This then leads to ~3s compile time in debug build (without incremental on ui itself), as opposed to 10.5s on main.
2023-11-19 11:44:33 +01:00
Conrad Irwin
c5738a509c delint 2023-11-18 22:20:50 -07:00
Conrad Irwin
0711121586 Add some test cases 2023-11-18 22:16:28 -07:00
Nathan Sobo
33cd6f520a Clean compile with redesigned element traits 2023-11-18 21:51:47 -07:00
Conrad Irwin
cf47ed2c5f Fix wrapping when parent has a max_width
(Also avoid re-wrapping text we already wrapped)
2023-11-18 21:31:16 -07:00
Conrad Irwin
242a0b85b5 Update Taffy to latest main 2023-11-18 21:30:33 -07:00
Conrad Irwin
7172ce37b1 Fix text wrapping when a child of a v_stack() 2023-11-18 20:35:22 -07:00
Nathan Sobo
0673606de8 WIP 2023-11-18 20:22:43 -07:00
Nathan Sobo
adc355a1e6 Element refinement passing on ui2 2023-11-18 20:05:47 -07:00
Mikayla Maki
073405018e Revert changes 2023-11-18 16:37:34 -08:00
Mikayla Maki
b758d1b871 Update bundle 2023-11-18 13:06:23 -08:00
Mikayla Maki
fd8ebb4f17 Update bundle 2023-11-18 11:50:54 -08:00
Mikayla Maki
a73db6bfca Fix more bundling errors (#3361)
Release Notes:

- N/A
2023-11-18 10:59:35 -08:00
Mikayla
ede7656f02 please work 2023-11-18 10:46:35 -08:00
Mikayla Maki
30b7da0e4a N/t6 (#3360)
[[PR Description]]

- Fix broken pane group spacing
- Work on diagnostics styling (still wip)

Release Notes:

- N/A
2023-11-17 23:29:18 -08:00
Nathan Sobo
be33f000e2 WIP: Lots of errors, starting on resurrecting derive Element 2023-11-18 00:27:40 -07:00
Mikayla
55dbcf2039 Remove unused imports 2023-11-17 23:14:14 -08:00
Nate Butler
f9804feefa Remove flex_1 from bottom dock to fix pane group spacing 2023-11-18 02:06:51 -05:00
Nathan Sobo
23ffce9fbe WIP: Work toward eliminating Component trait
This refactor enhances the overall design by promoting reusable and composable UI component structures within the Zed project codebase.
2023-11-18 00:03:23 -07:00
Nathan Sobo
2515bbf990 Move self in Element::paint
Remove mutable state borrows in favor of state ownership in render processes to streamline element rendering.
2023-11-17 23:32:55 -07:00
Mikayla
461fa8d71e Testing the auto-updater 2023-11-17 22:17:42 -08:00
Mikayla Maki
e1285b9780 Add nightly release channel for zed2 (#3355)
Release Notes:

- N/A
2023-11-17 22:12:18 -08:00
Nate Butler
d6f173866e Use muted color for fold indicators 2023-11-18 01:02:40 -05:00
Nate Butler
b218ab4755 Remove default hover state for icon buttons 2023-11-18 01:02:21 -05:00
Nate Butler
101fe7fbb5 Update diagnostic status bar tool 2023-11-18 00:54:01 -05:00
Mikayla
fd6e47c167 Fix auto update command 2023-11-17 21:52:49 -08:00
Nate Butler
9969caf513 Style empty diagnostics as an editor 2023-11-17 23:39:40 -05:00
Nathan Sobo
0069dd5ce6 WIP 2023-11-17 20:05:37 -07:00
Mikayla
eb2e9a59b7 Fix bundling again 2023-11-17 18:27:11 -08:00
Mikayla
16f420528d Remove CLI from zed2 (for now) 2023-11-17 18:09:42 -08:00
Mikayla
e43696eb6b Temporary debug builds for faster ci testing 2023-11-17 17:46:05 -08:00
Mikayla
70d0421b3c Fix bundle script 2023-11-17 17:44:41 -08:00
Max Brunsfeld
ee753beebd Build nightly release based on 'nightly' tag, not any tag w/ nightly prefix 2023-11-17 17:21:35 -08:00
Mikayla
bf324c152b Add bump nightly script 2023-11-17 17:14:48 -08:00
Mikayla
dd283b471a Add autoupdate2
co-authoredby: max@zed.dev
2023-11-17 15:48:32 -08:00
Max Brunsfeld
a03d062120 Make the commit sha availabe in the app, via a global
Co-authored-by: Mikayla <mikayla@zed.dev>
Co-authored-by: Kirill <kirill@zed.dev>
2023-11-17 14:52:43 -08:00
Max Brunsfeld
a8bea41ad8 Put release channel back to dev 2023-11-17 14:31:49 -08:00
Max Brunsfeld
6a22ab83cf Fix cargo check --tests invocation 2023-11-17 14:16:12 -08:00
Max Brunsfeld
5e2eb436ff Check out repo outside of reusable actions
Co-authored-by: Mikayla <mikayla@zed.dev>
Co-authored-by: Kirill <kirill@zed.dev>
2023-11-17 14:14:03 -08:00
Max Brunsfeld
c684f08e30 Wire up release_nightly workflow, to upload artifacts to DO spaces
Co-authored-by: Kirill <kirill@zed.dev>
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-11-17 14:07:51 -08:00
Julia
c9fc7eac4f zed2: Project diagnostics (#3359)
Release Notes:

- N/A
2023-11-17 16:54:00 -05:00
Julia
189ddf9380 Merge branch 'main' into unborked-git-zed2-diagnostics-view 2023-11-17 16:43:29 -05:00
Julia
62297a56c8 Render diagnostics header and summary 2023-11-17 16:32:35 -05:00
Julia
24c9bbf461 Render a more correct diagnostic indicator status panel button 2023-11-17 16:32:35 -05:00
Julia
3655a96e54 Merge branch 'main' into unborked-git-zed2-diagnostics-view 2023-11-17 16:32:35 -05:00
Julia
967ef9d414 Render diagnostics view and such a bit more 2023-11-17 16:32:35 -05:00
Julia
c6d22af416 Get diagnostic2 tests building and running 2023-11-17 16:32:35 -05:00
Julia
a464a7da2a Merge branch 'main' into unborked-git-zed2-diagnostics-view 2023-11-17 16:32:35 -05:00
Julia
f4eb219c75 Get diagnostics view almost building in the zed2 world
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-11-17 16:32:35 -05:00
Conrad Irwin
ec3bb0f090 Focus workspace on launch
Fixes action dispatch when no focus is there.
2023-11-17 14:11:39 -07:00
Kirill Bulatov
12b59daa1e Allow to exclude files from worktrees (#3356)
* Part of https://github.com/zed-industries/community/issues/70

Allows to fully remove from Zed certain files or file groups: no items
will be scanned or added into worktrees, so nothing will be shown in
project tree, project search and go to file would not see those,
corresponding FS events will be ignored.

One exclusion is .git files: those are still not shown or accessible by
default, yet tracked in the worktrees.

By default, is configured to 
```json
  "file_scan_exclusions": [
    "**/.git",
    "**/.svn",
    "**/.hg",
    "**/CVS",
    "**/.DS_Store",
    "**/Thumbs.db",
    "**/.classpath",
    "**/.settings"
  ],
```

* In addition, contains code preparations for "search in included files"
feature: new SearchOptions variant, search crate and RPC adjustments

Release Notes:

- Added `file_scan_exclusions` section to project settings to completely
ignore certain files in Zed
2023-11-17 23:06:47 +02:00
Mikayla Maki
7a8da8ce11 Adjust the type arrangement on ManagedViews (#3354)
Made the trait into a blanket-trait impl if you have it's two
constituent pieces (FocusableView and EventEmitter) to remove the
duplicated method. I also changed the struct to an enum for aesthetic
reasons (EventType::EventName feels self documenting to me) and added
some new `cx` APIs utilizing our new powers of dismissal.

Release Notes:

- N/A
2023-11-17 13:04:57 -08:00
Conrad Irwin
a6d6f8a193 shhh (#3358)
- Fix image errors


Release Notes:

- N/A
2023-11-17 14:01:44 -07:00
Kirill Bulatov
d352a63d9d Port new workspace logic to gpui2, uncomment most of the workspace2 tests 2023-11-17 22:54:19 +02:00
Mikayla
f44f60c6e6 WIP: 2023-11-17 12:54:16 -08:00
Nathan Sobo
c866c211b5 Make static str and SharedString implement Element 2023-11-17 13:48:01 -07:00
Conrad Irwin
6bfe6fa0e1 Fix image errors
* Firstly only log one error per image load, not per frame
* Secondly use an Icon not an image for rendering Icons
2023-11-17 13:47:07 -07:00
Mikayla
149b9d1aa6 Merge branch 'main' into managed-view-adjustment 2023-11-17 12:40:44 -08:00
Conrad Irwin
624bd0a05a Collab ui2 (#3357)
* Clickable context menus & movable panels – what will they think of
next?!

Release Notes:

- N/A
2023-11-17 13:33:18 -07:00
Conrad Irwin
ceb20dea96 Refactorings 2023-11-17 13:23:12 -07:00
Mikayla
6976af5029 Push some sketches 2023-11-17 12:16:55 -08:00
Kirill Bulatov
616bda85e9 Fix the tests 2023-11-17 21:40:57 +02:00
Kirill Bulatov
2759ed4d00 An attempt to ignore git regularly 2023-11-17 21:40:57 +02:00
Kirill Bulatov
8180938401 Fix most of the TODOs 2023-11-17 21:40:57 +02:00
Kirill Bulatov
6028cd90d4 Retract back to original scanning strategy
Do not descend into ignored directories, to avoid tracking their state.
2023-11-17 21:40:57 +02:00
Kirill Bulatov
906db58188 Defer ignored dirs scanning 2023-11-17 21:40:57 +02:00
Kirill Bulatov
30fefa0ef8 Use a better name 2023-11-17 21:40:57 +02:00
Kirill Bulatov
5f468970f0 Fix some of the old tests 2023-11-17 21:40:57 +02:00
Kirill Bulatov
d3ce82e82c Fix the new test 2023-11-17 21:40:57 +02:00
Kirill Bulatov
cafeba103b Exclude ignored opened buffers from search 2023-11-17 21:40:57 +02:00
Kirill Bulatov
ce2cfc6035 Fix the ! bug, better test draft 2023-11-17 21:40:57 +02:00
Kirill Bulatov
26f7e66b49 Add default scan excluded files settings 2023-11-17 21:40:56 +02:00
Kirill Bulatov
c52fe2f536 Move toggle ignored button into include directories editor 2023-11-17 21:40:56 +02:00
Kirill Bulatov
9373d38434 Rescan worktree on scan exclusions settings change 2023-11-17 21:40:56 +02:00
Kirill Bulatov
1612c90052 More lenient file path matchers 2023-11-17 21:40:56 +02:00
Kirill Bulatov
b8be720490 Fix the bugs 2023-11-17 21:40:56 +02:00
Kirill Bulatov
126e4cce8f Scan all ignored files by default now 2023-11-17 21:40:56 +02:00
Kirill Bulatov
401f85bed2 Properly ignore elements from configured exceptions 2023-11-17 21:40:56 +02:00
Kirill Bulatov
9072e5a507 Properly set ignore stacks and is_ignored values 2023-11-17 21:40:56 +02:00
Kirill Bulatov
7d97dfa6be Test and filter data draft 2023-11-17 21:40:56 +02:00
Kirill Bulatov
a5c615ceb4 Pass a new query parameter into the search 2023-11-17 21:40:56 +02:00
Conrad Irwin
eb04160d2d Dock menu 2023-11-17 12:14:06 -07:00
Conrad Irwin
9d742b90c3 Allow you to click on a context menu item 2023-11-17 11:57:51 -07:00
Mikayla
5cf953d559 Add error messages to server deployment for nightly 2023-11-17 10:31:10 -08:00
Mikayla
17d53d0e38 Rename again, add fun cx APIs using new traits 2023-11-17 10:06:41 -08:00
Mikayla
01d9d53f4a Adjust the type arrangement on ManagedViews 2023-11-17 09:51:11 -08:00
Max Brunsfeld
8837045abb Fix underspecified assertions in new tests for file reload race (#3353)
I accidentally left the test assertions unnecessarily vague in
https://github.com/zed-industries/zed/pull/3348. This PR makes the
assertions constrain the behavior more specifically. I also added a
second test for a related bug that was fixed in that PR, about
performing and undoing an edit while a buffer reload is in-progress.

Release Notes:

- NA
2023-11-17 09:32:00 -08:00
Max Brunsfeld
55548ca61a Fix underspecified assertions in new tests for file reload race 2023-11-17 09:14:31 -08:00
Piotr Osiewicz
3b5754a77e Clean up tests (they compile now) 2023-11-17 17:23:47 +01:00
Piotr Osiewicz
eb9959a0cf gpui: notifications now takes an entity instead of a model 2023-11-17 17:23:05 +01:00
Piotr Osiewicz
ae1ebc6858 fixup! Remove dead code (for now). 2023-11-17 17:22:52 +01:00
Piotr Osiewicz
27600b6b8d Remove dead code (for now).
Ensure actions are registed just once (previously some were registered on both Workspace and search bar itself).
2023-11-17 14:42:20 +01:00
Piotr Osiewicz
741e11cc11 Fix up action derive 2023-11-17 13:27:33 +01:00
Piotr Osiewicz
f23cc724d4 chore: cargo fmt 2023-11-17 13:23:42 +01:00
Piotr Osiewicz
dca2dc7b6b Merge branch 'main' into search2 2023-11-17 13:22:30 +01:00
Piotr Osiewicz
8845f5a183 Clean up warnings 2023-11-17 13:22:07 +01:00
Kirill Bulatov
6680e1e9fe Create new Zed release channel: nightly 2023-11-17 12:13:32 +02:00
Antonio Scandurra
27cd7b204d Merge branch 'main' into editor2-autocomplete 2023-11-17 11:03:25 +01:00
Kirill Bulatov
9d8184670a Remove binary target collisions between zed & zed2 (#3352)
Get rid of the following warnings:

```
The example target `test_app` in package `live_kit_client2 v0.1.0 (/Users/someonetoignore/work/zed/zed/crates/live_kit_client2)` has the same output filename as the example target `test_app` in package `live_kit_client v0.1.0 (/Users/someonetoignore/work/zed/zed/crates/live_kit_client)`.
Colliding filename is: /Users/someonetoignore/work/zed/zed/target/debug/examples/test_app
The targets should have unique names.
Consider changing their names to be unique or compiling them separately.
This may become a hard error in the future; see <https://github.com/rust-lang/cargo/issues/6313>.
warning: output filename collision.
The example target `test_app` in package `live_kit_client2 v0.1.0 (/Users/someonetoignore/work/zed/zed/crates/live_kit_client2)` has the same output filename as the example target `test_app` in package `live_kit_client v0.1.0 (/Users/someonetoignore/work/zed/zed/crates/live_kit_client)`.
Colliding filename is: /Users/someonetoignore/work/zed/zed/target/debug/examples/test_app.dSYM
The targets should have unique names.
Consider changing their names to be unique or compiling them separately.
This may become a hard error in the future; see <https://github.com/rust-lang/cargo/issues/6313>.

---------------

warning: output filename collision.
The bin target `Zed` in package `zed2 v0.109.0 (/Users/administrator/actions-runner-1/_work/zed/zed/crates/zed2)` has the same output filename as the bin target `Zed` in package `zed v0.113.0 (/Users/administrator/actions-runner-1/_work/zed/zed/crates/zed)`.
Colliding filename is: /Users/administrator/actions-runner-1/_work/zed/zed/target/debug/Zed.dSYM
The targets should have unique names.
Consider changing their names to be unique or compiling them separately.
This may become a hard error in the future; see <https://github.com/rust-lang/cargo/issues/6313>.
```

as we plant to build *.dmg of both versions for a while.

Release Notes:

- N/A
2023-11-17 10:02:27 +02:00
Kirill Bulatov
89e44d4901 Remove binary target collisions between zed & zed2 2023-11-17 09:56:28 +02:00
Mikayla Maki
41ac8ef909 Restore saving (#3351)
and a bunch of random workspace stuff!

Release Notes:

-
2023-11-16 23:22:01 -08:00
Mikayla
1693718637 Merge branch 'main' into saving-2 2023-11-16 23:11:38 -08:00
Mikayla
9a3cd073c7 Restore a bunch of random workspace stuff 2023-11-16 23:05:28 -08:00
Nathan Sobo
2fb13cf1ca Separate WrappedLines from ShapedLines (#3350)
ShapedLines are never wrapped, whereas WrappedLines are optionally
wrapped if they are associated with a wrap width. Originally, when
rewriting GPUI, I tried to combine everything because wrapping is
inherently optional for the Text element, but we have a bunch of APIs
that don't make sense on a line that may wrap, so we need a distinct
type for that case.

This is a precursor to implementing clickable links in markdown. I
noticed multiple places where we were confused about whether or not the
line was wrapped so this felt important.

Release Notes:

- N/A
2023-11-16 23:20:35 -07:00
Conrad Irwin
391ab8fa1b Add more detail to panel switcher interaction (#3344)
Also featuring:
* IconButton#action()
* gpui::ManagedView
* `menu_handle()`

Release Notes:

- N/A
2023-11-16 23:16:50 -07:00
Nathan Sobo
9558da8681 Separate WrappedLines from ShapedLines
ShapedLines are never wrapped, whereas WrappedLines are optionally wrapped if
they are associated with a wrap width. I tried to combine everything because
wrapping is inherently optional for the Text element, but we have a bunch of
APIs that don't make sense on a line that may wrap, so we need a distinct type
for that case.
2023-11-16 23:10:51 -07:00
Conrad Irwin
2d1d75f482 +ManagedView
And some games with rust traits
2023-11-16 23:02:10 -07:00
Conrad Irwin
2182cb2656 Ooh generics 2023-11-16 22:16:29 -07:00
Conrad Irwin
6d4276ea5f Merge branch 'main' into collab_ui2 2023-11-16 22:08:42 -07:00
Conrad Irwin
c0ad15756c More attachment configuration for context menus 2023-11-16 21:59:23 -07:00
Max Brunsfeld
e67c44a562 Fix file-reloading race condition (#3348)
### Summary

This PR fixes a bug that @as-cii and @osiewicz saw when the on-disk
contents of files changed due to running `git checkout` at the command
line. It caused a buffer's contents to diverge from the file's on disk
contents, but the buffer to show an *unmodified* status.

I've also introduced new APIs on gpui's deterministic executor, which
make it possible to write a test that reliably triggered the bug.

### Details

The bug is triggered by the following sequence of events:
1. A buffer's file changes on disk while the buffer is *unmodified*
2. Zed reloads the new content of the file
3. Before updating the buffer itself, Zed computes a *diff* between the
buffer's current contents, and the newly-loaded contents
4. While this diff is being computed, one of two things happens:
     1. the buffer changes on-disk *again*.
2. the user edits the buffer, but undoes the edit, so that the buffer
returns to an unmodified state

The bug itself was caused by a few things:
* The buffer diffing algorithm is pretty slow, because we perform a
character-wise diff
* We previously allowed multiple reload tasks to run concurrently
* When discarding an out-of-date diff, we failed to update parts of the
buffer's state (`saved_fingerprint`) which allow us to recognize that
the buffer's content differs from the file.

It was also difficult to reproduce the problem in tests, because under
deterministic execution, because it was extremely unlikely for other
tasks to make progress *after* a file had been reloaded, but *before*
the disk task has resolved. To help with testing, I introduced a pair of
executor APIs:

`spawn_labeled`, - for spawning a background task with a given *label*
`deprioritize_task` - for forcing tasks with a given label to run
*after* all other concurrent tasks.

I also made the `Model::next_event` test helper method more useful, in
that it no longer runs *until* parked in order to wait for the next
event to occur. It just steps the executor one poll at a time until the
model emits an event.

Release Notes:

- Fixed a bug that caused buffers to report incorrect modified/conflict
status when their buffers changed on disk multiple times in rapid
succession.
2023-11-16 20:19:16 -08:00
Max Brunsfeld
32979f3aca Rename deprioritize_task -> deprioritize
It applies to a family of tasks, not a task.
2023-11-16 20:03:18 -08:00
Max Brunsfeld
f3b6719c76 Rename both PlatformDispatcher::poll and Executor::run_step to 'tick'
Co-authored-by: Nathan Sobo <nathan@zed.dev>
2023-11-16 19:58:26 -08:00
Conrad Irwin
9547e88d88 TEMP 2023-11-16 19:50:31 -07:00
Conrad Irwin
547888942f Add storybook3 2023-11-16 19:42:25 -07:00
Mikayla Maki
61bd6bab09 Actions‽ (#3349)
This PR re-implements our actions with macros instead of a blanket impl.

Release Notes:

- N/A
2023-11-16 18:18:04 -08:00
Mikayla
432572c592 #RemoveThe2 2023-11-16 18:04:35 -08:00
Max Brunsfeld
17b2b112bc Don't update file's saved mtime when reload is aborted 2023-11-16 18:02:49 -08:00
Mikayla
49d3e1cc4b Add default derive 2023-11-16 17:39:05 -08:00
Mikayla
4de2c0f7ef Re-implement actions as derive macros instead of blanket impls 2023-11-16 17:32:02 -08:00
Max Brunsfeld
0bed5e4562 Port buffer reload bug fixes back to gpui1 crates 2023-11-16 16:03:14 -08:00
Max Brunsfeld
5f1acae0d3 Fix race conditions and bugs in Buffer::reload 2023-11-16 16:03:14 -08:00
Max Brunsfeld
89d73f713a Label the buffer's diff task so it can be deprioritized in tests 2023-11-16 16:03:13 -08:00
Max Brunsfeld
b2451d9dd6 Combine adjacent edits in buffer's diff 2023-11-16 16:03:05 -08:00
Conrad Irwin
074a221e0f Progress on ContextMenu 2023-11-16 16:59:27 -07:00
Max Brunsfeld
f9650b3111 Don't run until all the way until parked when waiting for a model's next event 2023-11-16 15:54:00 -08:00
Max Brunsfeld
6397c05835 Add the ability to deprioritize specific labeled tasks in tests 2023-11-16 15:54:00 -08:00
Conrad Irwin
9456f716c2 Only send one right click event 2023-11-16 15:30:53 -07:00
Nate Butler
83dfb191d6 UI size + other theme refinements (#3347)
[[PR Description]]

- Fixes bad titlebar states when the ui scale is set very low
- Tidies up a number of workspace styles

Release Notes:

- N/A
2023-11-16 16:30:47 -05:00
Nate Butler
3223e21d9f Add dock borders 2023-11-16 16:17:17 -05:00
Nate Butler
9c5f580012 Use Selected for active IconButtons 2023-11-16 16:17:10 -05:00
Nate Butler
3d8e63b93b Buttons should always use cursor_pointer 2023-11-16 16:09:11 -05:00
Nate Butler
c2d6d24952 Ensure the titlebar stays large enough even with small ui sizes 2023-11-16 16:01:42 -05:00
Nate Butler
a526f23c81 Add ui_font settings and set default rem size accordingly (#3346)
[[PR Description]]
- Adds ui_font_family, ui_font_features, ui_font_size to settings and
default settings
- Use the new ui font settings to set the rem size when the workspace is
created.

Release Notes:

- N/A
2023-11-16 15:40:33 -05:00
Conrad Irwin
267e07472d Checkpoint, MenuHandle can open one 2023-11-16 13:32:19 -07:00
Nate Butler
ffd092a098 Add ui_font_* for tests 2023-11-16 15:30:50 -05:00
Nate Butler
fa9f4a9355 Init rem_size in the workspace at the start of the render
Co-Authored-By: Mikayla Maki <mikayla.c.maki@gmail.com>
2023-11-16 13:43:36 -05:00
Mikayla
a0e976599c Salvage old distributed slice code 2023-11-16 10:32:55 -08:00
Nate Butler
08dddf0b26 Revert change to default buffer font size 2023-11-16 13:13:03 -05:00
Marshall Bowers
b559bfd80f Parameterize theme2::init to allow loading just the base theme (#3345)
This PR adds a parameter to the `theme2::init` method to indicate what
the theme-loading behavior should be.

This allows us to indicate when we want to load all of the additional
built-in user themes (like in the Zed binary and in the storybook), and
when we don't want to load the user themes (like in tests).

We're using an enum over just a `bool` here for clarity at the call
site.

Release Notes:

- N/A
2023-11-16 13:03:30 -05:00
Piotr Osiewicz
f8b91bd0f0 Fix some of the warnings 2023-11-16 18:36:19 +01:00
Conrad Irwin
d782426491 Dismiss tooltips on click 2023-11-16 10:26:09 -07:00
Conrad Irwin
4540f04dbe Add more detail to panel switcher interaction 2023-11-16 09:57:59 -07:00
Nate Butler
38d0fdc09a Remove todo
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-11-16 11:42:23 -05:00
Nate Butler
b2f9c454b0 Change the default buffer font size to 16
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-11-16 11:38:04 -05:00
Nate Butler
c71e522b4e Allow users to set UI font properties in their settings
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-11-16 11:37:46 -05:00
Piotr Osiewicz
6b6a30c3da Merge branch 'main' into search2 2023-11-16 17:16:15 +01:00
Kirill Bulatov
2aa7c6f2b4 Add a simple context menu into terminal2 (#3343)
Release Notes:

- N/A
2023-11-16 16:41:27 +02:00
Kirill Bulatov
ab0a3f19ab Add an actual context menu into terminal-2
(click the text, not the pane!)

Co-Authored-By: Piotr <piotr@zed.dev>
2023-11-16 16:36:44 +02:00
Antonio Scandurra
c08ce1c3b8 Start rendering autocompletion menu 2023-11-16 14:55:06 +01:00
Antonio Scandurra
781a95d2e3 Add back Completion::documentation 2023-11-16 14:47:45 +01:00
Kirill Bulatov
f638d4ce1d Add basic context menu element 2023-11-16 14:35:13 +02:00
Kirill Bulatov
0f0b7090b8 Fix more errors in terminal element 2023-11-16 13:10:43 +02:00
Kirill Bulatov
03b4c7c464 Terminal 2 (#3342)
Release Notes:

- N/A
2023-11-16 10:59:42 +02:00
Kirill Bulatov
fd61683c46 WIP 2023-11-16 10:40:02 +02:00
Kirill Bulatov
e3465fbcf9 Comment out the terminal view 2023-11-16 10:04:20 +02:00
Kirill Bulatov
a238368296 More compilation fixes 2023-11-16 10:04:18 +02:00
Kirill Bulatov
61d6cb880c Start porting terminal_element to gpui2
Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
2023-11-16 10:04:03 +02:00
Kirill Bulatov
d89c51135a Start porting terminal_view to gpui2
Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
2023-11-16 10:04:03 +02:00
Mikayla Maki
c8f83e2d4d Tabs n splits (#3340)
Adds back:

- [x] Tab clicking
- [x] Splits ~
- [x] Workspace deserialization

Also adds a new `FocusableView` API to GPUI

Release Notes:

- N/A
2023-11-15 23:52:43 -08:00
Mikayla
9da0b78ead Merge branch 'main' into tabs-n-splits 2023-11-15 23:41:25 -08:00
Mikayla
e9e1170976 Compile taffy in release mode 2023-11-15 23:15:36 -08:00
Mikayla
c70c0f9ae9 Remove initialize_workspace 2023-11-15 23:11:31 -08:00
Conrad Irwin
613add0aed collab ui2 (#3341)
Panel switching

* Also: Tooltip::text("whatever", cx);
* And: Tooltip::for_action("whatever", &collab_panel::Toggle, cx);
* And `overlay()` in Gpui2 (similar to `Overlay` in gpui).

Release Notes:

- N/A
2023-11-15 23:10:52 -07:00
Conrad Irwin
74afa62a55 Add Overlay component to gpui2 2023-11-15 23:00:36 -07:00
Conrad Irwin
8c14a8fa95 Merge branch 'main' into collab_ui2 2023-11-15 21:04:47 -07:00
Conrad Irwin
0a9fb3978b Enable panel switching 2023-11-15 21:01:00 -07:00
Nathan Sobo
e5ada92b7b Remove initialize from the Element trait (#3338)
Initially, we imagined registering keyboard handlers in the initialize
phase so we would understand the relationships between focus handles
during the layout pass, which would allow us to assign assign `focus_in`
styles that impact layout.

However, we soon realized that many elements aren't created until paint
time anyway, such as within the uniform list. Since it's impossible to
know prior to paint whether an element contains the focused element, it
makes more sense to eliminate the `focus_in` styling helper.

Release Notes:

- N/A
2023-11-15 19:36:35 -07:00
Mikayla
78cea69172 Add focusable view and restore workspace deserialization. Partially restore split and tab functions 2023-11-15 16:36:43 -08:00
Conrad Irwin
7f70712dac Uncomment enough to register the panel 2023-11-15 16:44:21 -07:00
Conrad Irwin
0e79a7f26b collab ui2 (#3339)
- Move placeholder titlebar render to collab_ui

Release Notes:

- N/A
2023-11-15 16:21:52 -07:00
Mikayla
e905ababcd Add back splitting 2023-11-15 15:21:19 -08:00
Conrad Irwin
793fa6e3a4 Move placeholder titlebar render to collab_ui 2023-11-15 16:09:21 -07:00
Conrad Irwin
84bcbf1128 Add collab_ui2 2023-11-15 16:08:03 -07:00
Mikayla
faf93aed4e checkpoint 2023-11-15 14:17:04 -08:00
Nathan Sobo
4f09633379 Remove focus_in styling helper 2023-11-15 14:17:49 -07:00
Nathan Sobo
c6b374ebc9 Remove initialize method from Element trait 2023-11-15 14:11:19 -07:00
Conrad Irwin
26d90a5e48 Leaky, but better, test abstraction (#3337)
Make test view creation a bit more ergonomic 

Release Notes:

- N/A
2023-11-15 14:09:02 -07:00
Conrad Irwin
0a51784dd0 Leaky, but better, test abstraction 2023-11-15 14:01:10 -07:00
Conrad Irwin
19c0b390d2 FileFinder tests (#3336)
Also including:
* Fixes for focus when closing the last item in a pane
* Workspace#active_item_as::<Editor>()
* cx.simulate_input()

Release Notes:

- N/A
2023-11-15 13:24:34 -07:00
Conrad Irwin
cebc8428c8 FileFinder tests 2023-11-15 13:16:28 -07:00
Antonio Scandurra
33a808a49b WIP 2023-11-15 20:41:09 +01:00
Antonio Scandurra
ffcc1cbf77 Clear the state of keystroke matchers when focus changes (#3335)
Release Notes:

- N/A
2023-11-15 20:41:01 +01:00
Antonio Scandurra
759ce7440c Avoid unnecessary call to with_element_id in RenderViewWith
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-11-15 20:12:30 +01:00
Antonio Scandurra
1d04dc5dbf Clear the state of keystroke matchers when focus changes
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-11-15 20:11:07 +01:00
Antonio Scandurra
3978d4e872 Show fold indicators (#3334)
Release Notes:

- N/A
2023-11-15 20:10:24 +01:00
Antonio Scandurra
08dfcba68a Fix panic when painting blocks 2023-11-15 20:02:35 +01:00
Antonio Scandurra
c225a3e5af Don't use Mutex or Arc now that app state is not Send
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-11-15 18:50:34 +01:00
Antonio Scandurra
c7b7f7dfd5 Move render_view into View::render_with
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-11-15 18:50:09 +01:00
Joseph T. Lyons
d791fc707a v0.114.x dev 2023-11-15 12:47:40 -05:00
Antonio Scandurra
9ff238921f Fix clicking on code action and fold indicators
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-11-15 18:29:53 +01:00
Antonio Scandurra
17b8e4a684 Handle clicking folded ranges
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-11-15 18:19:26 +01:00
Antonio Scandurra
3ff8c78b58 Return a Fold struct when querying the FoldMap
This contains a new `id` field that lets us distinguish among folds.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-11-15 17:09:59 +01:00
Conrad Irwin
1db4fab3ab Add command palette tests and simulate_keystrokes (#3330)
Release Notes:

- N/A
2023-11-15 08:00:41 -07:00
Kirill Bulatov
aa0563c656 More detailed errors when opening files (#3333)
Release Notes:

- N/A
2023-11-15 16:31:48 +02:00
Piotr Osiewicz
69e01e67dc Bind cycle_mode action 2023-11-15 15:22:35 +01:00
Kirill Bulatov
888098bad2 More detailed errors when opening files 2023-11-15 16:20:00 +02:00
Piotr Osiewicz
c37faf0ab3 Add query history and replace buttons 2023-11-15 15:05:48 +01:00
Antonio Scandurra
851a60a68e Render fold indicators in the gutter 2023-11-15 14:07:37 +01:00
Piotr Osiewicz
b11bfa8821 Merge branch 'main' into search2 2023-11-15 12:54:26 +01:00
Antonio Scandurra
c0f43d964c Introduce rename in editor2 (#3331)
Release Notes:

- N/A
2023-11-15 11:15:08 +01:00
Antonio Scandurra
786cc59d7a Fix formatting 2023-11-15 11:07:32 +01:00
Antonio Scandurra
45381e566c Fix focus management on editor when renaming 2023-11-15 11:05:09 +01:00
Antonio Scandurra
003e4bc241 Extract out a register_actions function 2023-11-15 09:53:32 +01:00
Antonio Scandurra
feeb44c122 Merge remote-tracking branch 'origin/main' into editor2-rename
# Conflicts:
#	crates/editor2/src/editor.rs
#	crates/editor2/src/element.rs
#	crates/gpui2/src/style.rs
2023-11-15 09:51:33 +01:00
Antonio Scandurra
c3094b7c3d Introduce gpui::render_view 2023-11-15 09:45:23 +01:00
Antonio Scandurra
1def355d44 Don't return Result from TextStyle::highlight 2023-11-15 09:10:46 +01:00
Conrad Irwin
c81bd288d4 Fix test 2023-11-14 23:47:08 -07:00
Conrad Irwin
91b54b352b Add command palette tests and simulate_keystrokes 2023-11-14 23:22:51 -07:00
Nathan Sobo
e37d7f5b0e Fix click events by notifying when we assign pending_mouse_down (#3329)
We need to notify when we set the pending mouse down so we attach the
mouse up event listener before the mouse button is released.

Release Notes:

- N/A
2023-11-14 19:55:23 -07:00
Nathan Sobo
32ad486a8e Document contexts 2023-11-14 19:52:51 -07:00
Nathan Sobo
00d8921ae9 Fix click events by notifying when we assign pending_mouse_down 2023-11-14 19:22:41 -07:00
Max Brunsfeld
f9a5e141aa Fix uncached raster_bounds computation and font selection (#3328)
This fixes some slowness we noticed when scrolling an editor in `zed2`.
2023-11-14 17:27:12 -08:00
Max Brunsfeld
8de8615176 Fix uncached raster_bounds computation and font selection
Co-authored-by: Nathan Sobo <nathan@zed.dev>
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-11-14 17:19:10 -08:00
Mikayla Maki
96f0257fb3 Simplify element types (#3318)
This PR does away with the extra type parameters on Div and instead
introduces two wrapper elements, `Stateful` and `Focusable`. All of the
interactivity is stored on `Interactivity` and `InteractiveState`, which
is stored on the base element. The wrappers simply control what methods
are available to call.

Not sure this is fully working, but a smoke test does work.

/cc @as-cii @ConradIrwin 

Release Notes:

- N/A
2023-11-14 16:03:20 -08:00
Mikayla
817c6dd49c remove dbg 2023-11-14 15:57:23 -08:00
Mikayla
b81b96f353 Merge branch 'element-types' of github.com:zed-industries/zed into element-types 2023-11-14 15:55:53 -08:00
Mikayla
7f72df6dcf Merge branch 'main' into element-types 2023-11-14 15:49:10 -08:00
Mikayla Maki
df64a3c701 Not working yet file-finder2 (#3321)
Porting file_finder

Release Notes:

- N/A
2023-11-14 15:22:59 -08:00
Conrad Irwin
1109cd11c8 Abandon ship 2023-11-14 16:17:24 -07:00
Nathan Sobo
bef4df5df9 Return an id from Element::element_id instead of calling cx.with_element_id
Co-Authored-By: Julia <julia@zed.dev>
2023-11-14 16:05:28 -07:00
Max Brunsfeld
ca63a99736 Enable tests in project panel 2 (#3325) 2023-11-14 15:02:51 -08:00
Max Brunsfeld
860959fe13 Implement simulated prompts in TestPlatform 2023-11-14 14:56:50 -08:00
Mikayla
6b25841e2a WIP 2023-11-14 14:48:34 -08:00
Max Brunsfeld
606ab74b9f Project panel: detect filename editor blur via an editor event 2023-11-14 14:02:28 -08:00
Nate Butler
b40daa132f Set Pane Size (#3327)
[[PR Description]]

Set the size of panes to their `size`.

Release Notes:

- N/A
2023-11-14 16:57:09 -05:00
Nate Butler
008655b879 Set Pane Size 2023-11-14 16:47:52 -05:00
Conrad Irwin
3b01a032ba In the middle of stuff 2023-11-14 14:38:23 -07:00
Marshall Bowers
fea0ff3745 Use IconElement in project panel (#3326)
This PR updates the project panel to use the `IconElement` to render
icons instead of duplicating the styles.

Release Notes:

- N/A
2023-11-14 15:52:57 -05:00
Max Brunsfeld
123faed5b0 Re-enable all project panel tests
Some are still failing.
2023-11-14 12:45:46 -08:00
Marshall Bowers
22f024bd5f Use IconElement in project panel 2023-11-14 15:44:26 -05:00
Conrad Irwin
80b7f75d24 Merge branch 'main' into file_finder 2023-11-14 13:34:25 -07:00
Conrad Irwin
3a4c5aa440 Implement FileFinder 2023-11-14 13:34:14 -07:00
Mikayla Maki
dcdbf43af0 Fix some small quit and recursion bugs (#3323)
Release Notes:

- N/A
2023-11-14 12:32:41 -08:00
Mikayla
62fc0b2100 Remove unnescessary unimplemented 2023-11-14 12:12:02 -08:00
Julia
75490fe2b1 Avoid user NPM config/cache & put NodeRuntime installation behind a lock (#3324)
Release Notes:

- Fixed a case where system NPM configuration could effect Node based
language server installation.
2023-11-14 15:08:48 -05:00
Julia
59ec9e508b Avoid user NPM config/cache & put NodeRuntime installation behind a lock 2023-11-14 14:49:31 -05:00
Mikayla
3419aaf17e Fix several shutdown related bugs 2023-11-14 11:42:58 -08:00
Conrad Irwin
37d0b8424c Merge branch 'main' into element-types 2023-11-14 12:10:26 -07:00
Marshall Bowers
5c8db996ee Extend Label & Tooltip (#3322)
This PR extends the `Label` component with additional functionality,
partially for use in the `TextTooltip` component.

- [x] `Label` should take a `size` (`Default` & `Small` for now)
  - These should use `text_ui` and `text_ui_sm`
- [x] Fold `LabelColor` and `IconColor` into one enum
  - `TextColor`
- [x] `TextTooltip`'s keybinding field should take whatever we use for
keybindings instead of a string, and render the keybinding component
- [x] `TextTooltip` should use small `Label`s

Release Notes:

- N/A
2023-11-14 13:56:05 -05:00
Marshall Bowers
76c15229c1 Combine LabelColor and IconColor into TextColor 2023-11-14 13:48:01 -05:00
Conrad Irwin
5dda105182 Merge branch 'main' into element-types 2023-11-14 11:45:19 -07:00
Marshall Bowers
dc56a7b12b Add LabelSize 2023-11-14 13:43:37 -05:00
Antonio Scandurra
48b3a90fbf WIP 2023-11-14 19:42:07 +01:00
Mikayla Maki
6add446334 WIP: Zed2: Add core mac app actions (#3316)
Add back cmd-q, cmd-n, etc.

TODO:
- [x] Fix quit checking workspace windows
- [ ] ~~See if GPUI2 has a DebugElements analog~~

Release Notes:

- N/A
2023-11-14 10:41:03 -08:00
Marshall Bowers
9d31523cf3 Rename keybinding method on PaletteItem to key_binding 2023-11-14 13:37:21 -05:00
Marshall Bowers
90d7033fd0 Pass KeyBindings to TextTooltips 2023-11-14 13:36:03 -05:00
Mikayla
27574524b8 Restore quit action 2023-11-14 10:31:55 -08:00
Conrad Irwin
b69b5742ed Fix panicking unwrap() 2023-11-14 11:27:52 -07:00
Marshall Bowers
aa1471948f Merge branch 'main' into extend-label-and-tooltip 2023-11-14 13:14:10 -05:00
Mikayla
caa0bae04f Merge branch 'main' into core-actions 2023-11-14 10:11:39 -08:00
Conrad Irwin
f4ccff7b72 TEMP 2023-11-14 11:03:55 -07:00
Nathan Sobo
bb584cc7c4 WIP 2023-11-14 11:00:52 -07:00
Nate Butler
251b4640c6 Extend tooltip to take meta + kb 2023-11-14 12:59:53 -05:00
Max Brunsfeld
c7d80c7aac Start work on creating gpui2 version of project panel (#3299)
I'm gonna land what I have, even though some features aren't ported yet,
since we're working on all of this code so actively.

* [x] get the basic structure compiling
* [x] get the panel laying out correctly
* [ ] rename / new file editor
* [ ] enable the tests
* [ ] drag and drop
* [ ] context menu
2023-11-14 09:56:46 -08:00
Antonio Scandurra
428be43710 Wire up rename editor 2023-11-14 18:50:02 +01:00
Max Brunsfeld
2c3c238c9d Fix warnings 2023-11-14 09:47:48 -08:00
Max Brunsfeld
b893ac2a02 Merge branch 'main' into project-panel2 2023-11-14 09:33:48 -08:00
Piotr Osiewicz
c14efb74d7 Finish up touchups for search UI.
Co-authored-by: Nate <nate@zed.dev>
2023-11-14 18:18:52 +01:00
Piotr Osiewicz
08dde94299 WIP styling
Co-authored-by: Nate <nate@zed.dev>
2023-11-14 17:59:53 +01:00
Nathan Sobo
e08f1690b3 Remove commented field 2023-11-14 09:33:28 -07:00
Antonio Scandurra
5ae96e4eb6 Render blocks in editor2 (#3320)
Release Notes:

- N/A
2023-11-14 17:29:55 +01:00
Conrad Irwin
7d94d8940c Not working yet file-finder2 2023-11-14 09:28:18 -07:00
Antonio Scandurra
40c634e056 Merge remote-tracking branch 'origin/main' into editor2-blocks 2023-11-14 17:16:58 +01:00
Antonio Scandurra
7f5014b34a Add red background to blocks that need styling 2023-11-14 17:15:33 +01:00
Antonio Scandurra
0b8ec5372b Return the line length when x is past the last glyph
Co-Authored-By: Julia <julia@zed.dev>
2023-11-14 17:06:18 +01:00
Piotr Osiewicz
6c69e40e5c WIP 2023-11-14 16:56:31 +01:00
Antonio Scandurra
d855e91e43 Honor cmd-w to close active item
Co-Authored-By: Julia <julia@zed.dev>
2023-11-14 16:38:20 +01:00
Nate Butler
6b366c102e Allow a button to take a color (#3315)
[[PR Description]]
- Allows a button to take a color and resolve it into `IconColor` and
`LabelColor`
- Extend `IconColor` and `LabelColor` to allow them to take a
`Player(i)`
- `impl From<LabelColor> for IconColor`

Release Notes:

- N/A
2023-11-14 10:36:52 -05:00
Joseph T. Lyons
ac6babde5a Add gpt-4-1106-preview model (#3319)
This PR adds the `gpt-4-1106-preview` model. It required forking two
repos from different organizations, as one is a submodule of another.

Update 1:

~Currently, I'm just temporarily pointing towards a personal fork of the
repo, but once [this
PR](https://github.com/zurawiki/tiktoken-rs/pull/49) lands, we can
switch back to using the official crate.~

Update 2:

~PR was merged, we are now pointing to a specific commit on the original
official repo - may want to bump it to an official version once a new
one has been released.~

Update 3:

Author published a [new
version](https://crates.io/crates/tiktoken-rs/0.5.7). Now, we are back
to relying on the official crate.

<img width="1118" alt="SCR-20231114-ibgs"
src="https://github.com/zed-industries/zed/assets/19867440/cc2657b6-98f9-413f-9a0c-f337636f367c">

Release Notes:

- Added support for the
[`gpt-4-1106-preview`](https://openai.com/blog/new-models-and-developer-products-announced-at-devday)
model in the assistant panel.
- Updated the `assistant.default_open_ai_model` setting to default to
`gpt-4-1106-preview`. To override the default, use the following snippet
to your `settings.json` file:

```rs
"assistant": {
    // 1. "gpt-3.5-turbo-0613""
    // 2. "gpt-4-0613""
    // 3. "gpt-4-1106-preview"
    "default_open_ai_model": "<Your choice of model here>"
  },
```
2023-11-14 10:11:08 -05:00
Antonio Scandurra
b6914bf0fd Re-enable find all references
Co-Authored-By: Julia <julia@zed.dev>
2023-11-14 16:09:29 +01:00
Antonio Scandurra
f9b9b7549f Render block elements
Co-Authored-By: Julia <julia@zed.dev>
2023-11-14 16:03:06 +01:00
Joseph T. Lyons
a5fc5819f1 Bump tiktoken-rs to official release 2023-11-14 09:12:25 -05:00
Joseph T. Lyons
946a696d3d Update tiktoken-rs dependency
The PR to add the `gpt-4-1106-preview` model was merged:

https://github.com/zurawiki/tiktoken-rs/pull/49
2023-11-14 09:00:04 -05:00
Antonio Scandurra
fc5ec47cc8 WIP 2023-11-14 14:48:59 +01:00
Joseph T. Lyons
516a8790b9 Add gpt-4-1106-preview model 2023-11-14 08:28:57 -05:00
Nathan Sobo
6abaacc457 Fix formatting 2023-11-14 01:58:10 -07:00
Nathan Sobo
364e3e7de5 Merge remote-tracking branch 'origin/main' into element-types 2023-11-14 01:55:58 -07:00
Nathan Sobo
c6e8a097a3 Rename back to div 2023-11-14 01:41:55 -07:00
Nathan Sobo
be18c47912 Remove unnecessary with_element_id calls 2023-11-14 01:38:13 -07:00
Nathan Sobo
a5306c2312 Remove div module 2023-11-14 01:25:10 -07:00
Nathan Sobo
80014a28ea No compile errors or warnings 2023-11-14 01:23:09 -07:00
Nathan Sobo
27fb381cca Checkpoint 2023-11-14 01:15:48 -07:00
Mikayla
8aa076692e Add missing global 2023-11-14 00:09:42 -08:00
Mikayla
ee4957dd47 Implement most core actions 2023-11-14 00:06:33 -08:00
Nathan Sobo
ce30a689a0 Checkpoint 2023-11-13 23:15:45 -07:00
Mikayla
ec16e70336 Sketch in core zed actions code 2023-11-13 22:13:07 -08:00
Conrad Irwin
58f9ef99f7 command 2 2 (#3317)
- Update command matches faster
- Fix action dispatching...
- Add Text::styled() and use it in command palette
- Fix SingleLine editor font size
- Fix elevation on go_to_line2
- Allow clicking on commands in the command palette

Release Notes:

- N/A
2023-11-13 23:12:03 -07:00
Nathan Sobo
9382a304c4 Checkpoint 2023-11-13 23:03:14 -07:00
Nathan Sobo
1668330764 Checkpoint 2023-11-13 22:51:44 -07:00
Nathan Sobo
4a3a1ad0c3 Checkpoint 2023-11-13 22:42:19 -07:00
Nathan Sobo
54a817a5ab Checkpoint 2023-11-13 22:28:33 -07:00
Nathan Sobo
f71afdb0f2 Checkpoint 2023-11-13 22:22:09 -07:00
Nathan Sobo
83a5f74493 Checkpoint 2023-11-13 22:02:05 -07:00
Conrad Irwin
ad017a5df5 Allow clicking on commands in the command palette 2023-11-13 21:42:27 -07:00
Conrad Irwin
4ef95f05e8 Fix elevation on go_to_line2 2023-11-13 21:42:04 -07:00
Conrad Irwin
e0416e9d2a Fix SingleLine editor font size 2023-11-13 21:41:41 -07:00
Nathan Sobo
044d9679ab Checkpoint 2023-11-13 21:40:02 -07:00
Conrad Irwin
c5878cbd5f Add Text::styled() and use it in command palette
Prevents jumping while typing
2023-11-13 19:53:55 -07:00
Nathan Sobo
872b5186e2 Checkpoint 2023-11-13 19:23:07 -07:00
Nathan Sobo
922bb3195b WIP 2023-11-13 18:58:42 -07:00
Conrad Irwin
06f3c60be8 Fix action dispatching... 2023-11-13 18:56:59 -07:00
Conrad Irwin
abdaa3105b Update command matches faster 2023-11-13 18:21:08 -07:00
Nathan Sobo
76754c559c WIP 2023-11-13 18:18:25 -07:00
Mikayla Maki
ca3341f066 Improve actions macros (#3292)
- `actions!` now uses `#[action]` on each struct to reduce duplication.
- The `#[action]` macro now works on unit structs.
- Renamed `menu::unused` to `menu::init` and added more explanation in
comments.

Release Notes:

- N/A
2023-11-13 17:14:56 -08:00
Mikayla Maki
f25c794a7e WIP: Add some editor tests (#3285)
This is a continuation of
https://github.com/zed-industries/zed/pull/3232, however as I started
working on this it seemed a bit premature.

There are a few GPUI changes to finish getting the editor green (mainly
clipboard and simulate_resize), as well as several editor methods to
port (several around changing selections), as well as several editor
methods that are now fully broken (tagged with 'todo(finish editor
tests)').

I am also comitting the partially ported integration tests, which where
close to compiling.

Release Notes:

- N/A
2023-11-13 16:57:41 -08:00
Mikayla
8bbced50c2 Add test tag 2023-11-13 16:51:59 -08:00
Nate Butler
38888696db Allow a button to take a color 2023-11-13 19:46:15 -05:00
Mikayla
d197660d3b Fix broken tests and comment out remaining tests 2023-11-13 16:46:06 -08:00
Mikayla
7d1593b90c Merge branch 'main' into editor-tests 2023-11-13 15:53:22 -08:00
Mikayla
a4e9fea133 WIP
co-authored-by: conrad <conrad.irwin@zed.dev>
2023-11-13 15:53:04 -08:00
Marshall Bowers
a7c42be9a9 Add One Dark (#3314)
- Adds `one-dark`, and sets it as default for now.

Release Notes:

- N/A
2023-11-13 18:50:02 -05:00
Marshall Bowers
0430e8fbf2 Use "One Dark" as default theme 2023-11-13 18:44:17 -05:00
Nathan Sobo
aec7955ccf Checkpoint 2023-11-13 16:40:29 -07:00
Marshall Bowers
92f2e8eb34 Combine related conditions 2023-11-13 18:22:04 -05:00
Marshall Bowers
53117eb5e5 Merge branch 'main' into one-themes 2023-11-13 18:16:45 -05:00
Nate Butler
fea5436ba9 Remove unused imports 2023-11-13 17:54:22 -05:00
Nate Butler
1c74662dc4 Reorganize theme2 crate (#3312)
[[PR Description]]

- Colocates defaults with their defs
- Organizes each style module into the `styles` subfolder
(`src/styles/players`, etc)
- Standardizes the use of `dark()` and `light()` throughout (ex:
`StatusColors::dark()`)
- Documents and extents StatusColors

Release Notes:

- N/A
2023-11-13 17:53:29 -05:00
Conrad Irwin
019d23a246 Add KeyBindings to CommandPalette (#3313)
Release Notes:

- N/A
2023-11-13 15:53:18 -07:00
Nate Butler
701f954448 Start refining tab 2023-11-13 17:51:58 -05:00
Conrad Irwin
25bc898807 Add KeyBindings to CommandPalette 2023-11-13 15:40:49 -07:00
Nate Butler
dd434588ee WIP 2023-11-13 17:38:44 -05:00
Nate Butler
97d6e7f2f5 Add one syntax theme 2023-11-13 17:09:55 -05:00
Max Brunsfeld
2eedd2ad03 Merge branch 'main' into project-panel2 2023-11-13 13:39:13 -08:00
Conrad Irwin
b918c27cf9 WIP: Rework key dispatch to allow focus to be changed and actions to be dispatched on arbitrary focus handles (#3303)
Will explain more later.

Release Notes:

- N/A
2023-11-13 14:19:10 -07:00
Conrad Irwin
f8bc9be284 Fix test 2023-11-13 13:53:08 -07:00
Nate Butler
c1887747b7 Add one_dark theme 2023-11-13 15:48:05 -05:00
Nate Butler
e0547d9acd Allow arrays of colors to be passed in 2023-11-13 15:47:57 -05:00
Nate Butler
916df3c614 Add color converter util 2023-11-13 15:28:20 -05:00
Conrad Irwin
f464d69ff8 Merge branch 'main' into dispatch-tree 2023-11-13 13:21:57 -07:00
Mikayla
0e3fd92bd0 Get editor tests compiling 2023-11-13 12:10:14 -08:00
Marshall Bowers
04ad19d01b Choose appropriate player colors based on theme appearance 2023-11-13 15:07:13 -05:00
Conrad Irwin
7e7b065535 Fix on_action on focusable
We were accidentally dropping the key context
2023-11-13 12:48:36 -07:00
Max Brunsfeld
c0f34e3302 Add delete, open file, and rename actions to the project panel
Co-authored-by: Julia <julia@zed.dev>
Co-authored-by: Marshall <marshall@zed.dev>
2023-11-13 11:38:47 -08:00
Piotr Osiewicz
dfd68d4cb8 WIP: start search2 2023-11-13 20:38:37 +01:00
Max Brunsfeld
1968becf94 Merge branch 'main' into project-panel2 2023-11-13 11:26:51 -08:00
Max Brunsfeld
91b634fc59 Get some project panel actions working
Add styling for hovered and selected items

Co-authored-by: Marshall <marshall@zed.dev>
Co-authored-by: Julia <julia@zed.dev>
2023-11-13 11:08:51 -08:00
Nate Butler
5c424fbe6e Refine command palette (#3311)
[[PR Description]]

Update command palette styles

Release Notes:

- N/A
2023-11-13 13:58:51 -05:00
Nate Butler
889d20d046 Reorganize theme2 crate 2023-11-13 13:58:23 -05:00
Max Brunsfeld
13dd912817 Get left, right, and bottom docks rendering in the right places in the workspace
Co-authored-by: Julia <julia@zed.dev>
Co-authored-by: Marshall <marshall@zed.dev>
2023-11-13 10:47:15 -08:00
Conrad Irwin
2625051f75 Better fix for multiple focuses in one frame 2023-11-13 11:32:05 -07:00
Nate Butler
8432b713cc Resolve errors
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-11-13 13:16:05 -05:00
Nate Butler
f6c54b8043 Redine command palette style
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
Co-Authored-By: Conrad Irwin <conrad.irwin@gmail.com>
2023-11-13 13:13:40 -05:00
Mikayla
4c5d5105f3 Merge branch 'main' into editor-tests 2023-11-13 09:54:02 -08:00
Nate Butler
7be12cb7b1 Checkpoint Broken 2023-11-13 12:44:50 -05:00
Antonio Scandurra
348760556a 💄 2023-11-13 18:33:08 +01:00
Antonio Scandurra
a6c95ad331 Fix panic when querying available actions 2023-11-13 18:29:18 +01:00
Nate Butler
5361a499ae Checkpoint 2023-11-13 12:09:31 -05:00
Nate Butler
521972ed9e Update Status Colors 2023-11-13 11:56:42 -05:00
Kirill Bulatov
031d841305 Make inlay hint cache tests pass (#3310)
Release Notes:

- N/A
2023-11-13 18:42:16 +02:00
Kirill Bulatov
dbd26ac651 Make inlay hint cache tests pass
Co-Authored-By: Conrad  <conrad.irwin@gmail.com>
2023-11-13 18:25:21 +02:00
Marshall Bowers
71790b338b Add Sized bound to StyledExt trait (#3309)
This PR moves the `Sized` bound to the `StyledExt` trait so we don't
have to repeat it on each of the methods.

Release Notes:

- N/A
2023-11-13 11:22:49 -05:00
Marshall Bowers
3654dd8da0 Remove unnecessary map 2023-11-13 11:10:08 -05:00
Marshall Bowers
5b254b03df Move Sized bound to StyledExt trait 2023-11-13 11:10:00 -05:00
Joseph T. Lyons
be8bd437cd Update jetbrains keymap to match community repo 2023-11-13 10:41:56 -05:00
Antonio Scandurra
45fef27aa1 Clear all the state when clearing KeyDispatcher 2023-11-13 15:31:35 +01:00
Antonio Scandurra
44534b926d Register actions on the right div 2023-11-13 15:21:47 +01:00
Antonio Scandurra
c8fb8e2859 💄 2023-11-13 15:20:43 +01:00
Antonio Scandurra
d0b5c654aa Clear pending keystrokes when finding action 2023-11-13 14:48:08 +01:00
Antonio Scandurra
827b16bf5c Capture node in dispatch tree even if it's not focusable 2023-11-13 14:42:16 +01:00
Antonio Scandurra
26d26fadb3 Fix focus story 2023-11-13 14:35:49 +01:00
Kirill Bulatov
7a454bed22 Uncomment inlay hints logic and tests (#3307)
Tests compile, but do not pass due to todo!s in the platform code, hence
ignored for now.

Release Notes:

- N/A
2023-11-13 15:20:43 +02:00
Kirill Bulatov
e257f7d0b1 Ignore tests for now 2023-11-13 15:02:24 +02:00
Piotr Osiewicz
c3461d274e chore: Bump cc to 1.0.84 (#3304)
This resolves a minor issue where build scripts could've acquired more
job server tokens from Cargo than allowed by `-j` parameter. I've filled
a PR at https://github.com/rust-lang/cc-rs/pull/878 and we've iterated
on the design over there since.

TL;DR: some build scripts may complete a tad bit quicker, potentially
shaving off a few seconds off of debug/release builds. Full description
of the issue is available in
https://github.com/rust-lang/cc-rs/issues/858

Release Notes:

- N/A
2023-11-13 13:14:22 +01:00
Kirill Bulatov
a9c17e7407 Uncomment all inlay hint cache code and tests 2023-11-13 14:07:48 +02:00
Kirill Bulatov
81cc6e84b7 pane: When opening a buffer, actually scroll to the selected tab. (#3306)
Previously it might've reused a shared state.

Deals with https://github.com/zed-industries/community/issues/2262 also
fixes influencer's feedback.

No gpui2 port, due to 0 scrollable functionality in it yet.

Release Notes:

- Fixed tabs not being scrolled to on buffer (re)open
(https://github.com/zed-industries/community/issues/2262)
2023-11-13 13:21:26 +02:00
Kirill Bulatov
f0f0b47058 pane: When opening a buffer, actually scroll to the selected tab. Previously it might've reused a shared state.
Deals with https://github.com/zed-industries/community/issues/2262 also fixes influencer's feedback.

Co-Authored-By: Piotr <piotr@zed.dev>
2023-11-13 13:09:02 +02:00
Antonio Scandurra
9c18253863 Register key and action listeners using Interactive::initialize
Co-Authored-By: Thorsten <mrnugget@gmail.com>
2023-11-13 11:37:57 +01:00
Antonio Scandurra
318cb784b2 Fix panic when calling with_key_dispatch recursively
Co-Authored-By: Thorsten <mrnugget@gmail.com>
2023-11-13 10:17:52 +01:00
Mikayla
13255ef133 Poke at getting the project panel showing up 2023-11-12 23:22:02 -08:00
Nate Butler
6c6fb99cad Theme elevation + Palette Style (#3305)
[[PR Description]]

Release Notes:

- N/A
2023-11-12 22:29:25 -05:00
Nate Butler
800ad1d3dc Update command palette style 2023-11-12 22:13:54 -05:00
Piotr Osiewicz
cdd347c2a0 chore: Bump cc to 1.0.84
This resolves a minor issue where build scripts could've acquired more job server tokens from Cargo than allowed by `-j` parameter. I've filled a PR at https://github.com/rust-lang/cc-rs/pull/878 and we've iterated on the design over there since.

TL;DR: some build scripts may complete a tad bit quicker, potentially shaving off a few seconds off of debug/release builds.
2023-11-12 21:28:02 +01:00
Nathan Sobo
7eaba8fabc WIP 2023-11-10 14:47:45 -07:00
Nate Butler
6bdb6e486e Refactor command palette, picker and code action styles.
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-11-10 16:13:25 -05:00
Nate Butler
3d66ba35a3 Add ui::Divider component
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-11-10 16:12:32 -05:00
Nate Butler
5dca5caf9f Add elevation to StyledExt
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-11-10 16:12:14 -05:00
Nathan Sobo
74a0d9316a Add a DispatchTree which will replace the existing key dispatch strategy
Instead of freezing a stack, we will record the entire dispatch tree so we can
change focus.

Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2023-11-10 11:56:14 -07:00
Antonio Scandurra
1c02690199 Wire up code actions in editor2 (#3302)
Release Notes:

- N/A
2023-11-10 16:47:09 +01:00
Antonio Scandurra
c2c6921734 🔥 2023-11-10 16:41:21 +01:00
Antonio Scandurra
198a854370 Fix bad import 2023-11-10 16:41:21 +01:00
Antonio Scandurra
468a014bfc Allow measuring arbitrary items in UniformList 2023-11-10 16:41:21 +01:00
Antonio Scandurra
c44db3b7ec Confirm code action on mouse down 2023-11-10 16:41:21 +01:00
Antonio Scandurra
fb450e35f7 Wire up keyboard interaction in code actions menu 2023-11-10 16:41:21 +01:00
Antonio Scandurra
bf576d47b1 Make code actions menu prettier 2023-11-10 16:41:21 +01:00
Antonio Scandurra
c76fd93015 Use padded bounds to draw uniform list items 2023-11-10 16:41:21 +01:00
Antonio Scandurra
1d37191320 Ensure UniformList style is painted beneath its items 2023-11-10 16:41:21 +01:00
Antonio Scandurra
6929a71827 Ceil measured width for Text element 2023-11-10 16:41:13 +01:00
Kirill Bulatov
3cd4eeffef Do not add diagnostics for any selection in the diagnostics panel (#3300)
Make the panel less jumpy by deferring diagnostics updates until cmd-s
is pressed, if any caret is placed inside the diagnostics panel.

Release Notes:

- N/A
2023-11-10 13:50:58 +02:00
Kirill Bulatov
d38a2b793e Do not add diagnostics for any selection in the diagnostics panel 2023-11-10 13:35:58 +02:00
Antonio Scandurra
a30b47aa5f Show a very basic code actions menu 2023-11-10 12:26:35 +01:00
Antonio Scandurra
23fd1e19dc Ignore element offset when manually drawing AnyElement 2023-11-10 11:35:57 +01:00
Antonio Scandurra
a0987f1121 Merge remote-tracking branch 'origin/main' into code-actions-2 2023-11-10 11:01:23 +01:00
Conrad Irwin
2f3044a2da command palette2 (#3296)
Still to do:
- [ ] Figure out why `ctrl-g` `ctrl-g` doesn't dismiss GoToLine (but
`cmd-shift-p` `cmd-shift-p` does dismiss Command). Likely to do with the
"Editor" context in the keymap, but this did used to work in gpui1.
- [ ] Fix first render with incorrect matches immediately flashes.
- [ ] Show keybindings
- [x] Figure out why `cmd-shift-p "go to line" enter` panics
- [ ] Fix the selected visuals
- [ ] Party hard
- [ ] Uncomment the tests
2023-11-09 22:44:50 -07:00
Conrad Irwin
cc9fb9dea0 Fix panic caused by focusing the same thing twice 2023-11-09 22:25:46 -07:00
Conrad Irwin
5a711886d4 Refactor to make ModalLayer a View 2023-11-09 22:15:44 -07:00
Conrad Irwin
d4b1d1b528 Move from register_modals to register_workspace_action 2023-11-09 21:51:48 -07:00
Conrad Irwin
e6d6806693 Tidy up some more modal behaviour 2023-11-09 21:11:44 -07:00
Conrad Irwin
a73265ace4 Merge branch 'main' into command_palette2 2023-11-09 20:58:54 -07:00
Conrad Irwin
77d92ff65a Tidy up 2023-11-09 20:58:35 -07:00
Max Brunsfeld
b9e098ead8 Start work on creating gpui2 version of project panel 2023-11-09 16:51:03 -08:00
Marshall Bowers
cb8c534dac theme_importer: Support importing themes containing comments (#3298)
This PR updates the `theme_importer` with support for parsing theme
files containing comments.

Up until now we've been manually removing comments from the VS Code
theme files.

Release Notes:

- N/A
2023-11-09 19:22:15 -05:00
Marshall Bowers
6bc1cf0fae Re-import the Synthwave 84 theme (#3297)
This PR re-imports the Synthwave 84 theme now that we support 3-value
hex colors.

Release Notes:

- N/A
2023-11-09 18:56:42 -05:00
Max Brunsfeld
6f23894b40 Fix editor settings deserialization in editor2 2023-11-09 15:37:46 -08:00
Conrad Irwin
ff15ddf3e0 Render more than one item 2023-11-09 16:36:36 -07:00
Marshall Bowers
8bd02fdadc Extend RGBA hex color parsing to support 3-value and 4-value variants (#3295)
This PR extends our support for parsing hex color codes to `Rgba` to
additionally support 3-value (`#rgb`) and 4-value (`#rgba`) formats.

See [here](https://developer.mozilla.org/en-US/docs/Web/CSS/hex-color)
for more details on these hex color variants.

Release Notes:

- N/A
2023-11-09 18:27:47 -05:00
Marshall Bowers
82861e3123 Improve digit duplication 2023-11-09 18:19:58 -05:00
Marshall Bowers
8f5adeb9c3 Improve error conditions when parsing hex colors 2023-11-09 18:00:17 -05:00
Marshall Bowers
417279e01b Add support for parsing 3-value and 4-value hex codes 2023-11-09 17:45:05 -05:00
Nate Butler
2347576fb5 Extend theme converter to allow multimatching against vscode colors (#3294)
[[PR Description]]

Adds the ability to specify a vec of VScode syntax scopes to match
against for a given syntax style.

Example:

```rust
pub fn to_vscode(&self) -> Vec<&'static str> {
        use ZedSyntaxToken::*;

        match self {
            SyntaxAttribute => vec!["entity.other.attribute-name"],
            SyntaxBoolean => vec!["constant.language"],
            SyntaxComment => vec!["comment"],
            SyntaxCommentDoc => vec!["comment.block.documentation"],
            SyntaxConstant => vec!["constant.character"],
            SyntaxConstructor => vec!["entity.name.function.definition.special.constructor"],
            SyntaxEmbedded => vec!["meta.embedded"],
            SyntaxEmphasis => vec!["markup.italic"],
            SyntaxEmphasisStrong => vec![
                "markup.bold",
                "markup.italic markup.bold",
                "markup.bold markup.italic",
            ],
            SyntaxEnum => vec!["support.type.enum"],
            SyntaxFunction => vec![
                "entity.name.function",
                "variable.function",
                "support.function",
            ],
            SyntaxKeyword => vec!["keyword"],
            SyntaxLabel => vec![
                "label",
                "entity.name",
                "entity.name.import",
                "entity.name.package",
            ],
            // .. more styles
}}
```

Useful `settings.json` for testing themes:

```json5
{
  // --- Dark Themes ---
  "theme": "Ayu Dark"
  // "theme": "Ayu Mirage"
  // "theme": "Dracula"
  // "theme": "Gruvbox Dark Hard"
  // "theme": "Gruvbox Dark Medium"
  // "theme": "Gruvbox Dark Soft"
  // "theme": "Night Owl"
  // "theme": "Noctis Obscuro"
  // "theme": "Noctis"
  // "theme": "Nord"
  // "theme": "Palenight (Mild Contrast)"
  // "theme": "Palenight Operator"
  // "theme": "Palenight"
  // "theme": "Rose Pine Moon"
  // "theme": "Rose Pine"
  // "theme": "Solarized Dark"
  // "theme": "Synthwave 84"
  // --- Light Themes ---
  // "theme": "Ayu Light"
  // "theme": "Gruvbox Light Hard"
  // "theme": "Gruvbox Light Medium"
  // "theme": "Gruvbox Light Soft"
  // "theme": "Noctis Lux"
  // "theme": "Rose Pine Dawn"
  // "theme": "Solarized Light"
}
```

Release Notes:

- N/A
2023-11-09 17:40:10 -05:00
Max Brunsfeld
7586ef1787 Refine search query suggestions (#3293)
This PR fixes some issues in response to feedback from Dan Abramov and
Jose Valim.

To do:

* [x] fix non-word search suggestions
* [x] add setting for disabling search suggestions

Release Notes:

- Fixed an issue where opening a search without text selected would
populate the search query with non-word characters adjacent to the
cursor.
- Added a setting, `seed_search_query_from_cursor`, which controls
whether the search query is automatically populated from the buffer when
starting a new buffer search or project search.

By default, the search query will always be set to the word under the
cursor. If you want to only populate the search query when text is
selected, you can add the following to your `~/.zed/settings.json`:
  
  ```json
  {
    "seed_search_query_from_cursor": "selection"
  }
  ```

If you don't want the search query to be automatically populated, even
when there is text selected, add the following:
  
  ```json
  {
    "seed_search_query_from_cursor": "never"
  }
  ```
2023-11-09 14:25:20 -08:00
Max Brunsfeld
b6eef26f91 Merge branch 'main' into search-query-suggestion-fixes 2023-11-09 14:18:17 -08:00
Conrad Irwin
fa153a0d56 Make command dispatching work 2023-11-09 15:14:23 -07:00
Max Brunsfeld
6b8ce3cc85 Add a setting for when to seed the search query from the text under the cursor 2023-11-09 14:03:14 -08:00
Nate Butler
6b65acaa99 regenerate themes, format 2023-11-09 16:48:35 -05:00
Nate Butler
00b298a50c Fix incorrect Rose Pine Dawn theme name 2023-11-09 16:44:40 -05:00
Nate Butler
024fb4f818 Remove unused import 2023-11-09 16:41:58 -05:00
Nate Butler
4cd37e6e62 Extend theme converter to allow multimatching against vscode colors 2023-11-09 16:38:48 -05:00
Max Brunsfeld
28d3d21108 Generalize Refineable derive macro to derive arbitrary traits on the refinement type 2023-11-09 13:23:31 -08:00
Max Brunsfeld
dba41e99dd Avoid suggesting search query if cursor is not on a word 2023-11-09 12:33:30 -08:00
Marshall Bowers
31a6409a4c Refine theme styles (#3291)
This PR refines a number of styles in the default theme, as well as
updates the theme importer to support importing syntax styles from VS
Code themes.

Release Notes:

- N/A
2023-11-09 15:32:10 -05:00
Marshall Bowers
7b489f5e2e Allow user-theme related methods to be unused 2023-11-09 15:16:59 -05:00
Nathan Sobo
408a495aaf Call init 2023-11-09 13:14:11 -07:00
Nate Butler
1c6a960bbf Deal with special case where a VSCode theme doesn't have a foreground color
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-11-09 14:53:04 -05:00
Nate Butler
54157eb99a Finish passing Syntax from VSCode themes to Zed Themes
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-11-09 14:41:26 -05:00
Max Brunsfeld
c6b76d908f Use normal JS comments within JSX tags and JSX expression blocks (#3290)
This fix only required changing the `overrides` queries for JavaScript
and TSX. I've made the fix in both the `zed2` and `zed` crates.

Release Notes:

- Fixed an issue in JavaScript and TSX files, where the 'toggle
comments' command used the wrong comment syntax inside of JSX tags and
expressions within JSX.
2023-11-09 11:15:08 -08:00
Max Brunsfeld
e50318e7e1 Duplicate buffer test changes in language2 version 2023-11-09 11:09:49 -08:00
Max Brunsfeld
4c89b2885e Use normal JS comments within JSX tags and JSX expression blocks
Co-authored-by: Kirill <kirill@zed.dev>
2023-11-09 10:58:33 -08:00
Nathan Sobo
f5f9d881d7 Polish actions macros 2023-11-09 11:57:13 -07:00
Nate Butler
ff053890cf Extend UserSyntax to allow font_style and font_weight to be specified
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-11-09 13:46:08 -05:00
Conrad Irwin
72de5cb6ce Fix escape in GoToLine with new event emitter (#3289)
[[PR Description]]

Release Notes:

- N/A
2023-11-09 11:23:26 -07:00
Marshall Bowers
978cff8095 Use IndexMap for a deterministic order when importing syntax colors 2023-11-09 13:12:36 -05:00
Antonio Scandurra
1a0ddc424b WIP 2023-11-09 19:11:17 +01:00
Marshall Bowers
1f0fccc353 Reorganize theme_importer 2023-11-09 13:07:32 -05:00
Antonio Scandurra
b029083441 Start on rendering context menu in editor2
Co-Authored-By: Nathan <nathan@zed.dev>
Co-Authored-By: Mikayla <mikayla@zed.dev>
2023-11-09 19:03:10 +01:00
Marshall Bowers
34e31fd489 Properly emit UserHighlightStyles 2023-11-09 12:59:20 -05:00
Julia
98271fb9bb zed2: Get tsserver running again (#3288)
Port these changes to the zed2 directory

Release Notes:

- N/A
2023-11-09 12:55:27 -05:00
Conrad Irwin
3c689ba33e Fix escape in GoToLine with new event emitter 2023-11-09 10:52:17 -07:00
Piotr Osiewicz
a1d9f351db Some more woogaloo around action dispatch
Co-authored-by: Conrad <conrad@zed.dev>
2023-11-09 18:51:41 +01:00
Marshall Bowers
ff19a0ca18 Add importing-themes feature flag to theme2 crate
When this feature is set the `themes` module won't be compiled.
This allows us to run the `theme_importer` even when the `themes` module
has compile errors in it.
2023-11-09 12:49:16 -05:00
Marshall Bowers
60eae3e50a Emit unique highlights for each syntax token 2023-11-09 12:46:37 -05:00
Antonio Scandurra
5d15886675 Render code actions indicator
Co-Authored-By: Nathan <nathan@zed.dev>
2023-11-09 18:43:26 +01:00
Piotr Osiewicz
194d615691 Fix up keybindings propagation
Co-authored-by: Conrad <conrad@zed.dev>
2023-11-09 18:33:36 +01:00
Nate Butler
efd1db1b09 WIP – Add Syntax themes to importer
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-11-09 12:30:53 -05:00
Piotr Osiewicz
d184e0d426 Start working on command_palette2 2023-11-09 17:54:05 +01:00
Julia
9cb14c189b zed2: Get tsserver running again 2023-11-09 11:43:40 -05:00
Nate Butler
4b5ca3e420 Allow imported themes to refine StatusColors
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-11-09 11:30:59 -05:00
Antonio Scandurra
cfee1401ed Extract AnyElement::{measure,draw}
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-11-09 17:30:41 +01:00
Joseph T. Lyons
40f40ab1ec Fix typo in EULA (#3287)
Release Notes:

- N/A
2023-11-09 11:25:50 -05:00
Joseph T. Lyons
604682bb91 Fix typo in EULA 2023-11-09 11:08:30 -05:00
Nate Butler
7253160b04 Add more vscode colors 2023-11-09 11:01:18 -05:00
Kirill Bulatov
b157453630 Do not use prettier for formatting node_modules/** files (#3286)
Fixes

> the most annoying thing i'm running into right now is that when i'm
patching something inside node_modules, Zed tries to pretty-format it
according to my prettier config. this messes up the patch because it has
formatting changes now. i need the pretty formatting on save to be off
inside node_modules, that never makes sense

feedback from #influencers 

Do note though, that language servers will still format any file inside
node_modules, but at least it's not prettier now.
VSCode seem to format the node_modules/** files via language servers
too, so that seems ok for now, and the rest could be fixed during

> "project diagnostics" (eslint) seem to be running inside node_modules,
e.g. i'm seeing 3182 "errors" in my project. that doesn't make sense and
probably wastes resources in addition to being annoying

feedback later.

Release Notes:

- Fixed prettier formatting files inside node_modules
2023-11-09 17:42:58 +02:00
Kirill Bulatov
f55d89088b Port changes to gpui2 2023-11-09 17:18:41 +02:00
Julia
27b3378020 Get tsserver running again (#3277)
Release Notes:

- Fixed a few issues preventing Javascript/Typescript language server
from working with latest upstream changes.
2023-11-09 10:14:36 -05:00
Kirill Bulatov
2e957bc564 Do not propose prettier formatters for documents in node_modules/ 2023-11-09 14:49:37 +02:00
Kirill Bulatov
ce40d5e0c5 Adjust the tests 2023-11-09 14:40:32 +02:00
Kirill Bulatov
8be07eddcc Change locate prettier method signature 2023-11-09 14:23:33 +02:00
Mikayla
656eb9d455 WIP 2023-11-09 00:18:00 -08:00
Mikayla
43eb7f28d1 checkpoint 2023-11-08 23:16:04 -08:00
Nate Butler
bdeb32c34b Extend VSCode theme importer 2023-11-09 01:39:31 -05:00
Nate Butler
25c8b19dfb WIP 2023-11-09 01:21:22 -05:00
Mikayla
f569628088 Merge branch 'more-gpui2-apis' into editor-tests 2023-11-08 22:19:11 -08:00
Mikayla
86630bbe59 Add extra clone 2023-11-08 22:16:08 -08:00
Mikayla
269c3ea244 Uncomment tests 2023-11-08 22:11:51 -08:00
Mikayla
7a7ef1025d Add Context::read_window, WindowHandle::root, and change ViewContext.view() to return a reference 2023-11-08 22:11:19 -08:00
Nate Butler
b5f60b7e50 Merge branch 'main' into update-workspace-styles 2023-11-09 00:38:06 -05:00
Mikayla
4404e76a2d Merge branch 'main' into editor-integration 2023-11-08 21:33:14 -08:00
Mikayla
0bfd18ba09 WIP 2023-11-08 21:32:59 -08:00
Mikayla Maki
ad3b0bd227 port notifications2 and integration tests (#3283)
Release Notes:

- N/A
2023-11-08 21:32:33 -08:00
Nathan Sobo
8c44f6a814 Simplify input handling (#3282)
This PR takes a different approach to input handling.

Rather than returning the optional input handler, focus handle pair from
the element trait, we instead allow you to register an input handler
imperatively on the window context with `WindowContext::handle_input`.
You pass a focus handle reference and any implementer of
`PlatformInputHandler`. There's an `ElementInputHandler<V>` that
implements `PlatformWindowHandler` so long as `V` implements
`InputHandler`.

Release Notes:

- N/A
2023-11-08 22:27:36 -07:00
Mikayla
7888dc4592 Add notifications2 2023-11-08 21:23:31 -08:00
Nathan Sobo
d52c5646b4 Add docs 2023-11-08 22:03:26 -07:00
Nathan Sobo
7c922ad6ee Remove comments 2023-11-08 21:49:21 -07:00
Nathan Sobo
8278a07354 Actually set the input handler 2023-11-08 21:43:14 -07:00
Mikayla Maki
8330fb5f10 port rope2 to zed2 (#3224)
port rope2 to zed2

Release Notes:

- NA
2023-11-08 20:19:05 -08:00
Mikayla Maki
e2130ca444 Switch from associated type to generic on EventEmitter trait (#3281)
This removes a lot of ad-hoc event translation code in the workspace and
replaces it with a GPUI feature and trait bounds.

TODO:
- [x] Proof out idea
- [x] Convert the workspace
- [x] Convert the rest of the app

Release Notes:

- N/A
2023-11-08 20:16:33 -08:00
Mikayla
2c67cc80ba Merge branch 'main' into event-emitter 2023-11-08 20:10:38 -08:00
Nathan Sobo
9a022671a2 Simplify IME support 2023-11-08 21:06:00 -07:00
Mikayla
3c57b912b9 Update editor to use new event emitter 2023-11-08 19:52:43 -08:00
Mikayla
a97c8bf58f Get workspace compiling with new event emitters 2023-11-08 19:29:00 -08:00
Conrad Irwin
97ce9e9586 de-dbg (#3280)
Remove some debugging from GoToLine

Release Notes:

- N/A
2023-11-08 18:45:42 -07:00
Max Brunsfeld
2bf8616a48 Implement bounds_for_range, so that text input windows are positioned correctly (#3278)
![Screenshot 2023-11-08 at 5 33
10 PM](https://github.com/zed-industries/zed/assets/326587/09efd785-2c43-41b2-9429-c17067497fd2)

![Screenshot 2023-11-08 at 5 33
28 PM](https://github.com/zed-industries/zed/assets/326587/14a9faee-3547-40b6-a31f-16f653cdcb36)
2023-11-08 17:38:11 -08:00
Conrad Irwin
47a63d5cb7 de-dbg 2023-11-08 18:36:12 -07:00
Max Brunsfeld
4350801399 Merge branch 'main' into bounds-for-range 2023-11-08 17:31:00 -08:00
Max Brunsfeld
277fbda356 Fix vertical position in first_rect_for_character_range 2023-11-08 17:27:32 -08:00
Max Brunsfeld
86865431b9 Assign gutter widht on editor view when painting element 2023-11-08 17:01:50 -08:00
Mikayla
26fc36ee0e First pass at allowing multiple event types to be emitted by an entity 2023-11-08 16:34:38 -08:00
Marshall Bowers
15f6fbf53b Merge branch 'bounds-for-range' of github.com:zed-industries/zed into bounds-for-range 2023-11-08 19:25:18 -05:00
Marshall Bowers
9a41c58779 Hard-code the gutter margin temporarily 2023-11-08 19:25:12 -05:00
Max Brunsfeld
b77fab0fae 🎨 2023-11-08 16:24:11 -08:00
Conrad Irwin
b90e34aeb2 go to line2 (#3261)
- MODAL
- center a div
- MOAR CODE
- Beautiful go to line modal


Release Notes:
- N/A
2023-11-08 17:16:00 -07:00
Max Brunsfeld
7a8f219251 Account for element's bounds in Editor::bounds_for_range
Co-authored-by: Marshall <marshall@zed.dev>
2023-11-08 16:15:10 -08:00
Conrad Irwin
cef8fa5570 tidy tidy 2023-11-08 17:09:38 -07:00
Max Brunsfeld
1a37d9edc6 Register text input handlers via new element hook
Provide element bounds to the input handler's `bounds_for_rect` method.

Co-authored-by: Marshall <marshall@zed.dev>
2023-11-08 15:48:55 -08:00
Conrad Irwin
1b9f76c01d Refactor GoToLine to use cx.observe_new_views() 2023-11-08 16:23:05 -07:00
Max Brunsfeld
d273fa6dd0 Fix DisplaySnapshot::x_for_point always returning 0
Co-authored-by: Marshall <marshall@zed.dev>
2023-11-08 13:55:39 -08:00
Max Brunsfeld
c81440424b Fix blinking in editor2 (#3272)
This also introduces new APIs in `ViewContext` for observing window
focus changes.

Release Notes:

- N/A
2023-11-08 13:53:43 -08:00
Julia
c7139db39e Get tsserver running again 2023-11-08 16:51:54 -05:00
Conrad Irwin
cbdd4aca89 Merge branch 'main' into go-to-line2 2023-11-08 14:46:52 -07:00
Conrad Irwin
6a802e2fda Make Modals dismissable in theory 2023-11-08 14:45:54 -07:00
Nate Butler
e505fb330c WIP 2023-11-08 16:43:32 -05:00
Nate Butler
23a97f5b61 Document ColorScaleSteps (#3271)
[[PR Description]]

Adds documentation to ColorScaleSteps:

```rust
/// Returns the specified step in the [`ColorScale`].
    #[inline]
    pub fn step(&self, step: ColorScaleStep) -> Hsla {
        // Steps are one-based, so we need convert to the zero-based vec index.
        self.0[step.0 - 1]
    }

    /// `Step 1` - Used for main application backgrounds.
    ///
    /// This step provides a neutral base for any overlaying components, ideal for applications' main backdrop or empty spaces such as canvas areas.
    ///
    #[inline]
    pub fn step_1(&self) -> Hsla {
        self.step(ColorScaleStep::ONE)
    }

    /// `Step 2` - Used for both main application backgrounds and subtle component backgrounds.
    ///
    /// Like `Step 1`, this step allows variations in background styles, from striped tables, sidebar backgrounds, to card backgrounds.
    #[inline]
    pub fn step_2(&self) -> Hsla {
        self.step(ColorScaleStep::TWO)
    }

    /// `Step 3` - Used for UI component backgrounds in their normal states.
    ///
    /// This step maintains accessibility by guaranteeing a contrast ratio of 4.5:1 with steps 11 and 12 for text. It could also suit hover states for transparent components.
    #[inline]
    pub fn step_3(&self) -> Hsla {
        self.step(ColorScaleStep::THREE)
    }

    /// `Step 4` - Used for UI component backgrounds in their hover states.
    ///
    /// Also suited for pressed or selected states of components with a transparent background.
    #[inline]
    pub fn step_4(&self) -> Hsla {
        self.step(ColorScaleStep::FOUR)
    }

    /// `Step 5` - Used for UI component backgrounds in their pressed or selected states.
    #[inline]
    pub fn step_5(&self) -> Hsla {
        self.step(ColorScaleStep::FIVE)
    }

    /// `Step 6` - Used for subtle borders on non-interactive components.
    ///
    /// Its usage spans from sidebars' borders, headers' dividers, cards' outlines, to alerts' edges and separators.
    #[inline]
    pub fn step_6(&self) -> Hsla {
        self.step(ColorScaleStep::SIX)
    }

    /// `Step 7` - Used for subtle borders on interactive components.
    ///
    /// This step subtly delineates the boundary of elements users interact with.
    #[inline]
    pub fn step_7(&self) -> Hsla {
        self.step(ColorScaleStep::SEVEN)
    }

    /// `Step 8` - Used for stronger borders on interactive components and focus rings.
    ///
    /// It strengthens the visibility and accessibility of active elements and their focus states.
    #[inline]
    pub fn step_8(&self) -> Hsla {
        self.step(ColorScaleStep::EIGHT)
    }

    /// `Step 9` - Used for solid backgrounds.
    ///
    /// `Step 9` is the most saturated step, having the least mix of white or black.
    ///
    /// Due to its high chroma, `Step 9` is versatile and particularly useful for semantic colors such as
    /// error, warning, and success indicators.
    #[inline]
    pub fn step_9(&self) -> Hsla {
        self.step(ColorScaleStep::NINE)
    }

    /// `Step 10` - Used for hovered or active solid backgrounds, particularly when `Step 9` is their normal state.
    #[inline]
    pub fn step_10(&self) -> Hsla {
        self.step(ColorScaleStep::TEN)
    }

    /// `Step 11` - Used for text and icons requiring low contrast or less emphasis.
    #[inline]
    pub fn step_11(&self) -> Hsla {
        self.step(ColorScaleStep::ELEVEN)
    }

    /// `Step 12` - Used for text and icons requiring high contrast or prominence.
    #[inline]
    pub fn step_12(&self) -> Hsla {
        self.step(ColorScaleStep::TWELVE)
    }
```

Release Notes:

- N/A
2023-11-08 16:25:17 -05:00
Nate Butler
208f5f5182 Extend Styled for Zed-specific methods (#3276)
[[PR Description]]

- Adds `StyledExt` for Zed-specific methods like `ui_text`, `v_flex`,
etc.
- Updates components previously using `text_*` methods.

Release Notes:

- N/A
2023-11-08 16:04:46 -05:00
Mikayla
097efdebc5 WIP 2023-11-08 12:49:09 -08:00
Nate Butler
9cc3ee9674 Update usages of text_size_* to text_ui in ui components
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-11-08 15:28:38 -05:00
Nate Butler
9bdfc7a2e5 Update StyledExt to impl over I & F as well as V for Div
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-11-08 15:25:44 -05:00
Marshall Bowers
acf37804eb Use a fork of ctor to silence warnings generated by macro (#3275)
This PR switches us over to a fork of `ctor` that contains the fixes
from https://github.com/mmastrac/rust-ctor/pull/295, backported to our
current version of `ctor` (v0.1.20).

Once 1) the `ctor` maintainer publishes a new version with that change
and 2) we're ready to upgrade to the latest version of `ctor` we can
switch back to the mainline version.

Release Notes:

- N/A
2023-11-08 15:05:19 -05:00
Nate Butler
f4abd95866 Remove the Stack trait, update StyledExt to include stacks
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-11-08 15:00:47 -05:00
Nate Butler
cb830a4ce0 Remove unused code in avatar 2023-11-08 14:46:47 -05:00
Mikayla Maki
94e1a75ff0 WIP: Add collab tests (#3232)
TODO:
- [x] GPUI2: Implement record_backtrace on executor
- [x] GPUI2: Implement rng on executor
- [x] GPUI2: Determine whether to Implement global notifications for
removals
- [x] Get existing tests passing

TODO later:
- [ ] Port: collab_ui and uncomment tests
- [ ] Port: editor and uncomment tests
- [ ] Port: notifications and uncomment tests



Release Notes:

- N/A
2023-11-08 11:46:22 -08:00
Nate Butler
4ef2f0b2b9 Update StyledExt to use more idiomatic method naming 2023-11-08 14:42:56 -05:00
Conrad Irwin
e90f6acf5f Silence problem 2023-11-08 12:37:35 -07:00
Conrad Irwin
dbe06fe5fc Merge branch 'main' into add-collab-tests 2023-11-08 12:33:15 -07:00
Mikayla
409e17ad30 Merge branch 'main' into go-to-line2 2023-11-08 11:32:36 -08:00
Nate Butler
6ecf629c63 BROKEN: Checkpoint 2023-11-08 14:29:38 -05:00
Mikayla
1864d37d2e Fix double borrow in synchronous tests 2023-11-08 11:23:35 -08:00
Max Brunsfeld
b6b0fea210 Merge branch 'main' into fix-editor-blinking 2023-11-08 11:01:13 -08:00
Max Brunsfeld
b33ea3c700 Preserve stateless interactivity when assigning elements an id (#3274) 2023-11-08 10:56:02 -08:00
Max Brunsfeld
2ac28240e4 Merge branch 'main' into picker-actions 2023-11-08 10:49:44 -08:00
Max Brunsfeld
5480c01cda Extract a Frame struct from Window (#3273)
This PR pulls the previous/current frame data out of the `Window` and
into a separate `Frame` struct.

Release Notes:

- N/A
2023-11-08 10:47:11 -08:00
Max Brunsfeld
4c31a0c989 Preserve stateless interactivity when assigning elements an id
Co-authored-by: Nathan <nathan@zed.dev>
Co-authored-by: Piotr <piotr@zed.dev>
2023-11-08 10:45:10 -08:00
Mikayla Maki
cb0315939e Don't generate licenses on every PR (#3260)
Build speed improvification
2023-11-08 10:40:51 -08:00
Mikayla
e1cb993878 Get tests green 2023-11-08 10:38:43 -08:00
Marshall Bowers
ca2cc42800 Remove unused SceneBuilder constructor 2023-11-08 13:30:20 -05:00
Antonio Scandurra
866df770cb Extract a Frame struct from Window
Co-Authored-By: Marshall <marshall@zed.dev>
Co-Authored-By: Nathan <nathan@zed.dev>
Co-Authored-By: Piotr <piotr@zed.dev>
2023-11-08 13:24:11 -05:00
Antonio Scandurra
14b41d657d Introduce ViewContext::on_blur
Co-Authored-By: Marshall <marshall@zed.dev>
2023-11-08 19:09:01 +01:00
Antonio Scandurra
2fd8b1f489 Fix blinking behavior in editor when receiving/losing focus
Co-Authored-By: Marshall <marshall@zed.dev>
2023-11-08 19:03:57 +01:00
Nate Butler
e4ca2cb20b Update titlebar 2023-11-08 12:57:31 -05:00
Nate Butler
6e11044e9e add ui_text_size functions 2023-11-08 12:57:24 -05:00
Mikayla
9b30f490c7 Merge branch 'main' into add-collab-tests 2023-11-08 09:57:08 -08:00
Mikayla
3050c440f4 Merge branch 'main' into add-collab-tests 2023-11-08 09:41:57 -08:00
Max Brunsfeld
d25f48ed6b Register menu2 actions using actions macro 2023-11-08 09:35:19 -08:00
Antonio Scandurra
738b2ce6c5 Extract a Frame struct from Window
Co-Authored-By: Marshall <marshall@zed.dev>
Co-Authored-By: Nathan <nathan@zed.dev>
Co-Authored-By: Piotr <piotr@zed.dev>
2023-11-08 18:17:38 +01:00
Joseph T. Lyons
c67f78c065 Improve get preview channel changes script (#3270)
- Improve reliability of finding release note lines
- Identify cases where release notes were accidentally omitted (no "N/A
line)
- Filter out N/As

Release Notes:

- N/A
2023-11-08 11:55:52 -05:00
Antonio Scandurra
0143fa2056 Fix clipping bugs in editor2 (#3269)
Release Notes:

- N/A
2023-11-08 17:51:39 +01:00
Marshall Bowers
761d4fcd49 Port the picker and uniform list (#3248)
This adds a `UniformList` element and partially implements `Picker` as a
component, using `UniformList`. Because editor2 isn't fully implemented
yet, the picker doesn't have filtering logic yet. We want to merge this
for now though, to make the UniformList element available for other
crates.

Release Notes:

- N/A
2023-11-08 17:45:23 +01:00
Joseph T. Lyons
e6bda025a3 Improve get preview channel changes script
- Filter out N/As
- Identify missing release note lines

Co-Authored-By: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
2023-11-08 11:40:53 -05:00
Marshall Bowers
b6766ba39a Replace GitStatusColors with StatusColors (#3268)
This PR removes `GitStatusColors` in favor of just using `StatusColors`
instead.

Release Notes:

- N/A
2023-11-08 11:32:32 -05:00
Antonio Scandurra
d71f671476 Fix clipping in Line::draw
Co-Authored-By: Nathan <nathan@zed.dev>
Co-Authored-By: Marshall <marshall@zed.dev>
2023-11-08 17:32:21 +01:00
Antonio Scandurra
727fb4fbff Use a consistent clipping strategy for drawing all the primitives
Co-Authored-By: Nathan <nathan@zed.dev>
2023-11-08 17:29:05 +01:00
Marshall Bowers
e9650c025f Fix overflow in UniformList 2023-11-08 11:26:26 -05:00
Marshall Bowers
fe28d8faea Merge branch 'main' into picker 2023-11-08 11:18:54 -05:00
Joseph T. Lyons
9e5a4ea6c4 v0.113.x dev 2023-11-08 10:53:37 -05:00
Antonio Scandurra
131074732f Wire up mouse interaction in editor2 (#3267)
Release Notes:

- N/A
2023-11-08 15:36:47 +01:00
Antonio Scandurra
55dca1e3e1 💄 2023-11-08 15:33:11 +01:00
Antonio Scandurra
15d40d6df5 Determine whether the gutter was hovered 2023-11-08 15:30:41 +01:00
Antonio Scandurra
dfc536b4f5 Handle MouseUpEvent in editor2 2023-11-08 15:17:30 +01:00
Antonio Scandurra
e500c05880 Move building of key listeners outside of EditorElement::initialize 2023-11-08 15:12:54 +01:00
Antonio Scandurra
bef3b80bd4 Clear hover background highlights
Co-Authored-By: Piotr <piotr@zed.dev>
2023-11-08 15:08:54 +01:00
Piotr Osiewicz
e5f78ec122 Uncomment mouse_dragged event
Co-authored-by: Antonio <antonio@zed.dev>
2023-11-08 15:02:35 +01:00
Piotr Osiewicz
1b085bd618 Extract mouse event handlers into paint_mouse_listeners
Co-authored-by: Antonio <antonio@zed.dev>
2023-11-08 14:40:08 +01:00
Piotr Osiewicz
dd20032eab Hook up mouse_down function handler
Co-authored-by: Antonio <antonio@zed.dev>
2023-11-08 14:36:05 +01:00
Piotr Osiewicz
e30449e61a Pass text_bounds instead of full editor bounds into mouse_moved.
Co-authored-by: Antonio <antonio@zed.dev>
2023-11-08 14:28:16 +01:00
Piotr Osiewicz
334829f868 uncomment show_hover 2023-11-08 14:24:28 +01:00
Piotr Osiewicz
cd3773531c uncomment mouse moved 2023-11-08 14:24:28 +01:00
Antonio Scandurra
e4bc03217d gpui2: Type-erase futures. (#3266)
Project2's LLVM IR size is ~33-44% bigger than project1 due to the fact
that in gpui2 we call async_task::spawn(_local) with impl Future instead
of dyn Future, which leads to quite a few more instantiations of
RawTask.

LLVM-IR size for project2:
|  build_type  |  main   |  this branch  | project1 |
|  debug       | 2617795 |    2022814    | 1817866  |
|  release     | 4439033 |    3715086    | 3314489  |

Note that this PR is in line with what was done in GPUI1 (we've also
boxed futures there).
Release Notes:

- N/A
2023-11-08 14:21:40 +01:00
Antonio Scandurra
b1f5723d84 Re-enable most of the features in editor2 (#3265)
Release Notes:

- N/A
2023-11-08 14:20:09 +01:00
Piotr Osiewicz
2364f6b22e gpui2: Type-erase futures.
Project2's LLVM IR size is ~20-25% bigger than project1 due to the fact that in gpui2 we call async_task::spawn(_local) with impl Future instead of dyn Future, which leads to quite a few more instantiations of RawTask.

LLVM-IR size for project2:
|  build_type  |  main   |  this branch  | project1 |
|  debug       | 2617795 |    2022814    | 1817866  |
|  release     | 4439033 |    3715086    | 3314489  |
2023-11-08 13:06:28 +01:00
Antonio Scandurra
c5d5571ad3 Fix warnings when generating function name for ctor
Co-Authored-By: Piotr <piotr@zed.dev>
2023-11-08 12:31:35 +01:00
Antonio Scandurra
6a0789c88e Don't alpha blend when rasterizing paths
Co-Authored-By: Piotr <piotr@zed.dev>
2023-11-08 12:04:25 +01:00
Antonio Scandurra
8ac8a6f1d9 Re-enable most of the functionalities in editor2 2023-11-08 11:30:32 +01:00
Nate Butler
31bac3dd62 Document ColorScaleSteps 2023-11-08 00:45:05 -05:00
Nathan Sobo
d67581875f Register actions statically / globally (#3264)
This updates our approach to action registration to make it
static/global.

There are 3 different approaches to creating an action, depending on the
complexity of your action's implementation. All of them involve defining
a data type with the correct trait implementations and registering it,
each a bit more powerful / verbose.

* Define a simple list of unit structs that implement `Action` -
`actions!(Foo, Bar, Baz)`
* Make a more complex data type into an action with `#[action]`. This
derives all the necessary traits and registers the action.
  ```rs
  #[action]
  struct MoveLeft {
    word: true
  }
  ```
* Implement all traits yourself and just register the action with
`#[register_action]`.

Release Notes:

N/A
2023-11-07 22:05:59 -07:00
Nathan Sobo
408edaae39 Remove call to removed method 2023-11-07 21:58:46 -07:00
Nathan Sobo
1949fa5147 Merge remote-tracking branch 'origin/main' into register-actions 2023-11-07 21:56:08 -07:00
Nathan Sobo
2a55b0dbfb Simplify actions macro. 2023-11-07 21:48:47 -07:00
Nathan Sobo
fdc9ea7f9b Docs and cleanup 2023-11-07 21:26:51 -07:00
Nathan Sobo
814e62050c Register actions globally before main 2023-11-07 20:58:37 -07:00
Nathan Sobo
80630cd4d9 WIP 2023-11-07 20:23:02 -07:00
Nate Butler
776338d27a Update default theme player colors and add players story (#3263)
[[PR Description]]

- Update the default theme player colors for `Zed Pro Moonlight` and
`Zed Pro Daylight`
- Adds the ability to create stories in the `theme2` crate


![image](https://github.com/zed-industries/zed/assets/1714999/61fca222-1512-43b1-a229-fae1080d07fa)

You can see them by running:
- `cargo run -p storybook2 -- components/players --theme "Zed Pro
Daylight"`
- `cargo run -p storybook2 -- components/players --theme`

The player colors crisscross back and forth on the color wheel so that
the colors are as distinct as possible.


![image](https://github.com/zed-industries/zed/assets/1714999/255c9fd2-34da-4f75-9aad-0dd02f7009bf)

We do have room to add additional players if needed. Just let me know if
we feel like the default 8 aren't cutting it.


Release Notes:

- N/A
2023-11-07 22:00:49 -05:00
Nate Butler
0dd6ea6d41 Add new default player colors and the players story. 2023-11-07 21:51:12 -05:00
Nate Butler
79b4f78cb3 Extend the theme crate to enable stories, add players story 2023-11-07 21:08:33 -05:00
Nate Butler
a39865b4b2 Update default player colors 2023-11-07 20:27:00 -05:00
Max Brunsfeld
06960df287 Implement basic fuzzy filtering in picker 2023-11-07 17:24:04 -08:00
Max Brunsfeld
bdec1c8202 Merge branch 'main' into picker 2023-11-07 16:57:47 -08:00
Max Brunsfeld
bcc92e9c4e Implement basic text input handling (#3262)
This PR adds basic text input to Editors in zed2.

Note that we have *not* yet implemented the
`InputHandler::bounds_for_range` method on `Editor`, so the composition
and emoji picker windows are not yet positioned correctly.
2023-11-07 16:57:26 -08:00
Max Brunsfeld
9fe3073af7 Get basic text input working
Co-authored-by: Marshall <marshall@zed.dev>
2023-11-07 16:33:02 -08:00
Max Brunsfeld
bd12e3edb6 Assign editors as text input handlers
Co-authored-by: Marshall <marshall@zed.dev>
2023-11-07 15:44:00 -08:00
Conrad Irwin
b2ae08b159 Implement an InputHandler trait for gpui2
Co-Authored-By: Marshall <marshall@zed.dev>
Co-Authored-By: Max <max@zed.dev>
Co-Authored-By: Julia <julia@zed.dev>
2023-11-07 16:30:04 -07:00
Conrad Irwin
7cdece4857 Beautiful go to line modal
Co-authored-by: Julia <julia@zed.dev>
Co-authored-by: Marshall <marshall@zed.dev>
2023-11-07 15:32:34 -07:00
Max Brunsfeld
ea603401e2 Get actions + focus working on picker, now that it's a view
Co-authored-by: Marshall <marshall@zed.dev>
2023-11-07 13:48:32 -08:00
Conrad Irwin
ae2d0f1fa1 Merge branch 'main' into go-to-line3 2023-11-07 14:44:45 -07:00
Conrad Irwin
5751303ea4 MOAR CODE 2023-11-07 14:44:36 -07:00
Max Brunsfeld
36d9633f6f Merge branch 'main' into picker 2023-11-07 13:37:49 -08:00
Max Brunsfeld
b9d051eae7 Start work on adding a filter editor to the picker
Implement picker as a view instead of as a component

Co-authored-by: Mikayla <mikayla@zed.dev>
Co-authored-by: Marshall <marshall@zed.dev>
2023-11-07 13:37:10 -08:00
Conrad Irwin
ffce5ff084 Don't generate licenses on every PR 2023-11-07 14:33:19 -07:00
Conrad Irwin
9cdfce4956 Make it possible to render a single line editor (#3259)
[[PR Description]]

Release Notes:

- (Added|Fixed|Improved) ...
([#<public_issue_number_if_exists>](https://github.com/zed-industries/community/issues/<public_issue_number_if_exists>)).
2023-11-07 14:26:10 -07:00
Nate Butler
3a85beeaa5 center a div 2023-11-07 16:23:41 -05:00
Conrad Irwin
5c450843a5 Add text and focus to editor 2023-11-07 14:19:15 -07:00
Conrad Irwin
a21c49c015 Make it possible to render a single line editor 2023-11-07 14:05:23 -07:00
Max Brunsfeld
80e6427eec 🎨
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-11-07 13:03:36 -08:00
Conrad Irwin
acab2f9003 MODAL 2023-11-07 13:23:27 -07:00
Max Brunsfeld
10c94cc8b7 Remove unused import 2023-11-07 11:47:49 -08:00
Mikayla Maki
a3bd04fed2 Merge branch 'main' into picker 2023-11-07 11:44:02 -08:00
Mikayla Maki
c7f5888348 editor singleline (#3257)
- Implement Editor::single_line
- Fix confusing error message
- Fix loading keyfiles
- Wire up GoToLine modal
2023-11-07 11:41:33 -08:00
Max Brunsfeld
d690fb038d Merge branch 'main' into picker 2023-11-07 11:27:14 -08:00
Nate Butler
b692fb1464 Start documenting ThemeColors (#3258)
[[PR Description]]
- Adds doc comments for most fields on ThemeColors
- Scaffolds out some upcoming additional fields (Will add in a later PR)
- Renames a few fields:
    - `element_placeholder` -> `element_placeholder_text`
    - `element_drop_target` -> `drop_target_background`
- Removes the redundant `element_placeholder_text` (This should be set
using `text_placeholder`

Release Notes:

- N/A
2023-11-07 14:14:56 -05:00
Conrad Irwin
1e6a0f1c7b Wire up GoToLine modal 2023-11-07 12:12:05 -07:00
Conrad Irwin
0233864e92 Fix loading keyfiles 2023-11-07 12:04:37 -07:00
Conrad Irwin
b804b25c21 Fix confusing error message 2023-11-07 12:04:21 -07:00
Nate Butler
df84ba4222 Continue documenting theme colors 2023-11-07 14:04:09 -05:00
Max Brunsfeld
6928ad1335 Rename List -> UniformList
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-11-07 11:00:53 -08:00
Max Brunsfeld
2412873719 Remove commented-out code in picker2
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-11-07 10:53:59 -08:00
Max Brunsfeld
742180a3a8 Implement list scroll tracking
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-11-07 10:45:38 -08:00
Nate Butler
eb5fe3a3b9 Merge branch 'main' into document-theme 2023-11-07 13:36:08 -05:00
Nate Butler
91f356a2f1 Begin documenting theme colors 2023-11-07 13:36:01 -05:00
Conrad Irwin
3a72f2122a Implement Editor::single_line 2023-11-07 11:12:36 -07:00
Antonio Scandurra
4bf3a4e3d4 Implement movement in editor2 (#3256)
Release Notes:

- N/A
2023-11-07 19:12:09 +01:00
Conrad Irwin
c89d6eb292 modals2 (#3247)
New Modal implementation for gpui2

Release Notes:

N/A
2023-11-07 10:56:46 -07:00
Antonio Scandurra
aa17adaac9 Merge remote-tracking branch 'origin/main' into editor-movement 2023-11-07 18:50:43 +01:00
Antonio Scandurra
d7e86eb1c1 Merge remote-tracking branch 'origin/main' into editor-movement 2023-11-07 18:48:08 +01:00
Max Brunsfeld
1d34b7b9fe Implement picker actions
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-11-07 09:46:41 -08:00
Marshall Bowers
25876161f8 theme_importer: Format generated themes (#3255)
This PR makes the `theme_importer` format the themes that it generates
automatically.

Release Notes:

- N/A
2023-11-07 12:45:09 -05:00
Max Brunsfeld
69eb49a2ed Merge branch 'main' into picker 2023-11-07 09:34:57 -08:00
Antonio Scandurra
2697862a02 Merge remote-tracking branch 'origin/main' into editor-movement 2023-11-07 17:54:46 +01:00
Antonio Scandurra
82a018996b WIP 2023-11-07 17:54:14 +01:00
Antonio Scandurra
64b899c68c Implement scrolling for editor2 (#3251)
Release Notes:

- N/A
2023-11-07 17:53:57 +01:00
Julia
5336c5decf Re-introduce a macro for defining actions for ease of use (#3253)
Release Notes:

- N/A
2023-11-07 11:51:00 -05:00
Marshall Bowers
0d95410634 Rework third-party themes (#3254)
This PR reworks the way we define our third-party themes to make them
work as overlays on top of a base theme.

We introduce the concept of a `UserThemeFamily` that contains
`UserTheme`s. Rather than being an entire theme definition on their own,
a `UserTheme` just contains optional overrides for the values in a
`Theme`.

When resolving a `UserTheme`, we apply it on top of the base theme. Any
values not overridden in the `UserTheme` will fall back to the `Theme`
defaults.

Right now we are just using `UserTheme` to model third-party themes that
we distribute with the Zed binary. However, this same structure can also
be used to import arbitrary user themes (such as from a theme registry,
or even a theme blob from the settings file).

Release Notes:

- N/A
2023-11-07 11:40:07 -05:00
Julia
643146d768 Re-introduce a macro for defining actions for ease of use
Co-Authored-By: Piotr Osiewicz <piotr@zed.dev>
Co-Authored-By: Conrad Irwin <conrad@zed.dev>
2023-11-07 11:30:58 -05:00
Conrad Irwin
a2a28af052 Add Modals
P.S. this is all completely different now

Co-Authored-By: Marshall <marshall@zed.dev>
Co-Authored-By: Julia <julia@zed.dev>
2023-11-07 09:18:34 -07:00
Piotr Osiewicz
9582a6f317 chore: Run multitarget build in script/bundle (#3241)
Ignore this PR for now.

This has a chance to speed up a build in case where e.g. we're
single-threaded in aarch64 build; at that point the x86_64 codegen can
take place. Also, MIR can probably be shared between the two
architectures, further reducing build time.

Release Notes:
- N/A
2023-11-07 17:00:36 +01:00
Conrad Irwin
2e43015664 gpui event test (#3249)
- Flesh out gpui2 test support
- Smoke test for event handling
2023-11-07 08:43:15 -07:00
Marshall Bowers
74853ea55f Rename ThemeVariant to Theme (#3252)
This PR renames the `ThemeVariant` type to `Theme`.

This better reflects its purpose, as well as matches the same name as we
had before, which should make porting crates slightly easier.

Release Notes:

- N/A
2023-11-07 10:41:36 -05:00
Conrad Irwin
6f74854525 Fix event ordering issues 2023-11-07 08:29:55 -07:00
Antonio Scandurra
b0650517ad Clip text when scrolling horizontally
Co-Authored-By: Julia <julia@zed.dev>
Co-Authored-By: Piotr <piotr@zed.dev>
2023-11-07 15:50:18 +01:00
Antonio Scandurra
b9e98c112f Re-enable scrolling for EditorElement
Co-Authored-By: Julia <julia@zed.dev>
Co-Authored-By: Piotr <piotr@zed.dev>
2023-11-07 15:48:08 +01:00
Antonio Scandurra
9cb8512603 Start on laying out and painting editor2 (#3250)
![CleanShot 2023-11-07 at 13 16
28@2x](https://github.com/zed-industries/zed/assets/482957/a136a3d9-b518-4591-8307-e63cfe0e4310)


Release Notes:

- N/A
2023-11-07 15:14:26 +01:00
Marshall Bowers
7078c5fbb9 Regenerate all themes 2023-11-07 08:59:50 -05:00
Marshall Bowers
01eac50fc8 Add new ThemeColors values to the theme printer 2023-11-07 08:59:37 -05:00
Antonio Scandurra
9f2e6be1b3 Fix warning 2023-11-07 14:31:17 +01:00
Antonio Scandurra
268be71d8e Add colors for document highlights 2023-11-07 13:15:08 +01:00
Antonio Scandurra
bdf6e8bcc7 Merge remote-tracking branch 'origin/main' into editor2-paint 2023-11-07 13:09:48 +01:00
Antonio Scandurra
6ae09634ce Remove focused field and use FocusHandle instead in Editor 2023-11-07 12:46:31 +01:00
Antonio Scandurra
a866370dc1 Paint lines 2023-11-07 12:25:33 +01:00
Conrad Irwin
a7d52ee86f Smoke test for event handling 2023-11-06 21:05:22 -07:00
Conrad Irwin
8e799b6e22 Flesh out gpui2 test support 2023-11-06 21:05:11 -07:00
Conrad Irwin
2afeb50c4b Try notarytool (#3239)
Try to use notarytool to fix build problems
2023-11-06 18:16:38 -07:00
Mikayla
85000eba81 wip: picker
co-authored-by: nathan <nathan@zed.dev>
co-authored-by: max <max@zed.dev>
2023-11-06 17:09:38 -08:00
Mikayla
3c93b585ab Checkpoint 2023-11-06 15:11:22 -08:00
Mikayla
ea6755b1ca Checkpoint 2023-11-06 14:26:10 -08:00
Nate Butler
99a57d922f Add theme importer (#3246)
[[PR Description]]

Thanks @maxdeviant for all the help with this one 🫂 

- Adds the `theme_importer` crate
- Adds the ability to import themes in VSCode Format.
- Adds the `assets/themes/src` folder with source files for imported
themes
- Adds an initial set of themes: `andromeda`, `ayu`, `dracula`,
`gruvbox`, `night-owl`, `noctis`, `palenight`, `rose-pine`, `solarized`,
`synthwave-84`.

From the README:

## Usage

- `cargo run -p theme_importer` - Import the context of
`assets/themes/src`

---

## Troubleshooting

As the importer generates rust files, you may need to manually do some
cleanup in `registry.rs` and `themes/mod.rs` if you remove themes or
delete the `themes` folder in the theme crate.

---

## Required Structure

To import a theme or series of themes 3 things are required:

- `family.json`: A JSON file containing the theme family metadata and
list of theme variants
- `{theme_name}.json`: One theme json for each theme variant
- `LICENSE`: A license file for the theme family

### `family.json`

#### `name`

The name of the theme family. Avoid special characters.

This will be used for the theme family directory name (lowercased) and
the theme family name in the Zed UI.

Good:

- `Rose Pine`
- `Synthwave 84`
- `Monokai Solarized`

Bad:

- `Rosé Pine`
- `Synthwave '84`
- `Monokai (Solarized)`

#### `author`

The author of the theme family. This can be a name or a username.

This will be used for the theme family author in the Zed UI.

#### `themes`

A list of theme variants.

`appearance` can be either `light` or `dark`. This will impact which
default fallback colors are used, and where the theme shows up in the
Zed UI.

### `{theme_name}.json`

Each theme added to the family must have a corresponding JSON file. This
JSON file can be obtained from the VSCode extensions folder (once you
have installed it.) This is usually located at `~/.vscode/extensions`
(on macOS).

You can use `open ~/.vscode/extensions` to open the folder in Finder
directly.

Copy that json file into the theme family directory and tidy up the
filenames as needed.

### `LICENSE`

A LICENSE file is required to import a theme family. Failing to provide
a complete text license will cause it to be skipped when the import is
run.

If the theme only provices a license code (e.g. MIT, Apache 2.0, etc.)
then put that code into the LICENSE file.

If no license is provided, either contact the theme creator or don't add
the theme.

---

### Complete Example:

An example family with multiple variants:

```json
{
  "name": "Ayu",
  // When both name and username are available
  // prefer the `username (name)` format
  "author": "dempfi (Ike Ku)",
  "themes": [
    {
      "name": "Ayu Light",
      "file_name": "ayu-light.json",
      "appearance": "light"
    },
    {
      "name": "Ayu Mirage",
      "file_name": "ayu-mirage.json",
      "appearance": "dark"
    },
    {
      "name": "Ayu Dark",
      "file_name": "ayu-dark.json",
      "appearance": "dark"
    }
  ]
}
```

An example single variant family:

```json
{
  "name": "Andromeda",
  "author": "Eliver Lara (EliverLara)",
  "themes": [
    {
      "name": "Andromeda",
      "file_name": "andromeda.json",
      "appearance": "dark"
    },
    {
      "name": "Andromeda Bordered",
      "file_name": "andromeda-bordered.json",
      "appearance": "dark"
    }
  ]
}
```


Release Notes:

- N/A
2023-11-06 16:08:05 -05:00
Nate Butler
eac7c3cea9 Update Cargo.toml 2023-11-06 16:02:21 -05:00
Nate Butler
2931d32499 Add a README for theme_importer 2023-11-06 16:00:57 -05:00
Mikayla
3f7dc59512 Snapshot for kirill 2023-11-06 12:33:20 -08:00
Nate Butler
3cb72610b3 Finish up initial themes 2023-11-06 15:24:36 -05:00
Nate Butler
62981fc2ee Format themes 2023-11-06 14:58:34 -05:00
Nate Butler
c47c64184c Add additional themes, update theme importer 2023-11-06 14:54:21 -05:00
Mikayla
75a80811b3 WIP 2023-11-06 11:18:56 -08:00
Conrad Irwin
050d72719a Use gpui instead of gpui2 consistently (#3245)
Release Notes:

N/A
2023-11-06 12:02:58 -07:00
Conrad Irwin
496518f3e8 Use gpui instead of gpui2 consistenytly 2023-11-06 11:50:33 -07:00
Conrad Irwin
eb325fb387 editor2 rendering (#3244)
- Make tab bar visible
- Fix tab text colors
- Ensure panes cover the available space
- Make the close button close
- Fix bug when unsubscribe called after remove
- WIP: start on editor element
- Add hover behaviour to tabs
- Add PointingHand on tabs
- gpui2: Add on_hover events
- Tooltip on tabs
- MOAR TOOLTIPS
- Use an `IconButton` for the tab close button
- Remove unneeded type qualification
- Tooltips in mouse event handler & fix executor timer
- Move more tooltip logic into gpui2 & fix tooltip moving on paint
- Update tooltip code a bit
- Allow multiple subscriptions from one entity handle

Release Notes:

- N/A
2023-11-06 11:29:42 -07:00
Nate Butler
3940e02a73 Add Nord Theme 2023-11-06 13:25:27 -05:00
Marshall Bowers
d224f511fa Add interactivity to Checkbox component (#3240)
This PR adds interactivity to the `Checkbox` component.

They can now be checked and unchecked by clicking them.

Release Notes:

- N/A
2023-11-06 13:22:25 -05:00
Mikayla
d66ed4310f WIP: change over background executor test helpers 2023-11-06 10:16:08 -08:00
Conrad Irwin
c59817cd72 Merge branch 'main' into editor2-rendering 2023-11-06 11:06:43 -07:00
Conrad Irwin
d88dccffbc Allow multiple subscriptions from one entity handle 2023-11-06 11:03:14 -07:00
Antonio Scandurra
e460f6a27c WIP 2023-11-06 18:59:46 +01:00
Conrad Irwin
3afdeeac1e tooltip2 (#3237)
- Fix executor.timer() in gpui2
- Add support for tooltips 

[[PR Description]]

Release Notes:

- N/A
2023-11-06 10:51:01 -07:00
Nate Butler
80f80df5cf Add Noctis Theme 2023-11-06 12:43:10 -05:00
Conrad Irwin
4d88a326e1 Tidy up a bit better 2023-11-06 10:37:35 -07:00
Kirill Bulatov
254b369624 Properly toggle diagnostics (#3243)
Follow-up of https://github.com/zed-industries/zed/pull/3236 that fixes
a bug introduced in that PR: diagnostics warning toggle stopped working.

Release Notes:

- N/A
2023-11-06 19:35:49 +02:00
Kirill Bulatov
bfb860c06c Properly toggle diagnostics 2023-11-06 19:29:31 +02:00
Marshall Bowers
f8504c349c Merge branch 'main' into import-theme 2023-11-06 12:08:46 -05:00
Marshall Bowers
bf80c1da5b Rename fields in ThemeColors (#3242)
This PR applies a number of field renames in the `ThemeColors` struct
from the `import-theme` branch.

This will help prevent this branch from diverging too far from `main`.

Release Notes:

- N/A

---------

Co-authored-by: Nate Butler <iamnbutler@gmail.com>
Co-authored-by: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-11-06 11:53:27 -05:00
Conrad Irwin
f730982e7b Use notarytool to bundle 2023-11-06 09:38:09 -07:00
Julia
8bcf114a05 Actually find downloaded binary in Elixir cached binary method (#3183)
Language adapters 2.0 will systematically fix this kind of issue and
cause world peace but until we do that let's be less broken

Release Notes:

- Fixed being unable to find already downloaded Elixir-LS binary on the
file system.
2023-11-06 11:37:45 -05:00
Julia
66b967532f zed2: Actually find downloaded binary in Elixir cached binary method 2023-11-06 11:31:31 -05:00
Piotr Osiewicz
ee28cc5deb chore: Run multitarget build in script/bundle
This has a chance to speed up a build in case where e.g. we're single-threaded in aarch64 build; at that point the x86_64 codegen can take place. Also, MIR can probably be shared between the two architectures, further reducing build time.
2023-11-06 17:21:34 +01:00
Julia
dbdb5f6519 Actually find downloaded binary in Elixir cached binary method 2023-11-06 11:18:36 -05:00
Nate Butler
230edeb5f8 Add gruvbox source theme, strip comments 2023-11-06 11:16:09 -05:00
Nate Butler
8192a52bd0 Skip .DS_Store files when scanning themes folder 2023-11-06 11:03:17 -05:00
Nate Butler
5d90396b51 Ignore generated themes 2023-11-06 10:59:00 -05:00
Nate Butler
5c24c931c5 Remove unused file 2023-11-06 10:57:25 -05:00
Nate Butler
b9d8e08165 Add Andromeda source theme 2023-11-06 10:57:15 -05:00
Piotr Osiewicz
9509153f99 chore: Update vue.js parser (fixes wonky HTML parsing) (#3238)
Vue.js defined a bunch of symbols in it's scanner that collided with
those defined in HTML Tree-sitter grammar. I simply removed them as they
were meant for consumption by the external parties interested in HTML
parser with Vue support - since we handle that ourselves this is not
really necessary to preserve anymore. cc was firing up a bunch of
warnings about unused symbols when I've marked those functions as
`static`, so yeah.
Release Notes:

- Fixed HTML highlighting breaking in presence of <!-- --> comments
(fixes zed-industries/community#2166).
2023-11-06 16:16:46 +01:00
Antonio Scandurra
769526a76a Paint editor background 2023-11-06 15:54:09 +01:00
Piotr Osiewicz
7374ca999b chore: Update vue.js parser (fixes wonky HTML parsing)
Vue.js defined a bunch of symbols in it's scanner that collided with those defined in HTML Tree-sitter grammar. I simply removed them as they were meant for consumption by the external parties interested in HTML parser with Vue support - since we handle that ourselves this is not really necessary to preserve anymore. cc was firing up a bunch of warnings about unused symbols, so yeah.
2023-11-05 22:56:35 +01:00
Kirill Bulatov
128d3696ad More heuristics for diagnostics updates (#3236)
Follow-up of https://github.com/zed-industries/zed/pull/3225
That PR enabled every `project::Event::DiskBasedDiagnosticsFinished` to
update the diagnostics, which turned out to be bad, Zed does query for
more diagnostics after every excerpt update, and that seems to be due to
`Event::Edited` emitted by the multibuffers created in the diagnostics
panel.

* now, instead of eagerly updating the diagnostics every time, only do
that if the panel has 0 or 1 caret placed and no changes were made in
the panel yet.
Otherwise, use previous approach and register the updated paths to defer
their update later.

* on every `update_excerpts` in the diagnostics panel, query the entire
diagnostics summary (and store it for the future comparisons), compare
old and new summaries and re-query diagnostics for every path that's not
in both summaries.
Also, query every path that was registered during the
`DiskBasedDiagnosticsFinished` updates that were not eagerly updated
before.

This way we're supposed to get all new diagnostics (for new paths added)
and re-check all old paths that might have stale diagnostics now.

* do diagnostics rechecks concurrently for every path now, speeding the
overall process

Release Notes:

- Fixed diagnostics triggering too eagerly during multicaret edits and
certain stale diagnostics not being removed in time
2023-11-05 16:17:38 +02:00
Nate Butler
b2f744f576 Add checkboxes and their stories (#3235)
[[PR Description]]

Adds checkboxes and their stories.

A checkbox can be created simply by passing an id:

~~~rust
#[derive(Component)]
pub struct Checkbox {
    id: SharedString,
    checked: Selected,
    disabled: bool,
}

impl Checkbox {
    pub fn new(id: impl Into<SharedString>) -> Self {
        Self {
            id: id.into(),
            checked: Selected::Unselected,
            disabled: false,
        }
    }
    //...
}
~~~

I've documented this component rather thoroughly as an example of how
we've been thinking about building out UI elements:

~~~rs
pub fn render<V: 'static>(self, _view: &mut V, cx: &mut ViewContext<V>)
-> impl Component<V> {
        let group_id = format!("checkbox_group_{}", self.id);

        // The icon is different depending on the state of the checkbox.
        //
        // We need the match to return all the same type,
        // so we wrap the eatch result in a div.
        //
        // We are still exploring the best way to handle this.
        let icon = match self.checked {
            // When selected, we show a checkmark.
            Selected::Selected => {
                div().child(
                    IconElement::new(Icon::Check)
                        .size(crate::IconSize::Small)
                        .color(
// If the checkbox is disabled we change the color of the icon.
                            if self.disabled {
                                IconColor::Disabled
                            } else {
                                IconColor::Selected
                            },
                        ),
                )
            }
            // In an indeterminate state, we show a dash.
            Selected::Indeterminate => {
                div().child(
                    IconElement::new(Icon::Dash)
                        .size(crate::IconSize::Small)
                        .color(
// If the checkbox is disabled we change the color of the icon.
                            if self.disabled {
                                IconColor::Disabled
                            } else {
                                IconColor::Selected
                            },
                        ),
                )
            }
            // When unselected, we show nothing.
            Selected::Unselected => div(),
        };

        // A checkbox could be in an indeterminate state,
        // for example the indeterminate state could represent:
        //  - a group of options of which only some are selected
        //  - an enabled option that is no longer available
        //  - a previously agreed to license that has been updated
        //
// For the sake of styles we treat the indeterminate state as selected,
        // but it's icon will be different.
        let selected =
self.checked == Selected::Selected || self.checked ==
Selected::Indeterminate;

// We could use something like this to make the checkbox background when
selected:
        //
        // ~~~rust
        // ...
        // .when(selected, |this| {
        //     this.bg(cx.theme().colors().element_selected)
        // })
        // ~~~
        //
// But we use a match instead here because the checkbox might be
disabled,
// and it could be disabled _while_ it is selected, as well as while it
is not selected.
        let (bg_color, border_color) = match (self.disabled, selected) {
            (true, _) => (
                cx.theme().colors().ghost_element_disabled,
                cx.theme().colors().border_disabled,
            ),
            (false, true) => (
                cx.theme().colors().element_selected,
                cx.theme().colors().border,
            ),
(false, false) => (cx.theme().colors().element,
cx.theme().colors().border),
        };

        div()
// Rather than adding `px_1()` to add some space around the checkbox,
// we use a larger parent element to create a slightly larger
            // click area for the checkbox.
            .size_5()
// Because we've enlarged the click area, we need to create a
            // `group` to pass down interaction events to the checkbox.
            .group(group_id.clone())
            .child(
                div()
                    .flex()
                    // This prevent the flex element from growing
                    // or shrinking in response to any size changes
                    .flex_none()
// The combo of `justify_center()` and `items_center()`
// is used frequently to center elements in a flex container.
                    //
                    // We use this to center the icon in the checkbox.
                    .justify_center()
                    .items_center()
                    .m_1()
                    .size_4()
                    .rounded_sm()
                    .bg(bg_color)
                    .border()
                    .border_color(border_color)
// We only want the interaction states to fire when we
                    // are in a checkbox that isn't disabled.
                    .when(!self.disabled, |this| {
// Here instead of `hover()` we use `group_hover()`
                        // to pass it the group id.
                        this.group_hover(group_id.clone(), |el| {
                            el.bg(cx.theme().colors().element_hover)
                        })
                    })
                    .child(icon),
            )
    }
~~~

Release Notes:

- N/A
2023-11-05 08:37:45 -05:00
Kirill Bulatov
ad93d9132f Correctly update old diagnostics 2023-11-05 15:37:27 +02:00
Kirill Bulatov
fdcb907644 Parallelize diagnostics filling, add more logs 2023-11-05 15:06:39 +02:00
Kirill Bulatov
ff1d692e46 Restructure inner path data 2023-11-05 14:53:13 +02:00
Kirill Bulatov
7145fabb6d Eagerly refresh diagnostics that do not intercept with user input 2023-11-05 14:44:22 +02:00
Kirill Bulatov
660c3371e4 Refresh all possibly stale diagnostics pat 2023-11-05 14:43:54 +02:00
Nate Butler
1bce5dcc69 Add checkboxes and their stories 2023-11-05 01:06:41 -05:00
Nate Butler
b243de407e Simplify toggle, some ui2 reorganization (#3234)
[[PR Description]]

A few mix organizational things in UI, as well as some toggle changes.

Simplify toggle:

```rust
/// Whether the entry is toggleable, and if so, whether it is currently toggled.
///
/// To make an element toggleable, simply add a `Toggle::Toggled(_)` and handle it's cases.
///
/// You can check if an element is toggleable with `.is_toggleable()`
///
/// Possible values:
/// - `Toggle::NotToggleable` - The entry is not toggleable
/// - `Toggle::Toggled(true)` - The entry is toggleable and toggled
/// - `Toggle::Toggled(false)` - The entry is toggleable and not toggled
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
pub enum Toggle {
    NotToggleable,
    Toggled(bool),
}
```

Adds helper functions to easily get the toggle and toggleable states:

```rust
impl Toggle {
    /// Returns true if the entry is toggled (or is not toggleable.)
    ///
    /// As element that isn't toggleable is always "expanded" or "enabled"
    /// returning true in that case makes sense.
    pub fn is_toggled(&self) -> bool {
        match self {
            Self::Toggled(false) => false,
            _ => true,
        }
    }

    pub fn is_toggleable(&self) -> bool {
        match self {
            Self::Toggled(_) => true,
            _ => false,
        }
    }
}
```

Pulls `disclosure_control` out of components and creates a common def:

```rust
pub fn disclosure_control<V: 'static>(toggle: Toggle) -> impl Component<V> {
    match (toggle.is_toggleable(), toggle.is_toggled()) {
        (false, _) => div(),
        (_, true) => div().child(
            IconElement::new(Icon::ChevronDown)
                .color(IconColor::Muted)
                .size(IconSize::Small),
        ),
        (_, false) => div().child(
            IconElement::new(Icon::ChevronRight)
                .color(IconColor::Muted)
                .size(IconSize::Small),
        ),
    }
}
```

disclosure_control will likely get pulled into it's own component in the
future instead of being in toggle.

Release Notes:

- N/A
2023-11-04 12:09:41 -04:00
Nate Butler
b125cc279f Simplify toggle, do some reorganization 2023-11-04 11:24:31 -04:00
Antonio Scandurra
86d1defda2 Fix compile errors, now lines are being laid out 2023-11-04 14:37:57 +01:00
Kirill Bulatov
ac9efaebb7 Suppress unused vars warning generated by gpui macro (#3233) 2023-11-04 14:06:42 +02:00
Kirill Bulatov
9f40a5c53f Suppress unused vars warning generated by gpui macro 2023-11-04 13:54:37 +02:00
Conrad Irwin
de5458cfe0 Update tooltip code a bit
This fixes a tiny UX bug where the tooltip would appear to move if you
hovered over an element, then moved your mouse out and back within
500ms.

The fix is to retain the task, so we can drop it to cancel it when the
mouse leaves.

Also changes the time we construct the tooltip to the time it first
shows.
2023-11-03 21:40:28 -06:00
Mikayla Maki
123439adc2 Merge branch 'main' into add-collab-tests 2023-11-03 18:06:08 -07:00
Mikayla
e1525e2b47 Get collab2 green 2023-11-03 18:01:06 -07:00
Max Brunsfeld
436dc93441 WIP2000 2023-11-03 16:40:37 -07:00
Max Brunsfeld
42409528af Allow language injection in markdown code blocks in channel notes (#3231)
Release Notes:

- Fixed an issue where markdown code blocks were not syntax-highlighted
in channel notes editors.
2023-11-03 16:12:02 -07:00
Max Brunsfeld
2dd32dbe87 Allow language injection in markdown code blocks in channel notes 2023-11-03 15:53:54 -07:00
Julia
4725cd2cd6 Move more tooltip logic into gpui2 & fix tooltip moving on paint
Co-Authored-By: Conrad Irwin <conrad@zed.dev>
2023-11-03 18:37:15 -04:00
Nate Butler
4cce6ae212 Add UI docs (#3230)
Not as exciting as it sounds - Just starting to scaffold out some UI
docs and want to get feedback.

Release Notes:

- N/A
2023-11-03 18:25:08 -04:00
Nate Butler
b0d202ba5e Merge branch 'main' into add-ui-docs 2023-11-03 18:20:17 -04:00
Nate Butler
9ce7199d2d Add some initial docs 2023-11-03 18:19:54 -04:00
Marshall Bowers
5d36331942 storybook2: Remove unreferenced components module (#3229)
This PR removes the `components` module from `storybook2` as it was
dead, unreferenced code.

Release Notes:

- N/A
2023-11-03 18:12:21 -04:00
Julia
3834e26f71 Tooltips in mouse event handler & fix executor timer
Co-Authored-By: Conrad Irwin <conrad@zed.dev>
2023-11-03 18:02:58 -04:00
Marshall Bowers
6abdab7735 Remove theme.txt 2023-11-03 17:52:19 -04:00
Marshall Bowers
76db100d11 ui2: Reorganize components (#3228)
This PR reorganizes the components in the `ui2` crate.

The distinction between "elements" and "components" is now gone, with
all of the reusable components living under `components/`.

The components that we built while prototyping but will eventually live
in other crates currently reside in the `to_extract/` module.

Release Notes:

- N/A
2023-11-03 17:34:11 -04:00
Marshall Bowers
287ea0a6e4 Allow deriving Serialize and Deserialize on generated refinement (#3227)
This PR adds support for deriving `Serialize` and `Deserialize` on the
refinement type generated by `#[derive(Refineable)]`.

Release Notes:

- N/A
2023-11-03 17:21:00 -04:00
Marshall Bowers
b5224bdafd Remove unneeded type qualification 2023-11-03 16:40:46 -04:00
Nate Butler
d500b01aed Add docs burndown list
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-11-03 16:37:22 -04:00
Marshall Bowers
1361b61708 Use an IconButton for the tab close button 2023-11-03 16:36:02 -04:00
Nate Butler
740e2cc5bf Start on ui root doc
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-11-03 16:28:54 -04:00
Conrad Irwin
f97046b86f MOAR TOOLTIPS 2023-11-03 14:15:32 -06:00
Kirill Bulatov
edacffab58 Refresh diagnostics inside the tab (#3225)
r-a now has 2 different types of diagnostics: 
* "disk-based" ones that come from `cargo check` and related, that emit
`project::Event::DiskBasedDiagnosticsStarted` and
`DiskBasedDiagnosticsFinished`
* "flycheck" diagnostics from r-a itself, that it tries to dynamically
apply to every buffer open, that come with `DiagnosticsUpdated` event.

Latter diagnostics update frequently, on every file close and open, but
`diagnostics.rs` logic had never polled for new diagnostics after
registering the `DiagnosticsUpdated` event, so the only way we could
have newer diagnostics was to re-open the whole panel.
The PR fixes that, and also adds more debug logging to the module.
The logic of the fix looks very familiar to previous related fix:
https://github.com/zed-industries/zed/pull/3128

One notable thing after the fix: "flycheck" diagnostics stay forever if
the diagnostics panel is opened: excerpts in that panel do not allow the
buffer to get dropped (hence, closed in terms of r-a) and get the
updated, zero diagnostics.
If the diagnostics panel is opened and closed multiple times, those
errors gradually disappear.

Release Notes:

- Fixed diagnostics panel not refreshing its contents properly
2023-11-03 22:03:05 +02:00
Conrad Irwin
33245d119e Tooltip on tabs
Co-Authored-By: Julia <julia@zed.dev>
2023-11-03 14:02:46 -06:00
Kirill Bulatov
918d123284 Fix the test 2023-11-03 21:51:12 +02:00
Kirill Bulatov
6f8947a3d3 Fix a compilation error 2023-11-03 21:51:12 +02:00
Kirill Bulatov
9cb8ce172d Refresh diagnostics inside the tab 2023-11-03 21:51:12 +02:00
Marshall Bowers
12500364b4 Merge branch 'main' into import-theme 2023-11-03 15:41:12 -04:00
Marshall Bowers
fa7d6c0e70 Remove Default impl for ThemeColors` (#3226)
This PR removes the `Default` impl for `ThemeColors`.

Since we need default light and dark variants for `ThemeColors`, we
can't use a single `Default` impl.

Release Notes:

- N/A
2023-11-03 15:40:50 -04:00
Mikayla Maki
c529343ba1 WIP: Port channel crate to gpui2 (#3192) 2023-11-03 12:32:47 -07:00
Max Brunsfeld
66499f60ee Fix double borrow in synchronous tests that take AppContext
Co-authored-by: Mikayla <mikayla@zed.dev>
Co-authored-by: Antonio <antonio@zed.dev>
2023-11-03 12:10:11 -07:00
Mikayla
2b883bf32e WIP 2023-11-03 12:04:24 -07:00
Conrad Irwin
26e64fb843 gpui2: Add on_hover events 2023-11-03 12:51:38 -06:00
Antonio Scandurra
2a672e2126 WIP 2023-11-03 18:55:20 +01:00
Mikayla
6a1fb18334 Update to latest patterns for porting work 2023-11-03 10:46:47 -07:00
Max Brunsfeld
b085569b46 Add channel2 crate
Co-authored-by: Marshall <marshall@zed.dev>
2023-11-03 10:41:41 -07:00
Conrad Irwin
d73c54f604 Add PointingHand on tabs 2023-11-03 11:30:15 -06:00
Conrad Irwin
c604a2e34e Add hover behaviour to tabs
Co-Authored-By: Marshall <marshall@zed.dev>
Co-Authored-By: Nathan <nathan@zed.dev>
2023-11-03 10:55:07 -06:00
KCaverly
a65c1776d8 port rope2 to zed2 2023-11-03 12:15:23 -04:00
Antonio Scandurra
d3b02c4de4 WIP: start on editor element 2023-11-03 17:14:17 +01:00
Conrad Irwin
580694dbda Fix bug when unsubscribe called after remove
Co-Authored-By: Julia <julia@zed.dev>
2023-11-03 09:56:35 -06:00
Conrad Irwin
920ea1bf0a Make the close button close 2023-11-03 09:20:27 -06:00
Antonio Scandurra
b5c2cf371a Ensure panes cover the available space 2023-11-03 16:14:03 +01:00
Conrad Irwin
0edcec7c4e Fix tab text colors 2023-11-03 09:12:12 -06:00
Marshall Bowers
363d7c6634 Exclude source themes from Zed2 binary 2023-11-03 11:11:10 -04:00
Kyle Caverly
343525d77b added workspace event for WorkspaceCreated (#3222)
added workspace2 event for WorkspaceCreated

Release Notes:

- NA
2023-11-03 11:06:11 -04:00
Marshall Bowers
acc36e6dab Update emitted module import 2023-11-03 10:58:06 -04:00
Marshall Bowers
293fbe4c75 Account for colors in VS Code theme being optional 2023-11-03 10:54:12 -04:00
Antonio Scandurra
b21c25826d Make tab bar visible 2023-11-03 15:51:33 +01:00
Antonio Scandurra
0b3c888acc Start on editor2 (#3223)
Opening this pull request early on, as I added a bunch of APIs to
`gpui2` and uncommented code that might be useful to others in
`workspace2`.

Release Notes:

- N/A
2023-11-03 15:37:48 +01:00
Marshall Bowers
e0382a61b9 Update color names in workspace2 2023-11-03 10:16:34 -04:00
Marshall Bowers
a7edd380e3 Merge branch 'main' into import-theme 2023-11-03 10:11:35 -04:00
Antonio Scandurra
de3d37e070 Don't depend on gpui2 in text 2023-11-03 14:53:08 +01:00
Antonio Scandurra
097171b9b8 Merge remote-tracking branch 'origin/main' into editor2 2023-11-03 14:47:49 +01:00
Antonio Scandurra
3e8fcefaef Remove more todos 2023-11-03 14:42:26 +01:00
Antonio Scandurra
feaab953a8 Add ViewContext::window_context 2023-11-03 14:41:37 +01:00
KCaverly
b148c61047 added workspace event for WorkspaceCreated 2023-11-03 08:52:18 -04:00
Kirill Bulatov
90d532f0ba Uncomment more gpui2 (#3221)
Release Notes:

- N/A
2023-11-03 13:45:35 +02:00
Kirill Bulatov
1a0cd3e09b Remove and add more todosmerge . 2023-11-03 13:22:11 +02:00
Antonio Scandurra
77e3c7f8ee WIP 2023-11-03 12:10:15 +01:00
Kirill Bulatov
f1fc07de94 Move journal2 to workspace2 2023-11-03 12:55:06 +02:00
Kirill Bulatov
eb8a0e7148 Uncomment persistence tests 2023-11-03 12:38:09 +02:00
Antonio Scandurra
b7712c2f4b Fix a todo in workspace 2023-11-03 11:36:39 +01:00
Antonio Scandurra
bed10b433a Allow converting from a WeakView<V> to an AnyWeakView 2023-11-03 11:36:18 +01:00
Antonio Scandurra
6fc7b17259 Expose a focus handle from workspace::Item 2023-11-03 11:00:57 +01:00
Antonio Scandurra
97d1d9bd9b Uncomment Editor::report_editor_event 2023-11-03 10:53:55 +01:00
Antonio Scandurra
0dfa3c60b7 Remove some todos 2023-11-03 10:50:30 +01:00
Antonio Scandurra
11feda01e3 Uncomment Editor::new 2023-11-03 10:38:28 +01:00
Kirill Bulatov
a9ab413c5a Detect prettier in npm workspaces correctly (#3219)
Deals with https://github.com/zed-industries/community/issues/2016

Also refactored project code to spawn less default prettiers.

Release Notes:

- Fixed prettier not working in npm workspaces
2023-11-03 11:14:45 +02:00
Antonio Scandurra
2fccde5ab6 Remove unused code 2023-11-03 10:11:13 +01:00
Antonio Scandurra
efa27cf9b8 Uncomment more editor code 2023-11-03 10:09:00 +01:00
Kirill Bulatov
09346fb9f1 Port changes to zed2 2023-11-03 11:02:50 +02:00
Kirill Bulatov
24dd1c5812 Properly order default prettier installations and startups 2023-11-03 11:02:50 +02:00
Kirill Bulatov
244c693968 Reuse already running default prettiers 2023-11-03 11:02:50 +02:00
Kirill Bulatov
cf95f9b082 Make it more clear that missing prettier is to blame 2023-11-03 11:02:50 +02:00
Kirill Bulatov
369b5140fb Restore LSP names for prettier servers 2023-11-03 11:02:50 +02:00
Kirill Bulatov
b75d8a60a8 Simplify 2023-11-03 11:02:50 +02:00
Kirill Bulatov
ff144def63 Fix the bugs 2023-11-03 11:02:50 +02:00
Kirill Bulatov
6bbb79a9f5 Rework prettier installation and start 2023-11-03 11:02:50 +02:00
Kirill Bulatov
d673efebd2 Add prettier workspace resolution test 2023-11-03 11:02:50 +02:00
Antonio Scandurra
cdc82d01f7 Call editor::init 2023-11-03 09:06:25 +01:00
Antonio Scandurra
800c2685ea Remove dependency from gpui from editor2 2023-11-03 09:05:58 +01:00
Nathan Sobo
fbee6b5352 Get editor2 compiling with a ton of code commented out 2023-11-02 23:35:20 -06:00
Nathan Sobo
f3b8a9d8c2 WIP 2023-11-02 22:56:04 -06:00
Nathan Sobo
a731f8fb1e WIP 2023-11-02 21:28:56 -06:00
Nathan Sobo
dfc7c81500 WIP 2023-11-02 21:03:29 -06:00
Nathan Sobo
72b9dc8216 Merge remote-tracking branch 'origin/main' into editor2 2023-11-02 20:47:09 -06:00
Nathan Sobo
6a89f7ce4f rich text2 (#3220)
- git -> git3
- Add rich_text2

[[PR Description]]

Release Notes:

N/A
2023-11-02 20:46:45 -06:00
Nathan Sobo
2a12e8f307 Merge remote-tracking branch 'origin/rich_text2' into editor2 2023-11-02 20:34:52 -06:00
Nate Butler
383d9129f4 [Not compiling] Continue working on VSCode import 2023-11-02 21:49:26 -04:00
Conrad Irwin
0b3932f38c Convert rich_text2 2023-11-02 19:30:33 -06:00
Conrad Irwin
6ecb4805f7 Add rich_text2 2023-11-02 19:19:18 -06:00
Conrad Irwin
cbd902658c git -> git3
This is needed for the editor.
2023-11-02 19:18:01 -06:00
Conrad Irwin
0aabb19a45 Into the woods 2023-11-02 18:52:08 -06:00
Nate Butler
b4e2368943 Merge branch 'main' into import-theme 2023-11-02 20:16:09 -04:00
Nate Butler
0d0b6db24f Update theme importer 2023-11-02 20:15:51 -04:00
Nate Butler
8d09baa3a5 Remove unintentionally committed txt file 2023-11-02 20:06:35 -04:00
Nate Butler
2b0c959137 Add terminal colors to ThemeColors, add _background to some color names. 2023-11-02 19:53:52 -04:00
Nathan Sobo
9052b48949 Use correct color values in quad fragment shader (#3217)
Previously, when using rounded corners, the borders would get wider.
Looks like we weren't using the input color values consistently in the
fragment shader. The quad values are raw HSLA and are converted in the
vertex shader.

Release Notes:

- N/A
2023-11-02 17:49:56 -06:00
Marshall Bowers
95a0827517 Clean up unused code 2023-11-02 19:20:21 -04:00
Marshall Bowers
152ac6927f Add themes2/src/themes directory 2023-11-02 19:17:39 -04:00
Marshall Bowers
d1636bf16b Finish up theme printer 2023-11-02 19:14:51 -04:00
Marshall Bowers
fc376287e0 Start work on theme printer 2023-11-02 18:57:13 -04:00
Nathan Sobo
7b712ac68f WIP 2023-11-02 16:47:14 -06:00
Marshall Bowers
0bc51382b2 Add basic VsCodeThemeConverter 2023-11-02 18:24:38 -04:00
Marshall Bowers
e48332c81f Parse VSCode theme files 2023-11-02 18:00:55 -04:00
Conrad Irwin
583c36e24b WIP 2023-11-02 15:27:49 -06:00
Nate Butler
058981350c Scaffold out new theme-importer crate
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-11-02 17:21:11 -04:00
Conrad Irwin
09efa017d4 Editor2 2023-11-02 14:36:42 -06:00
Conrad Irwin
9e5275cc18 Fix error handling of open_path
Co-Authored-By: Nathan <nathan@zed.dev>
2023-11-02 14:34:43 -06:00
Nate Butler
972f076b4d Deserialize theme metadata 2023-11-02 16:31:22 -04:00
Nate Butler
58ac7f2926 [Broken] Load a src theme in test 2023-11-02 16:26:27 -04:00
Marshall Bowers
54969877a4 Make the Zed2 window movable (#3218)
This PR makes the Zed2 window movable and fixes a crash related to a
`todo!()` that wasn't necessary.

Release Notes:

- N/A
2023-11-02 16:17:31 -04:00
Conrad Irwin
6eeaa64e62 workspace2 (#3188)
Tracking PR for workspace port
2023-11-02 13:34:19 -06:00
Conrad Irwin
8283909dfd Disable selective warnings to make cargo check happy 2023-11-02 13:28:58 -06:00
Nathan Sobo
91f3e9707a Use correct color values in quad fragment shader
Co-Authored-By: Julia Risley <julia@zed.dev>
2023-11-02 13:18:20 -06:00
Conrad Irwin
269a72464d Merge remote-tracking branch 'origin/main' into zed2-workspace 2023-11-02 13:16:24 -06:00
Mikayla Maki
85f0959548 Remove the 2s from source code (#3216)
Release Notes:

- N/A
2023-11-02 12:11:16 -07:00
Marshall Bowers
9c8220d04e Remove commented-out label code 2023-11-02 15:04:52 -04:00
Nate Butler
809d8786f1 WIP 2023-11-02 14:54:53 -04:00
Marshall Bowers
3605afc163 Render active item in pane 2023-11-02 14:40:34 -04:00
Nathan Sobo
d1cb2d3e11 Enforce Send bound on next frame callback functions, because they're invoked on arbitrary threads (#3215)
This enforces the send bound, then uses an async task looping on a
channel to run callbacks on the main thread.
2023-11-02 12:36:38 -06:00
Marshall Bowers
8b1b7a2f80 Checkpoint: Basic tab bar structure 2023-11-02 14:34:48 -04:00
Nathan Sobo
29d8390743 Fix formatting 2023-11-02 12:28:58 -06:00
Nathan Sobo
1dd20d4c0a Merge remote-tracking branch 'origin/main' into gpui2-image-reborrow 2023-11-02 12:25:06 -06:00
Nate Butler
004c5d309b WIP 2023-11-02 14:23:43 -04:00
Nathan Sobo
04a8ee222b Enforce a Send bound on next frame callbacks
This required using mpsc channels to invoke frame callbacks on the
main thread and send the receiver to the platform display link.

Co-Authored-By: Julia Risley <julia@zed.dev>
2023-11-02 12:01:22 -06:00
Mikayla
d11ff14b57 Remove the 2s from source code 2023-11-02 10:55:02 -07:00
Conrad Irwin
5a41eed120 WIP 2023-11-02 11:34:31 -06:00
Marshall Bowers
1e7a216d55 WIP 2023-11-02 13:21:28 -04:00
Conrad Irwin
8f0f5a9ba1 Render status bar
Co-Authored-By: Antonio <me@as-cii.com>
2023-11-02 11:18:11 -06:00
Conrad Irwin
803d2b6710 Add double click to zoom the window
Co-Authored-By: Antonio <me@as-cii.com>
2023-11-02 10:58:46 -06:00
Marshall Bowers
0e1d2fdf21 Checkpoint: Narrow down error 2023-11-02 12:47:06 -04:00
Marshall Bowers
66e4d75e6f Checkpoint: Reproduction with Avatar story 2023-11-02 12:34:40 -04:00
Conrad Irwin
bd54bfa4e1 Render titlebar
Co-Authored-By: Mikayla <mikayla@zed.dev>
2023-11-02 10:31:18 -06:00
Conrad Irwin
634aba89d2 Add back some window events for workspace
Co-Authored-By: Antonio <me@as-cii.com>
2023-11-02 10:03:03 -06:00
Nate Butler
a3565225ad Document format_distance (#3214)
Adds docs for `ui2::util::format_distance`:
- distance_in_seconds
- distance_string
- naive_format_distance
- naive_format_distance_from_now

These are ports of
[`date-fns`](https://date-fns.org/v2.30.0/docs/formatDistance)'s format
distance utilities

[[PR Description]]

Release Notes:

- N/A
2023-11-02 11:58:45 -04:00
Julia
17ff881e7a Uncomment lsp2 tests (#3213)
Release Notes:

- N/A
2023-11-02 11:54:06 -04:00
Nate Butler
6f41a77a25 Document format_distance
Adds docs for:
- distance_in_seconds
- distance_string
- naive_format_distance
- naive_format_distance_from_now
2023-11-02 11:53:20 -04:00
Conrad Irwin
0bab1a92df Merge remote-tracking branch 'origin/main' into zed2-workspace 2023-11-02 09:44:38 -06:00
Antonio Scandurra
fd81d838fe Introduce ViewContext::observe_window_{activation,bounds} (#3212)
Release Notes:

- N/A
2023-11-02 16:44:26 +01:00
Julia
b7efab8a55 Uncomment lsp2 tests 2023-11-02 11:42:48 -04:00
Marshall Bowers
ec0cff0e1a Add map method to Components (#3210)
This PR adds a `map` method to the `Component` trait.

`map` is a fully-generalized form of `when`, as `when` can be expressed
in terms of `map`:

```rs
div().map(|this| if condition { then(this) } else { this })
```

This allows us to take advantage of Rust's pattern matching when
building up conditions:

```rs
// Before
div()
    .when(self.current_side == PanelSide::Left, |this| this.border_r())
    .when(self.current_side == PanelSide::Right, |this| {
        this.border_l()
    })
    .when(self.current_side == PanelSide::Bottom, |this| {
        this.border_b().w_full().h(current_size)
    })

// After
div()
    .map(|this| match self.current_side {
        PanelSide::Left => this.border_r(),
        PanelSide::Right => this.border_l(),
        PanelSide::Bottom => this.border_b().w_full().h(current_size),
    })
```

Release Notes:

- N/A
2023-11-02 11:39:40 -04:00
Antonio Scandurra
ec4f0d7bca Implement ViewContext::observe_window_activation
Co-Authored-By: Conrad Irwin <conrad@zed.dev>
2023-11-02 16:37:57 +01:00
Antonio Scandurra
3a824e468f Subsume observe_fullscreen into observe_window_bounds
Co-Authored-By: Conrad Irwin <conrad@zed.dev>
2023-11-02 16:31:27 +01:00
Nate Butler
5e12b48ae0 Work on default theme, Notifications, Add ListHeader meta (#3203)
Work on default theme, Notifications, Add ListHeader `meta`

Also adds `naive_format_distance` & `naive_format_distance_from_now`

Release Notes:

- N/A
2023-11-02 11:19:48 -04:00
Antonio Scandurra
de80974a1d Add ViewContext::observe_fullscreen
Co-Authored-By: Conrad Irwin <conrad@zed.dev>
2023-11-02 16:11:52 +01:00
Julia
57fcc22f1c Uncomment db2 tests (#3211)
Release Notes:

- N/A
2023-11-02 11:10:08 -04:00
Nate Butler
d4db7a14b3 Remove unused import 2023-11-02 11:04:04 -04:00
Nate Butler
3b91a76159 Merge branch 'main' into n/t2 2023-11-02 11:02:55 -04:00
Nate Butler
d48ec7d58e Remove unused import 2023-11-02 11:02:46 -04:00
Nate Butler
6d562aaa6f Use naive_format_distance_from_now in Notifications 2023-11-02 11:02:17 -04:00
Julia
46e81da4e1 Uncomment db2 tests 2023-11-02 11:01:38 -04:00
Nate Butler
b76c117979 Update naive_format_distance and tests 2023-11-02 10:37:33 -04:00
Kyle Caverly
5ee2b01102 authenticate with completion provider on new inline assists (#3209)
authenticate with completion provider on new inline assists

Release Notes:

- Fixed bug which lead the inline assist functionality to never
authenticate
2023-11-02 10:14:52 -04:00
Nate Butler
cde7b244bc Checkpoint - impl format_distance 2023-11-02 10:11:25 -04:00
KCaverly
d5b6300fd7 moved from Boxes to Arcs for shared access of completion providers across the assistant panel and inline assistant 2023-11-02 10:08:47 -04:00
Nathan Sobo
52e195b47c WIP 2023-11-02 07:46:49 -06:00
KCaverly
b5fe0d72ee authenticate with completion provider on new inline assists 2023-11-02 09:34:18 -04:00
Joseph T. Lyons
5412f20e35 Fix missing commit (collab version bump) 2023-11-02 09:22:12 -04:00
Joseph T. Lyons
971563fd48 Format YAML 2023-11-02 09:05:29 -04:00
Joseph T. Lyons
f724b6d032 Cleanly truncate Discord release notes 2023-11-02 09:05:16 -04:00
Antonio Scandurra
d4e199cab1 WIP 2023-11-02 13:58:42 +01:00
Antonio Scandurra
c1ca7ad41d Implement WindowContext::remove_window 2023-11-02 13:37:55 +01:00
Antonio Scandurra
089bf58934 Implement AppState::test 2023-11-02 13:34:21 +01:00
Antonio Scandurra
32dded551c Checkpoint 2023-11-02 11:05:24 +01:00
Antonio Scandurra
72156bf502 Merge remote-tracking branch 'origin/main' into zed2-workspace 2023-11-02 11:04:47 +01:00
Antonio Scandurra
6d2e1a8e76 Introduce more GPUI2 APIs needed for transitioning the workspace (#3208)
Release Notes:

- N/A
2023-11-02 11:03:24 +01:00
Antonio Scandurra
76c675a63b 💄 2023-11-02 10:57:29 +01:00
Antonio Scandurra
32db64a049 Introduce more GPUI2 APIs needed for transitioning the workspace 2023-11-02 10:54:33 +01:00
Antonio Scandurra
51338d785c WIP 2023-11-02 10:09:08 +01:00
Antonio Scandurra
bda43ca1fe Merge remote-tracking branch 'origin/main' into zed2-workspace 2023-11-02 10:06:05 +01:00
Antonio Scandurra
8793300444 Remove more Send bounds and simplify view rendering (#3207)
This pull request removes more `Send` bounds from GPUI2 after #3206 and
simplifies some internals. Specifically:

- The `Reference` enum was removed, as we always capture mutable
references anyway.
- A few GATs from `Context` and `VisualContext` were removed, as they're
unnecessary now that `MainThread` isn't a thing.
- View rendering was greatly simplified (we were able to remove
`EraseViewState` and `ViewObject`)

Release Notes:

- N/A
2023-11-02 10:04:28 +01:00
Antonio Scandurra
9c7b45f38b Add back Send and Sync to AssetSource 2023-11-02 09:58:53 +01:00
Antonio Scandurra
d5f0e91faa Remove stray todo 2023-11-02 09:56:45 +01:00
Antonio Scandurra
5e50430299 Fix compile errors 2023-11-02 09:47:21 +01:00
Antonio Scandurra
64ad8943ba Remove more Send bounds and simplify view rendering 2023-11-02 09:44:16 +01:00
Antonio Scandurra
2fb4c04fc3 Remove more Send bounds and remove EraseViewState 2023-11-02 09:39:06 +01:00
Antonio Scandurra
b2c7ddc41f Remove some stray Send bounds 2023-11-02 09:18:16 +01:00
Antonio Scandurra
18fcb41292 Simplify contexts 2023-11-02 09:15:14 +01:00
Antonio Scandurra
ff27700913 Fix outstanding errors in gpui2 2023-11-02 09:08:47 +01:00
Nathan Sobo
3e7df82977 WIP: Merge branch 'main' into zed2-workspace 2023-11-01 22:35:02 -06:00
Nathan Sobo
6cab5c2885 Restore foreground/background distinction and confine application state to the main thread (#3206)
The potential for deadlock and other complexity ended up convincing us
that the benefits of making the app state accessible from any thread
were not worth their cost. We probably could have gone back to the old
executors, but we decided to fix forward and continue to get the
benefits of the new dispatcher.
2023-11-01 21:29:28 -06:00
Nathan Sobo
64ee1bb7a5 Fix prod compile error 2023-11-01 21:19:06 -06:00
Nathan Sobo
2079cd641e Fix post-merge compile errors 2023-11-01 21:16:41 -06:00
Nathan Sobo
db9ccd7f34 Merge remote-tracking branch 'origin/main' into gpui2-no-send 2023-11-01 21:10:31 -06:00
Nathan Sobo
57dfc50687 Get language2 tests passing by not blocking on a foreground task 2023-11-01 21:04:17 -06:00
Nathan Sobo
53066df522 Get project2 tests green 2023-11-01 20:14:40 -06:00
Marshall Bowers
aa14552fee Remove unneeded .intos 2023-11-01 22:01:59 -04:00
Marshall Bowers
b9ac1e43cd Update scale accessors 2023-11-01 22:00:16 -04:00
Marshall Bowers
bd4bff47a0 Merge branch 'main' into n/t2 2023-11-01 21:54:10 -04:00
Marshall Bowers
72d060108d Make indexing into ColorScales safe (#3205)
This PR makes indexing into `ColorScale`s safe by constraining the
`ColorScaleStep`s to a set of known values.

Release Notes:

- N/A
2023-11-01 21:52:42 -04:00
Marshall Bowers
220228c183 Fix underflow when indexing into ColorScales 2023-11-01 21:15:06 -04:00
Marshall Bowers
115bd65344 Merge branch 'main' into n/t2 2023-11-01 21:11:26 -04:00
Marshall Bowers
69aafe9ff6 Adjust ColorScale representation (#3204)
This PR adjusts the representations of `ColorScale`s to allow us to
remove an unsafe `From` impl when converting from the statically-defined
representation of the scale.

Release Notes:

- N/A
2023-11-01 21:10:50 -04:00
Max Brunsfeld
401ddc6f49 WIP - flush_fs_events 2023-11-01 17:45:38 -07:00
Max Brunsfeld
6ee93125d0 Fix hangs in new dispatcher
Co-authored-by: Nathan Sobo <nathan@zed.dev>
2023-11-01 17:11:42 -07:00
Conrad Irwin
90facc051a beautiful diff 2023-11-01 15:31:37 -06:00
Nate Butler
d0975aacac Merge branch 'main' into n/t2 2023-11-01 16:52:43 -04:00
Nate Butler
229ba0744e Add additional notifications and style tweaks
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-11-01 16:50:59 -04:00
Nate Butler
be3cc6458c Implement Notifications
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-11-01 16:34:42 -04:00
Conrad Irwin
f415a37a3d Uncomment project2 tests (#3200) 2023-11-01 20:27:53 +00:00
Conrad Irwin
cd10ba9e06 Use run_until_parked instead of blocked in tests 2023-11-01 14:27:25 -06:00
Kyle Caverly
2105dc0022 port text2 to zed2 (#3202)
port text2 to zed2

Release Notes:

- NA
2023-11-01 16:27:08 -04:00
Nate Butler
3f74f75dee WIP 2023-11-01 16:19:49 -04:00
KCaverly
77dbb15aa3 port text2 to zed2 2023-11-01 16:13:53 -04:00
Nathan Sobo
3f34a8e7ec Checkpoint 2023-11-01 14:00:26 -06:00
Nathan Sobo
11b6d9e33a Split out a foreground and background executor 2023-11-01 13:53:45 -06:00
Max Brunsfeld
dd1a2a9e44 wip 2023-11-01 13:53:45 -06:00
Max Brunsfeld
57ffa8201e Start removing the Send impl for App
Co-authored-by: Antonio <antonio@zed.dev>
Co-authored-by: Nathan <nathan@zed.dev>
2023-11-01 13:53:45 -06:00
Conrad Irwin
ea7fdef417 And more unused imports 2023-11-01 13:51:42 -06:00
Conrad Irwin
a5d37d3510 Remove two more hanging tests 2023-11-01 13:26:12 -06:00
Mikayla
6f38eb3252 Finish main merge 2023-11-01 11:52:14 -07:00
Joseph T. Lyons
51ecf8e6b4 collab 0.28.0 2023-11-01 14:50:29 -04:00
Mikayla
e82d8eb5b8 Merge branch 'main' into zed2-workspace 2023-11-01 11:46:28 -07:00
Mikayla
1c1b53ecf6 WIP 2023-11-01 11:45:31 -07:00
Mikayla Maki
78f47f179a Rename live kit bridge to 2 (#3201)
Release Notes:

- N/A
2023-11-01 11:40:40 -07:00
Mikayla
6aaeb23157 Rename live kit bridge to 2 2023-11-01 10:52:15 -07:00
Conrad Irwin
cfe0ddc61a More unused imports 2023-11-01 11:43:06 -06:00
Max Brunsfeld
c467fa955b Comment out hanging project2 tests
Co-authored-by: Conrad <conrad@zed.dev>
2023-11-01 10:38:47 -07:00
Antonio Scandurra
337a79e35f WIP 2023-11-01 18:34:51 +01:00
Marshall Bowers
b910bbf002 Add ui_font_size setting (#3199)
This PR adds a new `ui_font_size` setting that can be used to control
the scale of the entire UI.

We use the value in this setting to set the base rem size of the window.

Release Notes:

- N/A
2023-11-01 13:11:12 -04:00
Nate Butler
8dafd5f1f3 Allow ListHeader to take a meta 2023-11-01 12:43:25 -04:00
Mikayla Maki
bd61d71018 Finish port of livekit client and call2 (#3198) 2023-11-01 09:37:40 -07:00
Joseph T. Lyons
7d300d3f5b v0.112.x dev 2023-11-01 12:34:26 -04:00
Mikayla
1568ecbe1e Add back room code to call2 2023-11-01 09:29:54 -07:00
Antonio Scandurra
c3a8bab4d2 WIP 2023-11-01 17:21:58 +01:00
Mikayla
51fa80ef06 ported example app, live_kit_client2 is done 2023-11-01 09:19:32 -07:00
Julia
b7625d81e8 Port multi_buffer to gpui2 (#3193)
Release Notes:

- N/A
2023-11-01 11:45:44 -04:00
Antonio Scandurra
147db607c7 WIP 2023-11-01 16:24:19 +01:00
Marshall Bowers
6ed60769ac Merge branch 'n/t2' of github.com:zed-industries/zed into n/t2 2023-11-01 10:52:29 -04:00
Marshall Bowers
3189cd779e Remove unused impl 2023-11-01 10:52:25 -04:00
Nate Butler
5d660759bf Continue refining default syntax theme 2023-11-01 10:50:00 -04:00
Marshall Bowers
d2a8f972f3 Fix return type 2023-11-01 10:48:23 -04:00
Marshall Bowers
8fb7c174b0 Merge branch 'main' into n/t2 2023-11-01 10:46:27 -04:00
Marshall Bowers
bbe53895ef Return ColorScaleSets from individual color scale functions (#3197)
This PR adjusts the individual color scale functions to return
`ColorScaleSet`s instead of `DefaultColorScaleSet`s.

We only use the `DefaultColorScaleSet`s to simplify the construction of
the scales, so it isn't necessary to surface them outside of the
function.

Release Notes:

-  N/A
2023-11-01 10:45:42 -04:00
Marshall Bowers
b8547e926d Remove blanket From<&str> impl for Hsla
Since this is a fallible operation we don't want to have a blanket
infallible conversion from any arbitrary `&str` to an `Hsla`.
2023-11-01 10:31:03 -04:00
Kyle Caverly
1b9619ca7f added parsing support for <|S| |E|> spans (#3184)
added parsing support for <|S| and |E|> spans for inline generation
2023-11-01 10:26:01 -04:00
Kirill Bulatov
e8857d959b WIP 2023-11-01 16:10:07 +02:00
Kirill Bulatov
a9d7c86307 WIP 2023-11-01 15:37:51 +02:00
Kirill Bulatov
73c97d0c10 WIP
Uncomment more methods in workspace2.rs
2023-11-01 14:47:29 +02:00
Antonio Scandurra
4d320f065e WIP 2023-11-01 12:47:19 +01:00
Nate Butler
3bcc2fa17b Update notifications panel 2023-11-01 02:10:23 -04:00
Nate Butler
bfb1f5ecf0 Continue refining theme, update tabs & tab bar 2023-11-01 01:41:33 -04:00
Nate Butler
0efd69c60f Refine default colors 2023-11-01 00:51:57 -04:00
Nate Butler
e0cb95b334 Add From<&str> for Hsla 2023-11-01 00:51:47 -04:00
Nathan Sobo
d47ef6470b WIP 2023-10-31 22:32:18 -06:00
Marshall Bowers
272f856460 Use Refineable for ThemeStyles (#3196)
This PR updates the `ThemeStyles` struct to use the `Refineable` trait
instead of a custom declarative macro for generating refinements.

Release Notes:

- N/A
2023-10-31 23:33:51 -04:00
Nathan Sobo
4da8ee1e1d Remove one todo from the critical path 2023-10-31 21:19:32 -06:00
Marshall Bowers
36a73d657a Remove old Theme definition (#3195)
This PR removes the old `Theme` definition in favor of the new
`ThemeVariant`s.

The new `SyntaxStyles` have been reverted to the old `SyntaxTheme` that
operates by storing the syntax styles as a vector of
`gpui2::HighlightStyle`s.

This is necessary for the intended usage by `language2`, where we find
the longest key in the theme's syntax styles that matches the capture
name:

18431051d9/crates/language2/src/highlight_map.rs (L15-L41)
2023-10-31 23:05:50 -04:00
Marshall Bowers
18431051d9 Rework theme2 with new theme structure (#3194)
This PR reworks the theme definition in the `theme2` crate to be based
off of the new theme work that @iamnbutler has been working on.

We're still developing the new theme system, but it is complete enough
that we can now load the default theme and use it to theme the storybook
(albeit with some further refining of the color palette required).

---------

Co-authored-by: Nate Butler <iamnbutler@gmail.com>
Co-authored-by: Marshall Bowers <marshall@zed.dev>
2023-10-31 22:23:00 -04:00
Julia
795369a1e3 Port multi_buffer to gpui2 2023-10-31 18:34:36 -04:00
Nathan Sobo
0ecf6bde73 WIP 2023-10-31 16:15:30 -06:00
Mikayla
244e8ce101 WIP - make livekit work in GPUI2 2023-10-31 14:04:03 -07:00
Max Brunsfeld
291d35f337 Merge branch 'main' into zed2-project-test
Co-authored-by: Marshall <marshall@zed.dev>
2023-10-31 11:50:56 -07:00
Nathan Sobo
fd15551d97 Remove Reference 2023-10-31 11:29:13 -06:00
Nathan Sobo
8f1000ea10 Checkpoint 2023-10-31 11:27:08 -06:00
Nathan Sobo
9798d65cf9 Checkpoint 2023-10-31 11:22:40 -06:00
Nathan Sobo
90601fe4fd Checkpoint 2023-10-31 11:16:08 -06:00
Max Brunsfeld
ed5f1d3bdd zed2 (#3174)
PR to get zed2 into main.

Because we have taken the approach of porting crates by renaming them to
`-2` we will need to manually reapply any changes that were made to
ported crates since the `zed2` branch diverged from master.

I think this is the list of PRs that may need changes ported manually.
Any changes to the following crates may need to be moved from crate `x`
to `x2` for each of the following crates: `audio call client copilot db
feature_flags fs fuzzy gpui install_cli language lsp prettier project
rpc settings storybook terminal theme ui zed`.

- [x] f75eb3f62 Conrad Irwin (origin/main, origin/HEAD, main) Merge
branch 'more-signing' (17 hours ago)
- [x] 832026a0a Julia Limit language server reinstallation attempts
(#3177) (18 hours ago)
- [x] 4539cef6d Julia Capture language server stderr during startup/init
and log if failure (#3175) (21 hours ago)
- [x] e6f2288a0 Conrad Irwin Don't use function_name in vim tests
(#3171) (2 days ago)
- [x] f67f42779 Mikayla Maki Rename IIFE to maybe (#3165) (2 days ago)
- [ ] 90f65ec9f Max Brunsfeld Remove logic for multiple channel parents
(#3162) (2 days ago)
- [ ] 4f859e025 Conrad Irwin link to channel notes (#3167) (2 days ago)
- [ ] b8bd070a8 Conrad Irwin Fix panic by disallowing multiple room
joins (#3149) (3 days ago)
- [ ] cc9e92857 Max Brunsfeld Guest roles (#3140) (3 days ago)
- [x] b090cefdd Kirill Bulatov Rework prettier tests (#3160) (3 days
ago)
- [ ] ff497810d Kyle Caverly move keychain access into semantic index as
opposed to on init (#3158) (3 days ago)
- [x] 2b95db087 Conrad Irwin Fix infinite loop in select all (#3154) (3
days ago)
- [ ] a5836b033 Max Brunsfeld Add chat mentions and a notifications
panel (#3121) (4 days ago)
- [ ] ef1a69156 Kyle Caverly update semantic search to use keychain as
fallback (#3151) (6 days ago)
- [x] 26638748b Kirill Bulatov Move prettier parsers data into languages
from LSP adapters (#3150) (6 days ago)
- [ ] 0dae0f602 Conrad Irwin pixel columns (#3052) (7 days ago)
- [x] cc7df91cc Julia Whoops (#3146) (7 days ago)
- [x] 808976ee2 Julia Magic incantations for Tailwind autocomplete in
more languages (#3141) (7 days ago)
- [ ] cc390ba86 Conrad Irwin Start writing role to database (#3120) (10
days ago)
- [ ] 2795091f0 Kyle Caverly Introduce Context Retrieval in Inline
Assistant (#3097) (10 days ago)
- [x] b168bded1 Conrad Irwin New entitlements: (#3118) (10 days ago)
- [x] 247cdb1e1 Joseph T. Lyons Fix telemetry-related crash on start up
(#3131) (11 days ago)
- [ ] 2323fd17b Julia Autocomplete docs (#3126) (2 weeks ago)
- [x] 16d9d77d8 Kirill Bulatov Update diagnostics indicator when
diagnostics are udpated (#3128) (2 weeks ago)
- [ ] 634202340 Kirill Bulatov Remove zed -> ... -> semantic_index ->
zed Cargo dependency cycle (#3127) (2 weeks ago)

Note: this list does not include any PRs that did not change crates that
have been converted; it also does not include any commits that were
pushed directly to master.

### To figure out what needs migrating, run:

```
git diff COMMIT^..COMMIT -- crates/audio crates/call crates/client crates/copilot crates/db crates/feature_flags crates/fs crates/fuzzy crates/gpui crates/install_cli crates/language crates/lsp crates/prettier crates/project crates/rpc crates/settings crates/storybook crates/terminal crates/theme crates/ui crates/zed
```
2023-10-31 10:12:17 -07:00
Nathan Sobo
0a2fde8707 WIP 2023-10-31 11:03:01 -06:00
Antonio Scandurra
66b520a513 Call initialize on the rendered element on AnyView 2023-10-31 17:17:42 +01:00
Conrad Irwin
8db6b78fdd Implement start/finish waiting for gpui2
I'm not sure these are strictly necessary, but it will make porting
tests easier to have them.
2023-10-31 16:14:10 +00:00
Conrad Irwin
0e9a82711c Actually deliver test events to subscribers 2023-10-31 16:04:33 +00:00
KCaverly
fed391fe6b wip 2023-10-31 12:00:45 -04:00
Conrad Irwin
81f8e81e48 Fix block to allow for sync progress 2023-10-31 15:57:01 +00:00
KCaverly
551171a339 Merge branch 'zed2' of github.com:zed-industries/zed into zed2-workspace 2023-10-31 11:39:34 -04:00
KCaverly
68a1c7ce4c wip 2023-10-31 11:32:56 -04:00
Antonio Scandurra
0aa9c6b61d Introduce AnyWeakView
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-10-31 16:19:46 +01:00
Antonio Scandurra
7b6514b178 Simplify AnyView
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-10-31 16:16:30 +01:00
KCaverly
5550e80c4e workspace2 is compiling
Co-Authored-By: Kirill <kirill@zed.dev>
2023-10-31 11:14:43 -04:00
KCaverly
e315e1bb6c small window change 2023-10-31 10:50:28 -04:00
KCaverly
663e8aed8a wip progress 2023-10-31 10:49:51 -04:00
Conrad Irwin
b8e007c6ec Call flush_effects in test context update()
In gpui1 we used to do this even outside of top-level contexts, but not
sure we should make tests work that differently to the main app.
2023-10-31 14:24:12 +00:00
KCaverly
eb4ac2c276 wip 2023-10-31 10:12:40 -04:00
KCaverly
efce38fce2 wip 2023-10-31 10:04:04 -04:00
KCaverly
8d0905e479 dock compiling with todos outstanding
Co-Authored-By: Kirill <kirill@zed.dev>
2023-10-31 09:25:36 -04:00
Conrad Irwin
3e5379526e Fix entity map drop behavior
The entity map needs to be able to distinguish between the case when
the entity_id is waiting to be dropped, and when it is completely gone.

Before 8bc207141, it assumed that entity_ids in dropped_entity_ids could
be re-used. This caused `take_dropped` to error because the slot had
been overwritten. The fix there caused weak handles to allow upgrading
a reference count from 0, which could resurrect items in
`dropped_entity_ids` which caused them to be dropped twice.

We could allow weak items to upgrade from 0, and delete from
dropped_entity_ids, but that seemed more complicated than necessary.
2023-10-31 13:09:35 +00:00
Antonio Scandurra
bbe2dd1f8f WIP 2023-10-31 14:04:59 +01:00
Antonio Scandurra
14a6199b4b WIP: Make the item module compile again 2023-10-31 13:56:48 +01:00
Antonio Scandurra
e8eea52d0f Allow WeakView<T> to be hashed and compared 2023-10-31 13:34:54 +01:00
Antonio Scandurra
46a99c5c41 Allow View<T> to be hashed and compared 2023-10-31 13:34:29 +01:00
Antonio Scandurra
163fa3ff16 Introduce {Window,View}Context::defer 2023-10-31 13:17:05 +01:00
Kirill Bulatov
6a3974ddbb Remove TODOs 2023-10-31 13:08:18 +02:00
Antonio Scandurra
538a9e1392 WIP 2023-10-31 11:56:55 +01:00
Kirill Bulatov
84c5494949 Fix prettier errors around Zed's settings.json/keymap.json files
Ports https://github.com/zed-industries/zed/pull/3191 to zed2

Deals with zed-industries/community#2191
Fix Zed starting too many prettier installations in the beginning, and not being able to format the config files.
2023-10-31 12:26:49 +02:00
Kirill Bulatov
45e695c906 Fix prettier errors around Zed's settings.json/keymap.json files (#3191)
Deals with https://github.com/zed-industries/community/issues/2191

Fix Zed starting too many prettier installations in the beginning, and
not being able to format the config files.

Release Notes:

- Fixed prettier not being able to format Zed's config files and spawning excessive prettier installations
2023-10-31 12:05:32 +02:00
Kirill Bulatov
6ee9beed73 Enqueue default prettier installations 2023-10-31 11:54:40 +02:00
Antonio Scandurra
00c92ae407 Merge branch 'zed2' into zed2-workspace 2023-10-31 10:20:03 +01:00
Antonio Scandurra
88875fd006 Zed2 entities (#3189)
Adds an `Entity` trait for abstracting over `View`s and `Model`s, and
implements it for the `subscribe()` and `observe()` APIs.

The last commit also includes a fun experiment I added, using the
`Result` type to return the owned model handles back to the caller in
the case of downcast failure, inspired by the `binary_search*` methods.
2023-10-31 10:11:25 +01:00
Kirill Bulatov
c98a811c0b Only process diagnostics if corresponding project is alive
Part of https://github.com/zed-industries/zed/pull/3128 that is possible
to apply now.
2023-10-31 10:40:49 +02:00
Julia
bcf3bac168 Port zed/src/languages to zed2 (#3190)
@SomeoneToIgnore I had to port
https://github.com/zed-industries/zed/pull/3150 to zed2 in the process,
giving you a heads-up
2023-10-30 22:04:54 -04:00
Julia
db34de6be4 Port zed/src/languages to zed2 2023-10-30 21:52:29 -04:00
Mikayla
f5b13071f1 experiment with a way to recover the any entities when downcasting fails 2023-10-30 18:08:38 -07:00
Mikayla
6f1197e00c Change model to downcast with ownership 2023-10-30 18:00:37 -07:00
Mikayla
327a2f9967 Add the entity trait and implement for models, views, subscriptions, and observations 2023-10-30 17:50:21 -07:00
Mikayla
3dadfb8ba8 Merge branch 'zed2' into zed2-workspace 2023-10-30 16:53:21 -07:00
Max Brunsfeld
58446c2715 Merge branch 'zed2-render' into zed2 2023-10-30 15:37:00 -07:00
Max Brunsfeld
d6abd8a2b4 Add missing dev-dependency feature for editor multi_buffer dependency 2023-10-30 15:32:52 -07:00
Max Brunsfeld
30dffbb409 Introduce a Render trait, make views implement it
Don't pass a render function separately from the view.

Co-authored-by: Nathan Sobo <nathan@zed.dev>
Co-authored-by: Mikayla <mikayla@zed.dev>
Co-authored-by: Antonio <as-cii@zed.dev>
2023-10-30 15:19:40 -07:00
Joseph T. Lyons
f33fc1b6fa Remove print statement 2023-10-30 18:14:04 -04:00
Joseph T. Lyons
d219ddbdaf Add script to get crate-level completion status 2023-10-30 18:13:18 -04:00
Joseph T. Lyons
b76ce65a63 Port PR #3131 to zed2 (#3187)
Part of: 

- https://github.com/zed-industries/zed/pull/3174

Release Notes:

- N/A
2023-10-30 17:47:00 -04:00
Marshall Bowers
607813e646 Tweak style for color scale story 2023-10-30 17:45:37 -04:00
Joseph T. Lyons
613afd3f66 Port PR #3131 to zed2 2023-10-30 17:41:26 -04:00
Marshall Bowers
49571127da theme2: Correctly reference the dark alpha scale 2023-10-30 17:35:13 -04:00
Marshall Bowers
609836397b Merge branch 'theme-color-scales' into zed2 2023-10-30 17:31:51 -04:00
Marshall Bowers
a02d806715 Add a story showcasing the color scales 2023-10-30 17:31:15 -04:00
Marshall Bowers
991f58409e Fix alpha channel values for color scales 2023-10-30 17:20:43 -04:00
Marshall Bowers
e0f68c77b0 Add type alias for steps in color scales 2023-10-30 17:08:37 -04:00
Marshall Bowers
b128377cd2 Register all of the color scales 2023-10-30 17:03:33 -04:00
Marshall Bowers
ccccf84867 Define all color scales 2023-10-30 17:00:46 -04:00
Kirill Bulatov
fd6f6cc9f8 Return proper full paths for single file workspaces 2023-10-30 22:33:44 +02:00
Kirill Bulatov
29a32039ba Start message numbering during prettier init, log error message text 2023-10-30 22:26:06 +02:00
Marshall Bowers
7841a56a11 Start work on defining color scales 2023-10-30 16:21:59 -04:00
KCaverly
b34f0c3bee update prettier2, call2 and project2 to use fs2 2023-10-30 16:21:58 -04:00
Kirill Bulatov
033d0ae610 Remember default prettier and its plugin installation 2023-10-30 22:09:36 +02:00
Antonio Scandurra
0128079de0 WIP 2023-10-30 20:36:48 +01:00
Marshall Bowers
78573fb140 Merge branch 'zed2' of github.com:zed-industries/zed into zed2 2023-10-30 15:17:16 -04:00
Marshall Bowers
942167e046 Format ui2 2023-10-30 15:17:11 -04:00
Kyle Caverly
0efbc81b0f port ai to zed2 (#3186)
port ai to zed2
2023-10-30 20:09:49 +01:00
KCaverly
c17b246bac updated for model handle rename 2023-10-30 15:04:16 -04:00
Antonio Scandurra
bc4f8fbf4e Rename other references from "handle" to "model"
Co-Authored-By: Max <max@zed.dev>
Co-Authored-By: Mikayla <mikayla@zed.dev>
2023-10-30 19:54:32 +01:00
KCaverly
5ff70f7dba keeping this bad boy green during fmt checks 2023-10-30 14:49:31 -04:00
Marshall Bowers
ba789fc0c4 Remove old theme constructs 2023-10-30 14:47:44 -04:00
KCaverly
d5077d9d0c Merge branch 'zed2' of github.com:zed-industries/zed into zed2-ai 2023-10-30 14:47:13 -04:00
Antonio Scandurra
1a54ac0d69 Rename Handle to Model 2023-10-30 19:44:01 +01:00
KCaverly
04ab68502b port ai crate to ai2, with all tests passing 2023-10-30 14:40:31 -04:00
Marshall Bowers
14d24a9ac6 Remove references to old_theme 2023-10-30 14:36:49 -04:00
Antonio Scandurra
9688937468 WIP 2023-10-30 19:33:23 +01:00
Marshall Bowers
7bacdefa2e Merge branch 'zed2' of github.com:zed-industries/zed into zed2 2023-10-30 14:28:27 -04:00
Marshall Bowers
7b4e699d0e Remove themed wrapper 2023-10-30 14:28:25 -04:00
KCaverly
204aba07f6 Merge branch 'main' of github.com:zed-industries/zed into zed2 2023-10-30 13:44:50 -04:00
Piotr Osiewicz
510ab60bd4 zed2-backport: Elixir next ls bad cpu type (#3185) 2023-10-30 18:44:47 +01:00
Piotr Osiewicz
e63a611c81 lsp/next-ls: Fix wrong nls binary being fetched.
CPU types had to be swapped around.

Fixed zed-industries/community#2185
2023-10-30 18:43:11 +01:00
KCaverly
08e9b2e848 added parsing support for <|S| |E|> spans 2023-10-30 13:32:47 -04:00
Piotr Osiewicz
dc8a853842 lsp/next-ls: Fix wrong nls binary being fetched. (#3181)
CPU types had to be swapped around.

Fixed zed-industries/community#2185

Release Notes:
- Fixed Elixir next-ls LSP installation failing due to fetching a binary
for the wrong architecture (zed-industries/community#2185).
2023-10-30 18:27:05 +01:00
Marshall Bowers
b31a004def Add menu2 crate 2023-10-30 12:56:23 -04:00
Antonio Scandurra
b9ce186d21 WIP 2023-10-30 16:54:55 +01:00
Antonio Scandurra
89bcbe3eeb WIP 2023-10-30 16:43:01 +01:00
Marshall Bowers
d3cd5f3ec5 Format theme2 2023-10-30 11:26:30 -04:00
Marshall Bowers
3d8516b25f Convert all themes 2023-10-30 11:22:04 -04:00
Marshall Bowers
7a66ebae71 Emit modules for each theme 2023-10-30 11:21:33 -04:00
Kyle Caverly
4986d4771d Model cleanup (#3157)
Small reorganization for the AI crates. I seperated out the base traits
and providers, to get closer to an abstraction for AI completions as
opposed to OpenAI specific functionality.
2023-10-30 16:15:11 +01:00
KCaverly
142b94bdd4 Merge branch 'main' of github.com:zed-industries/zed into model_cleanup 2023-10-30 11:07:29 -04:00
KCaverly
f3c113fe02 clean up warnings and fix tests in the ai crate 2023-10-30 11:07:24 -04:00
Marshall Bowers
2879d231b1 Revert changes to themes 2023-10-30 11:06:45 -04:00
Marshall Bowers
3591ffe4a7 Emit all themes at once 2023-10-30 11:04:03 -04:00
Marshall Bowers
b8ae949dbe Merge branch 'zed2' of github.com:zed-industries/zed into zed2 2023-10-30 10:40:48 -04:00
Marshall Bowers
61cc3b93e3 Factor out ThemePrinter into its own module 2023-10-30 10:40:46 -04:00
Antonio Scandurra
d4d9fcc88c WIP 2023-10-30 15:39:58 +01:00
KCaverly
a2c3971ad6 moved authentication for the semantic index into the EmbeddingProvider 2023-10-30 10:02:27 -04:00
Antonio Scandurra
e2ee9a28bf Implement activate_workspace_for_project 2023-10-30 14:50:50 +01:00
Antonio Scandurra
bd750fbbe2 Merge branch 'zed2' into zed2-workspace 2023-10-30 12:16:34 +01:00
Antonio Scandurra
25e882d72a Remove randomness from GPUI2 block_with_timeout 2023-10-30 12:10:55 +01:00
Kirill Bulatov
b3c3adab50 Port prettier panic fix to gpui2 2023-10-30 13:00:49 +02:00
Kirill Bulatov
bd30ce837d Do not panic when looking for prettier (#3182)
Fixes
https://zed-industries.slack.com/archives/C04S6T1T7TQ/p1698655595438009

Instead of checking FS, derive the prettier path needed and let prettier
invocation fail in logs instead.
2023-10-30 12:59:46 +02:00
Kirill Bulatov
6aca2289eb Do not panic when looking for prettier (#3182)
Fixes
https://zed-industries.slack.com/archives/C04S6T1T7TQ/p1698655595438009

Instead of checking FS, derive the prettier path needed and let prettier
invocation fail in logs instead.
2023-10-30 12:58:47 +02:00
Kirill Bulatov
b46a4b5680 Be more lenient when searching for prettier instance
Do not check FS for existence (we'll error when start running prettier),
simplify the code for looking it up
2023-10-30 12:13:58 +02:00
Kirill Bulatov
249bec3cac Do not panic on prettier search 2023-10-30 12:13:54 +02:00
Kirill Bulatov
f16ff79ff8 Properly log prettier paths 2023-10-30 11:17:11 +02:00
Kirill Bulatov
96bbb5cdea Properly log prettier paths 2023-10-30 11:14:00 +02:00
Joseph T. Lyons
37a561df0a Do not call scroll_to() twice when circularly navigating popover menus (#3180)
The tweaks made to add circular navigation to autocompletion / code
action menus accidentally was calling `scroll_to` twice in some cases -
just fixing that.

Release Notes:

- N/A
2023-10-29 15:02:09 -04:00
Joseph T. Lyons
dd89b2e6d4 Pull duplicate call out of if-else block 2023-10-29 13:54:32 -05:00
Joseph T. Lyons
34747bbbbc Do not call scroll_to twice 2023-10-29 13:47:02 -05:00
KCaverly
1e8b23d8fb replace api_key with ProviderCredential throughout the AssistantPanel 2023-10-28 18:16:45 -04:00
KCaverly
558f54c424 added credential provider to completion provider 2023-10-28 16:35:43 -04:00
Joseph T. Lyons
10b581f250 Port journal to GPUI2 (#3178)
Release Notes:

- N/A
2023-10-28 17:42:42 +02:00
Joseph T. Lyons
6b65d76014 Port journal to GPUI2 2023-10-28 11:37:25 -04:00
Nathan Sobo
e27427dce8 Merge branch 'gpui2-docs' into zed2 2023-10-27 17:07:28 -06:00
Nathan Sobo
f88ca2e7da Add docs for window.rs, but still incomplete 2023-10-27 22:29:59 +02:00
Nathan Sobo
ad7c49e4bb Add doc comments to app.rs 2023-10-27 21:19:48 +02:00
Conrad Irwin
b4225ac82a Port changes from #3118 to zed2 2023-10-27 13:27:55 +02:00
Conrad Irwin
ba189f2af1 Port changes from #3154 to zed2 2023-10-27 13:24:37 +02:00
KCaverly
7af77b1cf9 moved TestCompletionProvider into ai 2023-10-27 12:26:01 +02:00
Conrad Irwin
67ecc2fe04 Comment out failing gpui2 test 2023-10-27 11:24:23 +02:00
Conrad Irwin
af0c010b4a Remove deadlock from gpui2 pasteboard 2023-10-27 11:14:13 +02:00
Conrad Irwin
d2ab0d651e Get cargo test --workspace compiling again 2023-10-27 11:03:30 +02:00
Conrad Irwin
079de6fdf7 Rename last async_iife 2023-10-27 10:56:24 +02:00
Conrad Irwin
4a6a17d866 Merge branch 'main' into zed2 2023-10-27 10:55:15 +02:00
Conrad Irwin
5f5234c5da Fix fs2 tests 2023-10-27 10:51:36 +02:00
Conrad Irwin
c1904b493b Fix cargo fmt 2023-10-27 10:44:57 +02:00
KCaverly
ec9d79b6fe add concept of LanguageModel to CompletionProvider 2023-10-27 08:51:30 +02:00
KCaverly
6c8bb4b05e ensure OpenAIEmbeddingProvider is using the provider credentials 2023-10-27 08:33:35 +02:00
Nathan Sobo
bcdffc9963 Merge branch 'zed2-views' into zed2 2023-10-26 19:41:59 +02:00
Nathan Sobo
a1c3826858 Add View::update which provides a ViewContext 2023-10-26 19:41:42 +02:00
Conrad Irwin
f75eb3f626 Merge branch 'more-signing' 2023-10-26 18:27:58 +02:00
Conrad Irwin
071e9b4871 Revert entitlements change 2023-10-26 18:27:34 +02:00
Conrad Irwin
30e7978dcf Try more signing 2023-10-26 18:27:33 +02:00
Conrad Irwin
adc426b668 v1 2023-10-26 18:19:57 +02:00
Antonio Scandurra
8e3314e680 WIP 2023-10-26 18:17:45 +02:00
Julia
832026a0a2 Limit language server reinstallation attempts (#3177)
Release Notes:

- Fixed a case where a sufficiently broken language server system
configuration could cause an infinite repeated server reinstallation,
consuming resources indefinitely.
2023-10-26 17:20:13 +02:00
Julia
a23e05c20b Limit language server reinstallation attempts
zed2 electric boogaloo
2023-10-26 17:16:04 +02:00
Antonio Scandurra
516236e044 Disable livekit on zed2 2023-10-26 17:15:19 +02:00
Antonio Scandurra
637cff3ebd WIP 2023-10-26 17:15:19 +02:00
Marshall Bowers
452006560e Merge branch 'zed2' of github.com:zed-industries/zed into zed2 2023-10-26 17:14:49 +02:00
Julia
8db3b3b4ca Limit language server reinstallation attempts 2023-10-26 17:14:34 +02:00
Joseph T. Lyons
98d03f6e7a Revert "Add activity_indicator2"
This reverts commit 88a3a57789.
2023-10-26 17:13:40 +02:00
Marshall Bowers
560e115656 Pull syntax colors from JSON theme 2023-10-26 17:06:05 +02:00
Marshall Bowers
973ca8d4f0 ui2: Remove dependency on theme crate 2023-10-26 16:50:04 +02:00
Marshall Bowers
692aeff263 ui2: Remove dependency on settings crate 2023-10-26 16:50:04 +02:00
Joseph T. Lyons
88a3a57789 Add activity_indicator2 2023-10-26 16:49:39 +02:00
Marshall Bowers
61694bba6a Remove unneeded constructors for stories 2023-10-26 16:46:49 +02:00
Max Brunsfeld
65045b9c52 Get remaining language2 tests passing 2023-10-26 16:38:50 +02:00
Max Brunsfeld
0eae962abf Represent theme's syntax colors with string keys
Co-authored-by: Marshall Bowers <marshall@zed.dev>
2023-10-26 16:38:50 +02:00
Marshall Bowers
a569c82492 Merge branch 'zed2' of github.com:zed-industries/zed into zed2 2023-10-26 15:59:21 +02:00
Marshall Bowers
ed233d583f ui2: Remove ElementExt trait 2023-10-26 15:59:18 +02:00
Max Brunsfeld
b3ad8c1c3e Get most of the language2 tests passing
Co-authored-by: Conrad <conrad@zed.dev>
2023-10-26 15:57:12 +02:00
Max Brunsfeld
3cc91e5742 Add missing seed variable for gpui2 test macro
Co-authored-by: Conrad <conrad@zed.dev>
2023-10-26 15:57:12 +02:00
Marshall Bowers
6784ccd9fe Merge branch 'zed2' of github.com:zed-industries/zed into zed2 2023-10-26 15:54:48 +02:00
Marshall Bowers
1887f3b594 Rename S type to V 2023-10-26 15:54:43 +02:00
Max Brunsfeld
8bc2071414 Fix gpui2 bugs
* Compile error for tests that take StdRng
* Dynamic type dowcasting error when emitting events
* Slot error when dropping handles

Co-authored-by: Conrad <conrad@zed.dev>
2023-10-26 15:54:19 +02:00
Antonio Scandurra
58e8012d8c Make zed2 compile again 2023-10-26 15:45:30 +02:00
Marshall Bowers
8a70ef3e8f Remove unused state_type 2023-10-26 15:45:08 +02:00
Marshall Bowers
eb19071d84 ui2: Clean up takes 2023-10-26 15:44:39 +02:00
Marshall Bowers
7b4a895ab9 ui2: Clean up drains 2023-10-26 15:41:29 +02:00
Antonio Scandurra
821fe0f5b5 Merge branch 'zed2' into zed2-workspace 2023-10-26 15:34:55 +02:00
Marshall Bowers
d62c51a4b8 Merge branch 'gpui2-element-renderer' into zed2 2023-10-26 15:23:02 +02:00
Marshall Bowers
fccc4ca85c Initialize element before layout 2023-10-26 15:22:48 +02:00
Marshall Bowers
42095f0673 Remove debug from derive Component proc macro 2023-10-26 15:22:38 +02:00
Marshall Bowers
88ef74ec8f Checkpoint: Compiling after view type removal 2023-10-26 15:20:38 +02:00
Antonio Scandurra
9ea79259d5 Add spawn facilities to AsyncWindowContext 2023-10-26 15:00:44 +02:00
Max Brunsfeld
6fe393db2a Fix compile errors with lsp2
Co-authored-by: Jospeh <joseph@zed.dev>
2023-10-26 14:48:04 +02:00
Max Brunsfeld
69e5ecc015 Enable client tests
* implement Executor::advance_clock

Co-authored-by: Conrad <conrad@zed.dev>
Co-authored-by:  Kyle <kyle@zed.dev>
Co-authored-by:  Joseph <joseph@zed.dev>
2023-10-26 14:44:13 +02:00
Antonio Scandurra
d9274416b4 Make activate_workspace_for_project compile
Co-authored-by: Mikayla Maki <mikayla@zed.dev>
Co-Authored-By: Kirill Bulatov <kirill@zed.dev>
2023-10-26 14:36:55 +02:00
Marshall Bowers
c9c9db903d Fix Component derive macro 2023-10-26 14:20:25 +02:00
Julia
4539cef6d7 Capture language server stderr during startup/init and log if failure (#3175)
Gives us some more debugging information

Release Notes:
 - N/A
2023-10-26 14:17:29 +02:00
KCaverly
ca82ec8e8e fixed truncation error in fake language model 2023-10-26 14:05:55 +02:00
Julia
0eafb8886d zed2: Capture language server stderr during startup/init and log if failure (#3176)
zed2 electric boogaloo

Release Notes:

- N/A
2023-10-26 13:59:04 +02:00
Kirill Bulatov
27d2accb51 Fix the formatting 2023-10-26 13:52:04 +02:00
Kirill Bulatov
0a04c5734b Update mouse position during file drag and drop 2023-10-26 13:50:35 +02:00
Julia
8a0fb668f7 Capture language server stderr during startup/init and log if failure
zed2 electric boogaloo
2023-10-26 13:50:24 +02:00
Nathan Sobo
f4cff69729 WIP: Macro not working fully yet 2023-10-26 13:18:58 +02:00
Max Brunsfeld
a4b7e3c9f6 Merge branch 'zed2-hangs' into zed2 2023-10-26 12:48:35 +02:00
Conrad Irwin
065d26f5b2 Get RPC2 tests passing
Co-authored-by: Conrad <conrad@zed.dev>
Co-authored-by: Kyle <kyle@zed.dev>
2023-10-26 12:47:37 +02:00
Nathan Sobo
0285284ae1 Rename IntoAnyElement trait to Component 2023-10-26 12:46:52 +02:00
Nathan Sobo
8ecfea55cd Replace derive Element with derive IntoAnyElement everywhere 2023-10-26 12:38:23 +02:00
Julia
170ebd8221 Capture language server stderr during startup/init and log if failure 2023-10-26 12:29:22 +02:00
Antonio Scandurra
c8b5b085f4 WIP 2023-10-26 12:27:20 +02:00
Nathan Sobo
315744ec20 Add derive macro for IntoAnyElement 2023-10-26 12:20:46 +02:00
Antonio Scandurra
06c22206af Add install_cli2
Co-authored-by: Mikayla <mikayla@zed.dev>
Co-Authored-By: Kirill <kirill@zed.dev>
2023-10-26 12:09:54 +02:00
Antonio Scandurra
6172cd9015 Merge branch 'zed2-room' into zed2 2023-10-26 11:57:11 +02:00
Antonio Scandurra
3bcae6d7de Add call2
Co-Authored-By: Kirill Bulatov <kirill@zed.dev>
Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
2023-10-26 11:56:34 +02:00
Nathan Sobo
927278e20d Remove IntoAnyElement bound from Element trait 2023-10-26 11:49:36 +02:00
Conrad Irwin
71ad3e1b20 Add rpc2 2023-10-26 11:48:25 +02:00
Conrad Irwin
693246ba26 Fix fs2 import on zed 2023-10-26 11:41:15 +02:00
Conrad Irwin
b875be9689 Fix settings2 tests 2023-10-26 11:39:32 +02:00
Conrad Irwin
07b9ec29e6 Revert "Fix settings2 crate tests"
This reverts commit 6e9c779c51.
2023-10-26 11:33:58 +02:00
Nathan Sobo
db15db45ce WIP 2023-10-26 11:31:47 +02:00
Conrad Irwin
6e9c779c51 Fix settings2 crate tests 2023-10-26 11:27:23 +02:00
Kirill Bulatov
483ac9491a Start fixing room2 2023-10-26 11:27:12 +02:00
Conrad Irwin
6cf7d0b81c Fix macro some more 2023-10-26 11:27:03 +02:00
Conrad Irwin
6185c935a6 Fix small bugs in gpui2::test 2023-10-26 11:23:07 +02:00
Nathan Sobo
45a8aea0f0 Make FnOnces that render elements IntoAnyElement 2023-10-26 11:21:42 +02:00
KCaverly
3447a9478c updated authentication for embedding provider 2023-10-26 11:18:16 +02:00
Nathan Sobo
db7d12f628 WIP 2023-10-26 10:59:27 +02:00
Marshall Bowers
4266ead958 WIP: Trait bounds 2023-10-26 10:46:02 +02:00
Conrad Irwin
5651ef7ca2 Use quit to end tests 2023-10-26 10:40:04 +02:00
Conrad Irwin
51aa0d6a94 Clearer error on importing both gpui and gpui2 2023-10-26 10:39:52 +02:00
Piotr Osiewicz
bc3572f80e util: Improve error message for failing requests to GH. (#3159)
Release notes:
- N/A

Co-authored-by: Julia Risley <julia@zed.dev>
2023-10-26 10:39:45 +02:00
Piotr Osiewicz
1ec6638c7f vue: use anyhow::ensure instead of asserting on filesystem state (#3173)
Release Notes:
- Fixed a crash on failed assertion in Vue.js language support.
2023-10-26 10:16:21 +02:00
Marshall Bowers
e31a9401a8 Merge branch 'remove-view-state-associated-type' into gpui2-element-renderer 2023-10-26 10:10:17 +02:00
Marshall Bowers
65389a8fac Merge branch 'zed2' into gpui2-element-renderer 2023-10-26 10:10:10 +02:00
Marshall Bowers
9fb9885931 Checkpoint: Compiling 2023-10-26 10:08:39 +02:00
Marshall Bowers
8b972f6d8e WIP: Fix compilation of gpui2 2023-10-26 09:51:33 +02:00
Marshall Bowers
965bfd8439 WIP: Pass in V to Element 2023-10-26 09:45:26 +02:00
Marshall Bowers
9c10152c89 Use Display instead of custom to_string 2023-10-26 09:30:21 +02:00
Marshall Bowers
28ef30f7a2 Removed unused ui2::color module 2023-10-26 09:26:22 +02:00
Conrad Irwin
e6f2288a0c Don't use function_name in vim tests (#3171)
Remove dependency on function name from vim tests.

We want to remove this from gpui2, and it looks like we can!
2023-10-25 23:36:48 +02:00
Conrad Irwin
ffcec011f8 Don't use function_name in vim tests 2023-10-25 23:26:57 +02:00
Marshall Bowers
06bff41818 WIP: ElementRenderer 2023-10-25 21:08:34 +02:00
Antonio Scandurra
c5763cdb99 Fix errors in passing TestAppContext in async gpui2 tests 2023-10-25 21:08:00 +02:00
Antonio Scandurra
43d230cb2d Introduce a gpui2::test macro
Co-Authored-By: Conrad Irwin <conrad.irwin@gmail.com>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
Co-Authored-By: Kyle <kyle@zed.dev>
2023-10-25 21:08:00 +02:00
Marshall Bowers
7ec9cc08c7 Fix z-index targeting for drag and drop 2023-10-25 20:49:40 +02:00
Marshall Bowers
5355007719 Clean up some warnings 2023-10-25 20:40:50 +02:00
Marshall Bowers
b5eae86b67 Merge branch 'zed2' of github.com:zed-industries/zed into zed2 2023-10-25 20:38:03 +02:00
Marshall Bowers
e67048ee7b Load themes from settings and rework Settings trait 2023-10-25 20:37:55 +02:00
Antonio Scandurra
5ba04dce2b Assert handles are passed to the right contexts 2023-10-25 19:46:13 +02:00
Piotr Osiewicz
7f6bb3d1eb Extract multi_buffer module out of editor (#3170)
Release Notes:

- N/A
2023-10-25 19:31:47 +02:00
Antonio Scandurra
412c0ff7dc Add fs2
Co-Authored-By: Max <max@zed.dev>
Co-Authored-By: Conrad <conrad.irwin@gmail.com>
Co-Authored-By: Kyle <kyle@zed.dev>
2023-10-25 19:17:50 +02:00
Julia
1936ba5e30 F8 navigation bugs (#3163)
Release Notes:

- Fixed "go to previous hunk" getting suck on deletion.
- Fixed a rare case where "go to (prev) diagnostic" could get stuck with
specifically overlapping diagnostics.
2023-10-25 19:03:45 +02:00
Antonio Scandurra
9986e526e5 Stop depending on gpui in client2 and settings2 2023-10-25 18:47:03 +02:00
Joseph T. Lyons
3460e95899 vcs_menu: Fix a circular view handle in modal picker. (#3168)
Release Notes:

- Fixed a crash in modal branch picker.
2023-10-25 18:44:48 +02:00
Piotr Osiewicz
39480364bd vcs_menu: Fix a circular view handle in modal picker.
Co-authored-by: Julia Risley <julia@zed.dev>
2023-10-25 18:34:14 +02:00
Antonio Scandurra
1b75603f63 Implement os_name, os_version and app_version for TestPlatform
Co-Authored-By: Conrad Irwin <conrad.irwin@gmail.com>
Co-Authored-By: Kyle <kyle@zed.dev>
2023-10-25 18:30:06 +02:00
Antonio Scandurra
52f9f90ccb Implement TestAppContext::new
Co-Authored-By: Max <max@zed.dev>
Co-Authored-By: Conrad <conrad@zed.dev>
Co-Authored-By: Kyle <kyle@zed.dev>
2023-10-25 18:28:05 +02:00
Marshall Bowers
98e2490807 Merge branch 'zed2' of github.com:zed-industries/zed into zed2 2023-10-25 18:20:22 +02:00
Marshall Bowers
a0fe859d87 Make theme converter spit out valid Rust structs 2023-10-25 18:20:16 +02:00
Antonio Scandurra
51fb33d8ef Allow different app contexts to race
Co-Authored-By: Max <max@zed.dev>
Co-Authored-By: Kyle <kyle@zed.dev>
Co-Authored-By: Conrad <conrad@zed.dev>
2023-10-25 18:11:38 +02:00
Max Brunsfeld
3a369bc207 Name embedded.provisionprofile the same on stable as other channels 2023-10-25 18:02:27 +02:00
Antonio Scandurra
92535ba2c4 Introduce TestAppContext
Co-Authored-By: Max <max@zed.dev>
Co-Authored-By: Conrad Irwin <conrad.irwin@gmail.com>
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-10-25 17:55:20 +02:00
Antonio Scandurra
6f6495ccbf Fix error 2023-10-25 17:41:40 +02:00
Marshall Bowers
08a4e53cfe Merge branch 'zed2' of github.com:zed-industries/zed into zed2 2023-10-25 17:38:52 +02:00
Marshall Bowers
c8a86c2dd1 theme2: Add Rosé Pine themes 2023-10-25 17:38:48 +02:00
Max Brunsfeld
841a5ef7b8 collab 0.27.0 2023-10-25 17:38:09 +02:00
Max Brunsfeld
2c5caf91bc Bump RPC version for channels + notifications changes 2023-10-25 17:37:14 +02:00
Antonio Scandurra
3566d920c5 Add deterministic TestDispatcher
Co-Authored-By: Conrad Irwin <conrad@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-10-25 17:33:55 +02:00
Marshall Bowers
cee8175c19 theme2: Add Sandcastle theme 2023-10-25 17:27:25 +02:00
Marshall Bowers
751df45263 Print out Theme structs in theme_converter 2023-10-25 17:24:34 +02:00
Max Brunsfeld
eb8d376274 Avoid unused import in release builds 2023-10-25 17:16:29 +02:00
Mikayla Maki
f67f42779b Rename IIFE to maybe (#3165)
Too good of an idea to forget

Release Notes:

- N/A
2023-10-25 17:09:12 +02:00
Marshall Bowers
6b5947a1fa Start work on theme converter 2023-10-25 16:54:26 +02:00
Marshall Bowers
437d147935 Rename player to players 2023-10-25 16:39:06 +02:00
Marshall Bowers
0867175a4e Remove reference to removed ThemeColor 2023-10-25 16:34:03 +02:00
Marshall Bowers
4fcbc91aca Add note about fixing dead_code and unused_variables warnings in ui2 2023-10-25 16:33:33 +02:00
Marshall Bowers
e1032c5341 Remove ThemeColor in favor of theme2::Theme 2023-10-25 16:32:44 +02:00
KCaverly
71bc35d241 catchup with main 2023-10-25 16:31:00 +02:00
Joseph T. Lyons
c44d1cda9a collab 0.26.0 2023-10-25 16:24:53 +02:00
Mikayla
26a3d41dc7 Change from try (reserved keyword) to maybe 2023-10-25 07:10:21 -07:00
Joseph T. Lyons
71c72d8e08 v0.111.x dev 2023-10-25 16:07:54 +02:00
Marshall Bowers
bb3f59252e Rename theme2 getter to theme 2023-10-25 16:04:49 +02:00
Marshall Bowers
258496700f Rename theme getter to old_theme 2023-10-25 16:02:47 +02:00
Marshall Bowers
8043d0d8a9 Reference theme2 colors in ThemeColor 2023-10-25 15:58:56 +02:00
Max Brunsfeld
90f65ec9fe Remove logic for multiple channel parents (#3162)
This PR simplifies our state management for channels, and logic for
inheriting channel permissions, by removing the ability for channels to
have multiple parent channels.
2023-10-25 15:57:55 +02:00
Conrad Irwin
4f859e0253 link to channel notes (#3167)
Release Notes:

- Add links to channel notes
2023-10-25 15:53:34 +02:00
Marshall Bowers
dd34bb273e Load Theme from theme2 into the storybook 2023-10-25 15:50:50 +02:00
Max Brunsfeld
b5cbfb8f1d Allow moving channels to the root 2023-10-25 15:50:37 +02:00
Max Brunsfeld
32367eba14 Set up UI to allow dragging a channel to the root 2023-10-25 15:39:02 +02:00
Max Brunsfeld
42259a4007 Fix channel dragging
Co-authored-by: Conrad <conrad@zed.dev>
Co-authored-by: Joseph <joseph@zed.dev>
2023-10-25 09:41:16 +02:00
Conrad Irwin
70eeefa1f8 Fix channel collapsing 2023-10-25 09:27:17 +02:00
Conrad Irwin
6f173c64b3 Fix tests by re-instating paths in the new format 2023-10-25 09:22:06 +02:00
Conrad Irwin
b8bd070a83 Fix panic by disallowing multiple room joins (#3149)
Release Notes:

- Fixed panic that could occur when switching channels quickly
2023-10-24 23:57:08 +02:00
Joseph T. Lyons
c77376225d Allow completion menus to be cycled (#3164)
Not a huge ask from the community, but something that I run into
frequently is not being able to cycle the auto completion menus past the
beginning / end, so I quickly added it. This matches VS Code behavior:


https://github.com/zed-industries/zed/assets/19867440/bc4606d7-2076-4036-aedc-f3cf5ba349dc

Release Notes:

- Enhanced popover menus with circular navigation
([#632](https://github.com/zed-industries/community/issues/632)).
2023-10-24 23:08:10 +02:00
Mikayla Maki
beb0af9763 Rename IIFE to try
Too good of an idea to forget
2023-10-24 21:13:22 +02:00
Conrad Irwin
1411b98a5d link to channel notes 2023-10-24 19:48:31 +02:00
Joseph T. Lyons
1c5b321058 Allow completion menus to be cycled 2023-10-24 19:29:44 +02:00
Kirill Bulatov
a01b507ef4 Add OS file drop event handler
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-10-24 19:26:06 +02:00
Conrad Irwin
dfc34e582a Fix extra race 2023-10-24 18:54:55 +02:00
Marshall Bowers
5b04f965fa Update Cargo.lock 2023-10-24 18:25:48 +02:00
Kirill Bulatov
77991ad865 Fix compilation 2023-10-24 18:22:26 +02:00
Marshall Bowers
afad2fbfa2 Merge branch 'zed2' of github.com:zed-industries/zed into zed2 2023-10-24 17:58:42 +02:00
Marshall Bowers
d6bd000aa8 Rename cx.global_default_mut to cx.global_default 2023-10-24 17:58:14 +02:00
Julia
bfdff4e2e0 When navigating diagnostics, skip diagnostic containing cursor
Slightly unfortunate but prevents an issue with weirdly overlapping
diagnostics causing the cursor to bounce between them
2023-10-24 17:56:56 +02:00
Marshall Bowers
4ca7ddfc42 Finish up ThemeRegistry and remove AnyAssetSource 2023-10-24 17:47:41 +02:00
Marshall Bowers
51c66f508b Merge branch 'zed2' into theme2 2023-10-24 17:29:25 +02:00
Max Brunsfeld
5c03b6a610 Remove logic for multiple channel parents
Co-authored-by: Conrad <conrad@zed.dev>
Co-authored-by: Kyle <kyle@zed.dev>
Co-authored-by: Joseph <joseph@zed.dev>
2023-10-24 17:29:23 +02:00
Max Brunsfeld
cc9e92857b Guest roles (#3140)
Release Notes:

- Added a "guest" role to channels, and made that the default when a new
user joins a public channel.
2023-10-24 17:29:14 +02:00
Marshall Bowers
4740d6ed61 Checkpoint 2023-10-24 17:29:03 +02:00
Kirill Bulatov
18930c33fe Make audio2 2023-10-24 17:15:59 +02:00
Marshall Bowers
5fb8321ee0 Merge branch 'zed2' of github.com:zed-industries/zed into zed2 2023-10-24 17:00:11 +02:00
Marshall Bowers
09866ec3e9 WIP 2023-10-24 16:59:24 +02:00
Marshall Bowers
9f8aaa4cdb Add AnyAssetSource 2023-10-24 16:59:01 +02:00
Kirill Bulatov
1ad7f3a16d Finish ???-ing project2.rs 2023-10-24 16:35:34 +02:00
Antonio Scandurra
11953e613b Checkpoint 2023-10-24 16:15:20 +02:00
Nate Butler
0f03f8ff8a Tweak notification styles (#3161)
[[PR Description]]

Tweak notification visual styles

Release Notes:

- (Added|Fixed|Improved) ...
([#<public_issue_number_if_exists>](https://github.com/zed-industries/community/issues/<public_issue_number_if_exists>)).
2023-10-24 10:03:24 -04:00
Nate Butler
c8dfccff36 Revert "Add meta_text to style metaline"
This reverts commit beb91fa094.
2023-10-24 09:57:33 -04:00
Nate Butler
beb91fa094 Add meta_text to style metaline 2023-10-24 09:51:26 -04:00
Antonio Scandurra
9aaf7d0c46 Checkpoint 2023-10-24 15:30:16 +02:00
Nate Butler
c9e670397f Give notifications a bit more breathing room by default 2023-10-24 09:25:49 -04:00
Nate Butler
463b24949e Tweak notification styles 2023-10-24 09:22:58 -04:00
Antonio Scandurra
191285a8f1 Checkpoint 2023-10-24 15:18:51 +02:00
Nathan Sobo
9f9137cf76 Remove failed attempt at eliminating static bounds on entities 2023-10-24 15:12:51 +02:00
Nate Butler
9f48cdac83 Lower the default state intensities 2023-10-24 08:41:39 -04:00
Kirill Bulatov
b090cefdde Rework prettier tests (#3160)
Do not infuse `FakeNodeRuntime` with prettier exceptions, rather keep
the default formatter installation method as no-op.
2023-10-24 15:34:55 +03:00
Nate Butler
bfb37bbe94 Merge branch 'n/elevation' into zed2 2023-10-24 08:34:54 -04:00
Marshall Bowers
8117e7933c Add missing bounds to Themed 2023-10-24 14:30:26 +02:00
Kirill Bulatov
e9ce935991 Rework prettier tests
Do not infuse `FakeNodeRuntime` with prettier exceptions, rather keep
the default formatter installation method as no-op.
2023-10-24 14:25:46 +02:00
Nathan Sobo
2285a35016 Merge branch 'fewer-bounds' into zed2 2023-10-24 14:24:06 +02:00
Nathan Sobo
0910760b76 Reduce the need for Send + Sync bounds on generics 2023-10-24 14:20:01 +02:00
Marshall Bowers
cf380a9f62 Remove set_ prefix for List setters 2023-10-24 14:18:51 +02:00
Marshall Bowers
24e21a4c29 Merge branch 'zed2' of github.com:zed-industries/zed into zed2 2023-10-24 14:11:22 +02:00
Marshall Bowers
bb35583998 Merge branch 'gpui2' into zed2 2023-10-24 14:11:13 +02:00
Kirill Bulatov
0e48465adb Add a draft of the mac platform file drag and drop events 2023-10-24 14:09:46 +02:00
Kirill Bulatov
4d5ca37edb Fix the branch compilation 2023-10-24 14:04:45 +02:00
Kyle Caverly
ff497810dd move keychain access into semantic index as opposed to on init (#3158)
remove keychain request during init

Release Notes:

- Move keychain request to inside indexing.
- Move install_default_formatters to a no op during tests
2023-10-24 13:43:10 +02:00
KCaverly
feefb8d063 fixed format! call for prettier:: 2023-10-24 13:37:34 +02:00
KCaverly
0dd45bbf21 fully qualify paths inside conditional compilation methods 2023-10-24 13:35:28 +02:00
Marshall Bowers
23ad0a2c58 Return a Result from load_embedded_fonts 2023-10-24 13:31:01 +02:00
KCaverly
8ffe5a3ec7 move keychain access into semantic index as opposed to on init 2023-10-24 13:26:37 +02:00
Antonio Scandurra
9a53da28bc WIP 2023-10-24 13:10:37 +02:00
Marshall Bowers
f2710f37c5 Fix default font family 2023-10-24 12:49:18 +02:00
Marshall Bowers
785901c75e Load embedded fonts 2023-10-24 12:32:30 +02:00
Marshall Bowers
171db00f6e Fix stack overflow 2023-10-24 11:39:15 +02:00
Marshall Bowers
6f5cf10acb Comment out .state setting 2023-10-24 11:39:10 +02:00
Marshall Bowers
6a532af1fd Swap the parameters to IconButton 2023-10-24 11:26:19 +02:00
Marshall Bowers
47f979d457 Pass IDs to IconButtons instead of generating them 2023-10-24 11:20:31 +02:00
Julia
48cdefe6cf Re-understand that the line just below git deletion is "inside" hunk
Fixes "go to previous hunk" getting stuck on a deletion, never going
further up
2023-10-24 11:17:42 +02:00
Conrad Irwin
3358420f6a fix format 2023-10-24 11:17:17 +02:00
Conrad Irwin
2b95db087b Fix infinite loop in select all (#3154)
[[PR Description]]

Release Notes:

- Fixed an infinite loop in select all matches
([#2170](https://github.com/zed-industries/community/issues/2170)).
2023-10-24 02:58:48 -06:00
Conrad Irwin
aa6990bb6b Fix set_channel_visibility for public channels 2023-10-24 10:55:10 +02:00
Conrad Irwin
0e035c1a95 Fix character selection 2023-10-24 10:50:08 +02:00
Antonio Scandurra
953857f8e3 WIP 2023-10-24 10:31:35 +02:00
Antonio Scandurra
18eb4a7292 WIP 2023-10-24 10:01:19 +02:00
Conrad Irwin
e6087e0ed9 Fix tests 2023-10-24 09:46:46 +02:00
Conrad Irwin
67e590202a vim surround (#3152)
- Fix some bugs with vim objects
- Add | as a bracket and a motion
- Fix neovim tests with angle brackets

Release Notes:

- vim: Fixed `i` and `a` objects with softwrap, and a few other edge
cases
- vim: Added support for `ci"` to find the next quoted string on the
line
- vim: Added support for `|` as a bracket (for languages like ruby and
rust)
- vim: Added support for `<count>|` to jump to a specific column
2023-10-24 01:33:34 -06:00
Piotr Osiewicz
97a0864134 grammars: Update Bash grammar (#3155)
Fixes zed-industries/community#2168

Release Notes:
- Updated Bash (Shell script) Tree-sitter grammar (fixes
zed-industries/community#2168)
2023-10-24 09:16:06 +02:00
Piotr Osiewicz
6c163afb84 bash: Add highlighting of ANSI c string (#3153)
Fixes zed-industries/community#2169

Release Notes:

- Fixed highlighting of ANSI C strings ($'foo') in "Shell script"
language buffers.
2023-10-24 09:15:35 +02:00
Nate Butler
e99d862f3f WIP Button Refactor 2023-10-23 14:50:53 -04:00
Nate Butler
c1c9db2ae2 Add elevation enums + docs 2023-10-23 13:50:39 -04:00
Conrad Irwin
ea4e67fb76 Merge branch 'main' into guest-exp 2023-10-23 17:47:21 +02:00
Antonio Scandurra
4d621f355d WIP 2023-10-23 17:41:22 +02:00
Antonio Scandurra
05cbceec24 WIP 2023-10-23 17:36:49 +02:00
Nate Butler
297cef14ed WIP add Elevation Docs 2023-10-23 11:21:48 -04:00
KCaverly
0dfbfdd164 catchup with main 2023-10-23 17:21:37 +02:00
Nathan Sobo
192b3512fd Merge branch 'gpui2-drag-drop' into zed2 2023-10-23 17:18:07 +02:00
Nate Butler
3a326bfa7e 🤦 Remove references to system_color 2023-10-23 11:05:17 -04:00
Nate Butler
dd55ccef34 Merge branch 'n/d' into zed2 2023-10-23 11:01:36 -04:00
Nate Butler
1e13e273d2 Add ThemeColor interface for UI coloring and remove redundancy 2023-10-23 11:01:04 -04:00
Nate Butler
438cf529bb Remove duplicate ThemeColor defs 2023-10-23 11:00:45 -04:00
Nathan Sobo
ec0b2e5430 Add on_drop listeners 2023-10-23 16:59:16 +02:00
Antonio Scandurra
21d4546a86 WIP 2023-10-23 16:39:30 +02:00
Antonio Scandurra
7832120a4c WIP 2023-10-23 16:38:34 +02:00
Antonio Scandurra
efbf0c828d WIP 2023-10-23 16:38:34 +02:00
Nate Butler
c9d214e8ef Start crate doc 2023-10-23 10:21:30 -04:00
Nathan Sobo
38a7b39070 Don't start dragging until you move to 2px 2023-10-23 16:20:01 +02:00
Nathan Sobo
239b0c2f71 Clear active state when drag starts 2023-10-23 16:10:04 +02:00
Conrad Irwin
6e4e19d8fc Fix infinite loop in select all 2023-10-23 16:08:12 +02:00
Nate Butler
cc445f7cef Start scaffolding out the Copilot Modal UI
Co-Authored-By: Mikayla Maki <mikayla.c.maki@gmail.com>
2023-10-23 10:00:02 -04:00
Nathan Sobo
258fcaea94 Position drag handle relative to cursor 2023-10-23 15:20:33 +02:00
Nathan Sobo
fc927f7406 Checkpoint 2023-10-23 15:14:10 +02:00
Nathan Sobo
d1adce5890 Show red box when dragging 2023-10-23 15:09:22 +02:00
Max Brunsfeld
a5836b0337 Add chat mentions and a notifications panel (#3121)
### Todo

* Displaying notifications
    * [x] show them in panel
    * [x] indicate read/unread status
    * [x] allow requesting more by scrolling down
    * [ ] style the panel
    * [x] style the status bar icon
* Chat mentions
    * [x] highlight mentions when editing message
    * [x] persist mentions
    * [x] highlight mentions when rendering saved messages
* Creating notifications
    * [x] contact request received
    * [x] contact request accepted
    * [x] channel invitation received
    * [x] mentioned in a chat message
* [x] Indicate responses to notifications
* Mark notifications as read
* [x] when viewing a contact request acceptance in the notification
panel
    * [x] responding to contact invite
    * [x] responding to channel invite
    * [x] viewing a channel message mention
* [x] Replace previous notifications with auto-dismissing,
non-interactive toasts

### Release Notes:

- Added a notification panel, which displays notifications about contact
requests and channel invitations.
- Added the ability to `@`-mention users in the chat, so that they will
be notified of your message.
2023-10-23 15:05:05 +02:00
Antonio Scandurra
4e6fb9034d WIP 2023-10-23 14:59:57 +02:00
Max Brunsfeld
4d491ca3a1 Tweak styling of notifications
Co-authored-by: Piotr <piotr@zed.dev>
2023-10-23 14:58:03 +02:00
Max Brunsfeld
2f0eaafc39 Format timestamps more tersely in the notification panel
Co-authored-by: Piotr <piotr@zed.dev>
2023-10-23 14:34:38 +02:00
Nathan Sobo
96f2c4a9de Checkpoint 2023-10-23 14:15:12 +02:00
KCaverly
4e90e45999 move embedding truncation to base model 2023-10-23 14:07:45 +02:00
Max Brunsfeld
8766e5f0d0 Avoid flickering toast when mentioned in already-visible chat channel
Co-authored-by: Piotr <piotr@zed.dev>
2023-10-23 13:48:49 +02:00
Piotr Osiewicz
812ff9a97d Account for markdown styling in mentions offset calculation.
This also means that we can support smart punctuation.

Co-authored-by: Max <max@zed.dev>
2023-10-23 12:50:57 +02:00
Antonio Scandurra
a72434f67b WIP 2023-10-23 12:16:33 +02:00
Antonio Scandurra
c0e8ae5dfa WIP 2023-10-23 11:53:24 +02:00
Antonio Scandurra
0de4a93ec7 WIP 2023-10-23 11:43:08 +02:00
Nathan Sobo
da8919002f Fix runtime errors 2023-10-23 11:34:35 +02:00
Antonio Scandurra
5247f217fd Checkpoint 2023-10-23 11:06:58 +02:00
Antonio Scandurra
56462ef793 Checkpoint 2023-10-23 10:59:29 +02:00
Conrad Irwin
b495669c86 Fix neovim tests with angle brackets 2023-10-22 22:24:35 -06:00
Conrad Irwin
3cf98c4fae Add | as a bracket and a motion
Although vim/nvim doesn't have | as brackets, it's common in langauges like Rust
and Ruby, and I expect it to work.
2023-10-22 22:17:34 -06:00
Conrad Irwin
9589f5573d Fix some bugs with vim objects
- softwrap interaction
- correct selection if cursor is on opening marker
2023-10-22 21:44:34 -06:00
Antonio Scandurra
a0b667a2ca WIP 2023-10-22 19:56:25 +02:00
Antonio Scandurra
e7c04d4aca Checkpoint 2023-10-22 18:56:11 +02:00
Antonio Scandurra
72435af170 Checkpoint 2023-10-22 18:34:45 +02:00
Antonio Scandurra
ce75be91e1 Checkpoint 2023-10-22 18:25:24 +02:00
Antonio Scandurra
db6a3e1783 WIP 2023-10-22 18:01:00 +02:00
Max Brunsfeld
763b13e700 Avoid duplicate acks for messages with mentions 2023-10-22 18:00:02 +02:00
Max Brunsfeld
59adcc1744 Load more notifications when scrolling down 2023-10-22 17:10:21 +02:00
Antonio Scandurra
50bbdd5cab WIP 2023-10-22 16:53:59 +02:00
Antonio Scandurra
5d10dc7e58 WIP 2023-10-22 16:49:14 +02:00
Antonio Scandurra
7171818d24 WIP 2023-10-22 16:36:29 +02:00
Antonio Scandurra
48033463c8 WIP 2023-10-22 16:33:59 +02:00
Antonio Scandurra
6ffeb048b3 WIP 2023-10-22 16:27:23 +02:00
Max Brunsfeld
23400a5a70 Start styling notification panel 2023-10-22 16:03:33 +02:00
Max Brunsfeld
c20e781441 Inherit PATH in zed-local script 2023-10-22 16:03:13 +02:00
KCaverly
2b780ee7b2 add base model to EmbeddingProvider, not yet leveraged for truncation 2023-10-22 15:00:09 +02:00
KCaverly
d1dec8314a move OpenAIEmbeddings to OpenAIEmbeddingProvider in providers folder 2023-10-22 14:46:22 +02:00
KCaverly
d813ae8845 replace OpenAIRequest with more generalized Box<dyn CompletionRequest> 2023-10-22 14:33:19 +02:00
KCaverly
05ae978cb7 move OpenAICompletionProvider to providers location 2023-10-22 13:57:13 +02:00
KCaverly
3712794e56 move OpenAILanguageModel to providers folder 2023-10-22 13:47:28 +02:00
KCaverly
a62baf34f2 rename templates to prompts in ai crate 2023-10-22 13:46:49 +02:00
KCaverly
0b57ab7303 cleaned up truncate vs truncate start 2023-10-22 13:34:22 +02:00
Antonio Scandurra
5423012368 WIP 2023-10-22 13:15:29 +02:00
Max Brunsfeld
234ccbe51f Merge branch 'main' into notifications 2023-10-22 12:25:30 +02:00
Max Brunsfeld
4a0358a513 Mark contact acceptance notifications as read automatically 2023-10-22 12:22:47 +02:00
Antonio Scandurra
f4135e6bcf WIP 2023-10-22 12:21:28 +02:00
Max Brunsfeld
fce09e8c92 Mark chat mention notifications as read when viewing the message 2023-10-22 11:57:10 +02:00
Nathan Sobo
909fbb9538 Checkpoint 2023-10-21 19:07:59 +02:00
Nathan Sobo
89f4718ea1 Checkpoint 2023-10-21 18:48:30 +02:00
Antonio Scandurra
2e2825ae98 WIP 2023-10-21 18:41:09 +02:00
Antonio Scandurra
3740c9d852 WIP 2023-10-21 18:33:08 +02:00
Antonio Scandurra
7bb99c9b9c WIP 2023-10-21 18:30:44 +02:00
Antonio Scandurra
aa3fb28f81 WIP 2023-10-21 18:21:14 +02:00
Antonio Scandurra
b7d30fca2b WIP 2023-10-21 17:52:47 +02:00
Kyle Caverly
ef1a69156d update semantic search to use keychain as fallback (#3151)
Use the keychain for authenticating as fallback when api_key is not
present in environment variables.

Release Notes:

- Add consistency between OPENAI_API_KEY management in Semantic Search
and Assistant
2023-10-21 10:34:32 -04:00
KCaverly
4835c77840 update text for project search if not authenticated 2023-10-21 10:28:54 -04:00
KCaverly
106115676d update semantic search to use keychain as fallback 2023-10-21 10:19:50 -04:00
Antonio Scandurra
e4fe9538d7 Checkpoint 2023-10-21 16:01:47 +02:00
Antonio Scandurra
f3979a9f28 Checkpoint 2023-10-21 15:59:52 +02:00
Piotr Osiewicz
fc37abc356 vcs_menu: Query branches on open instead of per keystroke (#3144)
Release Notes:

- Improved performance of branch picker by querying branches on menu
open instead of querying once per each keystroke. (fixes
zed-industries/community#2161)
2023-10-21 14:01:01 +02:00
Mikayla
b8936e5fca Finish room initialization concurrency test 2023-10-21 03:15:18 -07:00
Mikayla
7e4de2ac16 Restore synchronization 2023-10-21 03:08:25 -07:00
Mikayla
5365fd2149 WIP: Add test for panic, temporarily rollback synchronization changes 2023-10-21 03:05:57 -07:00
Kirill Bulatov
26638748bb Move prettier parsers data into languages from LSP adapters (#3150)
Release Notes:

- Fixed incorrect prettier parsers sometimes being applied to certain
files
2023-10-21 02:22:21 +03:00
Kirill Bulatov
7748848b6e Move prettier parsers data into languages from LSP adapters 2023-10-21 01:14:03 +02:00
Conrad Irwin
0dae0f6027 pixel columns (#3052)
@ForLoveOfCats and I found a few speedups that make this acceptably fast
(able to update ~10k selections in <100ms), so the remaining work here
is to fix the tests, and then ship!

Release notes:
- Updated up/down to work based on pixel positions
([#1966](https://github.com/zed-industries/community/issues/1966))
([#759](https://github.com/zed-industries/community/issues/759))
- vim: Fixed off-by-one in visual block mode
([2123](https://github.com/zed-industries/community/issues/2123))
2023-10-20 15:01:27 -06:00
Conrad Irwin
2de34a905d Hide any circumstantial evidence that this didn't work perfectly first
time
2023-10-20 14:45:37 -06:00
Marshall Bowers
7719ed0d6c Remove unnecessary iterator 2023-10-20 16:34:33 -04:00
Conrad Irwin
fd8e6110b1 Fix panic by disallowing multiple room joins 2023-10-20 14:34:25 -06:00
Conrad Irwin
15fe2627d0 Remove screen sharing indicator (#3148)
Release Notes:

- Removed the screen-sharing indicator from calls. Newer versions of
macOS have a better indicator, and ours panics when you click on it.
2023-10-20 14:33:45 -06:00
Marshall Bowers
cbdd1d6d6c Use children instead of when 2023-10-20 16:30:52 -04:00
Marshall Bowers
080638216a Wire up NotificationsPanel story 2023-10-20 16:30:45 -04:00
Marshall Bowers
4dc2440024 Enable text wrapping for Details 2023-10-20 16:13:54 -04:00
Marshall Bowers
a6d8915b6c Document more styles 2023-10-20 15:59:47 -04:00
Conrad Irwin
f422a3c5d0 Add "workspace: Toggle Vim Mode" (#3147)
Co-Authored-By: Marshall <elliott.codes@gmail.com>

Release Notes:

- vim: Add "Toggle Vim Mode" command
2023-10-20 13:07:51 -06:00
Conrad Irwin
31872227f1 Remove screen sharing indicator
This is now redundant given macOS has the same icon, and it panics when
you click on it :D.
2023-10-20 13:04:45 -06:00
Conrad Irwin
fae5b1e391 Fix build columnar selection logic 2023-10-20 12:55:41 -06:00
Conrad Irwin
43d682f6b8 Handle pixel-down to last line when no trailing newline 2023-10-20 12:46:14 -06:00
Conrad Irwin
352a554c74 Fix bug in vim visual block mode 2023-10-20 11:49:10 -06:00
Conrad Irwin
c7991ef04c Add "workspace: Toggle Vim Mode"
Co-Authored-By: Marshall <elliott.codes@gmail.com>
2023-10-20 11:41:13 -06:00
Conrad Irwin
1c36134cf9 Fix single column vim selections 2023-10-20 11:17:19 -06:00
Conrad Irwin
b596b4153f Fix test 2023-10-20 10:34:09 -06:00
Julia
cc7df91cc6 Whoops (#3146)
Whoops, this is what I get for working past-midnight lol, I never pushed
the last commit for https://github.com/zed-industries/zed/pull/3141 so
this PR remedies that

Release Notes:
- NA
2023-10-20 12:07:33 -04:00
Julia
7c3a8a3774 Add Tailwind autocomplete in ERB, PHP, and Laravel Blade 2023-10-20 12:06:05 -04:00
Julia
808976ee28 Magic incantations for Tailwind autocomplete in more languages (#3141)
Release Notes:
- Added Tailwind autocomplete to Svelte files
([#2029](https://github.com/zed-industries/community/issues/2029)).
- Added Tailwind autocomplete to Phoenix HEEX files
([#2057](https://github.com/zed-industries/community/issues/2057)).
- Added Tailwind autocomplete to Phoenix ~H sigil in Elixir files
([#2057](https://github.com/zed-industries/community/issues/2057)).
- Added Tailwind autocomplete to ERB files
([#2153](https://github.com/zed-industries/community/issues/2153)).
- Added Tailwind autocomplete to PHP files
([#2159](https://github.com/zed-industries/community/issues/2159)).
- Added Tailwind autocomplete to Laravel Blade files
([#2159](https://github.com/zed-industries/community/issues/2159)).
2023-10-20 12:02:55 -04:00
Antonio Scandurra
825c352b6a Checkpoint 2023-10-20 17:58:37 +02:00
Marshall Bowers
b0b7f27f3a Merge branch 'gpui2' of github.com:zed-industries/zed into gpui2 2023-10-20 11:32:11 -04:00
Marshall Bowers
c831c5749a Remove more unneeded Clone bounds 2023-10-20 11:32:10 -04:00
Antonio Scandurra
1409fc0da3 Checkpoint 2023-10-20 17:31:47 +02:00
Marshall Bowers
901af8de3f Remove Clone bound from Avatar 2023-10-20 11:13:13 -04:00
Marshall Bowers
d9a030157e Remove Clone bound from Keybinding 2023-10-20 11:12:37 -04:00
Marshall Bowers
a0996c1807 Remove Clone bound from ChatMessage 2023-10-20 11:10:13 -04:00
Antonio Scandurra
a3dcaf21cb Checkpoint 2023-10-20 16:31:03 +02:00
Antonio Scandurra
8ad7ebf02f Checkpoint 2023-10-20 16:31:00 +02:00
Piotr Osiewicz
e32aa95092 Touch up render function 2023-10-20 15:33:55 +02:00
Piotr Osiewicz
6844bb6510 Highlight mentions in the Saved chat messages 2023-10-20 15:30:36 +02:00
Antonio Scandurra
47aa387b91 Checkpoint 2023-10-20 15:13:53 +02:00
Antonio Scandurra
6150df71b2 Checkpoint 2023-10-20 15:08:54 +02:00
Antonio Scandurra
fd94f2a5b5 Checkpoint 2023-10-20 12:59:02 +02:00
Antonio Scandurra
847a1cb068 Checkpoint 2023-10-20 12:23:22 +02:00
Antonio Scandurra
c1f7c9bb87 Checkpoint 2023-10-20 12:12:06 +02:00
Antonio Scandurra
ac181183cc Checkpoint 2023-10-20 11:46:29 +02:00
Antonio Scandurra
8a11053f1f Checkpoint 2023-10-20 11:44:19 +02:00
Antonio Scandurra
b0acaed02f Checkpoint 2023-10-20 11:08:24 +02:00
Antonio Scandurra
c3a917f8b3 Checkpoint 2023-10-20 11:02:00 +02:00
Antonio Scandurra
766ee836b5 Checkpoint 2023-10-20 11:00:52 +02:00
Antonio Scandurra
68bc22f9cd Checkpoint 2023-10-20 10:55:06 +02:00
Conrad Irwin
e03e5364d2 Wire through LiveKit permissions 2023-10-19 23:23:33 -06:00
Conrad Irwin
aa4b8d7246 Fix notifications for membership changes too 2023-10-19 23:05:06 -06:00
Nate Butler
0609628645 List actions for ListDetailsEntries 2023-10-19 20:17:41 -04:00
Nate Butler
32028fbbb1 Checkpoint – Notifications Panel 2023-10-19 20:04:21 -04:00
Antonio Scandurra
e3d948f60b Checkpoint 2023-10-19 23:56:43 +02:00
Antonio Scandurra
40c6f738b4 Checkpoint 2023-10-19 23:54:17 +02:00
Antonio Scandurra
296fc92721 Checkpoint 2023-10-19 23:47:32 +02:00
Antonio Scandurra
21b4ae3fdc Merge 2023-10-19 23:40:38 +02:00
Antonio Scandurra
d69105bb77 Checkpoint 2023-10-19 23:39:22 +02:00
Antonio Scandurra
4a6c8ff809 Checkpoint 2023-10-19 23:35:09 +02:00
Antonio Scandurra
1f6d9369d6 Checkpoint 2023-10-19 23:30:14 +02:00
Antonio Scandurra
3a70f02cbf Checkpoint 2023-10-19 23:21:26 +02:00
Max Brunsfeld
44cb55fbe9 Fix scrolling to messages on clicking of notifications 2023-10-19 14:04:34 -07:00
Antonio Scandurra
dd7e1c505c Checkpoint 2023-10-19 23:00:19 +02:00
Marshall Bowers
94f0140f62 Assign each IconButton an ID based on the icon 2023-10-19 16:50:33 -04:00
Marshall Bowers
28b29d0985 Give each Tab its own ID 2023-10-19 16:42:21 -04:00
Marshall Bowers
52f2521f6a Wire up active style for Tab 2023-10-19 16:37:54 -04:00
Marshall Bowers
e1e8b63eb5 Remove Clone bound from IconElement 2023-10-19 16:37:15 -04:00
Marshall Bowers
a1aba32209 Remove Clone bound from Button and Details 2023-10-19 16:35:44 -04:00
Marshall Bowers
fa3916d1bf Remove Clone bound for HighlightedLabel 2023-10-19 16:34:08 -04:00
Marshall Bowers
3ac7ef90ef Remove Clone bound for Input 2023-10-19 16:32:48 -04:00
Marshall Bowers
4050bf43c4 Remove Clone bound for Label 2023-10-19 16:31:24 -04:00
Max Brunsfeld
851d7d0bc4 Rename NewNotification proto message to AddNotification 2023-10-19 13:29:14 -07:00
Antonio Scandurra
0fbf84e6bc Checkpoint 2023-10-19 22:28:42 +02:00
Marshall Bowers
d91b423a45 Remove unused Interactive impl for FakeSettings 2023-10-19 16:16:09 -04:00
Marshall Bowers
2bbce2f0fd Merge branch 'gpui2' of github.com:zed-industries/zed into gpui2 2023-10-19 16:14:39 -04:00
Marshall Bowers
1be1bffb29 Wire up active style for Breadcrumb 2023-10-19 16:13:25 -04:00
Marshall Bowers
92542e6b94 Identify IconButton 2023-10-19 16:12:21 -04:00
Kyle Caverly
9c49191031 decrease temperature for inline assist on code content (#3145)
"Temperature" is a parameter in OpenAI GPT models, to control for
randomess in the generated content. To decrease the probability of
either escaping the markdown blocks and creating invalid code, we
decreased temperature for all Non-Prose files. For Markdown or Plain
Text, in which more creativity may be a good thing, we increase the
temperature to allow for more randomness. Along with this, we ask the
generate inline prompt to include only the code and not markdown blocks,
as it appears that lower temperature may decrease the probability of
introducing random markdown blocks.

Release Notes (Internal Only):
- Decrease temperature for inline assist on code content.
2023-10-19 16:11:29 -04:00
Marshall Bowers
3932c1064e Merge branch 'gpui2' into gpui2-theme-to-color 2023-10-19 16:10:44 -04:00
Antonio Scandurra
d446b91117 Checkpoint 2023-10-19 22:10:39 +02:00
Antonio Scandurra
673257bbbc Checkpoint 2023-10-19 22:05:01 +02:00
Antonio Scandurra
180ed7da81 Checkpoint 2023-10-19 22:05:01 +02:00
Antonio Scandurra
38d8ab2285 Checkpoint 2023-10-19 22:05:01 +02:00
Antonio Scandurra
c17a4d8453 Checkpoint 2023-10-19 22:05:01 +02:00
Antonio Scandurra
e74285f6d2 Checkpoint 2023-10-19 22:05:01 +02:00
Max Brunsfeld
33f06d3104 Index notifications to allow faster lookup by kind, entity id 2023-10-19 13:03:27 -07:00
Max Brunsfeld
841cfac1f8 Fix filtering when providing non-admins info about channel members 2023-10-19 12:54:47 -07:00
KCaverly
71fb23f769 decrease temperature for inline assist on code content 2023-10-19 15:44:49 -04:00
Max Brunsfeld
150ed641ae Render read notifications in a different color 2023-10-19 12:40:10 -07:00
Max Brunsfeld
5b90507310 Navigate to chat messages when clicking them in the notification panel 2023-10-19 12:31:45 -07:00
Conrad Irwin
0eff7c6ca9 Add read-only channel notes support
Fix some bugs where ChannelNotes and ChannelChat had old cached channel
instances
2023-10-19 13:20:49 -06:00
Marshall Bowers
2189983323 Add missing Clone bounds 2023-10-19 15:02:00 -04:00
Kyle Caverly
e45491d2f8 Introduction of PromptTemplate and PromptChains (#3139)
(This PR was written 100% by the Inline Assistant)

This PR brings in new components into our ai and assistant crates namely
PromptTemplate and PromptChains. They offer a new way to generate
prompts that allow for a more flexible and dynamic approach than before.

Release Notes:
- Introduced PromptTemplate: an abstract base for individual parts of
the prompt.
- Added PromptChains: manage multiple PromptTemplates, sort them based
on priority and regulate the output size based on tokens.
- Provided new PromptArguments structure to encapsulate arguments needed
for PromptTemplate.
    - Extended repository_context to include PromptCodeSnippet.
2023-10-19 14:44:43 -04:00
Nate Butler
58650b7d2d Checkpoint - Still Broken 2023-10-19 14:38:01 -04:00
KCaverly
19c2df4822 outlined when truncation is taking place in the prompt 2023-10-19 14:33:52 -04:00
Marshall Bowers
d5fc831321 Restore more active styles 2023-10-19 14:23:45 -04:00
Marshall Bowers
743949753a Fix mutual-exclusivity of right panels 2023-10-19 14:19:10 -04:00
Marshall Bowers
184f5f2397 Restore active styles for Inputs 2023-10-19 14:17:35 -04:00
Marshall Bowers
597aa0475e Remove unused import 2023-10-19 14:10:13 -04:00
Marshall Bowers
70984faee2 Merge branch 'gpui2' of github.com:zed-industries/zed into gpui2 2023-10-19 14:06:35 -04:00
Marshall Bowers
e657e4d1d1 Wire up livestream debug toggle 2023-10-19 14:06:31 -04:00
Max Brunsfeld
d62f114c02 Create notifications for mentioned users
Co-authored-by: Piotr <piotr@zed.dev>
2023-10-19 10:52:40 -07:00
Antonio Scandurra
9e20ccc01a Checkpoint 2023-10-19 19:51:05 +02:00
Antonio Scandurra
1343ea66c9 Checkpoint 2023-10-19 19:51:05 +02:00
Antonio Scandurra
2b90b8d6b7 Checkpoint 2023-10-19 19:51:05 +02:00
Antonio Scandurra
90d34c1251 Checkpoint 2023-10-19 19:51:05 +02:00
Antonio Scandurra
93ff79febf Checkpoint 2023-10-19 19:51:05 +02:00
Antonio Scandurra
7fef03a7db Checkpoint 2023-10-19 19:51:05 +02:00
Antonio Scandurra
30269381e8 Checkpoint 2023-10-19 19:51:05 +02:00
Antonio Scandurra
9985f388ac Checkpoint 2023-10-19 19:51:05 +02:00
Marshall Bowers
a869de3b1f Add ability to toggle user settings 2023-10-19 13:38:19 -04:00
Marshall Bowers
4aac733238 Pass the settings to build_child 2023-10-19 13:23:08 -04:00
Marshall Bowers
7ed891e0c6 Merge branch 'gpui2' into gpui2ui-debug-panel 2023-10-19 13:04:37 -04:00
Marshall Bowers
a1f7a97ff5 Pull the settings from the global state 2023-10-19 13:02:32 -04:00
Nate Butler
bca97f7186 Checkpoint – Broken 2023-10-19 12:58:17 -04:00
Marshall Bowers
61e09ff532 Checkpoint: Thread WindowContext through to user_settings 2023-10-19 12:58:17 -04:00
Nate Butler
8e465b4393 Add basic debug panel 2023-10-19 12:09:39 -04:00
Marshall Bowers
b16d37953d Use line_height in z_index stories 2023-10-19 12:06:05 -04:00
Marshall Bowers
f5c76d93bc Add missing Arc for on_click handler 2023-10-19 10:25:54 -04:00
Antonio Scandurra
98c0e00a2c Checkpoint 2023-10-19 15:52:17 +02:00
Antonio Scandurra
3d8e9a593e Checkpoint 2023-10-19 15:44:02 +02:00
Antonio Scandurra
ffa3362e16 Checkpoint 2023-10-19 15:36:37 +02:00
Kirill Bulatov
999e9c3d5d Sort hint request ranges before asserting to avoid flackiness (#3142) 2023-10-19 11:11:47 +03:00
Kirill Bulatov
40104c06e2 Sort hint request ranges before asserting to avoid flackiness 2023-10-19 11:05:47 +03:00
Julia
36731ba6b3 Magic incantations for Tailwind autocomplete in Svelte, Elixir ~H, Heex 2023-10-19 01:54:42 -04:00
Conrad Irwin
9d07561d99 Merge branch 'main' into pixel-columns 2023-10-18 23:00:56 -06:00
Conrad Irwin
3eb8aa8085 Refactor TextLayoutDetails construction 2023-10-18 22:56:11 -06:00
Conrad Irwin
138fa45ecb recert config change 2023-10-18 22:23:38 -06:00
Conrad Irwin
cb76b2a6ad Make vim visual block work better 2023-10-18 22:23:06 -06:00
Conrad Irwin
3853009d92 Refactor to avoid some (mostly hypothetical) races
Tidy up added code to reduce duplicity of X and X_internals.
2023-10-18 21:42:10 -06:00
Max Brunsfeld
5257fb8533 Fix compile error in db seed executable 2023-10-18 18:05:51 -07:00
Max Brunsfeld
ac54d2b927 Fix possibility of extra mention insertion on nonce collision 2023-10-18 18:04:56 -07:00
Nate Butler
e34a488b55 WIP 2023-10-18 20:58:24 -04:00
Max Brunsfeld
b07f9fe3b5 Merge branch 'main' into notifications 2023-10-18 17:20:04 -07:00
Max Brunsfeld
d05404a4df Persist chat mentions 2023-10-18 16:56:03 -07:00
Nate Butler
c22778bd92 Remove debugs 2023-10-18 19:15:17 -04:00
Nate Butler
65828c14fc Use ui_size to build icon button 2023-10-18 19:12:02 -04:00
KCaverly
178a84bcf6 progress on smarter truncation strategy for file context 2023-10-18 17:56:59 -04:00
Conrad Irwin
2b11463567 Fix notifications on channel changes 2023-10-18 15:56:33 -06:00
Nate Butler
7cb00aeb34 Update line heights, buttons to respond to UI scale
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-10-18 17:55:17 -04:00
Nate Butler
7b2782c0f6 Use ui_size to set relative font sizes
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-10-18 17:02:57 -04:00
KCaverly
587fd707ba added smarter error handling for file_context prompts without provided buffers 2023-10-18 16:40:09 -04:00
KCaverly
f59f2eccd5 added dumb truncation strategies to file_context and generate 2023-10-18 16:32:14 -04:00
KCaverly
a0e01e075d fix for error when truncating a length less than the string length 2023-10-18 16:31:29 -04:00
Nate Butler
3f076eeda6 Remove unused code from storybook 2
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-10-18 16:27:34 -04:00
KCaverly
32853c2044 added initial placeholder for truncation without a valid strategy 2023-10-18 16:23:53 -04:00
Nate Butler
a35d350cbd Update storybook2 to run the workspace by default
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-10-18 16:21:04 -04:00
Nate Butler
a6a50113da Merge branch 'n/gpui2ui-settings' into gpui2 2023-10-18 16:17:57 -04:00
Nate Butler
8b637e194e Update approach to settings
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-10-18 16:16:58 -04:00
KCaverly
473067db31 update PromptPriority to accomodate for both Mandatory and Ordered prompts 2023-10-18 15:56:39 -04:00
Nate Butler
289255d67a Update UI elements and implement user settings for customization 2023-10-18 15:42:10 -04:00
Max Brunsfeld
199740902a Fix possibility of infinite loop in selections_with_autoclose_regions (#3138)
Previously, that method could loop forever if the editor's autoclose
regions had unexpected selection ids.

Something must have changed recently that allowed this invariant to be
violated, but regardless, this code should not have relied on that
invariant to terminate like this.
2023-10-18 11:34:35 -07:00
Marshall Bowers
549e78d7b3 Use SharedString for Inputs 2023-10-18 14:28:28 -04:00
KCaverly
aa1825681c update the assistant panel to use new prompt templates 2023-10-18 14:20:12 -04:00
Marshall Bowers
5a42ca6772 Merge branch 'gpui2' of github.com:zed-industries/zed into gpui2 2023-10-18 14:19:29 -04:00
Marshall Bowers
8dad3ad8ea Use SharedString for Lists 2023-10-18 14:19:26 -04:00
Max Brunsfeld
655c9ece2d Fix possibility of infinite loop in selections_with_autoclose_regions
Previously, that method could loop forever if the editor's autoclose
regions had unexpected selection ids.

Co-authored-by: Piotr <piotr@zed.dev>
2023-10-18 11:16:14 -07:00
Antonio Scandurra
159d798c34 Checkpoint 2023-10-18 20:13:19 +02:00
Marshall Bowers
856d23626f Use SharedString for Palette and PaletteItems 2023-10-18 14:03:13 -04:00
Antonio Scandurra
8890636a56 Checkpoint 2023-10-18 19:30:53 +02:00
Joseph T. Lyons
4e68b588be collab 0.25.0 2023-10-18 13:17:17 -04:00
KCaverly
b9bb27512c fix template ordering during prompt chain generation 2023-10-18 13:10:31 -04:00
KCaverly
fa61c1b9c1 add prompt template for generate inline content 2023-10-18 13:03:11 -04:00
Antonio Scandurra
a0634fa79e Checkpoint 2023-10-18 18:39:47 +02:00
Antonio Scandurra
03937a9f89 WIP 2023-10-18 18:39:47 +02:00
Marshall Bowers
24086191af Split Label and HighlightedLabel 2023-10-18 12:37:47 -04:00
Joseph T. Lyons
cf429ba284 v0.110.x dev 2023-10-18 12:31:12 -04:00
KCaverly
178a79fc47 added prompt template for file context without truncation 2023-10-18 12:29:10 -04:00
Marshall Bowers
f0b9e9a89d Use SharedString for Keybindings 2023-10-18 12:26:51 -04:00
Piotr Osiewicz
99121ad5cd buffer_search: Discard empty search suggestions. (#3136)
Now when buffer_search::Deploy action is triggered (with cmd-f), we'll
keep the previous query in query_editor (if there was one) instead of
replacing it with empty query.

This addresses this bit of feedback from Jose:
> If no text is selected, `cmd + f` should not delete the text in the
search bar when refocusing

Release Notes:
- Improved buffer search by not clearing out query editor when no text
is selected and "buffer search: deploy" (default keybind: cmd-f) is
triggered.
2023-10-18 18:05:13 +02:00
Marshall Bowers
6e3393c93f Use SharedString for Buttons 2023-10-18 10:59:42 -04:00
Marshall Bowers
aa41f97e38 Merge branch 'gpui2' of github.com:zed-industries/zed into gpui2 2023-10-18 10:58:54 -04:00
Marshall Bowers
2b53c67789 Use SharedString for Labels 2023-10-18 10:58:50 -04:00
Antonio Scandurra
731ce1721a Checkpoint 2023-10-18 16:55:55 +02:00
Marshall Bowers
8321b9430e Wire up hover styles on Buttons 2023-10-18 10:53:42 -04:00
Marshall Bowers
7f69350e4d Fix typo in doc comment 2023-10-18 10:45:20 -04:00
Marshall Bowers
1a156c1060 Merge branch 'gpui2' of github.com:zed-industries/zed into gpui2 2023-10-18 10:44:43 -04:00
Antonio Scandurra
7149f99f02 Checkpoint 2023-10-18 16:43:20 +02:00
Marshall Bowers
5491398a64 Merge branch 'gpui2' into gpui2-ui 2023-10-18 10:43:15 -04:00
KCaverly
4b8771f3e2 Merge branch 'main' of github.com:zed-industries/zed into prompt_template 2023-10-18 10:42:16 -04:00
Kyle Caverly
fea6d70d4d return code inside a markdown block during inline assist (#3137)
Reverted prior small change in inline prompting.
We should now only return code in a markdown block during inline
assists.
2023-10-18 10:40:53 -04:00
Antonio Scandurra
0e4bd485e0 Checkpoint 2023-10-18 16:36:48 +02:00
KCaverly
ed8a2c8793 revert change to return only the text and inside return all text inside markdown blocks 2023-10-18 10:35:11 -04:00
Antonio Scandurra
fecb27232e Checkpoint 2023-10-18 16:30:48 +02:00
Antonio Scandurra
f58a9bad42 Checkpoint 2023-10-18 16:30:03 +02:00
Antonio Scandurra
f4d50c4dca Checkpoint 2023-10-18 16:27:58 +02:00
Antonio Scandurra
036e266bae Checkpoint 2023-10-18 16:21:52 +02:00
Antonio Scandurra
d98c347902 Checkpoint 2023-10-18 16:13:36 +02:00
Antonio Scandurra
1270bcc6ed Checkpoint 2023-10-18 16:10:58 +02:00
Antonio Scandurra
8914b94577 Checkpoint 2023-10-18 15:46:17 +02:00
Antonio Scandurra
acca8ea786 Checkpoint 2023-10-18 15:24:35 +02:00
Antonio Scandurra
eaef1c8b8e Checkpoint 2023-10-18 15:17:22 +02:00
Antonio Scandurra
0dfe70125b Checkpoint 2023-10-18 14:41:46 +02:00
Antonio Scandurra
5afd83c883 Checkpoint 2023-10-18 14:36:16 +02:00
Mikayla
0ce1ec5d15 Restrict DAG-related functionality, but retain infrastructure for implementing symlinks 2023-10-18 05:28:05 -07:00
Antonio Scandurra
a61b34cab5 Checkpoint 2023-10-18 14:12:50 +02:00
Antonio Scandurra
ad1b96720a Checkpoint 2023-10-18 13:36:26 +02:00
Antonio Scandurra
296a2b8e5d Rename fill to bg 2023-10-18 09:39:23 +02:00
Antonio Scandurra
597a9f9548 Use text color to paint SVGs 2023-10-18 09:39:20 +02:00
Antonio Scandurra
e031718747 Checkpoint 2023-10-18 09:22:49 +02:00
Antonio Scandurra
6452ff203e Checkpoint 2023-10-18 09:15:44 +02:00
Conrad Irwin
70aed4a605 Sync Role as part of channels
Begin to fix guest notifications
2023-10-17 22:48:44 -06:00
Max Brunsfeld
821419ee5b Add a unit test for the mention-searching logic in MessageEditor 2023-10-17 20:15:49 -07:00
Conrad Irwin
72ed8a6dd2 Allow guests to chat 2023-10-17 19:03:02 -06:00
Max Brunsfeld
ee87ac2f9b Start work on chat mentions 2023-10-17 17:59:42 -07:00
Max Brunsfeld
660021f5e5 Fix more issues with the channels panel
* Put the newest notifications at the top
* Have at most 1 notification toast, which is non-interactive,
  but focuses the notification panel on click, and auto-dismisses
  on a timer.
2023-10-17 15:43:06 -07:00
Conrad Irwin
783f05172b Make sure guests join as guests 2023-10-17 15:40:23 -06:00
Marshall Bowers
79e0509bf9 Begin documenting flex styles 2023-10-17 17:32:30 -04:00
KCaverly
02853bbd60 added prompt template for repository context 2023-10-17 17:29:07 -04:00
Marshall Bowers
218922d9f8 Document gap styles 2023-10-17 17:21:52 -04:00
Marshall Bowers
7a2b04a5d1 Document border width styles 2023-10-17 16:47:37 -04:00
Marshall Bowers
dc32e56a9c Document rounded styles 2023-10-17 16:35:21 -04:00
Marshall Bowers
490cc7ded6 Add more placeholder doc strings 2023-10-17 16:24:36 -04:00
KCaverly
a874a09b7e added openai language model tokenizer and LanguageModel trait 2023-10-17 16:21:03 -04:00
Antonio Scandurra
4db0350f06 Checkpoint 2023-10-17 22:16:48 +02:00
Marshall Bowers
edc52e5b28 Tweak grammar 2023-10-17 16:16:38 -04:00
Marshall Bowers
a1a1284696 Document top/right/bottom/left styles 2023-10-17 16:13:55 -04:00
Marshall Bowers
6f849e8f64 Document padding styles 2023-10-17 16:10:30 -04:00
Marshall Bowers
3e32504526 Document .size() 2023-10-17 16:07:52 -04:00
Marshall Bowers
6e84d3cce0 Document margin styles 2023-10-17 16:06:11 -04:00
Marshall Bowers
8c02de6c61 Document width and height styles 2023-10-17 16:06:07 -04:00
Marshall Bowers
f09df31480 Emit doc strings for custom value setters 2023-10-17 16:01:36 -04:00
Antonio Scandurra
a8697df9e3 Checkpoint 2023-10-17 21:54:28 +02:00
Marshall Bowers
6f30d6b4d0 Add placeholder doc strings for style prefixes 2023-10-17 15:53:54 -04:00
Joseph T. Lyons
13c7bbbac6 Shorten GitHub release message 2023-10-17 15:47:17 -04:00
Conrad Irwin
cc390ba862 Start writing role to database (#3120)
Scaffolding for guest members in channels

Release notes:
- You can now set channels to "public" which will allow anyone to join
and become a member. In a future release guests joining public channels
will have reduced permissions.
2023-10-17 13:40:58 -06:00
Antonio Scandurra
61490fbaa8 Checkpoint 2023-10-17 21:40:24 +02:00
Antonio Scandurra
4ce7f059c3 Checkpoint 2023-10-17 21:37:09 +02:00
Conrad Irwin
04a28fe831 Fix lint errors 2023-10-17 13:32:08 -06:00
Conrad Irwin
1c5e07f4a2 update sidebar for public channels 2023-10-17 13:30:09 -06:00
Antonio Scandurra
deb0e57c49 Checkpoint 2023-10-17 21:11:52 +02:00
Kyle Caverly
2795091f0c Introduce Context Retrieval in Inline Assistant (#3097)
This PR introduces a new Inline Assistant feature "Retrieve Context", to
dynamically fill the content in your generation prompt based on relevant
results returned from the Semantic Search for the Prompt.

Release Notes:

- Introduce "Retrieve Context" button in Inline Assistant
2023-10-17 15:04:36 -04:00
Kirill Bulatov
c380d437c6 Cap every language server logs (#3134)
* on opening a language server's logs, a new editor for server logs is
now created from `\n`-joined `VecDeque` elements instead of a buffer, as
before
* every `VecDeque` entry is a log line we receiver out of stderr or LSP
server, and their general amount is capped with `let
MAX_STORED_LOG_ENTRIES: usize = 2000;`
* currently opened editor with logs (`Editor::multi_line`) keeps getting
log lines appended and may get over this cap, but only last stored 2000
entries will be restored on reopen
* similarly, cap rpc message logs

Release Notes:

- Improved memory usage by storing less language LSP server and rpc logs
2023-10-17 21:51:21 +03:00
Kirill Bulatov
a95cce9a60 Reduce max log lines, clean log buffers better 2023-10-17 21:47:21 +03:00
Kirill Bulatov
08af830fd7 Do not create buffers for rpc logs 2023-10-17 21:43:34 +03:00
Kirill Bulatov
c872c86c4a Remove another needless log buffer 2023-10-17 21:43:34 +03:00
Kirill Bulatov
ba5c188630 Update editor with current buffer logs 2023-10-17 21:43:34 +03:00
Kirill Bulatov
5a4161d293 Do not detach subscriptions 2023-10-17 21:43:34 +03:00
Kirill Bulatov
33296802fb Add a rough prototype 2023-10-17 21:43:34 +03:00
Max Brunsfeld
52834dbf21 Add notifications integration test 2023-10-17 11:21:38 -07:00
Nate Butler
8db389313b Add link & public icons 2023-10-17 13:34:51 -04:00
Max Brunsfeld
f2d36a47ae Generalize notifications' actor id to entity id
This way, we can retrieve channel invite notifications when
responding to the invites.
2023-10-17 10:34:50 -07:00
Piotr Osiewicz
31241f48be workspace: Do not scan for .gitignore files if a .git directory is encountered along the way (#3135)
Partially fixes zed-industries/community#575

This PR will see one more fix to the case I've spotted while working on
this: namely, if a project has several nested repositories, e.g for a
structure:
/a
/a/.git/
/a/.gitignore
/a/b/
/a/b/.git/
/a/b/.gitignore

/b/ should not account for a's .gitignore at all - which is sort of
similar to the fix in commit #c416fbb, but for the paths in the project.

The release note is kinda bad, I'll try to reword it too.
- [ ] Improve release note.
- [x] Address the same bug for project files.

Release Notes:
- Fixed .gitignore files beyond the first .git directory being respected
by the worktree (zed-industries/community#575).
2023-10-17 18:56:03 +02:00
Antonio Scandurra
19c1a54fea WIP 2023-10-17 18:45:01 +02:00
Antonio Scandurra
850d43c1e8 WIP 2023-10-17 18:37:53 +02:00
Conrad Irwin
5b39fc8123 Temporarily join public channels as a member 2023-10-17 10:29:43 -06:00
Antonio Scandurra
ec368c8102 WIP 2023-10-17 18:28:58 +02:00
Conrad Irwin
3412becfc5 Fix some tests 2023-10-17 10:15:20 -06:00
Max Brunsfeld
f225039d36 Display invite response buttons inline in notification panel 2023-10-17 09:12:55 -07:00
Conrad Irwin
2456c077f6 Fix channel test ordering 2023-10-17 10:01:31 -06:00
KCaverly
ad92fe49c7 implement initial concept of prompt chain 2023-10-17 11:58:45 -04:00
Conrad Irwin
9cc55f895c Merge branch 'main' into guests 2023-10-17 09:54:17 -06:00
Conrad Irwin
851701cb6f Fix get_most_public_ancestor 2023-10-17 09:41:34 -06:00
Antonio Scandurra
c04171abf6 WIP 2023-10-17 13:32:49 +02:00
Antonio Scandurra
488d08b43c WIP 2023-10-17 12:46:50 +02:00
Mikayla
465d726bd4 Minor adjustments 2023-10-17 03:05:01 -07:00
Antonio Scandurra
18abb068b1 Checkpoint 2023-10-17 11:35:48 +02:00
Antonio Scandurra
cec5280013 Checkpoint 2023-10-17 11:31:13 +02:00
Mikayla Maki
adabf0107f Update IDs on interactive elements in LSP log viewer (#3133)
This PR fixes a panic in the LSP log viewer when rendering the popover
UI. This did not ship to preview or stable, and so does not require a
release note.

Release Notes:

- N/A
2023-10-17 02:27:37 -07:00
Mikayla Maki
fd03915f85 Adjust chat to allow channel admins to delete all messages (#3132)
As it says on the tin

Release Notes:

- Changed chat permissions so that admins of a channel can delete any
message in a channel.
2023-10-17 02:24:14 -07:00
Mikayla
a81484f13f Update IDs on interactive elements in LSP log viewer 2023-10-17 02:22:34 -07:00
Antonio Scandurra
c126ff10a7 Checkpoint 2023-10-17 11:21:02 +02:00
Antonio Scandurra
bb348c1353 Checkpoint 2023-10-17 11:20:11 +02:00
Mikayla
162f625716 Adjust chat permisisons to allow deletion for channel admins 2023-10-17 02:16:17 -07:00
Antonio Scandurra
fb1e7eef6b Checkpoint 2023-10-17 11:08:48 +02:00
Antonio Scandurra
ac5b32c491 Checkpoint 2023-10-17 10:14:22 +02:00
Antonio Scandurra
b526fc070d Merge branch 'gpui2-text-wrap' into gpui2 2023-10-17 09:03:16 +02:00
Antonio Scandurra
88ae4679d1 Checkpoint 2023-10-17 09:03:01 +02:00
Antonio Scandurra
9e7a579365 Checkpoint 2023-10-17 08:57:20 +02:00
Antonio Scandurra
b040ae8d4d Checkpoint 2023-10-17 08:52:26 +02:00
Antonio Scandurra
c6e20aed9b Checkpoint 2023-10-17 08:32:33 +02:00
Nathan Sobo
695a24d8a7 Checkpoint 2023-10-17 08:26:12 +02:00
Conrad Irwin
b168bded1d New entitlements: (#3118)
Release Notes:

- Support Universal Links for Channel links
- Share credentials between Stable and Preview
2023-10-16 22:10:14 -06:00
Nathan Sobo
2472142532 Checkpoint 2023-10-17 06:09:03 +02:00
Nathan Sobo
bf49f55c95 Include length in run to not use tuples 2023-10-17 05:15:00 +02:00
Nathan Sobo
0df1eb71cb Use cloned 2023-10-17 05:08:56 +02:00
Conrad Irwin
c12f0d2697 Provisioning profiles for stable and preview 2023-10-16 20:38:10 -06:00
Conrad Irwin
6ffbc3a0f5 Allow pasting ZED urls in the command palette in development 2023-10-16 20:03:44 -06:00
KCaverly
500af6d775 progress on prompt chains 2023-10-16 18:47:10 -04:00
Conrad Irwin
2feb091961 Ensure that invitees do not have permissions
They have to accept the invite, (which joining the channel will do),
first.
2023-10-16 16:24:10 -06:00
Conrad Irwin
4e7b35c917 Make joining a channel as a guest always succeed 2023-10-16 15:14:13 -06:00
Marshall Bowers
c8b452d411 Merge branch 'gpui2-ui' into gpui2 2023-10-16 16:54:40 -04:00
Marshall Bowers
708034d1d3 Call is_toggled as a method 2023-10-16 15:55:43 -04:00
Max Brunsfeld
c66385f0f9 Add an empty state to the notification panel 2023-10-16 12:54:44 -07:00
Nate Butler
247728b723 Update indexing icon
Co-Authored-By: Kyle Caverly <22121886+KCaverly@users.noreply.github.com>
2023-10-16 15:53:29 -04:00
Max Brunsfeld
522b76e452 Merge branch 'main' into notifications 2023-10-16 12:37:52 -07:00
Nathan Sobo
3127c78bc7 Fix compile error 2023-10-16 20:19:04 +02:00
Nathan Sobo
938dd8b9ca Checkpoint 2023-10-16 20:16:35 +02:00
Nathan Sobo
847376cd8f WIP 2023-10-16 20:15:41 +02:00
Nathan Sobo
1a3650ef2a Get everything rendering again 2023-10-16 20:15:24 +02:00
Joseph T. Lyons
247cdb1e1a Fix telemetry-related crash on start up (#3131)
Fixes (hopefully)
[#2136](https://github.com/zed-industries/community/issues/2136).

Release Notes:

- N/A
2023-10-16 14:01:52 -04:00
Nate Butler
129273036a Add notifications panel to workspace UI structure 2023-10-16 13:11:52 -04:00
Nate Butler
97d77440e7 Simplify static panes for now 2023-10-16 13:07:15 -04:00
Joseph T. Lyons
75fbf2ca78 Fix telemetry-related crash on start up 2023-10-16 13:07:07 -04:00
KCaverly
40755961ea added initial template outline 2023-10-16 11:54:32 -04:00
KCaverly
29f45a2e38 clean up warnings 2023-10-16 10:02:11 -04:00
KCaverly
5e1e0b4759 remove print from prompts 2023-10-16 09:55:45 -04:00
KCaverly
d2e769027a catchup with main 2023-10-16 09:47:07 -04:00
Piotr Osiewicz
cc335db9e0 editor/language: hoist out non-generic parts of edit functions. (#3130)
This reduces LLVM IR size of editor (that's one of the heaviest crates
to build) by almost 5%.

LLVM IR size of `editor` before this PR: 3280386
LLVM IR size with `editor::edit` changed: 3227092
LLVM IR size with `editor::edit` and `language::edit` changed: 3146807

Release Notes:
- N/A
2023-10-16 13:17:44 +02:00
Piotr Osiewicz
6f4008ebab copilot: Propagate action if suggest_next is not possible. (#3129)
One of our users ran into an issue where typing "true quote" characters
(option-[ for „ and option-] for ‚) was not possible; I've narrowed it
down to a collision with Copilot's NextSuggestion and PreviousSuggestion
action default keybinds. I explicitly did not want to alter the key
bindings, so I've went with a more neutral fix - one that propagates the
keystroke if there's no Copilot action to be taken (user is not using
Copilot etc). Note however that typing true quotes while using a Copilot
is still not possible, as for that we'd have to change a keybind.

Fixes zed-industries/community#2072


Release Notes:
- Fixed Copilot's "Suggest next" and "Suggest previous" actions
colliding with true quotes key bindings (`option-[` and `option-]`). The
keystrokes are now propagated if there's no Copilot action to be taken
at cursor's position.
2023-10-15 17:27:36 +02:00
Max Brunsfeld
ff245c61d2 Reduce duplication in notification queries 2023-10-13 17:10:46 -07:00
Max Brunsfeld
cb7b011d6b Avoid creating duplicate invite notifications 2023-10-13 16:57:28 -07:00
Max Brunsfeld
5a0afcc835 Simplify notification serialization 2023-10-13 16:09:46 -07:00
Max Brunsfeld
83fb8d20b7 Remove contact notifications when cancelling a contact request 2023-10-13 16:09:46 -07:00
Conrad Irwin
f6f9b5c8cb Wire through public access toggle 2023-10-13 16:59:30 -06:00
Marshall Bowers
5e43c332f1 Merge branch 'gpui2-ui' into gpui2 2023-10-13 17:44:28 -04:00
Marshall Bowers
6891e86621 Add state to BufferSearch 2023-10-13 17:44:21 -04:00
Marshall Bowers
3c1ec2e9ca Add rudimentary UI for BufferSearch 2023-10-13 17:36:27 -04:00
Marshall Bowers
49caeeafce Merge branch 'gpui2-ui' into gpui2 2023-10-13 17:20:54 -04:00
Marshall Bowers
349ad7858b Add placeholder BufferSearch 2023-10-13 17:20:44 -04:00
Marshall Bowers
c70f220db3 Wire up buffer search toggle for EditorPane 2023-10-13 17:14:09 -04:00
Conrad Irwin
f8fd77b83e fix migration 2023-10-13 15:08:09 -06:00
Conrad Irwin
af11cc6cfd show warnings by default 2023-10-13 15:07:49 -06:00
Conrad Irwin
e20bc87152 Add some sanity checks for new user channel graph 2023-10-13 14:30:20 -06:00
Conrad Irwin
bb408936e9 Ignore old admin column 2023-10-13 14:08:40 -06:00
Conrad Irwin
e050d168a7 Delete some old code, reame ChannelMembers -> Members 2023-10-13 13:39:46 -06:00
Conrad Irwin
9c6f5de551 Use new get_channel_descendants for delete 2023-10-13 13:17:19 -06:00
Nate Butler
39e3ddb080 Update bell.svg 2023-10-13 15:00:32 -04:00
Nate Butler
603765732e Checkpoint 2023-10-13 14:50:37 -04:00
Nathan Sobo
297b6b282c Make all geometry types Default to support movement-based refinement 2023-10-13 12:41:00 -06:00
Max Brunsfeld
e590b43545 Merge branch 'main' into notifications 2023-10-13 11:31:53 -07:00
Max Brunsfeld
bc6ba5f547 Bump protocol version 2023-10-13 11:23:39 -07:00
Max Brunsfeld
8db86dcebf Connect notification panel to notification toasts 2023-10-13 11:21:45 -07:00
Conrad Irwin
a8e352a473 Rewrite get_user_channels with new permissions 2023-10-13 11:46:03 -06:00
Julia
2323fd17b0 Autocomplete docs (#3126)
Release Notes:

- Added documentation display for autocomplete items.
- Fixed autocomplete filtering blocking the Zed UI, causing hitches and
input delays with large completion lists.
- Fixed hover popup link not firing if the mouse moved a slight amount
while clicking.
- Added support for absolute path file links in hover popup and
autocomplete docs.
2023-10-13 13:26:45 -04:00
Antonio Scandurra
fedb787b4f WIP 2023-10-13 19:06:03 +02:00
Antonio Scandurra
90f226193c Checkpoint 2023-10-13 19:06:03 +02:00
Piotr Osiewicz
bfbe4ae4b4 Piotr/z 651 vue support (#3123)
Release Notes:

- Added Vue language support.
2023-10-13 18:58:59 +02:00
Marshall Bowers
e477fa7a93 Wire up call controls in the TitleBar 2023-10-13 12:46:35 -04:00
Marshall Bowers
f3679b37a2 Change TitleBar to a view 2023-10-13 12:21:51 -04:00
Nate Butler
b30b1d145c Refactor button rendering to use ThemeColor instead of direct theme calls 2023-10-13 11:47:13 -04:00
Nate Butler
e902d5d917 Add example NotificationToast to workspace 2023-10-13 11:47:05 -04:00
Nate Butler
8bd4107423 Fix toast contents not filling container 2023-10-13 11:46:48 -04:00
Nate Butler
7ba305e033 Hook up buttons in NotificationToast
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-10-13 11:03:59 -04:00
Nate Butler
caa0eb6e29 Add missing derive Element
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-10-13 10:47:39 -04:00
Nate Butler
c6d831a564 Update NotificationToast implementation and use in Workspace component 2023-10-13 10:35:30 -04:00
Nate Butler
943c02bf79 Refactor NotificationToast structure to include primary and secondary actions 2023-10-13 10:20:26 -04:00
Nate Butler
c32b081029 Add notification toast component and remove ToastVariant from toast.rs 2023-10-13 10:05:50 -04:00
Kirill Bulatov
16d9d77d88 Update diagnostics indicator when diagnostics are udpated (#3128)
Release Notes:

- Fixed diagnostics indicator not showing proper diagnostics count
2023-10-13 12:30:26 +03:00
Kirill Bulatov
803ab81eb6 Update diagnostics indicator when diagnostics are udpated 2023-10-13 12:13:18 +03:00
Kirill Bulatov
634202340b Remove zed -> ... -> semantic_index -> zed Cargo dependency cycle (#3127)
rust-analyzer complains about a bunch of dependency cycles:

```
stderr: [ERROR project_model::workspace] cyclic deps: zed(Idx::<CrateData>(791)) -> assistant(Idx::<CrateData>(35)), alternative path: assistant(Idx::<CrateData>(35)) -> search(Idx::<CrateData>(553)) -> semantic_index(Idx::<CrateData>(556)) -> zed(Idx::<CrateData>(791))
stderr: [ERROR project_model::workspace] cyclic deps: zed(Idx::<CrateData>(791)) -> breadcrumbs(Idx::<CrateData>(88)), alternative path: breadcrumbs(Idx::<CrateData>(88)) -> search(Idx::<CrateData>(553)) -> semantic_index(Idx::<CrateData>(556)) -> zed(Idx::<CrateData>(791))
stderr: [ERROR project_model::workspace] cyclic deps: zed(Idx::<CrateData>(791)) -> collab_ui(Idx::<CrateData>(129)), alternative path: collab_ui(Idx::<CrateData>(129)) -> feedback(Idx::<CrateData>(219)) -> search(Idx::<CrateData>(553)) -> semantic_index(Idx::<CrateData>(556)) -> zed(Idx::<CrateData>(791))
stderr: [ERROR project_model::workspace] cyclic deps: zed(Idx::<CrateData>(791)) -> feedback(Idx::<CrateData>(219)), alternative path: feedback(Idx::<CrateData>(219)) -> search(Idx::<CrateData>(553)) -> semantic_index(Idx::<CrateData>(556)) -> zed(Idx::<CrateData>(791))
stderr: [ERROR project_model::workspace] cyclic deps: zed(Idx::<CrateData>(791)) -> quick_action_bar(Idx::<CrateData>(480)), alternative path: quick_action_bar(Idx::<CrateData>(480)) -> assistant(Idx::<CrateData>(35)) -> search(Idx::<CrateData>(553)) -> semantic_index(Idx::<CrateData>(556)) -> zed(Idx::<CrateData>(791))
stderr: [ERROR project_model::workspace] cyclic deps: zed(Idx::<CrateData>(791)) -> search(Idx::<CrateData>(553)), alternative path: search(Idx::<CrateData>(553)) -> semantic_index(Idx::<CrateData>(556)) -> zed(Idx::<CrateData>(791))
stderr: [ERROR project_model::workspace] cyclic deps: zed(Idx::<CrateData>(791)) -> semantic_index(Idx::<CrateData>(556)), alternative path: semantic_index(Idx::<CrateData>(556)) -> zed(Idx::<CrateData>(791))
stderr: [ERROR project_model::workspace] cyclic deps: zed(Idx::<CrateData>(791)) -> terminal_view(Idx::<CrateData>(643)), alternative path: terminal_view(Idx::<CrateData>(643)) -> search(Idx::<CrateData>(553)) -> semantic_index(Idx::<CrateData>(556)) -> zed(Idx::<CrateData>(791))
stderr: [ERROR project_model::workspace] cyclic deps: zed(Idx::<CrateData>(791)) -> vim(Idx::<CrateData>(748)), alternative path: vim(Idx::<CrateData>(748)) -> search(Idx::<CrateData>(553)) -> semantic_index(Idx::<CrateData>(556)) -> zed(Idx::<CrateData>(791))
stderr: [ERROR project_model::workspace] cyclic deps: zed(Idx::<CrateData>(791)) -> welcome(Idx::<CrateData>(775)), alternative path: welcome(Idx::<CrateData>(775)) -> vim(Idx::<CrateData>(748)) -> search(Idx::<CrateData>(553)) -> semantic_index(Idx::<CrateData>(556)) -> zed(Idx::<CrateData>(791))
stderr: [ERROR project_model::workspace] cyclic deps: zed(Idx::<CrateData>(791)) -> assistant(Idx::<CrateData>(35)), alternative path: assistant(Idx::<CrateData>(35)) -> search(Idx::<CrateData>(553)) -> semantic_index(Idx::<CrateData>(556)) -> zed(Idx::<CrateData>(791))
stderr: [ERROR project_model::workspace] cyclic deps: zed(Idx::<CrateData>(791)) -> breadcrumbs(Idx::<CrateData>(88)), alternative path: breadcrumbs(Idx::<CrateData>(88)) -> search(Idx::<CrateData>(553)) -> semantic_index(Idx::<CrateData>(556)) -> zed(Idx::<CrateData>(791))
stderr: [ERROR project_model::workspace] cyclic deps: zed(Idx::<CrateData>(791)) -> collab_ui(Idx::<CrateData>(129)), alternative path: collab_ui(Idx::<CrateData>(129)) -> feedback(Idx::<CrateData>(219)) -> search(Idx::<CrateData>(553)) -> semantic_index(Idx::<CrateData>(556)) -> zed(Idx::<CrateData>(791))
stderr: [ERROR project_model::workspace] cyclic deps: zed(Idx::<CrateData>(791)) -> feedback(Idx::<CrateData>(219)), alternative path: feedback(Idx::<CrateData>(219)) -> search(Idx::<CrateData>(553)) -> semantic_index(Idx::<CrateData>(556)) -> zed(Idx::<CrateData>(791))
stderr: [ERROR project_model::workspace] cyclic deps: zed(Idx::<CrateData>(791)) -> quick_action_bar(Idx::<CrateData>(480)), alternative path: quick_action_bar(Idx::<CrateData>(480)) -> assistant(Idx::<CrateData>(35)) -> search(Idx::<CrateData>(553)) -> semantic_index(Idx::<CrateData>(556)) -> zed(Idx::<CrateData>(791))
stderr: [ERROR project_model::workspace] cyclic deps: zed(Idx::<CrateData>(791)) -> search(Idx::<CrateData>(553)), alternative path: search(Idx::<CrateData>(553)) -> semantic_index(Idx::<CrateData>(556)) -> zed(Idx::<CrateData>(791))
stderr: [ERROR project_model::workspace] cyclic deps: zed(Idx::<CrateData>(791)) -> semantic_index(Idx::<CrateData>(556)), alternative path: semantic_index(Idx::<CrateData>(556)) -> zed(Idx::<CrateData>(791))
stderr: [ERROR project_model::workspace] cyclic deps: zed(Idx::<CrateData>(791)) -> terminal_view(Idx::<CrateData>(643)), alternative path: terminal_view(Idx::<CrateData>(643)) -> search(Idx::<CrateData>(553)) -> semantic_index(Idx::<CrateData>(556)) -> zed(Idx::<CrateData>(791))
stderr: [ERROR project_model::workspace] cyclic deps: zed(Idx::<CrateData>(791)) -> vim(Idx::<CrateData>(748)), alternative path: vim(Idx::<CrateData>(748)) -> search(Idx::<CrateData>(553)) -> semantic_index(Idx::<CrateData>(556)) -> zed(Idx::<CrateData>(791))
stderr: [ERROR project_model::workspace] cyclic deps: zed(Idx::<CrateData>(791)) -> welcome(Idx::<CrateData>(775)), alternative path: welcome(Idx::<CrateData>(775)) -> vim(Idx::<CrateData>(748)) -> search(Idx::<CrateData>(553)) -> semantic_index(Idx::<CrateData>(556)) -> zed(Idx::<CrateData>(791))
```

so move the example into `zed` instead.
2023-10-13 10:35:35 +03:00
Kirill Bulatov
525ff6bf74 Remove zed -> ... -> semantic_index -> zed Cargo dependency cycle 2023-10-13 10:27:08 +03:00
Conrad Irwin
65a0ebf975 Update get_channel_participant_details to include guests 2023-10-12 21:36:21 -06:00
Conrad Irwin
da2b8082b3 Rename members to participants in db crate 2023-10-12 20:42:42 -06:00
Julia
ec4391b88e Add setting to disable completion docs 2023-10-12 22:08:47 -04:00
Conrad Irwin
a7db2aa39d Add check_is_channel_participant
Refactor permission checks to load ancestor permissions into memory
for all checks to make the different logics more explicit.
2023-10-12 19:59:50 -06:00
Julia
1c3ecc4ad2 Whooooops 2023-10-12 21:00:31 -04:00
Max Brunsfeld
034e9935d4 Remove old contact request notification mechanism, use notification instead 2023-10-12 17:42:32 -07:00
Max Brunsfeld
3241128840 Make notification db representation more flexible 2023-10-12 17:42:32 -07:00
Max Brunsfeld
fed3ffb681 Set up notification store for integration tests 2023-10-12 17:42:30 -07:00
Max Brunsfeld
1e1256dbdd Set RUST_LOG to info by default in zed-local script 2023-10-12 17:41:09 -07:00
Max Brunsfeld
69c65597d9 Fix use statement order 2023-10-12 17:41:09 -07:00
Max Brunsfeld
d1756b621f Start work on notification panel 2023-10-12 17:41:09 -07:00
Max Brunsfeld
50cf25ae97 Add notification doc comments 2023-10-12 17:41:09 -07:00
Max Brunsfeld
cf6ce0dbad Start work on storing notifications in the database 2023-10-12 17:41:07 -07:00
Julia
c4fc9f7ed8 Eagerly attempt to resolve missing completion documentation 2023-10-12 19:28:17 -04:00
Marshall Bowers
44a30e269e Restore elevation docs 2023-10-12 18:18:44 -04:00
Marshall Bowers
ef18aaa66f Merge branch 'main' into gpui2 2023-10-12 17:43:05 -04:00
Marshall Bowers
45f3a98359 Remove old ui and storybook crates (#3125)
This PR deletes the old `ui` and `storybook` crates in favor of their
newer variants that we'll be landing to `main` in the near future.

### Motivation

These crates are based off the old version of GPUI 2 (the `gpui2`
crate).

At this point we have since transitioned to the new version of GPUI 2
(the `gpui3` crate, currently still on the `gpui2` branch).

Having both copies around is confusing, so the old ones are going the
way of the dinosaurs.

Release Notes:

- N/A
2023-10-12 17:40:20 -04:00
Marshall Bowers
36bca4f0d6 Restore click events on Buttons using on_mouse_down 2023-10-12 16:56:48 -04:00
Marshall Bowers
6e5ad75c5c Use Workspace::view to construct the view 2023-10-12 16:52:32 -04:00
Marshall Bowers
79a61c28d7 Remove global WorkspaceState 2023-10-12 16:23:10 -04:00
Julia
d23bb3b05d Unbork markdown parse test by making links match 2023-10-12 16:18:54 -04:00
Max Brunsfeld
bac43ae38e Fix panic when following due to disconnected channel notes views (#3124)
In addition to fixing a panic, this makes it slightly more convenient to
re-open disconnected channel notes views. I didn't make it automatic,
but it will at least replace the previous, disconnected view.

Release Notes:

- Fixed a crash that sometimes occurred when following someone with a
disconnected channel notes view open.
2023-10-12 13:16:58 -07:00
Marshall Bowers
e900ea20b7 Fix toggling of left panel 2023-10-12 16:12:09 -04:00
Marshall Bowers
8496d02fe1 Hold the story view in the StoryWrapper 2023-10-12 16:11:59 -04:00
Marshall Bowers
fc94c4ea40 Render stories as Views 2023-10-12 16:06:54 -04:00
Marshall Bowers
c90d976d7a Remove debug logging in Element derive macro 2023-10-12 15:52:42 -04:00
Marshall Bowers
d320d3a8bf Remove hacky children 2023-10-12 15:50:09 -04:00
Marshall Bowers
24bab48043 Use new children approach for Toolbar 2023-10-12 15:47:26 -04:00
Max Brunsfeld
f5d6d7caca Mark channel notes as disconnected immediately upon explicitly signing out 2023-10-12 12:39:02 -07:00
Max Brunsfeld
85fe11ff11 Replace disconnected channel notes views when re-opening the notes 2023-10-12 12:38:23 -07:00
Marshall Bowers
30979caf25 Use new children approach for Panes and Toasts 2023-10-12 15:37:50 -04:00
Nathan Sobo
ce8533f83b Checkpoint 2023-10-12 13:27:46 -06:00
Mikayla
78432d08ca Add channel visibility columns and protos 2023-10-12 12:21:41 -07:00
Conrad Irwin
540436a1f9 Push role refactoring through RPC/client 2023-10-12 13:05:54 -06:00
Max Brunsfeld
2e5461ee4d Exclude disconnected channel views from following messages 2023-10-12 11:55:39 -07:00
Antonio Scandurra
2044ccdc0b WIP 2023-10-12 19:40:13 +02:00
Antonio Scandurra
ca35573ad5 WIP 2023-10-12 19:30:00 +02:00
Julia
85332eacbd Race completion filter w/completion request & make not block UI 2023-10-12 13:23:26 -04:00
Marshall Bowers
6dbe983461 Checkpoint: Back to a compiling state 2023-10-12 12:22:23 -04:00
Marshall Bowers
262f5886a4 Checkpoint 2023-10-12 12:18:35 -04:00
Julia
4688a94a54 Allow file links in markdown & filter links a bit aggressively 2023-10-12 12:11:27 -04:00
Marshall Bowers
207d843aee Fix issues in storybook2 2023-10-12 10:44:18 -04:00
Marshall Bowers
a6b872bb0c Temporarily disable click handlers 2023-10-12 10:44:11 -04:00
Marshall Bowers
8cd112110e Reconcile with upstream changes 2023-10-12 10:40:47 -04:00
Marshall Bowers
9581279919 Fix some merge errors 2023-10-12 10:27:50 -04:00
Marshall Bowers
002458f4c8 Merge branch 'gpui2' into gpui2-ui 2023-10-12 10:27:43 -04:00
Kirill Bulatov
a50977e0fd Add prettier support (#3122) 2023-10-12 17:13:10 +03:00
Kirill Bulatov
ef73bf799c Fix license issue 2023-10-12 16:26:28 +03:00
Kirill Bulatov
7aea95704e Revert unnecessary style changes 2023-10-12 16:17:41 +03:00
Antonio Scandurra
564a8bdc19 Checkpoint 2023-10-12 14:58:31 +02:00
Kirill Bulatov
09ef3ccf67 Fix tailwind prettier plugin discovery 2023-10-12 15:58:00 +03:00
Antonio Scandurra
1f84cdb88c Checkpoint 2023-10-12 14:49:06 +02:00
Kirill Bulatov
12d7d8db0a Make all formatting to happen on the client's buffers, as needed 2023-10-12 15:29:57 +03:00
Kirill Bulatov
1bfde4bfa2 Add more tests 2023-10-12 15:14:51 +03:00
Antonio Scandurra
80c0a6ead3 Checkpoint 2023-10-12 13:25:49 +02:00
Kirill Bulatov
7f4ebf50d3 Make the first prettier test pass 2023-10-12 13:30:49 +03:00
Kirill Bulatov
a528c6c686 Prettier server style fixes 2023-10-12 12:31:30 +03:00
Antonio Scandurra
23f11fcd5e Merge branch 'main' into gpui2 2023-10-12 10:55:17 +02:00
Nathan Sobo
3dad0d9811 Add group_active 2023-10-11 21:48:21 -06:00
Nathan Sobo
d920f7edc1 Add group hovers 2023-10-11 21:34:08 -06:00
Conrad Irwin
690d9fb971 Add a role column to the database and start using it
We cannot yet stop using `admin` because stable will continue writing
it.
2023-10-11 20:05:57 -06:00
Nathan Sobo
f37b83a0ea WIP 2023-10-11 17:18:39 -06:00
Nate Butler
12573ed2e7 Refine project panel, list item 2023-10-11 19:15:27 -04:00
Conrad Irwin
be1800884e Make collaboration warning more useful (#3119)
Release Notes:

- Fixed the titlebar upgrade UI to restart zed when an update is
available
2023-10-11 15:35:41 -06:00
Conrad Irwin
f6d0934b5d deep considered harmful 2023-10-11 15:17:46 -06:00
Nathan Sobo
93c233b1cf Checkpoint 2023-10-11 13:22:40 -06:00
Nathan Sobo
47b64a5074 Checkpoint 2023-10-11 12:51:56 -06:00
Julia
a09ee3a41b Fire markdown link on mouse down
Previously any amount of mouse movement would disqualify the mouse down
and up from being a click, being a drag instead, which is a long
standing UX issue. We can get away with just firing on mouse down here
for now
2023-10-11 14:39:34 -04:00
Joseph T. Lyons
d6fa06b3be collab 0.24.0 2023-10-11 13:51:01 -04:00
Julia
0cec0c1c1d Fixup layout 2023-10-11 13:41:58 -04:00
Nathan Sobo
e2da2b232e Checkpoint 2023-10-11 11:40:42 -06:00
Joseph T. Lyons
bdf1731db3 v0.109.x dev 2023-10-11 12:40:57 -04:00
Marshall Bowers
5477b87774 Hook up assistant panel 2023-10-11 12:38:06 -04:00
Marshall Bowers
7478e63ea0 Simplify state interactions 2023-10-11 12:32:05 -04:00
Marshall Bowers
922d1462a8 Merge branch 'gpui2-ui' of github.com:zed-industries/zed into gpui2-ui 2023-10-11 12:24:34 -04:00
Marshall Bowers
8f410d5e2e Add support for switching between the project and collab panels 2023-10-11 12:24:33 -04:00
Nate Butler
0d8c743dfe Refine project panel, list 2023-10-11 12:22:24 -04:00
Kirill Bulatov
e50f4c0ee5 Add prettier tests infrastructure 2023-10-11 19:13:28 +03:00
Marshall Bowers
b6a9c58994 Push language selector handler down into StatusBar 2023-10-11 12:11:22 -04:00
Marshall Bowers
382693a199 Adjust icon color based on whether the various components are open 2023-10-11 12:09:08 -04:00
Marshall Bowers
acf2c2c6a5 Add ability to toggle the terminal 2023-10-11 12:01:17 -04:00
Antonio Scandurra
006f840570 Checkpoint 2023-10-11 17:53:29 +02:00
Conrad Irwin
2d6725a41a Make collaboration warning more useful 2023-10-11 09:50:22 -06:00
Conrad Irwin
7c867b6e54 New entitlements:
* Universal links
* Shared keychain group (to make development easier)
2023-10-11 09:36:12 -06:00
Antonio Scandurra
457df8d3f3 Start and stop display link on the main thread 2023-10-11 16:38:54 +02:00
Antonio Scandurra
b6e4208ea8 Checkpoint 2023-10-11 15:08:28 +02:00
Antonio Scandurra
56fba5541a Checkpoint 2023-10-11 14:19:04 +02:00
Kirill Bulatov
4a88a9e253 Initialize prettier right after the buffer gets it language 2023-10-11 14:48:32 +03:00
Antonio Scandurra
a69dbafe3c Checkpoint 2023-10-11 12:47:19 +02:00
Antonio Scandurra
a9c69bf774 Checkpoint 2023-10-11 12:45:09 +02:00
Kirill Bulatov
986a516bf1 Small style fixes 2023-10-11 12:56:29 +03:00
Kirill Bulatov
9bf22c56cd Rebase fixes 2023-10-11 12:56:29 +03:00
Kirill Bulatov
b5705e079f Draft remote prettier formatting 2023-10-11 12:56:29 +03:00
Kirill Bulatov
2ec2036c2f Invoke remote Prettier commands 2023-10-11 12:56:29 +03:00
Kirill Bulatov
faf1d38a6d Draft local and remote prettier separation 2023-10-11 12:56:29 +03:00
Kirill Bulatov
6c1c7eaf75 Better detect Svelte plugins 2023-10-11 12:56:29 +03:00
Kirill Bulatov
2d5741aef8 Better prettier format logging 2023-10-11 12:56:29 +03:00
Kirill Bulatov
a9f80a603c Resolve prettier config before every formatting 2023-10-11 12:56:29 +03:00
Kirill Bulatov
658b58378e Properly use WorktreeId 2023-10-11 12:56:29 +03:00
Kirill Bulatov
8a807102a6 Properly support prettier plugins 2023-10-11 12:56:29 +03:00
Kirill Bulatov
afee29ad3f Do not clear cache for default prettiers 2023-10-11 12:56:29 +03:00
Kirill Bulatov
6ec3927dd3 Allow to configure default prettier 2023-10-11 12:56:29 +03:00
Kirill Bulatov
b109075bf2 Watch for prettier file changes 2023-10-11 12:56:29 +03:00
Kirill Bulatov
f4667cbc33 Resolve prettier config on server init 2023-10-11 12:56:29 +03:00
Kirill Bulatov
d021842fa1 Properly log pre-lsp prettier_server events 2023-10-11 12:56:29 +03:00
Kirill Bulatov
f42cb109a0 Improve prettier_server LSP names in the log panel 2023-10-11 12:56:29 +03:00
Kirill Bulatov
1b70e7d0df Before server startup, log to stderr 2023-10-11 12:56:29 +03:00
Kirill Bulatov
b687270207 Implement missing prettier_server clear method 2023-10-11 12:56:29 +03:00
Kirill Bulatov
06cac18d78 Return message id in prettier_server error responses 2023-10-11 12:56:29 +03:00
Kirill Bulatov
6cac58b34c Add prettier language servers to LSP logs panel 2023-10-11 12:56:29 +03:00
Kirill Bulatov
4b15a2bd63 Rebase fixes 2023-10-11 12:56:29 +03:00
Kirill Bulatov
e8409a0108 Even more generic header printing in prettier_server 2023-10-11 12:56:29 +03:00
Kirill Bulatov
39ad3a625c Generify prettier properties, add tabWidth 2023-10-11 12:56:29 +03:00
Kirill Bulatov
2a5b9b635b Better pass prettier options 2023-10-11 12:56:29 +03:00
Kirill Bulatov
e2056756ef Calculate the diff 2023-10-11 12:56:29 +03:00
Kirill Bulatov
6a8e3fd02d Add more parameters into prettier invocations 2023-10-11 12:56:29 +03:00
Kirill Bulatov
2a68f01402 Draft prettier_server formatting 2023-10-11 12:56:29 +03:00
Kirill Bulatov
dca93fb177 Initialize prettier_server.js wrapper along with default prettier 2023-10-11 12:56:29 +03:00
Kirill Bulatov
010bb73ac2 Use LSP-like protocol for prettier wrapper commands 2023-10-11 12:56:29 +03:00
Kirill Bulatov
bb2cc2d157 Async-ify prettier wrapper 2023-10-11 12:56:29 +03:00
Kirill Bulatov
86618a64c6 Require prettier argument and library in the wrapper 2023-10-11 12:56:29 +03:00
Kirill Bulatov
1ff17bd15d Install default prettier and plugins on startup 2023-10-11 12:56:29 +03:00
Kirill Bulatov
12ea12e4e7 Make language adapters able to require certain bundled formatters 2023-10-11 12:56:29 +03:00
Kirill Bulatov
4f956d71e2 Slightly better prettier settings and discovery 2023-10-11 12:56:29 +03:00
Kirill Bulatov
ce6b31d938 Make NodeRuntime non-static for prettier runner 2023-10-11 12:56:29 +03:00
Kirill Bulatov
a8387b8b19 Use proper NodeRuntime in the formatter interface 2023-10-11 12:56:28 +03:00
Kirill Bulatov
a420d9cdc7 Add prettier search 2023-10-11 12:56:28 +03:00
Kirill Bulatov
a8dfa01362 Prepare prettier file lookup code infra 2023-10-11 12:56:28 +03:00
Kirill Bulatov
92f23e626e Properly connect prettier lookup/creation methods 2023-10-11 12:56:28 +03:00
Kirill Bulatov
553abd01be Draft a project part of the prettier 2023-10-11 12:56:28 +03:00
Julia
eced842dfc Get started with a prettier server package
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-10-11 12:56:28 +03:00
Antonio Scandurra
b6a3d9ce59 Checkpoint 2023-10-11 11:03:08 +02:00
Antonio Scandurra
eebbc807e5 Checkpoint 2023-10-11 10:45:57 +02:00
Antonio Scandurra
0fb7364235 Checkpoint 2023-10-11 09:17:25 +02:00
Joseph T. Lyons
76191fe47d Fix Discord text truncation 2023-10-11 01:54:32 -04:00
Nathan Sobo
f1cc62c21f WIP 2023-10-10 22:49:47 -06:00
Nathan Sobo
f53b63eaf6 Checkpoint 2023-10-10 22:14:47 -06:00
Conrad Irwin
821997d372 Revert accidental build change 2023-10-10 19:59:57 -06:00
Conrad Irwin
85b76b1143 Don't wrap on paragraphs (#3094)
Release Notes:

- vim: `{` and `}` will no longer wrap around end of file
([#2116](https://github.com/zed-industries/community/issues/2116)).
2023-10-10 19:25:40 -06:00
Conrad Irwin
9004254fbf vim: Add shift-y (#3117)
Release Notes:

- vim: Add `Y` to copy line-wise (this copies vim's behaviour, which
differs from nvim's)
2023-10-10 19:25:32 -06:00
Conrad Irwin
1de9add304 vim: Add shift-y 2023-10-10 18:46:49 -06:00
Max Brunsfeld
7a39455af9 Fix inclusion of spurious views from other projects in FollowResponse (#3116)
A logic error in https://github.com/zed-industries/zed/pull/2993 caused
follow responses to sometimes contain extra views for other unshared
projects 😱 . These views would generally fail to deserialize on the
other end. This would create a broken intermediate state, where the
following relationship was registered on the server (and on the leader's
client), but the follower didn't have the state necessary for following
into certain views.

Release Notes:

- Fixed a bug where following would sometimes fail if the leader had
another unshared project open.
2023-10-10 15:53:11 -07:00
Max Brunsfeld
96d60eff23 Fix inclusion of spurious views from other projects in FollowResponse 2023-10-10 15:40:40 -07:00
Marshall Bowers
a69f93d214 Wire up toggling of project and chat panels 2023-10-10 18:35:20 -04:00
Marshall Bowers
8e1638b773 Add working toggle for LanguageSelector 2023-10-10 18:21:44 -04:00
Marshall Bowers
95ef61bc45 Thread click handler through from workspace to language selector 2023-10-10 18:02:08 -04:00
Marshall Bowers
c142676b20 Add click handlers to some of the buttons in the StatusBar 2023-10-10 17:26:53 -04:00
Marshall Bowers
be843227a1 Add on_click to IconButton 2023-10-10 17:26:33 -04:00
Marshall Bowers
48d9b49ada Wire up click handlers on Buttons 2023-10-10 17:19:18 -04:00
Mikayla Maki
19f774a4a4 Update channel rooms to be ephemeral (#3115)
This fixes a bug that was introduced by
https://github.com/zed-industries/zed/pull/3093, which assumed that
rooms for channels where ephemeral, by making rooms for channels
ephemeral.

Release Notes:

- N/A
2023-10-10 13:28:42 -07:00
Mikayla
d7d027bcf1 Rename release channel to enviroment 2023-10-10 13:23:03 -07:00
Joseph T. Lyons
e6228ca682 Slim down pull request template 2023-10-10 16:04:31 -04:00
Marshall Bowers
f2ee61553f Colocate element stories with their elements 2023-10-10 16:00:04 -04:00
Marshall Bowers
30088afa89 Colocate component stories with their components 2023-10-10 15:52:58 -04:00
Mikayla
40430cf01b Update channel rooms to be ephemeral
Remove redundant live kit initialization code
Fix bug in recent channel links changes where channel rooms would have the incorrect release set

co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
co-authored-by: Max <max@zed.dev>
2023-10-10 12:39:16 -07:00
Marshall Bowers
b1d88ced61 Add an example of colocating a story for a UI component with its definition 2023-10-10 15:30:16 -04:00
Marshall Bowers
5b7ca6435c Comment out overridden widths 2023-10-10 15:17:44 -04:00
Marshall Bowers
a6ae6b0752 Merge branch 'gpui2' into gpui2-ui 2023-10-10 15:12:59 -04:00
Nathan Sobo
61b8ad38bd Remove state erasure for now 2023-10-10 12:44:40 -06:00
Nathan Sobo
e714653478 Checkpoint 2023-10-10 12:42:44 -06:00
Nathan Sobo
d70b4f04f6 Checkpoint 2023-10-10 12:41:28 -06:00
Antonio Scandurra
9eff99de49 --amend 2023-10-10 20:02:34 +02:00
Antonio Scandurra
4855b8f3de WIP 2023-10-10 20:02:23 +02:00
Antonio Scandurra
84ad2cb827 Checkpoint 2023-10-10 19:48:32 +02:00
Antonio Scandurra
0e537cced4 Revert outline summarization (#3114)
This pull request essentially reverts #3067: we noticed that only using
the function signatures produces far worse results in codegen, and so
that feels like a regression compared to before. We should re-enable
this once we have a smarter approach to fetching context during codegen,
possibly when #3097 lands.

As a drive-by, we also fixed a longstanding bug that caused codegen to
include the final line of a selection even if the selection ended at the
start of the line.

Ideally, I'd like to hot fix this to preview so that it goes to stable
during the weekly release.

/cc: @KCaverly @nathansobo 

Release Notes:

- N/A
2023-10-10 19:20:54 +02:00
Antonio Scandurra
b366592878 Don't include start of a line when selection ends at start of line 2023-10-10 19:11:13 +02:00
Antonio Scandurra
5cf92980f0 Revert summarizing file content until we can be more intelligent about what we send
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-10-10 17:51:17 +02:00
Marshall Bowers
8f7f38536d Re-enable hover styles 2023-10-10 11:48:25 -04:00
Antonio Scandurra
97edec6e72 WIP 2023-10-10 17:31:42 +02:00
Marshall Bowers
40d58c9bc3 Use Self::State in children_any and child_any 2023-10-10 11:26:18 -04:00
Marshall Bowers
f76c9041bb Merge branch 'gpui2' into marshall/gpui2-playground 2023-10-10 11:24:45 -04:00
Conrad Irwin
66af1707a1 Add channel links (#3093)
Release notes:

- `mute_on_join` setting now defaults to false.
- Right click on a channel to "Copy Channel Link", these links work to
open Zed and auto-join the channel

Blocked on: https://github.com/zed-industries/zed.dev/pull/388
2023-10-10 08:53:50 -06:00
Antonio Scandurra
96fbf9fd06 Checkpoint 2023-10-10 16:47:09 +02:00
Julia
801af95a13 Make completion documentation scroll & fix accompanying panic from tag
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-10-10 10:08:29 -04:00
Julia
f5af5f7334 Avoid leaving selected item index past end of matches list
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-10-10 09:27:18 -04:00
Antonio Scandurra
48a12be538 WIP 2023-10-10 15:03:47 +02:00
Antonio Scandurra
012a7743ad Checkpoint 2023-10-10 14:43:55 +02:00
Antonio Scandurra
678235023f Checkpoint 2023-10-10 13:07:53 +02:00
Antonio Scandurra
a4afb72535 Checkpoint: beziers 2023-10-10 13:01:35 +02:00
Kirill Bulatov
1db24e5f2a Omit history files with path that does not exist on disk anymore (#3113) 2023-10-10 11:55:06 +02:00
Kirill Bulatov
639ae671ae Omit history files with path that does not exist on disk anymore 2023-10-10 12:26:48 +03:00
Julia
354882f2c0 Enable completion menu to resolve documentation when guest 2023-10-10 00:16:15 -04:00
Joseph T. Lyons
1a4e9ecfef Truncate Discord release note text (#3112)
Hopefully this works the first time 😅

Release Notes:

- N/A
2023-10-10 00:07:48 -04:00
Joseph T. Lyons
dcdd74dff4 Truncate Discord release note text 2023-10-10 00:00:57 -04:00
Conrad Irwin
ab050d1890 Use Horizontal ranges everywhere 2023-10-09 21:48:50 -06:00
Conrad Irwin
002e2cc42c Round better for up/down 2023-10-09 21:48:32 -06:00
Conrad Irwin
ef7e2c5d86 Get the project running! 2023-10-09 21:48:31 -06:00
Conrad Irwin
e7badb38e9 Refactor to pass a TextLayoutDetails around 2023-10-09 21:47:58 -06:00
Conrad Irwin
dacc8cb5f4 Begin to use pixels for column selection
For zed-industries/community#759
For zed-industries/community#1966

Co-Authored-By: Julia <floc@unpromptedtirade.com>
2023-10-09 21:47:58 -06:00
Conrad Irwin
a801a4aeef Remove some unnecessary Eqs 2023-10-09 21:47:58 -06:00
Nathan Sobo
fe60f264c4 Checkpoint 2023-10-09 21:46:49 -06:00
Nathan Sobo
dfdb691f73 Checkpoint 2023-10-09 21:30:14 -06:00
Nathan Sobo
9fe5836240 Move events module up 2023-10-09 21:19:56 -06:00
Nathan Sobo
8074e6b46a Add basic mouse event handling 2023-10-09 21:17:56 -06:00
Conrad Irwin
d4ef764305 Merge branch 'main' into links 2023-10-09 20:08:48 -06:00
Nathan Sobo
f763ed9a7e Checkpoint 2023-10-09 19:54:29 -06:00
Conrad Irwin
8922437fcd code review 2023-10-09 19:06:55 -06:00
Max Brunsfeld
6e98cd5aad More small following-related fixes (#3110) 2023-10-09 15:25:22 -07:00
Marshall Bowers
08f4576aa6 Rename helper style 2023-10-09 18:17:01 -04:00
Max Brunsfeld
1d29709c32 Avoid possible panic in Room::most_active_project
Participants' locations might momentarily reference projects that have already been unshared.
2023-10-09 15:04:01 -07:00
Marshall Bowers
7610028a89 Add a story showcasing z-index 2023-10-09 18:00:49 -04:00
Max Brunsfeld
bdcbf9b92e Add a Reconnect action, for simulating connection blips 2023-10-09 14:46:33 -07:00
Max Brunsfeld
b807b3c785 Handle participants' participant index changing
This normally doesn't happen, but it can happen if a participant
loses connection ungracefully, restarts their app, and then
explicitly joins again.
2023-10-09 14:45:19 -07:00
Max Brunsfeld
90b54a45e8 Log a warning when leader activates an unknown view 2023-10-09 14:29:45 -07:00
Kirill Bulatov
bb85d6f63e Detect file paths that end with : (#3109)
New rustc messages look like

```
thread 'tests::test_history_items_vs_very_good_external_match' panicked at crates/file_finder/src/file_finder.rs:1902:13:
assertion `left == right` failed: Only one history item contains collab_ui, it should be present and others should be filtered out
  left: 0
 right: 1
```

now and we fail to parse that `13:` bit properly, fix that.

One caveat is that we highlight the entire word including the trailing
`:`:
<img width="914" alt="image"
src="https://github.com/zed-industries/zed/assets/2690773/d653a8ff-3e6e-4e3d-b6ea-dad0c8db0f06">

this is unfortunate, but better than nothing (as now).
This is due to the fact, that we detect words with regex inside the
`terminal.rs` and send events to other place that's able to check paths
for existence (and whether that's a path at all), currently there's no
way to detect a path and sanitize it in `terminal.rs`

Release Notes:

- N/A
2023-10-09 23:16:03 +02:00
Marshall Bowers
0d903f4d0d Clean up theme loading 2023-10-09 17:00:10 -04:00
Kirill Bulatov
ba4f4e0a3e Detect file paths that end with :
New rustc messages look like

```
thread 'tests::test_history_items_vs_very_good_external_match' panicked at crates/file_finder/src/file_finder.rs:1902:13:
assertion `left == right` failed: Only one history item contains collab_ui, it should be present and others should be filtered out
  left: 0
 right: 1
```

now and we fail to parse that `13:` bit properly, fix that.
2023-10-09 23:55:58 +03:00
Marshall Bowers
312f3d2ab9 Change how the default theme gets determined 2023-10-09 16:53:28 -04:00
Max Brunsfeld
6b710dc146 Fix bug that allowed following multiple people in one pane (#3108)
I've also simplified the representation of a workspace's leaders, so
that it encodes in the type that there can only be one leader per pane.

Release Notes:

- Fixed a bug where you could accidentally follow multiple collaborators
in one pane at the same time.
2023-10-09 13:50:51 -07:00
Marshall Bowers
def67295e5 Add theme loading 2023-10-09 16:37:20 -04:00
Kirill Bulatov
0823a18cff Ignore history items' paths when matching search queries (#3107)
Follow-up of https://github.com/zed-industries/zed/pull/3059 

Before: 

![image](https://github.com/zed-industries/zed/assets/2690773/4eb2d2d1-1aa3-40b8-b782-bf2bc5f17b43)

After:

![image](https://github.com/zed-industries/zed/assets/2690773/5587d46b-9198-45fe-9372-114a95d4b7d6)

Release Notes:

- N/A
2023-10-09 22:35:11 +02:00
Max Brunsfeld
ca735ad70f Ensure there's only one leader per pane 2023-10-09 13:32:38 -07:00
Max Brunsfeld
af90077a6a Add failing test for switching leaders in a pane 2023-10-09 13:30:14 -07:00
Kirill Bulatov
9cba45910e Ignore history items' paths when matching search queries 2023-10-09 23:14:32 +03:00
Marshall Bowers
613973d2b1 Add support for switching between the two hardcoded themes 2023-10-09 15:52:57 -04:00
Max Brunsfeld
29ccdb3cd9 Unify the two local zed scripts, take a flag for an instance count (#3106)
This PR introduces a new script for running Zed against a local collab
server, called `script/zed-local`. This script replaces the two existing
scripts that we had for this purpose: `script/zed-with-local-servers`
and `script/start-local-collaboration`.

By default, the script starts one single instance of Zed, but you can
pass a numeric flag to start 1, 2, 3 or 4 instances. So to start up two
instances side by side, (like `start-local-collaboration` script), you'd
do this:

```
script/zed-local -2
```

But you can also start *three* (or even four) instances, each taking up
a quarter of the screen, like this:

```
script/zed-local -3
```

Like before, you can pass other arguments to the script, and they will
be passed through to the first zed instance.

Also, unlike the `start-local-collaboration` script, this script now
requires a call to GitHub to determine your GitHub username. It just
logs you in as Nathan by default, unless you set `ZED_IMPERSONATE`
explicitly.
2023-10-09 12:52:20 -07:00
Max Brunsfeld
1e4f5145cf Update docs to refer to new zed-local script 2023-10-09 12:49:12 -07:00
Max Brunsfeld
a0ab9fe56b Unify the 2 local zed scripts, take a flag for instance count 2023-10-09 12:40:36 -07:00
Conrad Irwin
fb57299a1d re-trigger build with new profile? 2023-10-09 13:40:22 -06:00
Conrad Irwin
162cb19cff Only allow one release channel in a call 2023-10-09 12:59:18 -06:00
Julia
7020050b06 Fix hover_popover.rs after bad rebase 2023-10-09 14:28:53 -04:00
Conrad Irwin
abfb4490d5 Focus the currently active project if there is one
(also consider your own projects in "most_active_projects")
2023-10-09 12:05:26 -06:00
Antonio Scandurra
7b610f8dd8 WIP 2023-10-09 19:50:48 +02:00
Marshall Bowers
8b3a357949 Add note about CSS hack 2023-10-09 13:39:08 -04:00
Marshall Bowers
f73708d725 Add a Toast in the bottom-right corner 2023-10-09 13:32:19 -04:00
Marshall Bowers
d3c79c7078 Add div.z_index 2023-10-09 13:19:32 -04:00
Antonio Scandurra
d889cdecde Checkpoint 2023-10-09 19:13:57 +02:00
Marshall Bowers
2654942b3c Use command modifier for example keybindings in CommandPalette 2023-10-09 12:51:57 -04:00
Marshall Bowers
ed2c8cdc25 Add strikethrough support back to Label 2023-10-09 12:33:52 -04:00
Marshall Bowers
19434afe0a Add back negative margins, now that they're supported again 2023-10-09 12:33:30 -04:00
Marshall Bowers
a7c4ae530d Update gpui3_macros::style_helpers! based on its gpui2 equivalent 2023-10-09 12:31:22 -04:00
Max Brunsfeld
b2d735e573 Always log panics (#2896)
I just panicked and wanted to see the cause, but forgot that panic files
get deleted when Zed uploads them.

Release Notes:

- Panics are now written to `~/Library/Logs/Zed/Zed.log`
2023-10-09 09:21:08 -07:00
Max Brunsfeld
044701e907 Add a crate-dep-graph script, remove a few unnecessary dependencies (#3103)
This was motivated by me trying to decide which crate I should put a
`NotificationStore` in.

Run `script/crate-dep-graph` to generate an SVG showing the dependency
graph of our `crates` folder, and open it in a web browser.

After running this command, I noticed a couple of dependencies that
didn't make sense and were easy to remove.

Current dependency graph:

![Screen Shot 2023-10-06 at 1 15 42
PM](https://github.com/zed-industries/zed/assets/326587/b5008235-498a-4562-a826-cc923898c052)
2023-10-09 09:20:06 -07:00
Marshall Bowers
42e9800bde Add Details component 2023-10-09 11:55:27 -04:00
Marshall Bowers
d956bd3743 Add RecentProjects component 2023-10-09 11:47:22 -04:00
Conrad Irwin
6084486dcd Code quality 2023-10-09 09:44:09 -06:00
Marshall Bowers
100a4731e2 Add ThemeSelector component 2023-10-09 11:44:08 -04:00
Marshall Bowers
000ae27aff Add LanguageSelector component 2023-10-09 11:39:42 -04:00
Marshall Bowers
06b0707aa9 Add MultiBuffer component 2023-10-09 11:36:09 -04:00
Marshall Bowers
ac93449788 Remove unused Arc import 2023-10-09 11:32:10 -04:00
Marshall Bowers
02d32de044 Add Toast component 2023-10-09 11:31:56 -04:00
Conrad Irwin
8f4d81903c Add "Copy Link" to channel right click menu 2023-10-09 09:30:00 -06:00
Marshall Bowers
333e3e4f01 Add ContextMenu component 2023-10-09 11:25:33 -04:00
Marshall Bowers
f7721d0523 Add CommandPalette component 2023-10-09 11:20:10 -04:00
Marshall Bowers
e5473fc51a Add Palette component 2023-10-09 11:15:50 -04:00
Marshall Bowers
a08ceadd1a Rename view_type to state_type 2023-10-09 11:11:03 -04:00
Marshall Bowers
dc2ddfb42c Add Keybinding component 2023-10-09 11:09:44 -04:00
Marshall Bowers
4eeed14d34 Add CollabPanel component 2023-10-09 11:04:53 -04:00
Conrad Irwin
5dbda70235 Fix ./script/bundle to allow passing key 2023-10-09 08:59:25 -06:00
Kirill Bulatov
38d53a6fe2 Bump curl-sys to fix Sonoma issues with it
See https://github.com/alexcrichton/curl-rust/issues/524
2023-10-09 17:09:58 +03:00
Antonio Scandurra
6a4c2a0d40 WIP 2023-10-09 16:02:55 +02:00
Joseph T. Lyons
77a932fe3b Add enable vim mode checkbox to welcome screen (#3105)
Had a user state that they didn't know how to enable vim mode and that
it was "almost a non-starter" for them. IMO, it is a big enough feature
to warrant being on the welcome screen.

<img width="968" alt="SCR-20231008-rnhj"
src="https://github.com/zed-industries/zed/assets/19867440/a189c646-1fa7-497c-b6d9-37cb1caa0492">

Release Notes:

- Added an `Enable vim mode` checkbox to the welcome screen
2023-10-08 21:27:31 -04:00
Joseph T. Lyons
4b2c24dd8c Add enable vim mode checkbox to welcome screen 2023-10-08 20:07:59 -04:00
Marshall Bowers
8814ea8241 Time compute_layout 2023-10-07 12:23:25 -04:00
Marshall Bowers
8f6649e29e Merge branch 'gpui2' into marshall/gpui2-playground 2023-10-07 12:16:48 -04:00
Marshall Bowers
73360d37f7 Merge branch 'main' into gpui2 2023-10-07 12:15:23 -04:00
Marshall Bowers
eb642551ac Add TitleBar component and wire up to the workspace 2023-10-07 12:10:39 -04:00
Marshall Bowers
f33d41af63 Add Facepile and PlayerStack components 2023-10-07 12:02:42 -04:00
Marshall Bowers
5e7954f152 Add TrafficLights component 2023-10-07 11:55:10 -04:00
Marshall Bowers
9e79ad5a62 Add ChatPanel component 2023-10-07 11:50:41 -04:00
Marshall Bowers
0dcbc47e15 Remove duplicate module declaration 2023-10-07 11:42:50 -04:00
Marshall Bowers
b8b8fe6120 Add Button component 2023-10-07 11:41:48 -04:00
Marshall Bowers
ff066ef177 Add EditorPane component and wire up in the workspace 2023-10-07 11:33:11 -04:00
Marshall Bowers
63e834ce73 Add Toolbar component 2023-10-07 11:21:09 -04:00
Marshall Bowers
b118e60160 Add Breadcrumb component 2023-10-07 11:18:06 -04:00
Marshall Bowers
00e8531898 Add TabBar component 2023-10-07 11:13:54 -04:00
Marshall Bowers
7c8d662315 Increase storybook window size 2023-10-07 11:09:21 -04:00
Marshall Bowers
2f6d67cad6 Update Cargo.lock 2023-10-07 10:56:21 -04:00
Marshall Bowers
f5e5b44bc1 Merge branch 'gpui2' into marshall/gpui2-playground 2023-10-07 10:54:17 -04:00
Marshall Bowers
f795177ab6 Fix icon paths 2023-10-07 10:51:19 -04:00
Marshall Bowers
a4bde421db Revert changes to gpui2 crate 2023-10-07 10:50:50 -04:00
Marshall Bowers
f6a4151f60 Merge branch 'main' into gpui2 2023-10-07 10:50:05 -04:00
Conrad Irwin
34b7537948 Add universal links support to mac platform 2023-10-06 23:15:37 -06:00
Conrad Irwin
66120fb97a Try universal link entitlement too 2023-10-06 22:25:00 -06:00
Mikayla
6de69de868 Remove change to linker args 2023-10-06 16:04:45 -07:00
Marshall Bowers
82577b4acc Add Terminal component 2023-10-06 18:50:49 -04:00
Conrad Irwin
f6bc229d1d More progress and some debug logs to remove 2023-10-06 16:48:29 -06:00
Marshall Bowers
8db7f7ed37 Add Tab component 2023-10-06 18:43:25 -04:00
Marshall Bowers
d5ffd4a1fb Add Pane and PaneGroup components 2023-10-06 18:37:28 -04:00
Marshall Bowers
b53579858a Add StatusBar component 2023-10-06 18:25:55 -04:00
Marshall Bowers
28d504d7d3 Add WorkspaceElement component 2023-10-06 18:19:12 -04:00
Conrad Irwin
63a230f92e Make joining on boot work 2023-10-06 16:11:45 -06:00
Marshall Bowers
56c2ac048d Add ProjectPanel component 2023-10-06 17:58:23 -04:00
Marshall Bowers
208d5df106 Add Buffer component 2023-10-06 17:47:10 -04:00
Marshall Bowers
d09f53c380 Add AssistantPanel component 2023-10-06 17:24:52 -04:00
Max Brunsfeld
f8ca86c6a7 Remove workspace -> channel dependency 2023-10-06 14:19:25 -07:00
Conrad Irwin
4128e2ffcb Fix panic if the host is not there. 2023-10-06 15:18:25 -06:00
Marshall Bowers
696aee3891 Add IconButton component 2023-10-06 17:16:00 -04:00
Marshall Bowers
bcad2f4e9e Move UI out of storybook2 and into ui2 2023-10-06 17:07:59 -04:00
Marshall Bowers
1cf5cdbeca Add ui2 crate 2023-10-06 16:52:05 -04:00
Marshall Bowers
8e94f3902b Merge branch 'marshall/merge-main-into-gpui2' into marshall/gpui2-playground 2023-10-06 16:47:40 -04:00
Max Brunsfeld
3412bb75be Remove call -> channel dependency 2023-10-06 13:39:10 -07:00
Max Brunsfeld
17925ed563 Remove unnecessary dependencies on client and rpc 2023-10-06 13:14:53 -07:00
Max Brunsfeld
43da36948b Add a crate-dep-graph script for showing the crate dependency graph 2023-10-06 13:14:39 -07:00
Marshall Bowers
88a6a41c7c Revert changes to gpui2 crate 2023-10-06 15:49:53 -04:00
Conrad Irwin
b58c42cd53 TEMP 2023-10-06 13:47:35 -06:00
Marshall Bowers
d37785c214 Fix icon paths 2023-10-06 15:46:02 -04:00
Marshall Bowers
b369a6dc2a Merge branch 'main' into marshall/merge-main-into-gpui2 2023-10-06 15:41:18 -04:00
Max Brunsfeld
9f32a6e209 collab 0.23.3 2023-10-06 11:25:46 -07:00
Max Brunsfeld
3f66caedfc Fix error in query for last N channel messages (#3100) 2023-10-06 11:24:34 -07:00
Joseph T. Lyons
1dd82df59e Use display name for release channel in panic events (#3101)
This was a mistake from long ago - something I've been meaning to fix
for a long time. All other events use `display_name()`, but panic
events, which leads to mistakes when filtering out `Zed Dev`, which
isn't the format that `dev_name()` returns. I'm adding a fix to zed.dev
as well:

- https://github.com/zed-industries/zed.dev/pull/393

so that the values are adjusted for all clients, not just ones with this
fix. I will correct the data in clickhouse, and adjust the queries in
metabase.

Release Notes:

- N/A
2023-10-06 14:20:06 -04:00
Joseph T. Lyons
81bc86be07 Use display name for release channel in panic events 2023-10-06 14:04:38 -04:00
Max Brunsfeld
663649a100 Fix error in query for last N channel messages 2023-10-06 10:58:34 -07:00
Marshall Bowers
5ee6814947 Fix compile errors 2023-10-06 13:54:37 -04:00
Marshall Bowers
65cd4f5838 Restore Sized bound on StyleHelpers 2023-10-06 13:45:56 -04:00
Marshall Bowers
7fd35d68bb Merge branch 'gpui2' into marshall/gpui2-playground 2023-10-06 13:45:11 -04:00
Marshall Bowers
ad8187b151 Merge branch 'main' into marshall/gpui2-playground 2023-10-06 13:33:04 -04:00
Joseph T. Lyons
1e557dddcc Add session id to panic events (#3098)
Release Notes:

- N/A
2023-10-06 13:32:45 -04:00
Julia
f18f870206 Re-enable language servers 2023-10-06 13:26:39 -04:00
Julia
9d8cff1275 If documentation included in original completion then parse up front 2023-10-06 13:26:39 -04:00
Julia
32a29cd4d3 Unbork info popover parsing/rendering and make better 2023-10-06 13:26:39 -04:00
Julia
8dca4c3f9a Don't need editor style to parse markdown 2023-10-06 13:26:39 -04:00
Julia
a881b1f5fb Wait for language to load when parsing markdown 2023-10-06 13:26:39 -04:00
Julia
ea6f366d23 If documentation exists and hasn't been parsed, do so at render and keep 2023-10-06 13:26:38 -04:00
Julia
b8876f2b17 Preparse documentation markdown when resolving completion 2023-10-06 13:26:38 -04:00
Julia
fe62423344 Asynchronously request completion documentation if not present 2023-10-06 13:26:38 -04:00
Julia
fcaf48eb49 Use completion item default data when provided 2023-10-06 13:26:38 -04:00
Julia
77ba25328c Most of getting completion documentation resolved & cached MD parsing 2023-10-06 13:26:38 -04:00
Julia
ca88717f0c Make completion docs scrollable 2023-10-06 13:26:38 -04:00
Julia
e8be14e5d6 Merge info popover's and autocomplete docs' markdown rendering 2023-10-06 13:26:38 -04:00
Julia
370a3cafd0 Add markdown rendering to alongside completion docs 2023-10-06 13:26:38 -04:00
Julia
1584dae9c2 Actually display the correct completion's doc 2023-10-06 13:26:38 -04:00
Julia
e802c072f7 Start hacking in autocomplete docs 2023-10-06 13:26:38 -04:00
Marshall Bowers
456baaa112 Mainline GPUI2 UI work (#3099)
This PR mainlines the current state of new GPUI2-based UI from the
`gpui2-ui` branch.

Included in this is a performance improvement to make use of the
`TextLayoutCache` when calling `layout` for `Text` elements.

Release Notes:

- N/A

---------

Co-authored-by: Nate Butler <iamnbutler@gmail.com>
Co-authored-by: Antonio Scandurra <me@as-cii.com>
2023-10-06 13:18:56 -04:00
Joseph T. Lyons
2c7e37e9ff Add session id to panic events 2023-10-06 12:32:20 -04:00
Conrad Irwin
2d99b327fc Don't wrap on paragraphs
For zed-industries/community#2116
2023-10-06 10:32:15 -06:00
Marshall Bowers
79ad5c08e4 Add profiling information for compute_layout 2023-10-06 10:48:25 -04:00
KCaverly
391179657c clean up redundancies in prompts and ensure tokens are being reserved for generation when filling semantic context 2023-10-06 16:43:19 +02:00
KCaverly
ecfece3ac4 catchup with main 2023-10-06 16:30:31 +02:00
KCaverly
ed548a0de2 ensure indexing is only done when permissioned 2023-10-06 16:08:36 +02:00
KCaverly
84553899f6 updated spacing for assistant context status icon 2023-10-06 15:43:28 +02:00
Antonio Scandurra
ca6eb5511c Checkpoint: underlines 2023-10-06 15:34:37 +02:00
Piotr Osiewicz
c46137e40d chore: Upgrade to Rust 1.73 (#3096)
Release Notes:
- N/A
2023-10-06 14:50:29 +02:00
Piotr Osiewicz
b391f5615b rust: Highlight async functions in completions (#3095)
Before (code in screenshot is from this branch,
`crates/zed/languages/rust.rs:179`):

![image](https://github.com/zed-industries/zed/assets/24362066/6b709f8c-1b80-4aaa-8ddc-8db9dbca5a5e)
Notice how the last 2 entries (that are async functions) are not
highlighted properly.
After:

![image](https://github.com/zed-industries/zed/assets/24362066/88337f43-b97f-4257-9c31-54c9023e8dbb)

This is slightly suboptimal, as it's hard to tell that this is an async
function - I guess adding an `async` prefix is not really an option, as
then we should have a prefix for non-async functions too. Still, at
least you can tell that something is a function in the first place. :)

Release Notes:
- Fixed Rust async functions not being highlighted in completions.
2023-10-06 14:43:03 +02:00
KCaverly
38ccf23567 add indexing on inline assistant opening 2023-10-06 08:46:40 +03:00
KCaverly
c0a1328532 fix spawn bug from calling 2023-10-06 08:30:54 +03:00
Nathan Sobo
65c7765c07 Checkpoint 2023-10-05 21:02:26 -06:00
Nathan Sobo
e99f6c03c1 Synchronize access when starting and stopping display links
Hoping this prevents panics we were observing when starting.
2023-10-05 20:46:26 -06:00
Mikayla
31062d424f make bundle script incremental when using debug or local builds 2023-10-05 16:56:44 -07:00
Max Brunsfeld
559433bed0 Fix panic when immediately closing a window while opening paths (#3092)
Fixes this panic that I've been seeing in Slack:


[example](https://zed-industries.slack.com/archives/C04S6T1T7TQ/p1696530575535779)


```
thread 'main' panicked at 'assertion failed: opened_items.len() == project_paths_to_open.len()'
crates/workspace/src/workspace.rs:3628
<backtrace::capture::Backtrace>::create
<backtrace::capture::Backtrace>::new
Zed::init_panic_hook::{closure#0}
std::panicking::rust_panic_with_hook
std::panicking::begin_panic_handler::{{closure}}
std::sys_common::backtrace::__rust_end_short_backtrace
_rust_begin_unwind
core::panicking::panic_fmt
core::panicking::panic
<workspace::Workspace>::new_local::{closure#0}::{closure#0}
```

I believe it was caused by a window being closed immediately, while it
was still loading some paths. There was a mismatch in expectation
between the `workspace::open_items` function (which contains this
assertion), and the `Workspace::load_workspace` method. That later
method can return an empty vector if the workspace handle is dropped
while it is executing.

Release Notes:

- Fixed a crash when closing a Zed window immediately after opening it
2023-10-05 16:28:23 -07:00
Max Brunsfeld
8fafae2cfa Fix panic when immediately closing a window while opening paths 2023-10-05 16:21:14 -07:00
Max Brunsfeld
b3c9473bc8 collab 0.23.2 2023-10-05 16:06:28 -07:00
Max Brunsfeld
b77c815bcd Fix bugs in handling mutual following (#3091)
This fixes some bugs in our following logic, due to our attempts to
prevent infinite loops when two people follow each other.

* Propagate all of leader's views to a new follower, even if those views
were originally created by that follower.
* Propagate active view changes to followers, even if the active view is
following that follower.
* Avoid redundant active view updates on the client.

Release Notes:

- Fixed bugs where it was impossible to follow someone into a view that
they previously following you into.
2023-10-05 15:16:58 -07:00
Conrad Irwin
13192fa03c Code to allow opening zed:/channel/1234
Refactored a bit how url arguments are handled to avoid adding too much
extra complexity to main.
2023-10-05 14:57:45 -07:00
Conrad Irwin
b258ee5f77 Fix ./script/bundle -l 2023-10-05 14:55:39 -07:00
Conrad Irwin
a63eccf188 Add url schemes to Zed 2023-10-05 14:55:39 -07:00
Mikayla Maki
37de4a9990 Add markdown parsing to channel chat (#3088)
TODO:
- [x] Add markdown rendering to channel chat
- [x] Unify (?) rendering logic between hover popover and chat
- [x] ~~Determine how to deal with document-oriented markdown like `#`~~
Unimportant until we want to do something special with `#channel`
- [x] Tidy up spacing and styles in chat panel

Release Notes:

- Added markdown rendering to channel chat
- Improved channel chat message style
- Fixed a bug where long chat messages would not soft wrap
2023-10-05 14:30:12 -07:00
Mikayla
c4870e1b6b re-unify markdown parsing between hover_popover and chat 2023-10-05 14:22:41 -07:00
Nathan Sobo
6f7c305308 Checkpoint 2023-10-05 14:42:29 -06:00
Max Brunsfeld
438dd42f7d Fix bugs in handling mutual following
* Propagate all of leader's views to a new follower, even if those views
  were originally created by that follower.
* Propagate active view changes to followers, even if the active view is
  following that follower.
* Avoid redundant active view updates on the client.
2023-10-05 13:28:46 -07:00
Mikayla
f57d563578 Improve chat rendering 2023-10-05 11:58:41 -07:00
Joseph T. Lyons
c8535440d3 Add session id (#3090)
Release Notes:

- N/A
2023-10-05 14:57:08 -04:00
Joseph T. Lyons
84ea34f918 Add session id 2023-10-05 14:50:48 -04:00
Mikayla
44ada52185 Fix bug where chat text wouldn't wrap to width 2023-10-05 11:06:29 -07:00
Conrad Irwin
78b1231386 Clear SelectionGoal on input (#3089)
Release Notes:

- `up` and `down` now go to the correct place after inserting
2023-10-05 09:57:36 -06:00
Antonio Scandurra
fe3ef08f39 Checkpoint! 2023-10-05 09:34:54 -06:00
Conrad Irwin
f1c743286d Clear SelectionGoal on input 2023-10-05 09:02:52 -06:00
Antonio Scandurra
657a25178d Checkpoint 2023-10-05 17:00:37 +02:00
KCaverly
0666fa80ac moved status to icon with additional information in tooltip 2023-10-05 16:49:25 +03:00
Antonio Scandurra
f3560caf93 Checkpoint 2023-10-05 15:34:57 +02:00
Antonio Scandurra
2e056e9b0b WIP 2023-10-05 15:30:47 +02:00
Antonio Scandurra
92bda1231e Use content mask for quad as well 2023-10-05 12:11:28 +02:00
KCaverly
ec1b4e6f85 added initial working status in inline assistant prompt 2023-10-05 13:01:11 +03:00
Antonio Scandurra
7643bd61fd Checkpoint 2023-10-05 10:59:50 +02:00
Antonio Scandurra
bf73b40529 Draw only once on next frame callbacks 2023-10-05 10:57:16 +02:00
Nathan Sobo
ed20397a2b Checkpoint 2023-10-05 00:13:17 -06:00
Nathan Sobo
1c70ca2214 Checkpoint 2023-10-05 00:08:45 -06:00
Nathan Sobo
77b9a7aa5a Checkpoint 2023-10-04 23:59:21 -06:00
Nathan Sobo
0d0c760d94 Checkpoint 2023-10-04 23:03:00 -06:00
Nathan Sobo
177e385bb9 Checkpoint: Fix a crash 2023-10-04 22:59:01 -06:00
Nathan Sobo
699a5d2944 Checkpoint 2023-10-04 20:35:24 -06:00
Mikayla
d298afba01 Create markdown text element and add to channel chat 2023-10-04 17:47:30 -07:00
Marshall Bowers
45d08c70f0 Add .when to Elements 2023-10-04 18:33:28 -04:00
Marshall Bowers
77feecc623 Add List component 2023-10-04 18:25:43 -04:00
Mikayla Maki
acffc7e7f0 Remove old code from notes icon click handler (#3085)
Release Notes:

- Fix clicking the notes icon when people are in the channel (preview
only)
2023-10-04 15:15:25 -07:00
Mikayla Maki
b0e56b7c54 107 channel touch ups (#3087)
Release Notes:

- Add user avatars to channel chat messages
- Group messages by sender
- Fix visual bugs in new chat and note buttons
2023-10-04 15:14:39 -07:00
Max Brunsfeld
df2fa87e6b collab 0.23.1 2023-10-04 15:12:17 -07:00
Max Brunsfeld
a27be35325 Ensure chat messages are retrieved in order of id (#3086)
Also, remove logic for implicitly marking chat messages as observed when
they are fetched. I think this is unnecessary, because the client always
explicitly acknowledges messages when they are shown.

Release Notes:

- Fixed a bug where chat messages were shown out of order (preview only)
2023-10-04 15:10:49 -07:00
Mikayla
2f3c3d510f Fix hit boxes and hover styles for new buttons
co-authored-by: conrad <conrad.irwin@gmail.com>
2023-10-04 14:44:50 -07:00
Max Brunsfeld
d09767a90b Ensure chat messages are retrieved in order of id 2023-10-04 14:43:53 -07:00
Conrad Irwin
427a857e9a Fix panic in increment (#3084)
Release Notes:

- Fixes a panic in vim when incrementing a non-number.
2023-10-04 15:39:24 -06:00
Conrad Irwin
e9842091e4 save tweaks (#3031)
- use SaveAll instead of Save
- TODO: fix where closing a multi-buffer gives a confusing save prompt
2023-10-04 15:38:07 -06:00
Marshall Bowers
332f3f5617 Merge branch 'gpui2' into marshall/gpui2-playground 2023-10-04 17:32:21 -04:00
Mikayla
73e78a2257 Adjust channel rendering to group related messages 2023-10-04 14:29:08 -07:00
Conrad Irwin
f7cd0e84f9 Remove old code from notes icon click handler 2023-10-04 15:18:26 -06:00
Conrad Irwin
a4e77af571 Fix panic in increment 2023-10-04 15:13:01 -06:00
Nathan Sobo
c8bc68c267 Checkpoint 2023-10-04 15:08:04 -06:00
Nathan Sobo
02d6b91b73 Checkpoint 2023-10-04 15:05:04 -06:00
Mikayla
5074bccae4 Add image avatars to channel messages 2023-10-04 14:04:02 -07:00
Conrad Irwin
7d94b0325f Fix renaming (#3083)
Release Notes:

- Fix bugs arising from saving an untitled buffer
2023-10-04 14:50:31 -06:00
Conrad Irwin
ff1722d307 Fix tracking newly saved buffers
Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
2023-10-04 14:44:21 -06:00
Nathan Sobo
e68b24f839 Checkpoint 2023-10-04 13:43:21 -06:00
Marshall Bowers
339ba7986f Add Avatar element 2023-10-04 15:34:14 -04:00
Joseph T. Lyons
6cb674a0aa collab 0.23.0 2023-10-04 15:01:38 -04:00
Joseph T. Lyons
6db47478cf v0.108.x dev 2023-10-04 15:00:53 -04:00
Mikayla Maki
01b45f4f23 Show when a channel resource changes (#3074)
This PR adds a mechanism for notifying the client when a channel note
has been edited or a message has been changed.

TODO: 
- [x] Fix infinite loop when opening the chat panel
- [x] Switch to client-side ack model of observation detection
- [x] Add client-side-only change detection (e.g. for when a channel
note is open locally but not focused)
- [x] Review implementation / query performance.
- [x] Fix lack of ACK on restart for channel buffers
- [x] remove channel note opening on click
- [x] Fix channel messages sent while chat channel is in the background
not showing the channel as changed.

Release Notes:

- N/A
2023-10-04 11:57:33 -07:00
Mikayla
4d61d01943 Add an RPC handler for channel buffer acks
co-authored-by: max <max@zed.dev>
2023-10-04 11:47:13 -07:00
Mikayla
dd0edcd203 Changed the on-click behavior of joining a channel to not open the chat, and only open 1 project instead of all projects
Co-authored-by: conrad <conrad.irwin@gmail.com>
Co-authored-by: max <max@zed.dev>
2023-10-04 11:46:08 -07:00
Antonio Scandurra
ebc80597d5 WIP 2023-10-04 20:09:55 +02:00
Antonio Scandurra
d28c81571c Checkpoint 2023-10-04 19:59:24 +02:00
Antonio Scandurra
dc9a260425 Checkpoint 2023-10-04 19:53:29 +02:00
Marshall Bowers
249e6fe637 Add Icon element 2023-10-04 13:46:45 -04:00
Marshall Bowers
e84b8747a1 Add storybook CLI 2023-10-04 13:33:28 -04:00
Mikayla
e548572f12 Fix channel messages test 2023-10-04 10:13:02 -07:00
Marshall Bowers
0323a60d85 Remove unneeded theme function
This also fixes the panic when trying to declare the `GPUIApplication` class.
2023-10-04 13:11:02 -04:00
Marshall Bowers
a05cbf8169 Begin setting up stories 2023-10-04 12:49:06 -04:00
Antonio Scandurra
5aa45607eb Checkpoint 2023-10-04 18:38:08 +02:00
Antonio Scandurra
133c3a330c Checkpoint 2023-10-04 17:59:29 +02:00
Antonio Scandurra
f9646208e9 Checkpoint 2023-10-04 17:48:28 +02:00
Marshall Bowers
4b793f44ef Wire up hacky children for Panel 2023-10-04 11:22:33 -04:00
Marshall Bowers
aae4f00a4b Render Panel 2023-10-04 10:58:23 -04:00
Marshall Bowers
366a4918c3 Fix icon paths 2023-10-04 10:52:39 -04:00
Antonio Scandurra
bc1801fb03 Checkpoint 2023-10-04 16:42:28 +02:00
Marshall Bowers
25cd12cf33 Fix icon name 2023-10-04 10:41:21 -04:00
Marshall Bowers
90e22da930 Render workspace 2023-10-04 10:37:29 -04:00
Marshall Bowers
e6c7e57711 Merge branch 'gpui2' into marshall/gpui2-playground 2023-10-04 10:33:40 -04:00
Antonio Scandurra
d385bc9cce Allow tinting images grayscale 2023-10-04 15:27:51 +02:00
Antonio Scandurra
1816ab95a0 Checkpoint: start rendering images 2023-10-04 15:03:21 +02:00
Antonio Scandurra
5c750b6880 Checkpoint: emojis rendering 2023-10-04 12:41:21 +02:00
Antonio Scandurra
cd1c137542 WIP 2023-10-04 11:53:20 +02:00
Antonio Scandurra
4cf2ba20c2 Checkpoint: render SVGs 2023-10-04 10:51:47 +02:00
Antonio Scandurra
a1ee2db6d1 Use Courier for now, to avoid panicking 2023-10-04 08:48:05 +02:00
Mikayla
db8096ccdc Fix most tests for new chat changes 2023-10-03 20:50:17 -07:00
Nathan Sobo
25a2554bdd Checkpoint 2023-10-03 21:23:32 -06:00
Mikayla
3bc7024f8b Fix unit test
co-authored-by: Conrad <conrad.irwin@gmail.com>
2023-10-03 20:03:57 -07:00
Mikayla
4ff80a7074 Fix a few mouse event id bugs and move facepile to the left
co-authored-by: conrad <conrad.irwin@gmail.com>
2023-10-03 19:45:33 -07:00
Mikayla
23ee8211c7 Lower frequency of popup warning when leaving a call
co-authored-by: conrad <conrad.irwin@gmail.com>
2023-10-03 19:30:05 -07:00
Nathan Sobo
1e0ff65337 Checkpoint 2023-10-03 20:19:59 -06:00
Nathan Sobo
da211bef96 Checkpoint 2023-10-03 20:04:17 -06:00
Max Brunsfeld
95342c8c33 Merge branch 'main' into channel-changes 2023-10-03 17:52:28 -07:00
Max Brunsfeld
61e0289014 Acknowledge channel notes and chat changes when views are active
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-10-03 17:40:10 -07:00
Max Brunsfeld
af09861f5c Specify uuid crate in the root Cargo.toml
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-10-03 17:39:24 -07:00
Nathan Sobo
7f9e3bc787 Checkpoint 2023-10-03 17:58:11 -06:00
Nathan Sobo
d995192dde Checkpoint: Get basic workspace rendering 2023-10-03 17:39:03 -06:00
Nathan Sobo
c57e19c8fa Checkpoint: Glyphs rendering how I'd like 2023-10-03 17:29:36 -06:00
Nathan Sobo
550d9a9f71 Checkpoint 2023-10-03 16:17:25 -06:00
Nathan Sobo
4208ac2958 WIP 2023-10-03 15:17:45 -06:00
Nathan Sobo
45429b5400 WIP 2023-10-03 14:25:29 -06:00
Nathan Sobo
d3916b84c9 Checkpoint 2023-10-03 13:55:53 -06:00
Conrad Irwin
55d2b9b3c9 join channels (#3082)
Release Notes:

- Clicking on a channel in the sidebar will now join the channel and
open the notes
- If you join a channel that already shared projects, you will join the
projects automatically and follow the host.
- Clicking on the current channel in the sidebar will re-open the notes.
- Chat can now be accessed from the right click menu of channels.


- (probably not worth mentioning) Various improvements to hover states
and tooltips in the collab ui; and if you click on a channel while in
another call, confirm before switching.
2023-10-03 13:54:11 -06:00
Nathan Sobo
3b27d41c72 Checkpoint 2023-10-03 13:52:10 -06:00
Conrad Irwin
044fb9e2f5 Confirm on switching channels 2023-10-03 13:45:48 -06:00
Mikayla
6007c8705c Upgrade SeaORM to latest version, also upgrade sqlite bindings, rustqlite, and remove SeaQuery
co-authored-by: Max <max@zed.dev>
2023-10-03 12:16:53 -07:00
Nathan Sobo
a8c1958c75 Checkpoint 2023-10-03 13:03:29 -06:00
Conrad Irwin
d696b394c4 Tooltips for contacts 2023-10-03 12:54:39 -06:00
Mikayla
32c4138758 Added db message and edit operation observation
Co-authored-by: Max <max@zed.dev>
2023-10-03 11:39:59 -07:00
Conrad Irwin
d8bfe77a3b Scroll so that collab panel is in good state for calls 2023-10-03 12:00:02 -06:00
Joseph T. Lyons
8b0969b698 Update cpu and memory event code (#3081)
Release Notes:

- N/A
2023-10-03 13:36:35 -04:00
Conrad Irwin
66dfa47c66 Update collab ui to join channels again 2023-10-03 11:36:01 -06:00
Joseph T. Lyons
b10255a6dd Update cpu and memory event code
Co-Authored-By: Julia <30666851+ForLoveOfCats@users.noreply.github.com>
2023-10-03 13:29:08 -04:00
Nathan Sobo
3698e89b88 Checkpoint 2023-10-03 11:16:42 -06:00
Antonio Scandurra
bfa211fb02 Checkpoint 2023-10-03 18:04:45 +02:00
Antonio Scandurra
dc40ac854a WIP 2023-10-03 17:53:44 +02:00
Antonio Scandurra
2b6d041cb6 Checkpoint 2023-10-03 17:36:12 +02:00
Antonio Scandurra
8a58733d91 Checkpoint 2023-10-03 16:53:49 +02:00
Antonio Scandurra
e49b411205 Checkpoint 2023-10-03 16:30:41 +02:00
KCaverly
933c21f3d3 add initial (non updating status) toast 2023-10-03 16:53:57 +03:00
KCaverly
f40d3e82c0 add user prompt for permission to index the project, for context retrieval 2023-10-03 16:26:08 +03:00
Antonio Scandurra
08464ee26e Checkpoint 2023-10-03 15:23:49 +02:00
Antonio Scandurra
12ba10bc2c Checkpoint 2023-10-03 14:48:08 +02:00
Nathan Sobo
dcaf4c905f Checkpoint 2023-10-03 05:57:15 -06:00
Nathan Sobo
6046ed4f5c Checkpoint 2023-10-03 05:51:59 -06:00
KCaverly
1a2756a232 start greedily indexing when inline assistant is started, if project has been previously indexed 2023-10-03 14:07:42 +03:00
KCaverly
ed894cc06f only render retrieve context button if semantic index is enabled 2023-10-03 12:09:35 +03:00
KCaverly
166ca2a227 catching up with main 2023-10-03 12:05:00 +03:00
Kyle Caverly
cf5d89d13c Leverage embeddings query to collapse syntax nodes if not selected (#3067)
Reverts zed-industries/zed#3049
2023-10-03 12:02:47 +03:00
KCaverly
9f160537ef move collapsed only matches outside item parent in embedding.scm 2023-10-03 11:56:45 +03:00
KCaverly
bfe76467b0 add retrieve context button to inline assistant 2023-10-03 11:19:54 +03:00
Conrad Irwin
18e7305b6d Change channel join behavior
- Clicking on a channel name now joins the channel if you are not in it
- (or opens the notes if you are already there).
- When joining a channel, previously shared projects are opened
  automatically.
- If there are no previously shared projects, the notes are opened.
2023-10-02 23:20:06 -06:00
Conrad Irwin
d9813a5bec show host in titlebar (#3072)
Release Notes:

- show host in the titlebar of shared projects
- clicking on faces in the titlebar will now always follow the person
(it used to toggle)
- clicking on someone in the channel panel will follow that person
- highlight the currently open project in the channel panel

- fixes a bug where sometimes following between workspaces would not
work
2023-10-02 21:02:02 -06:00
Conrad Irwin
d7867cd1e2 Add/fix mouse interactions in current call sidebar 2023-10-02 19:38:45 -06:00
Marshall Bowers
30afc8b1d2 WIP: Panel 2023-10-02 20:16:55 -04:00
Mikayla
32b4b4d24d Add message and operation ACK messages to protos 2023-10-02 17:10:03 -07:00
Joseph T. Lyons
7d32a717af Add memory and cpu events (#3080)
Release Notes:

- N/A
2023-10-02 19:42:49 -04:00
Joseph T. Lyons
892350fa2d Add memory and cpu events
Co-Authored-By: Julia <30666851+ForLoveOfCats@users.noreply.github.com>
2023-10-02 19:35:31 -04:00
Max Brunsfeld
0db4b29452 Avoid N+1 query for channels with new messages
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-10-02 16:22:28 -07:00
Marshall Bowers
74ac6eb8a3 Begin building out new ui crate in storybook2 2023-10-02 18:59:44 -04:00
Max Brunsfeld
d9d997b218 Avoid N+1 query for channels with notes changes
Also, start work on new timing for recording observed notes edits.

Co-authored-by: Mikayla <mikayla@zed.dev>
2023-10-02 15:58:34 -07:00
Max Brunsfeld
84c4db13fb Avoid spurious notifies in chat channel select
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-10-02 15:57:59 -07:00
Conrad Irwin
528fa5c57b Refactor to remove toggle_follow 2023-10-02 16:51:02 -06:00
Marshall Bowers
9a9a35bf40 Move Sized bound up onto StyleHelpers 2023-10-02 18:46:25 -04:00
Marshall Bowers
d14dc35efe Merge branch 'gpui2' into marshall/gpui2-playground 2023-10-02 18:36:22 -04:00
Conrad Irwin
27d784b23e Fix bug in following
Prior to this change you could only follow across workspaces when you
were heading to the first window.
2023-10-02 16:29:42 -06:00
Marshall Bowers
9e1f7c4c18 Mainline GPUI2 UI work (#3079)
This PR mainlines the current state of new GPUI2-based UI from the
`gpui2-ui` branch.

Release Notes:

- N/A

---------

Co-authored-by: Nate Butler <iamnbutler@gmail.com>
Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Co-authored-by: Nate <nate@zed.dev>
2023-10-02 18:20:47 -04:00
Marshall Bowers
77e67c19fe Fix deadlock when obtaining the font ID 2023-10-02 16:10:41 -04:00
Nathan Sobo
91582257fb WIP 2023-10-02 14:02:28 -06:00
Nathan Sobo
66ef5549e9 Checkpoint 2023-10-02 13:34:07 -06:00
Nathan Sobo
79e1e1a747 Checkpoint 2023-10-02 13:16:10 -06:00
Nathan Sobo
0b13c0a437 Checkpoint 2023-10-02 12:47:45 -06:00
Julia
08361eb84e Detach completion confirmation task when selecting with mouse (#3078)
Otherwise the spawn to resolve the additional edits never runs causing
autocomplete to never add imports automatically when clicking with the
mouse

Release Notes:

- Fixed auto-complete additional edits, such as auto-import, not
applying when selecting a completion with a mouse click.
2023-10-02 13:32:06 -04:00
Julia
3d68fcad0b Detach completion confirmation task when selecting with mouse
Otherwise the spawn to resolve the additional edits never runs causing
autocomplete to never add imports automatically when clicking with the
mouse
2023-10-02 13:18:49 -04:00
Conrad Irwin
7f44083a96 Remove unused function 2023-10-02 11:03:55 -06:00
Conrad Irwin
39af2bb0a4 Ensure notifications are dismissed
Before this change if you joined a project without clicking on the
notification it would never disappear.

Fix a related bug where if you have more than one monitor, the
notification was only dismissed from one of them.
2023-10-02 11:01:21 -06:00
KCaverly
e9637267ef add placeholder button for retrieving additional context 2023-10-02 19:50:57 +03:00
KCaverly
f20f096a30 searching the semantic index, and passing returned snippets to prompt generation 2023-10-02 19:15:59 +03:00
Conrad Irwin
9dc292772a Add a screen for gpui tests
Allows me to test notifications
2023-10-02 09:53:30 -06:00
Antonio Scandurra
bf5d9e3224 Sort matches before processing them 2023-10-02 17:50:52 +02:00
Antonio Scandurra
d70014cfd0 Summarize file in the background 2023-10-02 15:36:10 +02:00
Piotr Osiewicz
a785eb9141 auto-update: Link to the current release's changelog, not the latest one (#3076)
An user complained in zed-industries/community#2093 that we always link
to the latest release changelog, not the one that they've just updated
to.


Release Notes:
- Fixed changelog link in update notification always leading to the
latest release changelog, not the one that was updated to. Fixes
zed-industries/community#2093.
2023-10-02 15:24:09 +02:00
Antonio Scandurra
f52200a340 Prevent deploying the inline assistant when selection spans multiple excerpts 2023-10-02 15:21:58 +02:00
Antonio Scandurra
df7ac9b815 💄 2023-10-02 14:36:16 +02:00
Antonio Scandurra
64a55681e6 Summarize the contents of a file using the embedding query 2023-10-02 14:32:13 +02:00
Mikayla
1d5b665f13 Implement channel changes for messages 2023-10-01 22:32:11 -07:00
Mikayla
51cf6a5ff3 Add database implementation of channel message change tracking 2023-10-01 22:32:11 -07:00
Mikayla
e0ff7ba180 Add channel note indicator and clear changed status 2023-10-01 22:32:10 -07:00
Mikayla
9ba975d6ad Channel notifications from the server works 2023-10-01 22:30:21 -07:00
Mikayla
1469c02998 Add observed_channel_notes table and implement note diffing 2023-10-01 22:26:27 -07:00
Joseph T. Lyons
95e09dd2e9 Add Nushell support to venv activation (#3073)
This PR adds an option to run `activate.nu` in the automatic venv
activation code (relevant comment
[here](https://github.com/zed-industries/community/issues/2103#issuecomment-1742355651))

Release Notes:

- Added a `nushell` option to the
`terminal.detect_venv.on.activate_script` setting
([2103](https://github.com/zed-industries/community/issues/2103)).
2023-10-01 23:55:57 -04:00
Joseph T. Lyons
e5e63ed201 Add Nushell support to venv activation 2023-10-01 23:38:30 -04:00
Nathan Sobo
4212a45767 WIP 2023-09-30 10:01:59 -06:00
Nathan Sobo
ef01a64826 Fix infinite loop 2023-09-30 09:43:52 -06:00
Marshall Bowers
46b4118b9e Checkpoint: Things are running, but with a stack overflow 2023-09-29 22:57:17 -04:00
Marshall Bowers
c7fc5f3ab7 Checkpoint: Fix downcasting 2023-09-29 22:53:24 -04:00
Marshall Bowers
f50a23accd Adjust window dimensions
Since resizing freezes the window.
2023-09-29 21:55:34 -04:00
Marshall Bowers
43a1296150 Checkpoint: Storybook window showing 2023-09-29 21:51:27 -04:00
Marshall Bowers
3b38641f98 Fix stack overflow by removing Deref and DerefMut impls 2023-09-29 21:21:08 -04:00
Marshall Bowers
8cac89d17c Checkpoint: Compiling 2023-09-29 20:51:52 -04:00
Conrad Irwin
92bb9a5fdc Make following more good
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-09-29 17:59:19 -06:00
Marshall Bowers
963f179d7f Checkpoint: Cast through std::mem::transmute 2023-09-29 19:41:31 -04:00
Marshall Bowers
103183f494 WIP: Parameterize over thread 2023-09-29 19:20:18 -04:00
Conrad Irwin
1cfc2f0c07 Show host in titlebar
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-09-29 16:37:00 -06:00
Conrad Irwin
219715449d More logging on collab by default 2023-09-29 16:37:00 -06:00
Max Brunsfeld
f011a3df52 Allow following participants who aren't in the same project (#2993)
The goal of this PR is to make Following more intuitive.

### Old Behavior

Previously, following was scoped to a project. In order to follow
someone in a given window, the window needed to contain a shared
project, and the leader needed to be present in the project. Otherwise,
following failed.

### New Behavior

* You can always follow **any** participant in the current call, in any
pane of any window.
* When following someone in a project that you're both collaborating in,
it works the same as before.
* When following someone in an unshared project, or a project that they
don't have open, you'll only get updates about the leader's views that
don't belong to a project, such as channel notes views. When the leader
focuses a file in a different project, you'll get the "follow $LEADER to
their active project" indicator

### Todo

* [x] Change db schema and RPC protocol so a project id isn't required
for following
* [x] Change client to allow following into non-project items regardless
of the leader's project
* [x] Assign colors to users in a way that doesn't require users to be
in a shared project.
2023-09-29 15:18:05 -07:00
Max Brunsfeld
7adaa2046d Show current user as follower when following in unshared projects 2023-09-29 15:08:25 -07:00
Max Brunsfeld
948871969f Fix active view update when center pane is not focused 2023-09-29 14:37:28 -07:00
Mikayla Maki
57707a80e6 Refactor elixir LSP settings (#3071)
This PR is a bit of a last minute change, but I realized there was
actually a third player in the Elixir LSP space who wants support as
well,
[lexical](https://github.com/zed-industries/community/issues/1567). I
realized that the settings arrangement I shipped in this preview
precludes adding a third kind of LSP. I don't have the time to learn how
to fully support this LSP, but I thought I'd at least refactor how the
settings are represented before this hits stable.

Release Notes:

- Changed the new `"elixir": { "next": "on" }` setting to `"elixir": {
"lsp": "next_ls" }`. The `elixir.lsp` setting requires a full restart to
take effect. (Preview only)
2023-09-29 14:25:05 -07:00
Max Brunsfeld
55da5bc25d Switch .leader_replica_id -> .leader_peer_id 2023-09-29 14:16:38 -07:00
Max Brunsfeld
c718b810f6 Merge branch 'main' into allow-following-outside-of-projects 2023-09-29 14:15:33 -07:00
Max Brunsfeld
afd293ee87 Update active view when activating a window 2023-09-29 14:12:51 -07:00
Mikayla
752bc5dcdd Refactor elixir LSP settings 2023-09-29 14:12:50 -07:00
Max Brunsfeld
973f03e73e Fix bug in follower updates for non-project items 2023-09-29 14:09:14 -07:00
Max Brunsfeld
555c9847d4 Add ZED_ALWAYS_ACTIVE env var, use it in local collaboration script
This makes zed always behave as if the app is active, even if no window is focused.
It prevents the 'viewing a window outside of zed' state during collaboration.
2023-09-29 13:43:43 -07:00
Nathan Sobo
c1a35a29a8 WIP 2023-09-29 14:34:40 -06:00
Nathan Sobo
7a6c27cf24 WIP 2023-09-29 14:04:58 -06:00
Conrad Irwin
d9c1cf9874 vim: Fix accidental visual selection when following (#3068)
Release Notes:

- vim: Fix a bug where following could put you in visual mode
2023-09-29 13:59:59 -06:00
Mikayla Maki
1155f1b0e1 Add support for the TextDocumentSyncKind LSP option (#3070)
fixes https://github.com/zed-industries/community/issues/2098

Release Notes:

- Fixed a bug in Zed's LSP implementation when using Next LS.
2023-09-29 12:25:37 -07:00
Nathan Sobo
dcc314f088 Checkpoint 2023-09-29 13:22:53 -06:00
Mikayla
31ff5bffd6 Fix tests relying on off-spec behavior 2023-09-29 12:19:58 -07:00
Mikayla
4887ea3563 Add support for the TextDocumentSyncKind LSP options 2023-09-29 12:05:21 -07:00
Kyle Caverly
dbaaf4216d add scheme for full parseable files in semantic index (#3069)
add scheme as a parseable file type in semantic index.
Each file will operate as a single embedding, in which no real scheme
syntax or tree-sitter level data is stored.

Release Notes:

- Added scheme to Semantic Index
2023-09-29 14:42:15 -04:00
Antonio Scandurra
53c25690f9 WIP: Use a different approach to codegen outline 2023-09-29 20:37:07 +02:00
KCaverly
3c12e711a4 add scheme for full parseable files in semantic index 2023-09-29 14:35:02 -04:00
Conrad Irwin
9b7bd4e9ae vim: Fix accidental visual selection when following 2023-09-29 12:08:25 -06:00
Max Brunsfeld
026b3a1d0f Remove uneeded Workspace::project_remote_id_changed method 2023-09-29 08:54:23 -07:00
Antonio Scandurra
d9c08de58a Revert "Revert "leverage file outline and selection as opposed to entire file"" 2023-09-29 17:15:26 +02:00
Marshall Bowers
c379a6f2fb ui: Fix glyph used for option key in Keybinding (#3066)
This PR fixes the glyph used for the option key in the new `Keybinding`
component.

Same fix as in #3065, but applied to the new `Keybinding` component so
that we don't regress when switching to GPUI2.

<img width="750" alt="Screenshot 2023-09-29 at 10 50 15 AM"
src="https://github.com/zed-industries/zed/assets/1486634/8c6147e9-fa05-4804-954c-b8e3b98cbdf0">

Release Notes:

- N/A
2023-09-29 11:02:35 -04:00
Piotr Osiewicz
488a3eeace ui: Mirror option key in keybindings (#3065)
![image](https://github.com/zed-industries/zed/assets/24362066/94731737-a21a-4cef-a445-eb855f1a4d3e)

![image](https://github.com/zed-industries/zed/assets/24362066/e879ec9a-70aa-4989-923f-4cca18d01587)

Release Notes:

- Fixed option key's appearance in keybindings
2023-09-29 16:45:49 +02:00
Antonio Scandurra
4dd9c9e2b9 Introduce the ability to include or exclude warnings from project diagnostics (#3056)
![CleanShot 2023-09-27 at 18 09
37](https://github.com/zed-industries/zed/assets/482957/317d31e4-81f8-44d8-b94f-8ca7150d3fd2)

Release Notes:

- Added the ability to exclude warnings from project diagnostics. By
default, they will be on but they can be disabled temporarily by
clicking on the warnings icon. The default behavior can be changed by
changing the new `diagnostics.include_warnings` setting.
2023-09-29 13:13:04 +01:00
Max Brunsfeld
ca0a4bdf8e Introduce a WorkspaceStore for handling following 2023-09-28 18:58:52 -07:00
Marshall Bowers
247c7eff14 storybook: Fix kitchen sink story (#3064)
This PR fixes the kitchen sink story in the storybook.

Included are some additional changes that make it so the kitchen sink is
automatically populated by all of the defined stories.

Release Notes:

- N/A
2023-09-28 21:22:50 -04:00
Max Brunsfeld
837ec5a27c Remove stray file 2023-09-28 17:14:53 -07:00
Max Brunsfeld
5a15692589 🎨 Workspace::leader_updated 2023-09-28 17:13:10 -07:00
Max Brunsfeld
0058702749 Remove unused db query method 2023-09-28 17:13:10 -07:00
Max Brunsfeld
e34ebbc665 Remove unused dependencies on theme 2023-09-28 17:13:10 -07:00
Max Brunsfeld
38a9e6fde1 Fix removal of followers on Unfollow 2023-09-28 16:46:43 -07:00
Marshall Bowers
f26ca0866c Mainline GPUI2 UI work (#3062)
This PR mainlines the current state of new GPUI2-based UI from the
`gpui2-ui` branch.

Release Notes:

- N/A

---------

Co-authored-by: Nate Butler <iamnbutler@gmail.com>
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-authored-by: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Co-authored-by: Nate <nate@zed.dev>
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-09-28 19:36:21 -04:00
Conrad Irwin
e7ee8a95f6 vim: Fix some dw edge cases (#3058)
Release Notes:

- vim: Fix `dw` on the last word of a line, and on empty lines.
2023-09-28 15:32:29 -06:00
Conrad Irwin
91adefedfa vim keybinding updates (#3057)
Release Notes:

- vim: Add ctrl-i to go forward
([#1732](https://github.com/zed-industries/community/issues/1732)).
ctrl-o was already supported.
- vim: Add `g <space>` to open the current snippet in its own file.
- vim: Escape will now return to normal mode even if completion menus
are open (use `ctrl-x ctrl-z` to hide menus, as in vim).
- vim: Add key bindings for Zed's various completion mechanisms:
- - `ctrl-x ctrl-o` to open the completion menu,
- -  `ctrl-x ctrl-l` to open the LSP action menu,
- - `ctrl-x ctrl-c` to trigger Copilot (requires configuring copilot),
- - `ctrl-x ctrl-a` to trigger the inline Assistant (requires
configuring openAI),

NOTE: we should add these to the docs before shipping 0.107 to stable.
2023-09-28 15:32:21 -06:00
Conrad Irwin
2f5eaa8475 vim increment (#3054)
- vim: add ctrl-a/ctrl-x for increment/decrement
2023-09-28 15:32:11 -06:00
Joseph T. Lyons
da964fae93 Enable semantic_index by default (#3061)
Release Notes:

- Enabled the `semantic_index` setting by default.
2023-09-28 17:24:00 -04:00
Max Brunsfeld
e9c1ad6acd Undo making project optional on stored follower states
Following works without a project, but following in unshared projects does
not need to be replicated to other participants.
2023-09-28 14:21:44 -07:00
Joseph T. Lyons
f965ee9b1b Enable semantic_index by default 2023-09-28 17:17:26 -04:00
Max Brunsfeld
ce940da8e9 Fix errors from assuming all room_participant rows had a non-null participant_index
Rows representing pending participants have a null participant_index.

Co-authored-by: Conrad <conrad@zed.dev>
2023-09-28 12:03:53 -07:00
Max Brunsfeld
a8b35eb8f5 Merge branch 'main' into allow-following-outside-of-projects 2023-09-28 11:58:28 -07:00
Max Brunsfeld
0c95e5a6ca Fix coloring of local selections when following
Co-authored-by: Conrad <conrad@zed.dev>
2023-09-28 11:37:47 -07:00
Max Brunsfeld
0f39b63801 Rename color_index to participant_index
Co-authored-by: Conrad <conrad@zed.dev>
2023-09-28 11:37:22 -07:00
Max Brunsfeld
545b5e0161 Assign unique color indices to room participants, use those instead of replica_ids
Co-authored-by: Conrad <conrad@zed.dev>
Co-authored-by: Antonio <antonio@zed.dev>
2023-09-28 11:06:09 -07:00
Joseph T. Lyons
3cf7164a54 Fix text transformation commands for multiple line, single selection cases (#3060)
If you highlight the following block of text (with a single selection):

```
The quick brown
fox jumps over
the lazy dog
```

and run `editor: convert to upper camel case`, you'll get:

```
TheQuickBrown
foxJumpsOver
theLazyDog
```

instead of:

```
TheQuickBrown
FoxJumpsOver
TheLazyDog
```

The same thing happens for `editor: convert to title case`. This happens
because [`to_case` crate](https://crates.io/crates/convert_case) doesn't
allow the user to define '\n' as a boundary. I wanted to fix this at the
lib level, so I filled [an
issue](https://github.com/rutrum/convert-case/issues/16) but I never
heard back. What's strange is VS Code and Sublime I think both exhibit
the same output as we do currently, but I don't personally think this
feels right (happy to hear opposing opinions). I'm just doing the naive
thing to hack around this limitation of the `to_case` crate.

I did some testing and it seems I only need to adjust `editor: convert
to title case` and `editor: convert to upper camel case`. The way the
other transformations are implemented in `to_case` don't seem to have
this issue.

Release Notes:

- Fixed a bug where running certain text transfomration commands on a
single selection covering multiple lines would not transform all
selected lines as expected.
2023-09-28 14:04:17 -04:00
Nathan Sobo
3f50779a17 Checkpoint 2023-09-28 12:02:52 -06:00
Kirill Bulatov
a8188a2f33 Improve file finder ergonomics (#3059)
Deals with https://github.com/zed-industries/community/issues/2086
Part of https://github.com/zed-industries/community/issues/351

Initial:
<img width="585" alt="Screenshot 2023-09-28 at 09 50 05"
src="https://github.com/zed-industries/zed/assets/2690773/e0149312-dfe3-4b7c-948c-0f593d6f540c">
First query letter input (only two history items match that, both are
preserved on top, with their order preserved also)
<img width="603" alt="Screenshot 2023-09-28 at 09 50 08"
src="https://github.com/zed-industries/zed/assets/2690773/85ab2f4c-bb9c-4811-b8b0-b5c14a370ae2">
Second query letter input, no matching history items:
<img width="614" alt="Screenshot 2023-09-28 at 09 50 11"
src="https://github.com/zed-industries/zed/assets/2690773/6d380403-a43c-4f00-a05b-88f43f91fefb">
Remove second query letter, history items match again and pop to the
top:
<img width="574" alt="Screenshot 2023-09-28 at 09 50 15"
src="https://github.com/zed-industries/zed/assets/2690773/5981ca53-6bc8-4305-ae36-27144080e1a2">


* allows `file_finder::Toggle` (cmd-p by default) to cycle through file
finder items (ESC closes the modal still)
* on query typing, preserve history items that match the query and keep
them on top, with their ordering preserved
* show history items' matched letters

Release Notes:

- Improve file finder ergonomics: allow cycle through items with the
toggle action, preserve matching history items on query input
2023-09-28 19:53:09 +03:00
Kirill Bulatov
d30385f07c Show path matches inside history items matching the query 2023-09-28 09:49:25 -07:00
Kirill Bulatov
1b5ff68c43 Show matching search history whenever possible 2023-09-28 09:34:20 -07:00
Kirill Bulatov
97eabe6f81 Add tests 2023-09-28 09:00:25 -07:00
Kirill Bulatov
57a95d1799 Preserve matching history items and their order 2023-09-28 06:55:49 -07:00
Kirill Bulatov
541dd994a9 Cycle file finder entries on cmd-p 2023-09-28 06:55:49 -07:00
Piotr Osiewicz
81a107f503 assets: Add keybinds to replace (#3055)
Release Notes:

- N/A
2023-09-28 13:04:14 +02:00
Nathan Sobo
5ab1034698 Checkpoint 2023-09-28 01:16:47 -06:00
Nathan Sobo
13ba450c4c Checkpoint 2023-09-28 00:46:15 -06:00
Nathan Sobo
c5470d4050 Checkpoint 2023-09-27 23:24:07 -06:00
Nathan Sobo
7e49c7d782 Checkpoint 2023-09-27 23:19:32 -06:00
Nathan Sobo
769a04517f Checkpoint - No warnings 2023-09-27 23:10:22 -06:00
Conrad Irwin
768c991909 vim: Fix some dw edge cases 2023-09-27 23:09:09 -06:00
Nathan Sobo
1ee70a0146 Checkpoint 2023-09-27 23:05:39 -06:00
Nathan Sobo
8be8047b8d Checkpoint 2023-09-27 22:02:48 -06:00
Conrad Irwin
51b24bbaf3 Add vim-style completion bindings: 2023-09-27 21:29:18 -06:00
Conrad Irwin
2cb320e246 Escape returns to normal mode even if completion is open
For zed-industries/community#1746
2023-09-27 21:28:30 -06:00
Nathan Sobo
7524f7fbe8 Checkpoint 2023-09-27 21:25:06 -06:00
Nathan Sobo
9fefb1d898 Checkpoint 2023-09-27 21:14:09 -06:00
Conrad Irwin
73fc1c1c56 Add g space for option-enter
vimify all the things
2023-09-27 21:05:58 -06:00
Conrad Irwin
d1baff1743 Add ctrl-i to go forward
For zed-industries/community#1732
2023-09-27 21:04:13 -06:00
Conrad Irwin
dd1cf5c3cf vim: add ctrl-a/ctrl-x
For zed-industries/community#1411
For zed-industries/community#619
2023-09-27 19:49:31 -06:00
Conrad Irwin
9246c11c35 Don't prompt to save unchanged files (#3053)
- don't prompt to save a set of unchanged files when closing
(preview-only)
2023-09-27 19:20:08 -06:00
Antonio Scandurra
0e6002dca2 Fix tests 2023-09-27 18:19:35 -06:00
Antonio Scandurra
78908bc5cb Introduce a new include_warnings setting under diagnostics 2023-09-27 18:08:08 -06:00
Nathan Sobo
49672bfc5f Checkpoint 2023-09-27 17:51:12 -06:00
Antonio Scandurra
f603d682cd Add an include/exclude warnings toggle in project diagnostics 2023-09-27 17:47:19 -06:00
Nathan Sobo
b364d404a9 Checkpoint 2023-09-27 17:25:04 -06:00
Nathan Sobo
96f9c67e77 Checkpoint 2023-09-27 17:17:30 -06:00
Conrad Irwin
6cebcac805 fix tests 2023-09-27 17:02:47 -06:00
Conrad Irwin
3573896fe0 Don't prompt to save unchanged files 2023-09-27 16:07:35 -06:00
Nathan Sobo
e9a84a21e4 Checkpoint 2023-09-27 15:35:51 -06:00
Conrad Irwin
25429f760c ctrl-a/x for vim 2023-09-27 12:32:01 -06:00
Joseph T. Lyons
ece4875973 v0.107.x dev 2023-09-27 12:26:48 -04:00
Kyle Caverly
2c0547079a Revert "leverage file outline and selection as opposed to entire file" (#3049)
Reverts zed-industries/zed#3040
2023-09-27 12:21:11 -04:00
Kyle Caverly
b3b3a56164 Revert "leverage file outline and selection as opposed to entire file" 2023-09-27 12:21:03 -04:00
Kyle Caverly
4242b45646 Revert "removed stale dbg in assistant from main" (#3048)
Reverts zed-industries/zed#3046
2023-09-27 12:19:54 -04:00
Kyle Caverly
cab80cbe9d Revert "removed stale dbg in assistant from main" 2023-09-27 12:19:44 -04:00
Julia
d671a8a21d Bump update notification size back up (#3047)
Regressed:
<img width="422" alt="CleanShot 2023-09-27 at 11 07 37@2x"
src="https://github.com/zed-industries/zed/assets/30666851/636d7bec-4518-45e6-87bd-84b45dda28e1">

Fixed:
<img width="424" alt="CleanShot 2023-09-27 at 11 04 13@2x"
src="https://github.com/zed-industries/zed/assets/30666851/186a1d49-4daf-4211-891a-dacfd1144311">

Release Notes:

- N/A
2023-09-27 11:25:16 -04:00
Julia
6b88ac9c32 Bump update notification size back up 2023-09-27 11:04:25 -04:00
Piotr Osiewicz
6ccaf55e54 search: Reorder items in search bar (#3039)
Release Notes:

- Reordered items in project and buffer search bar
2023-09-27 16:51:20 +02:00
Kyle Caverly
edf29aa67d implement new search strategy (#3029)
Augment current search strategy in semantic search, reducing search
times by ~60%

Release Notes:

- Implemented minimum batch sizes for concurrent database reads.
- Batch embedding matrix multiplication.
- Calculate matmul with ndarray
2023-09-27 10:37:48 -04:00
KCaverly
0e6fd645fd leverage embeddings len returned in construction matrix multiplication 2023-09-27 10:33:04 -04:00
Conrad Irwin
c63cc78ffd vim: Fix ctrl-u/ctrl-d (#3044)
- vim: Fix ctrl-d/ctrl-u to match vim (when :set scrolloff=3)
2023-09-27 07:48:50 -06:00
KCaverly
3682751455 Merge branch 'main' of github.com:zed-industries/zed into faster_semantic_search 2023-09-27 09:43:39 -04:00
KCaverly
abefa2738b removed blas and increase batch size for vector search 2023-09-27 09:43:23 -04:00
Kyle Caverly
4ccd69350b removed stale dbg in assistant from main (#3046)
remove small dbg! statement in main
2023-09-27 09:13:41 -04:00
KCaverly
0d6880adb3 removed stale dbg in assistant from main 2023-09-27 09:13:00 -04:00
Kyle Caverly
2f368de397 leverage file outline and selection as opposed to entire file (#3040)
Transition generate prompt for inline assist to leverage outline as
opposed to full file.
This enables, us to leverage the inline assist for large files.

Release Notes:

- Change inline assist to use tree-sitter based outlines for code
generation instead of full files
2023-09-27 09:10:18 -04:00
KCaverly
650a160f04 update test outline for prompt tests for new cursor span 2023-09-27 09:06:53 -04:00
Piotr Osiewicz
ecb037fc0e language: Add block_comment to CSS (#3045)
Fixes zed-industries/community#2081

Release Notes:
- Fixed "toggle comment" action not working in CSS buffers.
2023-09-27 11:56:26 +02:00
Conrad Irwin
8e1bbf32be vim: Fix ctrl-u/ctrl-d
They should work by exactly half a screen, and also move the cursor.
2023-09-26 22:28:04 -06:00
Conrad Irwin
30bb3a109e Add SwapPaneInDirection (#3043)
- Add cmd-k shift-{left,right,up,down} to swap panes in that direction
- vim: Add ctrl-w shift-{h,j,k,l} to swap panes in that direction
([#278](https://github.com/zed-industries/community/issues/278))
2023-09-26 22:18:02 -06:00
Conrad Irwin
37b6e1cbb7 Add SwapPaneInDirection
Add keybindings for vim (and non-vim)
2023-09-26 22:00:51 -06:00
Kirill Bulatov
cb83b49432 Hide inlay hints toggle if they are not supported by the current editor (#3041)
Release Notes:

- N/A
2023-09-27 01:16:02 +03:00
Marshall Bowers
568fec0f54 Add Sized bound to StyleHelpers (#3042)
This PR adds a `Sized` bound to the `StyleHelpers` trait.

All of the individual methods on this trait already had a `Self: Sized`
bound, so moving it up to the trait level will make it so we don't have
to repeat ourselves so much.

There's an open question of whether we can hoist the `Sized` bound to
`Styleable`, but it's possible there are cases where we'd want to have a
`Styleable` trait object.

Release Notes:

- N/A
2023-09-26 18:15:41 -04:00
Kirill Bulatov
7e2cef98a7 Hide inlay hints toggle if they are not supported by the current editor 2023-09-26 23:52:11 +02:00
KCaverly
90f17d4a28 updated codegen match to leverage unused values 2023-09-26 17:11:20 -04:00
KCaverly
e8dd412ac1 update inline generate prompt to leverage more explicit <|START| and |END|> spans 2023-09-26 17:10:31 -04:00
KCaverly
54c63063e4 changed inline assist generate prompt to leverage outline as opposed to entire prior file
Co-Authored-by: Antonio <antonio@zed.dev>
2023-09-26 16:23:48 -04:00
Antonio Scandurra
58dadad8ec WIP 2023-09-26 13:42:58 -06:00
Joseph T. Lyons
e9e558d8c8 Rework call events api (#3038)
There were times when events with bad data were being emitted. What we
found was that places where certain collaboration-related code could
fail, like sending an invite, would still send events; those events
would be in a bad state, as certain elements, such as a room, weren't
constructed as expected, causing the event to have missing data. The new
API guarantees that we have data in the correct configuration. In the
future, we will add events for certain types of failures within Zed, to
cover things like invites failing.

Release Notes:

- N/A
2023-09-26 14:29:25 -04:00
Joseph T. Lyons
0897ed561f Rework call events api
There were time when events with bad data were being emitted. What we found was that places where certain collaboration-related code could fail, like sending an, would still send events, and those events be in a bad state, as certain elements weren't constructed as expected, thus missing in the event. The new API guarantees that we have data in the correct configuration. In the future, we will add events for certain types of failures within Zed.

Co-Authored-By: Julia <30666851+ForLoveOfCats@users.noreply.github.com>
2023-09-26 14:18:32 -04:00
Piotr Osiewicz
e263805847 workspace: change save prompt for unnamed buffers (#3037)
Release Notes:
- N/A
2023-09-26 19:35:10 +02:00
Antonio Scandurra
bfe2205ecb Checkpoint 2023-09-26 11:34:41 -06:00
Antonio Scandurra
04d3ea9563 Checkpoint 2023-09-26 11:29:44 -06:00
Piotr Osiewicz
8c47f117db editor: Start transaction in replace impl (#3036)
This fixes the undo with replace in project
/cc @maxbrunsfeld 

Release Notes:

- N/A
2023-09-26 19:21:15 +02:00
Piotr Osiewicz
36f022bb58 project_replace: Fix up key bindings (#3034)
Release Notes:
- N/A
2023-09-26 18:40:41 +02:00
KCaverly
e75f56a0f2 move to system blas 2023-09-26 12:39:22 -04:00
Marshall Bowers
342a00b89e Remove dbg! from styleable_helpers! (#3035)
This PR removes a leftover `dbg!` from `styleable_helpers!`.

We already removed this in the `gpui2-ui` branch, but getting this on
`main` since @KCaverly pointed it out.

Release Notes:

- N/A
2023-09-26 10:49:55 -04:00
KCaverly
330a71d28b fixed bug limiting number of results returned 2023-09-26 10:29:55 -04:00
KCaverly
ea278b5b12 ensure desc sort and cleanup unused imports 2023-09-26 09:53:49 -04:00
Kirill Bulatov
5e7f0c65fe Fix another place where Copilot may panic (#3033) 2023-09-26 11:12:36 +03:00
Kirill Bulatov
b131a2cb98 Fix another place where Copilot may panic 2023-09-26 10:51:13 +03:00
Joseph T. Lyons
b5a39de3e2 Add reset_db script 2023-09-25 21:45:28 -04:00
Conrad Irwin
42df5ef45e vim: Add multicursor shortcuts (#3032)
Adding a few bindings to bring first class feeling multiselect to zed's
vim emulation.

gn and gN are similar to similar vim bindings, ga is similar to gA (and
I doubt we need vim's real ga), g> and g< are just made up.

Release Notes:

- vim: `g n` / `g N` to select next/previous
- vim: `g >` / `g <` to skip current selection and select next/previous
- vim: `g a` to select all
2023-09-25 17:18:12 -05:00
Conrad Irwin
b29e295e1b vim: Add multicursor shortcuts
- g n / g N to select next/previous
- g > / g < to select next/previous replacing current
- g a to select all matches
2023-09-25 15:32:03 -06:00
Mikayla Maki
8c90157990 Fix space and copy/paste when editing a channel (#3030)
This fixes several bugs with how spaces and keyboard commands interact
with channel creating / renaming.

fixes
https://github.com/zed-industries/community/discussions/2076#discussioncomment-7096959

Release Notes:

- N/A
2023-09-25 15:20:00 -05:00
Conrad Irwin
b454f43b6c Add cmd-+ as an alias for cmd-= (#3028)
Release Notes:

- Allow cmd-+ in addition to cmd-= for zoom in
([#1021](https://github.com/zed-industries/community/issues/1021)).

Although I had initially thought this was something more to do with
option key handling, it turns out to be a straightforward and reasonable
feature request.
2023-09-25 14:45:46 -05:00
Conrad Irwin
53194ede5e Use SaveAll instead of Save
If we're closing items we should not be writing files that have not
changed (e.g. empty untitled buffers)
2023-09-25 13:14:30 -06:00
Conrad Irwin
d17d38fe70 vim: Command (#2951)
Release Notes:

- vim: Add v1 of command mode
([#279](https://github.com/zed-industries/community/issues/279)). The
goal was to cover 90% of what most people actually do, but it is very
incomplete. Known omissions are that ranges cannot be specified (except
that `:%s//` must always specify the % range), commands cannot take
arguments (you can `:w` but not `:w [file]`), and there is no history.
Please file feature requests on
https://github.com/zed-industries/community as you notice things that
could be better.
- `:` triggers zed's command palette. If you type a known vim command it
will run it, otherwise you get zed's normal fuzzy search. For this
release supported commands are limited to:
- - `:w[rite][!]`, `:wq[!]`, `:q[uit][!]`, `:wa[ll][!]`, `:wqa[ll][!]`,
`:qa[ll][!]`, `:[e]x[it][!]`, `:up[date]` to save/close tab(s) and
pane(s).
- - `:cq` to quit completely.
- - `:vs[plit]`, `:sp[lit]` to split vertically/horizontally
- - `:new`, `:vne[w]` to create a new file in a new pane above or to the
left
- - `:tabedit`, `:tabnew` to create a new file in a new tab.
- - `:tabn[ext]`, `:tabp[rev]` to go to previous/next tabs
- - `:tabc[lose]` to close tabs
- - `:cn[ext]`, `:cp[rev]`, `:ln[ext]`, `:lp[rev]` to go to the
next/prev diagnostics.
- - `:cc`, `:ll` to open the errors page
- - `:<number>` to jump to a line number.
- - `:$` to jump to end of file
- - `:%s/foo/bar/` (note that /g is always implied, the range must
always be %, and zed uses different regex syntax to vim)
- - `:/foo` and `:?foo` to jump to next/prev line matching foo
- - `:j[oin]`, to join the current line (no range is yet supported)
- - `:d[elete][l][p]`, to delete the current line (no range is yet
supported)
- - `:s[ort] [i]` to sort the current selection (case-insensitively)
- vim: Add `ctrl-w o` (closes everything except the current item) and
`ctrl-w n` (creates a new file in the pane above).
([#1884](https://github.com/zed-industries/community/issues/1884))
- all: Add a "Discard" option to prompt when saving a file with
conflicts (previously this only appeared on close, not on save).

Internal changes:
- The Picker will now wait for pending queries before confirming (to
handle people typing `: w enter` rapidly.
- workspace::save_item and Pane::save_item are now merged together, and
the behavior controlled by `workspace::SaveIntent`.
- Many actions related to closing/saving items now take an optional
`SaveIntent`.
-
2023-09-25 14:07:22 -05:00
Mikayla
667fc25766 Fix space and copy/paste when editing a channel 2023-09-25 11:31:02 -07:00
Conrad Irwin
359847d047 Revert "Revert "workspace: Improve save prompt. (#3025)""
This reverts commit 5c75450a77.
2023-09-25 12:18:03 -06:00
Antonio Scandurra
15567493ba WIP 2023-09-25 11:55:05 -06:00
Mikayla Maki
591ec02cea Add support for the experimental Next LS for Elixir (#3024)
This is a PR I built for a friend of a friend at StrangeLoop, who is
making a much better LSP for elixir that elixir folks want to experiment
with. This PR also improves the our debug log viewer to handle LSP
restarts.

TODO:
- [ ] Make sure NextLS binary loading works.

Release Notes:

- Added support for the experimental Next LS for Elxir, to enable it add
the following field to your settings to enable:

```json
"elixir": {
    "next": "on"
}
```
2023-09-25 12:52:56 -05:00
Antonio Scandurra
a1e080d495 Checkpoint 2023-09-25 11:48:51 -06:00
Mikayla
c2fca054ae Fix compile and test errors 2023-09-25 10:46:09 -07:00
Julia
bf6c2f0dfd Activate correct item when clicking on a code action with the mouse (#3027)
Release Notes:

- Fixed clicking a code action only ever performing the first action in
the list rather than the one clicked on.
2023-09-25 13:45:20 -04:00
KCaverly
86ec0b1d9f implement new search strategy 2023-09-25 13:44:19 -04:00
Conrad Irwin
769c330b3d Merge branch 'vim-command' 2023-09-25 11:41:13 -06:00
Conrad Irwin
5c75450a77 Revert "workspace: Improve save prompt. (#3025)"
This reverts commit 0a491e773b.
2023-09-25 11:41:09 -06:00
Mikayla
ad7c1f3c81 Download next-ls automatically from github 2023-09-25 10:40:20 -07:00
Conrad Irwin
23767f734f Add cmd-+ as an alias for cmd-=
For github.com/zed-industries/community#1021
2023-09-25 11:31:34 -06:00
Julia
80eaabd360 Activate correct item when clicking on a code action with the mouse 2023-09-25 13:31:00 -04:00
Julia
ff5d0f2aeb Trigger scroll_to on code action list when moving selection (#3026)
Release Notes:
- Fixed the code action popup menu not scrolling as selection moves.
2023-09-25 11:21:24 -04:00
Julia
a278428bd5 Trigger scroll_to on code action list when moving selection 2023-09-25 11:13:50 -04:00
Piotr Osiewicz
0a491e773b workspace: Improve save prompt. (#3025)
Add buffer path to the prompt.

Z-2903

Release Notes:
- Added a "Save all/Discard all" prompt when closing a pane with
multiple edited buffers.
2023-09-25 16:15:29 +02:00
Antonio Scandurra
45540a00ee Checkpoint 2023-09-24 17:12:59 -06:00
Antonio Scandurra
55f4aa3b34 Checkpoint 2023-09-24 16:52:33 -06:00
Mikayla
8b63e45f0b Implement LSP adapter methods for syntax highlighting 2023-09-24 05:08:05 -07:00
Mikayla
052cb459a6 Improve lsp log viewer's behavior in the presence of LSP restarts
Improve settings interface to local LSP
2023-09-24 04:59:55 -07:00
Antonio Scandurra
a7803570dc Checkpoint 2023-09-23 17:26:22 -06:00
Antonio Scandurra
b516ea2fe2 Checkpoint 2023-09-23 15:56:40 -06:00
Antonio Scandurra
1fa45c69d6 Checkpoint 2023-09-23 15:52:16 -06:00
Antonio Scandurra
c4abd93b9b WIP 2023-09-23 15:24:01 -06:00
Antonio Scandurra
91c1768939 Checkpoint 2023-09-23 15:03:05 -06:00
Antonio Scandurra
1a5d6aa498 Checkpoint 2023-09-23 14:20:07 -06:00
Antonio Scandurra
fb69f3d45f Checkpoint
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-09-23 12:21:52 -06:00
Antonio Scandurra
3fbe93f029 Checkpoint
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-09-23 11:06:10 -06:00
Antonio Scandurra
df388d9f33 Checkpoint 2023-09-23 09:10:33 -06:00
Marshall Bowers
0697d08e54 Restructure ui into just elements and components (#3023)
This PR restructures the `ui` crate into just `elements` and
`components`.

This was already done on the `gpui2-ui` branch, just getting it onto
`main`.

Release Notes:

- N/A

---------

Co-authored-by: Nate Butler <nate@zed.dev>
2023-09-22 21:27:47 -04:00
Marshall Bowers
895386cfaf Mainline Icon and IconButton changes (#3022)
This PR mainlines the `Icon` and `IconButton` changes from the
`gpui2-ui` branch.

Release Notes:

- N/A

Co-authored-by: Nate Butler <nate@zed.dev>
2023-09-22 19:14:12 -04:00
Antonio Scandurra
6a95f9e349 WIP 2023-09-22 16:31:26 -06:00
Marshall Bowers
ad62a966a6 Display available stories in storybook CLI (#3021)
This PR updates the storybook CLI to support displaying all of the
available stories.

The `--help` flag will now show a list of all the available stories:

<img width="1435" alt="Screenshot 2023-09-22 at 6 11 00 PM"
src="https://github.com/zed-industries/zed/assets/1486634/284e1a24-46ec-462e-9709-0f9b6e94931f">

Inputting an invalid story name will also show the list of available
stories:

<img width="1435" alt="Screenshot 2023-09-22 at 6 10 43 PM"
src="https://github.com/zed-industries/zed/assets/1486634/1ce3ae3f-ab03-4976-a06a-5a2b5f61eae3">

Release Notes:

- N/A
2023-09-22 18:16:16 -04:00
Marshall Bowers
fe4248cf34 Scaffold Toolbar and Breadcrumb components (#3020)
This PR scaffolds the `Toolbar` and `Breadcrumb` components.

Right now they both just consist of hardcoded data.

<img width="846" alt="Screenshot 2023-09-22 at 4 54 00 PM"
src="https://github.com/zed-industries/zed/assets/1486634/70578df2-7216-42d2-97ef-d38b83fb4a25">

<img width="799" alt="Screenshot 2023-09-22 at 4 46 04 PM"
src="https://github.com/zed-industries/zed/assets/1486634/73ca3d8a-baf9-4ed4-b4c4-279c674672a3">

Release Notes:

- N/A
2023-09-22 16:57:33 -04:00
Antonio Scandurra
a237aa8164 Checkpoint
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-09-22 14:53:25 -06:00
Antonio Scandurra
3dc1e917bf Checkpoint
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-09-22 14:40:39 -06:00
Marshall Bowers
27e3e09bb9 Label component states in stories (#3019)
This PR updates the UI component stories to label the various states
that they are in.

Release Notes:

- N/A
2023-09-22 15:48:32 -04:00
Antonio Scandurra
d1791a999d Checkpoint
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-09-22 13:30:51 -06:00
Marshall Bowers
d0b15ed940 Report which requested font families are not present on the system (#3006)
This PR improves the error message when `FontCache.load_family` attempts
to load a font that is not present on the system.

I ran into this while trying to run the `storybook` for the first time.
The error message indicated that a font family was not found, but did
not provide any information as to which font family was being loaded.

### Before

```
   Compiling storybook v0.1.0 (/Users/maxdeviant/projects/zed/crates/storybook)
    Finished dev [unoptimized + debuginfo] target(s) in 8.52s
     Running `/Users/maxdeviant/projects/zed/target/debug/storybook`
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: could not find a non-empty font family matching one of the given names', crates/theme/src/theme_settings.rs:132:18
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
libc++abi: terminating due to uncaught foreign exception
fish: Job 1, 'cargo run' terminated by signal SIGABRT (Abort)
```

### After

```
   Compiling storybook v0.1.0 (/Users/maxdeviant/projects/zed/crates/storybook)
    Finished dev [unoptimized + debuginfo] target(s) in 7.90s
     Running `/Users/maxdeviant/projects/zed/target/debug/storybook`
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: could not find a non-empty font family matching one of the given names: `Zed Mono`', crates/theme/src/theme_settings.rs:132:18
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
libc++abi: terminating due to uncaught foreign exception
fish: Job 1, 'cargo run' terminated by signal SIGABRT (Abort)
```

Release Notes:

- N/A
2023-09-22 15:27:42 -04:00
Antonio Scandurra
e4e9da7673 Checkpoint
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-09-22 12:44:37 -06:00
Marshall Bowers
8b6e982495 Remove manual mapping in FromStr implementation for StorySelector (#3018)
This PR removes the need for writing manual mappings in the `FromStr`
implementation for the `StorySelector` enum used in the storybook CLI.

We are now using the
[`EnumString`](https://docs.rs/strum/0.25.0/strum/derive.EnumString.html)
trait from `strum` to automatically derive snake_cased names for the
enums.

This will cut down on some of the manual work needed to wire up more
stories to the storybook.

Release Notes:

- N/A
2023-09-22 14:06:09 -04:00
Marshall Bowers
71c1e36d1e Put Theme behind an Arc (#3017)
This PR puts the `Theme` returned from the `theme` function behind an
`Arc`.

### Motivation

While working on wiring up window focus events for the `TitleBar`
component we ran into issues where `theme` was holding an immutable
borrow to the `ViewContext` for the entirety of the `render` scope,
which prevented having mutable borrows in the same scope.

### Explanation

To avoid this, we can make `theme` return an `Arc<Theme>` to allow for
cheap clones and avoiding the issues with the borrow checker.

Release Notes:

- N/A

Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
2023-09-22 13:35:30 -04:00
Antonio Scandurra
343c426307 Checkpoint 2023-09-22 10:02:11 -06:00
Marshall Bowers
d8c6adf338 Factor story boilerplate out into separate components (#3016)
This PR factors out the bulk of the boilerplate required to setup a
story in the storybook out into separate components.

The pattern we're using here is adapted from the "[associated
component](https://maxdeviant.com/posts/2021/react-associated-components/)"
pattern in React.

Release Notes:

- N/A
2023-09-22 11:38:01 -04:00
Nathan Sobo
e979d75cb8 WIP 2023-09-22 08:34:43 -06:00
Kirill Bulatov
afa7045847 Tone down inlay hint update logs 2023-09-22 17:04:11 +03:00
Kyle Caverly
e84339ef4a reorganize AI crates to structure future development (#3015)
Reorganized assistant/semantic_index crates and introduced AI crate to
include shared functionality.

Release Notes:

- Moved most of the Assistant functionality from ai crate to assistant
crate
- Moved interaction with embedding providers from semantic_index to ai
crate
2023-09-22 09:54:46 -04:00
KCaverly
fbd6b5b434 cargo fmt 2023-09-22 09:46:06 -04:00
KCaverly
dc49dec4f0 catchup with main 2023-09-22 09:43:39 -04:00
KCaverly
68c37ca2a4 move embedding provider to ai crate 2023-09-22 09:33:59 -04:00
Kirill Bulatov
1f1c669673 Do not resubscribe for Copilot logs events (#3014)
Last follow-up of https://github.com/zed-industries/zed/pull/3002
Fixes
https://zed-industries.slack.com/archives/C04S6T1T7TQ/p1695281196667609

Copilot sends multiple events about its LSP server readiness, not
necessarily recreating the server from scratch (e.g. due to re-sign in
action). Avoid re-adding same log subscriptions on the same LSP server,
which causes panics.

Release Notes:

- N/A
2023-09-22 13:48:13 +03:00
Kirill Bulatov
d61565d227 Do not resubscribe for Copilot logs events
Copilot sends multiple events about its LSP server readiness, not necessarily recreating the server from scratch (e.g. due to re-sign in action).
Avoid re-adding same log subscriptions on the same LSP server, which
causes panics.
2023-09-22 13:40:20 +03:00
Nate Butler
a5e055f8a5 Bring UI crate up to date (#3013)
Merges various in-progress gpui2 component branches with the new `ui`
crate.
2023-09-21 23:54:11 -04:00
Nate Butler
30b105afd5 Remove leftover state doc 2023-09-21 23:51:03 -04:00
Nate Butler
d14e4d41ea Merge branch 'main' into nate/bring-ui-crate-up-to-date 2023-09-21 23:47:17 -04:00
Nate Butler
f54634aeb2 Bring UI crate up to date 2023-09-21 23:46:06 -04:00
Marshall Bowers
5083ab7694 Add TrafficLights component (#3011)
This PR adds a `TrafficLights` component for GPUI2.

<img width="861" alt="Screenshot 2023-09-21 at 11 32 10 PM"
src="https://github.com/zed-industries/zed/assets/1486634/0fe0e847-49b3-44dc-bd4c-64f12f0051c1">

Release Notes:

- N/A
2023-09-21 23:42:18 -04:00
KCaverly
48e151495f introduce ai crate with completion providers 2023-09-21 22:44:56 -04:00
Marshall Bowers
66358f2900 Update storybook to support stories for individual components (#3010)
This PR updates the `storybook` with support for adding stories for
individual components.

### Motivation

Right now we just have one story in the storybook that renders an entire
`WorkspaceElement`.

While iterating on the various UI components, it will be helpful to be
able to create stories of those components just by themselves.

This is especially true for components that have a number of different
states, as we can render the components in all of the various states in
a single layout.

### Explanation

We achieve this by adding a simple CLI to the storybook.

The `storybook` binary now accepts an optional `[STORY]` parameter that
can be used to indicate which story should be loaded. If this parameter
is not provided, it will load the workspace story as it currently does.

Passing a story name will load the corresponding story, if it exists.

For example:

```
cargo run -- elements/avatar
```

<img width="723" alt="Screenshot 2023-09-21 at 10 29 52 PM"
src="https://github.com/zed-industries/zed/assets/1486634/5df489ed-8607-4024-9c19-c5f4541f97c9">

```
cargo run -- components/facepile
```

<img width="785" alt="Screenshot 2023-09-21 at 10 30 07 PM"
src="https://github.com/zed-industries/zed/assets/1486634/e04a4577-7403-405d-b23c-e765b7a06229">



Release Notes:

- N/A
2023-09-21 22:41:53 -04:00
KCaverly
5f6334696a rename ai crate to assistant crate 2023-09-21 21:54:59 -04:00
Mikayla
02a85b1252 Add local next LSP adapter 2023-09-21 18:09:02 -07:00
Nate Butler
4628639ac6 Update ambiguous theme import (#3009)
Fixes an ambiguous reference to `theme` causing storybook not to build.
2023-09-21 20:32:41 -04:00
Nate Butler
8440ac3a54 Fix fmt complaining about order 2023-09-21 20:25:25 -04:00
Nate Butler
1e6ac8caf2 theme::* -> crate::theme::*; 2023-09-21 20:21:56 -04:00
Max Brunsfeld
7711530704 Simplify titlebar facepile click rendering / mouse handling 2023-09-21 17:12:59 -07:00
Max Brunsfeld
4ffa167256 Allow following into channel notes regardless of project 2023-09-21 17:12:59 -07:00
Marshall Bowers
baa07e935e Extract UI elements from storybook into new ui crate (#3008)
This PR extracts the various UI elements from the `storybook` crate into
a new `ui` library crate.

Release Notes:

- N/A
2023-09-21 19:25:35 -04:00
Marshall Bowers
c252eae32e Reorganize ui module exports (#3007)
This PR reorganizes the exports for the `ui` module in the `storybook`
crate.

### Motivation

Currently we expose each of the various elements/components/modules in
two places:

- Through the module itself (e.g., `ui::element::Avatar`)
- Through the `ui` module's re-exports (e.g., `ui::Avatar`)

This means it's possible to import any given item from two spots, which
can lead to inconsistencies in the consumers. Additionally, it also
means we're shipping the exact module structure underneath `ui` as part
of the public API.

### Explanation

To avoid this, we can avoid exposing each of the individual modules
underneath `ui::{element, component, module}` and instead export just
the module contents themselves.

This makes the `ui` module namespace flat.

Release Notes:

- N/A
2023-09-21 17:46:37 -04:00
Marshall Bowers
92d3115f3d Fix some typos in tools.md 2023-09-21 17:21:40 -04:00
Marshall Bowers
6bbf614a37 Fix some typos in README.md 2023-09-21 16:56:04 -04:00
Max Brunsfeld
ed8b022b51 Add initial failing test for following to channel notes in an unshared project 2023-09-21 13:14:15 -07:00
Max Brunsfeld
f34c6bd1ce Start work on allowing following without a shared project 2023-09-21 13:14:15 -07:00
Max Brunsfeld
c71566e7f5 Make project id optional when following - server only 2023-09-21 13:14:15 -07:00
Max Brunsfeld
83455028b0 Procfile: run zed.dev via 'next dev', not 'vercel dev' 2023-09-21 13:14:15 -07:00
Nathan Sobo
d120d0cf2e Checkpoint 2023-09-21 14:10:53 -06:00
Nathan Sobo
a0416e9c6d WIP 2023-09-21 13:46:31 -06:00
Nathan Sobo
a53c0b9472 WIP 2023-09-21 13:39:54 -06:00
Kyle Caverly
3c2b05be90 add semantic index status, for non authenticated users (#3005)
Update project search semantic ui to accommodate for users who have not
set the OPENAI_API_KEY in their environment variables.

Release Notes:

- Expand Semantic Index status to include status for non authenticated
users
- Update Search UI to illustrate this status.
2023-09-21 14:18:58 -04:00
Nathan Sobo
8573c6e8c6 WIP 2023-09-21 12:18:09 -06:00
KCaverly
7b63369df2 move api authentication to embedding provider 2023-09-21 14:00:00 -04:00
KCaverly
997f362cc2 add semantic index status, for non authenticated users 2023-09-21 13:40:01 -04:00
Max Brunsfeld
59e561dcf9 Bump rust from 1.72.0 to 1.72.1 2023-09-21 10:17:55 -07:00
Nate Butler
056353f8a8 Correct icon_margin_scale for fold indicator (#3003)
Fixes a design regression on Preview where the fold icon became small
due to the icon standardization PR.

Release Notes:

- [Preview] Fixed an issue with the size of the fold line icon.
2023-09-21 12:52:54 -04:00
Max Brunsfeld
19a9753663 Fix channel move cancel (#3004)
Release Notes:

- Fixes a bug where channels could no longer be rearranged with drag and
drop.
2023-09-21 09:11:09 -07:00
Mikayla
66dd0e9ec0 Switch drag end event to be fired after mouse up 2023-09-21 08:58:36 -07:00
Nate Butler
d74b8ec4e3 Correct icon_margin_scale 2023-09-21 11:57:35 -04:00
Piotr Osiewicz
dbfa1d7263 [WIP] Replace in project (#2984)
Targeting Preview of 09.27.
This is still pending several touchups/clearups:
- We should watch multibuffer for changes and rescan the excerpts. This
should also update match count.
- Closing editor while multibuffer with 100's of changed files is open
leads to us prompting for save once per each file in the multibuffer.
One could in theory save in multibuffer before closing it (thus avoiding
unnecessary prompts), but it'd be cool to be able to "Save all"/"Discard
All".

Release Notes:

- Added "Replace in project" functionality
2023-09-21 16:27:58 +02:00
Kirill Bulatov
d090fd25e4 Supplementary LSP server log improvements (#3002)
Follow-up of https://github.com/zed-industries/zed/pull/2991 improving
rough edges around supplementary LSP servers:

* Fixes
https://zed-industries.slack.com/archives/C04S6T1T7TQ/p1695281196667609
Copilot init panic
* Makes LSP server list scrollable in the panel
* Shows supplementary servers' RPC logs in the panel

Release Notes:

- N/A
2023-09-21 11:22:56 +03:00
Kirill Bulatov
1c53b0a1c0 Properly re-add Copilot LSP server 2023-09-21 11:02:03 +03:00
Kirill Bulatov
a2ac5ae478 Fix RPC logs not being displayed for supplementary servers 2023-09-21 11:00:05 +03:00
Kirill Bulatov
ead7155b0f Make LSP panel scrollable
co-authored-by: Max <max@zed.dev>
2023-09-21 10:59:19 +03:00
Nathan Sobo
dfeb702544 WIP - Next: implement Element derive macro 2023-09-20 22:26:46 -06:00
Conrad Irwin
32f8733313 Code review changes 2023-09-20 21:29:45 -06:00
Conrad Irwin
4bf4c780be Revert accidental Cargo change 2023-09-20 20:50:22 -06:00
Conrad Irwin
7a7ff4bb96 Fix save related tests, and refactor saves again 2023-09-20 20:44:42 -06:00
Conrad Irwin
a59da3634b Fix backward search from command 2023-09-20 20:44:42 -06:00
Conrad Irwin
a25fcfdfa7 Iron out some edge-cases 2023-09-20 20:44:42 -06:00
Conrad Irwin
2d9db0fed1 Flesh out v1.0 of vim : 2023-09-20 20:44:41 -06:00
Conrad Irwin
6ad1f19a21 Add NewFileInDirection 2023-09-20 20:44:26 -06:00
Conrad Irwin
88a32ae48d Merge Workspace::save_item into Pane::save_item
These methods were slightly different which caused (for example) there
to be no "Discard" option in the conflict case at the workspace level.

To make this work, a new SaveBehavior (::PromptForNewPath) was added to
support SaveAs.
2023-09-20 20:44:26 -06:00
Conrad Irwin
a4f96e6452 tests: wait deterministically after simulating_keystrokes 2023-09-20 20:44:26 -06:00
Conrad Irwin
e27b7d7812 Ensure the picker waits for pending updates
Particularly in development builds (and in tests), when typing in the
command palette, I tend to hit enter before the suggestions have
settled.
2023-09-20 20:44:26 -06:00
Conrad Irwin
ba5d84f7e8 Fix vim tests on my machine
In a rare case of "it broke on my machine" I haven't been able to run
the vim tests locally for a few days; turns out I ran out of swap file
names...
2023-09-20 20:44:26 -06:00
Conrad Irwin
ea3a1745f5 Add vim-specific interactions to command
This mostly adds the commonly requested set (:wq and friends) and
a few that I use frequently
:<line> to go to a line number
:vsp / :sp to create a split
:cn / :cp to go to diagnostics
2023-09-20 20:44:26 -06:00
Nathan Sobo
6d2b27689d WIP 2023-09-20 20:40:30 -06:00
Nathan Sobo
a8bb3dd9a3 WIP 2023-09-20 20:28:32 -06:00
Max Brunsfeld
d42093e069 collab 0.22.1 2023-09-20 17:39:21 -07:00
Max Brunsfeld
98482f0150 Fix select all bugs (#3001)
Release Notes:

- Restore `cmd-shift-d` as 'editor::DuplicateLine' and move
`editor::SelectAllMatches` to `cmd-shift-L`, like in VS Code. The
previous action for `cmd-shift-l`, `editor::SplitSelectionIntoLines`,
has been moved to the sublime base keymap.
- Fixes a panic when using 'editor::SelectAllMatches'  on an empty line.
2023-09-20 17:21:10 -07:00
Mikayla
58f4efb579 fix default keybindings for select all matches 2023-09-20 17:14:19 -07:00
Mikayla
fe10875285 Fix panic on select all when query is empty 2023-09-20 17:10:23 -07:00
Mikayla Maki
e0fe97401d Fix bugs from channel moving (#3000)
This PR fixes several bugs related to channel moving and it's
unintuitive behavior when attempting to re-order channels

Release Notes:

- N/A
2023-09-20 17:01:14 -07:00
Mikayla
f2f507e619 Fix bug in channel rendering
Fix drag and drop stale state bug revealed by the channel panel

co-authored-by: Max <max@zed.dev>
2023-09-20 16:40:29 -07:00
Conrad Irwin
f4d4a2f41b vim fixes for find&replace (#2995)
* allow replacing with the empty string to delete
* fix <enter> for ReplaceNext (in vim mode)

Release Notes:

- allow replacement to be empty
2023-09-20 16:42:39 -06:00
Mikayla
4ff44dfa3b Fix bugs in moving channels that could cause channels to be stranded or moved unexpectedly
Made channel linking not query in a loop

co-authored-by: Max <max@zed.dev>
2023-09-20 15:32:06 -07:00
Max Brunsfeld
ee16b2051e Fix opening channel notes from collab panel context menu (#2998)
Release Notes:

- Fixed a bug where the 'Open Notes' action in the collaboration panel
context menu didn't work (preview only).
2023-09-20 13:55:23 -07:00
Max Brunsfeld
3633f091c5 Fix opening channel notes from context menu 2023-09-20 13:45:35 -07:00
Nathan Sobo
44608517c1 WIP 2023-09-20 14:32:55 -06:00
Conrad Irwin
841b4d648c Fix vim panic when over-shooting with j (#2997)
Release Notes:

- vim: fix a panic when using `j` to go beyond end of file
2023-09-20 12:17:07 -06:00
Nathan Sobo
5b0e333967 Checkpoint 2023-09-20 12:16:26 -06:00
Conrad Irwin
01b2db4845 Fix vim test recording 2023-09-20 12:01:04 -06:00
Joseph T. Lyons
e7d73b833b collab 0.22.0 2023-09-20 13:59:36 -04:00
Nate Butler
f7696114bb Add an initial set of GPUI2 components to the storybook (#2990)
This PR adds an initial set of components to `crates/storybook/src/ui`.

All changes still are contained to inside storybook. Merging to keep up
to date with main.
2023-09-20 13:52:47 -04:00
Conrad Irwin
8de67fd9d9 Fix vim panic when over-shooting with j 2023-09-20 11:20:35 -06:00
Nate Butler
be6690bf0b Update tracker.md 2023-09-20 13:08:20 -04:00
Joseph T. Lyons
a86dc942d6 v0.106.x dev 2023-09-20 13:02:13 -04:00
Nate Butler
6dcb0bafb0 WIP Project Tracker 2023-09-20 12:53:08 -04:00
Kyle Caverly
5fe8aa064f Keyboard navigation and setting persistence for project search (#2996)
Enable keyboard shortcuts for Project Search modes, and ensure project
search settings are persisted search to search.

Release Notes:

- Added alt-cmd-s to Toggle Semantic Search Mode
- Added alt-cmd-g to Toggle Regex Search Mode
- Added alt-cmd-x to Toggle Text Search Mode
- Defaulted new project searches to using last used search mode and
settings.
2023-09-20 12:44:30 -04:00
Joseph T. Lyons
7f4d285205 Add select all command to the editor (#2963)
Equivalent to hitting cmd-d as many times as possible

cc: @JosephTLyons this PR needs a bit of work on user-facing naming and
interactions:
- [x] ~~I thought cmd-shift-d would be nice for this action, but that is
already taken by a sublime key binding. Could we use the VSCode binding?
I left the sublime text binding in but commented out.~~ Gonna just leave
it as is
- [x] ~~I went through 'SelectAllMatches' and 'SelectAll' as names for
this action, but ran into conflicts with the buffer search action and
the existing SelectAll (`cmd-a`) action. I decided to go with
`SelectNextAll`, but could use your help here.~~ Decided to go with
'SelectAllMatches'

Release Notes:
- Added a `editor::SelectAllMatches` command, bound to `cmd-shift-d`,
for selecting all matching occurrences under your selection. Note that
this has replaced the previous binding for `editor::DuplicateLine`.
2023-09-20 12:42:23 -04:00
KCaverly
37a0c6615f remove conditional action registration for activate semantic search mode 2023-09-20 12:38:29 -04:00
Mikayla
fdf5278bbf Only autoscroll on select_next operations 2023-09-20 09:31:12 -07:00
Nathan Sobo
83dae46ec6 Checkpoint 2023-09-20 10:17:29 -06:00
KCaverly
22d095bd35 enable project search states to persist between workspace project searches 2023-09-20 12:12:01 -04:00
Mikayla
8cc7a02390 Fix rebase 2023-09-20 08:34:18 -07:00
Mikayla
03d4191685 Fix infinite loop in select all matches 2023-09-20 08:25:21 -07:00
Mikayla
c074bfd441 Add select all command to the editor, equivalent to hitting cmd-d as many times as possible 2023-09-20 08:25:20 -07:00
KCaverly
28ed406d54 add keymaps for activating text, regex and semantic modes 2023-09-20 10:04:43 -04:00
Mikayla
0cceb3fdf1 Get nextLS running 2023-09-20 06:55:24 -07:00
KCaverly
912e6e8091 create initial action for Semantic search mode 2023-09-20 09:48:27 -04:00
Kirill Bulatov
a366ad02ce Add a way to display unrelated to language support language servers' logs (#2991)
Copilot is being used in every buffer, but we do not see its logs that
easily.
In the future, prettier wrapper will pretend to be an LSP server, it is
better to log its messages somewhere, so prepare an infrastructure for
that.

<img width="1727" alt="image"
src="https://github.com/zed-industries/zed/assets/2690773/d31a257c-9608-46fa-8be1-f0a2a2bdbdb7">

Copilot seem to have no rpc messages logged for some reason now,
prettier wrapper might be a better case to investigate this, so leaving
as is.

Release Notes:

- N/A
2023-09-20 12:14:31 +03:00
Kirill Bulatov
6ebe49ec59 Show Copilot logs right after its LSP server start 2023-09-20 12:08:32 +03:00
Kirill Bulatov
82010b68c1 Avoid extra LSP log events 2023-09-20 11:27:52 +03:00
Nathan Sobo
7885eaf974 Checkpoint 2023-09-19 21:55:49 -06:00
Conrad Irwin
4331cb8058 Initialize workspace properly in tests (#2994)
For vim command I'd like to be able to test that e.g. workspace::Save
works.
2023-09-19 21:02:38 -06:00
Nathan Sobo
37d0f06e07 Checkpoint 2023-09-19 20:55:13 -06:00
Conrad Irwin
1295e5b41f vim: Use explicit global, not default (#2987)
This should have no user-visible impact, but tidies up one of the
awkwardnesses
of how vim uses global state at the moment.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2023-09-19 20:52:25 -06:00
Conrad Irwin
5bb8ba5028 Initialize workspace properly in tests
For vim command I'd like to be able to test that e.g. workspace::Save
works.
2023-09-19 20:49:29 -06:00
Conrad Irwin
2da664ed17 vim fixes for find&replace
* allow replacing with the empty string to delete
* fix <enter> for ReplaceNext
2023-09-19 20:48:01 -06:00
Mikayla Maki
e37373a636 Add UI/UX for moving channels (#2976)
TODO:

- [x] Add drag and drop
- [x] Polish up in-flight decisions.
- [x] Fix chat panel panic
- [x] Add nice hover effect highlighting the matching ones
- [x] Fix and test keyboard

Release Notes:

- N/A
2023-09-19 17:56:22 -07:00
Mikayla
ac65e7590c Add hover styles to channels matching the current selection
Fix chat desync from moving / linking channels
2023-09-19 17:50:02 -07:00
Nate Butler
2699f170ca Checkpoint - Details 2023-09-19 19:18:23 -04:00
Kyle Caverly
2f44055079 Semantic index eval (#2988)
v0 of the Semantic Index evaluate test suite

Release Notes:

- Added eval.rs as an example to the semantic-index crates
- Generates test metrics for two small projects, as a starting point to
systematically evaluate retrieval quality
2023-09-19 19:17:06 -04:00
KCaverly
11b3bfdc99 fix warnings 2023-09-19 19:05:26 -04:00
KCaverly
25cb79e475 remove git2 dependency for repository cloning in semantic_index eval 2023-09-19 18:55:15 -04:00
Mikayla
d5f0ce0e20 Finish implementing drag and drop 2023-09-19 15:51:00 -07:00
Piotr Osiewicz
4525509804 buffer/replace: Advance match index on each replace. (#2992)
Release Notes:
- Fixed "Replace next" not advancing the match index.
2023-09-19 23:56:22 +02:00
Mikayla
f3b91082a6 Improve drag and drop to look and feel better
WIP: Change rendering of drag and drop based on alt-modifier
2023-09-19 14:48:34 -07:00
Kirill Bulatov
7bc4f0bc11 Send copilot log messages into the log panel 2023-09-19 23:41:55 +03:00
KCaverly
b57b5c0b33 updated git2 to use ssl 2023-09-19 16:36:51 -04:00
KCaverly
d85acceeec move git2 to workspace dependency globally 2023-09-19 16:13:47 -04:00
Kirill Bulatov
5e1b284846 Show supplementary language servers in the logs panel 2023-09-19 22:29:27 +03:00
Nathan Sobo
8406c0d9a3 Checkpoint 2023-09-19 13:27:57 -06:00
Nathan Sobo
e762f7f3c0 Checkpoint 2023-09-19 13:09:00 -06:00
Kirill Bulatov
556f398780 Send and receive Copilot events 2023-09-19 21:53:31 +03:00
Mikayla
9bff3b6916 Add basic drag and drop support 2023-09-19 11:20:01 -07:00
Kyle Caverly
ae019fb7d3 remove release channel flags in semantic_index (#2989)
Remove Release channel filters from semantic_index allowing the index to
be released to stable.

Release Notes:

- Remove Release channel filters in enabled and semantic_index
initialization
2023-09-19 12:39:26 -04:00
Nate Butler
65aa4d5642 Draw indent guides using indent_level
Co-Authored-By: Julia <30666851+ForLoveOfCats@users.noreply.github.com>
2023-09-19 12:38:46 -04:00
KCaverly
4f1a59ebf5 formatting 2023-09-19 12:27:33 -04:00
KCaverly
fc8dd8433c remove release channel flags in semantic_index 2023-09-19 12:20:59 -04:00
Nate Butler
3a9f5d6ddc use u32 as indent_level
Co-Authored-By: Julia <30666851+ForLoveOfCats@users.noreply.github.com>
2023-09-19 11:59:55 -04:00
Nate Butler
748ad5f05a Make list_item toggleable, improve optional left_icon on list item
Co-Authored-By: Julia <30666851+ForLoveOfCats@users.noreply.github.com>
2023-09-19 11:52:35 -04:00
KCaverly
183758a7c5 fix Cargo.lock for merge 2023-09-19 11:44:51 -04:00
Nathan Sobo
89519b1521 WIP 2023-09-19 08:46:02 -06:00
Kirill Bulatov
9eadfc80ba Add Copilot server to LSP logs panel 2023-09-19 16:25:09 +03:00
Nate Butler
7e300079ce WIP 2023-09-19 08:31:22 -04:00
Kirill Bulatov
5b0b2fe50b Add a specific server id to a Copilot LSP 2023-09-19 12:32:05 +03:00
Kirill Bulatov
91fac2aa76 Automatically subscribe for lsp logs of every server added
Avoid re-adding the server on new logs events.
2023-09-19 11:52:21 +03:00
Nate Butler
26f442a675 Merge branch 'main' into nate/gpui2-ui-components 2023-09-19 00:26:41 -04:00
Nate Butler
8aa4fbea83 Add icon, list_item, work on project panel 2023-09-19 00:25:46 -04:00
Mikayla
dadad397ef Finish optimizing channel representations and operations 2023-09-18 20:24:37 -07:00
Nathan Sobo
2701be91e3 Add negative style helpers 2023-09-18 20:47:40 -06:00
Nathan Sobo
f2e87a3429 Add Element::when method 2023-09-18 20:25:12 -06:00
Nathan Sobo
c7a3186d08 Checkpoint 2023-09-18 20:17:27 -06:00
Nathan Sobo
a5e4ceb735 Checkpoint: Add methods for setting arbitrary lengths 2023-09-18 19:48:22 -06:00
Nate Butler
b725cadf48 Checkpoint 2023-09-18 19:59:01 -04:00
Nathan Sobo
df9a05ba92 Checkpoint 2023-09-18 17:40:47 -06:00
KCaverly
25bd357426 add recall and precision to semantic index 2023-09-18 18:25:02 -04:00
Conrad Irwin
71e519aa3b vim: Use explicit global, not default 2023-09-18 14:22:41 -06:00
Conrad Irwin
adf313bd33 Fix vim-related panic (#2986)
Release Notes:

- fix panic that happens during collaboration (preview-only)
2023-09-18 12:21:38 -06:00
Conrad Irwin
417f28effe Fix vim-related panic 2023-09-18 12:13:50 -06:00
Piotr Osiewicz
230061d838 chore: Enable v0 symbol mangling (#2985)
https://github.com/rust-lang/rust/issues/60705
Due to modification of .cargo/config.toml your `cargo build` should pick
this change up automatically. Use `legacy` instead of `v0` if you find
yourself in need of old mangling scheme for whatever reason
Release Notes:

- Improved precision of backtraces in application crashes
2023-09-18 18:58:59 +02:00
Piotr Osiewicz
616d328f3c chore: Use aho-corasick 1.1 in direct dependencies (#2983)
Nothing too fancy, we've depended indirectly on 1.0/1.1 already, so this
is essentially bookkeeping.

Release Notes:
- N/A
2023-09-18 17:01:08 +02:00
Conrad Irwin
5c22e40e99 vim: Fix Y on last line (#2975)
For zed-industries/community#2044

Release Notes:

- vim: Fix y in VISUAL LINE mode when last line has no trailing newline
([#2044](https://github.com/zed-industries/community/issues/2044)).
2023-09-18 08:54:48 -06:00
Conrad Irwin
5c8ff05577 clip FoldPoint earlier (#2982)
fold_point_to_display_point calls to_offset on the fold point, which
panics if it hasn't been clipped.

https://zed-industries.slack.com/archives/C04S6T1T7TQ/p1694850156370919

Release Notes:

- vim: Fix a crash when moving up/down in some circumstances.
2023-09-18 08:53:38 -06:00
Conrad Irwin
4244e7893f Clip twice 2023-09-18 08:28:21 -06:00
KCaverly
566bb9f71b add map to evaluation suite for semantic_index 2023-09-18 09:57:52 -04:00
Piotr Osiewicz
0598a8243d chore: Hoist non-generic part out of add_action_internal. (#2981)
add_action_internal shows up often in downstream crates (as it should
be, since it's a generic function it's codegened in each crate that uses
it); it adds non-trivial amounts of LLVM IR to the build as a whole
which we can cut down a bit by doing the inner fn trick.

Release Notes:

- N/A
2023-09-18 11:55:44 +02:00
Conrad Irwin
c4797f87b4 clip FoldPoint earlier
fold_point_to_display_point calls to_offset on the fold point, which
panics if it hasn't been clipped.

https://zed-industries.slack.com/archives/C04S6T1T7TQ/p1694850156370919
2023-09-16 12:58:39 -07:00
Mikayla Maki
c3f6fcc682 Added 'open in terminal' action to the project panel context menu (#2980)
Also slightly re-arranged the project panel context menu

Release Notes:

- Added an 'open in terminal' action to the context menu on folders in
the project panel
2023-09-15 21:49:04 -07:00
Mikayla
d46816589e Added 'open in terminal' action to the project panel context menu
Also slightly re-arranged the project panel context menu
2023-09-15 21:33:22 -07:00
Nate Butler
db1dacde5d Add facepile, indicator, follow_group 2023-09-15 22:10:51 -04:00
Mikayla
5f9c56c8b0 WIP: Send the channel name and the channel edges seperately, so we're not repeating them constantly
This commit is currently broken and includes debug data for a failed attempt at rewriting the insert_edge logic
2023-09-15 17:57:23 -07:00
Mikayla
363867c65b Make DAG tests order independent 2023-09-15 13:44:01 -07:00
Mikayla
52057c5619 Simplify path representation in collab panel
Optimize set representation in collab
2023-09-15 13:35:46 -07:00
Nate Butler
9f2a9d43b1 Organize design system under ui 2023-09-15 16:34:56 -04:00
Mikayla
5400605483 Fix merge conflicts 2023-09-15 12:30:26 -07:00
Joseph T. Lyons
5df9a57a8b Add assistant events (#2978)
Add assistant events

Release Notes:

- N/A
2023-09-15 15:25:35 -04:00
Kyle Caverly
b9c1f3d558 enable includes filtering for open and modified buffers (#2979)
enable include file filtering for semantic searching in open and
modified buffers

Release Notes:

- Added include based filtering for modified buffers
2023-09-15 15:23:24 -04:00
KCaverly
1433160a08 enable include based filtering for search inside open and modified buffers 2023-09-15 15:16:20 -04:00
Nate Butler
0aff0c105d Add missing logo_96 icon, fix a few incorrect paths (#2977)
🙈 I missed a few

Thanks @maxbrunsfeld / @mikayla-maki
2023-09-15 14:57:40 -04:00
Mikayla
f9fff3a7b2 fmt 2023-09-15 11:39:56 -07:00
Mikayla
16707d16f6 Improve context-menu behavior 2023-09-15 11:39:56 -07:00
Mikayla
d424e27164 Finish testing new channel store client behavior 2023-09-15 11:39:56 -07:00
Mikayla
67ad75a376 Clean up implementation of channel index, get simple channel moving test cases working 2023-09-15 11:39:56 -07:00
Mikayla
9afb67f2cf Implement final move, link, unlink db APIs 2023-09-15 11:39:56 -07:00
Mikayla
7fa68a9aa4 WIP: improve move and link handling around 'root paths', currently very incorrect and in need of a deeper rework 2023-09-15 11:39:56 -07:00
Mikayla
cda54b8b5f Improve database and RPC API for moving and linking channels, improve test legibility 2023-09-15 11:39:55 -07:00
Mikayla
439f627d9a Add move, link, and unlink operations 2023-09-15 11:36:58 -07:00
Mikayla
77cdbdb12a remove extraneous depth field 2023-09-15 11:28:36 -07:00
Mikayla
8222102d01 Render the DAG 2023-09-15 11:28:34 -07:00
Mikayla
3a62d2988a Finish integration tests for channel moving
Refactor channel store to combine the channels_by_id and channel_paths into a 'ChannelIndex'
2023-09-15 11:23:43 -07:00
Mikayla
9e68d4a8ea WIP: Add channel DAG related RPC messages, change update message 2023-09-15 11:23:12 -07:00
Nate Butler
9a4ecf0f88 Add missing logo_96 icon, fix a few incorrect paths 2023-09-15 14:21:33 -04:00
Mikayla
49fbb27ce9 Improve channel deletion to be DAG aware 2023-09-15 11:20:04 -07:00
Mikayla
bd9e964a69 Add removing of previous channel channel, allowing for channel moving operations 2023-09-15 11:20:04 -07:00
Mikayla
fc78db39ef Expand DAG tests to include more complex tree operations and removal behavior 2023-09-15 11:20:04 -07:00
Mikayla
d5512fad0d Add channel linking operation 2023-09-15 11:20:04 -07:00
Mikayla
aa9a9be7e9 Add channel moving test 2023-09-15 11:20:04 -07:00
Max Brunsfeld
119d1c9746 Reintroduce channel chat (#2945)
### Todo

* [x] Add back chat functionality, connected to channels
* [x] Channels panel
* [x] channels with active calls take up two rows, facepile goes on the
second row
* [x] icons for note, phone, (maybe chat) appear on the right of channel
names
    * [x] clicking a channel opens the chat
    * [x] style
* [x] Chat panel
    * [ ] Render markdown in chat messages
    * [x] style
* [x] Hide unless user is staff or has `channels_alpha` feature flag.
2023-09-15 11:19:34 -07:00
Max Brunsfeld
b8fd4f5d40 Restore user_group_16 icon 2023-09-15 11:16:30 -07:00
Nate Butler
d6f24feb4a WIP 2023-09-15 14:14:28 -04:00
Max Brunsfeld
3dba52340e Update paths to moved icons 2023-09-15 11:14:04 -07:00
Max Brunsfeld
6c3fd2a687 Merge branch 'main' into chat-again 2023-09-15 11:06:39 -07:00
Nate Butler
40e785fdff Merge branch 'main' into nate/gpui2-ui-components 2023-09-15 13:57:15 -04:00
Nate Butler
4c9100eae3 Unify icons using multiple variants, remove all unused icons (#2974)
There are around ~400 icons in the `assets/icons` folder, but in reality
including file icons we only use around 50. In a number of places we use
different variants of the same icon, even in different styles.

This PR unifies the icons we use, removes the duplicates, and cleans out
unused icons.

Release Notes:

- Made icons more consistent throughout the app.
2023-09-15 13:55:13 -04:00
Conrad Irwin
b02bd9bce1 Fix Y on last line with no trailing new line
For zed-industries/community#2044
2023-09-15 11:14:04 -06:00
Max Brunsfeld
099969ed79 Ensure the chat panel is fully feature flagged 2023-09-15 10:13:43 -07:00
Nate Butler
966da65293 Fix notification close icon size 2023-09-15 12:59:57 -04:00
Nate Butler
29cd00f78d Fix close tab icon size 2023-09-15 12:56:49 -04:00
Nate Butler
24974ee2fa Unify icons using multiple variants, remove all unused icons 2023-09-15 12:50:49 -04:00
Conrad Irwin
0617bab731 Make cargo test -p gpui work (#2972)
Fix from @maxbrunsfeld
https://zed-industries.slack.com/archives/C04S5TU0RSN/p1694722631644249
2023-09-15 10:38:48 -06:00
Conrad Irwin
3eb2b75e6f vim: shift-d and shift-x in visual mode (#2973)
Release Notes:

- vim: Support `shift-d` and `shift-x` to delete in visual mode
2023-09-15 10:38:37 -06:00
Conrad Irwin
9ef7004383 Add shift-d and shift-x as aliases for d and x in visual mode 2023-09-15 10:26:43 -06:00
Conrad Irwin
3e01d78a80 Make cargo test -p gpui work 2023-09-15 10:24:12 -06:00
Conrad Irwin
7c77baa7c1 Fix multi-character shortcuts with modifiers (#2968)
This moves the IME shortcut handling over to the keystroke matcher so
that it
can not clear pending matches when trying out the IME equivalent.

Release Notes:

- vim: add `g s` / `g S` to show symbols in the current buffer /
workspace
- Fix multi-key shortcuts with modifiers (preview-only)
2023-09-15 10:15:01 -06:00
Nate Butler
70a91c5426 Checkpoint 2023-09-15 11:41:21 -04:00
Joseph T. Lyons
f4e40b3411 Ignore .idea directory
I'm testing RustRover
2023-09-15 11:17:02 -04:00
KCaverly
04bd107ada add ndcg@k to evaluate metrics 2023-09-15 10:36:21 -04:00
KCaverly
3a661c5977 catchup with main 2023-09-15 09:31:33 -04:00
Antonio Scandurra
c9863d6475 Don't dismiss inline assistant when an error occurs (#2971)
Release Notes:

- Fixed a bug that was preventing errors from being shown in the inline
assistant when it was still deployed. (preview-only)
2023-09-15 12:36:50 +02:00
Antonio Scandurra
925da97599 Don't dismiss inline assistant when an error occurs 2023-09-15 12:32:37 +02:00
Antonio Scandurra
a1250b8525 Include modified buffers in semantic search results (#2970)
This pull request introduces an additional step to
`SemanticIndex::search_project` that includes the content of buffers
that are modified but haven't been saved yet. In most cases, the buffer
will contain a small portion of changed spans that are potentially not
included in the index. To reuse all the other spans that haven't
changed, we will query the database for embeddings by their digest. This
means we have to index spans by their digest, which means some penalty
when writing, but in our tests this didn't seem to make indexing much
slower.

Release Notes:

- Improved semantic search to include results from modified buffers.
(preview-only)
2023-09-15 12:24:10 +02:00
Antonio Scandurra
ae85a520f2 Refactor semantic searching of modified buffers 2023-09-15 12:12:20 +02:00
Kirill Bulatov
8d3c251cc2 Rework inlay hover model (#2969)
Fixes
```
thread 'main' panicked at 'byte index 2 is not a char boundary; it is inside '…' (bytes 0..3) of `…)`'
```
panics like
https://zed-industries.slack.com/archives/C04S6T1T7TQ/p1694535396473329

by reworking the inlay hover model:
* avoid storing "hardcoded" coordinates of hovered inlay labels (such as
`InlayOffset`), instead, remember `inlay_id` and apply required
highlights there when hint with the same id is handled
* add randomized tests on inlay highlights
* sped up inlay hint cache lookup by inlay_id

As a downside, background highlights are no long appearing on inlay
hints, but Zed does not receive any tooltips for inlays anyway (r-a does
not send them for some reason, other LSP seem to have no such feature?),
so it does not matter now.
Nontheless, if the logic for displaying hint pop-ups is present and
works for harcoded tooltips in r-a, only background highlight is missing
now.

Release Notes:

- Fixed inlay hint highlights causing panic for certain cases with
"large" characters
2023-09-15 10:40:02 +03:00
Kirill Bulatov
8c1df5afa2 Empty both hint cache storages correctly 2023-09-15 10:33:32 +03:00
Nathan Sobo
0a2a5be71c Checkpoint 2023-09-14 21:42:56 -06:00
Max Brunsfeld
492e961e82 Bump protocol version 2023-09-14 18:39:31 -07:00
Max Brunsfeld
6ce672fb32 Add tooltips and actions for opening notes+call from chat
No keyboard shortcut yet.
2023-09-14 18:38:37 -07:00
Max Brunsfeld
b75971196f Add buttons for opening channel notes and joining call, in chat panel header 2023-09-14 18:05:44 -07:00
Nathan Sobo
4fd4f44bb7 Checkpoint 2023-09-14 18:51:03 -06:00
Max Brunsfeld
dd7c687041 Style the chat panel further 2023-09-14 17:19:08 -07:00
KCaverly
796bdd3da7 update searching in modified buffers to accomodate for excluded paths 2023-09-14 19:42:06 -04:00
Max Brunsfeld
59269d422b Allow deleting chat messages 2023-09-14 16:29:40 -07:00
Nathan Sobo
378b2fbd9e WIP 2023-09-14 16:52:04 -06:00
Nathan Sobo
1f9b52d5e1 Checkpoint 2023-09-14 16:19:48 -06:00
Max Brunsfeld
89327eb84e Start styling the chat panel 2023-09-14 15:16:08 -07:00
Nathan Sobo
b30bb56483 Checkpoint 2023-09-14 16:14:42 -06:00
Max Brunsfeld
9d8c6a7ed1 Merge branch 'main' into chat-again 2023-09-14 14:50:45 -07:00
Nathan Sobo
ba22da00bf Checkpoint 2023-09-14 15:49:54 -06:00
Nathan Sobo
cee5ddee53 Checkpoint 2023-09-14 15:34:39 -06:00
Piotr Osiewicz
a1353b8bb9 search_bar: Add toggle_replace_on_a_pane. (#2966)
This allows users to add a keybind to ToggleReplace from Editor/Pane
contexts.

Release Notes:
- Fixed replace in buffer not reacting to keyboard shortcuts outside of
search bar<preview-only>.
2023-09-14 23:25:27 +02:00
Nathan Sobo
c74c60a629 Slotmaps 2023-09-14 15:21:49 -06:00
Kirill Bulatov
e7b5880af0 Combine both text and inlay highlights in randomized tests 2023-09-14 23:53:56 +03:00
Max Brunsfeld
877d67b97d Provide an admin REST API for use by zed.dev (#2962)
We're using [PostgREST](https://hub.docker.com/r/postgrest/postgrest)

Todo:
* [x] Add instructions for installing postgrest to local development
docs
* [x] Deploy to staging
* [x] Deploy to production
* [x] Add DNS record for `admin-staging.zed.dev` pointing to the staging
db
* [x] Add a DNS record for `admin.zed.dev` pointing to the production db
2023-09-14 13:48:54 -07:00
Nathan Sobo
e4f8fe941e Checkpoint 2023-09-14 14:47:02 -06:00
Nathan Sobo
b9e1ca1385 Checkpoint 2023-09-14 14:42:04 -06:00
Kirill Bulatov
f9b70718ac Store hints in the map, not the snapshot 2023-09-14 23:36:33 +03:00
Conrad Irwin
4667110d0f Fix multi-key shortcuts with modifiers
To make this work we need to move the handling of multiple possible key
events into the keyboard shortcut system.

This was broken in #2957.
2023-09-14 14:35:17 -06:00
Kirill Bulatov
4e9f0adcef Improve inlay hint cache lookup 2023-09-14 23:31:50 +03:00
Kirill Bulatov
8ae3f79235 Restructure inlay highlights data for proper access 2023-09-14 23:05:22 +03:00
Conrad Irwin
06555a423b vim: g s/S for outline/project symbols 2023-09-14 13:49:02 -06:00
Kyle Caverly
9b901df256 small fix to rate status update (#2967)
Small fix to update code for rate limiting status.

Release Notes (Preview only)
- Fixed update to only stop updating status, when the rate limit is
reset to None
2023-09-14 15:43:30 -04:00
KCaverly
8ff3e37044 small fix to rate status update 2023-09-14 15:42:21 -04:00
Kirill Bulatov
9b43acfc88 Remove useless background highlights code 2023-09-14 22:18:30 +03:00
Kirill Bulatov
396efec6e1 Uncomment the rest of the tests 2023-09-14 22:18:26 +03:00
Kirill Bulatov
47e0535f1c Randomize inlay highlight range start 2023-09-14 22:08:12 +03:00
Kirill Bulatov
129fb62182 Consider offsets in inlay chunks 2023-09-14 22:08:12 +03:00
Kirill Bulatov
a9de6c3dba Properly handle inlay highlights in the InlayMap
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-09-14 22:08:12 +03:00
Kirill Bulatov
80b96eb05b Add inlay highlight test 2023-09-14 22:08:12 +03:00
Kirill Bulatov
42bd2be2f3 Implement inlay highlighting 2023-09-14 22:08:12 +03:00
Kirill Bulatov
890a587254 Use standalone inlay background highlights 2023-09-14 22:08:12 +03:00
Kirill Bulatov
9f5314e938 Unify highlights in *Map 2023-09-14 22:08:12 +03:00
Kirill Bulatov
6c00cd8a35 Do not combine inlay and text highlights on the *Map level 2023-09-14 22:08:12 +03:00
KCaverly
c19c8899fe add initial search inside modified buffers 2023-09-14 14:58:34 -04:00
Piotr Osiewicz
1eb74acb3e editor: Do not run brace completion on empty text. (#2965)
Users of keyboard layout with IME complained about the peculiar
behaviour where typing in "sss" and then removing all of it left behind
one 's' and also appended a closing brace. This was not reproducible on
a buffer without language, so I've suspected that brace insertion might
be a problem here. For whatever reason when the user removes the last
character from a run that triggered IME, we receive a notification about
an empty insertion. Sadly, brace completion does not handle an empty
input properly and we erroneously insert a closing brace when deleting
the followup characters. In fact, the brace inserted is always the
closing brace for the first entry in language's config.toml 'brackets'
field (see Scheme vs Markdown). This guard also allows for the proper
removal of the first character.

Closes community tickets zed-industries/community#877
zed-industries/community#1329

Z-2869

Release Notes:
- Fixed handling of bracket completion for international keyboard
layouts that use IME. This led to Zed erroneously inserting the `}`
character while removing the first character that triggered IME.
2023-09-14 20:24:21 +02:00
Antonio Scandurra
f86e5a987f WIP 2023-09-14 17:42:30 +02:00
Antonio Scandurra
6a271617b4 Make path optional when parsing file
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-09-14 17:09:08 +02:00
KCaverly
137dda3ee6 wip eval framework for semantic index 2023-09-14 09:30:19 -04:00
Joseph T. Lyons
24698b61fd Fix toggle replace tooltip (#2964)
Release Notes:

- N/A
2023-09-13 20:24:05 -04:00
Joseph T. Lyons
15bdff1c5b Fix toggle replace tooltip 2023-09-13 20:19:14 -04:00
KCaverly
0c1b2e5aa6 cleaned up warnings 2023-09-13 20:04:53 -04:00
KCaverly
eff44f9aa4 semantic index eval, indexing appropriately 2023-09-13 20:02:15 -04:00
Max Brunsfeld
18c899a0a8 Remove dead code for old admin pages 2023-09-13 15:02:59 -07:00
Max Brunsfeld
4ea6d12fe2 Document that PostgREST needs to be installed for running locally 2023-09-13 13:46:17 -07:00
Max Brunsfeld
dddd37f8a6 Run postgrest as part of foreman
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-09-13 12:32:15 -07:00
Max Brunsfeld
3910efe3ab Use PostgREST instead of pgAdmin
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-09-13 11:47:20 -07:00
Nate Butler
fd10b49742 Fix .active() interaction state
Co-Authored-By: Nathan Sobo <1789+nathansobo@users.noreply.github.com>
2023-09-13 13:56:13 -04:00
Joseph T. Lyons
974bc07631 collab 0.21.0 2023-09-13 13:34:08 -04:00
Nathan Sobo
1c20a8cd31 Checkpoint 2023-09-13 11:07:24 -06:00
Max Brunsfeld
c4a5caa587 Get pgadmin loading the passfile 2023-09-13 10:05:13 -07:00
Nate Butler
a316e25034 Checkpoint 2023-09-13 12:50:01 -04:00
Nate Butler
f54f2c52e9 Checkpoint 2023-09-13 12:40:28 -04:00
Joseph T. Lyons
a6cb5f99f3 v0.105.x dev 2023-09-13 12:22:33 -04:00
Nathan Sobo
1adb7fa58c Checkpoint 2023-09-13 09:28:04 -06:00
Nathan Sobo
dcf6059a15 Checkpoint 2023-09-13 08:55:14 -06:00
KCaverly
6f29582fb0 progress on eval 2023-09-13 10:32:36 -04:00
Nathan Sobo
8a6e9f90be Checkpoint 2023-09-13 08:13:45 -06:00
Antonio Scandurra
5697a87f4a Fix indentation issues when generating or transforming code with inline assistant (#2961)
This pull request extracts a separate `Codegen` struct that models the
interaction with OpenAI and takes care of diffing, auto-indenting and
reporting regions to highlight.

As part of this refactoring, we're now relying less on the AI model to
indent code. The new logic lets tree-sitter decide how the first line
should be indented. Then, for every subsequent line reported by ChatGPT,
it calculates an indent delta relative to the first reported line and
applies it to the indent level chosen by tree-sitter.

Release Notes:

- Improved auto-indentation when using the inline assistant.
2023-09-13 12:45:44 +02:00
Antonio Scandurra
127d03516f Diff lines one chunk at a time after discovering indentation 2023-09-13 11:57:10 +02:00
Antonio Scandurra
70c9b8f8fd Merge remote-tracking branch 'origin/main' into polish-codegen 2023-09-13 11:41:32 +02:00
Antonio Scandurra
b8c437529c Never use the indentation that comes from OpenAI 2023-09-13 11:40:28 +02:00
Nathan Sobo
77af33ba5d WIP 2023-09-13 00:03:56 -06:00
Max Brunsfeld
94db0be3ec Start work on deploying pgAdmin to k8s cluster
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-09-12 21:06:43 -07:00
Max Brunsfeld
54838664ae Retrieve load balancer certificate id from DigitalOcean on each deploy
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-09-12 21:04:59 -07:00
Nathan Sobo
faabed1df0 Checkpoint 2023-09-12 21:34:03 -06:00
Nathan Sobo
cae5c76bed Checkpoint 2023-09-12 21:07:35 -06:00
Nathan Sobo
53b698adb6 Checkpoint 2023-09-12 20:40:05 -06:00
KCaverly
d4fbe99052 add eval for gpt-engineer 2023-09-12 21:27:35 -04:00
KCaverly
0d14bbbf5b add eval values for tree-sitter 2023-09-12 20:36:06 -04:00
Conrad Irwin
329a0724e0 vim counts (#2958)
Release Notes:

- vim: Fix counts with operators (`2yy`, `d3d`, etc.)
([#1496](https://github.com/zed-industries/community/issues/1496))
([#970](https://github.com/zed-industries/community/issues/970)).
- vim: Add support for counts with insert actions (`2i`, `2o`, `2a`,
etc.)
- vim: add `_` and `g_`
2023-09-12 14:32:00 -06:00
KCaverly
66c967da88 start work on eval script for semantic_index 2023-09-12 16:25:31 -04:00
Piotr Osiewicz
a63b78d5a0 Replace in buffer adjustments (#2960)
This PR addresses feedback from @maxbrunsfeld on new replace in buffer.
It fixes:
- missing padding surrounding replace input.
- missing padding around replace buttons.
- missing `.notify` call which made the replace fields not show up
immediately sometimes.

Release Notes:
- N/A

---------

Co-authored-by: Max <max@zed.dev>
2023-09-12 22:08:39 +02:00
Julia
65e0a67625 Lsp status bugfix (#2959)
Release Notes:
- Fixed a case where language server download statuses could be skipped.
- Fixed a case where language server diagnostic progress could get stuck
when restarting a language server.
2023-09-12 15:59:00 -04:00
Nate Butler
bbc4673f17 Checkpoint 2023-09-12 15:18:13 -04:00
Julia
c6f293076e Avoid keeping stale LSP progress indicator state when server is removed 2023-09-12 15:14:49 -04:00
Conrad Irwin
0958def770 Remove another supported exemption 2023-09-12 12:48:36 -06:00
Nathan Sobo
dc2733998e WIP 2023-09-12 12:43:08 -06:00
Max Brunsfeld
d97c9d8dfd Merge branch 'main' into chat-again 2023-09-12 11:26:54 -07:00
Julia
b0facf8e1e Use unbounded channel(s) for LSP binary status messaging
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-09-12 13:45:36 -04:00
Piotr Osiewicz
4cb8647702 Z 1200/replace in buffer (#2922)
This is still WIP, mostly pending styling. I added a pretty rudimentary
text field and no buttons whatsoever other than that. I am targeting a
Preview of 09.13, as I am gonna be on PTO for the next week.

I dislike the current implementation slightly because of `regex`'s crate
syntax and lack of support of backreferences. What strikes me as odd wrt
to syntax is that it will just replace a capture name with empty string
if that capture is missing from the regex. While this is perfectly fine
behaviour for conditionally-matched capture groups (e.g. `(foo)?`), I
think it should still error out if there's no group with a given name
(conditional or not).
Release Notes:

- Added "Replace" functionality to buffer search.
2023-09-12 18:46:54 +02:00
Conrad Irwin
dcaba9d9e7 Remove supported exception
(and refactor tests to be more linear)
2023-09-12 10:13:24 -06:00
Conrad Irwin
7daed1b2c3 Fix 0 used in a count 2023-09-12 09:56:23 -06:00
Nate Butler
0d161519e4 Checkpoint 2023-09-12 11:34:27 -04:00
Nathan Sobo
5dad97779a WIP 2023-09-12 07:34:42 -06:00
Conrad Irwin
c2c521015a Fix bug where cursors became invisible if replaying was interrupted 2023-09-11 20:56:22 -06:00
Max Brunsfeld
1c50587cad Remove channel chat participant when connection is lost 2023-09-11 17:37:05 -07:00
Conrad Irwin
76d55244a1 Clear counts when switching modes 2023-09-11 18:30:31 -06:00
Max Brunsfeld
f2112b9aad Rejoin channel chats upon reconnecting 2023-09-11 17:11:33 -07:00
Conrad Irwin
d868d00985 vim: ALlow counts on insert actions
This re-uses the existing repeat infrastructure.
2023-09-11 18:09:47 -06:00
Max Brunsfeld
f53a1ee46d Put channel call participants back in channel row
Open both the channel notes and the channel chat when clicking a channel
2023-09-11 13:44:41 -07:00
Conrad Irwin
cee549e1ef vim: Fix count handling to allow pre/post counts
Fixes 2yy, d3d, etc.

For zed-industries/community#970
For zed-industries/community#1496
2023-09-11 14:35:47 -06:00
Conrad Irwin
e8a6ecd6ac Allow a count with CurrentLine
Add _ and g_ too while we're here.
2023-09-11 14:19:43 -06:00
Nathan Sobo
3ba8857491 Checkpoint 2023-09-11 12:58:55 -06:00
Nate Butler
c545788168 Add Storybook Components (#2956)
[[PR Description]]

Started building out some early components in the storybook using a
modified version of the classic Atomic Design model @mikayla-maki and I
are exploring.

<img width="1134" alt="atomic_design"
src="https://github.com/zed-industries/zed/assets/1714999/9093a8b5-a71d-41d4-bae2-f7562494c5f3">

This PR adds a few things:

- `tab`, `tab_bar` and `icon_button` components
- Dynamic documentation for the proc macro generated methods like `w_8`,
`px_2`, etc.
- Continues to build out the Zed workspace demo

Release Notes:

- N/A
2023-09-11 14:47:35 -04:00
Kirill Bulatov
017aa1fdfb Allow installing rustup via homebrew 2023-09-11 21:35:08 +03:00
Nathan Sobo
fe6f0a253b Merge remote-tracking branch 'origin/main' into chat-again 2023-09-11 12:08:01 -06:00
Conrad Irwin
0c2bc6e553 Fix some international keybindings (#2957)
This adds primitive interaction with the IME system for keyboard
shortcuts in zed.

- Consult the IME functionality when handling keyboard shortcuts. This
allows you to bind to characters (like " on a Brazillian keybaord, or $
on a Czech keyboard) that aren't typed with an unmodified key.
([#1981](https://github.com/zed-industries/community/issues/1981))
([#1913](https://github.com/zed-industries/community/issues/1913))

Co-authored-with: Antonio Scandurra <me@as-cii.com>
2023-09-11 11:56:57 -06:00
Conrad Irwin
e017dc6a5e Fix ctrl-` on Brazillian too 2023-09-11 11:33:04 -06:00
Conrad Irwin
0a6e577e10 Fix some international keybindings
This adds primitive interaction with the IME system for keyboard
shortcuts in zed.

For zed-industries/community#1981
For zed-industroes/community#1913
2023-09-11 10:35:42 -06:00
Conrad Irwin
b922d0f132 Use rustup (not brew) for rust 2023-09-11 10:15:22 -06:00
Piotr Osiewicz
f66dd43a84 Z 2620 - Sort command palette's entries by name and use count (#2954)
Release Notes:
- Improved command palette's command ordering; commands are sorted
lexicographically and by command's use count in the current session.
2023-09-11 17:50:09 +02:00
Nate Butler
c7ad89d7fa Merge branch 'main' into nate/storybook-components 2023-09-11 11:49:49 -04:00
Nate Butler
04fc9d2d33 Fix incorrect workspace order 2023-09-11 11:42:54 -04:00
Nate Butler
1376115db2 Use enabled for active tabs 2023-09-11 11:40:03 -04:00
Nathan Sobo
c3a3543ebb Introduce gpui2 and storybook crates (#2919)
This PR splits `crates/gpui/playground` with two new crates: `gpui2` and
`storybook`.

GPUI 2 re-exports most of `gpui`, but makes some adjustments. I want to
keep the scope focused. This isn't literally version 2.0 of GPUI or
anything. It's just a convenient way to make a create with fewer
dependencies where we can iterate quickly on aspects of GPUI's design.
Most of the focus is on improving our approach to element layout and
styling.

The `storybook` crate is pretty empty for now, but it's where I intend
to start rebuilding interfaces. I welcome anyone else to join me in
this, though until I get one interface fully built, buyer beware. You
may need to pair on it with me.
2023-09-11 09:19:43 -06:00
Nathan Sobo
15ea4af5e7 Merge branch 'main' into storybook 2023-09-11 09:13:46 -06:00
Nate Butler
917884ffaf Restructure storybook modules and components
Co-Authored-By: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
2023-09-11 11:05:10 -04:00
Nathan Sobo
e0fdc7d0aa Eliminate PaintContext 2023-09-11 09:00:59 -06:00
Nathan Sobo
a24d94cfda Eliminate LayoutContext 2023-09-11 08:47:00 -06:00
Kyle Caverly
d4da5540ac Rate limiting status (#2955)
Add a rate limit remaining status to Project Search Semantic Search
minor text

Release Notes (Preview-Only):

- Added tracking functionality within EmbeddingProvider, to track rate
limit expiry
- Update minor text within Project Search to show countdown remaining
before rate limit expiry
2023-09-11 10:40:11 -04:00
Nate Butler
2774eae21a Checkpoint 2023-09-11 10:36:49 -04:00
KCaverly
74ab41000b Merge branch 'main' of github.com:zed-industries/zed into rate_limiting_status 2023-09-11 10:26:22 -04:00
KCaverly
e678c7d9ee swap
SystemTime for Instant throughout rate_limit_expiry tracking
2023-09-11 10:26:14 -04:00
KCaverly
7df21f86dd move cx notify observe for rate_limit_expiry into ProjectState in the semantic index
Co-authored-by: Antonio <antonio@zed.dev>
2023-09-11 10:11:40 -04:00
Antonio Scandurra
6d9333dc3b Add a failing test for codegen autoindent 2023-09-11 14:35:15 +02:00
Antonio Scandurra
02078140c0 Extract code generation logic into its own module 2023-09-11 11:25:37 +02:00
Mikayla Maki
49c80201f3 Add syntax highlighting for nu (#2952)
Unfortunately, their language server implementation uses [VSCode
directly](https://github.com/neovim/nvim-lspconfig/issues/2592), so I
don't think we can bundle it in yet. For reference, I also started
prepping a [Zed
repository](https://github.com/zed-industries/nushell-lsp) for serving
the nu language server but have archived it since discovering the issue.

Release Notes:

- Added syntax highlighting for Nushell script files
2023-09-09 16:00:55 -07:00
Mikayla
2be34ef254 Add syntax highlighting for nu scripts 2023-09-09 15:39:39 -07:00
Nate Butler
e84e791dde Checkpoint 2023-09-09 17:51:23 -04:00
Mikayla
ef03e206d6 WIP: Add nushell support 2023-09-09 14:01:53 -07:00
Nate Butler
9bb8eae985 init tab_bar 2023-09-09 13:38:57 -04:00
Nate Butler
69f380b689 Fix doc typo 2023-09-09 11:30:35 -04:00
Nate Butler
5ad9a6bb3c Add docs for styleable_helpers proc macros 2023-09-09 11:29:31 -04:00
Conrad Irwin
7cc05c99c2 Update getting started
Just ran through this again.
2023-09-08 23:46:12 -06:00
Nate Butler
8dd6fcc186 Add icon_button 2023-09-08 22:16:12 -04:00
Max Brunsfeld
f5f85b3f76 Add missing notify when changing ChatPanel's channel 2023-09-08 17:29:16 -07:00
Max Brunsfeld
c2121c25c1 Restructure collab panel to allow opening chat + notes w/ one click 2023-09-08 17:06:39 -07:00
Max Brunsfeld
a91f5244a9 Mute on join if ZED_IMPERSONATE is set 2023-09-08 16:24:37 -07:00
Conrad Irwin
e29ce489c8 vim: Add ZZ and ZQ (#2950)
The major change here is a refactoring to allow controling the save
behaviour when closing items, which is pre-work needed for vim command
palette.

For zed-industries/community#1868

Release Notes:

- vim: Add `ZZ` and `ZQ` to close the current item.
([#1868](https://github.com/zed-industries/community/issues/1868))
2023-09-08 16:58:04 -06:00
Conrad Irwin
4c92172cca Partially roll back refactoring 2023-09-08 16:49:50 -06:00
Conrad Irwin
ba1c350dad vim: Add ZZ and ZQ
The major change here is a refactoring to allow controling the save
behaviour when closing items, which is pre-work needed for vim command
palette.

For zed-industries/community#1868
2023-09-08 16:25:20 -06:00
Nathan Sobo
ebf8b32811 Checkpoint 2023-09-08 16:25:10 -06:00
Nathan Sobo
6b23f74636 Checkpoint 2023-09-08 16:08:31 -06:00
KCaverly
37915ec4f2 updated notify to accomodate for updated countdown 2023-09-08 16:53:16 -04:00
Max Brunsfeld
ed7bc91dbd Create chat panel settings 2023-09-08 13:28:19 -07:00
Nathan Sobo
362b1a44be Merge branch 'main' into storybook 2023-09-08 14:18:44 -06:00
Nathan Sobo
c3b1264c05 Checkpoint 2023-09-08 14:09:29 -06:00
Nathan Sobo
14fc386dc8 Checkpoint 2023-09-08 13:54:15 -06:00
Nathan Sobo
53a50b8df4 Move refreshing to window 2023-09-08 13:27:29 -06:00
KCaverly
bf43f93197 updated semantic_index reset status to leverage target reset system time as opposed to duration 2023-09-08 15:04:50 -04:00
Conrad Irwin
5d782b6cf0 vim . to replay (#2936)
Release Notes:

- vim: Add `.` to replay
([#946](https://github.com/zed-industries/community/issues/946))
- vim: Fix `J` in visual mode, and with counts.
2023-09-08 11:52:35 -06:00
Conrad Irwin
88dae22e3e Don't replay ShowCharacterPalette 2023-09-08 11:35:00 -06:00
Conrad Irwin
f069cd0485 Fix f,t on soft-wrapped lines (#2940)
Release Notes:

- vim: fix `f` and `t` on softwrapped lines
2023-09-08 11:34:12 -06:00
Max Brunsfeld
ddda5a559b Restore chat functionality with a very rough UI 2023-09-08 09:59:35 -07:00
Joseph T. Lyons
e1d4d911b4 Add tooltip to language selector (#2949)
Release Notes:

- N/A
2023-09-08 12:48:37 -04:00
Joseph T. Lyons
a0701777d5 Make tooltip title case to match other tooltips 2023-09-08 12:44:49 -04:00
Joseph T. Lyons
f4a9d3f269 Add tooltip to language selector 2023-09-08 12:41:32 -04:00
KCaverly
a5ee8fc805 initial outline for rate limiting status updates 2023-09-08 12:35:15 -04:00
Julia
87472a9de6 Fix Python's cached binary retrieval being borked (#2948)
We fixed this while brainstorming a better approach to handle server
binaries and if we already have a fix for this one then we might as well
have this not be broken while the new mechanism is being built

Release Notes:

- Fixed Python language server not launching without a network
connection.
2023-09-08 12:21:18 -04:00
Nathan Sobo
21d390fa4a Support overflow scroll 2023-09-08 10:20:45 -06:00
Conrad Irwin
5f897f45a8 Fix f,t on soft-wrapped lines
Also remove the (dangerously confusing) display_map.find_while
2023-09-08 10:16:46 -06:00
Julia
74ccb3df63 Fix Python's cached binary retrieval being borked
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-09-08 12:09:31 -04:00
Nathan Sobo
713d72942d Fix bounds calculations 2023-09-08 06:45:23 -06:00
Nathan Sobo
7738867639 Always pass parent origin when painting elements 2023-09-08 06:32:20 -06:00
Antonio Scandurra
e9747d0fea Find keystrokes defined on a child but handled by a parent (#2947)
This fixes a bug that was preventing keystrokes from being shown on
tooltips for the "Buffer Search" and "Inline Assist" buttons in the
toolbar.

This pull request makes the behavior of `keystrokes_for_action` more
consistent with the behavior of `available_actions`. It seems reasonable
that, if a child view defines a keystroke for an action and that action
is handled on a parent, we should show the child's keystroke.

Release Notes:

- Fixed a bug that was preventing certain keystrokes from being shown in
tooltips.
2023-09-08 14:11:30 +02:00
Antonio Scandurra
ddc8a126da Find keystrokes defined on a child but handled by a parent
This fixes a bug that was preventing keystrokes from being shown on tooltips
for the "Buffer Search" and "Inline Assist" buttons in the toolbar.

This commit makes the behavior of `keystrokes_for_action` more consistent with
the behavior of `available_actions`. It seems reasonable that, if a child view
defines a keystroke for an action and that action is handled on a parent, we
should show the child's keystroke.
2023-09-08 12:50:59 +02:00
Antonio Scandurra
6ad2ec4825 Make channel notes act as an editor to enable inline assistant (#2946)
I think it should be fine to make channel notes act as editors, so I'll
go ahead and merge this but cc'ing @mikayla-maki and @maxbrunsfeld, in
case I'm overlooking something.

Release Notes:

- Added the inline assistant to channel notes.
2023-09-08 11:51:14 +02:00
Antonio Scandurra
4e818fed4a Make channel notes act as an editor to enable inline assistant 2023-09-08 11:20:49 +02:00
Nathan Sobo
d311bd04ff Add basic inspector 2023-09-07 22:24:02 -06:00
Max Brunsfeld
da5a77badf Start work on restoring server-side code for chat messages 2023-09-07 16:32:49 -07:00
Nate Butler
e7760e1a3f Outline workspace 2023-09-07 16:25:02 -04:00
Nate Butler
ab8a9e912f Remove accidentally added files 2023-09-07 16:19:06 -04:00
Nathan Sobo
4307a06073 WIP 2023-09-07 14:16:44 -06:00
Max Brunsfeld
e7b7ac9d8c Make toolbar horizontal padding more consistent (#2944)
* increase horizontal padding of toolbar itself, remove padding that was
added to individual toolbar items like feedback button.
* make feedback info text and breadcrumbs have the same additional
padding as quick action buttons.

Release Notes:

- Fixed some inconsistencies in the layout of toolbars.
2023-09-07 13:12:26 -07:00
Nate Butler
14ea5a1485 Checkpoint 2023-09-07 16:01:32 -04:00
Max Brunsfeld
56d9a578bd Make toolbar horizontal padding more consistent
* increase horizontal padding of toolbar itself, remove padding
  that was added to individual toolbar items like feedback button.
* make feedback info text and breadcrumbs have the same additional padding as
  quick action buttons.
2023-09-07 12:53:46 -07:00
Nate Butler
5fb9c60905 Checkpoint 2023-09-07 15:33:50 -04:00
Julia
5b0f4ac9e8 Stop LiveKitBridge Package.resolved from constantly updating (#2943)
Stop that damned LiveKitBridge Package.resolved from continually
changing and act more like a lock file

Release Notes:

- N/A
2023-09-07 14:58:55 -04:00
Julia
4d2933a4d7 Include JS template literal as string type for overrides (#2939)
Allows us to trigger Tailwind completions within template literals in
JSX elements

Release Notes:
- Fixed Tailwind autocomplete not appearing in template literals.
2023-09-07 14:58:41 -04:00
Kyle Caverly
560d6b1644 update semantic search to show no results if search query is blank (#2942)
Update semantic search to show no search results if search query is
blank
2023-09-07 14:58:00 -04:00
Julia
a6ce382368 Stop LiveKitBridge Package.resolved from constantly updating 2023-09-07 14:50:36 -04:00
KCaverly
cf5d1d91a4 update semantic search to go to no results if search query is blank 2023-09-07 14:43:41 -04:00
Max Brunsfeld
3422eb65e8 Restore channel chat model and panel view 2023-09-07 11:38:27 -07:00
Antonio Scandurra
98999b1e9a Start indexing right away when project was already indexed before (#2941)
Release notes:
- Improved semantic search indexing to start in the background if the
project was already indexed before.
2023-09-07 19:47:26 +02:00
Antonio Scandurra
eda7e00645 Implement SemanticIndex::status and use it in project search
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-09-07 19:39:30 +02:00
Nate Butler
f7b2edb59a Checkpoint 2023-09-07 13:15:38 -04:00
Conrad Irwin
8e2e00e003 add vim-specific J (with repeatability) 2023-09-07 11:08:07 -06:00
Antonio Scandurra
47d7aa0b91 Allow searching before indexing is complete
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-09-07 19:04:45 +02:00
Nate Butler
17c5bbfd96 Update titlebar style 2023-09-07 12:58:42 -04:00
Nate Butler
23a8d8fba4 Merge workspace and collab panel demos 2023-09-07 12:55:47 -04:00
Antonio Scandurra
65e17e212d Eagerly index project on workspace creation if it was indexed before
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-09-07 18:51:55 +02:00
Conrad Irwin
48bb2a3321 TEMP 2023-09-07 10:51:18 -06:00
Nate Butler
a87711d157 Merge branch 'nate/wip-storybook-workspace' into storybook 2023-09-07 12:51:05 -04:00
Conrad Irwin
1b1d7f22cc Add visual area repeating 2023-09-07 10:45:38 -06:00
Julia
1969a12a0b Include JS template literal as string type for overrides 2023-09-07 10:55:04 -04:00
Nathan Sobo
37ef28a3bf Merge branch 'main' into storybook 2023-09-07 07:56:57 -06:00
Antonio Scandurra
3b784668c0 Rework how we track projects and worktrees in semantic index (#2938)
This pull request introduces several improvements to the semantic search
experience. We're still missing collaboration and searching modified
buffers, which we'll tackle after we take a detour into reducing the
number of tokens used to generate embeddings.

Release Notes:

- Fixed a bug that could prevent semantic search from working when
deploying right after opening a project.
- Fixed a panic that could sometimes occur when using semantic search
while simultaneously changing a file.
- Fixed a bug that prevented semantic search from including new
worktrees when adding them to a project.
2023-09-07 15:30:19 +02:00
Antonio Scandurra
a45c8c380f 💄 2023-09-07 15:25:23 +02:00
Antonio Scandurra
757a285852 Keep dropping the documents table if it exists
This is because we renamed `documents` to `spans`.

Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-09-07 15:15:16 +02:00
Antonio Scandurra
93b889a93b Merge remote-tracking branch 'origin/main' into semantic-search-watch-worktrees 2023-09-07 15:07:46 +02:00
Antonio Scandurra
3ad1befb11 Remove unneeded logging
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-09-07 15:07:21 +02:00
Joseph T. Lyons
425a3969c8 Allow call events to be logged without a room id (#2937)
Prior to this PR, we assumed that all call events needed a room_id, but
we now have call-based actions that don't need a room_id - for instance,
you can right click a channel and view the notes while not in a call. In
this case, there is no room_id. We want to be able to track these
events, which requires removing the restriction that requires a room_id.

Release Notes:

- N/A
2023-09-06 23:08:36 -04:00
Joseph T. Lyons
39e13b6675 Allow call events to be logged without a room id 2023-09-06 22:53:05 -04:00
Nathan Sobo
a8d5d93757 Max out corner radii to half the smaller dimension of the parent box 2023-09-06 17:21:05 -06:00
Nathan Sobo
99ad60460a Add support for fetching/rendering images 2023-09-06 17:13:43 -06:00
Max Brunsfeld
d03a89ca19 Rejoin channel notes after brief connection loss (#2930)
* [x] Re-send operations that weren't sent while disconnected
* [x] Apply other clients' operations that were missed while
disconnected
* [x] Update collaborators that joined / left while disconnected
* [x] Inform current collaborators that your peer id has changed
* [x] Refresh channel buffer collaborators on server restart
* [x] randomized test
2023-09-06 15:11:21 -07:00
Max Brunsfeld
58f58a629b Tolerate channel buffer operations being re-sent 2023-09-06 14:58:25 -07:00
Max Brunsfeld
ed2aed4f93 Update test name in randomized-test-minimize script 2023-09-06 14:29:11 -07:00
Max Brunsfeld
b75e69d31b Check that channel notes text converges in randomized test 2023-09-06 14:25:07 -07:00
Nathan Sobo
6d4dd0e7a4 Checkpoint 2023-09-06 15:22:35 -06:00
Max Brunsfeld
e779adfe46 Add basic randomized integration test for channel notes 2023-09-06 14:09:36 -07:00
Max Brunsfeld
66c3879306 Extract randomized test infrastructure for use in other tests 2023-09-06 14:08:43 -07:00
Nathan Sobo
46451f2a8b Render borders in gpui2 divs 2023-09-06 14:31:44 -06:00
Nathan Sobo
5a778fbde6 Checkpoint 2023-09-06 14:16:15 -06:00
Conrad Irwin
f22d53eef9 Make test more deterministic
Otherwise these pass only when --features=neovim is set
2023-09-06 14:14:49 -06:00
Conrad Irwin
20f98e4d17 vim . to replay
Co-Authored-By: maxbrunsfeld@gmail.com
2023-09-06 13:49:55 -06:00
Nate Butler
0d1fb7f29e WIP 2023-09-06 15:44:14 -04:00
Kyle Caverly
bbeb82f884 Token count fix (#2935)
Fix token count for OpenAIEmbeddings

Release Notes (Preview Only)

- update token count calculation for truncated OpenAIEmbeddings
- increased request timeout for OpenAI
2023-09-06 15:15:02 -04:00
KCaverly
265d02a583 update request timeout for open ai embeddings 2023-09-06 15:09:46 -04:00
KCaverly
17237f748c update token_count for OpenAIEmbeddings to accomodate for truncation 2023-09-06 15:09:15 -04:00
Nate Butler
5337d9605a Add size rounded prefixes
Co-Authored-By: Nathan Sobo <1789+nathansobo@users.noreply.github.com>
2023-09-06 14:18:29 -04:00
Joseph T. Lyons
f4237ace40 collab 0.20.0 2023-09-06 13:33:39 -04:00
Joseph T. Lyons
5b5c232cd1 Revert "Temporarily comment out cargo check commands"
This reverts commit 29e35531af.
2023-09-06 12:54:53 -04:00
Joseph T. Lyons
15609b4803 v0.104.x dev 2023-09-06 12:53:50 -04:00
Joseph T. Lyons
29e35531af Temporarily comment out cargo check commands 2023-09-06 12:53:50 -04:00
Nathan Sobo
707427d9f5 Select caret based on expanded boolean 2023-09-06 10:24:22 -06:00
Nathan Sobo
a2e91e45d9 Use preview server when not on stable (#2909)
This PR updates our client code to connect to preview whenever we're not
on stable. This will make it more likely that we'll be able to
collaborate on a dev build, but obviously won't work if there's a
protocol change on main that hasn't made its way to preview yet.
2023-09-06 10:09:08 -06:00
Julia
246b699bfd Remove NodeRuntime static & add fake implementation for tests (#2934)
Release Notes:

- N/A
2023-09-06 11:27:28 -04:00
Julia
8d672f5d4c Remove NodeRuntime static & add fake implementation for tests 2023-09-06 11:18:55 -04:00
Antonio Scandurra
ce62173534 Rename Document to Span 2023-09-06 17:03:08 +02:00
Antonio Scandurra
de0f53b39f Ensure SemanticIndex::search waits for indexing to complete 2023-09-06 11:40:59 +02:00
Antonio Scandurra
c802680084 Clip ranges returned by SemanticIndex::search
The files may have changed since the last time they were parsed, so the
ranges returned by `SemanticIndex::search` may be out of bounds.
2023-09-06 09:41:51 +02:00
Nathan Sobo
de77e56dc6 Checkpoint 2023-09-05 18:53:25 -06:00
Nate Butler
a3039ad95b Add list items for scroll testing 2023-09-05 18:52:05 -04:00
Nathan Sobo
85aedf9bed WIP: Icons not yet rendering 2023-09-05 16:40:52 -06:00
Nate Butler
6cb9cf70b7 Mark placeholder SVGs 2023-09-05 17:32:59 -04:00
Nate Butler
1ea0d500be Ignore cargo-target 2023-09-05 17:27:09 -04:00
Nate Butler
7f85780c78 Add fraction sizes for tailwind lengths 2023-09-05 17:27:00 -04:00
Joseph T. Lyons
9272e9354a Add operation for opening channel notes in channel-based calls (#2933)
Release Notes:

- N/A
2023-09-05 17:24:19 -04:00
Nathan Sobo
5a9c76e080 Fix hoverable elements moving on hover 2023-09-05 15:17:09 -06:00
Nate Butler
477f4ddbbd Continue collab_panel 2023-09-05 17:13:33 -04:00
Joseph T. Lyons
653d4976cd Add operation for opening channel notes in channel based calls 2023-09-05 17:13:09 -04:00
Nate Butler
0695e8d3b9 Work on sample collab_panel story in the storybook
Co-Authored-By: Nathan Sobo <1789+nathansobo@users.noreply.github.com>
2023-09-05 15:19:44 -04:00
Nathan Sobo
e08c0fc4ce Checkpoint 2023-09-05 12:50:07 -06:00
Max Brunsfeld
ec5ff20b4c Implement clearing stale channel buffer participants on server restart
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-09-05 11:34:24 -07:00
Nathan Sobo
9ec7569e09 Checkpoint 2023-09-05 12:16:21 -06:00
Kyle Caverly
49af2874bb Eager background indexing (#2928)
This PR ships a series of optimizations for the semantic search engine.
Mostly focused on removing invalid states, optimizing requests to
OpenAI, and reducing token usage.

Release Notes (Preview-Only):

- Added eager incremental indexing in the background on a debounce.
- Added a local embeddings cache for reducing redundant calls to OpenAI.
- Moved to an Embeddings Queue model which ensures optimal batch sizes
at the token level, and atomic file & document writes.
- Adjusted OpenAI Embedding API requests to use provided backoff delays
during Rate Limiting.
- Removed flush races between parsing files step and embedding queue
steps.
- Moved truncation to parsing step reducing the probability that OpenAI
encounters bad data.
2023-09-05 13:15:54 -04:00
Nathan Sobo
0307cb8a88 Start sketching a collab panel in storybook
Co-Authored-By: Nate Butler <nate@zed.dev>
2023-09-05 10:02:36 -06:00
Conrad Irwin
c2c04616b4 vim S (#2929)
Release Notes:
- vim: Add `S` to substitute line ([#1897](https://github.com/zed-industries/community/issues/1897)).
2023-09-05 09:39:08 -06:00
Conrad Irwin
27143e2fb4 Split ContextMenu actions (#2931)
This should have no user-visible impact.

For vim `.` to repeat it's important that actions are replayable.
Currently editor::MoveDown *sometimes* moves the cursor down, and
*sometimes* selects the next completion.

For replay we need to be able to separate the two.
2023-09-05 09:38:08 -06:00
Antonio Scandurra
95b72a73ad Re-index project when a worktree is registered
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-09-05 17:17:58 +02:00
Antonio Scandurra
3c70b127bd Simplify SemanticIndex::index_project
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-09-05 16:54:48 +02:00
Nate Butler
4855063151 Fix cropped search filters (#2932)
Because of the way we set up tools that add rows inside the toolbar it
is complicated to tighten up the spacing inside the toolbar.

This PR just reverts the changes I made previously. We'll need to
properly add rows below the toolbar instead of rendering search inside
of it to have non-equal height tools be able to descend from it.

Release Notes:

- Preview – Fixed an issue where search filters were partially cut off
in the UI.
2023-09-05 10:49:38 -04:00
Nate Butler
e2479a7172 Fix cropped search filters 2023-09-05 10:24:49 -04:00
Antonio Scandurra
6b1dc63fc0 Retrieve embeddings based on pending files
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-09-05 16:16:12 +02:00
Antonio Scandurra
7b5a41dda2 Move retrieval of embeddings from the db into reindex_changed_files
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-09-05 16:09:24 +02:00
Antonio Scandurra
d4cff68475 🎨 2023-09-05 15:52:36 +02:00
Kirill Bulatov
42976b6014 Add LSP logs clear button (#2913)
LSP logs tend to accumulate and hinder performance (e.g. search is
slower over 20 MB of json files).
Add a way to clear them.

Release Notes:

- N/A
2023-09-05 12:11:35 +03:00
Conrad Irwin
56db21d54b Split ContextMenu actions
This should have no user-visible impact.

For vim `.` to repeat it's important that actions are replayable.
Currently editor::MoveDown *sometimes* moves the cursor down, and
*sometimes* selects the next completion.

For replay we need to be able to separate the two.
2023-09-02 21:04:19 -06:00
Conrad Irwin
55dd0b176c Use consistent naming 2023-09-02 19:52:18 -06:00
Conrad Irwin
3a7b551e33 Fix tests with no neovim 2023-09-02 19:43:05 -06:00
Max Brunsfeld
6827ddf97d Start work on refreshing channel buffer collaborators on server restart 2023-09-01 17:51:00 -07:00
Max Brunsfeld
e6babce556 Broadcast new peer ids for rejoined channel collaborators 2023-09-01 17:23:55 -07:00
Max Brunsfeld
d7e4cb4ab1 executor: timers must be used 2023-09-01 16:52:41 -07:00
Max Brunsfeld
d370c72fbf Start work on rejoining channel buffers 2023-09-01 16:52:12 -07:00
KCaverly
8dbc0fe033 update pragma settings for improved database performance 2023-09-01 17:07:20 -04:00
Conrad Irwin
da16167db1 Fix find_{,preceding}boundary to work on buffer text (#2912)
Fixes movement::find_boundary to work on the buffer, not on display
points.

The user-visible impact is that the "until end of word" commands now
correctly go to the end of a soft-wrapped word (instead of to the first
character of the wrapped line).

It also fixes a bug where the callback passed to these methods was
called with the content of inlay hints.

[[PR Description]]

Release Notes:

- fix finding end of word on soft-wrapped lines
2023-09-01 12:14:16 -07:00
Conrad Irwin
af12977d17 vim: Add S to substitute line
For zed-industries/community#1897
2023-09-01 13:13:59 -06:00
Conrad Irwin
aa7b65bbaf Merge branch 'main' into vim-softwrap-word 2023-09-01 12:23:56 -06:00
Conrad Irwin
0e41c6c5b3 Fix accidental visual selection on scroll (#2927)
Release Notes:

- vim: Fix bug where scrolling vertically would sometimes enter visual
mode
2023-09-01 10:58:10 -07:00
Conrad Irwin
6d7949654b Fix accidental visual selection on scroll
As part of this fix partial page distance calculations to more closely
match vim.
2023-09-01 11:14:27 -06:00
KCaverly
54235f4fb1 updated embeddings background delay to 5 minutes
Co-authored-by: Max <max@zed.dev>
2023-09-01 13:04:09 -04:00
KCaverly
e86964eb5d optimize insert file in vector database
Co-authored-by: Max <max@zed.dev>
2023-09-01 13:01:37 -04:00
Nathan Sobo
2fa9c037c8 Merge remote-tracking branch 'origin' into storybook 2023-09-01 10:08:48 -06:00
Nathan Sobo
6275c560e7 Fix warnings for a clean build 2023-09-01 10:08:41 -06:00
KCaverly
524533cfb2 flush embeddings queue when no files are parsed for 250 milliseconds
Co-authored-by: Antonio <antonio@zed.dev>
2023-09-01 11:24:08 -04:00
KCaverly
c4db914f0a move embeddings queue to use single hashmap for all changed paths
Co-authored-by: Antonio <me@as-cii.com>
2023-09-01 08:59:25 -04:00
Antonio Scandurra
2bf417fa45 Avoid duplicate entries in inline assistant's prompt history (#2926)
Release Notes:

- Improved the inline assistant's prompt history to avoid including the
same entry multiple times. (preview-only)
2023-09-01 09:20:14 +02:00
Antonio Scandurra
d868ec920f Avoid duplicate entries in inline assistant's prompt history 2023-09-01 09:15:29 +02:00
Max Brunsfeld
7bcc59c8a5 Remove the concept of a local clock; use lamport clocks for all per-replica versioning (#2924)
### Background

Currently, our CRDT uses three different types of timestamps:

| clock type | representation | purpose |
|-----|----------------|----------|
| `Local` | replica id + u32 | uniquely identifies operations |
| `Lamport` | replica id + u32 | provides a consistent total ordering
for all operations |
| `Global` | N local clocks | fully defines the partial ordering between
all concurrent operations |

All text operations include *each* type of timestamp. And every
`Fragment` in a buffer's fragment tree contains both a local and a
lamport timestamp.

### Change

An operation can be uniquely identified by its lamport timestamp, so we
don't really need a concept of a local timestamp. In this PR, I've
removed the concept of a local timestamp. Version vectors
(`clock::Global`) now store vectors of *lamport* timestamps.

Eliminating local timestamps reduces the memory footprint of a buffer by
four bytes per fragment, reduces the size of our `UpdateBuffer` RPC
messages, and reduces the amount of data we need to store in our
database for channel buffers. It also makes our CRDT a bit easier to
understand, IMO, because there is now only one scalar value that we
increment per replica.

It's possible I'm missing something here though. @as-cii, @nathansobo
it'd be good to get your 👀
2023-08-31 16:47:08 -07:00
Max Brunsfeld
1e60454643 Renumber protobuf fields, bump protocol version 2023-08-31 16:31:26 -07:00
Max Brunsfeld
03f0365d4d Remove local timestamps from CRDT operations
Use lamport timestamps for everything.
2023-08-31 16:23:06 -07:00
KCaverly
afa59abbcd WIP: work towards wiring up a embeddings_for_digest hashmap that is stored for all indexed files 2023-08-31 16:42:39 -04:00
Max Brunsfeld
00aae5abee Assistant: propagate cancel action if there is no pending inline assist (#2923)
Release Notes:

- Fixed a bug where modals could not be dismissed with `escape` when
certain views were active in the workspace (preview only).
2023-08-31 11:17:09 -07:00
Max Brunsfeld
eecd4e39cc Propagate Cancel action if there is no pending inline assist 2023-08-31 11:09:36 -07:00
KCaverly
50cfb067e7 fill embeddings with database values and skip during embeddings queue 2023-08-31 13:19:17 -04:00
Antonio Scandurra
220533ff1a WIP 2023-08-31 18:00:57 +02:00
Antonio Scandurra
2503d54d19 Rename Sha1 to DocumentDigest
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-08-31 18:00:36 +02:00
Antonio Scandurra
3001a46f69 Reify Embedding/Sha1 structs that can be (de)serialized from SQL
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-08-31 17:55:43 +02:00
Kirill Bulatov
fe2300fdaa Style the clear button better, add border to button constructor options 2023-08-31 18:31:21 +03:00
Kirill Bulatov
7b5974e8e9 Add LSP logs clear button 2023-08-31 18:31:21 +03:00
Antonio Scandurra
c763e728d1 Write to and read from the database in a transactional way
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-08-31 16:59:54 +02:00
Antonio Scandurra
35440be98e Abstract away how database transactions are executed
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-08-31 16:54:11 +02:00
Kirill Bulatov
ddc6214216 Tailwind autocomplete (#2920)
Release Notes:
- Added basic Tailwind CSS autocomplete support
([#746](https://github.com/zed-industries/community/issues/746)).
2023-08-31 16:55:46 +03:00
Kirill Bulatov
5731ef51cd Fix plugin LSP adapter intefrace 2023-08-31 15:32:24 +03:00
Kirill Bulatov
e682db7101 Route completion requests through remote protocol, if needed 2023-08-31 15:22:13 +03:00
Kirill Bulatov
5bc5831032 Fix wrong assertion in the test 2023-08-31 14:31:43 +03:00
Kirill Bulatov
292af55ebc Ensure all client LSP queries are forwarded via collab 2023-08-31 14:29:37 +03:00
Kirill Bulatov
fff385a585 Fix project tests 2023-08-31 13:01:53 +03:00
Kirill Bulatov
fad595dca6 Use ctrl-: instead of ctrl-shift-: for inlay hints toggling (#2921)
The latter is not possible to press in Zed, since `:` is typed as
`shift-;` with typical US keyboard layouts.

In the end, it's the same buttons you have to press to toggle the inlay
hints, but working this time.

Release Notes:

- N/A
2023-08-31 12:10:45 +03:00
Kirill Bulatov
9e12df43d0 Post-rebase fixes 2023-08-31 11:53:46 +03:00
Kirill Bulatov
897adb67c5 Log language server stderr output in server logs (#2918)
<img width="1728" alt="Screenshot 2023-08-31 at 01 07 11"
src="https://github.com/zed-industries/zed/assets/2690773/537a18d6-59bf-4a77-896f-fc2cb6dc7fe8">

Line by line, we print stderr to help with debugging and servers that
log into stderr.

Release Notes:

- N/A
2023-08-31 11:13:45 +03:00
Kirill Bulatov
18efc0d5e5 Fix the tests, by not requiring stderr for fake servers 2023-08-31 11:07:37 +03:00
Kirill Bulatov
af665cc3d2 Use ctrl-: instead of ctrl-shift-: for inlay hints toggling
The latter is not posible to press in Zed, since `:` is typed as
`shift-;` with typical US keyboard layouts.

In the end, it's the same buttons you have to press to toggle the inlay
hints, but working this time.
2023-08-31 10:43:29 +03:00
Julia
ff3865a4ad Merge branch 'main' into multi-server-completions-tailwind 2023-08-30 22:58:37 -04:00
Julia
529adb95a1 Scope Tailwind in JS/TS to within string
In some situations outside JSX elements Tailwind will never
respond to a completion request, holding up the tsserver completions.

Only submit the request to Tailwind when we wouldn't get tsserver
completions anyway and don't submit to Tailwind when we know we won't
get Tailwind completions

Co-Authored-By: Kirill Bulatov <kirill@zed.dev>
2023-08-30 21:14:39 -04:00
Kirill Bulatov
0f619e0b67 Do not write TRACE logs into file for Lua 2023-08-31 01:14:37 +03:00
Kirill Bulatov
54e7e2f59d Capture language servers' stderr into server logs 2023-08-31 01:14:37 +03:00
Nathan Sobo
3b5ee59273 Split playground into gpui2 and storybook 2023-08-30 16:12:14 -06:00
Max Brunsfeld
b94955910c Disable save as prompt for channel notes (#2917) 2023-08-30 15:09:53 -07:00
Max Brunsfeld
4b5948e004 Disable save as prompt for channel notes 2023-08-30 15:05:47 -07:00
Kirill Bulatov
d9a72aa1e0 Rewrite inlay hint collab tests to remove races (#2916)
Release Notes:

- N/A
2023-08-31 00:49:50 +03:00
KCaverly
7d4d6c871b fix bug for truncation ensuring no valid inputs are sent to openai 2023-08-30 17:42:16 -04:00
Max Brunsfeld
6d60960fd2 Fix collab panel regressions (#2915)
Release Notes:

- Fixed a bug where collaborators' cursors were rendered with the wrong
color when not following them (preview only).
- Fixed an issue where icons were inconsistent sizes in the
collaboration panel (preview only).
2023-08-30 14:41:37 -07:00
Kirill Bulatov
ab49f8c592 Rewrite inlay hint collab tests to remove races 2023-08-31 00:37:00 +03:00
Max Brunsfeld
f9dffc1734 Remove unnecessary ConstrainedBoxes in collab panel
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-30 14:35:02 -07:00
Max Brunsfeld
123bc85a8e collab panel: Make screen share row line up with shared projects
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-30 14:23:12 -07:00
Max Brunsfeld
e0bdd857f1 Fix cursor colors of non-followed collaborators
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-30 14:14:18 -07:00
Nathan Sobo
ee11be98e5 Add gpui2 crate 2023-08-30 15:00:11 -06:00
KCaverly
5abad58b0d moved semantic index to use embeddings queue to batch and managed for atomic database writes
Co-authored-by: Max <max@zed.dev>
2023-08-30 16:58:45 -04:00
Nathan Sobo
746f77bf7c Checkpoint 2023-08-30 14:40:57 -06:00
Max Brunsfeld
166585a2a8 Avoid accidental gpui transitive dependency in collab (#2914)
Release Notes:

- N/A
2023-08-30 13:22:10 -07:00
Max Brunsfeld
46429426ef Avoid accidental gpui transitive dependency in collab
* Make Fs depend on Text, not vise versa

Co-authored-by: Joseph <joseph@zed.dev>
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-30 13:16:01 -07:00
KCaverly
76ce52df4e move queuing to embedding_queue functionality and update embedding provider to include trait items for max tokens per batch"
Co-authored-by: Max <max@zed.dev>
2023-08-30 16:01:28 -04:00
Joseph T. Lyons
feb7a8a0f4 collab 0.19.0 2023-08-30 14:37:55 -04:00
Joseph T. Lyons
7204c245ea v0.103.x dev 2023-08-30 13:41:09 -04:00
Nathan Sobo
1d491fcd78 Get playground rendering with backward compatible theming 2023-08-30 11:09:34 -06:00
KCaverly
9781047156 move truncation to parsing step leveraging the EmbeddingProvider trait 2023-08-30 12:13:26 -04:00
Nathan Sobo
d763946b18 Checkpoint: Working toward compatibility with themes 2023-08-30 10:11:00 -06:00
KCaverly
76caea80f7 add should_truncate to embedding providers 2023-08-30 11:58:45 -04:00
Kirill Bulatov
7e5735c8f1 Reap overly long LSP requests with a 2m timeout
Co-authored-by: Julia Risley <julia@zed.dev>
2023-08-30 18:41:41 +03:00
Nate Butler
e808386765 WIP UI Tweaks (#2911)
- Tighten up toolbar
- Reduce intensity of active tools
- Remove divider between project + branch
- Add a styletree for toolbar + move breadcrumb into it
- Some ts theme tidying

[[PR Description]]

Release Notes:

- Improved density and contrast of a number of UI elements.
2023-08-30 11:19:05 -04:00
Nate Butler
1da3be0646 Align diagnostic icons with other statusbar icons 2023-08-30 11:14:50 -04:00
KCaverly
e377ada1a9 added token count to documents during parsing 2023-08-30 11:05:46 -04:00
Nate Butler
256949bee0 fmt 2023-08-30 10:56:08 -04:00
Antonio Scandurra
ea17d1638e Introduce code generation (#2901)
![CleanShot 2023-08-28 at 12 24
36@2x](https://github.com/zed-industries/zed/assets/482957/f97cb399-1ac2-4fa9-94a7-137d1eec711c)


Release Notes:

- Added a new "Inline Assist" feature that lets you transform a
selection or generate new code at the cursor location by hitting
`ctrl-enter`.
2023-08-30 14:58:22 +02:00
Antonio Scandurra
bf67d3710a Remove trailing backticks when assistant ends with a trailing newline 2023-08-30 12:08:14 +02:00
Antonio Scandurra
5f6562c214 Detect indentation from GPT output 2023-08-30 12:07:58 +02:00
Antonio Scandurra
c6f4390511 Retain search history for inline assistants
This only works in-memory for now.
2023-08-30 11:30:51 +02:00
Antonio Scandurra
5c498c8610 Show inline assistant errors 2023-08-30 11:04:48 +02:00
Kirill Bulatov
7a1b300b25 Do not blink the cursor if Zed app is focused away (#2907)
Deals with https://github.com/zed-industries/community/issues/1116
Part of https://github.com/zed-industries/community/issues/1098

Use Mac platform callbacks to send a global event and enable/disable
caret blinking in editors when the app is not focused.

Release Notes:

- Stop blinking caret if Zed app is not focused
2023-08-30 10:53:09 +03:00
Nathan Sobo
48d3e2d9b9 Move views_to_notify_if_ancestors_change to Window 2023-08-29 21:58:44 -06:00
Nathan Sobo
2e7356a53e Store new_parents on Window instead of layout context 2023-08-29 21:43:48 -06:00
Nathan Sobo
42cd257287 Remove text style stack from LayoutContext 2023-08-29 21:33:08 -06:00
Nathan Sobo
81957c49d5 Merge remote-tracking branch 'origin' into divs 2023-08-29 21:14:14 -06:00
Conrad Irwin
d3650594c3 Fix find_{,preceding}boundary to work on buffer text
Before this change the bounday could mistakenly have happened on a soft
line wrap.

Also fixes interaction with inlays better.
2023-08-29 18:03:29 -07:00
Julia
e3a0252b04 Make multi-server completion requests not serial 2023-08-29 20:42:13 -04:00
Nathan Sobo
a0b6e500cf WIP 2023-08-29 18:40:24 -06:00
Nathan Sobo
a56fab8c11 Remove unused proc macro 2023-08-29 18:30:57 -06:00
Nate Butler
6e964acd92 Fix extra theme entry 2023-08-29 20:04:15 -04:00
Nate Butler
97d187bba7 Remove project divider in titlebar 2023-08-29 19:50:27 -04:00
KCaverly
a7e6a65deb reindex files in the background after they have not been edited for 10 minutes
Co-authored-by: Max <max@zed.dev>
2023-08-29 17:14:44 -04:00
Nate Butler
2af5fc5030 Move breadcrumb style to toolbar 2023-08-29 16:37:48 -04:00
Nate Butler
c9b1237079 Update titlebar size 2023-08-29 16:20:19 -04:00
Nate Butler
93cf52a719 Update toolbar active state style 2023-08-29 16:10:40 -04:00
Nate Butler
d91a9615b5 Format 2023-08-29 16:02:04 -04:00
Nate Butler
33c9f14852 Don't require passing theme to toggleable_icon_button 2023-08-29 16:01:08 -04:00
Nate Butler
0a14e33dba Pull toolbar into it's own styletree 2023-08-29 15:59:35 -04:00
Max Brunsfeld
e7ba5a1edb Search UI polish (#2904)
This PR polishes the search bar UI, making the layout more dense, and
the spacing more consistent with the rest of the app. I've also
re-ordered the toolbar items to reflect some of @iamnbutler's original
search designs. The items related to the search query are on the left,
and the actions that navigate the buffer (next, prev, select all, result
count) are on the right.
2023-08-29 12:53:32 -07:00
KCaverly
4f8b95cf0d add proper handling for open ai rate limit delays 2023-08-29 15:44:51 -04:00
Julia
0e6c91818f Woooooops, don't notify the language server until initialized 2023-08-29 15:37:51 -04:00
Kirill Bulatov
100870aa9c Do not blink the cursor if Zed window is focused away
co-authored-by: Max <max@zed.dev>
2023-08-29 21:33:03 +03:00
Conrad Irwin
dd577074f2 vim: Fix relative motions (#2888)
This changes vim motions to be relative to fold lines, not display
lines, to match the behaviour of vim.

This is necessary for relative line numbers to make sense (as the most
important thing is you can do `3j` to get th e line that is numbered 3).


Release Notes:

- vim: Fix handling of motions when `soft_wrap` is enabled in zed. Like
in vim `j,k,up,down,$,^,0,home,end` will all now navigate in file
coordinates not display coordinates.
- vim: Add `g {j,k,up,down,$,^,0,home,end}` to navigate in display
coordinates.
- vim: Add `z o` and `z c` to open and close folds.
- vim: Add `z f` in visual mode to fold selection.

Note: this may be a jarring change if you're grown used to the current
behaviour of `j` and `k`. You can make the issue less acute by setting
`"soft_wrap":"none"` in your settings; or you can manually copy the
bindings for `g j` to the binding for `j` (etc.) in your keymap.json to
preserve the existing behaviour.
2023-08-29 11:19:37 -07:00
Kirill Bulatov
859ac1e97f Add a default binding for toggling inlay hints (#2910)
Release Notes:

- Add a `"ctrl-shift-:": "editor::ToggleInlayHints"` default binding
2023-08-29 21:09:46 +03:00
Nate Butler
e89ccf2e26 Remove unused label_button 2023-08-29 14:09:31 -04:00
Nate Butler
f0ab27a83d Reorder "Select All" button 2023-08-29 14:04:17 -04:00
Kirill Bulatov
bbb222b6fc Add a default binding for toggling inlay hints 2023-08-29 20:56:26 +03:00
Nate Butler
f626c61b1e Update action_button style 2023-08-29 13:40:58 -04:00
Nate Butler
f6faeea720 Add disabled as an option on text_button 2023-08-29 13:40:46 -04:00
Nate Butler
05da4b740a Update spacing, button heights 2023-08-29 13:28:06 -04:00
Nate Butler
a5b12d535f Add margin and padding functions 2023-08-29 13:06:13 -04:00
Nate Butler
53558bc603 Remove baseurl to prevent theme import issue 2023-08-29 13:05:59 -04:00
Max Brunsfeld
7ae5ee699f Debounce code action and document highlight requests (#2905)
Lately, I've been finding Rust-analyzer unusably slow when editing large
files (like `editor_tests.rs`, or `integration_tests.rs`). When I
profile the Rust-analyzer process, I see that it sometimes saturates up
to 10 cores processing a queue of code actions requests.

Additionally, sometimes when collaborating on large files like these, we
see long delays in propagating buffer operations. I'm still not sure why
this is happening, but whenever I look at the server logs in Datadog, I
see that there are remote `CodeActions` and `DocumentHighlights`
messages being processed that take upwards of 30 seconds. I think what
may be happening is that many such requests are resolving at once, and
the responses are taking up too much of the host's bandwidth.

I think that both of these problems are caused by us sending way too
many code action and document highlight requests to rust-analyzer. This
PR adds a simple debounce between changing selections and making these
requests.

From my local testing, this debounce makes Rust-analyzer *much* more
responsive when moving the cursor around a large file like
`editor_tests.rs`.
2023-08-29 09:30:36 -07:00
Antonio Scandurra
87e25c8c23 Use model from conversation when available 2023-08-29 18:25:02 +02:00
Antonio Scandurra
16422a06ad Remember whether include conversation was toggled 2023-08-29 18:25:02 +02:00
Nathan Sobo
84b9c22170 Merge branch 'main' into ai-refactoring 2023-08-29 10:17:01 -06:00
Nathan Sobo
2d411303bb Use preview server when not on stable 2023-08-29 10:07:22 -06:00
Antonio Scandurra
df377d5195 Use Inline Assist across the board 2023-08-29 17:32:23 +02:00
Julia
15628af04b Style language server name in completion menu
Omit in buffers with one or zero running language servers with the
capability to provide completions

Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-08-29 11:21:02 -04:00
Piotr Osiewicz
ea0e5e880e chore: Use IsTerminal trait instead of relying on libc to detect stdout being a terminal (#2908)
IsTerminal was added in 1.70.

Release Notes:
- N/A
2023-08-29 15:56:50 +02:00
Nathan Sobo
396558755e Testing: Update build script to make local testing easier (#2903)
* `script/bundle -l` will only build for the current architecture and
skip DMG creation. It will also copy to `/Applications`.
* `script/bundle -l "My Bundle"` will name the bundle after your
provided name.
* Passing `-f` will overwrite. Passing `-o` will also open the
application.
2023-08-29 07:07:35 -06:00
Antonio Scandurra
72413dbaf2 Remove the ability to reply to specific message in assistant 2023-08-29 14:51:00 +02:00
Antonio Scandurra
2332f82442 More polish 2023-08-29 14:41:02 +02:00
Antonio Scandurra
08df24412a Delete less aggressively 2023-08-29 14:31:58 +02:00
Antonio Scandurra
c2b60df5af Allow including conversation when triggering inline assist 2023-08-29 14:08:16 +02:00
Kirill Bulatov
1c6964ee96 Trim off surrounding [] when parsing terminal hover links (#2906)
Follow-up of https://github.com/zed-industries/zed/pull/2899

Terminal has to accept `[` and `]` as valid word parts, due to
`[slug].tsx` being a valid file name.
Yet, terminal has to exclude these to match paths in strings like
`[/some/path/[slug].tsx]`.

Release Notes:

- N/A
2023-08-29 10:49:33 +03:00
Kirill Bulatov
7c498feb85 Trim off surrounding [] when parsing terminal hover links
Terminal has to accept `[` and `]` as valid word parts, due to
`[slug].tsx` being a valid file name.
Yet, terminal has to exclude these to match paths in strings like
`[/some/path/[slug].tsx]`.
2023-08-29 10:40:20 +03:00
Max Brunsfeld
791f6cf9e7 Update some tests to reflect code action debouncing 2023-08-28 17:45:32 -07:00
Max Brunsfeld
5142049515 Demote some Peer logging to trace level 2023-08-28 17:45:19 -07:00
Max Brunsfeld
89eab78cf7 Debounce document highlight and code actions requests 2023-08-28 15:48:55 -07:00
Max Brunsfeld
70bea75897 Change cycle mode action to reflect new mode button order 2023-08-28 15:15:54 -07:00
Nathan Sobo
9371754942 Provide themes to subtrees via context
Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
2023-08-28 16:07:26 -06:00
Max Brunsfeld
3eee282a6b Overhaul search bar layout
* Use a single row, instead of centering the search bar within a double-row toolbar.
* Search query controls on the left, navigation on the right
* Semantic is the final mode, for greater stability between buffer and project search.
* Prevent query editor from moving when toggling path filters
2023-08-28 14:20:09 -07:00
Max Brunsfeld
78f9a1f280 Remove padding from workspace toolbar, increase its content height to compensate
The padding makes it difficult to layout toolbar items correctly when they are more than one row tall.
2023-08-28 14:18:30 -07:00
Max Brunsfeld
bb448b91d5 Don't add a quick actions toolbar item for non-editor views
Rather than adding primary toolbar item that renders as empty,
don't add an item at all. This prevents spurious spacing from
being added after other primary toolbar items.
2023-08-28 14:16:45 -07:00
Max Brunsfeld
9521f6da42 Simplify implementation of flex with spacing 2023-08-28 14:16:21 -07:00
Nathan Sobo
fd1633ac4b Render a titlebar you can barely see
Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
2023-08-28 14:24:27 -06:00
Nathan Sobo
b5aedc144d Allow layout to be called on element in any phase of its lifecyle.
Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
2023-08-28 14:23:16 -06:00
Nathan Sobo
a1d2ae3095 Add -l option to build script
When you pass -l, we build for the local architecture only and copy the
resulting app bundle to /Applications. You can provide a bundle name as
an optional argument.
2023-08-28 13:32:30 -06:00
Julia
35b7787e02 Add Tailwind server to TSX 2023-08-28 15:19:16 -04:00
Max Brunsfeld
04354675ca Remove search dismiss button 2023-08-28 10:35:23 -07:00
Piotr Osiewicz
9aad602af7 chore: Bump memchr to 2.6.0 (#2902)
Fresh off the press, memchr 2.6.0 adds vector search routines for
aarch64. That directly improves our search performance for both text and
regex searches. Per BurntSushi's claims, the simple string searches in
ripgrep got ~2 times faster (more details available in
https://github.com/BurntSushi/memchr/pull/129).

Release Notes:

- N/A
2023-08-28 18:20:10 +02:00
Julia
ded6decb29 Initial unstyled language server short name in completions
Co-Authored-By: Kirill Bulatov <kirill@zed.dev>
2023-08-28 11:27:45 -04:00
Antonio Scandurra
ccec59337a 📝 2023-08-28 14:46:05 +02:00
Antonio Scandurra
52e1e014ad Allow redoing edits performed by inline assistant after cancelling it 2023-08-28 14:42:52 +02:00
Antonio Scandurra
b9df85e01f Remove todo.md 2023-08-28 14:25:01 +02:00
Antonio Scandurra
8c4d2ccf80 Close inline assist when the associated transaction is undone 2023-08-28 14:23:42 +02:00
Antonio Scandurra
c587cf66ce Remove ellipsis from tooltip 2023-08-28 12:24:01 +02:00
Antonio Scandurra
44f554f489 Merge remote-tracking branch 'origin/main' into ai-refactoring 2023-08-28 12:16:24 +02:00
Antonio Scandurra
1fb7ce0f4a Show icon to toggle inline assist 2023-08-28 12:13:44 +02:00
Antonio Scandurra
d804afcfa9 Don't auto-indent when the assistant starts responding with indentation 2023-08-28 11:57:02 +02:00
Piotr Osiewicz
07b9c6c302 language: Make Buffer::new take an explicit ID (#2900)
See Linear description for the full explanation of the issue. This PR is
mostly a mechanical change, except for the one case where we do pass in
an explicit `next_id` instead of `model_id` in project.rs.

Release Notes:
- Fixed a bug where some results were not reported in project search in
presence of unnamed buffers.
2023-08-28 11:51:50 +02:00
Antonio Scandurra
937aabfdfd Extract a strip_markdown_codeblock function 2023-08-28 11:24:55 +02:00
Kirill Bulatov
81a5043b61 Allow [ and ] symbols in terminal links (#2899)
Deals with https://github.com/zed-industries/community/issues/1865

` ./src/pages/[[...slug]].tsx` is a valid file path in macOs and Linux,
and should be available for cmd-hover-click in terminal.

Release Notes:

- Allow `[` and `]` symbols in terminal links
2023-08-28 11:40:52 +03:00
Kirill Bulatov
506ec01df3 Allow [ and ] symbols in terminal links
` ./src/pages/[[...slug]].tsx` is a valid file path in macOs and Linux,
and should be available for cmd-hover-click in terminal.
2023-08-28 11:19:57 +03:00
Kirill Bulatov
3bfe78b1df Use proper property names for inlay hint resolve capabilities 2023-08-28 00:27:59 +03:00
Kirill Bulatov
805ae1be80 More inlay hover fixes (#2898)
Better handle edge cases around cmd+hover around inlays:
* distinguish between same text anchors' trigger: inlay and text
triggers can have the same anchor, but are different
* forbid cmd+click on inlay that has no label part with location
selected
* properly omit throttled inlays that are outside of the visible range

Release Notes:

- N/A
2023-08-27 19:57:31 +03:00
Kirill Bulatov
38da2a587a Fix the tests 2023-08-27 19:41:15 +03:00
Kirill Bulatov
81e70905bb Do not allow cmd+click in invalid inlay context 2023-08-27 19:12:32 +03:00
Kirill Bulatov
693e91f335 Properly compare previous hover trigger point when hover changes 2023-08-27 18:23:40 +03:00
Kirill Bulatov
dad64edde1 Better highlight hint ranges 2023-08-27 15:14:45 +03:00
Kirill Bulatov
5cf51211b6 Use better names, simplify 2023-08-27 00:01:31 +03:00
Kirill Bulatov
73937876b6 Properly omit throttled hint queries 2023-08-26 21:12:04 +03:00
Kirill Bulatov
851d74d5e1 Improve inlay hints management (#2897)
Apply a rate limiter to hints scrolling, properly invalidate hint task
cached ranges, properly react to multibuffer events, properly highlight
hints and introduce basic debug logging for hints.

Release Notes:

- N/A
2023-08-26 16:50:12 +03:00
Kirill Bulatov
f8a8b998ce Properly react on excerpts drop 2023-08-26 15:21:45 +03:00
Kirill Bulatov
84284099e2 Properly handle padding when highlighting inlay hints 2023-08-26 15:04:48 +03:00
Kirill Bulatov
2a42a08f46 Invalidate skipped throttled hint fetch tasks' ranges 2023-08-26 14:47:42 +03:00
Kirill Bulatov
9bdf76f445 Properly handle hover-less areas hover 2023-08-26 14:42:20 +03:00
Kirill Bulatov
48659d3b3c Treat multibuffer edit events properly
Miltibuffer emits edit events even if it only got an excerpt
added/removed/etc.
Separate buffer edits and trigger hint invalidation refresh for them
only, also trigger hint new lines refresh on excerpt addition events.
2023-08-26 14:13:24 +03:00
Kirill Bulatov
3fc48fc277 Log LSP inlay hint path 2023-08-26 13:46:55 +03:00
Antonio Scandurra
55bf45d265 Add disabled style for prompt editor after confirming 2023-08-26 12:07:03 +02:00
Kirill Bulatov
e6fb909d89 Limit LSP non-invalidating queries 2023-08-26 13:06:50 +03:00
Antonio Scandurra
658d616b96 Allow multiple inline assistant highlights at once 2023-08-26 11:55:47 +02:00
Kirill Bulatov
2b007930a9 Remove query ranges for failed inlay hint requests 2023-08-26 12:09:12 +03:00
Antonio Scandurra
c8e5c3963b Clear selection when deploying inline assistant 2023-08-26 09:52:01 +02:00
Nathan Sobo
5bb780073e Relativize child layouts to their parent origin 2023-08-25 23:22:53 -06:00
Nathan Sobo
3bebfbcd50 Checkpoint 2023-08-25 23:15:58 -06:00
Nathan Sobo
8ad736da8d WIP 2023-08-25 22:19:49 -06:00
Nathan Sobo
7cd416c63e Always log panics 2023-08-25 21:42:18 -06:00
Nathan Sobo
147aa0f695 WIP 2023-08-25 21:41:21 -06:00
Mikayla Maki
8ddee0e58d Server-sent feature flags (#2894)
This PR adds the wiring to both the server and the client for sending
and receiving individual feature flags, as well as a client side API for
convenient access to these feature flags.

Release Notes:

- N/A
2023-08-25 17:11:33 -07:00
Kirill Bulatov
afdc5012cb Fix inlay hint bugs (#2895)
* https://github.com/zed-industries/zed/pull/2891

Fixes ranges pointing at incorrect positions inside multi-codepoint
characters

* https://github.com/zed-industries/zed/pull/2890

Defers hint links' document URL resolution into buffer up until the
hover & cmd-click is made by the user.

Release Notes:

- N/A
2023-08-26 03:09:19 +03:00
Mikayla
74565ed0b8 Add feature flags handling to the client, rewrite staff mode to a trait extension style 2023-08-25 17:00:53 -07:00
Kirill Bulatov
81c64647e8 Fix the test 2023-08-26 03:00:53 +03:00
Kirill Bulatov
e6c4802488 Properly clip request offsets 2023-08-26 02:54:50 +03:00
Kirill Bulatov
b2b0918790 Consider padding during hint highlight range mapping 2023-08-26 02:45:08 +03:00
Kirill Bulatov
665d86ea73 Defer navigation target buffer opening 2023-08-26 02:45:08 +03:00
Kirill Bulatov
ddd7ab116f Do not convert lsp::Location of hint labels before resolve 2023-08-26 02:45:08 +03:00
Max Brunsfeld
d6ffb68305 Fix bugs in autoscroll with 'fit' strategy (#2893)
This fixes a bug where text moved up and down by one pixel in the buffer
search query editor, while typing.

Release  notes:
* Fixed a bug where editors didn't auto-scroll when typing if all
cursors could not fit within the viewport.
2023-08-25 16:36:33 -07:00
Piotr Osiewicz
2495d6581e Un serialize project search (#2857)
This is the first batch of improvements to current project search. There
are few things we can do better still, but I want to get this out in
next Preview.
Most of the slowness at this point seems to stem from updating UI too
often.

Release Notes:
- Improved project search by making it report results sooner.

---------

Co-authored-by: Julia Risley <julia@zed.dev>
2023-08-26 01:31:52 +02:00
Max Brunsfeld
a3b2c03b17 Fix bugs in autoscroll with 'fit' strategy
* Scroll to the newest cursor if all cursors can't fit in the viewport.
* Refuse to layout an editor less tall than one line height.

Co-authored-by: Nathan <nathan@zed.dev>
2023-08-25 16:13:12 -07:00
Julia
fc457d45f5 Add word_characters to language overrides & use for more things
Use word_characters to feed completion trigger characters as well and
also recognize kebab as a potential sub-word splitter. This is fine for
non-kebab-case languages because we'd only ever attempt to split a word
with a kebab in it in language scopes which are kebab-cased

Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-08-25 18:46:30 -04:00
Mikayla
6fdf101745 Update database and RPC to provide configured feature flags 2023-08-25 14:34:32 -07:00
Conrad Irwin
dee1a433dd A few more fixes for wrapped line motions 2023-08-25 14:40:04 -06:00
Conrad Irwin
20aa2a4c54 vim: Fix relative line motion
Before this change up and down were in display co-ordinates, after this
change they are in fold coordinates (which matches the vim behaviour).

To make this work without causing usabliity problems, a bunch of extra
keyboard shortcuts now work:

- vim: `z {o,c}` to open,close a fold
- vim: `z f` to fold current visual selection
- vim: `g {j,k,up,down}` to move up/down a display line
- vim: `g {0,^,$,home,end}` to get to start/end of a display line

Fixes: zed-industries/community#1562
2023-08-25 14:40:04 -06:00
Conrad Irwin
0280d5d010 vim change for wrapped lines 2023-08-25 14:40:03 -06:00
Conrad Irwin
104f5ae9cd relative line numbers (#2887)
- Add relative_line_mode
- vim change for wrapped lines

Release Notes:

- Add a `relative_line_numbers` setting
([#988](https://github.com/zed-industries/community/issues/998)).
2023-08-25 14:17:41 -06:00
Joseph T. Lyons
c1fd648390 Add setting to automatically enable virtual environment (#2882)
This isn't ready to go - I'm opening a PR to ask for some advice. When
activating a python virtual environment, the typical command used is
`source path_to_venv/bin/activate`. The problem is, the activatate
script isn't portable to all shells, so some additional scripts are
bundled in the env, for example, `activate.fish`. We don't have a good
way of knowing what shell we are in, in order to know what script to
run.

Julia gave the alternative of simply activating the virtual environment
while in the zsh context, before the user's custom shell is launched,
which I think does work, but because we activate the virtual environment
before we launch the custom shell, the shell isn't really aware that we
are in the virtual environment and it fails to display the information
in the prompt that is typically shown after activating.

Is there a clean way for us to know for a fact what shell is being ran,
so we know what script to run?

Check out the code comments below for more context.

---


https://github.com/zed-industries/zed/assets/19867440/ddb76aaa-152b-4c93-a513-3cd580b7c40f

I've used Zed to write Python scripts, but working on an actual project
has really magnified where Python dev is falling short. A huge
quality-of-life thing we can do is provide a setting to automaticaly
search for and activate virtual environments when found, when terminals
are created. Manually starting these up in every terminal instance is
such a drag.

A few quirks:
- We don't have a way of knowing if the prompt is ready before we try
run the command, which means we see the text inserted at the top of the
terminal and on the prompt - I dont think this should be a blocker
though.
- If a user has multiple python projects with mutliple virtual
environments, we only detect and activate the first one, since can't
really make any assumptions about which one to activate. I dont think
this should be a blocker either, as I think most users will have a
single project open in Zed.

Release Notes:

- Added a `detect_venv` setting for the terminal. When configured, the
Zed terminal will automatically activate Python virtual environments on
terminal creation.
2023-08-25 15:14:24 -04:00
Joseph T. Lyons
507a5db09c WIP
Co-Authored-By: Mikayla Maki <mikayla.c.maki@gmail.com>
2023-08-25 15:06:31 -04:00
Conrad Irwin
bde67b2b9c Fix merge-conflict 2023-08-25 11:59:16 -06:00
Conrad Irwin
1c945a7521 Fix zed-industries/community#1950 (#2892)
Release Notes:

- vim: fix goal preservation of visual block selections
([#1950](https://github.com/zed-industries/community/issues/1950)).
2023-08-25 11:55:48 -06:00
Conrad Irwin
f18cdcba54 Fix relative line numbers in vim visual mode
In visual mode when your selection ends with a newline we show the
cursor at the end of the previous line (not the start of the current
line). We had only been accounting for this if the cursor was on-screen.
2023-08-25 11:50:41 -06:00
Conrad Irwin
8d5dc266a3 Fix relative line numbers when newest cursor offscreen 2023-08-25 11:50:41 -06:00
Conrad Irwin
790aa5d476 Add relative_line_mode
Co-Authored-By: joseph@zed.dev
2023-08-25 11:50:41 -06:00
Conrad Irwin
1f3e009b32 Fix zed-industries/community#1950 2023-08-25 11:34:07 -06:00
Max Brunsfeld
f798be6e27 Fix rust 1.72 warnings about shadowed glob re-exports 2023-08-25 10:25:21 -07:00
Max Brunsfeld
404f76739c Format let-else statements 2023-08-25 10:11:32 -07:00
Max Brunsfeld
732af201dc Upgrade to rust 1.72 2023-08-25 09:59:16 -07:00
Antonio Scandurra
7c5200e757 More styling 2023-08-25 17:51:13 +02:00
Antonio Scandurra
c4966ff57a Remove warning 2023-08-25 17:35:14 +02:00
Antonio Scandurra
75a6a94e96 Add placeholder text for inline assistant prompts 2023-08-25 17:24:26 +02:00
Kirill Bulatov
44c340b5f2 Properly invalidate the hint cache 2023-08-25 17:33:17 +03:00
Antonio Scandurra
b101a7edff Cancel last inline assist when escaping from the editor 2023-08-25 15:54:52 +02:00
Antonio Scandurra
fdbf4680bb Ensure the inline assistant works with gpt-3.5 2023-08-25 15:39:10 +02:00
Kirill Bulatov
205e101dd0 Query certain editor ranges for inlays with a delay (#2891)
Part of
https://linear.app/zed-industries/issue/Z-2750/investigate-performance-of-collaborating-on-large-files-with-inlay
Fixes
https://linear.app/zed-industries/issue/Z-2824/inlay-hints-affect-code-layout-in-multibuffer

We query hints for visible part of the screen, and two parts above and
below the visible range, of the same range (if applicable, we can be on
the edge of the document).

When rapidly typing, we do not care about the invisible range updates,
yet still query a lot of them + rust-analyzer sends /refresh hint
requests shortly after every modification too, forcing us to re-query.

Instead querying both visible and invisible ranges altogether, wait for
visible range query first and wait add a `400ms` delay afterwards before
querying the invisible ranges.
This allows any /refresh requests or rapid typing to avoid 2 extra
requests, cancelling them before they start.
Visible part of the screen is still queried after every change, without
any debouncing.

Release Notes:

- Delay certain inlay hint requests to reduce general LSP server load
2023-08-25 16:33:21 +03:00
Kirill Bulatov
2b95f0580e Fix the tests 2023-08-25 16:25:43 +03:00
Kirill Bulatov
c10c3e2b54 Only invalidate when doing first, visible range query 2023-08-25 15:16:55 +03:00
Kirill Bulatov
a63e1571dc Defer querying inlay hints for invisible editor ranges
This way, only the visible part gets frequently queried on typing (and
hint /refresh requests that follow), with queries for invisible ranges
cancelled eagerly.
2023-08-25 15:16:55 +03:00
Kirill Bulatov
b50762c821 Handle inlay hints resolve, support dynamic hints (#2890)
Resolves inlay hints on hover, shows hint label parts' tooltips, allows
cmd+click to navigate to the hints' parts with locations,
correspondingly highlight the hints.

Release Notes:

- Support dynamic inlay hints
2023-08-25 15:16:13 +03:00
Kirill Bulatov
0a18aa694f Use stricter inlay range checks to avoid stuck highlights
Often, hint ranges are separated by a single '<` char as in
`Option<Vec<u32>>`. When moving the caret from left to right, avoid
inclusive ranges to faster update the matching hint underline.
2023-08-25 14:46:39 +03:00
Antonio Scandurra
27c90f12f6 Merge remote-tracking branch 'origin/main' into ai-refactoring 2023-08-25 13:37:32 +02:00
Antonio Scandurra
0444b5a775 💄 2023-08-25 13:36:52 +02:00
Kirill Bulatov
8ed280a029 Rebase fixes 2023-08-25 14:30:07 +03:00
Kirill Bulatov
e44516cc6c Add hover tests 2023-08-25 14:26:17 +03:00
Kirill Bulatov
f19c659ed6 Add link_go_to_definition test for inlays 2023-08-25 14:26:17 +03:00
Kirill Bulatov
abd2d012b1 Properly binary search cached inlay hints 2023-08-25 14:26:17 +03:00
Kirill Bulatov
3c55c933d4 Be more lenient with hint resolution, always return some hint 2023-08-25 14:26:17 +03:00
Kirill Bulatov
852427e87b Use inlay highlights in randomized tests 2023-08-25 14:26:17 +03:00
Kirill Bulatov
7cd60d6afb Simplify and restore client resolve capabilities 2023-08-25 14:26:17 +03:00
Kirill Bulatov
dcf570bb03 Fix resolve status conversion 2023-08-25 14:26:17 +03:00
Kirill Bulatov
bcaff0a18a Propagate inlay background highlights to data storage 2023-08-25 14:26:17 +03:00
Kirill Bulatov
4b78678923 Prepare background highlights for inlay highlights 2023-08-25 14:26:17 +03:00
Kirill Bulatov
12ffbe54fb Unify text and inlay highlights 2023-08-25 14:26:17 +03:00
Kirill Bulatov
420f8b7b15 Prepare for inlay and text highlight unification 2023-08-25 14:26:17 +03:00
Kirill Bulatov
4cc9f2f525 Highlight inlay hint parts on cmd-hover
Co-Authored-By: Antonio <antonio@zed.dev>
2023-08-25 14:26:17 +03:00
Kirill Bulatov
f8874a726c Attempt to highlight inlays 2023-08-25 14:26:17 +03:00
Kirill Bulatov
6c5761d05b Pass inlay highlight information 2023-08-25 14:26:17 +03:00
Kirill Bulatov
477fc865f5 Properly resolve inlay label parts' locations and buffers 2023-08-25 14:26:17 +03:00
Kirill Bulatov
7eab18ec89 Pass inlay go to definition data 2023-08-25 14:26:17 +03:00
Kirill Bulatov
ac86bbac75 Prepare for hover functionality refactoring 2023-08-25 14:26:17 +03:00
Kirill Bulatov
80e8714241 Send inlay hint resolve requests 2023-08-25 14:26:17 +03:00
Kirill Bulatov
3434990b70 Store inlay hint resolve data 2023-08-25 14:26:17 +03:00
Kirill Bulatov
e4b78e322e Revert "Strip off inlay hints data that should be resolved"
Without holding all hints in host's cache, this is impossile.
Currenly, we keep hint caches separate and isolated, so this will not
work when we actually resolve.
2023-08-25 14:26:17 +03:00
Kirill Bulatov
d1cb0b3c27 Properly detect hovered inlay hint label part 2023-08-25 14:26:17 +03:00
Kirill Bulatov
d34491e822 Draft inlay hint part hover detection 2023-08-25 14:26:17 +03:00
Antonio Scandurra
971c833e80 Improve background highlighting of inline assists 2023-08-25 12:35:36 +02:00
Antonio Scandurra
144f5c5d41 Use a left bias for the prompt editor 2023-08-25 12:25:43 +02:00
Antonio Scandurra
66a496edd7 Allow generating code without editing it 2023-08-25 12:16:28 +02:00
Antonio Scandurra
c1bd035875 Rework inline assistant 2023-08-25 11:39:27 +02:00
Kyle Caverly
bc7e9088fe Eager Semantic Indexing Queue (#2886)
Optimization to the Semantic Indexing Engine.

We've transitioned from a framework in which the entire project tree is
walked at each index command, to an eager queuing method, in which an
initial queue of outstanding indexing work is initialized upon workspace
creation, and then subscriptions are leveraged for file change events to
continually keep an updated view on outstanding work.

This optimization contributes towards quicker user feedback, when
initializing or using Semantic Search functionality. It also opens the
doors towards better transparency across the system on outstanding
indexing work.

Release Notes:

- Refactored index operation queue to an eager queuing framework.
- Moved semantic search initialization to workspace creation.
- Adjusted rate limiting strategy on api delays to reduce time spent
waiting for rate limits.
2023-08-25 11:03:05 +02:00
KCaverly
ee97bc54cf cleaned up warnings 2023-08-25 10:38:01 +02:00
Joseph T. Lyons
f1586c9923 Automatically enable project search filters when using Search Inside (#2889)
Now that the filters are hidden behind a toggle-able setting, running
the `Search Inside` action from the project panel feels a bit weird,
since the filter being used is hidden. This PR automatically opens that
filter section after running a `Search Inside` action.

Release Notes:

- N/A
2023-08-25 02:39:44 -04:00
Joseph T. Lyons
8288e5591d Automatically enable project search filters when using Search Inside 2023-08-25 02:21:07 -04:00
Joseph T. Lyons
0801e5e437 Merge branch 'main' into add-setting-to-automatically-enable-virtual-environment 2023-08-25 01:50:57 -04:00
Joseph T. Lyons
9fe580acb6 WIP 2023-08-25 01:50:54 -04:00
Mikayla Maki
fbc7b37b2f Introduce channel notes (#2880)
![Screen Shot 2023-08-24 at 5 26 53
PM](https://github.com/zed-industries/zed/assets/326587/3e84c5a6-1aaf-4335-a880-4c32eb83332d)

### Todo

* [x] Snapshot channel buffers when everyone closes the buffer
* [x] Ensure that users who are in both a project and a channel note
have the same color in both places
* [x] Allow following project collaborators into channel notes
* [x] Expose notes for the current channel under "Current Call" section
of the collaboration panel
* [x] Offline state for the channel notes view
* [x] Make the channel context menu accessible to all members (to expose
the notes)
* [x] Wire in view and Item method overrides

Release Notes:

- N/A
2023-08-24 18:01:28 -07:00
Max Brunsfeld
a95dcfa8bc Make channel notes view searchable and navigable via pane history
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-24 17:18:18 -07:00
Max Brunsfeld
7b6c0c539c Show non-admin context menu items for all channel members
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-24 17:17:20 -07:00
Max Brunsfeld
c7c220309d Avoid creating redundant snapshots of channel notes buffers
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-24 16:55:45 -07:00
Max Brunsfeld
358a20494c Make channel notes read-only when disconnected
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-24 16:50:13 -07:00
Max Brunsfeld
a327320f7d Show channel notes in current call section of collab panel
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-24 15:00:54 -07:00
Max Brunsfeld
1ae54ca620 Dedup channel views
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-24 14:29:04 -07:00
Max Brunsfeld
5888e7b214 Dedup channel buffers 2023-08-24 13:40:44 -07:00
Max Brunsfeld
90f22cb0d2 Replicate editor state when following into channel notes
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-24 12:36:01 -07:00
Max Brunsfeld
24141c2f16 Ensure collaborators cursor colors are the same in channel buffers as in projects
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-24 11:31:41 -07:00
Max Brunsfeld
3268cce41a Fix error in update_channel_buffer when there are no operations to store
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-24 11:26:22 -07:00
Mikayla
199be8241c Add following into channel notes
co-authored-by: max <max@zed.dev>
2023-08-24 11:25:20 -07:00
Antonio Scandurra
b6035ee6a6 WIP 2023-08-24 20:00:25 +02:00
Conrad Irwin
3b6794fe36 vim: Fix linewise copy of last line with no trailing newline (#2885)
Along the way, delete the VimBindingTestContext by updating the
visual tests to no-longer need it.


Release Notes:

- vim: Fix `y` when on the last line of a file with no trailing newline.
2023-08-24 10:45:46 -06:00
KCaverly
131950f670 add handling for Added file events to semantic index 2023-08-24 18:40:08 +02:00
Antonio Scandurra
cb4b816d0e Add todo for modal assistant 2023-08-24 17:33:59 +02:00
Antonio Scandurra
805e44915c WIP 2023-08-24 17:23:12 +02:00
Antonio Scandurra
cbf7160054 Improve scoring 2023-08-24 16:32:55 +02:00
Antonio Scandurra
c1d9b37dbc Move to an inline refactoring prompt 2023-08-24 15:46:18 +02:00
Antonio Scandurra
2468506189 Always clear refactoring text highlights, even if an error occurs 2023-08-24 14:29:05 +02:00
Antonio Scandurra
71a5964c18 Rename merge_transaction_into to merge_transactions 2023-08-24 14:26:42 +02:00
KCaverly
a892a51ec3 update initialize project call to accomodate for test scenarios
Co-authored-by: Piotr <piotr@zed.dev>
2023-08-24 13:46:43 +02:00
KCaverly
0b204bfdc8 reindex semantic index when search project pane is reactivated in semantic mode
Co-authored-by: Piotr <piotr@zed.dev>
2023-08-24 13:40:04 +02:00
KCaverly
a1519e4c38 move semantic search project intialization to a subscribe event for workspace created
Co-authored-by: Piotr <piotr@zed.dev>
2023-08-24 13:14:19 +02:00
KCaverly
e8e7b294d8 add delete files operation for remaining files in database not included in current worktree
Co-authored-by: Piotr <piotr@zed.dev>
2023-08-24 12:49:20 +02:00
Antonio Scandurra
9674b03855 Make scoring more precise by using floats when diffing AI refactors 2023-08-24 12:45:44 +02:00
Antonio Scandurra
481bcbf204 Normalize indentation when refactoring 2023-08-24 12:45:21 +02:00
KCaverly
afe0e74868 remove worktree_file_mtimes in state as it is no longer used
Co-authored-by: Piotr <piotr@zed.dev>
2023-08-24 12:42:41 +02:00
KCaverly
aa07872a24 accomodate for duplicate entries in indexing queue
Co-authored-by: Piotr <piotr@zed.dev>
2023-08-24 12:36:43 +02:00
KCaverly
3f9f742530 update rate limiting embeddings strategy to delay less 2023-08-24 11:45:52 +02:00
Antonio Scandurra
985397b55c 📝 2023-08-24 09:52:07 +02:00
Conrad Irwin
e4794e3134 vim: Fix linewise copy of last line with no trailing newline
Along the way, delete the VimBindingTestContext by updating the
visual tests to no-longer need it.
2023-08-24 00:00:12 -06:00
Max Brunsfeld
7e83138805 Start work on showing consistent replica ids for channel buffers
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-23 18:37:01 -07:00
Max Brunsfeld
11ef5e2740 Simplify buffer_operations schema
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-23 18:37:01 -07:00
Max Brunsfeld
1d08f44e70 Snapshot channel notes buffers when everyone leaves
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-23 18:37:01 -07:00
Mikayla
4eff8ad186 Add channel notes view
co-authored-by: Max <max@zed.dev>
2023-08-23 18:37:00 -07:00
Mikayla
5a0315c4d5 Achieve end to end channel buffer synchronization
co-authored-by: max <max@zed.dev>
2023-08-23 18:34:43 -07:00
Max Brunsfeld
95ea664725 WIP 2023-08-23 18:34:43 -07:00
Max Brunsfeld
71611ee7a2 Get join_buffer_for_channel compiling
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-23 18:34:43 -07:00
Mikayla
364ed1f840 WIP: pass synchronize channel buffers integration test 2023-08-23 18:34:43 -07:00
Mikayla
a7a4e2e369 Add buffer integration test
Rearrange channel crate structure
Get channel buffer from database

co-authored-by: Max <max@zed.dev>
2023-08-23 18:34:43 -07:00
Max Brunsfeld
ff5035ea37 Start work on storing channel buffers 2023-08-23 18:34:43 -07:00
Max Brunsfeld
29e43384f0 Simplify macro for running a test with both databases 2023-08-23 18:34:43 -07:00
Mikayla Maki
26c3312049 Fix cursor and hover styles changing when dragging the mouse (#2884)
Since the resizing rework on docks, I noticed a lot of cursor flickering
when dragging, that drags trigger hover states in underlying elements
instead of being ignored, and that clicking and dragging off a button
can leave that button's click style active. This PR fixes all three
bugs.

Release Notes:

- Fixed several styling bugs related to dragging the mouse cursor
2023-08-23 18:29:29 -07:00
Mikayla
ff75d1663b Fix stuck click styling when dragging off of a button 2023-08-23 18:22:48 -07:00
Mikayla
4d2f5a8e04 Fix cursor and hover styles changing when dragging the mouse 2023-08-23 18:08:33 -07:00
Mikayla Maki
2ab8ebaaf7 Add disclosable component (#2868)
This PR adds a disclosable component, related wiring, and uses it to
implement the collaboration panel's disclosure of subchannels. It also
adds a component test page to make style development easier, and
refactors components into v0.2, safe styles (as described in [TWAZ
#16](https://zed.dev/blog/this-week-at-zed-16))

Release Notes:

- N/A
2023-08-23 16:37:34 -07:00
Mikayla
707ca34f19 Merge branch 'main' into disclosable-component 2023-08-23 16:30:27 -07:00
Mikayla
2a182b6a7b Tune styles and disclosable elements 2023-08-23 16:25:40 -07:00
Nathan Sobo
cf007a3d3b Start working on restoring button 2023-08-23 16:17:45 -06:00
Piotr Osiewicz
1320fadc30 Bump rust embed (#2883)
This is a follow-up to a recent patch I've submitted to this crate to
improve compile time and runtime (in older versions file lookup was
essentially O(n) with respect to path count, now it's O(log n))

Release Notes:

- N/A
2023-08-24 00:16:35 +02:00
Nathan Sobo
4c000379d2 Click events, children 2023-08-23 16:02:56 -06:00
KCaverly
b72c4c576b catchup with main 2023-08-23 22:31:39 +02:00
KCaverly
e42b9e910e fix async calls on project updated entries to ensure that all files are updating appropriately 2023-08-23 22:28:30 +02:00
Nathan Sobo
8e3b23e510 Rename Window::mouse_position to last_mouse_position
We want to encourage people to use WindowContext::mouse_position, which
requests the position from the platform.

Co-Authored-By: Conrad Irwin <conrad@zed.dev>
2023-08-23 13:28:22 -06:00
Nathan Sobo
684db11afd Use platform API to request mouse position
Co-Authored-By: Conrad Irwin <conrad@zed.dev>
2023-08-23 13:10:41 -06:00
Joseph T. Lyons
6c45be2dc4 Add docker system prune command
This will hopefully keep the system drive cleaned up so we don't run issues with not enough disk space.
2023-08-23 14:54:39 -04:00
Joseph T. Lyons
af21546a43 collab 0.18.0 2023-08-23 14:19:24 -04:00
Nathan Sobo
5996b6b46b Use RefinementCascade to compose pressability and hoverability
Co-Authored-By: Conrad Irwin <conrad@zed.dev>
2023-08-23 12:18:12 -06:00
Antonio Scandurra
f22acb602e Apply a score boost when consecutive triplets of characters match 2023-08-23 19:21:44 +02:00
Joseph T. Lyons
72f0efb7b7 v0.102.x dev 2023-08-23 12:49:13 -04:00
Antonio Scandurra
301a12923f Merge transactions into the original assistant transaction
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-08-23 18:22:17 +02:00
Antonio Scandurra
a69461dba2 Don't score whitespace matches
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-08-23 17:19:07 +02:00
Antonio Scandurra
e4f49746e1 Group modal assistant edits into the same transaction
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-08-23 17:09:15 +02:00
Nathan Sobo
569d99a5a1 Add hover styling support 2023-08-23 09:08:05 -06:00
Nathan Sobo
1bc4f22373 Rework element system, phase 1 (#2881)
This is a deep cut. There's still more work to do until we start
building UI with this. I've approached this as additively as possible,
but I've made a few changes to the rest of the code that I think would
be good to upstream before proceeding too much further.

Most of the interesting pieces are in gpui/playground, which is a
standalone binary that opens a single window and renders a new kind of
element. The layout of these new elements is provided by the taffy
layout engine crate, which conforms to web conventions. The idea is that
playground is relatively cheap to build and work on. As concepts
coalesce in playground, we can drop them into gpui and start
transitioning.
2023-08-23 08:26:38 -06:00
Antonio Scandurra
d3238441ce 🎨 2023-08-23 16:13:37 +02:00
KCaverly
09fd99b1e3 moved semantic_index project intialization to queue and channel method 2023-08-23 15:09:15 +02:00
Antonio Scandurra
2e1a4b2591 Adjust scoring 2023-08-23 13:26:30 +02:00
Antonio Scandurra
aa6d6582fd Add basic styling 2023-08-23 13:09:02 +02:00
Antonio Scandurra
a2671a29a0 Highlight text when the diff is the same 2023-08-23 10:28:43 +02:00
Joseph T. Lyons
7b170304df Shorten setting name 2023-08-23 04:07:10 -04:00
Joseph T. Lyons
711f156308 WIP 2023-08-23 04:04:36 -04:00
Antonio Scandurra
a93583065b Delete unused imports 2023-08-23 09:59:07 +02:00
Antonio Scandurra
c2935056e8 Support multi-byte characters in diff 2023-08-23 09:46:33 +02:00
Antonio Scandurra
a9871a7a70 Add randomized tests for incremental diff 2023-08-23 09:09:01 +02:00
Joseph T. Lyons
b77e661c9f Update textmate.json 2023-08-23 01:31:01 -04:00
Julia
a394aaa524 Add Tailwind server to JS/TS 2023-08-23 00:11:15 -04:00
Julia
68408f3838 Add VSCode CSS language server & add Tailwind to .css files 2023-08-22 23:50:40 -04:00
Julia
affb73d651 Only generate workspace/configuration for relevant adapter 2023-08-22 23:36:04 -04:00
Nathan Sobo
cd72a42bd4 Mark new crates as publish = false 2023-08-22 20:47:05 -06:00
Conrad Irwin
b0815bd13e vim: Rewrite paste (#2878)
A complete overhaul of the way vim did paste. This ended up being more
involved than I expected because of the variety of different behaviors
that vim exhibits when copying/pasting between various modes.

Release Notes:

- vim: support P for paste before
([#1869](https://github.com/zed-industries/community/issues/1869)).
- vim: support P in visual modes for paste without overriding clipboard
- vim: fix position when using `p` on text copied outside zed
([#469](https://github.com/zed-industries/community/issues/469)).
- vim: fix indentation when using `p` on text copied from zed
([#1015](https://github.com/zed-industries/community/issues/1015)).
- all: Separate copied multi-selections by `\n`
2023-08-22 20:21:58 -06:00
Nathan Sobo
d375f7992d Merge branch 'main' into divs 2023-08-22 16:35:56 -06:00
Conrad Irwin
27ba77b16f Ensure editor clipboard contains \n too 2023-08-22 13:52:04 -06:00
Conrad Irwin
215a922680 vim: Dismiss menu in insert mode with escape (#2879)
Release Notes:

- vim: Fix escape to dismiss suggestions in insert mode.
2023-08-22 13:38:12 -06:00
Joseph T. Lyons
471810a3c2 WIP
Co-Authored-By: Julia <30666851+ForLoveOfCats@users.noreply.github.com>
2023-08-22 15:29:25 -04:00
Conrad Irwin
ef077796f8 vim: Dismiss menu in insert mode with escape 2023-08-22 13:28:50 -06:00
Conrad Irwin
33d7fe02ee Rewrite paste
- vim: support P for paste before
- vim: support P in visual mode for paste without overriding clipboard
- vim: fix position when using `p` on text copied outside zed
- vim: fix indentation when using `p` on text copied from zed
2023-08-22 13:27:57 -06:00
Conrad Irwin
31db5e4f62 Vim z 2819 (#2875)
Add `$` and `#` and a smoke test for vim-mode respecting the
configuration.
2023-08-22 11:38:06 -06:00
Nathan Sobo
733df38f9b Checkpoint
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-08-22 11:34:06 -06:00
Antonio Scandurra
3a511db5c9 🎨 2023-08-22 18:41:22 +02:00
Piotr Osiewicz
ccb3f6748c chore: fmt 2023-08-22 18:14:07 +02:00
Piotr Osiewicz
ccb9b5d278 Query char_kind for completion triggers.
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
2023-08-22 18:12:05 +02:00
Joseph T. Lyons
d3c7f03fc4 Add default bindings for new file and directory (#2877)
Release Notes:

- Added default key bindings for `NewFile` and `NewDirectory` in the
project panel (bound to `cmd-n` and `alt-cmd-n`, respectively).
2023-08-22 11:48:02 -04:00
Joseph T. Lyons
ebcb395f1f Add default bindings for new file and directory 2023-08-22 11:33:40 -04:00
Nathan Sobo
3921278319 Add more style helpers 2023-08-22 09:16:05 -06:00
Nathan Sobo
53679ce045 Checkpoint 2023-08-22 09:07:45 -06:00
KCaverly
328b7e523c reorganized to stop the race 2023-08-22 15:01:21 +02:00
KCaverly
aabdfa210f working on initialization + index breakup 2023-08-22 14:45:27 +02:00
Antonio Scandurra
69b6967838 Integrate the new diff algorithm into the modal assistant 2023-08-22 13:59:45 +02:00
Antonio Scandurra
1ae5a909cd Start on a custom diff implementation 2023-08-22 12:07:41 +02:00
KCaverly
ced2b2aec3 reworked ProjectState to include additional context 2023-08-22 11:58:48 +02:00
Kirill Bulatov
814896de3f Reenable html, remove emmet due to the lack of the code 2023-08-22 12:51:14 +03:00
Kirill Bulatov
a35b3f39c5 Expand word characters for html and css 2023-08-22 12:41:59 +03:00
Piotr Osiewicz
007d1b09ac Z 2819 (#2872)
This PR adds new config option to language config called
`word_boundaries` that controls which characters should be recognised as
word boundary for a given language. This will improve our UX for
languages such as PHP and Tailwind.

Release Notes:

- Improved completions for PHP
[#1820](https://github.com/zed-industries/community/issues/1820)

---------

Co-authored-by: Julia Risley <julia@zed.dev>
2023-08-22 12:23:30 +03:00
Piotr Osiewicz
d27cebd977 Z 2819 (#2872)
This PR adds new config option to language config called
`word_boundaries` that controls which characters should be recognised as
word boundary for a given language. This will improve our UX for
languages such as PHP and Tailwind.

Release Notes:

- Improved completions for PHP
[#1820](https://github.com/zed-industries/community/issues/1820)

---------

Co-authored-by: Julia Risley <julia@zed.dev>
2023-08-22 10:35:20 +02:00
Joseph T. Lyons
a836f9c23d Add a default_open_ai_model setting for the assistant (#2876)
[This PR has been sitting around for a
bit](https://github.com/zed-industries/zed/pull/2845). I received a bit
of mixed opinions from the team on how this setting should work, if it
should use the full model names or some simpler form of it, etc. I went
ahead and made the decision to do the following:

- Use the full model names in settings - ex: `gpt-4-0613`
- Default to `gpt-4-0613` when no setting is present
- Save the full model names in the conversation history files (this is
how it was prior) - ex: `gpt-4-0613`
- Display the shortened model names in the assistant - ex: `gpt-4`
- Not worry about adding an option to add custom models (can add in a
follow-up PR)
- Not query what models are available to the user via their api key (can
add in a follow-up PR)

Release Notes:

- Added a `default_open_ai_model` setting for the assistant (defaults to
`gpt-4-0613`).

---------

Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-22 02:55:27 -04:00
Antonio Scandurra
5453553cfa WIP 2023-08-22 08:16:22 +02:00
Conrad Irwin
168a213a44 Add test for word characters in vim 2023-08-21 22:37:14 -06:00
Conrad Irwin
14fa996cdc Add # and $ for js 2023-08-21 22:36:58 -06:00
Piotr Osiewicz
42b0c5dfdd Remove comment;for real now 2023-08-22 01:04:55 +02:00
Piotr Osiewicz
bca2d02a61 Revert "Remove dead comment"
This reverts commit 046759a366.
2023-08-22 01:04:15 +02:00
Piotr Osiewicz
344a09a4f8 Rename word_boundaries to word_characters 2023-08-22 01:02:25 +02:00
Piotr Osiewicz
046759a366 Remove dead comment 2023-08-22 01:01:27 +02:00
Nathan Sobo
ff7b25c538 Checkpoint 2023-08-21 16:14:59 -06:00
Joseph T. Lyons
3a13795021 Add channel id to call events (#2873)
Release Notes:

- N/A
2023-08-21 14:11:35 -04:00
Joseph T. Lyons
f66e6863fa Add channel id to call events
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2023-08-21 13:50:04 -04:00
Piotr Osiewicz
6137d88a54 Merge branch 'main' into Z-2819 2023-08-21 17:41:27 +02:00
Piotr Osiewicz
00caad2f17 ..and use it in PHP language config 2023-08-21 17:41:05 +02:00
Piotr Osiewicz
ab5bd0ac5a Use new char_kind (parameterized by language) 2023-08-21 17:39:38 +02:00
Piotr Osiewicz
3e8522b5f2 WIP: Saved state from Friday.
Co-authored-by: Julia Risley <julia@zed.dev>
2023-08-21 17:09:03 +02:00
KCaverly
3d89cd10a4 added sha1 encoding for each document 2023-08-21 16:35:57 +02:00
Antonio Scandurra
5b9d48d723 Avoid diffing when the length is too small 2023-08-21 15:53:43 +02:00
Antonio Scandurra
42f02eb4e7 Incrementally diff input coming from GPT 2023-08-21 15:13:26 +02:00
Kyle Caverly
bbe6d3b261 Semantic index rough edges (#2871)
Small PR aimed at improving a few edge cases for semantic indexing large
projects.

Release Notes (Preview-only).

- Batched large files with a number of documents greater than
EMBEDDINGS_BATCH_SIZE.
- Ensured that the job handle counting mechanism is consistent with
inner file batching.
- Updated tab content names for semantic search, to match text/regex
searches.
2023-08-21 13:43:08 +02:00
Piotr Osiewicz
c68b518aec chore: fix compiler warning
Co-authored-by: Kyle <kyle@zed.dev>
2023-08-21 13:31:45 +02:00
Piotr Osiewicz
67a48ec106 project_search: use search history's current entry as a tab name.
Previously the tab name for Semantic Search was not updated, as we didn't have an active query to go off of

Co-authored-by: Kyle <kyle@zed.dev>
2023-08-21 13:30:32 +02:00
Piotr Osiewicz
61041b0cd1 Do not attempt to reindex a file if previous attempts have failed.
Add doc comment to JobHandle

Co-authored-by: Kyle <kyle@zed.dev>
2023-08-21 13:23:11 +02:00
Piotr Osiewicz
1a88444f2f Increment job counter on JobClient::new
Co-authored-by: Kyle <kyle@zed.dev>
2023-08-21 13:00:56 +02:00
KCaverly
def215af9f update job handle to ensure file count is consistent
Co-authored-by: Piotr <piotr@zed.dev>
2023-08-21 12:47:43 +02:00
Piotr Osiewicz
267c0b9a3f chore: Update Cargo.lock following rodio PR (#2870)
That's merely a follow-up to a previous PR.
Release Notes:
- N/A
2023-08-21 11:33:06 +02:00
KCaverly
1cae4758cc manage for edge case in which file documents are larger than the allowable limit 2023-08-21 11:29:45 +02:00
Piotr Osiewicz
9ea0ed3e95 chore: remove unused features from rodio crate. (#2869)
This reduces our dep count by 1% at the expense of not supporting
playback of .flac, .mp3 and .vorbis formats. We only use .wav anyways.


Release Notes:
- N/A
2023-08-21 11:07:31 +02:00
Nathan Sobo
f4d8763d2b WIP 2023-08-19 23:16:20 -06:00
Nathan Sobo
6663d3f8eb Checkpoint 2023-08-19 22:33:28 -06:00
Nathan Sobo
afff46b335 Checkpoint 2023-08-19 21:24:28 -06:00
Nathan Sobo
2c6f692c56 Checkpoint 2023-08-19 20:29:55 -06:00
Nathan Sobo
0747131bd4 Compiling checkpoint 2023-08-19 19:51:22 -06:00
Mikayla
bfd3e53dcd Implement component test page 2023-08-19 16:29:24 -07:00
Mikayla
e946b0a2ec Finish building out adapters and names
Document core traits
Add start for a component storybook
2023-08-19 14:40:05 -07:00
Mikayla
bd3ab82dac Add disclosable components into channels
Rename components to more closely match their purpose
2023-08-19 05:18:53 -07:00
Mikayla Maki
b7e03507c2 Update components.rs 2023-08-19 04:30:49 -07:00
Nathan Sobo
76993f6b57 WIP: Trying to find a composable approach to styling that plays nice with layout engine 2023-08-18 20:08:29 -06:00
Mikayla
2d37128693 Actually get it compiling, omg 2023-08-18 19:02:27 -07:00
Mikayla
3178adefde WIP: Add disclosable channels 2023-08-18 18:11:05 -07:00
Mikayla Maki
29c339e3b4 Revert "Remove semantic search UI" (#2865)
This reverts commit c0f042b39a, where I
deleted the semantic-search related UI code.

Apologies to @KCaverly for the misunderstanding

Release Notes:

- N/A
2023-08-18 18:05:19 -07:00
Mikayla Maki
15f91f38f6 Remove potential osascript hijacking attack (#2867)
Fixes
https://linear.app/zed-industries/issue/Z-2818/security-vulnerability-dylib-injection

Release Notes:

- Fixed a potential local code-injection if a user installs the Zed CLI
for the first time with a hijacked `osascript` in their path.
2023-08-18 18:00:39 -07:00
Mikayla
d22caf5a19 Fix erorr in revert 2023-08-18 17:59:06 -07:00
Mikayla
5a356a4710 Remove potential osascript hijacking 2023-08-18 17:40:08 -07:00
Max Brunsfeld
ef9686c988 Reorganize the structure of the collab crate's db module (#2866)
This PR just moves some code around, with the goal of making it easier
to find things in the `collab::db` module. That has become a large
module. Previously, most of the logic lived in one giant `impl Database`
item in `db.rs`.

I broke up this `impl` into several different `impl` blocks, grouped by
topic, each in a different file in a folder called `queries`.

I also pulled out the macro-generated id types into their own file,
moved the `TestDb` struct into its own file, and moved the `sea_orm`
entity declarations into a folder called `tables`.

New folder structure:

```
db
├── db_tests.rs
├── ids.rs
├── queries
│   ├── access_tokens.rs
│   ├── channels.rs
│   ├── contacts.rs
│   ├── projects.rs
│   ├── rooms.rs
│   ├── servers.rs
│   ├── signups.rs
│   └── users.rs
├── queries.rs
├── tables
│   ├── access_token.rs
│   ├── channel.rs
│   ├── channel_member.rs
│   ├── channel_path.rs
│   ├── contact.rs
│   ├── follower.rs
│   ├── language_server.rs
│   ├── project.rs
│   ├── project_collaborator.rs
│   ├── room.rs
│   ├── room_participant.rs
│   ├── server.rs
│   ├── signup.rs
│   ├── user.rs
│   ├── worktree.rs
│   ├── worktree_diagnostic_summary.rs
│   ├── worktree_entry.rs
│   ├── worktree_repository.rs
│   ├── worktree_repository_statuses.rs
│   └── worktree_settings_file.rs
├── tables.rs
└── test_db.rs
```

Release Notes:

- N/A
2023-08-18 17:29:15 -07:00
Max Brunsfeld
b35aaf144b Break up Database impl into multiple files, organized by topic 2023-08-18 17:03:34 -07:00
Max Brunsfeld
e964137d79 Reorganize source files of collab::db
* Move all sea_orm tables into a 'tables' module
* Move TestDb into its own file
* Move id types into their own module
2023-08-18 16:23:33 -07:00
Mikayla
48553d7c8f Revert "Remove semantic search UI"
This reverts commit c0f042b39a.
2023-08-18 16:18:28 -07:00
Nathan Sobo
eec39dc23c WIP 2023-08-18 17:14:29 -06:00
Mikayla Maki
cb55204e22 Move the collab panel to the left by default (#2864)
Increase the indent size on channels
Switch font UI mono

Release Notes:

- Switch the collaboration panel font to Zed's sans-mono (preview only)
- Switch the default dock side to the left (preview-only)
- Increase the indent size on the channels panel (preview-only)
2023-08-18 16:06:10 -07:00
Mikayla Maki
64cbfe088a Update bump-version.sh 2023-08-18 15:52:21 -07:00
Mikayla Maki
24fbea1557 Update collab_panel.rs 2023-08-18 15:34:35 -07:00
Mikayla
4c15f26eba Finish rename correctly 2023-08-18 15:26:36 -07:00
Mikayla
4c3227ce2a Fix example compile erorr 2023-08-18 15:17:24 -07:00
Mikayla
84f35d4e6b Add pub 2023-08-18 15:12:56 -07:00
Mikayla
8ef671d7a1 Move the collab panel to the left by default
Increase the indent size on channels
Switch font UI mono
2023-08-18 15:04:22 -07:00
Conrad Irwin
f0ebbd01e6 Don't show vim mode when disabled (#2863)
Fixes vim's mode indicator showing up when vim is disabled.
2023-08-18 16:00:46 -06:00
Conrad Irwin
3ab3042e95 Don't show vim mode when disabled 2023-08-18 15:50:34 -06:00
Max Brunsfeld
e48bb1853c Fix failure to detect string scope, and disable quote autoclose in Rust (#2862)
This regressed in https://github.com/zed-industries/zed/pull/2723
Fixes https://github.com/zed-industries/community/issues/684
Fixes
https://linear.app/zed-industries/issue/Z-1516/avoid-double-quotes-when-closing-a-string

Release Notes:

- Fixed a bug where auto-closing quotation marks were inserted
incorrectly in Rust.
2023-08-18 14:39:44 -07:00
Max Brunsfeld
1c46749ad7 Fix regression in Buffer::language_scope_at
Co-authored-by: Julia <julia@zed.dev>
2023-08-18 12:58:09 -07:00
Joseph T. Lyons
98186fc016 Add more file icons (#2861)
Release Notes:

- Added file icons for Python and Elixir
2023-08-18 15:27:04 -04:00
Max Brunsfeld
08429169e2 Upgrade Tree-sitter for error recovery bug fix (#2860)
Bumps Tree-sitter for
https://github.com/tree-sitter/tree-sitter/pull/2526.

Release Notes:

- Fixed a bug where small syntax errors would mess up syntax
highlighting more than necessary when editing certain languages, like
Scheme and PHP.
2023-08-18 12:01:53 -07:00
Joseph T. Lyons
e26d6d7a49 Add elixir icons 2023-08-18 14:54:53 -04:00
Conrad Irwin
9dab6b6a20 vim: Fix cursor adjustment on scroll (#2859)
Fixes: zed-industries/community#1929

Also preserves visual modes correctly.

[[PR Description]]

Release Notes:

- vim: Fix scroll offset on `ctrl-{e,y,u,b}`
([#1929](https://github.com/zed-industries/community/issues/1929)).
2023-08-18 12:32:47 -06:00
Max Brunsfeld
09fcacdfd1 Upgrade Tree-sitter for error recovery bug fix 2023-08-18 11:31:40 -07:00
Conrad Irwin
93461d366c Fix <Enter> to go to non-whitespace character
Fixes: zed-industries/community#831
2023-08-18 12:24:39 -06:00
Joseph T. Lyons
ab73375a61 Alphabetize list 2023-08-18 14:07:55 -04:00
Joseph T. Lyons
ffdca77124 Add python file icon 2023-08-18 14:07:17 -04:00
Conrad Irwin
5029587e3b Add ctrl-q as an alias for ctrl-v
Fixes: zed-industries/community#871
2023-08-18 11:39:48 -06:00
Conrad Irwin
e3c0e93e46 Fix cursor adjustment on scroll
Fixes: zed-industries/community#1929

Also preserves visual modes correctly.
2023-08-18 11:23:43 -06:00
Antonio Scandurra
3ad7f528cb Start on a refactoring assistant 2023-08-18 17:58:22 +02:00
Julia
c842e87079 Use updated lsp-types fork branch 2023-08-18 11:57:19 -04:00
Conrad Irwin
d1aa82bb48 vim visual block (#2849)
Release notes:

- vim: add Visual Block mode
([#984](https://github.com/zed-industries/community/issues/984)),
([#1415](https://github.com/zed-industries/community/issues/1415)).
- vim: add support for `a<object>` and `i<object>` in visual modes
- vim: fix scroll shortcuts (`ctrl-{f,b,d,u,e,y}`) in visual modes
- allow `shift-enter` to type a newline.
2023-08-18 09:55:40 -06:00
Piotr Osiewicz
273a8b4368 editor: Recognize '$' as a Word character.
This fixes PHP variable completion. When we were querying for completions, PHP LS returned proper matches for variables which we filtered out as our query did not include a `$` character.

Z-2819
2023-08-18 17:25:20 +02:00
Kirill Bulatov
760c4918cb Respect completion resolve server capabilities (#2858)
Only query for additional edits if the server supports it

Release Notes:

- N/A
2023-08-18 17:50:37 +03:00
Kirill Bulatov
269dad5a9c Respect completion resolve server capabilities
Only query for additional edits if the server supports it

Co-Authored-By: Julia Risley <julia@zed.dev>
2023-08-18 16:55:47 +03:00
Kyle Caverly
8451e7eb7e Project search design (#2834)
TODO before merging: 
- [x] Re-run project search when options (case, word, regex) change

/cc @PixelJanitor 
Release Notes:
- Revamped project & buffer search UI.
- Added "Cycle Mode" command for search
2023-08-18 14:38:01 +02:00
Nathan Sobo
b910c85f7f Still need to wire up MouseMove with the new regions 2023-08-18 02:23:06 -06:00
Nathan Sobo
3709eff34b Compiling 2023-08-18 01:59:21 -06:00
Nathan Sobo
9b74dc196e Introduce Refinement trait and derive macro 2023-08-18 01:03:46 -06:00
Julia
a979e32127 Utilize LSP completion itemDefaults a bit
Tailwind likes to throw a lot of completion data at us, this gets it to
send less. Previously it would respond to a completion with 2.5 MB JSON
blob, now it is more like 0.8 MB.

Relies on a local copy of lsp-types with the `itemDefaults` field added.
I don't have write perms to push to our fork of the crate atm, sorry :)
2023-08-17 21:57:39 -04:00
Mikayla
66e94aa199 Make search re-query eagerly when changing modes
Fix a bug where focus could be lost when clearing the search results
2023-08-17 17:53:58 -07:00
Nathan Sobo
19ccb19c96 Compiling 2023-08-17 18:37:54 -06:00
Mikayla
c0f042b39a Remove semantic search UI 2023-08-17 17:28:09 -07:00
Mikayla
21fa6090b8 Add action button component for rendering the search options 2023-08-17 17:28:09 -07:00
Max Brunsfeld
802911d742 Fix AppKit screen coordinate conversion leading to wrong window bounds (#2856)
Fixes
https://linear.app/zed-industries/issue/Z-1510/join-project-notification-takes-up-full-screen-on-a-second-monitor

There were multiple mistakes in the positioning of Zed's notification
windows, one of which lead to the notifications taking up the full
screen on secondary displays 😱 .
* Wrong sign for the vertical padding (moving the window *upward*
instead of downward)
* Using the screen's full frame instead of its "visible frame" (which
accounts for app menu bar)
* Wrong coordinate translation between our coordinates and AppKit's
coordinates. Regardless of which display a given window appears on, the
coordinate translation needs to use the height of the *main* display.

Release Notes:

- Fixed a bug where call notifications were accidentally full-screen on
all displays except the main display.
2023-08-17 16:24:46 -07:00
Conrad Irwin
b0ba0f8851 Fix visual objects
Adds 'a'/'i' in visual mode
2023-08-17 17:13:23 -06:00
Max Brunsfeld
cd2ef784ea Translate coordinates using the primary screen not the main screen 2023-08-17 16:12:52 -07:00
Max Brunsfeld
6eba0ef630 Return to master branch of alacritty 2023-08-17 15:31:27 -07:00
Mikayla
8630557ece Add action button component for rendering the search options 2023-08-17 15:30:40 -07:00
Max Brunsfeld
d9ef987b04 Fix AppKit screen coordinate conversion leading to wrong window bounds 2023-08-17 15:23:28 -07:00
Conrad Irwin
d4276acab8 Give up on monospace indicator
Changing mode almost always introduces the (1 selected) text in
the status bar, so we may as well also keep the --'s for block and line
mode.
2023-08-17 16:04:55 -06:00
Conrad Irwin
243d1664e5 shift-enter should also give a newline
(reported as vim feedback, but really true of the editor too)
2023-08-17 16:01:19 -06:00
Conrad Irwin
3c483d85f7 Scrolling should work in visual mode 2023-08-17 15:58:10 -06:00
Conrad Irwin
eb0b2e60bb Preserve line mode selection on undo
This diverges from vim's behaviour (which collapses the
cursor to a single point on undo).
2023-08-17 15:40:27 -06:00
Conrad Irwin
59d1a5632f Fix edge-cases in visual block insert 2023-08-17 15:16:26 -06:00
Conrad Irwin
3514816ece Store some vim state per-editor
This fixes a bug where opening and closing command would reset your
selection incorrectly.
2023-08-17 14:09:47 -06:00
Nathan Sobo
24d19deb0b Compiling checkpoint 2023-08-17 14:05:18 -06:00
Nathan Sobo
f3a275d339 Revert "Add a proc macro for deriving override structs with optional fields"
This reverts commit ab9356e9d8.
2023-08-17 13:48:46 -06:00
Conrad Irwin
d308c91020 Add I and A in visual block mode 2023-08-17 11:21:58 -06:00
Nathan Sobo
ab9356e9d8 Add a proc macro for deriving override structs with optional fields 2023-08-17 09:39:23 -06:00
Nate Butler
f451e3423d Fix missing border on tab bar navigation arrows 2023-08-17 11:00:22 -04:00
Piotr Osiewicz
1bd7d7077a Move nav buttons to the left hand side of a tab bar.
Co-authored-by: Nate <nate@zed.dev>
2023-08-17 16:45:11 +02:00
Nathan Sobo
b95b2af3e0 Store generic mouse regions on window that contain their event type id 2023-08-17 08:37:55 -06:00
Kirill Bulatov
4f0fa21c04 Provide more data to tailwind langserver
Tailwind needs user languages and language-to-language-id mappings to
start providing completions for those languages.
And also it has emmet completions disabled by default, enable them.
2023-08-17 16:14:55 +03:00
KCaverly
b7dd12e53e ensured search results are cleared appropriately while cycling modes 2023-08-17 11:11:09 +01:00
Mikayla
afebe3faf8 Merge branch 'main' into project_search_design 2023-08-17 01:56:05 -07:00
Mikayla Maki
6d3518cb50 Collab panel touch ups (#2855)
This will also fix the bug that @JosephTLyons observed where accepting a
channel invite would not show sub channels.

Release Notes:

- Offline section is now collapsed by default
- Manage members now shows full list
- Dragging of docks now follows the mouse exactly, and double clicks
reset size. (https://github.com/zed-industries/community/issues/1816)
2023-08-17 01:09:01 -07:00
Mikayla
75679291a9 Add fix for lost channel update bug 2023-08-17 00:56:21 -07:00
Conrad Irwin
7598030102 Tidy-up 2023-08-16 22:29:28 -06:00
Nathan Sobo
812d3f6af6 Get basic mouse_down and mouse_up working 2023-08-16 22:21:27 -06:00
Mikayla
5bc481112e Add test for lost channel update 2023-08-16 20:05:21 -07:00
Nate Butler
e0cafffbc8 Fix collab indicator colors (#2854)
[[PR Description]]

Release Notes:

- N/A

or

- (Added|Fixed|Improved) ...
([#<public_issue_number_if_exists>](https://github.com/zed-industries/community/issues/<public_issue_number_if_exists>)).

If the release notes are only intended for a specific release channel
only, add `(<release_channel>-only)` to the end of the release note
line.
These will be removed by the person making the release.
2023-08-16 22:59:55 -04:00
Mikayla
05becc75d1 Collapse offline section by default 2023-08-16 19:51:41 -07:00
Nate Butler
8b1322745d Fix collab indicators 2023-08-16 22:50:02 -04:00
Mikayla
2f16147055 Fix dock resizing 2023-08-16 19:47:54 -07:00
Julia
e54f16f372 Register initial request handlers before launching server 2023-08-16 21:25:17 -04:00
Mikayla
3074455386 WIP 2023-08-16 16:56:00 -07:00
Max Brunsfeld
fa0ddfa15d Use our fork of alacritty to avoid winit dependency (#2853)
Bumps `alacritty_terminal` for
https://github.com/alacritty/alacritty/pull/7149
2023-08-16 14:54:55 -07:00
Max Brunsfeld
a5a212e1da Use our fork of alacritty to avoid winit dependency 2023-08-16 14:31:38 -07:00
Kirill Bulatov
988ea3c16b Add editor::ToggleInlayHints command and a bar to toggle editor-related items (#2839)
Closes
https://linear.app/zed-industries/issue/Z-2735/make-inlay-hints-discoverable
Deals with https://github.com/zed-industries/community/issues/1764

Adds `editor::ToggleInlayHints` command and a new panel with two
buttons for 
* toggling hints on/off for every editor separately (overrides settings)

Would benefit from a new icon.

* toggling buffer search on/off 

Does not have a keybinding shown in its tooltip, that is a separate
issue with the way `KeystrokeLabel` gets these for panels not in the
view directly.

Release Notes:

- Adds `editor::ToggleInlayHints` command and a bar to toggle
editor-related items
2023-08-16 23:50:54 +03:00
Kirill Bulatov
7334bdccbf Better multibuffer tests 2023-08-16 23:38:11 +03:00
Nate Butler
ef86c08174 Use the ghost variant for a flat button style in the toolbar 2023-08-16 23:38:11 +03:00
Nate Butler
5bb6a14d42 Update inlay_hint icon 2023-08-16 23:38:11 +03:00
Kirill Bulatov
7fcf9022b4 Fix rebase issues 2023-08-16 23:38:11 +03:00
Nate Butler
3ed50708ac Add inlay_hint icon, update search icon, update tooltips 2023-08-16 23:38:11 +03:00
Kirill Bulatov
f9131f657e Use InlayHint instead of Inlay where appropriate 2023-08-16 23:38:11 +03:00
Kirill Bulatov
1938fd85e8 Do not leak pane handles 2023-08-16 23:38:11 +03:00
Kirill Bulatov
9c6135f47a Test hints toggle 2023-08-16 23:38:11 +03:00
Kirill Bulatov
8926c23bdb Extract quick_action_bar into its own crate 2023-08-16 23:38:11 +03:00
Kirill Bulatov
0f650acc23 Repaint inlays icon on inlays cache disabling/enabling
Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
2023-08-16 23:38:11 +03:00
Kirill Bulatov
0b93e490a5 Improve toggle UI, fix inlays update speed 2023-08-16 23:38:11 +03:00
Kirill Bulatov
6a326c1bd8 Toggle buffer search via quick actions 2023-08-16 23:38:11 +03:00
Kirill Bulatov
5c3d563f0f Draft quick actions bar 2023-08-16 23:38:11 +03:00
Nathan Sobo
187d78011c WIP 2023-08-16 13:52:42 -06:00
Nathan Sobo
f1aafab61d Get text rendering
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-08-16 12:50:35 -06:00
Joseph T. Lyons
07675e3c55 v0.101.x dev 2023-08-16 14:22:54 -04:00
Max Brunsfeld
442ec606d0 collab 0.17.0 2023-08-16 11:05:08 -07:00
Max Brunsfeld
4ea8b8292c Introduce channels and move collab popover contents to a collaboration panel (#2828)
### Summary

This PR introduces channels: a new way of starting collaboration
sessions. You can create channels and invite others to join them. You
can then hold a call in a channel, where any member of the channel is
free to join the call without needing to be invited.

Channels are displayed in a new panel called the collaboration panel,
which now also contains the contacts list, and the current call. The
collaboration popover has been removed from the titlebar.

![Screen Shot 2023-08-15 at 9 25 37
AM](https://github.com/zed-industries/zed/assets/326587/0f989dea-7fb7-4d50-9acd-25c8f1c30cd1)


For now, the channels functionality will only be revealed to staff, so
the public-facing change is just the move from the popover to the panel.

### To-do

* User-facing UI
  * [x] signed-out state for collab panel
  * [x] new icon for collab panel
  * [x] for now, channels section only appears for zed staff
* [x] current call section styling
(https://zed-industries.slack.com/archives/C05CJUNF2BU/p1691189389988239?thread_ts=1691189120.403009&cid=C05CJUNF2BU)
* [x] Channel members
* Channels
  * [x] style channel name editor
* [x] decide on a special "empty state" for the panel, when user has no
contacts
* [x] ensure channels are sorted in a consistent way (expose channel id
paths to client)
  * [x] Figure out layered panels UX
  * [x] Change add contacts to be the same kind of tabbed modal
* [x] race condition between channel updates and user fetches
(`ChannelStore::handle_update_contacts`)
* [x] race condition between joining channels and channel update
messages `collab::rpc::channel_updated`)
* [x] don't display mic as muted when microphone share is pending upon
first joining call

Release Notes:

- Moved the collaboration dropdown into its own panel.
- Added settings for disabling the AI assistant panel button.
- Switch to lazily initializing audio output sources
(https://github.com/zed-industries/community/issues/1840,
https://github.com/zed-industries/community/issues/1919)
2023-08-16 11:03:53 -07:00
Nate Butler
925e09e012 Update collab panel empty state to match project panel
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2023-08-16 13:56:11 -04:00
Nate Butler
43127384c6 Update modal icon styles
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2023-08-16 13:48:12 -04:00
Conrad Irwin
7f06191c9f Disable autoindent in visual block insert mode 2023-08-16 10:44:59 -06:00
Nate Butler
6c15636ccc Style cleanup for channels panel 2023-08-16 12:38:44 -04:00
Julia
8839b07a25 Add broken Tailwind language server 2023-08-16 11:53:05 -04:00
KCaverly
c99b530968 remove kill search, and restart search immediately upon cycle mode
Co-authored-by: Piotr <piotr@zed.dev>
2023-08-16 16:13:21 +01:00
KCaverly
aeda5d9842 fix semantic search panic which is created via incompatible build_search_query path
Co-authored-by: Piotr <piotr@zed.dev>
2023-08-16 15:50:54 +01:00
KCaverly
6e3e61ec95 removed commented out code 2023-08-16 14:01:53 +01:00
KCaverly
2a7df106e1 adjusted icon sizes downwards
Co-authored-by: Piotr <piotr@zed.dev>
2023-08-16 14:01:06 +01:00
KCaverly
6f78a1633d fix editor height in buffer search, but the dancing is back
Co-authored-by: Piotr <piotr@zed.dev>
2023-08-16 13:51:41 +01:00
Kirill Bulatov
1601892f35 Focus terminal view on mouse click in terminal (#2852)
Before, terminal view focused the parent (pane) instead and, if
terminal's search bar was open and focused, pane transferred the focus
back

Release Notes:

- Fixed terminal search focus not switching to terminal on mouse click
inside
2023-08-16 15:25:17 +03:00
Nathan Sobo
fea987b459 WIP 2023-08-16 06:22:47 -06:00
Kirill Bulatov
80c779b95e Focus terminal view on mouse click in terminal
Before, terminal view focused the parent (pane) instead and, if
terminal's search bar was open and focused, pane transferred the focus
back
2023-08-16 15:16:20 +03:00
KCaverly
a59535efa1 remove redundant and unneeded styling
Co-authored-by: Piotr <piotr@zed.dev>
2023-08-16 12:55:32 +01:00
KCaverly
d727ba18f2 Merge branch 'main' of github.com:zed-industries/zed into project_search_design 2023-08-16 12:43:04 +01:00
KCaverly
9bf227b884 remove regex keymap, and made spacing consistent between search objects
Co-authored-by: Piotr <piotr@zed.dev>
2023-08-16 12:17:59 +01:00
KCaverly
11ecb7b604 reorganize search bar, enable filters and disable select all during invalid states
Co-authored-by: Piotr <piotr@zed.dev>
2023-08-16 11:35:09 +01:00
Kirill Bulatov
139cbbfd3a Move gpui derives tests into gpui crate to avoid dependency cycles (#2851)
`cargo run` on Zed project leads to rust-analyzer evantually emitting

`[ERROR project_model::workspace] cyclic deps:
gpui_macros(Idx::<CrateData>(269)) -> gpui(Idx::<CrateData>(264)),
alternative path: gpui(Idx::<CrateData>(264)) ->
gpui_macros(Idx::<CrateData>(269))`

error after loading the project.

The PR fixes this by moving away the test to the "root" project.

Release Notes:

- N/A
2023-08-16 10:41:12 +03:00
Kirill Bulatov
1c4be24fb7 Move gpui derives tests into gpui crate to avoid dependency cycles
`cargo run` on Zed project leads to rust-analyzer evantually emitting

`[ERROR project_model::workspace] cyclic deps:
gpui_macros(Idx::<CrateData>(269)) -> gpui(Idx::<CrateData>(264)),
alternative path: gpui(Idx::<CrateData>(264)) ->
gpui_macros(Idx::<CrateData>(269))`

error after loading the project.

The PR fixes this by moving away the test to the "root" project.
2023-08-16 10:19:20 +03:00
Mikayla
0524abf114 Lazily initialize and destroy the audio handle state on call initiation and end 2023-08-15 23:19:11 -07:00
Nathan Sobo
a8ecc1a643 Add support for a measure function to the layout engine facade 2023-08-15 22:02:56 -06:00
Nathan Sobo
4efc46c763 Add derive macro now new elements 2023-08-15 21:04:48 -06:00
Nathan Sobo
77bc682a69 Render a component 2023-08-15 19:46:07 -06:00
Nathan Sobo
65a5c54a2c Compiling checkpoint 2023-08-15 19:29:57 -06:00
Max Brunsfeld
706227701e Keep collab panel focused after deleting a channel 2023-08-15 16:14:24 -07:00
Mikayla Maki
facb942156 Add component traits to GPUI (#2850)
Release Notes:

- N/A
2023-08-15 15:53:12 -07:00
Mikayla
7d3ffae47d move component into gpui 2023-08-15 15:44:59 -07:00
Nate Butler
a56747af8c Update assistant status bar icon 2023-08-15 18:36:30 -04:00
Nate Butler
28649fb71d Update channel context menu 2023-08-15 18:36:23 -04:00
Max Brunsfeld
3623a9ca5e Simplify Component implementation
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-15 15:26:02 -07:00
KCaverly
32bec2e401 left align buffer search with new structure 2023-08-15 23:18:03 +01:00
Conrad Irwin
1b4dd49b1d Vim visual block mode
This isn't quite an exact emulation, as instead of using one selection
that is magically in "column mode", we emulate it with a bunch of zed
multi-selections (one per line).

I think this is better, as it requires fewer changes to the codebase,
and lets you see the impact of any changes immediately on all lines.

Fixes: zed-industries/community#984
2023-08-15 16:00:50 -06:00
Max Brunsfeld
1ffde7bddc Implement calling contacts into your current channel
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-15 14:56:54 -07:00
Kirill Bulatov
2670e2c9ec Support editor::SelectAll in Terminal (#2848)
![image](https://github.com/zed-industries/zed/assets/2690773/3aae1e6a-9993-4e65-8ed1-20f2f4b452df)

Allows to use `editor::SelectAll`(`cmd-a` by default) in Terminal to
select all text in it, for future copying.
Currently, does not try to be smart and trim the selected whitespaces
after the last prompt, and copies them too.

Release Notes:

- Support `editor::SelectAll` in Terminal
2023-08-15 23:59:26 +03:00
Joseph T. Lyons
88e094c6e2 Associate additional file extensions with known languages (#2847)
Going to do these in batches.  Here is the first one.

Release Notes:

- Associated additional file extensions with known languages
(([#633](https://github.com/zed-industries/community/issues/633)),
([#1822](https://github.com/zed-industries/community/issues/1822))).
    - C++: `cxx`, `hxx`, `inl`
    - JavaScript: `cjs`
    - Python: `mpy`
    - TypeScript: `cts`, `d.cts`, `d.mts`, `mts`
2023-08-15 16:46:42 -04:00
Kirill Bulatov
de69f08c10 Support editor::SelectAll in Terminal 2023-08-15 23:43:32 +03:00
Max Brunsfeld
943aeb8c09 Run until parked when setting editor's state via EditorTestContext
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-15 13:42:54 -07:00
Julia
40ce099780 Use originating language server to resolve additional completion edits 2023-08-15 16:34:15 -04:00
Joseph T. Lyons
d6ca0a1f24 Associate extensions with language 2023-08-15 16:33:02 -04:00
Nate Butler
13cf3ada39 Update checked icon 2023-08-15 16:29:01 -04:00
Max Brunsfeld
ddf3642d47 Avoid flicker when moving between channels 2023-08-15 13:18:56 -07:00
Max Brunsfeld
46928fa871 Reword channel-creation tooltips 2023-08-15 13:08:44 -07:00
Nate Butler
9d60e550be Additional status bar styles 2023-08-15 15:32:14 -04:00
Mikayla
d13cedb248 seperate out channel styles in theme 2023-08-15 12:12:30 -07:00
KCaverly
1e8a7c7caa refactor buffer_search to reduce redundancy and simplying height management
Co-authored-by: maxbrunsfeld <max@zed.dev>
2023-08-15 20:04:14 +01:00
Mikayla
d05e8852d3 Add dismiss on escape 2023-08-15 11:02:18 -07:00
Mikayla
d95b036fde Fix cursor style
co-authored-by: Nate <nate@zed.dev>
2023-08-15 10:58:31 -07:00
Mikayla
e36dfa0946 Add active styling 2023-08-15 10:53:30 -07:00
Mikayla
9e99b74fce Add the channel name into the current call 2023-08-15 10:45:36 -07:00
Julia
7a67ec5743 Add support for querying multiple language servers for completions 2023-08-15 12:48:30 -04:00
Max Brunsfeld
fafc10d57c Merge branch 'main' into collab-panel 2023-08-15 09:09:50 -07:00
Conrad Irwin
1cc0798aea Add a VisualBlock mode
Instead of trying to extend the Mode::Visual special case, just split
out into three different modes.
2023-08-15 10:00:45 -06:00
Nathan Sobo
e7489bd4c9 Compiling checkpoint 2023-08-15 09:33:59 -06:00
Nathan Sobo
0fe457020b WIP 2023-08-15 09:26:16 -06:00
Conrad Irwin
404b1aa65a Fix vim selection to include entire range (#2787)
Update vim mode to have vim selection and editor selections match.
Before this we had to adjust between vim selections and real selections
when making changes; now we have to adjust when making selections.

Release Notes:

- vim: Ensure editor selection matches the vim selection
([#1796](https://github.com/zed-industries/community/issues/1796)).
- vim: Fix `s` in visual line mode
- vim: Add `o` and `shift-o` to toggle direction of visual selection
- vim: Fix `v` and `shift-v` to toggle back to normal mode
- vim: Fix block selections like `vi}` to contain correct whitespace
2023-08-15 08:36:17 -06:00
Conrad Irwin
1e3f468fc7 Fix vim escape in normal mode (#2844)
Fixes: zed-industries/community#1857

- vim: Fix escape in normal mode
([#1857](https://github.com/zed-industries/community/issues/1857)).
2023-08-15 08:35:49 -06:00
KCaverly
695e6d2f2e fix spacing on editor magnifying glass icon 2023-08-15 15:05:39 +01:00
Mikayla
111e17b220 Merge branch 'main' into collab-panel 2023-08-15 03:25:45 -07:00
Mikayla Maki
22da42fc69 Add components example (#2846)
This PR is a continuation of the components UI exploration I've been
doing. It adds an example to the GPUI examples page and totally
restructures the generics on our MouseEventHandler.

Release Note:
- N/A
2023-08-15 03:17:50 -07:00
Mikayla
e5eed29c72 Add components example
Re-arrange generics on mouse event handler
Add TypeTag struct for dynamically tagged components
2023-08-15 03:06:43 -07:00
Max Brunsfeld
cbf497bc12 Fix race condition when UpdateChannel message is received while fetching participants for previous update
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-14 17:36:35 -07:00
Max Brunsfeld
71454ba27c Limit number of participants shown in channel face piles
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-14 17:11:03 -07:00
Max Brunsfeld
13982fe2f4 Display intended mute status while still connecting to a room
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-14 16:47:26 -07:00
Max Brunsfeld
5af8ee71aa Fix clicking outside of modals to dismiss them
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-14 16:38:21 -07:00
Max Brunsfeld
d7f21a9155 Ensure channels are sorted alphabetically
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-14 16:27:35 -07:00
Conrad Irwin
1af7425059 Fix vim escape in normal mode
Fixes: zed-industries/community#1857
2023-08-14 16:05:41 -06:00
Conrad Irwin
fb90eada70 Merge branch 'main' into vim-visual-selection 2023-08-14 15:29:33 -06:00
Nate Butler
ef73e77d3d Update some status bar icons and states 2023-08-14 17:15:25 -04:00
Conrad Irwin
5b37cdcb04 Better tests 2023-08-14 15:03:16 -06:00
Nate Butler
b4b044ccbf Initial modal styles 2023-08-14 17:01:34 -04:00
Nathan Sobo
f9858445b8 Get a 50% colored box rendering
Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
2023-08-14 14:46:09 -06:00
Nate Butler
e0d73842d2 Continue panel styles 2023-08-14 16:12:39 -04:00
Kirill Bulatov
64c2043913 Query less inlay hints (#2842)
Part of
https://linear.app/zed-industries/issue/Z-2750/investigate-performance-of-collaborating-on-large-files-with-inlay

Instead of querying the entire file for hints, query visible editor(s)
range + the areas above and below, of the same height.
Non-invalidating future queries (e.g. scrolling) query only missing
parts of the ranges.

Release Notes:

- Improved LSP resource usage by querying less hints for big files
2023-08-14 23:06:30 +03:00
Kirill Bulatov
54bcef9420 Strip off inlay hint data that should be resolved (#2843)
Part of
https://linear.app/zed-industries/issue/Z-2750/investigate-performance-of-collaborating-on-large-files-with-inlay

* Declares client capabilities for hint resolution, marking both fields
available for resolution (`textEdits` and `tooltop`) as resolvable.
We do not use these fields anymore, hence can omit resolving them for
now, but LSP servers can omit them during general hint requests.

* Removes `tooltip` and replaces complex `label` with its simple string
counterpart for clients' hint responses from host: both should be
resolved through host later

Release Notes:

- Reduces collab mode clients' inlay hint footprint by enabling hint
data resolution
2023-08-14 23:06:19 +03:00
Nate Butler
f2d46e0ff9 Use new icons in channel panel 2023-08-14 15:57:31 -04:00
Kirill Bulatov
27bf01c3a8 Strip off inlay hints data that should be resolved 2023-08-14 22:50:55 +03:00
Nate Butler
a5534bb30f Add new icons 2023-08-14 15:50:42 -04:00
Nate Butler
8531cdaff7 Style channels panel items 2023-08-14 15:50:37 -04:00
Nathan Sobo
740b105330 Merge branch 'main' into taffy
Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
2023-08-14 13:50:21 -06:00
Nate Butler
4a5b2fa5dc Add ghost button variants 2023-08-14 15:13:57 -04:00
Max Brunsfeld
3b10ae9310 Add icon before the empty contacts text
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-14 11:57:19 -07:00
Max Brunsfeld
2bb9f7929d Structure the contact finder more similarly to the channel modal
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-14 11:37:05 -07:00
Mikayla
b6f3dd51a0 Move default collab panel to the right 2023-08-14 10:47:29 -07:00
Mikayla
b07555b6df Make empty state interactive 2023-08-14 10:34:00 -07:00
Mikayla
fde9653ad8 Add placeholder implementation 2023-08-14 10:24:00 -07:00
Nate Butler
3856137b6e Add list empty state style 2023-08-14 13:17:57 -04:00
Kirill Bulatov
e0d011e354 Better assert multibuffer edit test results 2023-08-14 20:12:35 +03:00
Kirill Bulatov
4b3273182a Do not filter out hints to be removed 2023-08-14 19:20:20 +03:00
Kirill Bulatov
336fbb3392 Clip offsets in inlay hint queries 2023-08-14 18:39:30 +03:00
Nathan Sobo
7756497933 Simplify adapter 2023-08-14 09:26:35 -06:00
Piotr Osiewicz
db36a5fe2d Refactor buffer search UI rendering in a quest to find the meaning of life.
Co-authored-by: Kyle <kyle@zed.dev>
2023-08-14 15:27:57 +02:00
Kirill Bulatov
558367dc8b Optimize query ranges tracking 2023-08-14 16:19:44 +03:00
Piotr Osiewicz
ff4370f88e buffer: Extract columns to separate objects.
Co-authored-by: Kyle <kyle@zed.dev>
2023-08-14 15:14:57 +02:00
Piotr Osiewicz
4aa5df4cda Extract columns into separate objects.
Co-authored-by: Kyle <kyle@zed.dev>
2023-08-14 15:13:17 +02:00
Kirill Bulatov
87e6651ecb Fix hint tests, add a char boundary bug test 2023-08-14 16:01:02 +03:00
Piotr Osiewicz
f4121b42da Add more padding to dismiss button.
Add a style for mode buttons group margin

Co-authored-by: Kyle <kyle@zed.dev>
2023-08-14 15:01:01 +02:00
Piotr Osiewicz
d17aba4fd3 Fix double borders in mode buttons.
Co-authored-by: Kyle <kyle@zed.dev>
2023-08-14 14:43:06 +02:00
Piotr Osiewicz
7314456685 nav_button: Fix double border between nav buttons.
Co-authored-by: Kyle <kyle@zed.dev>
2023-08-14 14:33:40 +02:00
Piotr Osiewicz
b72a42ec29 buffer: fix alignment of editor icon.
Co-authored-by: Kyle <kyle@zed.dev>
2023-08-14 14:31:14 +02:00
Piotr Osiewicz
9ae28f81c1 Update option buttons text color 2023-08-14 12:35:33 +02:00
Piotr Osiewicz
ae229d4c52 Align "Select all" to the center 2023-08-14 12:31:11 +02:00
Piotr Osiewicz
94ac84a908 Fix borders being cut off in buffer search 2023-08-14 12:28:35 +02:00
Piotr Osiewicz
8bb3bfa6a8 Style buffer modes like project modes 2023-08-14 12:25:59 +02:00
Piotr Osiewicz
1c35db7e97 project_search: style filters button like the rest of the buttons 2023-08-14 12:20:59 +02:00
Piotr Osiewicz
d37ebe7841 Add option_button_height style 2023-08-14 12:10:37 +02:00
Piotr Osiewicz
9121178ba0 project_search: Swap places of case-sens/whole-word 2023-08-14 11:59:42 +02:00
Kirill Bulatov
449c009639 Properly generate ranges to query 2023-08-14 11:25:02 +03:00
Kirill Bulatov
56f89739f8 Do not add duplicate hints to the cache 2023-08-14 11:25:02 +03:00
Kirill Bulatov
0e2a1fc149 Query inlay hints for parts of the file 2023-08-14 11:25:02 +03:00
Kirill Bulatov
708409e06d Query hints on every scroll 2023-08-14 11:25:02 +03:00
Kirill Bulatov
5d2750e0d4 Hide inlay cache fields 2023-08-14 11:25:02 +03:00
Nathan Sobo
85f35497b6 Compiling checkpoint 2023-08-13 22:39:06 -06:00
Nathan Sobo
7662210776 I think the adapter is ready. Close to pixels. 2023-08-13 22:06:35 -06:00
Nathan Sobo
625e4a1bd0 Introduce new PaintContext and LayoutContext 2023-08-13 21:57:38 -06:00
Nathan Sobo
2d17e9685f Compiling checkpoint 2023-08-13 21:20:47 -06:00
Nathan Sobo
be7a43c81c Get taffy style conversion working 2023-08-13 19:47:49 -06:00
Nathan Sobo
52ad48d50b WIP 2023-08-13 17:29:07 -06:00
Nathan Sobo
473ac5a842 WIP 2023-08-13 02:27:36 -06:00
Nathan Sobo
36b853ac05 WIP 2023-08-13 01:40:10 -06:00
Nathan Sobo
1ef486b227 WIP 2023-08-13 01:40:05 -06:00
Piotr Osiewicz
b586601cab Style nav buttons 2023-08-13 01:29:35 +02:00
Piotr Osiewicz
e151555542 Style dismiss button.
Fix clipping in nav buttons and mode buttons. Add missing borders to outskirts of mode buttons.
2023-08-13 01:06:35 +02:00
Piotr Osiewicz
c6425b36da chore: remove redundant mut 2023-08-12 22:20:22 +02:00
Piotr Osiewicz
94f1d8281a Remove buttonside, use new corner_radii instead 2023-08-12 22:18:27 +02:00
Piotr Osiewicz
6be73e46bf Merge branch 'main' into project_search_design 2023-08-12 21:57:21 +02:00
Mikayla
a90c0e0326 Merge branch 'main' into collab-panel 2023-08-12 12:44:22 -07:00
Mikayla Maki
5ce7ccac32 Allow individual corner radii on containers, images, and drop shadows (#2841)
Here's an example in `crates/gpui/examples/corner_radii.rs`

![CleanShot 2023-08-12 at 11 06
09@2x](https://github.com/zed-industries/zed/assets/1789/1b5992ac-f7ef-45d8-b8c2-f0e677b07dd9)

@iamnbutler, in the themes, anywhere we have a container style can now
take either a `corner_radius` or a `corner_radii` field, both of these
fields can either have 1 number (for all 4 corners) or a an object like:

```
{
  top_left?: number,
  top_right?: number,
  bottom_left?: number, 
  bottom_right?:number 
} 
```

Fields that are not included in this second representation default to 0
corner radius.
2023-08-12 12:36:05 -07:00
Mikayla
29a85635ea Make each setting optional 2023-08-12 12:23:46 -07:00
Mikayla
563b25f26f Add deserialization helper 2023-08-12 12:21:44 -07:00
Nathan Sobo
fa7ebd0825 Include drop shadows with different corner radii in the example 2023-08-12 11:08:58 -06:00
Nathan Sobo
65123e6eed Allow individual corner radii on drop shadows 2023-08-12 10:58:08 -06:00
Nathan Sobo
40f478937e Allow distinct corner radii for images 2023-08-12 10:50:04 -06:00
Nathan Sobo
84dc4090bd Wire up per corner radii for quad
Still need to expose this in the styling layer and allow images
to have per corner radii.
2023-08-12 10:40:23 -06:00
Nathan Sobo
0d31d6dac5 WIP 2023-08-12 10:00:08 -06:00
Nathan Sobo
4b4b949972 WIP 2023-08-12 01:11:12 -06:00
Nathan Sobo
5e36040533 Put a Taffy layout engine on window 2023-08-12 00:58:11 -06:00
Mikayla Maki
1911f537b4 Add a compile test for the element derive (#2840)
Tried to use this the new element derive on a branch and ran into some
bugs, this fixes those.

Release Notes:

- N/A
2023-08-11 18:08:13 -07:00
Mikayla
7970406694 Add a compile test for the element derive 2023-08-11 18:00:12 -07:00
Piotr Osiewicz
c0356fdf16 Decrease row count for buffer search bar 2023-08-11 23:47:16 +02:00
Mikayla
9b5551a079 split into body and header 2023-08-11 11:35:51 -07:00
Nate Butler
ff1261b300 WIP Restyle channel modal
Co-Authored-By: Mikayla Maki <mikayla.c.maki@gmail.com>
2023-08-11 13:32:46 -04:00
Piotr Osiewicz
0a0314eec9 Shrink project search + decrease padding 2023-08-11 18:19:45 +02:00
Piotr Osiewicz
e4c593c2fb chore: fix compiler warning 2023-08-11 17:09:26 +02:00
Piotr Osiewicz
799278e296 Add row_height 2023-08-11 17:02:25 +02:00
Piotr Osiewicz
100a8961b5 Add accent colors to search option buttons 2023-08-11 16:51:18 +02:00
Piotr Osiewicz
f6ecf83f33 Increase editor's left hand side padding to 10 2023-08-11 16:43:07 +02:00
Piotr Osiewicz
9e9b3093a9 Style mode/option buttons 2023-08-11 16:32:15 +02:00
Nathan Sobo
983641da2b WIP 2023-08-11 07:39:30 -06:00
Piotr Osiewicz
ffffbbea1f chore: use Cow instead of String for tooltips (#2838)
A QoL change to align `Tooltip` with other elements like `Label`
Release Notes:

- N/A
2023-08-11 15:29:55 +02:00
Piotr Osiewicz
3d103546bc Make ButtonSide respect corner_radius 2023-08-11 14:44:22 +02:00
Piotr Osiewicz
b8df26b194 mode_button: get rid of borders before creating a label 2023-08-11 13:26:22 +02:00
Piotr Osiewicz
a9a2d281c3 Make ButtonSide scale with corner_radius 2023-08-11 13:10:56 +02:00
Nathan Sobo
d6eaa3c6b8 Ditch the hot reloading approach 2023-08-11 00:26:58 -06:00
Mikayla
b21b17c120 Merge branch 'main' into collab-panel 2023-08-10 10:04:01 -07:00
Nathan Sobo
0bf607cd2d WIP 2023-08-10 10:26:48 -06:00
Nathan Sobo
dd6425e898 WIP 2023-08-10 09:24:16 -06:00
Piotr Osiewicz
096e293c17 Fix rounding artifacts of nav buttons 2023-08-10 15:26:05 +02:00
Piotr Osiewicz
9ad308f2f0 Fix padding inside search input.
Adjust borders for toggle buttons
2023-08-10 14:53:25 +02:00
Piotr Osiewicz
da3a4174ce Bump row_count for buffer search 2023-08-10 13:01:20 +02:00
Piotr Osiewicz
b2f773e91d Increase padding on search 2023-08-10 12:57:12 +02:00
Nathan Sobo
3b1e5e966a What if we base themes on Rose Pine 2023-08-09 20:54:30 -06:00
Max Brunsfeld
b3447ada27 Dial in the channel creating/renaming UI
* Ensure channel list is in a consistent state with no flicker while the
  channel creation / rename request is outstanding.
* Maintain selection properly when renaming and creating channels.
* Style the channel name editor more consistently with the non-editable
  channel names.

Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-09 17:11:57 -07:00
Max Brunsfeld
076b72cf2b Improve styling of collab panel 2023-08-09 15:11:30 -07:00
Max Brunsfeld
ac1b2b18aa Send user ids of channels of which they are admins on connecting
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-09 14:40:47 -07:00
Max Brunsfeld
60e25d780a Send channel permissions to clients when they fetch their channels 2023-08-09 13:56:03 -07:00
Max Brunsfeld
268f4b1939 Restore shutdown behavior (#2837)
Deals with https://github.com/zed-industries/community/issues/1898

Restores original close behavior from
https://github.com/zed-industries/zed/pull/2832/files#diff-89af0b4072205c53b518aa977d6be48997e1a51fa4dbf06c7ddd1fec99fc510eL444
(load diff for the last file, zed.rs)

and adds a better name for the variable.

Release Notes:

- Fixes `cmd-q` not working
2023-08-09 13:50:21 -07:00
Kirill Bulatov
704ab33f72 Restore shutdown behavior 2023-08-09 23:39:21 +03:00
Mikayla
a3623ec2b8 Add renames
co-authored-by: max <max@zed.dev>
2023-08-09 12:20:48 -07:00
Mikayla
eed49a88bd Fix bad merge 2023-08-09 11:04:09 -07:00
Mikayla
707e41ce1f Merge branch 'collab-panel' of github.com:zed-industries/zed into collab-panel 2023-08-09 10:44:50 -07:00
Mikayla
99daa73325 Merge branch 'main' into collab-panel 2023-08-09 10:37:22 -07:00
Max Brunsfeld
778fd6b0a9 Represent channel relationships using paths table
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-09 10:36:27 -07:00
Max Brunsfeld
498d043a0a Avoid leak of channel store
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-09 10:23:52 -07:00
Nate Butler
beffe6f6a9 WIP BROKEN 2023-08-09 12:44:34 -04:00
Joseph T. Lyons
230b894871 v0.100.x dev 2023-08-09 12:30:39 -04:00
Mikayla Maki
40030f32d9 Fix two mouse event bugs (#2835)
This PR fixes two bugs we discovered in Zed's mouse event handling while
investigating an interesting and mysterious bug we we were seeing, where
spurious `MouseMoved` events would continuously be dispatched after
control-clicking.

Release Notes:

- Fixed a rendering glitch that could occur after control-clicking
certain elements.
2023-08-09 09:04:32 -07:00
Piotr Osiewicz
c58cf396d3 Add cycle mode command for buffer search 2023-08-09 18:02:21 +02:00
Mikayla
a5cb4c6d52 Fix selections and enter-to-create-file 2023-08-09 08:54:24 -07:00
Nate Butler
6cc0b81e39 Add ui_sans as a font option in the theme (#2836)
This adds IBM Plex as a font option available to use as `ui_sans`

Note: This PR adds a static list of accepted font types in `/font`, as
LICENSE files were causing the app to crash when Zed was trying to load
them as fonts.

Release Notes:

- N/A (No user facing changes)

Thanks @ForLoveOfCats for getting me unstuck ❤️
2023-08-09 11:54:05 -04:00
Nate Butler
85af025d82 Add IBM Plex license 2023-08-09 11:39:15 -04:00
Nate Butler
af388e7f9c Only load TTF fonts for now, additional font types will need to be manually added
Co-Authored-By: Julia <30666851+ForLoveOfCats@users.noreply.github.com>
2023-08-09 11:38:02 -04:00
Nate Butler
183c292a5c Remove license causing unwrap error
Co-Authored-By: Julia <30666851+ForLoveOfCats@users.noreply.github.com>
2023-08-09 11:11:57 -04:00
Nate Butler
b23f1c809a WIP add IBM Plex Sans
(base) natebutler@Nate16 zed % cargo run
   Compiling zed v0.99.0 (/Users/natebutler/Code/zed/zed/crates/zed)
    Finished dev [unoptimized + debuginfo] target(s) in 9.15s
     Running `target/debug/Zed`
Thread "main" panicked with "called `Result::unwrap()` on an `Err` value: parse error" at crates/zed/src/main.rs:667:10
   0: backtrace::backtrace::libunwind::trace
             at /Users/natebutler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.68/src/backtrace/libunwind.rs:93:5
      backtrace::backtrace::trace_unsynchronized
             at /Users/natebutler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.68/src/backtrace/mod.rs:66:5
   1: backtrace::backtrace::trace
             at /Users/natebutler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.68/src/backtrace/mod.rs:53:14
   2: backtrace::capture::Backtrace::create
             at /Users/natebutler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.68/src/capture.rs:176:9
   3: backtrace::capture::Backtrace::new
             at /Users/natebutler/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.68/src/capture.rs:140:22
   4: Zed::init_panic_hook::{{closure}}
             at crates/zed/src/main.rs:436:29
   5: std::panicking::rust_panic_with_hook
   6: std::panicking::begin_panic_handler::{{closure}}
   7: std::sys_common::backtrace::__rust_end_short_backtrace
   8: _rust_begin_unwind
   9: core::panicking::panic_fmt
  10: core::result::unwrap_failed
  11: core::result::Result<T,E>::unwrap
             at /private/tmp/rust-20230613-7622-103lepv/rustc-1.70.0-src/library/core/src/result.rs:1089:23
  12: Zed::load_embedded_fonts
             at crates/zed/src/main.rs:664:5
  13: Zed::main
             at crates/zed/src/main.rs:80:5
  14: core::ops::function::FnOnce::call_once
             at /private/tmp/rust-20230613-7622-103lepv/rustc-1.70.0-src/library/core/src/ops/function.rs:250:5
  15: std::sys_common::backtrace::__rust_begin_short_backtrace
             at /private/tmp/rust-20230613-7622-103lepv/rustc-1.70.0-src/library/std/src/sys_common/backtrace.rs:134:18
  16: std::rt::lang_start::{{closure}}
             at /private/tmp/rust-20230613-7622-103lepv/rustc-1.70.0-src/library/std/src/rt.rs:166:18
  17: std::panicking::try
  18: std::rt::lang_start_internal
  19: std::rt::lang_start
             at /private/tmp/rust-20230613-7622-103lepv/rustc-1.70.0-src/library/std/src/rt.rs:165:17
  20: _mai
2023-08-09 11:01:20 -04:00
Piotr Osiewicz
17d505bb7b Reset search index on mode change 2023-08-09 14:25:56 +02:00
Piotr Osiewicz
28a57662af buffer: Add magnifying glass icon 2023-08-09 13:47:48 +02:00
Piotr Osiewicz
6fbef9f3c7 chore: update fn paint 2023-08-09 12:33:14 +02:00
Piotr Osiewicz
7ef5656f6a Merge branch 'main' into project_search_design 2023-08-09 12:30:48 +02:00
Piotr Osiewicz
8b033223fb Go back to previous mode on rejection of semantic indexing 2023-08-09 12:28:15 +02:00
Nathan Sobo
82c903de14 Rename node to frame 2023-08-08 21:28:52 -06:00
Nathan Sobo
c95aecdd53 Merge branch 'main' into cells 2023-08-08 21:23:57 -06:00
Nathan Sobo
8ed5e8f86d Pass PaintContext to Element::paint (#2788)
I want to use this on another branch, but it's a sweeping change, so
this prepares the ground for it. This can always be reverted if it
doesn't work out.
2023-08-08 21:16:57 -06:00
Joseph T. Lyons
bed0d1d529 Fix language detection when file name begins with a . (#2833)
I went to add in `zprofile` to the bash language config to get syntax
highlighting for it. After adding it in, Zed was still not highlighting
the file. I checked and saw that we are using `Path::extension()` in
`language_for_file()`, which [returns `None` when a file's name begins
with a
`.`](https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.extension),
such as in the case of `.zprofile`. This PR adds a custom method, with
some tests, that just tries to grab the last component in the file name
if `Path::extension` returns `None`. Not sure if `ext` is the best name,
but I can't use `extension`.

Maybe this method should be called `extension_or_hidden_file_name()`?

Release Notes:

- Fixed a bug where language detection would fail for files starting
with `.` in their names.
- Added syntax highlighting for `.zprofile` files
2023-08-08 21:48:56 -04:00
Joseph T. Lyons
c523ccc4c7 Fix code that identifies language via extension 2023-08-08 21:35:11 -04:00
Max Brunsfeld
2605ae1ef5 Use Arc::make_mut in ChannelStore
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-08 17:49:29 -07:00
Max Brunsfeld
0b93a30821 Terminate synthetic drag state on mouse up w/ ctrl held
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-08 17:39:45 -07:00
Max Brunsfeld
e3bb5e5103 Fix failure to remove hovered region_ids on element removal
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-08 17:39:05 -07:00
Nathan Sobo
db96fb1307 Merge remote-tracking branch 'origin/main' into paint-context 2023-08-08 18:27:16 -06:00
Nathan Sobo
54ca5f1d44 Replace context methods that take a window id with methods on window handles (#2832)
With this PR, I've eliminated almost all references to window ids
outside of the internals of GPUI. All public methods taking these ids
are now defined on `AnyWindowHandle`, which provides a more coherent
narrative around windows as a concept.
2023-08-08 17:51:37 -06:00
Piotr Osiewicz
d34da2db69 fix dismiss tooltip for project search 2023-08-09 01:37:17 +02:00
Piotr Osiewicz
22f630e985 chore: remove unused function 2023-08-09 01:30:45 +02:00
Piotr Osiewicz
f978acdd34 buffer: use shared func for nav button rendering 2023-08-09 01:29:22 +02:00
Nathan Sobo
0dc70e6cbf Rename mac platform Window to MacWindow for clarity 2023-08-08 17:21:06 -06:00
Nathan Sobo
fc96676662 Use AppContext::update when updating windows so we handle effects 2023-08-08 17:20:46 -06:00
Piotr Osiewicz
e2b8e6ce63 chore: fix compiler warnings 2023-08-09 01:16:24 +02:00
Piotr Osiewicz
a583d1c6cc Do not display match count when query is empty 2023-08-09 01:15:17 +02:00
Piotr Osiewicz
b282bdfe5a buffer: finish up moving things around 2023-08-09 01:09:07 +02:00
Piotr Osiewicz
e1724daf35 buffer: WIP style sides of buffer search 2023-08-09 00:38:50 +02:00
Nathan Sobo
8e49d1419a Minimize window id usage 2023-08-08 16:38:46 -06:00
Piotr Osiewicz
a7bd05ec0a buffer: use icons for search options 2023-08-09 00:16:12 +02:00
Nathan Sobo
afd89b256a Store AnyWindowHandles instead of usizes 2023-08-08 16:06:53 -06:00
Mikayla
bbe4a9b388 Position and style the channel editor correctly
Fix a bug where some channel updates would be lost
Add channel name sanitization before storing in the database
2023-08-08 14:06:29 -07:00
Mikayla
b708824d37 Position and style the channel editor correctly
Fix a bug where some channel updates would be lost
Add channel name sanitization before storing in the database
2023-08-08 12:46:13 -07:00
Piotr Osiewicz
c96b03ae55 Piotr/optimize search selections with a limit (#2831)
/cc @nathansobo @maxbrunsfeld 

Release Notes:
- Fixed scrollbar selections causing noticeable slowdowns with large
quantities of selections.
2023-08-08 21:29:24 +02:00
Mikayla
d00f6a490c Fix a bug where channel invitations would show up in the channels section
Block non-members from reading channel information
WIP: Make sure Arc::make_mut() works
2023-08-08 11:47:13 -07:00
Mikayla
6a7245b92b Fix positioning on face piles, fix panic on member invite removal 2023-08-08 10:44:44 -07:00
Nathan Sobo
1e8a9ccdb5 Merge remote-tracking branch 'origin/main' into window-handles 2023-08-08 11:42:55 -06:00
Nathan Sobo
b77c336a3d Return window handles from WeakItemHandle 2023-08-08 11:39:56 -06:00
Nathan Sobo
b2d9ccc0a2 Move more window methods off AsyncAppContext 2023-08-08 11:38:07 -06:00
Nathan Sobo
95cd96e4be Move debug_elements to AnyWindowHandle 2023-08-08 11:27:19 -06:00
Nathan Sobo
4f10f0ee86 Remove window methods from AsyncAppContext 2023-08-08 11:23:49 -06:00
Nathan Sobo
1fd80ba8bd Remove AsyncAppContext::remove_window 2023-08-08 11:22:43 -06:00
Nathan Sobo
fe6a1886c1 Remove unused dock code 2023-08-08 11:20:42 -06:00
Nathan Sobo
0a4633f88f Remove more window id usage 2023-08-08 11:20:09 -06:00
Nathan Sobo
da7dc9c880 Work with window handles instead of ids in drag code 2023-08-08 11:14:02 -06:00
Nathan Sobo
d896d89842 Store an AnyWindowHandle in WindowContext 2023-08-08 11:08:37 -06:00
Mikayla
17c9b4ca96 Fix tests 2023-08-08 10:04:29 -07:00
Nate Butler
662e196267 Calculate the range for each color family in a theme (#2738)
Release Notes:
- N/A (Internal theme stuff)
2023-08-08 11:49:52 -04:00
Nathan Sobo
49f1f1c6c2 Remove window when closing workspace in test 2023-08-08 09:13:17 -06:00
Piotr Osiewicz
2c570fbb72 Move option button rendering to search_bar 2023-08-08 16:26:19 +02:00
Piotr Osiewicz
343e9d080e Finish migration to modes for buffer search 2023-08-08 15:57:07 +02:00
Piotr Osiewicz
fecea03c90 Add modes to buffer search 2023-08-08 15:25:32 +02:00
Piotr Osiewicz
0374fdfd06 Move mode cycling to mode module 2023-08-08 15:20:34 +02:00
Piotr Osiewicz
7547fa2679 Move mode rendering to a search_bar module 2023-08-08 15:11:32 +02:00
Piotr Osiewicz
31a56720d9 Move nav buttons generation to search_bar 2023-08-08 14:56:21 +02:00
Piotr Osiewicz
c53554ead3 Remove SearchOptions::REGEX.
A bit WIP as it awaits migration of buffer search to modes
2023-08-08 14:42:11 +02:00
Piotr Osiewicz
0ca29e56c2 Update keybinds to use new names 2023-08-08 14:33:51 +02:00
Piotr Osiewicz
d497f279f0 Move ButtonSide to new module 2023-08-08 14:24:26 +02:00
Piotr Osiewicz
95891d28d8 Move SearchMode and SearchHistory to separate modules 2023-08-08 14:14:39 +02:00
Piotr Osiewicz
1aff642981 Do not highlgiht selections at all over the threshold 2023-08-08 13:09:27 +02:00
Nathan Sobo
dba2facd23 Remove window via handles 2023-08-07 22:58:01 -06:00
Nathan Sobo
f0da6b05fd Remove TestAppContext::add_view
Instead, we now call this on window handles.
2023-08-07 22:46:48 -06:00
Nathan Sobo
0f332238b3 Remove unused method 2023-08-07 22:08:44 -06:00
Nathan Sobo
d687c3d81f Merge remote-tracking branch 'origin/main' into window-handles 2023-08-07 22:07:20 -06:00
Nathan Sobo
f2be3181a9 Move window-related methods from TestAppContext to AnyWindowHandle 2023-08-07 20:23:04 -06:00
Nathan Sobo
0197d49230 Move activation simulation to AnyWindowHandle 2023-08-07 19:45:43 -06:00
Nathan Sobo
486f5bc6ca Get compiling 2023-08-07 19:08:58 -06:00
Max Brunsfeld
299906346e Change collab panel icon 2023-08-07 18:04:41 -07:00
Piotr Osiewicz
371c669e00 Address review feedback.
Rename selected_rows to background_highlight_row_ranges.
Do not return any ranges if there are more than 50k results
2023-08-08 02:47:49 +02:00
Piotr Osiewicz
b0fc6da55b Use display maps 2023-08-08 02:37:27 +02:00
Piotr Osiewicz
241d3951b8 Remove redundant argument 2023-08-08 02:25:30 +02:00
Piotr Osiewicz
42e1221357 Add upper bound limit. Remove dbg! statements 2023-08-08 02:17:11 +02:00
Mikayla
fa71de8842 Tune UX for context menus
Co-authored-by: max <max@zed.dev>
2023-08-07 17:14:14 -07:00
Mikayla
bedf60b6b2 Improve local collaboration script to accept a zed impersonate
Gate channels UI behind a flag

co-authored-by: max <max@zed.dev>
2023-08-07 16:45:13 -07:00
Mikayla
8980a9f1c1 Add settings for removing the assistant and collaboration panel buttons
Add a not-logged-in state to the collaboration panel

co-authored-by: max <max@zed.dev>
2023-08-07 16:27:47 -07:00
Mikayla
e37e76fc0b Add context menu controls to the channel member management
co-authored-by: Max <max@zed.dev>
2023-08-07 15:29:30 -07:00
Piotr Osiewicz
fa16895976 Do not query start of range if it's end is the same as the previous hunk's 2023-08-08 00:27:38 +02:00
Piotr Osiewicz
ca21626064 Baseline: Improve selection rendering for large quantities from 270ms to 90ms 2023-08-07 23:32:27 +02:00
Mikayla
9913067e51 Remove admin and member button
Fix bug with invites in the member list
Fix bug when there are network errors in the member related RPC calls

co-authored-by: Max <max@zed.dev>
2023-08-07 14:32:13 -07:00
Max Brunsfeld
7288be4251 Make LspAdapter::process_diagnostics synchronous (#2829)
When editing rust code, the project diagnostics view sometimes fails to
update, so that you have to close the view and re-open it to see the
correct state.

This PR fixes one possible cause of that problem. There was an async
step in between *receiving* diagnostics from the language server and
updating the diagnostics, due to an async call to
`LspAdapter::process_diagnostics`. This could cause the following
sequence of events to happen:

1. Rust-analyzer sends us new diagnostics for a file `a.rs`
2. We call `process_diagnostics` with those diagnostics
3. Rust-analyzer sends us a `WorkDoneProgress` message, indicating that
the "flycheck" (aka `cargo check`) process has completed
4. We update the project diagnostics view due to this message.
5. The `process_diagnostics` call for `a.rs` completes
6. 💥 We have the new diagnostics for `a.rs`, but do not update the
project diagnostics view again.

This PR fixes this bug by simply making `process_diagnostics`
synchronous. There is no I/O or expensive computation happening in that
method. If we need to make it asynchronous in the future, we need to
introduce a queue that ensures that `publishDiagnostics` and
`workDoneProgress` messages are processed serially.

Release Notes:

- Fixed a bug where the project diagnostics view would sometimes fail to
update properly when using Rust-analyzer.
2023-08-07 14:31:49 -07:00
Joseph T. Lyons
d417993c9d Add syntax highlighting for Cargo.toml files (#2830)
Release Notes:

- Added syntax highlighting for `Cargo.toml` files
2023-08-07 17:28:21 -04:00
Joseph T. Lyons
dbf25ea2ff Add syntax highlighting for Cargo.toml files 2023-08-07 17:24:22 -04:00
Joseph T. Lyons
580c2ea8eb Fix test name 2023-08-07 17:07:01 -04:00
Max Brunsfeld
4e33654aba Make LspAdapter::process_diagnostics synchronous
Co-authored-by: Nathan <nathan@zed.dev>
2023-08-07 13:53:41 -07:00
Mikayla
90cdbe8bf3 Fix modal click throughs and adjust height for channel modal 2023-08-07 13:39:05 -07:00
Mikayla
f1957b1737 Push focus and fix keybindings 2023-08-07 13:31:58 -07:00
Nathan Sobo
3e0d0e5c01 WIP 2023-08-07 13:54:47 -06:00
Max Brunsfeld
c537cf2a57 Merge branch 'main' into collab-panel 2023-08-07 11:50:40 -07:00
Conrad Irwin
19eb280351 Fix selection background too
Refactor code to centralize the logic too
2023-08-07 19:01:04 +01:00
Piotr Osiewicz
7a1f40405a Add dismiss button to project search 2023-08-07 12:22:10 +02:00
Nathan Sobo
d4d32611fe WIP 2023-08-06 18:57:02 -06:00
Nathan Sobo
adc50469ff WIP 2023-08-06 12:45:31 -06:00
Joseph T. Lyons
e3a4d174de Fix bash path_suffixes and add cmd-/ line comment support (#2827)
<img width="1608" alt="SCR-20230806-cyrg"
src="https://github.com/zed-industries/zed/assets/19867440/2491c4bc-5797-4417-9633-08c136b4e8fe">

I noticed we weren't highlghting bash files if the shebang line didn't
exist. After checking, it looks like the `.` were accidentally added to
the `path_suffixes` list. This PR fixes that and adds in support for
`cmd-/` to trigger line comments.

<img width="1608" alt="SCR-20230806-czxh"
src="https://github.com/zed-industries/zed/assets/19867440/37dd0c8e-c4e7-49e2-9997-9dd8145f460e">


Release Notes:

- Fixed a bug where shell files weren't syntax highlighted if a shebang
didn't exist.
- Added support for `cmd-/` to add line comments to shell files.
2023-08-06 02:35:00 -04:00
Joseph T. Lyons
ef5b982ea5 Fix bash path_suffixes and add line_comment 2023-08-06 02:20:31 -04:00
Nathan Sobo
dcf8b00656 WIP 2023-08-05 18:00:44 -06:00
Joseph T. Lyons
7777d973cd Expand empty selections to cover full word when doing case conversions and fix bugs (#2826)
When doing case conversions, specifically in the case of an empty
selection, in both VS Code and Sublime, the cursor winds up being in a
different place relative to where it started.

In VS Code, the cursor maintains it position in the text, no matter if
the text expands or shrinks


https://github.com/zed-industries/zed/assets/19867440/b24f5d86-c315-4a72-9ed4-3732b490ea9a

In Sublime, I have no idea what is going on:


https://github.com/zed-industries/zed/assets/19867440/05f21303-6e42-47b2-b844-7accd0bf05d7

I thought it would be a better experience if, when doing an empty
selection transformation, we simply expand the selection and park the
cursor at the end of the newly-transformed text.


https://github.com/zed-industries/zed/assets/19867440/833619ef-04e2-47b6-ad4e-e2b43d54fb2b

This feels similar to us expanding the selection when doing line
manipulations:


https://github.com/zed-industries/zed/assets/19867440/c30c5332-787d-4cf0-a9ee-e66c3c159956

Selections are adjusted to match however each word expands and shrinks,
even when there are multiple:


https://github.com/zed-industries/zed/assets/19867440/d7073aac-8a59-4f2c-b0e5-1df37be1694c

Release Notes:

- Improved behavior of empty-selection case transformations by selecting
resulting word.
- Fixed some bugs with overflow
2023-08-05 12:16:46 -04:00
Joseph T. Lyons
1abb6a0176 Expand empty selections to cover full word and fix bugs 2023-08-05 11:31:21 -04:00
Joseph T. Lyons
d1048d03b0 Add more convert to case commands (#2825)
I'm using [convert_case](https://crates.io/crates/convert_case)
underneath the hood, which has over 35 million downloads and feels
solid.

Release Notes:

- Added commands to convert between variable name styles
([#1821](https://github.com/zed-industries/community/issues/1821)).
    - `convert to kebab case`
    - `convert to snake case`
    - `convert to upper camel case`
    - `convert to lower camel case`
    - `convert to title case`
2023-08-04 22:51:32 -04:00
Joseph T. Lyons
12e8f417e4 Add more convert to case commands
ConvertToTitleCase
ConvertToSnakeCase
ConvertToKebabCase
ConvertToUpperCamelCase
ConvertToLowerCamelCase
2023-08-04 22:45:26 -04:00
Max Brunsfeld
2ccd153233 Fix joining descendant channels, style channel invites
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-04 16:21:43 -07:00
Joseph T. Lyons
5c2f38a0bc Add convert to {upper,lower} case commands (#2824)
Release Notes:

- Added `convert to upper case` and `convert to lower case` commands
([#1011](https://github.com/zed-industries/community/issues/1011)).
2023-08-04 18:12:55 -04:00
Max Brunsfeld
87b2d599c1 Flesh out channel member management
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-04 14:12:08 -07:00
Joseph T. Lyons
8c98b02e45 Add convert to {upper,lower} case commands
Co-Authored-By: Julia <30666851+ForLoveOfCats@users.noreply.github.com>
2023-08-04 15:10:33 -04:00
Max Brunsfeld
a2486de045 Don't expose channel admin actions in UI if user isn't admin 2023-08-04 10:24:46 -07:00
Piotr Osiewicz
9889449a81 Adjust row count for project search.
Instead of using the same row count as for the breadcrumbs, we double the height so that there's some space for padding.

Co-authored-by: Kyle <kyle@zed.dev>
2023-08-04 18:54:27 +02:00
Max Brunsfeld
1762d2c6d4 Add test assertion where user is not admin of channel 2023-08-04 09:51:37 -07:00
Piotr Osiewicz
de8e1852a8 Align match count
Co-authored-by: Kyle <kyle@zed.dev>
2023-08-04 18:21:46 +02:00
Piotr Osiewicz
8fa082c28b Center the query editor (for real now)
Co-authored-by: Kyle <kyle@zed.dev>
2023-08-04 17:49:54 +02:00
Piotr Osiewicz
82eb6d8bc3 Change styling of match nav buttons
Co-authored-by: Kyle <kyle@zed.dev>
2023-08-04 17:35:59 +02:00
Nathan Sobo
b6110fed9e WIP 2023-08-04 07:56:20 -06:00
Conrad Irwin
22927fa1d7 Fix visual selection cursor in multibuffers 2023-08-04 14:39:16 +01:00
Piotr Osiewicz
2c0e3886a5 Align search bar in the middle 2023-08-04 15:38:53 +02:00
Piotr Osiewicz
fcefb37ca0 Prevent modes from being vertically centered when row_count changes 2023-08-04 13:54:50 +02:00
Piotr Osiewicz
792f29e288 Refresh windows on toggle_filters. 2023-08-04 12:25:18 +02:00
Piotr Osiewicz
50d03ffc8c Revert "Focus filters when enabled"
This reverts commit 13a6b65a35.
2023-08-04 12:24:57 +02:00
Nathan Sobo
196946cbb6 Squelch warnings for now 2023-08-03 21:21:45 -06:00
Nathan Sobo
379652f074 Merge branch 'main' into cells 2023-08-03 19:33:04 -06:00
Max Brunsfeld
7a04ee3b71 Start work on exposing which channels the user has admin rights to 2023-08-03 18:31:00 -07:00
Max Brunsfeld
95b1ab9574 Implement channel member removal, permission check for member retrieval 2023-08-03 18:03:40 -07:00
Nathan Sobo
d3c1966d96 WIP: Return WindowHandle<V: View> from AppContext::add_window (#2820)
Instead of returning a usize for the window id, I'm instead returning a
`WindowHandle<V: View>` where `V` is the type of the window's root view.
@as-cii helped me with a cool technique using generic associated types
where methods on `WindowHandle` can return either T or Option<T>
depending on the `BorrowWindowContext::Result` associated type.

Some example usage...

```rs
let window = cx.add_window(|cx| MyView::new(cx));
let my_view = window.root(cx); // If cx is TestAppContext, returns MyView. Otherwise returns Option<MyView>, because the window could be closed.
```


This isn't insanely beneficial on its own, but I think it will help
clean up our testing story. I'm planning on making `window` more useful
in tests for laying out elements, etc.

- [x] Rework tests that call `add_window` 😅 to expect only a window in
return.
- [x] Get tests passing
- [x] 🚬  test
2023-08-03 18:45:51 -06:00
Piotr Osiewicz
13a6b65a35 Focus filters when enabled 2023-08-04 02:33:48 +02:00
Nathan Sobo
2d96388be3 Use WindowHandles in a couple places 2023-08-03 17:46:34 -06:00
Max Brunsfeld
4a6c73c6fd Lay-out channel modal with picker beneath channel name and mode buttons
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-03 16:15:29 -07:00
Nathan Sobo
485c0a482e Don't refcount window handles 2023-08-03 17:11:47 -06:00
Nathan Sobo
afcc0d621b WIP 2023-08-03 17:03:39 -06:00
Joseph T. Lyons
ee1b4a52cc Add PathExt trait (#2823)
This PR adds a `PathExt` trait. It pulls in our existing `compact()`
function, as a method, and then adds a method, and testing, for
`icon_suffix()`. A test was added to fix:

- https://github.com/zed-industries/community/issues/1877

Release Notes:

- Fixed a bug where file icons would not be registered for files with
with `.` characters in their name
([#1877](https://github.com/zed-industries/community/issues/1877)).
2023-08-03 18:57:43 -04:00
Max Brunsfeld
a7e883d956 Implement basic channel member management UI
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-03 14:49:01 -07:00
KCaverly
c14a99d8fa updated project_search text 2023-08-03 17:02:46 -04:00
Mikayla Maki
129f2890c5 simplify server implementation 2023-08-03 13:27:00 -07:00
Max Brunsfeld
9a1dd0c6bc Fetch channel members before constructing channel mgmt modal 2023-08-03 12:10:53 -07:00
Mikayla Maki
6c4964f071 WIP: continue channel management modal and rename panel to collab_panel 2023-08-03 11:40:55 -07:00
Piotr Osiewicz
4658bc610c Update styling of nav buttons (width, corner_radius)
Co-authored-by: Kyle <kyle@zed.dev>
2023-08-03 20:35:10 +02:00
Piotr Osiewicz
31fb503418 Rewrite permission queries (it no longer blocks)
Co-authored-by: Kyle <kyle@zed.dev>
Co-authored-by: Max <max@zed.dev>
2023-08-03 20:26:56 +02:00
Mikayla Maki
d450c4be9a WIP: add custom channel modal 2023-08-03 10:59:09 -07:00
Piotr Osiewicz
d157e3598d Query semantic_permissioned on demand.
Co-authored-by: Kyle <kyle@zed.dev>
2023-08-03 19:27:27 +02:00
Piotr Osiewicz
799adf6c25 Query Semantic Index Engine for permission state.
Co-authored-by: Kyle <kyle@zed.dev>
2023-08-03 19:18:14 +02:00
KCaverly
8dd330a160 add semantic search prompt for the indexing permission on first search
Co-authored-by: Piotr <piotr@zed.dev>
2023-08-03 12:52:20 -04:00
KCaverly
358e4e5ccf update minor text when actively searching 2023-08-03 10:22:31 -04:00
Piotr Osiewicz
822b1ec002 Clean up compiler warnings
Co-authored-by: Kyle <kyle@zed.dev>
2023-08-03 16:12:08 +02:00
Nathan Sobo
3c938a7377 WIP 2023-08-03 08:10:16 -06:00
Piotr Osiewicz
8831e03eba Remove reference to pane from a toolbar.
Co-authored-by: Kyle <kyle@zed.dev>
2023-08-03 16:09:26 +02:00
Piotr Osiewicz
7d83d15bf3 Move navigation buttons to the tab bar.
Co-authored-by: Kyle <kyle@zed.dev>
2023-08-03 16:05:24 +02:00
Mikayla Maki
30e1bfc872 Add the ability to jump between channels while in a channel 2023-08-02 17:13:09 -07:00
Max Brunsfeld
0ae1f29be8 wip 2023-08-02 15:52:56 -07:00
Max Brunsfeld
4d55110452 Restore seeding of random GH users in seed-db
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-02 15:45:22 -07:00
Julia
ad4fd7619b Use the same font size for hovered state of LSP status (#2821)
This element is used for the update state as well for some reason so
while we don't normally ever see this state, it is used when the status
is acting as the restart to update button

Release Notes:

- Fixed an inconsistency in the status bar update button font size.
2023-08-02 18:16:39 -04:00
Max Brunsfeld
fca8cdcb8e Start work on rendering channel participants in collab panel
Co-authored-by: mikayla <mikayla@zed.dev>
2023-08-02 15:09:37 -07:00
Julia
df4480ba52 Use the same font size for hovered state of LSP status
This element is used for the update state as well for some reason so
while we don't normally ever see this state, it is used when the status
is acting as the restart to update button
2023-08-02 17:33:56 -04:00
KCaverly
b4f6d6eadc update search text for no results 2023-08-02 17:14:15 -04:00
Nathan Sobo
8e36da1382 Get tests passing 2023-08-02 15:02:55 -06:00
KCaverly
a125e318fe catch up with main 2023-08-02 16:48:11 -04:00
Nathan Sobo
884cee6dfd Get tests compiling returning WindowHandle<V: View> from add_window 2023-08-02 14:05:03 -06:00
Max Brunsfeld
9e755bb855 Revert "Extract syntax highlighting properties from tree-sitter highlight queries (#2797)"
This reverts commit 45c635872b, reversing
changes made to f2b82369f2.
2023-08-02 12:15:39 -07:00
Max Brunsfeld
a9de73739a WIP 2023-08-02 12:15:06 -07:00
KCaverly
71bbd5f2f6 update keymaps for cycle search mode and toggle filters 2023-08-02 15:08:54 -04:00
KCaverly
acf78f5fb4 add kill_search function to stop searching on mode change 2023-08-02 14:18:28 -04:00
Nathan Sobo
60e190e500 WIP 2023-08-02 12:08:56 -06:00
Joseph T. Lyons
b0ec05a732 v0.99.x dev 2023-08-02 13:50:30 -04:00
KCaverly
7b43b0d4f1 refactored search mode to ensure state is consistent
Co-authored-by: Piotr <piotr@zed.dev>
2023-08-02 12:29:19 -04:00
Mikayla Maki
61a6892b8c WIP: Broadcast room updates to channel members 2023-08-02 09:21:30 -07:00
Max Brunsfeld
7d97d1dd8d Merge branch 'main' into collab-panel 2023-08-02 09:20:53 -07:00
Max Brunsfeld
a127b0d3e6 Fix warnings surfaced in Rust 1.71 2023-08-02 09:19:23 -07:00
Max Brunsfeld
a555fa1ada Merge branch 'main' into collab-panel 2023-08-02 09:08:50 -07:00
Max Brunsfeld
4c7d60ed13 Upgrade to rust 1.71 2023-08-02 09:08:08 -07:00
Piotr Osiewicz
5b30caa333 Add borders to button sides 2023-08-02 11:27:59 -04:00
KCaverly
caaa4b1618 add theme for search mode option buttons, and adjust padding
Co-authored-by: Piotr <piotr@zed.dev>
2023-08-02 11:23:55 -04:00
Piotr Osiewicz
e0eaf23c28 Add borders to button sides 2023-08-02 16:33:35 +02:00
Nathan Sobo
300ce61bd0 WIP 2023-08-02 08:25:40 -06:00
Conrad Irwin
5f6535e92b TEMP 2023-08-02 15:06:46 +01:00
Piotr Osiewicz
d39585b240 Fix query editor 'floating' when filters are enabled 2023-08-02 14:05:09 +02:00
Piotr Osiewicz
0253ff3043 Touch up rounding on the sides of mode switcher 2023-08-02 13:52:02 +02:00
Piotr Osiewicz
4ef59899d1 WIP: Add ButtonSide element 2023-08-02 13:05:29 +02:00
Nathan Sobo
b695c42e11 WIP: Return WindowHandle<V: View> from AppContext::add_window 2023-08-01 22:28:04 -06:00
Nathan Sobo
1dfde8eab5 WIP 2023-08-01 20:53:15 -06:00
Mikayla Maki
7145f47454 Fix a few bugs in how channels are moved around 2023-08-01 18:42:14 -07:00
Max Brunsfeld
6a404dfe31 Start work on adding sub-channels in the UI
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-01 18:20:25 -07:00
Mikayla Maki
b389dcc637 Add subchannel creation
co-authored-by: max <max@zed.dev>
2023-08-01 16:48:11 -07:00
Mikayla Maki
74437b3988 Add remove channel method
Move test client fields into appstate and fix tests

Co-authored-by: max <max@zed.dev>
2023-08-01 16:06:27 -07:00
Piotr Osiewicz
e4871afaf3 Improve styling of mglass icon & search switches 2023-08-02 00:36:46 +02:00
Mikayla Maki
56d4d5d1a8 Add root channel UI
co-authored-by: Max <max@zed.dev>
2023-08-01 13:33:31 -07:00
Mikayla Maki
7434d66fdd WIP: Add channel creation to panel UI 2023-08-01 13:22:06 -07:00
Julia
5e9f7f10c0 Improve panic message usefulness on local dev builds (#2819)
I got tired of having to hack in a panic hook bypass whenever I wanted a
backtrace with line numbers. Now a dev channel build will behave more
like the default panic hook, printing a pretty traditional backtrace
message and exit with an error code instead of aborting to avoid the
annoying "Zed crashed" dialog.

I have plans to modify our panic reporting to be able to have line
numbers reported without breaking the de-duping but I haven't done that
yet.

Additionally I slightly improved what we do in threads which panic as a
result of another thread's panic.

Release Notes:

- N/A
2023-08-01 15:43:33 -04:00
Julia
3cee181f99 Improve panic message usefulness on local dev builds 2023-08-01 14:30:20 -04:00
KCaverly
cf060f0011 added major and minor display text to project search, and fixed icon padding
Co-authored-by: Piotr <piotr@zed.dev>
2023-08-01 13:28:21 -04:00
KCaverly
7d5ff60ff0 added svg right margin in search bar
Co-authored-by: Piotr <piotr@zed.dev>
2023-08-01 12:34:02 -04:00
Piotr Osiewicz
00a9672eca Scale down the case insensitive icon
Co-authored-by: Kyle <kyle@zed.dev>
2023-08-01 18:02:19 +02:00
Piotr Osiewicz
444b98e32f Update case insensitive button.
Co-authored-by: Kyle <kyle@zed.dev>
2023-08-01 17:56:09 +02:00
Joseph T. Lyons
eb26fb2d45 Fix variable names 2023-08-01 11:52:53 -04:00
Kyle Caverly
ce258dfeb9 Expanded Semantic language support (#2818)
Expand Language Support within Semantic Search

Release Notes (Preview-only)

- Added semantic search support for lua, ruby, php, svelte, erb, heex,
html and markdown.
- Full details are included here:
https://linear.app/zed-industries/issue/Z-2611/allow-semantic-search-for-all-supported-languages
2023-08-01 11:51:51 -04:00
KCaverly
c28ba3a11a add cycle mode to project search
Co-authored-by: Piotrek <piotr@zed.dev>
2023-08-01 11:47:30 -04:00
Piotr Osiewicz
2e2d0a3884 Hide whole word/case sensitive options under semantic search 2023-08-01 17:07:21 +02:00
KCaverly
300c693d55 catchup with main 2023-08-01 10:40:38 -04:00
KCaverly
e221f23018 add support for markdown files to semantic search 2023-08-01 10:30:34 -04:00
Piotr Osiewicz
b29a535f04 Use icons instead of text in toggles 2023-08-01 11:20:23 +02:00
KCaverly
9a50b43eaa add templating languages html, erb, heex, svelte as entire parseable file types 2023-07-31 21:03:02 -04:00
Max Brunsfeld
7954b02819 Start work on displaying channels and invites in collab panel 2023-07-31 18:00:14 -07:00
Piotr Osiewicz
a33d8519f2 Move buttons inside of query editor (WIP) 2023-08-01 02:06:40 +02:00
Mikayla Maki
003a711dea Add room creation from channel join
co-authored-by: max <max@zed.dev>
2023-07-31 16:54:12 -07:00
Mikayla Maki
92fa879b0c Add ability to join a room from a channel ID
co-authored-by: max <max@zed.dev>
2023-07-31 16:53:57 -07:00
Kirill Bulatov
06a0c9f82b Track history items in the buffer and project searches (#2817)
![image](https://github.com/zed-industries/zed/assets/2690773/53ce324f-2243-4cd9-a8aa-11f361c36860)

Tracks last N (20 currently) items in buffer and project search, allows
cycling through between them with up/down keys by default.

Release Notes:

- Track history in buffer and project searches
2023-08-01 01:44:58 +03:00
Piotr Osiewicz
52a48de9ca Add WIP Normal button (resuses parts of semantic button, gotta wire it proper) 2023-08-01 00:44:52 +02:00
Kirill Bulatov
634baeedb4 Add project search history 2023-08-01 01:31:28 +03:00
Kirill Bulatov
646dabe113 Add buffer search history 2023-08-01 01:31:28 +03:00
KCaverly
599f674827 add php support for semantic search 2023-07-31 16:36:09 -04:00
Mikayla Maki
ef57d444d0 Halve opacity on wrap guides (#2815)
Wrap guides are a little too bright as is
2023-07-31 10:59:34 -07:00
Mikayla Maki
88474a6048 Clip wrap guides from under the scrollbar 2023-07-31 10:54:29 -07:00
Nate Butler
b530aabff3 Additional storage filetypes (#2816)
Been working with some db stuff and thought it would be nice to add a
few more associations

Release Notes:

- Added additional filetype associations in the project browser
2023-07-31 13:32:15 -04:00
Nate Butler
bb288eb941 Ensure json uses a tab size of 4 2023-07-31 13:08:40 -04:00
Nate Butler
c4709418d1 Format 2023-07-31 12:50:30 -04:00
Nate Butler
e07a81b225 Add additional storage filetypes 2023-07-31 12:49:55 -04:00
KCaverly
89edb3d1b5 fix templating bug for parseable entire files 2023-07-31 11:41:18 -04:00
Julia
49ef3e35e3 Put LiveKitBridge Swift build directory in target (#2812)
Helps it get caught in a cargo clean. Joseph was having trouble building
a specific version of the app and deleting the Swift build dir for this
package resolved it. He had run cargo clean which would have handled
that if the Swift build dir was in `target` which this patch does


Release Notes:

- N/A
2023-07-31 11:25:41 -04:00
KCaverly
ca4e21881e add ruby support for semantic search 2023-07-31 10:54:30 -04:00
KCaverly
a5dd8dd0a9 add lua embedding query for semantic search 2023-07-31 10:02:28 -04:00
Mikayla Maki
8926266952 Halve opacity on wrap guides 2023-07-29 23:53:16 -07:00
Mikayla Maki
6184c60278 disable wrap guides in the assitant panel (#2814)
Wrap guides do not look correct in the assistant due to it's current
header styling. Disable them in that context now.

Release Notes:

- Fix a visual bug displaying when enabling wrap guides in the
assistant.
2023-07-28 22:39:30 -07:00
Mikayla Maki
d58f031696 disable wrap guides in the assitant panel 2023-07-28 22:27:36 -07:00
Conrad Irwin
645c149344 Fix visual selection of trailing newline 2023-07-28 22:38:39 -06:00
Joseph T. Lyons
0bd6e7bac3 Fix comment 2023-07-28 23:13:36 -04:00
Joseph T. Lyons
b0e81c58dc Remove unused code in test 2023-07-28 23:06:40 -04:00
Joseph T. Lyons
525c8dacbc Add a command to collapse all entires (#2813)
Release Notes:

- Added a `project panel: collapse all entries` command
([#158](https://github.com/zed-industries/community/issues/158)).
2023-07-28 22:44:08 -04:00
Joseph T. Lyons
2c47efcce9 Add a command to collapse all entires 2023-07-28 22:36:15 -04:00
Max Brunsfeld
4b94bfa045 Set up basic RPC for managing channels
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-07-28 17:05:56 -07:00
Julia
fe43bacb6f Put LiveKitBridge Swift build directory in target
Helps it get caught in a cargo clean
2023-07-28 18:53:24 -04:00
Nathan Sobo
6f6096238d WIP 2023-07-28 16:44:15 -06:00
Mikayla Maki
4626981b25 Make wrap guides respect scroll position (#2810)
Release Notes:

- Fixed a visual bug when scrolling with wrap guides active
2023-07-28 15:08:52 -07:00
Mikayla Maki
d3b89e16f2 Make wrap guides respect scroll position 2023-07-28 14:56:13 -07:00
Max Brunsfeld
758e1f6e57 Get DB channels query working with postgres
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-07-28 14:56:02 -07:00
Conrad Irwin
9cb0ce7745 Review 2023-07-28 15:36:14 -06:00
Conrad Irwin
0c15ef7305 Merge VisualChange -> Substitute
They both are supposed to work the same.
2023-07-28 15:32:02 -06:00
Nathan Sobo
6d10328796 WIP 2023-07-28 15:29:29 -06:00
Conrad Irwin
236b755b1d Fix substitute in visual line mode 2023-07-28 15:26:40 -06:00
Conrad Irwin
e3788cc6e6 Add o/O for flipping selection 2023-07-28 15:26:40 -06:00
Conrad Irwin
3f2f3bb78d Fix crash when deleting a long line in visual line mode 2023-07-28 15:26:40 -06:00
Conrad Irwin
5edcb74760 Add support for visual ranges ending with a newline
These primarily happen when first entering visual mode, but can also
be created with objects like `vi{`.

Along the way fix the way ranges like `vi{` are selected to be more
similar to nvim.
2023-07-28 15:26:40 -06:00
Conrad Irwin
b53fb8633e Fix vim selection to include entire range
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2023-07-28 15:26:40 -06:00
Nathan Sobo
4d66c3237d WIP 2023-07-28 15:01:45 -06:00
Mikayla Maki
0998440bdd implement recursive channel query 2023-07-28 13:24:43 -07:00
Mikayla Maki
15631a6fd5 Add channel_tests.rs 2023-07-28 13:24:43 -07:00
Mikayla Maki
26a94b5244 WIP: Channel CRUD 2023-07-28 13:24:43 -07:00
Max Brunsfeld
bb70901e71 WIP 2023-07-28 13:24:43 -07:00
Mikayla Maki
40c293e184 Add channel_modal file 2023-07-28 13:24:43 -07:00
Mikayla Maki
1549c2274f Create channel adding modal 2023-07-28 13:24:43 -07:00
Max Brunsfeld
4a088fc4ae Make major collab panel headers non-interactive 2023-07-28 13:24:43 -07:00
Max Brunsfeld
fc49194535 Restructure collab panel, make contact finder into a normal modal 2023-07-28 13:24:43 -07:00
Max Brunsfeld
14fdcadcfc Add seemingly-redundant export in theme src file to workaround theme build error 2023-07-28 13:24:43 -07:00
Max Brunsfeld
87dfce94ae Rename contact list theme to collab panel 2023-07-28 13:24:43 -07:00
Max Brunsfeld
969ecfcfa2 Reinstate all of the contacts popovers' functionality in the new collaboration panel 2023-07-28 13:24:43 -07:00
Mikayla Maki
7f9df6dd24 Move channels panel into collab and rename to collab panel
remove contacts popover and add to collab panel
2023-07-28 13:24:42 -07:00
Mikayla Maki
fe5db3035f move channels UI code to channels-rpc 2023-07-28 13:21:41 -07:00
Mikayla Maki
ac35dae66e Add channels panel with stubbed out information
co-authored-by: nate <nate@zed.dev>
2023-07-28 13:21:39 -07:00
Julia
e6f3e0ab9c Reattempt Node installation if the installation itself errors (#2808)
This also makes us a bit more aggressive about reinstalling Node

Fixes
https://linear.app/zed-industries/issue/Z-2697/language-server-error-html-failed-to-iterate-over-archive

Release Notes:
- Improved the Node runtime re-installation mechanism for language
servers.
2023-07-28 15:49:42 -04:00
Julia
46101bf110 Reattempt Node installation if the installation itself errors
This also makes us a bit more aggressive about reinstalling Node
2023-07-28 15:24:40 -04:00
Joseph T. Lyons
b8690ec1d1 Update release action to choose between preview and stable URL in Discord announcements
This is what ChatGPT told me, so we'll see.
2023-07-28 15:12:37 -04:00
Conrad Irwin
5d8370e2a1 Don't highlight project search matches either (#2807)
@JosephTLyons this is probably worth merging alongside #2803

- vim: Fix a bug where focusing project search results unexpectedly
entered visual mode
2023-07-28 12:25:32 -06:00
Conrad Irwin
fac0e2dd56 Don't highlight project search matches either 2023-07-28 12:17:32 -06:00
Kirill Bulatov
97042eb5aa Make project search includes and excludes more user-friendly (#2806)
Closes
https://linear.app/zed-industries/issue/Z-2707/make-inclusionexclusion-with-non-globs-more-intuitive

Allow search results that start with the include/exclude path part.

![image](https://github.com/zed-industries/zed/assets/2690773/ef48ca8e-f8fd-41b2-a656-c31dc7712a11)


Release Notes:

- Improved project search include/exclude filters' usability: allow path
entries along with the glob ones
2023-07-28 13:38:53 +03:00
Kirill Bulatov
cf6e524c9a Make project search includes and excludes more user-friendly
Allow search results that start with the include/exclude path part
2023-07-28 12:56:44 +03:00
Nathan Sobo
dc8e7acca0 WIP 2023-07-27 23:52:41 -06:00
Nathan Sobo
239024acd6 WIP 2023-07-27 23:26:12 -06:00
Nathan Sobo
33e49b4962 WIP 2023-07-27 23:00:52 -06:00
Mikayla Maki
1545128ec5 Add Nix language support (#2781)
This adds rudimentary language support for the Nix expression language,
through tree-sitter-nix.

I spent a little bit of time trying to add support for one of the Nix
language servers too, but wasn't able to get any of them running
reliably without crashing, and so I've opted to stick to just the
tree-sitter grammar for now.


![image](https://github.com/zed-industries/zed/assets/285821/c770f3d8-6fa0-4083-9bf3-239cc78ca307)
2023-07-27 18:35:52 -07:00
Mikayla Maki
e945b3c0e1 feat(workspace): add action for closing inactive editors on all panes (#2771)
using zed more and more to develop zed itself I'm finding some small qol
features missing, this is one of them
I'm very used to open two or three splits, and sometimes I want to close
everything except for the active editor, but that wasn't supported, as
the `pane::CloseInactiveItems` action only closes inactive items on the
active pane

so I've implemented it really quick, although I'm not sure it's the
right way to do this

note: I really don't like the default keybinding I've set it to, I have
this action bound to `cmd-shift-w` on all editors, but in zed is taken,
so I chose something that's free but without thinking too much about it

Release Notes:

- Added action for closing inactive editors from all panes
2023-07-27 18:11:11 -07:00
Conrad Irwin
ade8d4d167 Fix jumping to definition in a new file (#2803)
This is broken because vim currently sets settings only on the active
editor. Fix this by correcting the range on the currently active editor.

It would be nice (at some point) to refactor how vim sets settings, but
that's for another day.

Release Notes:

- vim: Fix bug when jumping to definition in new file accidentally
entered visual mode.
2023-07-27 19:10:01 -06:00
Mikayla Maki
dc5b23e9bb Update elixir depedency (#2805)
Fixes https://github.com/zed-industries/community/issues/1761

Redo of https://github.com/zed-industries/zed/pull/2734 

This PR increases the version further to one that does not have the
symbol collision issue we found with elm-tree-sitter

Release Notes:

- N/A
2023-07-27 18:01:16 -07:00
Mikayla Maki
4735b07088 Fix warning 2023-07-27 18:00:33 -07:00
Mikayla Maki
a0fc515cfc Rework close_inactive_items to await all tasks
Update action name to be more accurate
2023-07-27 17:58:48 -07:00
Mikayla Maki
45e5d81664 update to dependency without symbol conflict 2023-07-27 17:41:13 -07:00
Mikayla Maki
0dffb728db Update elixir depedency
co-authored-by: Alex <alexviscreanu@gmail.com>
2023-07-27 17:36:09 -07:00
Mikayla Maki
549769491e Underscore arguments in conditionally compiled code (#2804)
For some reason, our bundle script doesn't fail on warning, so this
hasn't been caught yet.

Release Notes:

- N/A
2023-07-27 17:32:00 -07:00
Nathan Sobo
480401d65d WIP 2023-07-27 18:23:23 -06:00
Mikayla Maki
f15a03816f underscore arguments 2023-07-27 17:19:32 -07:00
Conrad Irwin
1935307b4f Fix jumping to definition in a new file
This is broken because vim currently sets settings only on the active
editor. Fix this by correcting the range on the currently active editor.

It would be nice (at some point) to refactor how vim sets settings, but
that's for another day.
2023-07-27 18:10:17 -06:00
Mikayla Maki
ae765bbca3 Make mode indicator follow vim enabled state (#2802)
There was a minor visual bug introduced in
https://github.com/zed-industries/zed/pull/2801, this PR corrects it.

Release Notes:

- N/A
2023-07-27 16:30:49 -07:00
Mikayla Maki
03bc430bdd Make mode indicator follow vim enabled state 2023-07-27 16:14:56 -07:00
Mikayla Maki
17fa15d989 Avoid panic by accessing view handle by global in wrong window (#2801)
View handles are window specific but the Vim global will be doing things
in all windows, that would cause a panic when Vim attempted to update a
status bar mode indicator in a background window

Release Notes:

- N/A
2023-07-27 16:02:46 -07:00
Julia
fc9687d163 Avoid panic by accessing view handle by global in wrong window
View handles are window specific but this global will be doing things
in all windows, that would cause a panic when it attempted to update
a status bar mode indicator in a background window

Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
2023-07-27 18:53:05 -04:00
Joseph T. Lyons
3979454485 Follow naming convention for menu items 2023-07-27 17:13:37 -04:00
Joseph T. Lyons
e3201857ce Publish preview releases to discord (#2800)
Release Notes:

- N/A
2023-07-27 15:26:08 -04:00
Joseph T. Lyons
7a9af7c663 Publish preview releases to discord 2023-07-27 15:17:13 -04:00
Julia
6a0e1d5345 Update Alacritty (#2798)
This will potentially fix a number of Alacritty related panics, however
it is tricky to figure out which ones in particular will be impacted for
sure. We've said we were going to do this for a while but with the
constant trickle of panics it seemed reasonable to just go and do it

Release Notes:

- Fixed a few potential terminal related crashes.
2023-07-27 15:03:53 -04:00
Nathan Sobo
2ef19e48bc WIP 2023-07-27 13:00:28 -06:00
Nathan Sobo
70c9959ebc WIP 2023-07-27 12:35:54 -06:00
Mikayla Maki
0455311371 Downgrade our dependency on treesitter-cpp (#2799)
Our dependency on `tree-sitter-cpp` got upgraded to an incompatible
version despite semver 'guarantees'. This pins the dependency onto the
commit of version 0.20.0

Release Notes:

- Restored language detection for C++ (preview-only)
2023-07-27 11:20:29 -07:00
Mikayla Maki
a829b5be01 fmt 2023-07-27 11:14:21 -07:00
Mikayla Maki
d835274306 Downgrade our dependency on treesitter-cpp 2023-07-27 11:11:24 -07:00
Nate Butler
27931663d9 chore: add theme types docs (#2737)
Release Notes:

- Added documentation about theme types generation
2023-07-27 13:21:31 -04:00
Nate Butler
45c635872b Extract syntax highlighting properties from tree-sitter highlight queries (#2797)
This should be a purely internal change. Let me know if any visual
changes are observed from this!

### Syntax theme
- Update the theme to allow any syntax highlighting property used in any
`highlight.scm` to be styled
- Only define syntax styles that are baked into the default theme &
don't use the default text style
- Adds the `generate-syntax` command
- Removes a few unused properties that we were styling for some reason,
like `enum` and `variant`, neither of which exist in any `highlight.scm`
- Moves `@constructor` symbols to `@method.constructor` to prevent
issues with `constructor` being a reserved property in ts/js.

Syntax is now build as the theme is created rather than as part of the
styleTree. This means it no longer requires a compiled `Theme`, which
makes things a bit more straightforward if we need to access it in other
components that should be built before the styleTrees.

### Scheme

Also updates all uses of `#match` in our `highlights.scm` files, as
these break the scheme tree-sitter query. This fixes _most_ instances of
our scheme highlighting breaking.

For some reason something in here breaks the `highlights.scm` for PHP:

```scheme
((name) @constant.builtin
 (.match? @constant.builtin "^__[A-Z][A-Z\d_]+__$"))

((name) @method.constructor
(.match? @method.constructor "^[A-Z]"))

((name) @variable.builtin
 (.eq? @variable.builtin "this"))
```

Release Notes:

- No public facing changes
2023-07-27 13:14:01 -04:00
Nate Butler
b08a2770b8 Remove redundant syntax_highlights 2023-07-27 13:02:40 -04:00
Nate Butler
b9d5cc5828 Format 2023-07-27 12:56:54 -04:00
Nate Butler
0b7e75c25a Add the generate-syntax action 2023-07-27 12:55:32 -04:00
Nate Butler
86fa27eb54 Update uses of # to . in our scheme files where they are interchangeable.
uses of `#` cause ERRORs in our scheme highlighting
2023-07-27 12:41:19 -04:00
Nate Butler
85f193dd09 Extract syntax highlighting properties from tree-sitter highlight queries 2023-07-27 12:25:53 -04:00
Julia
8c9c8362ec Update Alacritty 2023-07-27 12:19:07 -04:00
Julia
f2b82369f2 Make LSP status message match new font size of diagnostic message (#2796)
The status bar diagnostic message font size was updated in
1f65effe57
but the LSP status message font size remained the same causing a font
size change when swapping between the two

![CleanShot 2023-07-26 at 18 32
13](https://github.com/zed-industries/zed/assets/30666851/8d357f46-3a48-4ed1-9832-d24b4b2be4a8)
![CleanShot 2023-07-26 at 18 30
56](https://github.com/zed-industries/zed/assets/30666851/e4ce9911-f66d-4bc3-b951-78196da44176)

Release Notes:

- Fixed an inconsistency in status bar font size.
2023-07-27 11:16:28 -04:00
Piotr Osiewicz
b9cdb851d2 Update results text 2023-07-27 16:31:24 +02:00
Julia
0ab1c6ac8e Make LSP status message match new font size of diagnostic message 2023-07-27 10:25:46 -04:00
Piotr Osiewicz
dff9bf7d7e Make row_count of toolbaritem dynamic (WIP).
Move result count to the left hand side.
2023-07-27 16:03:26 +02:00
Antonio Scandurra
46dd717857 Maintain cursor stack's position correctly when ascending the tree (#2795)
This fixes a bug that could cause the cursor to incorrectly report its
start when using `slice` or `seek_forward`, and then calling `prev`. We
didn't notice this because we were not testing those three methods
together.

I suppose this could explain some of the panics we've observed because
we do use `slice`/`seek_forward` followed by `prev` calls in production.
2023-07-27 13:51:09 +02:00
Piotr Osiewicz
8ca1e0b15b Add dummy filter icon 2023-07-27 13:09:19 +02:00
Piotr Osiewicz
4761197d62 Add filter button.
Move semantic & regex buttons to the right hand side.
Add default tab name for the new project search.
2023-07-27 13:08:31 +02:00
Antonio Scandurra
2e0d051a78 Maintain cursor stack's position correctly when ascending the tree
This fixes a bug that could cause the cursor to incorrectly report its
start when using `slice` or `seek_forward`, and then calling `prev`. We
didn't notice this because we were not testing those three methods
together.

I suppose this could explain some of the panics we've observed because
we do use `slice`/`seek_forward` followed by `prev` calls in production.
2023-07-27 12:34:03 +02:00
Piotr Osiewicz
f2a35a7e1d Use a three-way layout 2023-07-27 12:18:19 +02:00
Piotr Osiewicz
91c32ed307 WIP: project search redesign 2023-07-27 11:43:32 +02:00
Nathan Sobo
ab8906551d WIP 2023-07-26 22:37:59 -06:00
Mikayla Maki
129e711545 Downgrade tree sitter elm to 5.6.4 (#2794)
The tree sitter elm parser contains a c symbol which collides with other
linked symbols. This PR downgrades the tree sitter elm parser to a
version which doesn't have this problem.

Release Notes:
- Fixed crash when parsing elm files
2023-07-26 15:54:55 -07:00
Mikayla Maki
d5c30709b3 Downgrade tree sitter elm to 5.6.4 2023-07-26 15:44:06 -07:00
Mikayla Maki
b8a2a2ecd3 Block extra drag events in original drag handlers (#2793)
In https://github.com/zed-industries/zed/pull/2790 I added an extra drag
event on mouse_up which signaled the end of a drag event, as mouse_up
event themselves wouldn't reliably fire if users moved their mouse too
quickly. This broke the assumptions of the terminal element. This PR
adds filters to all current on_drag handlers which removes this new
event.

Release Notes:

- Fixed a bug causing terminal links to never open (preview only)
- Fixed a bug in terminal link detection causing it to miss files with a
`-` in it
2023-07-26 15:15:31 -07:00
Mikayla Maki
354c020612 Block extra drag events in original drag handlers 2023-07-26 14:57:46 -07:00
Kyle Caverly
ee66f99ce6 Parallel vector db (#2792)
Parallelize Vector Database calls for project semantic search.

Release Notes: (Preview-only)

- Parallelize Vector database calls for project semantic search. Cuts
query time by 2/3rds.
- Removed default keymap for old semantic search modal.
2023-07-26 17:17:59 -04:00
KCaverly
fbede4a5a3 removed old code 2023-07-26 17:11:30 -04:00
KCaverly
e2b38f7a31 remove unused imports 2023-07-26 17:01:44 -04:00
KCaverly
06167889c3 remove default keymap for semantic search modal 2023-07-26 16:59:19 -04:00
KCaverly
5c48729c7c managed for small batch size edge case in semantic search 2023-07-26 16:56:41 -04:00
KCaverly
89bbcdfa4f remove debug logging for project_search semantic search 2023-07-26 16:51:25 -04:00
KCaverly
98fde36834 batch search queries in the vector database 2023-07-26 16:36:39 -04:00
Nathan Sobo
c602d98680 WIP 2023-07-26 13:34:57 -06:00
Nathan Sobo
0374bc66ce WIP 2023-07-26 12:54:23 -06:00
Joseph T. Lyons
40fcec1495 Follow naming convention for menu items 2023-07-26 14:35:23 -04:00
Joseph T. Lyons
6cd10f3d5e v0.98.x dev 2023-07-26 13:27:55 -04:00
Derek Briggs
603387ace5 icon updates (#2791)
Updated app icon and icon system updates
2023-07-26 11:23:23 -06:00
Derek Briggs
9fc1ebcb5b icon updates 2023-07-26 11:19:34 -06:00
Mikayla Maki
711073cf3c Simple cascading split (#2790)
This PR cascades the split resizing to adjacent splits, if the current
split has already hit the minimum size. This PR also adds support for
detecting the end of a drag event to GPUI, via a bool on the dispatched
drag.

Release Notes:

- Made split resizing more flexible
2023-07-26 09:49:27 -07:00
Mikayla Maki
a58c9ed7d3 fmt 2023-07-26 09:39:35 -07:00
Mikayla Maki
56704c7c5f Remove placeholders 2023-07-26 09:37:52 -07:00
Kyle Caverly
fc1844d684 Semantic search v2 (#2789)
Move semantic search from navigation modal, to project search option.
This PR is intended to be released in Preview only, and requires an
opt-in semantic_index option to enable. Without this opt-in setting
enable, the user should perceive no differences between previous project
search.

Release Notes: (Preview-only)

- Added Semantic Search as a opt-in feature within Project Search
- Show indexing feedback on indexing process within project search view
2023-07-26 10:34:58 -04:00
KCaverly
0b61c93a25 ensure semantic search is not enabled on stable 2023-07-26 10:22:33 -04:00
KCaverly
394a105639 fix warnings 2023-07-26 10:03:30 -04:00
KCaverly
0ac919f6e0 catchup with main 2023-07-26 09:50:38 -04:00
KCaverly
ca6f7d8a80 add worktree previously indexed functionality to vector db 2023-07-26 09:17:04 -04:00
Conrad Irwin
39f02c2b72 Add a mode indicator for vim (#2763)
Release Notes:

- vim: add a mode indicator
([#409](https://github.com/zed-industries/community/issues/409))

Now updated screenshots with @iamnbutler 
<img width="1043" alt="Screenshot 2023-07-25 at 11 11 57"
src="https://github.com/zed-industries/zed/assets/94272/8301479a-8b58-42d8-81a1-bc40e1e0a4df">
<img width="1043" alt="Screenshot 2023-07-25 at 11 12 00"
src="https://github.com/zed-industries/zed/assets/94272/89c3b8bd-9cbc-4fd7-ad10-dac5538ed3a3">
<img width="1043" alt="Screenshot 2023-07-25 at 11 12 12"
src="https://github.com/zed-industries/zed/assets/94272/adc87fe3-a720-4779-853b-df9443407046">
2023-07-25 20:18:23 -06:00
Nathan Sobo
c48d8af204 Merge branch 'paint-context' into cells 2023-07-25 17:36:05 -06:00
Nathan Sobo
1b03c5d69c Pass PaintContext to Element::paint
I want to use this on another branch, but it's a sweeping change,
so this prepares the ground for it. This can always be reverted if
it doesn't work out.
2023-07-25 17:32:31 -06:00
Nathan Sobo
df9c17176e WIP 2023-07-25 16:33:58 -06:00
KCaverly
75999204ad update project search to only show semantic button visible with semantic_index enabled 2023-07-25 16:26:37 -04:00
Joseph T. Lyons
cc23360bab Add sort lines command (#2786)
This PR adds command palette actions for:

- `sort lines case sensitive`
- `sort lines case insensitive`
- `reverse lines`
- `shuffle lines`

Closes out:

- https://github.com/zed-industries/community/issues/658

and partially closing out:

- https://github.com/zed-industries/community/issues/57 (which is
currently a top-ranked issue)

There are issues with dedupe lines and I didn't try to tackle converting
variable names between different conventions. I'll likely close out 57
with a note to just upvote the remaining individual issues

Release Notes:

- added command palette actions for `sort lines case sensitive`, `sort
lines case insensitive`, `reverse lines`, and`shuffle lines`
(([#57](https://github.com/zed-industries/community/issues/57)),
([#658](https://github.com/zed-industries/community/issues/658)))
2023-07-25 15:39:45 -04:00
KCaverly
e8210b827d move visible text to just start anchor with context lines for semantic search 2023-07-25 15:24:27 -04:00
KCaverly
cdceddd2cc update semantic index tests for elixir 2023-07-25 15:20:35 -04:00
Joseph T. Lyons
4085df5146 Add tests for manipulate_lines() 2023-07-25 15:17:16 -04:00
Conrad Irwin
64b252e81a A little refactor
Co-Authored-By: Mikayla Maki <mikayla.c.maki@gmail.com>
2023-07-25 12:55:01 -06:00
Joseph T. Lyons
bf2ca57f55 Remove { and } from single-line closure 2023-07-25 14:48:11 -04:00
Mikayla Maki
b5630eb901 Merge branch 'main' into quinn/nix 2023-07-25 11:34:57 -07:00
Mikayla Maki
c32fd57643 Add support for Elm and GLSL (#2782)
This adds tree-sitter grammars for both Elm and GLSL, with injections
for GLSL embedded within Elm. It also adds an `outline.scm` for Elm,
though limitations in the tree-sitter grammar meant that I wasn't able
to get it looking exactly how I'd have liked.

In particular, it wasn't clear how to nicely annotate functions in the
outline as being functions, or how to prevent the fields of a record
declaration from being increasingly indented.


![image](https://github.com/zed-industries/zed/assets/285821/544bc00b-3bfc-4ec7-be9d-764b9f0292ab)

![image](https://github.com/zed-industries/zed/assets/285821/74e57e95-bf87-4989-ae29-a2f625141bcf)

![image](https://github.com/zed-industries/zed/assets/285821/9e283c78-66d5-4c15-9827-1b5b446cdc37)

fixes https://github.com/zed-industries/community/issues/598

Release Notes:
- Added syntax highlighting for the Elm and GLSL languages
2023-07-25 11:34:22 -07:00
Joseph T. Lyons
93ec73da29 Fix code computing new selections
Co-Authored-By: Mikayla Maki <mikayla.c.maki@gmail.com>
2023-07-25 14:04:25 -04:00
KCaverly
97c3d97792 update semantic index tests for cpp 2023-07-25 13:30:38 -04:00
Conrad Irwin
1f65effe57 Update status bar theming
Co-Authored-By: Nate Butler <iamnbutler@gmail.com>
2023-07-25 11:06:41 -06:00
Joseph T. Lyons
299818cde0 Fix rand import and tweak callbacks
Co-Authored-By: Julia <30666851+ForLoveOfCats@users.noreply.github.com>
2023-07-25 11:44:13 -04:00
KCaverly
c86096a886 update semantic index tests for javascript 2023-07-25 10:38:37 -04:00
Joseph T. Lyons
1a84382881 WIP 2023-07-25 10:33:20 -04:00
Nathan Sobo
54a7419fa2 WIP 2023-07-24 23:27:14 -06:00
Joseph T. Lyons
bdd0b9f387 Add open file in project finder via space (#2785)
@mikayla-maki for 👀 

[This PR added in the ability to rename a file via
`enter`](https://github.com/zed-industries/zed/pull/2784). Previously,
`enter` was used to both open a file and confirm a rename, so this PR
changes the opening of a file to use `space`, which is what VS Code
uses. It also makes a bit more sense because now `enter` is just used to
start a rename and confirm the rename, vs being used for 2 different
actions.

N/A on the release notes, as I adjusted the release note in the
previously-tagged PR.

Release Notes:

- N/A
2023-07-24 16:35:01 -04:00
Max Brunsfeld
a01d973477 More git status optimizations (#2779)
Follow-up to https://github.com/zed-industries/zed/pull/2777
Refs https://github.com/zed-industries/community/issues/1770

In this PR, I reworked the way that git statuses are retrieved. In a
huge repository like `WebKit`, the really slow part of computing a list
of git statuses is the *unstaged* portion of the diff. For the *staged*
diff, `git` can avoid comparing the contents of unchanged directories,
because the index contains hashes of every tree. But for the *unstaged*
portion, Git needs to compare every file in the worktree against the
index. In the common case, when there are no changes, it's enough to
check the `mtime` of every file (because the index stores the mtimes of
files when they are added). But this still requires an `lstat` call to
retrieve each file's metadata.

I realized that this is redundant work, because the worktree is
*already* calling `lstat` on every file, and caching their metadata. So
in this PR, I've changed the `Repository` API so that there are separate
methods for retrieving a file's *staged* and *unstaged* statuses. The
*staged* statuses are retrieved in one giant batch, like before, to
reduce our git calls (which also have an inherent cost). But the
`unstaged` statuses are retrieved one-by-one, after we load files'
mtimes. Often, all that's required is an index lookup, and an mtime
comparison.

With this optimization, it once again becomes pretty responsive to open
`WebKit` or `chromium` in Zed.

Release Notes:

- Optimized the loading of project file when working in very large git
repositories
2023-07-24 11:23:32 -07:00
Quinn Wilton
e199a6a3a1 Highlight all Elm function calls 2023-07-24 10:55:15 -07:00
Mikayla Maki
7603659479 Add MacOS standard key binding for file renames (#2784)
Release Notes:

- Added a default keybinding for using enter to rename files in the
project panel
2023-07-24 10:46:43 -07:00
Quinn Wilton
3cc88904bf Add all Elm functions to the outline, including locals 2023-07-24 10:45:46 -07:00
Quinn Wilton
62ee52a5fc Highlight qualified Elm function calls 2023-07-24 10:45:15 -07:00
Quinn Wilton
fbe0108959 Highlight Elm arrows as keywords 2023-07-24 10:44:56 -07:00
Mikayla Maki
41105136a4 Add MacOS standard key binding for file renames 2023-07-24 10:20:10 -07:00
Mikayla Maki
d95c4fdb2b Remove unbound highlight queries 2023-07-24 09:01:15 -07:00
Conrad Irwin
baa16a2fc6 Better method ordering 2023-07-24 09:57:51 -06:00
Mikayla Maki
ea74734b0a Touch up elm tree sitter integration 2023-07-24 08:52:51 -07:00
Conrad Irwin
43d94e37ec Refactor mode indicator to remove itself
One of the problems we had is that the status_bar shows a gap between
items, and we want to not add an additional gap for an invisible status
indicator.
2023-07-24 09:51:54 -06:00
Mikayla Maki
25e4bcea7f Implement cascading resize algorithm 2023-07-24 08:04:46 -07:00
Kirill Bulatov
52154f76ac Fixes a crash when SelectAllMatches action was called on no matches (#2783)
Release Notes:

- Fixes a crash when SelectAllMatches action was called on no matches
2023-07-24 15:48:45 +03:00
Kirill Bulatov
7dccb487de Fixes a crash when SelectAllMatches action was called on no matches 2023-07-24 15:42:10 +03:00
Quinn Wilton
6ad0852a70 Add outline.scm for Elm 2023-07-24 00:58:59 -07:00
Quinn Wilton
dd504f5965 Add tree-sitter-glsl 2023-07-23 22:22:11 -07:00
Quinn Wilton
a4914fcf3b Add tree-sitter-elm 2023-07-23 22:22:11 -07:00
Max Brunsfeld
8fff0b0ff8 Fix pathspec in staged_statuses
Enable non-literal matching so that directory paths match
all files contained within them.
2023-07-23 21:36:29 -07:00
Quinn Wilton
fe388ed71e Add tree-sitter-nix 2023-07-23 17:24:50 -07:00
Mikayla Maki
429a2fc623 Add drag end events
Fix left dragging cascade
WIP: Implement right dragging, WIP: use drag end events to set and reset state around initial flex orientation
2023-07-23 13:28:30 -07:00
Mikayla Maki
28ee05b324 WIP: cascade split resizes 2023-07-23 01:20:25 -07:00
Mikayla Maki
b4b53eb5f1 Refactor resize handle code to be amenable to cascading resizes 2023-07-22 21:48:45 -07:00
Max Brunsfeld
a3a9d024ba Fix filtering of staged statuses 2023-07-22 17:53:58 -07:00
Max Brunsfeld
b338ffe8d8 Rely on git status for any paths not matching the git index 2023-07-22 17:47:36 -07:00
Kirill Bulatov
e0915190d4 In terminal, open paths starting with ~ and focus on project panel when opening directories (#2780)
Further improves terminal navigation with cmd+click, now allowing to
open paths starting with `~` (if they are present otherwise) and
focusing project panel with highlighted entry for the directories
opened.

Release Notes:

- Further improves terminal navigation with cmd+click, now allowing to
open paths starting with `~` (if they are present otherwise) and
focusing project panel with highlighted entry for the directories
opened.
2023-07-23 00:23:19 +03:00
Kirill Bulatov
f05095a6dd Focus project panel on directory select 2023-07-23 00:12:25 +03:00
Max Brunsfeld
6c09782aa2 Optimize full file status via passing in known file mtime 2023-07-22 11:53:26 -07:00
Max Brunsfeld
51d311affd Compute unstaged git status separately, to take advantage of our cached file mtimes 2023-07-21 17:58:43 -07:00
Max Brunsfeld
ff0864026e Only fetch statuses for changed paths 2023-07-21 17:08:31 -07:00
Max Brunsfeld
05b161118c Don't call git status when ignored files change 2023-07-21 17:05:42 -07:00
Kirill Bulatov
dcaf8a9af8 Open paths starting with ~ from terminal click 2023-07-22 01:34:25 +03:00
Conrad Irwin
d14a484a20 Add support for adding/removing status items 2023-07-21 16:06:14 -06:00
Conrad Irwin
458916409c Add a mode indicator for vim
This is the second most common remaining complaint (after :w not
working).

Fixes: zed-industries/community#409
2023-07-21 16:06:14 -06:00
Max Brunsfeld
7788eabec0 Avoid performance bottlenecks from git status calls during worktree scanning (#2777)
Closes
https://linear.app/zed-industries/issue/Z-2689/huge-slowdown-when-working-in-large-git-repositories-like-webkit
Closes https://github.com/zed-industries/community/issues/1770

In large git repositories (like Webkit), `git status` can be very slow.
And our current approach of retrieving git statuses (one by one as we
load paths), causes catastrophic slowdowns in these repos. This PR
further optimizes our retrieval of git statuses (started in
https://github.com/zed-industries/zed/pull/2728), so that when scanning
a directory, we only load git statuses once, in a single batch, at the
beginning of the scan.

There is still an initial lag when opening `WebKit` in Zed, while the
initial git status runs. But once this call completes, everything is
fast. Let's come back to this problem later.

For now, this makes Zed's directory scanning massively more efficient,
even in the case of normal-sized repos like `zed`. The git status code
was a huge percentage of zed's CPU usage when launching. Here is that
code, highlighted in a flamegraph before and after this change:

Before:

![before](https://github.com/zed-industries/zed/assets/326587/627012f2-6131-44ac-95c2-ea4a4531cb24)

After:

![after](https://github.com/zed-industries/zed/assets/326587/a11a3e1b-e925-4bff-a421-ea71cb4de85d)


Release Notes:

- Fixed a bug where project paths took a very long time to load when
working in large git repositories
([#1770](https://github.com/zed-industries/community/issues/1770))
2023-07-21 14:46:53 -07:00
Kirill Bulatov
bd9118f673 Do not scroll when selecting all (#2778)
In big buffers, when I press `cmd-a`, the view gets scrolled to the very
bottom.
Usually it's now that I want, I can scroll to bottom with `cmd-down`
separately, and selecting all text is used for copy-pasting it
somewhere, no need to scroll anywhere for that — I can get back to the
same place later.

Release Notes:

- Removed the scroll to the end of the editor after `editor::SelectAll`
action
2023-07-22 00:25:37 +03:00
Kirill Bulatov
c538504b9c Do not scroll when selecting all 2023-07-22 00:17:02 +03:00
Max Brunsfeld
4bd415f2b6 Retrieve git statuses in one batch when scanning dirs 2023-07-21 13:50:54 -07:00
Kirill Bulatov
25ea07cd41 When renaming in project panel, select file names without extensions (#2776)
Closes
https://github.com/zed-industries/community/issues/1789#issuecomment-1646061712

<img width="196" alt="Screenshot 2023-07-21 at 23 23 47"
src="https://github.com/zed-industries/zed/assets/2690773/f5c7025b-6dc8-4f0c-81e5-3cc98a3a9c8b">
<img width="197" alt="Screenshot 2023-07-21 at 23 23 52"
src="https://github.com/zed-industries/zed/assets/2690773/596f8ab0-15e0-4285-be34-ce4c276b686f">

When renaming in project panel, select file names without extensions.

Release Notes:

- Improved project panel rename by selecting file names without
extensions
2023-07-21 23:30:55 +03:00
Kirill Bulatov
33b215a288 Add search in directory action in the project panel (#2774)
Part of https://github.com/zed-industries/zed/issues/1153
Closes https://github.com/zed-industries/community/issues/1326

<img width="432" alt="image"
src="https://github.com/zed-industries/zed/assets/2690773/a50ee073-9d2e-4e5c-ae5e-23312693c540">

Adds an `project_panel::NewSearchInDirectory` action ("alt-shift-f"
default) in the project editor context to open a new project search in
the selected directory.

Release Notes:

- Adds an action to open project search in the project panel's directory
2023-07-21 23:25:45 +03:00
Julia
f2c9738a69 Put our downloaded copy of Node in the env for every NPM action (#2775)
Intelephense (PHP language server) has a dependency on `protobufjs`
which invokes `node` in the `postinstall` script and if the user did not
have a system Node runtime installed that would fail. Have this use our
downloaded installation too

Fixes
https://linear.app/zed-industries/issue/Z-2687/php-language-server-failed

Release Notes:
- Fixed PHP language server installation on systems without a system
Node installation.
2023-07-21 16:24:05 -04:00
Kirill Bulatov
804da68af7 When renaming in project panel, select file names without extensions 2023-07-21 23:22:22 +03:00
Julia
2d8159998d Put our downloaded copy of Node in the env for every NPM action
Intelephense (PHP language server) has a dependency on `protobufjs`
which invokes `node` in the `postinstall` script and if the user did
not have a system Node runtime installed that would fail. Have this
use our downloaded installation too
2023-07-21 16:13:00 -04:00
Kirill Bulatov
595bc16749 Add search in directory action in the project panel 2023-07-21 22:47:57 +03:00
Julia
e002d9efb0 Avoid panic from assuming a vim operator exists on the operator stack (#2773)
Fixes
https://linear.app/zed-industries/issue/Z-338/operator-popped-when-no-operator-was-on-the-stack-this-likely-means

Release Notes:
- Fixed a panic that could occur when invoking a Vim object without an
operator.
2023-07-21 14:47:38 -04:00
Julia
243a1a854e Avoid panic from assuming a vim operator exists on the operator stack 2023-07-21 14:25:30 -04:00
Conrad Irwin
56c657fe79 Vim shortcuts (#2760)
Refactors some of the vim bindings to make the vim.json file less
obtuse.

Release Notes:

- vim: add `;` and `,` to repeat last `{f,F,t,T}`
- vim: add zed-specific shortcuts for common IDE actions:
- - `g A` to find all references
- - `g .` to open the code actions menu.
- - `c d` for rename
2023-07-21 10:31:18 -06:00
Conrad Irwin
4772e4ccee vim: add , and ; 2023-07-21 09:50:22 -06:00
Conrad Irwin
a50d30bf8e Quality of life shortcuts for code actions 2023-07-21 09:47:15 -06:00
Conrad Irwin
8ba69c15d1 refactor: Remove G/Z Namespace support
This previously enabled things like `d g g` to work, but we can
fix that instead by not clearing out pending vim state on change.

Either way, it is unnecessary and causes some user-confusion
(zed-industries/community#176), so remove this code for now; and use
comments to organize the file a bit instead.
2023-07-21 09:47:14 -06:00
Conrad Irwin
bf2583414b Fix shift-enter in search (#2772)
Fixes shift-enter to go to previous result.

Release Notes:

- To type a newline in search use `ctrl-enter` (or `ctrl-shift-enter`
for a newline below).
2023-07-21 09:23:04 -06:00
Conrad Irwin
807279208d Fix shift-enter in search
If you want to type a newline in an auto_height editor, ctrl and
ctrl-shift are your friends.
2023-07-21 09:10:12 -06:00
Joseph T. Lyons
5f89de0b80 Add key binding to close all docks (#2769)
Fixes:
https://linear.app/zed-industries/issue/Z-2680/add-a-close-all-docks-action

I frequently get stuck in this state:

<img width="1608" alt="SCR-20230721-dgvs"
src="https://github.com/zed-industries/zed/assets/19867440/13257e6d-f75a-4d1c-9718-153499e90c60">

I could zoom, but I dont want to in this case, I just want to close
everything, to get back to a truly decluttered state. Running 3 toggle
commands is cumbersome. I'd like to be able to close all docks with one
action.

I added an action with the key binding `alt-cmd-y` (similar
to`alt-cmd-t`, which is used to close all tabs). My original choice was
`alt-cmd-d` (`d` for dock), but that is the default macOS key binding to
hide the system dock.


Release Notes:

- Added a `workspace: close all docks` action (deployed via
`alt-cmd-y`).
2023-07-21 11:08:43 -04:00
Alex Viscreanu
1610e270d6 feat(workspace): add action for closing inactive editors on all panes 2023-07-21 13:16:00 +02:00
Kirill Bulatov
35400d5797 Do not highlight fake URLs in terminal (#2770)
Closes https://github.com/zed-industries/community/issues/1794
See also https://github.com/alacritty/alacritty/pull/7101

Release Notes:

- Fixed terminal incorrectly highlighting certain strings as URLs
2023-07-21 11:57:29 +03:00
Kirill Bulatov
cd3620692b Do not highlight fake URLs in terminal 2023-07-21 11:28:56 +03:00
Joseph T. Lyons
d98fcc4402 Add key binding to close all docks 2023-07-21 02:44:44 -04:00
Conrad Irwin
57b6e25278 Fix enter in search (#2768)
Fixes a regression in non-vim search caused by my changes to vim search.

Release Notes:

- N/A
2023-07-20 20:53:31 -06:00
Conrad Irwin
7337910034 Fix enter in search 2023-07-20 20:48:36 -06:00
Mikayla Maki
76188c9508 Add wrap guides (#2767)
fixes https://github.com/zed-industries/community/issues/48

Release notes
- Added wrap guides and two associated language settings:
`"show_wrap_guides": bool` and `"wrap_guides": [..]`. The first controls
whether wrap guides are shown when `"soft_wrap":
"preferred_line_length"` is enabled and the second allows Zed to show
additional wrap guides at whichever column index you prefer.

Here's a screenshot of Zed with wrap guides at 60 and 90, and soft wrap
active with a preferred_line_length of 80:

<img width="956" alt="Screenshot 2023-07-20 at 4 42 11 PM"
src="https://github.com/zed-industries/zed/assets/2280405/48f36be1-3bdc-48eb-bfca-e61fcfd6dbc2">
2023-07-20 17:15:06 -07:00
Mikayla Maki
05a8409363 bump the brightness of the active wrap guide 2023-07-20 16:45:41 -07:00
Mikayla Maki
a9bfe97361 Add wrap guides and associated settings 2023-07-20 16:39:13 -07:00
Max Brunsfeld
81b05f2a08 Optimize glob filtering of semantic search
Co-authored-by: Kyle <kyle@zed.dev>
2023-07-20 14:23:11 -07:00
Derek Briggs
4557adf693 Icon adjustments (#2766)
Icon tweaks
2023-07-20 15:06:50 -06:00
Derek Briggs
1d1da74d72 Adjustment 2023-07-20 15:05:26 -06:00
Derek Briggs
0769458ae4 Detail adjustments 2023-07-20 15:04:23 -06:00
Mikayla Maki
a85af79892 Folder icons (#2764)
- Updates icons and adds more
- Adds ability to choose folders or chevrons in user settings
- Adds ability to set indent size in user settings
2023-07-20 13:59:21 -07:00
Mikayla Maki
6b95ac9b26 fmt 2023-07-20 13:45:19 -07:00
Joseph T. Lyons
719c56734a Reuse previously-obtained call object 2023-07-20 16:21:21 -04:00
Joseph T. Lyons
6095525b56 Add microphone toggle events (#2765)
Release Notes:

- N/A
2023-07-20 16:10:20 -04:00
Joseph T. Lyons
429daf5f8c Add microphone events to calls 2023-07-20 16:00:11 -04:00
Joseph T. Lyons
7d3d54652b Remove unused method 2023-07-20 15:54:26 -04:00
Derek Briggs
1242b5b4a2 Solid tab on folder icon 2023-07-20 13:13:44 -06:00
Julia
0b6155609d In macOS platform layer map a ctrl-click to a right click (#2755)
Maps a ctrl left down event into a ctrl-less right down and then up pair
and filters out ctrl left up. Hopefully this ensures that mouse down/up
events remain balanced and somewhat matching.

Release Notes:
- Added the ability to ctrl-click in place of right click to summon
context menus
([#1150](https://github.com/zed-industries/community/issues/1150)).
2023-07-20 14:54:55 -04:00
Derek Briggs
abb145da70 add indent size to project panel settings 2023-07-20 12:30:35 -06:00
Derek Briggs
95947f6d3a icon adjustment 2023-07-20 12:29:57 -06:00
Derek Briggs
c56d62fd84 gitmodules to git icon 2023-07-20 12:29:50 -06:00
Derek Briggs
0e068a644f organize settings 2023-07-20 12:23:47 -06:00
Derek Briggs
13ae1249f5 Allow for folders or chevrons 2023-07-20 12:23:28 -06:00
Nate Butler
2f4e5b7e0e Add the local and declare keywords to bash syntax highlighting (#2761)
Release Notes:

- Improved Bash / Shell Script syntax highlighting
2023-07-20 14:17:29 -04:00
Derek Briggs
a7695c47bf Update default settings 2023-07-20 12:03:07 -06:00
Derek Briggs
8f0b24b264 Add moar icons 2023-07-20 12:01:41 -06:00
Mikayla Maki
0e9cad4935 Add a double click to reset resized splits (#2762)
fixes https://github.com/zed-industries/community/issues/1791

Release Notes:

- Double clicking on split resize handles now resets the split's
dimensions
2023-07-20 10:55:19 -07:00
KCaverly
e02d6bc0d4 add glob filtering functionality to semantic search 2023-07-20 13:46:27 -04:00
Mikayla Maki
d84d663ac3 fmt 2023-07-20 10:36:23 -07:00
Mikayla Maki
4d1dbb8aa3 Add a double click to reset resized splits 2023-07-20 10:33:28 -07:00
Nate Butler
5d22a300c3 Add the local and declare keywords to bash syntax highlighting 2023-07-20 13:18:15 -04:00
Conrad Irwin
372f66c88a Add workspace::ActivatePaneInDirection (#2757)
This change adds support for choosing a pane based on direction; and
adds default keybindings (`cmd+k cmd+{left,right,up,down}`) and vim
keybindings.

Release Notes:

- Add support for navigating to the next pane in a given direction using
`cmd+k cmd-{up,down,left,right}`
([#476](https://github.com/zed-industries/community/issues/476),
[#478](https://github.com/zed-industries/community/issues/478))
- Vim: adds support for many window related shortcuts: `ctrl-w
{h,j,k,l,up,down,left,right,w,W,p}` for navigating around panes, `ctrl-w
{q,c}` for closing panes and `ctrl-w {v,s}` for splitting panes.
2023-07-20 11:17:13 -06:00
Conrad Irwin
0e984e1e69 Ignore off-screen cursors 2023-07-20 11:11:47 -06:00
Conrad Irwin
464cc2e71a Assertions for assumptions 2023-07-20 11:11:37 -06:00
Conrad Irwin
d6a463afb8 Better calculation of pane distance 2023-07-20 11:06:16 -06:00
Derek Briggs
f051e66231 code icon adjustment 2023-07-20 10:15:20 -06:00
Derek Briggs
a90b151d52 Updated icons with additions 2023-07-20 10:07:32 -06:00
Kirill Bulatov
54378a5f57 Keep basic line height for single line editors (#2759) 2023-07-20 17:37:41 +03:00
Kirill Bulatov
0237276557 Fully revert the line height change 2023-07-20 15:39:22 +03:00
Kirill Bulatov
0e6048a85d Keep basic line height for single line editors 2023-07-20 13:42:11 +03:00
Kirill Bulatov
257dd57fe4 Properly display keybindings in context menus (#2758)
Fixes https://github.com/zed-industries/community/issues/1751


![image](https://github.com/zed-industries/zed/assets/2690773/cbf29eca-0fca-4aff-be50-810eb80fdcb5)

![image](https://github.com/zed-industries/zed/assets/2690773/330054eb-ba92-4c8f-862f-06f276cc262b)


Release Notes:

- Fixed context menu keybindings not updating with custom keybinding
values
2023-07-20 12:25:41 +03:00
Kirill Bulatov
a5e63fbf77 Properly display keybindings in context menus 2023-07-20 12:18:04 +03:00
Conrad Irwin
15dc8b43c4 Default keybindings for activating pane by direction
Breaking change: previously cmd-k cmd-{left,right} moved to the
{previous,next} pane; now they will move in the specified direction.
2023-07-19 18:33:08 -06:00
Conrad Irwin
2762f9b1c6 vim: Add support for ctrl-w commands
Primarily {h,j,k,l,left,right,up,down} for moving to a pane by
direction; but also {w,W,p} for going forward/back, and {v,s} for
splitting a pane vertically/horizontally, and {c,q} to close a pane.

There are a large number of ctrl-w commands that are not supported, and
which fall into three buckets:

* switch this pane with that one (VScode also has this, and it's a
  requested feature)
* move to top/bottom/leftmost/rightmost
* counts on any of these
* jump to "definition/file-under-cursor/etc.etc." in a new pane.
2023-07-19 18:29:13 -06:00
Conrad Irwin
e1379f0ef0 Add support for activating a pane by direction
Contributes: zed-industries/community#476
Contributes: zed-industries/community#478
2023-07-19 18:29:11 -06:00
Mikayla Maki
6f1dcb4e94 Fix buffer_line_height bugs (#2756)
Release Notes:

- Bug fix: Raise minimum line height to 1.1
- Bug fix: Disable buffer_line_height setting in non-buffer UI
2023-07-19 17:11:45 -07:00
Mikayla Maki
cb97f5a69c fmt 2023-07-19 16:56:49 -07:00
Mikayla Maki
aa67413abc Raise minimum line height to 1.1
Disable buffer_line_height setting in non-buffer editors
2023-07-19 16:55:28 -07:00
Conrad Irwin
b13e86aba6 Make tab non-functional in vim mode (#2753)
Make tab do nothing (a surprisingly common vim request).

- Fixes
([#988](https://github.com/zed-industries/community/issues/988)).
- Fixes
([#897](https://github.com/zed-industries/community/issues/897)).
2023-07-19 16:26:32 -06:00
KCaverly
efe973ebe2 add embedding query for json with nested arrays and strings
Co-authored-by: maxbrunsfeld <max@zed.dev>
2023-07-19 16:52:44 -04:00
Joseph T. Lyons
7e904183bf Fix return type in watch_file_types() 2023-07-19 16:24:29 -04:00
KCaverly
9809ec3d70 update treesitter parsing to accomodate for collapsed nested functions
Co-authored-by: maxbrunsfeld <max@zed.dev>
2023-07-19 15:47:05 -04:00
Julia
2e3aa703d9 In macOS platform layer map a ctrl-click to a right click 2023-07-19 15:43:45 -04:00
Mikayla Maki
491b3d5515 Mute mics by default (#2754)
This adds a setting to mute mics by default.

fixes https://github.com/zed-industries/community/issues/1769

Release notes:

- Fixed a bug with gutter spacing on files that end on a new significant
digit
- Added a setting for muting on join, and set it to true by default.
2023-07-19 12:42:30 -07:00
Mikayla Maki
1e4bddd276 fmt 2023-07-19 12:34:56 -07:00
Mikayla Maki
5ceb258b3e Mute mics by default
Fix bug when file ends in line with 1 more digit displayed than previous lines
Remove stale UI elements from voice call development
2023-07-19 12:34:24 -07:00
Joseph T. Lyons
34488ca863 v0.97.x dev 2023-07-19 15:33:58 -04:00
Joseph T. Lyons
64d134a0dc Update Cargo.lock 2023-07-19 15:32:41 -04:00
Mikayla Maki
07dc82409b File icons (#2719)
This PR adds the next most requested editor feature.

TODO:
- [x] Figure out styles and icons for supported file types with

fixes https://github.com/zed-industries/community/issues/206

Release Notes:

- Added file icons
2023-07-19 11:17:01 -07:00
Mikayla Maki
9c9ce15afc Add a few more spare associations 2023-07-19 11:14:31 -07:00
Mikayla Maki
e3f9a01f6b fmt 2023-07-19 11:10:31 -07:00
Derek Briggs
f4413b0969 Fix files that don’t have a prefix 2023-07-19 11:10:30 -07:00
Derek Briggs
c754c1e9e2 Update icons to new zed file icon set 2023-07-19 11:10:30 -07:00
Mikayla Maki
aacc4bb8b0 fmt 2023-07-19 11:10:30 -07:00
Mikayla Maki
8c855680e7 Make file types live reload 2023-07-19 11:10:30 -07:00
Mikayla Maki
96ef6ab326 Add willow license 2023-07-19 11:10:30 -07:00
Mikayla Maki
929a9f97b2 Fix tests 2023-07-19 11:10:30 -07:00
Mikayla Maki
fd72f4526d Added file suffix and icon associations data 2023-07-19 11:10:30 -07:00
Mikayla Maki
d023189bda Add settings 2023-07-19 11:10:30 -07:00
Mikayla Maki
d26f76ba90 Add suffix based file icons 2023-07-19 11:10:30 -07:00
Conrad Irwin
dd8863d0de Make tab non-functional in vim mode
Fixes: zed-industries/community#988
Fixes: zed-industries/community#897
2023-07-19 10:25:17 -06:00
Conrad Irwin
843e74689d Vim search (#2657)
This PR makes searching in vim mode significantly more like vim.

I re-used search to implement "go to next instance of word under cursor"
as this is how it works in vim (for integration with other
search-related keyboard shortcuts) and to avoid having to rewrite all
the logic to be vim-specific; but that did mean I had to make some
changes to the way search works (in particular to allow different
searches to run with specific options).

Release Notes:
- vim: `<enter>` in search now puts you back in normal mode
([#1583](https://github.com/zed-industries/community/issues/1583))
- vim: `?` now works to search backwards.
- vim: jumping to definitions or search results keeps you in normal mode
([#1284](https://github.com/zed-industries/community/issues/1284))
([#1514](https://github.com/zed-industries/community/issues/1514))
- vim: `n`/`N` are now supported to jump to next/previous match after a
search
([#1583](https://github.com/zed-industries/community/issues/1583))
- vim: `*`/`#`/`g*`/`g#` are now supported to jump to the next/previous
occurrence of the word under the cursor.
- vim: `gD` now jumps to type definition
2023-07-19 10:15:23 -06:00
Conrad Irwin
98b8008bcc Merge branch 'main' into vim-search 2023-07-19 09:48:25 -06:00
Kirill Bulatov
c528880155 Clean up stale conflicting hints (#2751)
Closes
https://linear.app/zed-industries/issue/Z-2618/thread-main-panicked-at-excerpt-not-found-crateseditorsrcmulti
Closes
https://linear.app/zed-industries/issue/Z-2616/thread-main-panicked-at-excerpt-not-found-crateseditorsrcmulti

Fixes inlay hints cache not removing stale hints on invalidating
refreshes.

Release Notes:

- Fixes inlay hint panics after visible kinds settings update
2023-07-19 15:38:27 +03:00
Kirill Bulatov
3058a96dee Clean up stale conflicting hints 2023-07-19 15:29:00 +03:00
Kirill Bulatov
c5e47f27f5 Rework terminal highlight mechanism (#2743)
<img width="807" alt="image"
src="https://github.com/zed-industries/zed/assets/2690773/ef3bfeef-28f5-458f-abe6-7c19bf820106">

Closes https://github.com/zed-industries/community/issues/10
Closes https://github.com/zed-industries/community/issues/560

Initial version of improved terminal highlights and "open link"
functionality: drops old behavior where URLs were highlighted on hover.
Now, Cmd + hover is needed to highlight the links and click opens both
URLs and files that exist (either abs paths, or anything relative to the
project workspace worktree roots).
Only paths eligible for opening are highlighted.

Release Notes:

- Improved terminal highlights and selections: Cmd+Click opens local
files and links
2023-07-19 09:05:48 +03:00
KCaverly
0e071919a0 parellelize embedding api calls 2023-07-18 16:09:44 -04:00
Kirill Bulatov
33921183dc Avoid extra blinking on mouse moves 2023-07-18 22:59:41 +03:00
Kirill Bulatov
6ed7820f7c Consider all terminal when searching for words 2023-07-18 22:59:41 +03:00
Kirill Bulatov
10db05f87f Rework terminal highlight event flow 2023-07-18 22:59:41 +03:00
Kirill Bulatov
6f7a6e57fc Avoid excessive blinking on cmd-hover 2023-07-18 22:59:41 +03:00
Kirill Bulatov
94358ffb16 Use lines and columns from the file url strings 2023-07-18 22:59:41 +03:00
Kirill Bulatov
82a9d53c8a Only highlight the openable things 2023-07-18 22:59:41 +03:00
Kirill Bulatov
6349d90cac Properly open project directories 2023-07-18 22:59:41 +03:00
Kirill Bulatov
6123c67de9 Detect and open URLs properly 2023-07-18 22:59:41 +03:00
Kirill Bulatov
23f25562b5 Map initial approach to string opening 2023-07-18 22:59:41 +03:00
Kirill Bulatov
f52722b6a4 Properly handle Cmd press for terminal highlights 2023-07-18 22:59:41 +03:00
Kirill Bulatov
75d900704e Refactor terminal highlights and open mechanisms
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-07-18 22:59:41 +03:00
Kirill Bulatov
91ba80ae98 Ignore empty hover contents, trim final hover label text (#2747)
Removes empty hovers from appearing:

![image](https://github.com/zed-industries/zed/assets/2690773/b8a8af17-e20f-4d87-8782-465dfbf9b561)

And trims final hover label to ensure no trailing whitespaces are
present:

![image](https://github.com/zed-industries/zed/assets/2690773/24aeb0f0-d4f0-4e2b-9265-53694bfec437)


Release Notes:

- Tidies up hover elements by trimming them and removing the empty ones
2023-07-18 22:59:24 +03:00
Kirill Bulatov
9aeb970f09 Ignore empty hover contents, trim final hover label text 2023-07-18 22:53:44 +03:00
Nathan Sobo
19e4cad7a9 WIP 2023-07-18 13:32:07 -06:00
Max Brunsfeld
342dbc6945 Fix rendering of project search while semantic index is indexing or running
Co-authored-by: Kyle <kyle@zed.dev>
2023-07-18 12:01:42 -07:00
Max Brunsfeld
8d0614ce74 Populate project search results multi-buffer from semantic search
Co-authored-by: Kyle <kyle@zed.dev>
2023-07-18 11:44:58 -07:00
Joseph T. Lyons
7cb5326ba0 Fix ZED_SERVER_URL port number
This change accidentally slipped into https://github.com/zed-industries/zed/pull/2746
2023-07-18 12:43:27 -04:00
Joseph T. Lyons
e73f394604 Add is_staff to events (#2746)
Release Notes:

- N/A
2023-07-18 12:41:24 -04:00
Joseph T. Lyons
018eb06091 Add is_staff to events 2023-07-18 12:32:53 -04:00
Nate Butler
b00703a149 Add syntax highlighting for Bash, Shell Scripts (#2722)
Release Notes:

- Added syntax highlighting for Bash, Shell Scripts
2023-07-18 12:21:52 -04:00
Nate Butler
bf2dcd4582 Update cargo.toml 2023-07-18 12:15:03 -04:00
Nate Butler
fab26267db Merge branch 'main' into nate/add-bash-highlighting 2023-07-18 12:08:53 -04:00
KCaverly
80ef92a3e1 fix db schema update process to ensure all tables are dropped 2023-07-18 11:14:13 -04:00
KCaverly
ed1b1a5ccd update logging for open ai embedding and remove redundant truncation 2023-07-18 11:00:21 -04:00
KCaverly
b9fdfd60f0 catch up with main 2023-07-18 10:26:28 -04:00
Julia
192f747bd1 Detect Node broken-ness initially (#2745)
This will help cases where Node is broken causing Copilot to fail to
start but because it doesn't install via NPM we would not have caught it
prior.

Release Notes:
- Improved detection of broken Node installation impacting Copilot
([#1551](https://github.com/zed-industries/community/issues/1551)).
2023-07-18 10:20:47 -04:00
Julia
aee008440b Detect Node broken-ness initially
This will help cases where Node is broken causing Copilot to fail to
start but because it doesn't install via NPM we would not have caught
it prior.

Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2023-07-18 10:02:14 -04:00
Piotr Osiewicz
137734cfcf Piotr/z 2588 php (#2721)
Release Notes:

- Added syntax highlighting & Intelephense LSP support for PHP language.
([#46](https://github.com/zed-industries/community/issues/406)).
2023-07-18 14:57:40 +02:00
Kirill Bulatov
009cf48b26 Slightly tidy up vector_db code (#2744)
Code snippet
```rust
fn main() {
    //√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√√
}
```

has length of 191, but consists of 87 chars, and the debug code with
`.truncate(100)` panicked.
Fixed that issue, cc @KCaverly 


Release Notes:

- N/A
2023-07-18 14:22:34 +03:00
Kirill Bulatov
a884bd77e1 Slightly tidy up vector_db code
Avoid panicking when truncating code with special chars
2023-07-18 14:06:57 +03:00
Piotr Osiewicz
fa529d9590 Remove redundant debug impl 2023-07-18 12:21:00 +02:00
Piotr Osiewicz
7fde3614fe Remove leftover comment 2023-07-18 12:19:35 +02:00
Max Brunsfeld
afc4c10ec1 Start work on exposing semantic search via project search view
Co-authored-by: Kyle <kyle@zed.dev>
2023-07-17 18:10:51 -07:00
Nathan Sobo
18b0385d73 WIP 2023-07-17 16:48:31 -06:00
Nathan Sobo
f5682a3cb5 Paint basic children
Co-Authored-By: Derek Briggs <derek.briggs@me.com>
2023-07-17 16:39:58 -06:00
KCaverly
d83c4ffb07 remove debug logging for enabled settings 2023-07-17 17:09:51 -04:00
Conrad Irwin
96abba2b7d vim: Allow ctrl+[ as an alias for escape (#2741)
Also remove unneeded mappings in `g` and `z` modes

Release Notes:

- Adds `ctrl+[` as an alias for escape
([#538](https://github.com/zed-industries/community/issues/538)).
2023-07-17 15:07:53 -06:00
KCaverly
8b42f5b1b3 rename vector_store crate to semantic_index 2023-07-17 17:06:10 -04:00
Conrad Irwin
9e44de90af Allow ctrl+[ as an alias for escape
Also remove unneeded mappings in `g` and `z` modes

Fixes: zed-industries/community#358
2023-07-17 14:59:08 -06:00
KCaverly
e630ff38c4 add embedding treesitter queries for elixir 2023-07-17 16:29:25 -04:00
Joseph T. Lyons
9f650dfa52 Prevent multiple submissions of the same feedback text (#2740)
Fixes:
https://linear.app/zed-industries/issue/Z-2416/improvements-to-feedback-submission

We get a lot of duplicate messages through our in-app feedback. My best
guess is that because we do not tell the user we are doing anything, and
because submission takes awhile, users are hitting the submission button
mutliple times. This PR blocks the submission code, once an initial
submission is sent. If the original submission fails, we unblock the
submission code. The submit button is disabled and enabled accordingly
as well.

Release Notes:

- N/A
2023-07-17 16:15:49 -04:00
Mikayla Maki
1a8bfdfa21 feat(workspace): add option for moving the tab close button to the left (#2739)
Fixes https://github.com/zed-industries/community/issues/1760

Release Notes:

- Add option for chosing where the close button should be displayed on
editor tabs
2023-07-17 13:10:42 -07:00
Joseph T. Lyons
ede86a686c Prevent multiple submissions of the same feedback text
Co-Authored-By: Julia <30666851+ForLoveOfCats@users.noreply.github.com>
2023-07-17 16:10:34 -04:00
Alex Viscreanu
4efcf492ee feat(workspace): add option for moving the tab close button to the left 2023-07-17 21:17:28 +02:00
Mikayla Maki
04625fe376 feat(workspace): show git status on editor tabs (#2736)
Fixes https://github.com/zed-industries/community/issues/1674

Release Notes:

- Added option for showing git status on editor tabs
2023-07-17 12:14:39 -07:00
KCaverly
f0bf60fded add css as a embeddable file type in which the entire file is embedded individually 2023-07-17 14:53:57 -04:00
Alex Viscreanu
6793d4b6b8 feat(workspace): show git status on editor tabs 2023-07-17 20:53:42 +02:00
Conrad Irwin
c9bf407431 Avoid optional on select_match 2023-07-17 12:49:59 -06:00
KCaverly
1362c5a3d9 add embedding treesitter query for cpp 2023-07-17 14:43:29 -04:00
Max Brunsfeld
fef73ae921 Make macOS application menu aware of which key bindings are disabled (#2735)
Follow-up of https://github.com/zed-industries/zed/pull/2678
Deals with https://github.com/zed-industries/community/issues/772

Refreshes macOs menu panel on keymap file change and properly ignore
disabled actions.

Release Notes:

- Fixes a bug when disabled actions from macOs menu were still working
2023-07-17 11:20:41 -07:00
Julia
3e136943c0 After first panic, ignore others and tear down process even if in thread (#2725)
Spent a bit in a deep dive into how to handle this and honestly the
situation is rather unfortunate. The core problem is that when we have a
panic anywhere we need to tear down the app, and we'd like to do that as
cleanly as possible, avoiding throwing any other panics along the way if
possible.

We've been seeing a number of panics being reported which are
nonsensical, seemingly pointing to being a fallout panic from a worker
thread panic-ing, at which point we would write multiple panics to the
panic file, and we could possibly upload either both or the wrong panic
causing a wild goose chase. Unfortunately I've been entirely unable to
reproduce the specific panic we've been seeing but I was able to read
through the code responsible and confirm that under specific situations
a panic on one worker can cause another worker or the main thread to
also panic.

An easy solution to this is just to ignore any panics after the first
one. I'm thinking that *hopefully* we can trust the first panic to reach
the panic hook first so that the flag doesn't accidentally filter out
the panic we actually care about.

That being said we were expecting that to have already been the case
about which panic gets written to the panic file first, the first one in
the file being the one we upload, which doesn't seem to have been the
case. I'm hoping it was IO silliness causing that and that the flag
shouldn't be race-y, however this is still a shot in the dark. 🤞

As for cleanly shutting down, there's not really much we can do. One
thread physically cannot cause another to unwind without somehow sending
a message which isn't super useful. The only way for a thread to shut
down all threads and the process is to go nuclear and abort/exit the
process. This will never unwind other threads, effectively having the
same effect on those threads as compiling with `panic = "abort"` would.

With some (mis)use of `std::panic::resume_unwind` we can at least say
that for whatever thread actually panic-ed we will unwind, and any other
threads that panic as a result will probably get at least partway
through unwinding. This is weird, almost a combination of panic
rewinding and aborting, and may actually be worse than just biting the
bullet and aborting immediately.

I'm really not a fan of where I've ended up but it does seem to at the
very least an improvement. The main question in my mind at this point is
whether it would be better to attempt to unwind what we can or go all in
on abort. I'd love some input on that.

Release Notes:
- Improved panic reporting when a background thread panics.
2023-07-17 13:52:33 -04:00
Julia
6770aeeb3c After first panic, ignore others and tear down process even if in thread 2023-07-17 13:43:43 -04:00
Kirill Bulatov
a4bf19c5bd Simplify NoAction filtering logic
co-authored-by: Max Brunsfeld <max@zed.dev>
2023-07-17 20:42:35 +03:00
Sergey Onufrienko
cb8762d855 chore: add theme types docs 2023-07-17 17:54:37 +01:00
Kirill Bulatov
4cc06748c9 Ignore keybindings with NoAction in config overrides 2023-07-17 18:34:39 +03:00
Conrad Irwin
f887a17ffe Merge branch 'main' into vim-search 2023-07-17 09:27:02 -06:00
KCaverly
cf0dd09b5c update vector_store to accomodate for full file parsing for JSON, TOML and YAML files 2023-07-17 10:04:32 -04:00
KCaverly
4bece54655 update jsx family of languages for preceeding comments and nested exports 2023-07-17 09:22:37 -04:00
Piotr Osiewicz
dd6b674e7e Remove dbg calls 2023-07-17 13:08:41 +02:00
Piotr Osiewicz
8642a1d074 Remove dbg! calls 2023-07-17 13:03:57 +02:00
Piotr Osiewicz
ee9123a7da Remove test 2023-07-17 12:56:25 +02:00
Piotr Osiewicz
5b6582a7c2 rustfmt 2023-07-17 12:51:00 +02:00
Piotr Osiewicz
6c7a6d43fc Cargo fix 2023-07-17 12:38:35 +02:00
Piotr Osiewicz
94796e943b Set language id for PHP. LSP works! 2023-07-17 12:36:08 +02:00
Piotr Osiewicz
965cc2efbc Fix a crash in tree-sitter-php 2023-07-17 12:07:25 +02:00
Piotr Osiewicz
11173b2199 Merge branch 'main' into piotr/z-2588-php 2023-07-17 11:47:08 +02:00
Piotr Osiewicz
dc557e1647 Add scaffolding of php language server 2023-07-17 11:43:32 +02:00
Kirill Bulatov
f5eac82e81 Reload menu after keybindings change 2023-07-17 12:30:42 +03:00
Kirill Bulatov
eaa8224076 Use id instead of type_id for actions
Currently, both are the same thing, so the logic is not changed.
2023-07-17 12:24:56 +03:00
Mikayla Maki
10a1df3faa Fix fold indicator active hover style (#2731)
Release Notes:

- Fix: adjusted fold indicator styles
2023-07-15 23:06:01 -07:00
Mikayla Maki
419cbcbaf8 Fix fold indicator active hover style 2023-07-15 22:51:04 -07:00
Mikayla Maki
f24001c130 Simplify db tests (#2730)
The open_db function I wrote was doing far more than it needed to to
preserve the database and it was doing it badly. It no longer does all
of that.
2023-07-14 16:16:33 -07:00
Mikayla Maki
322ebc33d1 Simplify db tests 2023-07-14 16:09:02 -07:00
Nathan Sobo
248f5dfd4b Get a red box on screen
Co-Authored-By: Derek Briggs <derek.briggs@me.com>
2023-07-14 17:03:07 -06:00
Joseph T. Lyons
4d91409bbc Require only a single click to split pane when using cmd in project panel (#2729)
Release Notes:

- N/A
2023-07-14 18:31:38 -04:00
Joseph T. Lyons
c3e8ea304a Require only a single click to split pane when using cmd in project panel 2023-07-14 18:27:40 -04:00
Max Brunsfeld
dcc2cd8dff Optimize two slow code paths (#2728)
Linear:
https://linear.app/zed-industries/issue/Z-2578/zed-launches-very-slow-for-user

I was searching for the cause of a slow startup time reported in the
above issue, and I don't think I found it, but I did find two very
noticeable slow code paths while profiling, and fixed them.

###  Notes

1. When starting the JSON language server, we provide it with a JSON
schema for our settings. For the `theme` setting, the JSON schema needs
to read all of the themes in the registry, to generate a list of valid
theme names. Previously, as part of this, we were deserializing each
theme from JSON, which took a lot of CPU. Now, we don't do that.
2. When an FS event occurs within a git repository, we reload the git
status for all entries in that git repository. Previously, we did that
via a separate `libgit2` call per FS entry (including ignored entries,
so many thousands in the case of the `zed` repo). Now we do one
`libgit2` call, asking for all of the statuses. Git carries an index of
all of the files with statuses, so this is fast.

Release Notes:

- Improved the the performance of starting up a  JSON language server.
- Improved the performance of handling changes to git repositories, such
as changing branches or committing.
2023-07-14 14:38:55 -07:00
Nathan Sobo
87bafb04e2 Get playground app launching
Not sure if it should be in the workspace, but it's easier for now.

Co-Authored-By: Derek Briggs <derek.briggs@me.com>
2023-07-14 15:34:31 -06:00
Max Brunsfeld
b9e0074793 Perform only one git statuses call when reloading a git repo after it changes 2023-07-14 14:29:22 -07:00
Max Brunsfeld
c69d0d50cd Avoid deserializing all themes to compute settings JSON schema 2023-07-14 14:29:22 -07:00
Nathan Sobo
4b2054215a Get cell compiling 2023-07-14 15:20:53 -06:00
Alex Viscreanu
031172d3f2 file/symbol navigation modifiers (#2727)
Fixes https://github.com/zed-industries/community/issues/54

Release Notes:

- Added modifiers for opening files and symbols on a split
- Added modifiers for navigating to definition and type definitions on a
split
2023-07-14 22:03:48 +02:00
Alex Viscreanu
c0b2326053 fix(flexes): reset flexes when collapsing axis
Co-authored-by: Mikayla Maki <mikayla@zed.dev>
2023-07-14 21:49:33 +02:00
Alex Viscreanu
c7669317ec feat(workspace): allow alternative actions to open files and symbols in split
Co-authored-by: Mikayla Maki <mikayla@zed.dev>
2023-07-14 21:49:15 +02:00
Piotr Osiewicz
369ccc725c branch_list: Bail in case of missing worktrees. (#2726)
Z-2632

Release Notes:
- Fixed a crash that occurred when opening a modal branch picker without
a corktree.
2023-07-14 21:41:11 +02:00
Kirill Bulatov
cde5b3952d Select all matches (#2717)
Closes https://github.com/zed-industries/community/issues/75
Closes https://github.com/zed-industries/community/issues/1749

The PR 

* changes keybindings for `Editor && mode == auto_height` context:
before, `alt-enter` and `alt-shift-enter` added new lines in such
editors, including the one from buffer search.

New bindings are the same as in `Editor && mode == full` context.

* adds `search::SelectAllMatches` action and binds it to `Alt + Enter`
by default, to select all matches of a buffer search

The behavior mimics VSCode: we do not move the screen even if all
selections are out of the visible range (Cmd+G will navigate there) and
allow reselecting the results from both pane and search field, as long
as the search is not dismissed.

Release Notes:

- Added `search::SelectAllMatches` (`Alt + Enter` default) action to
place carets and select all buffer search results
([#75](https://github.com/zed-industries/community/issues/75),
[#1749](https://github.com/zed-industries/community/issues/1749)).
2023-07-14 21:37:04 +03:00
KCaverly
2dae42b1ba update embedding query for tsx to accomodate for leading comments 2023-07-14 14:25:08 -04:00
Nathan Sobo
0db8f681ba WIP 2023-07-14 11:58:43 -06:00
KCaverly
d4971e9ead update typescript parsing to manage for leading tsdoc comments 2023-07-14 13:47:10 -04:00
Piotr Osiewicz
c6195e6176 branch_list: Bail in case of missing worktrees.
Z-2632
2023-07-14 19:33:27 +02:00
Max Brunsfeld
0f5489397f Fix syntax map issues that caused bugs in editing HEEx (#2723)
Fixes [Z-2575 : HEEX files are using deprecated commenting
sytle](https://linear.app/zed-industries/issue/Z-2575/heex-files-are-using-deprecated-commenting-sytle)

- Fixed a bug where comment toggling and bracket matching used the wrong
characters in templating languages like ERB and HEEx
([#1724](https://github.com/zed-industries/community/issues/1724)).
- Fixed a bug where interpolated code was sometimes not parsed correctly
within templating languages like ERB and HEEx.
2023-07-14 10:23:25 -07:00
Piotr Osiewicz
c466711cd1 branch_list: Ensure index is within list bounds. (#2724)
Z-2630


Release Notes:
- Fixed a crash in branch list that occurred when confirming a match in
empty list.
2023-07-14 19:11:24 +02:00
Piotr Osiewicz
9c150252aa branch_list: Ensure index is within list bounds.
Z-2630
2023-07-14 19:00:14 +02:00
Max Brunsfeld
31720d8825 Add randomized syntax map test with elixir within heex within elixir 2023-07-14 09:58:34 -07:00
Max Brunsfeld
21e7e35e73 Include newlines in between combined injection ranges on different lines 2023-07-14 09:25:56 -07:00
Max Brunsfeld
2f2ef7c165 Use workspace dependencies for tree-sitter grammars 2023-07-14 09:25:51 -07:00
Max Brunsfeld
2e2333107a Find the layer with the smallest enclosing node in language_scope_at 2023-07-14 09:11:56 -07:00
KCaverly
3a625d15d3 update c embedding query for preceding comments 2023-07-14 11:33:49 -04:00
Kirill Bulatov
b14cd5f56d Add a new button for the action 2023-07-14 17:32:10 +03:00
Kirill Bulatov
ccc78000bd Preserve serach index for multicaret selection editor events 2023-07-14 14:47:12 +03:00
Nate Butler
c130dd6b47 Add styles for an action_button ahead of the "Select all matches" UI button 2023-07-14 14:47:12 +03:00
Kirill Bulatov
f710efca3b Use a better name 2023-07-14 14:47:12 +03:00
Kirill Bulatov
2053418f21 Use VSCode-like shortcuts by default 2023-07-14 14:47:12 +03:00
Kirill Bulatov
29cbeb39bd Allow selecting all search matches in buffer 2023-07-14 14:47:12 +03:00
Mikayla Maki
bf9dfa3b51 Add Svelte support (#2720)
fixes https://github.com/zed-industries/community/issues/432

Release Notes:

- Added support for the svelte language
2023-07-13 22:43:46 -07:00
Mikayla Maki
f1b034d4f8 fmt 2023-07-13 22:32:29 -07:00
Mikayla Maki
ff8a89a075 Refine svelte queries to work with zed-style highlights
Bump scheme dependency:
2023-07-13 22:30:58 -07:00
Mikayla Maki
1424a7a56a Add svelte language server
Add svelte tree sitter
Add svelte config file
Add svelte highlighting
2023-07-13 21:43:53 -07:00
Mikayla Maki
415b8f0147 Add line height settings for the editor (#2718)
I'm a bit tired of the complaining for this feature. But also, we should
have it. Hence, this PR.

fixes:
https://github.com/zed-industries/community/issues/304#issue-1305112032

Release Notes:
- Added a `buffer_line_height` setting
2023-07-13 16:21:47 -07:00
Mikayla Maki
77c4fc98bd Add line height settings for the editor 2023-07-13 16:14:33 -07:00
Mikayla Maki
b7ed467690 WIP: Resizing splits (#2715)
We're finally doing the thing. 


TODO:
- [x] Choose an approach 
- Decided to add a new element just for the pane axis, containing a
slimmed down copy of the flex code.
- [x] Wire through callbacks and pointers so that data goes where it
needs to
- [x] Do the flex juggling math on resize
- [x] Update the flexes when updating the split tree
- [x] Restore the active_pane_magnification setting
- [x] Serialize an axis' flexes

Release Notes:
- Made the center pane group splits resizable. Note that resizing is
disabled if the `active_pane_magnification` setting is changed from
default.
2023-07-13 15:29:34 -07:00
KCaverly
b38e3b804c remove reindexing subscription, and add status methods for vector store
Co-authored-by: maxbrunsfeld <max@zed.dev>
2023-07-13 18:14:44 -04: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
Sergey Onufrienko
036d3e811a feat: add low, high, range and scaling 2023-07-13 22:09:31 +01:00
KCaverly
d8fd0be598 update vector store to remove dummy embeddings 2023-07-13 17:01:56 -04:00
KCaverly
623cb9833c add tests for rust context parsing, and update rust embedding query
Co-authored-by: maxbrunsfeld <max@zed.dev>
2023-07-13 16:58:42 -04:00
KCaverly
0a0e40fb24 refactored code context retrieval and standardized database migration
Co-authored-by: maxbrunsfeld <max@zed.dev>
2023-07-13 16:34:32 -04:00
Mikayla Maki
00b04f1c85 Restore active pane magnification 2023-07-13 13:10:36 -07:00
KCaverly
5eab628580 Added go parsing for semantic search, and added preceeding comments on go and rust.
Co-authored-by: Alex <alexviscreanu@gmail.com>
Co-authored-by: maxbrunsfeld <max@zed.dev>
2023-07-13 14:33:31 -04:00
Mikayla Maki
d5f7ad08fa Styled and refined behavior for split resizing 2023-07-13 11:28:21 -07:00
Nate Butler
ef7aa66959 Add first line pattern 2023-07-13 12:09:43 -04:00
Nate Butler
9a1a9813cb WIP 2023-07-13 11:56:53 -04:00
KCaverly
a56d454a07 added semantic search support for c 2023-07-13 10:10:24 -04:00
Piotr Osiewicz
608c16342c Update outline queries; add enum as a highlighted keyword 2023-07-13 12:23:49 +02:00
Kirill Bulatov
c2ffd8975b Update another deprecated plugin (#2716)
Follow-up of https://github.com/zed-industries/zed/pull/2713, fixing the
same for the bundling part of the pipeline.

Release Notes:

- N/A
2023-07-13 12:12:42 +03:00
Kirill Bulatov
8cce403c11 Update another deprecated plugin 2023-07-13 11:52:35 +03: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
Joseph T. Lyons
c9ba4c764a Fix screen sharing panic introduced by call events (#2714)
Release Notes:

- Fixed a bug where Zed would crash when enabling screen share.
2023-07-12 16:22:42 -04:00
Joseph T. Lyons
6da5008f32 Fix screen sharing panic introduced by call events
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2023-07-12 16:12:07 -04:00
Mikayla Maki
488b41826b WIP 2023-07-12 12:46:56 -07:00
Kirill Bulatov
1e8ee5361d Update GH Actions (#2713)
Fixes deprecation warnings the CI jobs started to have:

https://github.com/zed-industries/zed/actions/runs/5535503789

<img width="1383" alt="image"
src="https://github.com/zed-industries/zed/assets/2690773/a33ecc2a-d6d3-451d-8033-da5754df4731">

Release Notes:

- N/A
2023-07-12 22:25:59 +03:00
Kirill Bulatov
7cbcc28b1b Update checkout actions 2023-07-12 22:18:37 +03:00
Kirill Bulatov
d164034198 Allow all completions with preresolved additional text edits (#2711)
Deals with https://github.com/zed-industries/community/issues/752
Deals with https://github.com/zed-industries/community/issues/566

Currently, when converting from LSP to Zed objects, completions with
non-empty `additional_text_edits` are filtered out.
Later, all other completions form a list and the selected one gets the
`Editor::confirm_completion` call, which always queries an LSP
completion resolve request to get the `additional_text_edits` field.

Otherwise, `additional_text_edits` field is ignored entirely for the
rest of the completion lifetime — and we always pass the selected
completion through the resolve request.

The PR changes the logic, removing the `additional_text_edits` filtering
and instead of resolving every completion, now we check for
`additional_text_edits` in the completion before resolving: resolve
happens only if the data is absent.

Generally, feels like resolve has to happen before the completion
selection: LSP servers may send us markdown for completion documentation
preview pop ups and similar extra info.
Also, the server may lack resolve capabilities entirely, always sending
the request seems dangerous.
For now, the PR does not attempt to change either.

Release Notes:

- Brings rust-analyzer's postfix completions and others completions with
preresolved additional text edits
2023-07-12 22:10:18 +03:00
Nate Butler
ad4f5e55cb Update docs (#2712)
Update docs

Release Notes:

- N/A
2023-07-12 15:00:11 -04:00
Kirill Bulatov
0c7949bdee Force resolve all completions, to ensure their edits are up-to-date
co-authored-by: Max Brunsfeld <max@zed.dev>
2023-07-12 21:10:01 +03:00
Nate Butler
6297675055 Update building-zed.md
Co-Authored-By: Derek Briggs <1648941+PixelJanitor@users.noreply.github.com>
2023-07-12 14:09:21 -04:00
Derek Briggs
0e600ad2a4 Update README.md 2023-07-12 11:35:38 -06:00
Piotr Osiewicz
1cc8ecad12 Fix HTML injections (Thanks Max!)
Co-authored-by: Max <max@zed.dev>
2023-07-12 19:33:09 +02:00
Joseph T. Lyons
af9506b21d v0.96.x dev 2023-07-12 13:30:28 -04:00
Kirill Bulatov
c732aa1617 Do not resolve completions if extra edits are available 2023-07-12 20:28:16 +03:00
Kyle Caverly
37568ccbf0 Vector store (#2658)
This PR includes a new crate, aimed at maintaining a consistent semantic
embedding database, for any project opened with Zed. At a high level,
for each file in a project, we parse the file with treesitter, embed the
symbol "document" objects with OpenAI, and maintain a consistent
database of these embeddings and offset locations in a sqlite database.
Once stored, we have built a simple modal interface for querying on
these symbols embeddings using natural language, offering the
opportunity to navigate to the selected symbol.

This initial PR is intended to provide this functionality only in preview,
as we explore, evaluate and iterate on the vector store.

- Full task details are provided in the [Semantic Search Linear
Project](https://linear.app/zed-industries/project/semantic-search-7c787d198ebe/Z)
2023-07-12 13:26:17 -04:00
KCaverly
c141519dba merged with main 2023-07-12 13:15:23 -04:00
Derek Briggs
dc09a11090 Update README.md 2023-07-12 10:58:39 -06:00
Derek Briggs
2cb7d8aa96 Update README.md 2023-07-12 10:51:09 -06:00
Piotr Osiewicz
e69240cf13 Piotr/z 2556 add create branch button (#2696)
Release Notes:

- N/A
2023-07-12 18:46:33 +02:00
Nate Butler
001e848393 Update picker footer button style
Co-Authored-By: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
2023-07-12 12:40:37 -04:00
Piotr Osiewicz
2ac485a6ec Merge branch 'main' into piotr/z-2556-add-create-branch-button 2023-07-12 18:11:52 +02:00
Piotr Osiewicz
c12821f6c5 Increase trailoff limit for modal branch picker. (#2710)
Z-2601

Follow-up to modal branch picker, this is the updated version:

![image](https://github.com/zed-industries/zed/assets/24362066/1017e2d9-7107-4e4c-805e-bae46412079a)
Previously a trail off limit was much smaller:

![image](https://github.com/zed-industries/zed/assets/24362066/efb6c7cf-d90d-4fbc-8c28-84872f215ac5)

Release notes:
- N/A
2023-07-12 18:07:54 +02:00
Piotr Osiewicz
6260d977fb Increase trailoff limit for modal branch picker.
Z-2601
2023-07-12 17:58:00 +02:00
Kirill Bulatov
6d96c6ef51 Draft the postfix completions support 2023-07-12 18:32:03 +03:00
Julia
3db1aac119 Avoid user menu toggle button overlapping with tab bar top border (#2707)
Something little I noticed today

| | Normal  | Hovered |
| ------------- | ------------- | - |
| Before | ![CleanShot 2023-07-11 at 16 57
37](https://github.com/zed-industries/zed/assets/30666851/30769d09-678e-4d66-96de-df51c6d030cc)
![CleanShot 2023-07-12 at 10 17
20](https://github.com/zed-industries/zed/assets/30666851/801e1f26-1cea-45a7-8a50-b620095e2131)
| ![CleanShot 2023-07-11 at 16 59
46](https://github.com/zed-industries/zed/assets/30666851/fd1324c2-669f-42f8-96b3-4d65b555fb6e)
![CleanShot 2023-07-12 at 10 17
39](https://github.com/zed-industries/zed/assets/30666851/b286488d-b81e-44d5-a67c-dd816c072f86)
|
| After | ![CleanShot 2023-07-11 at 16 59
25](https://github.com/zed-industries/zed/assets/30666851/9942733f-8129-4854-bbfe-9a292b0e2c0e)
![CleanShot 2023-07-12 at 10 18
52](https://github.com/zed-industries/zed/assets/30666851/0b0f5fec-4c44-4c4f-8921-3b8a2cfff38c)
| ![CleanShot 2023-07-11 at 17 02
19](https://github.com/zed-industries/zed/assets/30666851/6ab82b26-0548-4ce7-8fdc-38ae561d26aa)
![CleanShot 2023-07-12 at 10 19
28](https://github.com/zed-industries/zed/assets/30666851/a024f6e8-f0f4-4d81-9f90-38a655a09031)
|

Also makes it match the contacts button and seems to more closely
resemble the mockups as far as I can tell

![CleanShot 2023-07-11 at 17 02
55](https://github.com/zed-industries/zed/assets/30666851/07fb1dea-5922-4bdc-9a3b-f7c1b105d017)

Release Notes:

- Fixed the titlebar user menu button obscuring part of the border below
it.
2023-07-12 11:31:42 -04:00
Piotr Osiewicz
99c2395a86 chore: Disable http2 feature in isahc. (#2709)
This removes transitive dependency on libnghttp2, which is pretty heavy.

Release Notes:

- N/A
2023-07-12 17:24:01 +02:00
Piotr Osiewicz
78c8324698 chore: Disable http2 feature in isahc.
This removes transitive dependency on libnghttp2, which is pretty heavy.
2023-07-12 16:53:01 +02:00
Piotr Osiewicz
10c62779d9 chore: Bump ipc-channel to 0.16.1. (#2708)
Kevin Hovsäter reported a crash in cli when running 'cargo run -p cli --
--bundle-path target/debug/Zed'. It was caused by unaligned pointer
access in ipc-channel library; rustc started generating debug_asserts
for pointer alignment starting with 1.70, which we have
oh-so-conveniently upgraded to shortly before Kevin noticed a crash.
Rust 1.70 did not introduce this panic, it merely started triggering on
UB that was previously ignored.

/cc @hovsater @SomeoneToIgnore 
Release Notes:

- N/A
2023-07-12 13:49:55 +02:00
Piotr Osiewicz
5086e37e73 chore: Bump ipc-channel to 0.16.1.
Kevin Hovsäter reported a crash in cli when running 'cargo run -po cli -- --bundle-path target/debug/Zed'. It was caused by unaligned pointer access in ipc-channel library; rustc started generating debug_asserts for pointer alignment starting with 1.70, which we have oh-so-conveniently upgraded to shortly before Kevin noticed a fix.
Rust 1.70 did not introduce this panic, it merely started triggering on UB that was previously ignored.
2023-07-12 13:27:14 +02:00
Piotr Osiewicz
b9f5cb0301 recent_projects: Perform fuzzy search on compacted paths. (#2703)
Match highlighting for recent projects picker was off, because the path
representation was compacted - for a path '/Users/hiro/Projects/zed' we
compact it to use a tilde instead of home directory. However, the
highlight positions were always calculated for a full path, leading to a
mismatch in highlights. This commit addresses this by running fuzzy
search on compacted paths instead of using long paths. This might lead
to a slight performance hit, but given that recent projects modal
shouldn't have that many items in the first place, it should be okay.

Z-2546

Release Notes:

- Fixed result highlighting in "Recent projects" modal.
2023-07-12 11:47:28 +02:00
KCaverly
33e2b52a01 added test registration for project settings 2023-07-11 20:12:43 -04:00
KCaverly
297fa029e3 Merge branch 'main' of github.com:zed-industries/zed into vector_store 2023-07-11 20:05:29 -04:00
KCaverly
b68cd58a3b updated vector store settings to remove batch embeddings size 2023-07-11 19:54:03 -04:00
Max Brunsfeld
4b3bb2c661 Define semantic search action regardless of whether the feature is enabled 2023-07-11 15:02:43 -07:00
Max Brunsfeld
4a4dd39875 Fix TSX embedding query 2023-07-11 15:02:19 -07:00
Max Brunsfeld
d244c0fcea Get vector store test passing - wait for indexing
Co-authored-by: Kyle <kyle@zed.dev>
2023-07-11 14:30:11 -07:00
Max Brunsfeld
badf94b097 Update dot product test to use larger vectors
Co-authored-by: Kyle <kyle@zed.dev>
2023-07-11 14:29:48 -07:00
Max Brunsfeld
08e24bbbae Use cmd-ctrl-t for semantic search key binding
Co-authored-by: Kyle <kyle@zed.dev>
2023-07-11 14:29:06 -07:00
KCaverly
af7b2f17ae added initial keymap for toggle semantic search
Co-authored-by: maxbrunsfeld <max@zed.dev>
2023-07-11 17:13:58 -04:00
Julia
ef296e46cb Avoid user menu toggle button overlapping with tab bar top border 2023-07-11 16:49:53 -04:00
KCaverly
2ca4b3f4cc cleaned up warnings and added javascript 2023-07-11 16:41:08 -04:00
KCaverly
debe6f107e updated embedding queries for tsx and typescript 2023-07-11 16:22:40 -04:00
KCaverly
02f523094b expanded embeddable context to accomodate for struct context and file paths 2023-07-11 15:58:33 -04: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
550aa2d6bd fmt 2023-07-11 12:17:50 -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
5483bd1404 Refactor LSP restart logic (#2705)
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.

Release Notes:

- N/A
2023-07-11 22:09:40 +03: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
KCaverly
dd0dbdc5bd brought up to speed with main 2023-07-11 14:50:48 -04:00
KCaverly
1649cf81de added versioning to files table 2023-07-11 14:42:03 -04:00
Joseph T. Lyons
5012d618e6 Add call events (#2704)
Release Notes:

- N/A
2023-07-11 14:40:07 -04:00
Joseph T. Lyons
98a0113ac3 Add call events
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2023-07-11 13:58:55 -04:00
Kirill Bulatov
efe8b8b6d0 Revert "Fix language servers improper restarts"
This reverts commit 91832c8cd8.
2023-07-11 20:46:45 +03:00
KCaverly
298c2213a0 added opt-in default settings for vector store 2023-07-11 12:03:56 -04:00
Kirill Bulatov
8161438a85 Fix language servers improper restarts (#2702)
Fixes
https://linear.app/zed-industries/issue/Z-2595/language-servers-are-unnecessarily-restarted-when-unrelated-settings

Language servers mixed `initialization_options` from hardcodes and user
settings, fix that to ensure we restart servers on their settings
changes only.

Release Notes:

- N/A
2023-07-11 17:15:19 +03:00
Kirill Bulatov
748e7af5a2 Add a test 2023-07-11 17:10:34 +03:00
KCaverly
f5fec55930 updated vector_store to handle for removed files 2023-07-11 10:03:53 -04:00
Kirill Bulatov
91832c8cd8 Fix language servers improper restarts
Language servers mixed `initialization_options` from hardcodes and user
settings, fix that to ensure we restart servers on their settings
changes only.
2023-07-11 16:36:20 +03:00
Piotr Osiewicz
15010e94fd fixup! recent_projects: Perform fuzzy search on compacted paths. 2023-07-11 15:29:15 +02:00
Piotr Osiewicz
f164eb5289 recent_projects: Perform fuzzy search on compacted paths.
Match highlighting for recent projects picker was off, because the path representation was compacted - for a path '/Users/hiro/Projects/zed' we compact it to use a tilde instead of home directory. However, the highlight positions were always calculated for a full path, leading to a mismatch in highlights.
This commit addresses this by running fuzzy search on compacted paths instead of using long paths. This might lead to a slight performance hit, but given that recent projects modal shouldn't have that many items in the first place, it should be okay.

Z-2546
2023-07-11 15:23:17 +02:00
Piotr Osiewicz
1fbf09fe4c branches: Add a modal branch list. (#2697)
Extract branch list into a separate vcs_menu crate akin to
recent_projects. Add current bind for a modal branch to branch popover's
tooltip.

Z-2555

Release Notes:
- N/A
2023-07-11 14:40:00 +02:00
Piotr Osiewicz
a1fe5abeaf Add rudimentary PHP syntax highlighting 2023-07-11 12:31:20 +02:00
Piotr Osiewicz
3c1ab3d0b8 Piotr/z 2590 search result marks jump around in scrollbar as cursor (#2700)
This closes ticket Z-2590 reported by @JosephTLyons . Thanks Joseph =)
Release Notes:

- N/A
2023-07-11 09:40:00 +02:00
Piotr Osiewicz
4125e7eccc editor: Keep scrollbar up if there are selections (#2698)
Z-2556

/cc @JosephTLyons 

Release Notes:

- N/A
2023-07-11 09:32:34 +02:00
Piotr Osiewicz
e83afdc5ab Rename background_highlights_in_range_for_key to background_highlights_in_range_for 2023-07-11 09:31:08 +02:00
Piotr Osiewicz
4f60679861 Highlight only search results 2023-07-11 09:28:34 +02:00
KCaverly
dce72a1ce7 updated tests to accomodate for new dot location 2023-07-10 18:19:29 -04:00
KCaverly
307d8d9c8d Reduced redundant database connections on each worktree change.
Co-authored-by: maxbrunsfeld <max@zed.dev>
2023-07-10 17:50:19 -04:00
KCaverly
82079dd422 Updated batching to accomodate for full flushes, and cleaned up reindexing.
Co-authored-by: maxbrunsfeld <max@zed.dev>
2023-07-10 16:33:14 -04:00
Sergey Onufrienko
fbf1552be9 Add color_family to theme 2023-07-10 20:41:39 +01:00
Piotr Osiewicz
a6d713eb3d editor: Keep scrollbar up if there are selections
Z-2556
2023-07-10 17:44:27 +02:00
Piotr Osiewicz
e00e73f608 branches: Add a modal branch list.
Extract branch list into a separate vcs_menu crate akin to recent_projects.
Add current bind for a modal branch to branch popover's tooltip.

Z-2555
2023-07-10 17:18:12 +02:00
Nate Butler
6739c31594 Update assistant styles (#2665)
Updates the assistant with some style quality of life changes.

## Changes

Restyled the conversation list

<img width="646" alt="CleanShot 2023-07-10 at 10 25 23@2x"
src="https://github.com/zed-industries/zed/assets/1714999/5c9a4f94-11c1-4d28-8aac-4d38141829a9">

Updated the assistant header to be a bit more compact, and use a new tab
bar icon style. The existing tab bar icons will be updated in a later
PR.

<img width="646" alt="CleanShot 2023-07-10 at 10 26 30@2x"
src="https://github.com/zed-industries/zed/assets/1714999/3ef9a053-59fa-4d34-9b76-3bb2701acb33">

Updated the remaining token indicator to have 3 steps:
<img width="662" alt="CleanShot 2023-07-10 at 10 29 51@2x"
src="https://github.com/zed-industries/zed/assets/1714999/13d31545-5b00-427c-b7da-b4dfeac037d6">

Updated role labels, added a hover state to make it more clear these are
interactive
<img width="984" alt="CleanShot 2023-07-10 at 10 32 28@2x"
src="https://github.com/zed-industries/zed/assets/1714999/24748495-dde4-4ee9-98f1-6a082f0c1d4d">


Release Notes:

- Improved the UI of some elements in the Assistant panel.
2023-07-10 10:54:20 -04:00
Piotr Osiewicz
a75a7e2b1d Add tooltip to recent projects button (#2694)
Z-2545

Release Notes:

- N/A
2023-07-10 16:53:50 +02:00
Piotr Osiewicz
92a0a4e367 Add styles for branch create button 2023-07-10 16:51:18 +02:00
Nate Butler
273b9e1636 Avoid overlapping the scrollbar 2023-07-10 10:44:39 -04:00
Nate Butler
9ffe220def Update tab_bar_button.ts 2023-07-10 10:24:24 -04:00
Nate Butler
4029481fd0 Merge branch 'main' into update-assistant-styles 2023-07-10 10:22:18 -04:00
Nate Butler
f0cddeb478 Update zoom icons 2023-07-10 10:09:59 -04:00
KCaverly
0189742497 pulled treesitter parsing to own file for ease of testing and management 2023-07-10 10:06:07 -04:00
Piotr Osiewicz
3318896ad9 Display key bind of a modal project picker 2023-07-10 14:29:30 +02:00
Piotr Osiewicz
6c8cb6b2a9 project_search: display result count on cmd-enter
It also focuses the first result (just like a normal enter).
2023-07-10 14:21:55 +02:00
Piotr Osiewicz
6e24ded2bc collab_ui: Add tooltip to branches popover (#2695)
Z-2554

Release Notes:

- N/A
2023-07-10 14:20:12 +02:00
Joseph T. Lyons
52a497be21 Remove code block for GitHub release notes
Discord can directly render the Markdown now.
2023-07-08 18:03:18 -04:00
Conrad Irwin
b4b0f622de Rebuild vim search experience on refactored code 2023-07-07 15:57:54 -06:00
Conrad Irwin
232d14a3ae Make search less magic
Co-Authored-By: Antonio <antonio@zed.dev>
2023-07-07 15:57:54 -06:00
Conrad Irwin
dea728a7e5 Better waiting in tests 2023-07-07 15:57:54 -06:00
Conrad Irwin
6cf13c62d1 vim: ? to search backwards, and /<enter> to repeat search 2023-07-07 15:57:52 -06:00
Conrad Irwin
d70f415e8e vim: add gD to go to type definition 2023-07-07 15:57:37 -06:00
Conrad Irwin
dbec2ed1f1 vim: add */#/g*/g# for jumping to next word
As in vim, this toggles the normal search experience.
2023-07-07 15:57:35 -06:00
Conrad Irwin
96ce0bb783 vim: Enter/n/N to navigate search results 2023-07-07 15:57:14 -06:00
Conrad Irwin
2ffce24ef0 vim: Don't enter visual mode in search/go to definition
Fixes: zed-industries/community#1514
Contributes: zed-industries/community#1284
2023-07-07 15:56:37 -06:00
Conrad Irwin
75fe77c11d search: Allow running a search with different options
Refactor search options to use bitflags so that we can represent
the entire set of settings in one place.
2023-07-07 15:56:37 -06:00
Conrad Irwin
20d8a2a1ec vim: indent in visual mode uses only one <
Fixes: zed-industries/community#1562
2023-07-07 15:56:35 -06:00
Conrad Irwin
460bf93866 vim: { } to navigate by paragraph (#2668)
As part of this I added `assert_shared_state()` to the
NeovimBackedTestContext so that it is more like a drop-in replacement
for the VimTestContext.

The remaining part of zed-industries/community#682 is adding bracket
matching to plain text. It looks like the current logic requires there
to be a tree sitter language for the language in order to support
bracket matching. I didn't fix this in this PR because I was unsure
whether to try and work around that, or to try and add a plain text tree
sitter language.

Release Notes:

- vim: support `{` and `}` for paragraph motion
([#470](https://github.com/zed-industries/community/issues/470)).
- vim: fix `%` at the end of the line
([#682](https://github.com/zed-industries/community/issues/682)).
2023-07-07 14:59:06 -06:00
Conrad Irwin
362023ccf2 vim: keymap tweaks (#2674)
A few small tweaks to fix some of the community issues

Release Notes:

- vim: Fix `escape` in command palette
([#1347](https://github.com/zed-industries/community/issues/1347)).
- vim: Allow `^` as a motion in actions
([#856](https://github.com/zed-industries/community/issues/856)).
- vim: Allow `ctrl-c` to exit visual mode
([#1447](https://github.com/zed-industries/community/issues/1447)).
2023-07-07 14:58:01 -06:00
Julia
da7dce79f6 Prevent duplicate instances by coordinating via a socket (#2691)
We've been getting a bunch of panics from duplicate app instances
competing over the local sqlite DB. After chatting with @mikayla-maki we
determined it was probably best to add our own mechanism to prevent
duplicates rather than just relying on the OS. My logic is that we'd
need to build a system like this eventually for Windows/Linux anyway so
it's more appealing than reworking our local DB access to be able to
cooperate with another process while likely isn't something we want to
support anyway.

I attempted to keep this mechanism conservative so in the case of
another program interfering with it we should fail somewhat gracefully
and still continue to launch, albeit without the ability to prevent
another instance from launching.

Fixes
https://linear.app/zed-industries/issue/Z-2435/thread-background-executor-1-panicked-at-could-not-send-write-action

Release Notes:
- Added a mechanism to prevent duplicate Zed instances from launching to
avoid a crash.
2023-07-07 14:38:55 -04:00
KCaverly
3f5667b101 merged main 2023-07-07 14:24:29 -04:00
Julia
caa29d57c2 Avoid checking for duplicate instance when local DB is disabled 2023-07-07 14:20:39 -04:00
Julia
b70b76029e Use different port and handshake for different release channels 2023-07-07 14:20:39 -04:00
Julia
66bf56fc4f Prevent duplicate instances by coordinating via a socket 2023-07-07 14:19:44 -04:00
Piotr Osiewicz
4a69c71167 fixup! vcs: Add 'create branch' button 2023-07-07 18:37:53 +02:00
Piotr Osiewicz
cb24cb1ea5 vcs: Add 'create branch' button 2023-07-07 18:36:55 +02:00
Piotr Osiewicz
d69b07bafd Add tooltip to recent projects button
Z-2545
2023-07-07 16:30:19 +02:00
Piotr Osiewicz
abf3b4a54e chore: Replace lazy_static Mutex with const. (#2693)
Mutex::new() is const-stable as of Rust 1.63.

Release Notes:
- N/A
2023-07-07 15:07:12 +02:00
Antonio Scandurra
79ece8a86e Skip key down event if preceded by its key equivalent version (#2692)
Fixes
https://linear.app/zed-industries/issue/Z-2552/pressing-two-keystrokes-in-rapid-succession-ignores-the-latter

Previously, we would only track whether the previous key down event was
a key equivalent. However, this could cause issues when pressing certain
keystrokes in rapid succession, e.g.:

- Pressing `shift-right` (to select a character, dispatched as a key
equivalent)
- Pressing a character (with or without `shift` held down, dispatched as
a key down)

This would cause GPUI to ignore the second event because it was preceded
by a key equivalent event. With this commit, we track the last key
equivalent event, and skip the key down event only if it matches the
last key equivalent event.

Release Notes:

- Fixed a bug that could cause certain keystrokes performed in rapid
succession to incorrectly get ignored.
2023-07-07 12:13:32 +02:00
Antonio Scandurra
318deed25b Skip key down event if preceded by its key equivalent version
Previously, we would only track whether the previous key down event
was a key equivalent. However, this could cause issues when pressing
certain keystrokes in rapid succession, e.g.:

- Pressing `shift-right` (to select a character)
- Pressing a character (with or without `shift` held down)

This would cause GPUI to ignore the second event because it was
preceded by a key equivalent event. With this commit, we track the
last key equivalent event, and skip the key down event only if it
matches the last key equivalent event.
2023-07-07 12:02:08 +02:00
KCaverly
c03dda1a0c fixed bug on absolute vs relative path 2023-07-06 17:15:41 -04:00
KCaverly
6f1e988cb9 updated embedding treesitter query for python 2023-07-06 16:36:28 -04:00
KCaverly
7d634f66e2 updated vector_store to include extra context for semantic search modal 2023-07-06 16:33:54 -04:00
Kirill Bulatov
4ab2b8b24b Restart LSP server on corresponding initialization_options change (#2690)
Inlay hints depend on LSP server settings, but servers do not update the
initialization options and query hints with old settings.

Generally, we cannot know whether a certain option can be changed
without server restart, which the name of the options implies too, so be
on the safe side and restart the server.
Hints will update automatically after the server either sends a /refresh
request or reports its work progress end after startup.

Release Notes:

- Fixed LSP server not restarting after `initialization_options`
settings changes
2023-07-06 23:32:34 +03:00
Kirill Bulatov
e6ec0af743 Remove redundant hint kind checks in tests 2023-07-06 23:27:25 +03:00
Kirill Bulatov
fff65968bf Restart LSP server on initialization options change 2023-07-06 23:27:22 +03:00
KCaverly
e57f6f21fe reindexing update to appropriately accomodate for buffer delay and persistent pending files list 2023-07-06 15:26:43 -04:00
Piotr Osiewicz
3ca0170264 Z 1332/show search results in scrollbar (#2687)
This PR adds highlighting of search results to the scrollbar.

Release Notes:

- Added highlighting of search results to the scrollbar.
2023-07-06 19:28:21 +02:00
KCaverly
a86b6c42c7 corrected batching order and managed for open ai embedding errors 2023-07-06 11:11:39 -04:00
Nate Butler
793eff1695 Update scrollbar selection style 2023-07-06 10:54:47 -04:00
Antonio Scandurra
b4ed0347b4 Filter out non-json files when loading conversations (#2688)
Fixes
https://linear.app/zed-industries/issue/Z-2540/filter-out-non-conversation-files-from-the-assistant-history
2023-07-06 16:51:52 +02:00
Kirill Bulatov
2c7e5e0671 Clip find preceding boundary (#2689)
Fixes inability to do `alt + left arrow` when an inlay with `Bias::Left`
is right to the left of the caret.

Release Notes:

- N/A
2023-07-06 17:24:03 +03:00
Kirill Bulatov
11ae99fbd6 Add a test 2023-07-06 17:16:34 +03:00
Antonio Scandurra
708852aa00 Clip left when finding preceding (line) boundary
This fixes an issue that was causing `alt-left` to not move the cursor
when it was located right after an inlay hint with a `Left` bias.
2023-07-06 16:25:27 +03:00
Kirill Bulatov
348c93e8bb Show inlay hints on startup for every language server with work events (#2686)
Closes https://linear.app/zed-industries/issue/Z-2537/inlay-hint-issues

Language servers such as typescript-language-servers report a single
work event, ending right after server's startup.

Other servers might send more similar event, also during startup. The
rest of the events are diagnostic-related and we filter them out.

React on such events with /refresh-like hint update, that will check
only the visible part of the editor for hints and might be replaced by
other /refresh requests, if needed.

Release Notes:

- N/A
2023-07-06 16:18:22 +03:00
Antonio Scandurra
5408275c7a Filter out non-json files when loading conversations 2023-07-06 14:38:05 +02:00
Piotr Osiewicz
3e245fec90 Save a flushing line instead of discarding it 2023-07-06 13:52:03 +02:00
Piotr Osiewicz
5e7d9dc718 Add hunk merging 2023-07-06 13:31:45 +02:00
Piotr Osiewicz
b66453e771 fixup! Do not render multiple hunks for the same line 2023-07-06 12:11:08 +02:00
Kirill Bulatov
0b0a161626 Show inlay hints on startup for every language server with work events
Language servers such as typescript-language-servers report a single
work event, ending right after server's startup.

Other servers might send more similar event, also during startup.
The rest of the events are diagnostic-related and we filter them out.

React on such events with /refresh-like hint update, that will check
only the visible part of the editor for hints and might be replaced by
other /refresh requests, if needed.
2023-07-06 13:10:59 +03:00
Piotr Osiewicz
492b849ea1 Do not render multiple hunks for the same line 2023-07-06 12:09:33 +02:00
Piotr Osiewicz
8ced7ab00a Merge branch 'main' into Z-1292/show_search_results_in_scrollbar 2023-07-06 11:43:44 +02:00
Kirill Bulatov
c298cf7527 Use less padding for typescript parameter hints (#2684)
Part of https://linear.app/zed-industries/issue/Z-2537/inlay-hint-issues

Release Notes:

- N/A
2023-07-06 11:23:20 +03:00
Kirill Bulatov
1936bdebb3 Use less padding for typescript parameter hints 2023-07-06 11:16:39 +03:00
Antonio Scandurra
dd6629416c Fix panic when saved conversations directory changes (#2685)
Fixes
https://linear.app/zed-industries/issue/Z-2542/deleting-assistant-conversations-with-zed-open-can-cause-a-crash

We were updating the view's state but missed a `notify`, which caused
the `UniformList` responsible for rendering the saved conversations to
panic when some files were deleted.

Release Notes:

- Fixed a crash that could happen when deleting a saved assistant
conversation from the filesystem.
2023-07-06 10:06:43 +02:00
Antonio Scandurra
f6c96ec892 Fix panic when saved conversations directory changes
We were updating the view's state but missed a `notify`, which caused
the `UniformList` responsible for rendering the saved conversations
to panic when some files were deleted.
2023-07-06 09:53:34 +02:00
Mikayla Maki
801f41e68e Move audio dependency to dev 2023-07-05 12:15:56 -07:00
Mikayla Maki
8b8bafef22 Remove spurious audio depedency 2023-07-05 12:05:16 -07:00
Mikayla Maki
594b6e8d64 collab 0.16.0 2023-07-05 11:47:17 -07:00
Joseph T. Lyons
6a15ae9c01 v0.95.x dev 2023-07-05 14:17:37 -04:00
Nate Butler
76873c508a Z-2276/Z-2275: Project & Branch switchers (#2662)
This PR adds project and branch switchers in top left corner. 

Release Notes:
- Added a project & branch switcher under project name.
2023-07-05 13:09:40 -04:00
Piotr Osiewicz
b80281e556 cargo fmt 2023-07-05 18:57:06 +02:00
Nate Butler
1baa13561d Update project & git menus to be Toggleable<Interactive<ContainedText>>
Co-Authored-By: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
2023-07-05 12:50:56 -04:00
KCaverly
afccf608f4 updated both embed and parsing tasks to be multi-threaded. 2023-07-05 12:39:08 -04:00
Nate Butler
de01fa1794 Update collaboration sounds, add sounds to screensharing (#2679)
Updates all collab sounds, add screen sharing sounds.

Release Notes:

- Improved collaboration sounds for joining and leaving a call, muting
and unmuting the mic.
- Added a sound when you start and stop screen sharing.
2023-07-05 12:30:47 -04:00
Piotr Osiewicz
0e0d78df84 Do not render recent paths in toolbar's project switcher 2023-07-05 18:04:40 +02:00
Piotr Osiewicz
ec47464bba branch_list: Show match count on the right hand side of a header.
Co-authored-by: Antonio <antonio@zed.dev>
2023-07-05 16:56:08 +02:00
Piotr Osiewicz
85add260f6 Track regions instead of clicks.
Get rid of superfluous params in RenderParams related to hover & click state.

Co-authored-by: Antonio <antonio@zed.dev>
2023-07-05 16:48:52 +02:00
KCaverly
eff0ee3b60 enabled batching for embedding calls 2023-07-05 10:02:42 -04:00
Kirill Bulatov
91a94d299e Simplify inlay map data (#2683)
Current logic does not need to access inlays by id in O(1), future
dynamic hints would need to know which hint they hover at, but that will
be done using binary search over the position's anchor we hover on;
nothing else seems to need this HashMap in the near future.

Because of that removal, no need to store `InlayId` apart from the
`Inlay`, hence remove the `InlayProperties` struct entirely.
This allows to eliminate a few generics along the way.

Release Notes:

- N/A
2023-07-05 16:31:47 +03:00
Piotr Osiewicz
cc88bff1ff Fix click-through behaviour of git panel
Co-authored-by: Antonio <antonio@zed.dev>
2023-07-05 15:25:33 +02:00
Kirill Bulatov
d7f6b5e1a0 Remove InlayProperties 2023-07-05 16:17:14 +03:00
Kirill Bulatov
6ba1c3071a Simplify inlay map data 2023-07-05 15:23:56 +03:00
Piotr Osiewicz
8b3b1a6074 fixup! Remove stacks from branch list header 2023-07-05 14:08:21 +02:00
Piotr Osiewicz
64b77bfa8d Remove stacks from branch list header
Co-authored-by: Antonio <antonio@zed.dev>
2023-07-05 14:04:16 +02:00
Antonio Scandurra
5505ebf4bc Support assistant: quote selection on multibuffers (#2682)
Fixes
https://linear.app/zed-industries/issue/Z-2430/assistant-quote-selection-does-not-work-in-multi-buffer

Release Notes:

- Added support for invoking `assistant: quote selection` (`cmd->`) when
editing a multi-buffer.
2023-07-05 11:49:03 +02:00
Antonio Scandurra
d5f0df94f7 Support assistant: quote selection on multibuffers 2023-07-05 11:41:24 +02:00
Antonio Scandurra
1914037922 Restore focus to previously focused view when dismissing a modal (#2680)
Fixes
https://linear.app/zed-industries/issue/Z-2500/focus-is-moved-from-the-assistant-panel-when-opening-and-closing

Release Notes:

- Fixed a bug that caused modals (such as the command palette) to not
restore focus when dismissing them.
2023-07-05 11:37:45 +02: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
Antonio Scandurra
25564ea058 Introduce a WindowContext::focus method that implies the window id 2023-07-05 09:39:04 +02:00
Nate Butler
a7ce602bac Update collaboration sounds, add sounds to screensharing 2023-07-04 16:18:42 -04:00
Kirill Bulatov
31483db5d8 Accept null as a valid action, to disable a keystroke (#2678)
Deals with https://github.com/zed-industries/community/issues/772
Closes
https://linear.app/zed-industries/issue/Z-1518/allow-keybindings-to-be-removed

Now, configuration like 
```json5
[
    {
        "context": "Editor",
        "bindings": {
            "alt-v": null,
        }
    }
]
```

will make `alt+v` to print `√` instead of moving the caret one page up.

Release Notes:

- Added a way to disable keybindings with `null` value
2023-07-04 21:51:46 +03:00
KCaverly
b6520a8f1d updated vector_store to reindex on save after timed delay 2023-07-04 14:42:12 -04:00
Kirill Bulatov
4c51ab8a25 Accept null as a valid action, to disable a keystroke
co-authored-by: Mikayla Maki <mikayla@zed.dev>
2023-07-04 21:11:28 +03:00
Nate Butler
76af424d79 Rename color_scheme -> theme (#2677)
Just some theme tidying, renames some things to be more consistent with
our planned naming conventions going forward.

Release Notes:

- N/A (No public facing changes)
2023-07-04 11:56:30 -04:00
KCaverly
e45d3a0a63 WIP: initial reindexing logic worked out 2023-07-04 11:46:09 -04:00
Piotr Osiewicz
48371ab8b2 Remove PickerEvent::Dismiss emission from picker header 2023-07-04 16:30:17 +02:00
Piotr Osiewicz
e9b34de7c8 Fix click behaviour of vcs/project dropdowns 2023-07-04 16:00:59 +02:00
Conrad Irwin
0d18b72cf8 vim: Further improve ~ handling
Now works with Visual{line} mode, collapses selections like nvim,
and doesn't fall off the end of the line.
2023-07-03 23:58:09 -06:00
Nate Butler
f461a70970 Remove unused ts aliases 2023-07-04 01:37:45 -04:00
Nate Butler
65dbb38926 color_scheme -> theme 2023-07-04 01:20:56 -04:00
Nate Butler
c5a42c317a Remove unused color_scheme field in the theme (#2676)
We removed the `theme_testbench` crate a while back - It seems like that
was the only thing using the `color_scheme` field in the exported theme.

Removing this from the theme removes something like 42k lines of
generated JSON every time we build the theme (2k lines / 28% of the
total lines per generated theme!)

Release Notes:

- N/A (No public facing changes)
2023-07-04 00:58:37 -04:00
Nate Butler
a732b2e043 Remove unused color_scheme field in the theme
I totally didn't mean to commit this right to main T_T
2023-07-04 00:44:12 -04:00
Nate Butler
c409059dc4 Revert "Remove unused color_scheme field in the theme"
This reverts commit 5a1476a1e5.
2023-07-04 00:41:13 -04:00
Nate Butler
5a1476a1e5 Remove unused color_scheme field in the theme 2023-07-04 00:40:01 -04:00
Nate Butler
0b4c5db5e2 Use theme store to pass color_scheme directly to components (#2675)
This PR adds a theme store to allow components to directly access the
theme without requiring it to be passed down as props every time it is
used.

So before, you might need to do something like `text(theme, "variant",
"hovered")`, you could now just call `text("variant", "hovered")`.

This also means that style_trees don't need to be called with a theme
either:

```ts
export default function app(): any {
    const theme = useTheme()

    return {
        meta: {
            name: theme.name,
            is_light: theme.is_light,
        },
        command_palette: command_palette(),
        contact_notification: contact_notification(),
        // etc...
    }
}
```

We do this by creating a zustand store to store the theme, and allow it
to be accessed with `useThemeStore.getState().theme`.

```ts
import { create } from "zustand"
import { ColorScheme } from "./color_scheme"

type ThemeState = {
    theme: ColorScheme | undefined
    setTheme: (theme: ColorScheme) => void
}

export const useThemeStore = create<ThemeState>((set) => ({
    theme: undefined,
    setTheme: (theme) => set(() => ({ theme })),
}))

export const useTheme = (): ColorScheme => {
    const { theme } = useThemeStore.getState()

    if (!theme) throw new Error("Tried to use theme before it was loaded")

    return theme
}
```

Release Notes:

- N/A (No public facing changes)
2023-07-04 00:37:45 -04:00
Nate Butler
8a5e7047f0 Update a few more components 2023-07-04 00:32:27 -04:00
Nate Butler
d5acfe8fc1 Use theme store to pass color_scheme directly to components 2023-07-04 00:13:04 -04:00
Conrad Irwin
0733e8d50f Remove editor::Cancel binding from vim
When you hit <escape> in the command palette, it first editor::Cancel
because the command palette is also a focused editor; this binding was
catching before the `menu::Cancel` that you probably want.

From looking at the uses of editor::Cancel it seems like the only way to
trigger this is with <escape> in an editor. Rather than trying to hook
into the existing editor cancel and add vim-specific behaviour, we'll
instead take responsibility for binding directly to <escape> when
necessary.

Fixes: zed-industries/community#1347
2023-07-03 15:26:39 -06:00
Mikayla Maki
f8316dd127 Add sound effects to calls (#2673)
This PR adds joined, leaving, mute, and unmute sound effects to Zed. 

Release Notes:

- Added joined, leaving, mute, and unmute sound effects (preview-only)
2023-07-03 13:55:48 -07:00
Mikayla Maki
c700342a1c Guard against uninstantiated globals in tests 2023-07-03 13:48:17 -07:00
Mikayla Maki
0e4c904091 Add joined sound effect when new participants join the room 2023-07-03 13:36:03 -07:00
Mikayla Maki
d2127825e3 Add first-pass sound support to Zed 2023-07-03 13:30:04 -07:00
Conrad Irwin
fe57e04016 vim: Allow ^ as a motion
Fixes: zed-industries/community#856
2023-07-03 12:55:41 -06:00
Conrad Irwin
b055f594b0 vim: ctrl-c to exit visual mode
Fixes: zed-industries/community#1447
Contributes: zed-industries/community#1089
2023-07-03 12:52:33 -06:00
Piotr Osiewicz
14eab4e94f branch list: dismiss correct window on PickerEvent.
Query proper window
2023-07-03 19:22:43 +02:00
Kirill Bulatov
6c01aeaf77 Do not perform OnTypeFormating after pair brace insert (#2672)
Closes
https://linear.app/zed-industries/issue/Z-2358/ra-brace-auto-surround-causes-duplicate-end-char-with-selection

Release Notes:

- Fixed a bug when duplicate brace appeared after selected text got
surrounded with braces
2023-07-03 17:26:55 +03:00
Piotr Osiewicz
806268f0db Merge branch 'main' into git-menu 2023-07-03 16:25:36 +02:00
Kirill Bulatov
85701c9b80 Do not perform OnTypeFormating after pair brace insert
Co-Authored-By: Julia Risley <julia@zed.dev>
2023-07-03 17:21:44 +03:00
Piotr Osiewicz
4eedc3e646 Remove flex from underneath the pickers 2023-07-03 16:16:14 +02:00
Kirill Bulatov
8efb66be67 Do not add extra spaces to hints (#2671)
Closes
https://linear.app/zed-industries/issue/Z-2526/inlay-hints-in-typescript-types-have-extra-space-before#comment-ac88a101

Release Notes:

- N/A
2023-07-03 11:18:07 +03:00
Kirill Bulatov
43d4f04331 Do not add extra spaces to hints 2023-07-03 11:17:12 +03:00
Conrad Irwin
e36d5f41c8 Fix % when on the last character of the line
Contributes: zed-industries/community#682
2023-07-01 13:51:11 -06:00
Piotr Osiewicz
026ad191eb Dismiss dropdowns on click out 2023-07-01 01:49:00 +02:00
Piotr Osiewicz
525521eeb3 Render match count next to branch label 2023-07-01 01:38:36 +02:00
Mikayla Maki
138de37cbf Add basic sound handling infrastructure 2023-06-30 16:10:49 -07:00
KCaverly
18a5a47f8a moved semantic search model to dev and preview only.
moved db update tasks to long lived persistent task.

Co-authored-by: maxbrunsfeld <max@zed.dev>
2023-06-30 18:41:19 -04:00
KCaverly
3408b98167 updated file compare in the semantic indexing engine, to work off of modified system times as opposed to file hashes
Co-authored-by: maxbrunsfeld <max@zed.dev>
2023-06-30 16:53:23 -04:00
KCaverly
36907bb4dc updated vector store indexing to only use languages with an embedding.scm treesitter query
Co-authored-by: maxbrunsfeld <max@zed.dev>
2023-06-30 16:14:11 -04:00
Kirill Bulatov
e017d62e92 Remove excessive hint update queries (#2667)
Closes
https://linear.app/zed-industries/issue/Z-2513/panic-in-refresh-inlay-hints

* Filter out queries for outdated buffers just before hint tasks spawn:
  multicaret edits might emit standalone events simultaneously
* Only spawn inlay update tasks for visible buffers with corresponding
  language
* Do not spawn tasks for local projects' buffers without LSP servers

Release Notes:

- N/A
2023-06-30 22:15:36 +03:00
Kirill Bulatov
ae54e1d224 Remove excessive hint update queries
* Filter out queries for outdated buffers just before hint tasks spawn:
  multicared edits might empit standalone events simultaneously
* Only spawn inlay update tasks for visible buffers with corresponding
  language
* Do not spawn tasks for local projects' buffers without LSP servers
2023-06-30 22:03:21 +03:00
Max Brunsfeld
f83514cde4 Fix regression in handling git FS events (#2670)
As part of an optimization in
https://github.com/zed-industries/zed/pull/2663, I changed the way that
the worktree ignores FS events within unloaded directories. But this
accidentally prevented us from detecting some events that occur inside
of `.git` directories.

In this PR, I've made further tweaks to which FS events we can ignore.
We now explicitly opt *in* to scanning `.git` (shallowly) directories
(even though they are ignored). Note that we still don't recursively
scan the git directory (including all of the files inside `objects`
etc). This seems like the correct amount of work to do, and from my
testing (and our unit tests that use the real FS and real git
repositories), it seems to work correctly.

Release Notes:

- Fixed a bug where Zed would not detect some git repository changes
(preview only).
2023-06-30 11:40:49 -07:00
Max Brunsfeld
92df76e632 Fix accidental ignoring of git FS events 2023-06-30 11:20:50 -07:00
Piotr Osiewicz
7c2c1a279b Add missing rust-side definitions 2023-06-30 20:09:30 +02:00
Piotr Osiewicz
cec884b5a5 Add styles for project name/git menu 2023-06-30 20:07:44 +02:00
Piotr Osiewicz
a5d9a10d7b Focus dropdowns on open 2023-06-30 19:48:28 +02:00
Joseph T. Lyons
6042cf928c Fix bug preventing the assist command from working in certain keymaps (#2669)
Fixes: https://github.com/zed-industries/community/issues/1712

The keymaps were adding in a `"cmd-enter": "editor::NewlineBelow",`
entry in the context of `Editor`, and this was clobbering the assist
command in the assistant panel context. Zed now defines this command in
the default keymap under the context of `"context": "Editor && mode ==
full"`. All I needed to basically do was remove that command from the
keymaps. I also removed the `"cmd-shift-enter": "editor::NewlineAbove"
from the `Editor` context in those keymaps as wel, as it is also defined
in the default keymap.

Release Notes:

- Fix bug preventing the `assistant: assist` command from working in
certain keymaps
2023-06-30 13:32:42 -04:00
Joseph T. Lyons
4a654f5252 Fix bug preventing the assist command from working in certain keymaps 2023-06-30 13:27:48 -04:00
KCaverly
0db0876289 implemented file deletes on project indexing 2023-06-30 11:01:35 -04:00
Mikayla Maki
a9c1395b9b WIP: Add the ability to make new directories by adding slashes to a file name (#2638)
This PR adds a new way to make files / directories in the project panel,
by writing a path instead of a file.

TODO:
- [x] Solve a race condition that sometimes causes the newly created
file to not be selected / expanded correctly.
- [x] Change file refreshes to be minimal

Release Notes:

- Adds the ability to create new folders in the create-file action
([743](https://github.com/zed-industries/community/issues/743))
2023-06-30 07:46:32 -07:00
Piotr Osiewicz
ed75c31640 Improve styling of git menu 2023-06-30 16:38:38 +02:00
Piotr Osiewicz
b699e5c142 Add styles to git menu 2023-06-30 16:23:27 +02:00
KCaverly
e3ab54942e removed sleep from directory scanning as fixes upstream appear to be scanning correctly 2023-06-30 10:17:31 -04:00
KCaverly
1d737e490b Merge branch 'main' of github.com:zed-industries/zed into vector_store 2023-06-30 09:58:13 -04:00
Piotr Osiewicz
3be8977ee8 Switch branches within spawn() 2023-06-30 14:05:55 +02:00
Piotr Osiewicz
c1a6292152 Add missing call to cx.notify 2023-06-30 14:05:55 +02:00
Piotr Osiewicz
081e340d26 Do not query db on foreground thread.
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-06-30 14:05:55 +02:00
Piotr Osiewicz
818ddbc703 Make project dropdown exclusive wrt git menu 2023-06-30 14:05:55 +02:00
Piotr Osiewicz
888d3b3fd6 Project dropdown menu 2023-06-30 14:05:55 +02:00
Piotr Osiewicz
d000ea9739 Fix warning about unused variable 2023-06-30 14:05:55 +02:00
Piotr Osiewicz
1eb0f3d091 Update toast for checkout failure 2023-06-30 14:05:55 +02:00
Piotr Osiewicz
98f71a7fa3 Trail off project/branch name 2023-06-30 14:05:55 +02:00
Piotr Osiewicz
e57364ede6 Remove unnecessary imports 2023-06-30 14:05:55 +02:00
Piotr Osiewicz
aeafa6f6d6 Fix build after rebase 2023-06-30 14:05:55 +02:00
Piotr Osiewicz
c84f3b3bfc Add toast for git checkout failure 2023-06-30 14:05:55 +02:00
Piotr Osiewicz
54fad5969f List recent branches 2023-06-30 14:05:55 +02:00
Piotr Osiewicz
3027e4729a Add timestamps to branches 2023-06-30 14:05:55 +02:00
Piotr Osiewicz
6747acbb84 Trail off branch names 2023-06-30 14:05:55 +02:00
Piotr Osiewicz
ac6e9c88e9 Render header and footer of git menu 2023-06-30 14:05:55 +02:00
Piotr Osiewicz
d8d0bdc479 WIP: git menu 2023-06-30 14:05:55 +02:00
Mikayla Maki
3d6e063a6d Fix method header 2023-06-29 23:53:57 -07:00
Mikayla Maki
d22a576f5e fix failing test 2023-06-29 23:50:24 -07:00
Conrad Irwin
abb58c41db vim: Fix edge-case in } when trailing newline is absent
Added .assert_shared_state() to NeovimBackedTestContext – although it's
not strictly necessary to show the expected behaviour in the test file
(as we can just compare to neovim's JSON recording), it makes it much
easier to understand what we're testing.
2023-06-29 23:31:22 -06:00
Conrad Irwin
9ee2707d43 vim: Add }/{ for start/end of paragraph
Fixes: zed-industries/community#470
2023-06-29 23:31:22 -06:00
Mikayla Maki
a9a51ab3ad Added more tests and minimal file updates 2023-06-29 18:21:35 -07:00
Mikayla Maki
a6dabf7acf Make path updates minimal 2023-06-29 18:15:40 -07:00
Mikayla Maki
787412b545 fmt and update dependency 2023-06-29 17:49:42 -07:00
Mikayla Maki
cd670e340f Fix edge case with absolute file paths 2023-06-29 17:48:01 -07:00
Mikayla Maki
33f5248d4f Add the ability to make new directories by adding slashes to a file name 2023-06-29 17:35:22 -07:00
Mikayla Maki
f6b64dc67a Add click out events to GPUI (#2659)
This PR adds a new mouse event type for catching when a click happens
outside of a given region.

This was added because I noticed a 'race condition' between the context
menu and the buttons which deploy a context menu. Buttons use on
an`on_click()` handler to deploy the context menu, but the context menu
was closing itself with an `on_down_out()` handler. This meant that the
order of operations was:

0. Context menu is open
1. User presses down on the button, _outside of the context menu_ 
2. `on_down_out()` is fired, closing the context menu
3. User releases the mouse
4. `click()` is fired, checks the state of the context menu, finds that
it's closed, and so opens it

You can see this behavior demonstrated with this video with a long-click
here:


https://github.com/zed-industries/zed/assets/2280405/588234c3-1567-477f-9a12-9e6a70643527

~~Switching from `on_down_out()` to `on_click_out()` means that the
click handler for the button can close the menu before the context menu
gets a chance to close itself.~~

~~However, GPUI does not have an `on_click_out()` event, hence this
PR.~~

~~Here's an example of the new behavior, with the same long-click
action:~~


https://github.com/zed-industries/zed/assets/2280405/a59f4d6f-db24-403f-a281-2c1148499413

Unfortunately, this `click_out` is the incorrect event for this to
happen on. This PR now adds a mechanism for delaying the firing of a
cancel action so that toggle buttons can signal that this on_down event
should not result in a menu closure.

Release Notes:

* Made context menus deployed from buttons toggle, instead of
hide-and-re-show, visibility on click
2023-06-29 17:33:37 -07: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
Nate Butler
530561e4eb Extract assistant tool buttons into tab_bar_button 2023-06-29 18:13:31 -04:00
Nate Butler
77b120323b Add low_tokens_remaining case to the assistant 2023-06-29 17:44:47 -04:00
Nate Butler
d6112e4a59 Add doc comments for ColorScheme layer properties 2023-06-29 17:32:19 -04:00
Nate Butler
2678dfdc57 Update assistant styles 2023-06-29 17:32:04 -04:00
Kirill Bulatov
167dd1c5d2 Support basic inlay hints (#2660)
Part of https://github.com/zed-industries/community/issues/138
Part of https://linear.app/zed-industries/issue/Z-477/inlay-hints

Supports LSP requests for inlay hints, LSP /refresh request to reload
them.
Reworks DisplayMap and underlying layer to unite suggestions with inlay
hints into new, `InlayMap`.
Adds a hint cache inside `Editor` that tracks buffer/project/LSP request
events, updates the hints and ensures opened editors are showing up to
date text hints on top.

Things left to do after this PR:
* docs on how to configure inlay hints
* blogpost
* dynamic hints: resolve, hover, navigation on click, etc.

Release Notes:

- Added basic support of inlay hints
2023-06-29 22:49:39 +03:00
Kirill Bulatov
b146762f68 Remove a flacky test, fix the failing one 2023-06-29 22:45:04 +03:00
Kirill Bulatov
652909cdba Post-rebase fixes 2023-06-29 22:39:33 +03:00
Kirill Bulatov
3445bc42b6 Invalidate refresh tasks better 2023-06-29 22:39:18 +03:00
Kirill Bulatov
98edc0f885 Simplify the hint cache code 2023-06-29 22:39:18 +03:00
Kirill Bulatov
083e4e76e2 Better tests, invalidate multibuffer excerpts better 2023-06-29 22:39:18 +03:00
Kirill Bulatov
943c93fda7 Simplify hint task queueing 2023-06-29 22:39:18 +03:00
Kirill Bulatov
30e77aa388 More inlay hint cache tests 2023-06-29 22:39:18 +03:00
Kirill Bulatov
429a9cddae Use fold points to go to display map's prev/next line boundary
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-29 22:39:18 +03:00
Kirill Bulatov
bb9ade5b6f Fix wrap map test
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-29 22:39:18 +03:00
Kirill Bulatov
2b59f27c3b Fix fold map tests
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-29 22:39:18 +03:00
Kirill Bulatov
0972766d1d Add more hint tests 2023-06-29 22:39:18 +03:00
Kirill Bulatov
15e0feb91d Move highlights from fold to inlay randomized tests 2023-06-29 22:39:18 +03:00
Kirill Bulatov
667b70afde Move hint settings on the language level 2023-06-29 22:39:18 +03:00
Kirill Bulatov
480d8c511b Theme hints and suggestions differently 2023-06-29 22:39:18 +03:00
Kirill Bulatov
3312c9114b Improve inlay hint highlights
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-29 22:39:18 +03:00
Kirill Bulatov
2c54d926ea Test inlay hint cache 2023-06-29 22:39:18 +03:00
Nate Butler
143a020694 Update Hint Style
zzz
2023-06-29 22:39:17 +03:00
Kirill Bulatov
67214f0e55 Only skip /refresh inlay queries when vislble range is not updated 2023-06-29 22:25:50 +03:00
Kirill Bulatov
096bad1f73 Revert useless changes, simplify 2023-06-29 22:25:50 +03:00
Antonio Scandurra
f77b680db9 Account for inlay biases when clipping a point 2023-06-29 22:25:50 +03:00
Antonio Scandurra
976edfedf7 Add Cursor::next_item 2023-06-29 22:25:50 +03:00
Kirill Bulatov
5c21ed4263 Properly filter out task hints 2023-06-29 22:25:50 +03:00
Kirill Bulatov
dfb30218ca Remove mutex usage from *Map contents 2023-06-29 22:25:50 +03:00
Kirill Bulatov
acef5ff195 Query hints when editors gets open and visible 2023-06-29 22:25:50 +03:00
Kirill Bulatov
11fee4ce42 Do not eagerly cancel running tasks 2023-06-29 22:25:49 +03:00
Kirill Bulatov
4d4544f680 Split excerpts into mutliple ranges for inlay hint queries 2023-06-29 22:25:49 +03:00
Kirill Bulatov
2c7900e11b Use excerpt visible range in query filtering 2023-06-29 22:25:49 +03:00
Kirill Bulatov
83b3a914bc Support better inlay cache parallelization 2023-06-29 22:25:49 +03:00
Kirill Bulatov
890b164278 Forward inlay hint refresh requests to clients, test coop inlay hints 2023-06-29 22:25:49 +03:00
Kirill Bulatov
a68e68a0d9 Properly filter out new hints outside of excerpts' visible ranges 2023-06-29 22:25:49 +03:00
Kirill Bulatov
ba3d1e4dba Deduplicate inlay hints queries with buffer versions 2023-06-29 22:25:49 +03:00
Kirill Bulatov
f25a09bfd8 Avoid excessive allocations with Arc around excerpt cached inlays 2023-06-29 22:25:49 +03:00
Kirill Bulatov
48982c3036 Filter away new hints not in excerpt range 2023-06-29 22:25:49 +03:00
Kirill Bulatov
316e19ce94 Remove stale cancelled inlay hints workaround 2023-06-29 22:25:49 +03:00
Kirill Bulatov
96a34ad0ee Use text anchors as hint position in hints cache
co-authored-by: Max Brunsfeld <max@zed.dev>
2023-06-29 22:25:49 +03:00
Kirill Bulatov
781fa0cff4 Deduplicate LSP requests on multibuffer scroll 2023-06-29 22:25:49 +03:00
Kirill Bulatov
c61de29c11 Use proper anchors for remote LSP queries 2023-06-29 22:25:49 +03:00
Kirill Bulatov
cb4b92aa61 Simplify hint event management slightly 2023-06-29 22:25:49 +03:00
Kirill Bulatov
d59e91aff2 Insert new hints into cache better 2023-06-29 22:25:49 +03:00
Kirill Bulatov
d6828583d8 Box the cache for better performance 2023-06-29 22:25:49 +03:00
Kirill Bulatov
1722d61190 Mitigate odd offset calculations 2023-06-29 22:25:49 +03:00
Kirill Bulatov
7fddc223cd Move away heavy inlay computations into background tasks 2023-06-29 22:25:49 +03:00
Kirill Bulatov
31f0f9f7b1 Forbid extra inlay updates 2023-06-29 22:25:49 +03:00
Kirill Bulatov
97e5d40579 Add snapshot version to use when avoiding wrong state updates 2023-06-29 22:25:49 +03:00
Kirill Bulatov
8d982a6c2d Finish modelling 2023-06-29 22:25:49 +03:00
Kirill Bulatov
4c78019317 Start to model the background threads for InlayHintCache 2023-06-29 22:25:49 +03:00
Kirill Bulatov
2f1a27631e React on multibuffer scrolls again 2023-06-29 22:25:49 +03:00
Kirill Bulatov
a31d3eca45 Spawn cache updates in separate tasks 2023-06-29 22:25:49 +03:00
Antonio Scandurra
9698b51524 Prevent insertion of empty inlays into InlayMap 2023-06-29 22:25:49 +03:00
Kirill Bulatov
3b9a2e3261 Do not track editor ranges in InlayHintCache 2023-06-29 22:25:49 +03:00
Kirill Bulatov
70a45fc800 Fix cache incremental updates 2023-06-29 22:25:49 +03:00
Kirill Bulatov
7ac1885449 Properly refresh hints on editor open 2023-06-29 22:25:49 +03:00
Kirill Bulatov
58343563ba Fix hint querying bugs 2023-06-29 22:25:49 +03:00
Kirill Bulatov
debdc3603e Finish rest of the inlay cache logic 2023-06-29 22:25:49 +03:00
Kirill Bulatov
ddcbc73bf0 Implement inlay hint replaces for conflict-less case 2023-06-29 22:25:49 +03:00
Kirill Bulatov
6368cf1a27 Merge excerpt-related hint data, move next_inlay_id into Editor 2023-06-29 22:25:49 +03:00
Kirill Bulatov
8c03e9e122 Move InlayId generation back to InlayCache 2023-06-29 22:25:49 +03:00
Kirill Bulatov
e82b4d8957 Properly handle hint addition queries 2023-06-29 22:25:49 +03:00
Kirill Bulatov
5322aa09b9 Properly handle settings toggle 2023-06-29 22:25:49 +03:00
Kirill Bulatov
8f68688a64 Allow readding inlays with existing ids, move inlay types 2023-06-29 22:25:49 +03:00
Kirill Bulatov
49c00fd571 Generate InlayIds in InlayMap, prepare InlayCache for refactoring 2023-06-29 22:25:49 +03:00
Kirill Bulatov
e217a95fcc Cleanup the warnings 2023-06-29 22:25:49 +03:00
Kirill Bulatov
76d35b7122 Use proper, limited excerpt ranges and manage inlay cache properly 2023-06-29 22:25:49 +03:00
Kirill Bulatov
2b989a9f12 Fix all the tests
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-29 22:25:49 +03:00
Kirill Bulatov
d4d88252c3 Fix most of the FoldMap random tests with inlays
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-29 22:25:49 +03:00
Kirill Bulatov
f2c510000b Fix all FoldMap tests (without real inlays inside)
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-29 22:25:49 +03:00
Kirill Bulatov
29bb6c67b0 Fix first FoldMap methods after the map move
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-29 22:25:49 +03:00
Kirill Bulatov
9ae611fa89 Fix InlayMap bugs after the map order revers
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-29 22:25:49 +03:00
Kirill Bulatov
05dc672c2a Apply questionable changes to make things compile 2023-06-29 22:25:49 +03:00
Kirill Bulatov
10765d69f4 Move inlay map to be the first one
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-29 22:25:49 +03:00
Kirill Bulatov
e744fb8842 Avoid having carriage returns (\r) in inlays
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-29 22:25:49 +03:00
Kirill Bulatov
d2fef07782 Remove the SuggestionMap
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-29 22:25:49 +03:00
Kirill Bulatov
8cdf1a0faf Switch over to inlay map for Copilot suggestions
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-29 22:25:49 +03:00
Antonio Scandurra
89137e2e83 Fix InlayMap::buffer_rows 2023-06-29 22:25:49 +03:00
Kirill Bulatov
34c6d66d04 Implement InlayBufferRows properly
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-29 22:25:49 +03:00
Kirill Bulatov
bec9c26fa2 Fix more inlay_map corner cases and hangings
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-29 22:25:49 +03:00
Kirill Bulatov
02e124cec4 Fix inlay map tests
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-29 22:25:49 +03:00
Kirill Bulatov
b231fa47af Apply hints setings on startup 2023-06-29 22:25:49 +03:00
Kirill Bulatov
c898298c5c Properly update inlay hints when settings are changed 2023-06-29 22:25:49 +03:00
Kirill Bulatov
1ed52276e0 Add inlay hint settings 2023-06-29 22:25:49 +03:00
Kirill Bulatov
ea837a183b Store inlays per paths and query on editor open 2023-06-29 22:25:49 +03:00
Kirill Bulatov
8acc5cf8f4 Deserialize more LSP inlay hint information 2023-06-29 22:25:49 +03:00
Kirill Bulatov
f155f5ded7 Better rpc inlay hint handling 2023-06-29 22:25:49 +03:00
Kirill Bulatov
b3aa75a363 Refresh inlays on buffer reopens 2023-06-29 22:25:49 +03:00
Kirill Bulatov
e1f22c3684 Cache anchors from all versions, remove out of range hints 2023-06-29 22:25:49 +03:00
Kirill Bulatov
7abaf22b93 Generate proper inlay diffs for splice 2023-06-29 22:25:49 +03:00
Kirill Bulatov
6d1068d1e9 Query inlay hints for excerpt ranges only 2023-06-29 22:25:49 +03:00
Kirill Bulatov
271cd25a1d Display excerpt-ranged hints only 2023-06-29 22:25:49 +03:00
Kirill Bulatov
addb62c1fc Fix the duplicate hints
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-29 22:25:49 +03:00
Kirill Bulatov
63074c5cd8 Better bias selection for hints that prefix the type
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-29 22:25:49 +03:00
Antonio Scandurra
2b1b1225f5 Simplify InlayMap::splice interface 2023-06-29 22:25:49 +03:00
Antonio Scandurra
7684a26daa Fix point/offset translation and clipping in the InlayMap
This makes all randomized tests pass. We're only missing `buffer_rows`
now and we should move the map right above `MultiBuffer` and below `FoldMap`.
2023-06-29 22:25:49 +03:00
Kirill Bulatov
c7fa8dbc70 React with inlay updates on excerpt events 2023-06-29 22:25:49 +03:00
Kirill Bulatov
df20a43704 Reuse the copilot suggestion style for inlays 2023-06-29 22:25:49 +03:00
Kirill Bulatov
8a64b07622 Fixed inlay hints' edits generation and moved on with the randomized
test

Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-29 22:25:49 +03:00
Antonio Scandurra
e280483c5f Make the randomized tests pass
Right now we only check that the text is correct, but I think
we're getting there.
2023-06-29 22:25:49 +03:00
Kirill Bulatov
afa59eed01 Fix the randomized tests
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-29 22:25:49 +03:00
Kirill Bulatov
f940104b6f Add inlay hint randomization in the text
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-29 22:25:49 +03:00
Kirill Bulatov
dbd4b33568 Fix splice edits generation
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-29 22:25:49 +03:00
Kirill Bulatov
9ce9b73879 Generate edits for inlay hints
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-29 22:25:49 +03:00
Kirill Bulatov
f5f495831a Add inlay hints randomized test, fix the errors
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-29 22:25:49 +03:00
Kirill Bulatov
2e730d8fa4 Implement initial changes reporting for inlay hints
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-29 22:25:49 +03:00
Kirill Bulatov
4d76162da8 Report the edits per transform summary generated
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-29 22:25:49 +03:00
Kirill Bulatov
2ba3262f29 Add line_len snapshot method
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-29 22:25:49 +03:00
Kirill Bulatov
ab7dd80423 Add more InlaySnapshot text summary impls
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-29 22:25:49 +03:00
Kirill Bulatov
568a67c4d7 Implement more InlaySnapshot methods
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-29 22:25:49 +03:00
Kirill Bulatov
daa2ebb57f Calculate anchors for new hints 2023-06-29 22:25:49 +03:00
Kirill Bulatov
5fadbf77d4 Implement InlayHint sync method and fix the bugs
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-29 22:25:48 +03:00
Kirill Bulatov
5ad85b44d6 Implement chunks of the InlayMap
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-29 22:25:48 +03:00
Kirill Bulatov
3028767d12 Improve on inlya locations 2023-06-29 22:25:48 +03:00
Kirill Bulatov
b193d62a5d Initial InlayMap tests and splice fn impl
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-29 22:25:48 +03:00
Kirill Bulatov
7397b8028c Simplify inlay hint version handling 2023-06-29 22:25:48 +03:00
Kirill Bulatov
d506522eef Correctly pass inlay hints 2023-06-29 22:25:48 +03:00
Kirill Bulatov
b5233b3ad5 Rename the new map 2023-06-29 22:25:48 +03:00
Kirill Bulatov
9287634548 Prepare to find diffs between inlay hint generations 2023-06-29 22:25:48 +03:00
Kirill Bulatov
78b3c9b88a Store hints in the new map only 2023-06-29 22:25:48 +03:00
Kirill Bulatov
83f4320b60 Replace todo!s with stub calls to make Zed work 2023-06-29 22:25:48 +03:00
Kirill Bulatov
4c3c0eb796 Draft the hint render data flow 2023-06-29 22:25:48 +03:00
Kirill Bulatov
2ead3de7de Add basic infrastructure for inlay hints map 2023-06-29 22:25:48 +03:00
Kirill Bulatov
6e3d1b962a Draft the initial protobuf changes 2023-06-29 22:25:48 +03:00
Kirill Bulatov
387415eb01 Request hints for all buffers in editor 2023-06-29 22:25:48 +03:00
Kirill Bulatov
f83cfda9bc React on message-less LSP requests properly
Co-Authored-By: Julia Risley <julia@zed.dev>
2023-06-29 22:25:48 +03:00
Kirill Bulatov
7a268b1cf6 Improve obvious faults 2023-06-29 22:25:48 +03:00
Kirill Bulatov
79b97f9e75 Stub initial hint requests 2023-06-29 22:25:48 +03:00
Kirill Bulatov
8a3b515f56 Initial protocol check commit 2023-06-29 22:25:48 +03:00
KCaverly
39137fc19f updated vector_store db to leverage EMBEDDINGS_DIR path 2023-06-29 15:18:32 -04:00
Max Brunsfeld
1ae5261024 Avoid redundant FS scans when LSPs changed watched files (#2663)
Release Notes:

- Fixed a performance problem that could occur when a language server
requested to watch a set of files (preview only).
2023-06-29 12:07:24 -07:00
Max Brunsfeld
922d8f30d6 Tweak debug log message when ignoring fs events 2023-06-29 12:01:59 -07:00
Max Brunsfeld
8609ccdcf7 Add test coverage for FS events happening inside unloaded dirs 2023-06-29 11:55:25 -07:00
Nate Butler
ae9eb7c67a Re-add missing active state (#2664)
[[PR Description]]

Release Notes:

- Fixes project panel active state that was incorrectly removed.
2023-06-29 14:45:19 -04:00
Nate Butler
764968e7d0 Re-add missing active state 2023-06-29 14:40:00 -04:00
Max Brunsfeld
ba80c53278 Avoid redundant FS scans when LSPs changed watched files
* Don't scan directories if they were already loaded.
* Do less work when FS events occur inside unloaded directories.
2023-06-29 11:35:49 -07:00
KCaverly
0a7245a583 updated semantic search modal to manage for duplicate queries 2023-06-29 13:50:49 -04:00
Nate Butler
c7c38c7da2 snake_case theme (#2661)
This PR moves the theme / `/styles` typescript app to use snake_case to
better align with the rust app and make it easier to reference things
across both apps.

It also configures ESLint in the styles app and fixes many ESLint
errors.

Going forward from this PR we will use `snake_case` throughout the
theme.

Release Notes:

- N/A (No public facing changes)
2023-06-29 12:47:15 -04:00
KCaverly
a08d60fc61 added navigation on confirm to semantic search modal 2023-06-29 11:58:47 -04:00
Nate Butler
5211328234 Delete snake_case.ts 2023-06-29 11:56:14 -04:00
Nate Butler
d285d56fe3 Update package-lock.json 2023-06-29 11:48:17 -04:00
Nate Butler
8bff641cc4 Organize and update dotfiles 2023-06-29 11:47:58 -04:00
Nate Butler
a6f7e31bb9 Update & format 2023-06-29 11:41:51 -04:00
Nate Butler
97dc7b77f4 WIP snake_case 5/? 2023-06-29 11:31:23 -04:00
Nate Butler
0627c198fd WIP snake_case 4/? 2023-06-29 10:57:19 -04:00
Nate Butler
17f2fed3c8 WIP snake_case 3/? 2023-06-29 02:16:21 -04:00
Nate Butler
ba17fae8d9 WIP snake_case 2/? 2023-06-29 01:48:40 -04:00
Nate Butler
b015f506da WIP snake_case 1/?
through `contact_notification`
2023-06-28 22:42:57 -04:00
Julia
14ff411907 Detect and fix broken lsp installations (#2646)
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

Closes
https://linear.app/zed-industries/issue/Z-665/add-a-mechanism-for-detecting-and-fixing-broken-language-server
Fixes https://github.com/zed-industries/community/issues/1671
Fixes https://github.com/zed-industries/community/issues/1691
Fixes https://github.com/zed-industries/community/issues/1524
Fixes https://github.com/zed-industries/community/issues/1352
Fixes https://github.com/zed-industries/community/issues/1109
Fixes https://github.com/zed-industries/community/issues/996
Fixes https://github.com/zed-industries/community/issues/782

Things this PR does:
 - Updates our elixir-ls fetching to use new release name format
 - Detect when a server fails to launch
   - If the adapter claims to be reinstallable, get a test binary
   - If the test binary fails to launch or returns a failure error code
   - Clear container dir and reinstall
 - Detect/fix broken Node
 
Things it does not do:
- Restart server on failure, I have most of the stuff for this already
so it should be a fast follow up
 - Detect/fix broken Copilot

Node and Copilot shouldn't be too bad, they are handled via different
mechanisms. Originally I put effort into detecting failure of the server
during normal operation post launch, but that's not really needed. If
the server gets borked while running then we'll catch that on next
startup. Realizing that allowed for pruning a bunch of the work I did
and made the overall system a lot nicer

Copilot is nominally a language server but does not have an adapter and
does not run through the same mechanism in the project.

We're going to have an issue with multiple language server instances in
different projects once we add a "Reinstall Language Server" action,
which is why it's not in this PR. Each project has its own list of
server instances and is currently vaguely responsible for managing the
installations which means they can step on each others toes. This should
change, probably

Release Notes:
- Added a mechanism to detect and reinstall broken language servers
([#1691](https://github.com/zed-industries/community/issues/1691))
([#1524](https://github.com/zed-industries/community/issues/1524))
([#1352](https://github.com/zed-industries/community/issues/1352))
([#1109](https://github.com/zed-industries/community/issues/1109))
([#996](https://github.com/zed-industries/community/issues/996))
([#782](https://github.com/zed-industries/community/issues/782)).
2023-06-28 21:26:35 -04:00
Mikayla Maki
6ffa6afd20 fmt 2023-06-28 16:35:57 -07:00
Mikayla Maki
e0d618862c Add click out handler
Make all context menus on button click toggles instead of re-shows
2023-06-28 16:23:07 -07:00
Nate Butler
2e162f8af7 WIP convert to snake_case 2023-06-28 18:20:43 -04:00
Max Brunsfeld
fd68a2afae Debounce searches in semantic search modal 2023-06-28 15:02:20 -07:00
Nate Butler
bfdd0824e2 Resolve TS errors and warnings
TODO: Use StyleTree types to remove `any`s from styleTrees.
2023-06-28 17:54:36 -04:00
Julia
2ed0284d49 Stub out for language plugin 2023-06-28 17:06:50 -04:00
Julia
48bed2ee03 Merge branch 'main' into fix-broken-lsp-installations 2023-06-28 16:46:06 -04:00
Nate Butler
1177980172 Fix basic eslint errors 2023-06-28 16:44:18 -04:00
Julia
db2b3e47bc Reinstall Node whenever a NodeRuntime operation has serious error 2023-06-28 16:43:45 -04:00
Nate Butler
e30ad9109c wip 2023-06-28 16:28:46 -04:00
KCaverly
85e71415fe updated embedding database calls to maintain project consistency
Co-authored-by: maxbrunsfeld <max@zed.dev>
2023-06-28 16:25:05 -04:00
KCaverly
400d39740c updated both indexing and search method for vector store, to maintain both zed worktree ids and db worktree ids
Co-authored-by: maxbrunsfeld <max@zed.dev>
2023-06-28 16:21:03 -04:00
KCaverly
3ca3de807c Merge branch 'main' of github.com:zed-industries/zed into vector_store 2023-06-28 14:42:24 -04:00
Mikayla Maki
0b900f4faf Fix project panel bug (#2656)
Release Notes:

* Fix a bug where project panel entries would not be styled correctly
(preview only)
2023-06-28 10:36:59 -07:00
Mikayla Maki
1d4a922185 prettier format 2023-06-28 10:35:28 -07:00
Mikayla Maki
bf2c2fe242 fix bug with dragged entry 2023-06-28 10:34:47 -07:00
Nate Butler
cf8e0befc8 Update 2023-06-28 13:27:41 -04:00
KCaverly
40ff7779bb WIP: Working modal, without navigation and search on every keystroke 2023-06-28 13:27:26 -04:00
Mikayla Maki
4659c34d46 WIP: Fix style overwriting in project panel 2023-06-28 09:55:25 -07:00
Mikayla Maki
18dd3102bf WIP: Add click out event to fix context menus 2023-06-28 09:29:49 -07:00
Joseph T. Lyons
6c53653831 v0.94.x dev 2023-06-28 12:23:42 -04: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
Mikayla Maki
cb782c5a7b Remove menu tracking state 2023-06-28 09:06:06 -07:00
Max Brunsfeld
34b81e2aab collab 0.15.0 2023-06-28 09:01:07 -07:00
Mikayla Maki
88b30dea10 fmt 2023-06-28 08:44:17 -07:00
Mikayla Maki
9ab0efa1f8 Fix microphone and speaking styles 2023-06-28 08:41:31 -07:00
Julia
00212d4383 Handle new elixir-ls release zip name (#2655)
Fix downloading Elixir being broken

Release Notes:

- N/A
(Should be mentioned in 0.92.x)
2023-06-28 10:28:30 -04:00
Julia
1882ce48be Handle new elixir-ls release zip name 2023-06-28 10:22:39 -04:00
Nate Butler
c381e8821c Update icon sizes 2023-06-28 10:19:30 -04:00
Nate Butler
a889f3db54 Reduce the right spacing of the contacts menu 2023-06-28 10:06:12 -04:00
Piotr Osiewicz
49ce1977e3 Optimize user menu trigger 2023-06-28 15:27:38 +02:00
Piotr Osiewicz
c2f5855fdc Fix warning 2023-06-28 15:22:17 +02:00
Piotr Osiewicz
456be1f86e Hide user menu on second click 2023-06-28 15:19:32 +02:00
Piotr Osiewicz
dddff644ca tests: Test 'db' package sequentially (#2654)
/cc @as-cii  @nathansobo  

Release Notes:

- N/A
2023-06-28 15:00:43 +02:00
KCaverly
9d19dea7dd updated vector_store to remove parsing module 2023-06-28 08:58:50 -04:00
Antonio Scandurra
2cb4616609 Enable assistant on stable
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-06-28 12:09:49 +02:00
Antonio Scandurra
0d0c71e215 Polish assistant (#2653)
This is a mix of styling and behavioral improvements to the assistant
that we wanted to land before shipping today.

Release Notes:

- N/A
2023-06-28 12:02:18 +02:00
Nathan Sobo
8f8a99d788 Bind cmd-? to assistant::toggle_focus
Bypass system help menu shortcut at the app delegate level to achieve this.

Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-28 11:43:24 +02:00
Piotr Osiewicz
2ddf0e12bf Undeafen: unmute if user was not muted prior to deafening 2023-06-28 11:10:56 +02:00
Nathan Sobo
7efcd60608 Remove border from assistant message header
Also: Increase right margin on token count to space it from the scrollbar.

Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-28 10:54:44 +02:00
Nathan Sobo
83fc7b9b7c Avoid scrolling to the new cursor position so the assistant's output is stable
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-28 10:32:06 +02: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
Nathan Sobo
d41a7f41fb Space out assistant icons to match pane icons
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-28 10:00:28 +02:00
Mikayla Maki
749f60ba81 fmt 2023-06-27 19:25:46 -07:00
Mikayla Maki
5d02b49058 Added muted and currently speaking tracking 2023-06-27 19:23:13 -07:00
Max Brunsfeld
f128cf4a33 Defer scanning some worktree subdirectories until they are expanded in the project panel (#2622)
Closes
https://linear.app/zed-industries/issue/Z-352/high-memory-usage-from-fs-scanning-if-project-contains-symlinks-that

### Background

Currently, when you open a project, Zed eagerly scans the directory,
building an in-memory representation of all of the files and directories
within. This scanning includes all git-ignored files and follows any
symlinks. When any directory changes on disk, Zed recursively rescans it
in order to keep its in-memory representation up-to-date. When
collaborating, all of these files are replicated to all guests.

Right now, there are some performance problems associated with the
maintenance of this filesystem state:
* For various reasons, some projects contain symlinks that point out to
large folders like `$HOME`, which itself contains many symlinks that
point to the same large directory. When these projects are opened, the
worktree scans endlessly, using more and more memory.
* Some git-ignored directories (like `target` in a rust project) contain
*many* more files than are actually tracked in the git repository. These
files often change as a result of saving, (e.g. because the compiler
runs). Maintaining in memory all of these paths isn't useful to the
user, and causes significant CPU usage on every save. Most importantly,
when collaborating sending all of these changes to guests can be slow,
and can delay all other RPC messages.

### Change

This PR changes the worktree's filesystem-scanning logic to be *lazy*
about scanning two types of directories:
* git ignored directories
* "external" directories (those that are canonically located outside of
the worktree root, but accessed via symlinks)

The laziness works as follows. When, during a recursive scan, a
directory is found that falls into one of the above 2 categories, that
directory is marked as "unloaded". The directory might later be scanned,
if some explicit operation is performed within it (like opening a
buffer, or creating a file), if any collaborator expands that directory
in their project panel, or if an LSP requests that it be watched.

### Results

When collaborating on the `zed` folder:

| metric | before | after |
|-------|--------|------|
| # `worktree_entries` in collab db initially | 154,763 |  77,679 |
| # `worktree_entries` in collab db after 5 saves | 181,952 | 77,679
(nothing new to scan) |
| app memory footprint (host) | 260MB | 228.5 MB  |

The db thing is a win, because reading and writing to the
`worktree_entries` table is one of the most expensive thing that the
`collab` server does.

There's also generally lower background CPU usage after every save,
because we don't need to recursively rescan directories inside of
`target`.

### Limitations

We still end up scanning some unnecessary directories (like
`target/debug/build/zed-b612db829aeac16e/out`) because the LSP instructs
us to watch those.

### To do:

* [x] Expand parent directories of any path opened via LSP
* [x] Avoid creating orphaned entries when FS events happen inside of
unscanned directories
* [x] Scan any newly-non-ignored directories after gitignore changes
* [x] Emit correct events for newly-discovered paths when expanding dirs
* [x] GC the set of expanded directory ids when dirs are removed
* [x] Don't include "external" entries in file-finder
* [x] Expand any directories watched by LSP
* [ ] manual testing and profiling

### Release Notes:

- Fixed a bug where Zed would use excessive memory when a project folder
contained symlinks pointing to directories outside of the project.
- Reduced Zed's memory and CPU usage when working in folders containing
many git-ignored files.
2023-06-27 17:07:23 -07:00
Max Brunsfeld
201188fdaa Use FakeFs in worktree gitignore test 2023-06-27 15:40:36 -07:00
Max Brunsfeld
fc02381196 Fix bugs in handling combined injections exposed by HEEx (#2652)
Fixes
https://linear.app/zed-industries/issue/Z-2481/heex-this-snippet-triggers-a-hard-crash

Release Notes:

- Fixed a crash that would sometimes occur when editing a HEEx file
([#1703](https://github.com/zed-industries/community/issues/1703)).
2023-06-27 15:17:29 -07:00
Max Brunsfeld
81c26cfea0 Fix bugs in handling combined injections exposed by HEEx 2023-06-27 15:08:26 -07:00
Nate Butler
9a07696240 Update titlebar item spacing 2023-06-27 17:56:44 -04:00
Nate Butler
8b2732c3aa workspace.titlebar -> titlebar in Theme 2023-06-27 17:27:58 -04:00
Mikayla Maki
19ca6a8875 Seperate online and offline 2023-06-27 13:33:04 -07:00
Nate Butler
825a7cb799 Update screenshare toggle, titlebar spacing 2023-06-27 16:20:45 -04:00
Mikayla Maki
60ce584427 WIP: Add mute icons 2023-06-27 13:12:52 -07:00
KCaverly
d1bdfa0be6 Added a dummy action for testing the semantic search functionality in the command palette.
Co-authored-by: maxbrunsfeld <max@zed.dev>
2023-06-27 15:53:07 -04:00
KCaverly
4bfe3de1f2 Working incremental index engine, with streaming similarity search!
Co-authored-by: maxbrunsfeld <max@zed.dev>
2023-06-27 15:31:21 -04:00
Julia
b2de28ccfc Match original logic when determining server to request formatting 2023-06-27 14:16:01 -04:00
Mikayla Maki
37cb202c93 Rename and toggle screenshare 2023-06-27 09:58:01 -07:00
Nate Butler
b4f9faee3b Update share, call control buttons 2023-06-27 12:24:19 -04:00
Nate Butler
5af33407f0 Add script for building theme types 2023-06-27 11:34:26 -04:00
Nate Butler
331800c14d Use icon_button for leave call 2023-06-27 11:34:12 -04:00
Piotr Osiewicz
3104275d87 Keep users muted once they undeafen themselves 2023-06-27 17:19:18 +02:00
Nate Butler
9389b50646 Update local-collaboration.md
Add missing livekit info
2023-06-27 10:52:38 -04:00
Nate Butler
0548df09d9 Update local-collaboration.md 2023-06-27 10:05:37 -04:00
Nate Butler
f311d307b1 Create local-collaboration.md (#2651)
I forget how to do this every single time 😅 Please update anything that
is incorrect!

[[PR Description]]

Release Notes:

- N/A
2023-06-27 09:52:15 -04:00
Nate Butler
a67eba9fed Create local-collaboration.md
I forget how to do this every single time 😅
2023-06-27 09:51:30 -04:00
Piotr Osiewicz
625814d30a Merge branch 'main' into collab-titlebar-2 2023-06-27 15:40:43 +02:00
Nathan Sobo
04d93dfbd9 vim: indent/outdent (#2644)
Release Notes:

- vim: support indent/outdent
([#832](https://github.com/zed-industries/community/issues/832>)).
2023-06-27 04:15:55 -06:00
Nathan Sobo
fd3ee0ebd0 Vim toggle case (#2648)
Release Notes:

- vim: Add ~ to toggle case
([#1410](https://github.com/zed-industries/community/issues/1410))
2023-06-27 04:13:24 -06:00
Nathan Sobo
29b2639b4c Merge remote-tracking branch 'origin/main' into vim-indent 2023-06-27 12:09:47 +02:00
Nathan Sobo
16c23557b8 vim: Fix scrolling (#2647)
After #2641 we noticed that scrolling didn't take a count parameter, and
a few other issues with the way that we calculated the distance to
scroll.
 
Release Notes:

- Improved distance calculations for page-up/page-down
- vim: Allow counts to work with scrolling shortcuts.
2023-06-27 04:01:14 -06:00
Nathan Sobo
7294314ce7 vim: shortcuts for tab navigation (#2649)
Release Notes:

- vim: added gt/ctrl-pagedown and gT/ctrl-pageup for tab navigation
2023-06-27 03:57:01 -06:00
Nathan Sobo
0fd0b60bd6 vim: Fix code actions menu (#2650)
Fixes: zed-industries/community#1690

I'm not sure this is the correct way to fix this...
* A simpler approach would be to just say `!showing_code_actions` in the
binding file (as `showing_completions` can only happen in insert mode -
and `VimControl` will be false). This seemed a little error prone if
more menus were added in the future.
* A more complicated approach would be to copy the way this is done from
the MouseContextMenu, which registers its own keyboard shortcuts, and as
such uses those when it's open. This seems "more correct", but is a
major refactoring for a very small reward.

Release Notes:

- vim: Fix code actions menu
([#1690](https://github.com/zed-industries/community/issues/1690))
2023-06-27 03:56:08 -06:00
Piotr Osiewicz
71c0b7d74d Add styles for user menu 2023-06-27 11:55:06 +02:00
Conrad Irwin
a1343f0d2c vim: Fix code actions menu
Fixes: zed-industries/community#1690
2023-06-26 21:46:06 -06:00
Conrad Irwin
a9aa5e5196 vim: Add ~ to change case
Fixes: zed-industries/community#1410
2023-06-26 20:22:24 -06:00
Conrad Irwin
77dc22bff6 vim: Fix cursor restoration when undoing substitute 2023-06-26 20:22:24 -06:00
KCaverly
953e928bdb WIP: Got the streaming matrix multiplication working, and started work on file hashing.
Co-authored-by: maxbrunsfeld <max@zed.dev>
2023-06-26 19:01:19 -04:00
Conrad Irwin
73920807a9 vim: shortcuts for tab navigation 2023-06-26 15:07:19 -06:00
Conrad Irwin
02fc5dd6c9 vim: Fix scrolling
After #2641 we noticed that scrolling didn't take a count parameter.

The PageDown/PageUp logic was also broken by an additional -1 (for both
vim mode and not).
2023-06-26 13:29:14 -06:00
KCaverly
74b693d6b9 Updated database calls to share single connection, and simplified top_k_search sorting.
Co-authored-by: maxbrunsfeld <max@zed.dev>
2023-06-26 14:57:57 -04:00
Joseph T. Lyons
a09c6b2691 Add installation_id to panic events (#2642)
We want to add installation_id to the panic events so that we can easily
know if multiple panics are coming from the same person or different
people. 5 panics from one person isn't as bad as 5 panics from 5 people.

[zed.dev pr](https://github.com/zed-industries/zed.dev/pull/343)

Release Notes:

- N/A
2023-06-26 13:35:23 -04:00
Joseph T. Lyons
c0fb98cb3f Factor out key name 2023-06-26 13:31:41 -04:00
Joseph T. Lyons
8d1cc8815b Merge branch 'main' into add-installation-id-to-panic-events 2023-06-26 13:27:14 -04:00
Nate Butler
37814bc4fc Fix incorrect ThemeAppearance (#2645)
[[PR Description]]

When we updated the way themes were built it looks like we accidentally
gave `Atelier Forest Light` the wrong `ThemeAppearance`. This PR fixes
that.

Release Notes:

- Fixed the `Atelier Forest Light` theme, which was incorrectly set as a
dark theme.
2023-06-26 13:20:32 -04:00
Antonio Scandurra
0d3e75e873 Introduce the ability to load and save conversations with the assistant (#2623)
Closes
https://linear.app/zed-industries/issue/Z-1890/save-assistant-conversations-to-the-filesystem
Closes
https://linear.app/zed-industries/issue/Z-2459/cycling-message-roles-on-the-last-empty-message-alters-the-message
Closes
https://linear.app/zed-industries/issue/Z-2460/cycling-role-in-an-empty-message-cycles-wrong-messages-role
Closes https://linear.app/zed-industries/issue/Z-2365/assistant-toolbar
Closes
https://linear.app/zed-industries/issue/Z-2461/always-insert-an-empty-message-at-the-end-of-the-conversation

Release Notes:

- You can now save conversations with the assistant to
`~/.config/zed/conversations` with `cmd-s`. Conversations are also
automatically saved as they are edited.
2023-06-26 19:17:16 +02:00
Antonio Scandurra
43723168fc Remove assistant panel zoom test
The test was testing pretty straightforward logic, but for some strange reason
it was failing on CI (but passed locally). I think it's fine to delete it and
make progress, if zooming regresses we'll find out pretty quickly.
2023-06-26 19:10:59 +02:00
Nate Butler
1dc52c7547 Fix incorrect ThemeAppearance 2023-06-26 13:07:33 -04:00
Antonio Scandurra
d46d3e6d15 Try fixing test on CI 2023-06-26 18:18:22 +02:00
Conrad Irwin
c3e8cae20f vim: indent/outdent
Fixes: zed-industries/community#832
2023-06-26 10:08:34 -06:00
Julia
2a8d1343d6 Add installation test binaries for all remaining adapters 2023-06-26 11:54:20 -04:00
Antonio Scandurra
e77abbf64f Add hover state to assistant buttons 2023-06-26 17:48:43 +02:00
Antonio Scandurra
723c8b98b3 Show quote selection button 2023-06-26 17:24:31 +02:00
Antonio Scandurra
e723686b72 Shwo tooltips for assistant buttons 2023-06-26 17:17:45 +02:00
Piotr Osiewicz
f6edc68613 picker: fix warnings 2023-06-26 17:07:33 +02:00
Antonio Scandurra
edc7f30660 Add assistant icons to the toolbar
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-06-26 16:49:33 +02:00
KCaverly
0f232e0ce2 added file metadata retrieval from db 2023-06-26 10:35:56 -04:00
KCaverly
7937a16002 added brute force search and VectorSearch trait 2023-06-26 10:34:12 -04:00
Julia
5632f24d24 Handle new elixir-ls release zip name 2023-06-26 10:18:30 -04:00
Antonio Scandurra
c5b3785be5 Revert "Panic in debug if global settings can't be deserialized from defaults"
This reverts commit 7a051a0dcb.
2023-06-26 16:03:19 +02:00
Antonio Scandurra
00e37bc2a2 Merge remote-tracking branch 'origin/main' into save-conversations 2023-06-26 15:59:19 +02:00
Antonio Scandurra
9d4dd5c42b Insert empty user message when assisting with the current last message
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-06-26 15:57:36 +02:00
Antonio Scandurra
92d7b6aa3b Allow toggling back and forth between conversation list and editor
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-06-26 15:43:21 +02:00
Piotr Osiewicz
55f06dcdb5 Add headers and footers to file finder 2023-06-26 13:31:46 +02:00
Piotr Osiewicz
a9b5c1d867 Remove unnecessary call to context.notify 2023-06-26 12:45:50 +02:00
KCaverly
65bbb7c57b added proper blob serialization for embeddings and vector search trait 2023-06-25 20:02:56 -04:00
Nathan Sobo
3f4a06f576 Add an Element derive macro for building components out of other elements (#2643)
To turn any struct into a composite element, you can implement a render
method with the following signature:

```rs
fn render<V: View>(&mut self, view: &mut V, cx: &mut ViewContext<V>) -> AnyElement<V>;
```

Then add #[derive(Element)] to the struct definition.

This will make it easier to introduce higher-level components that are
expressed in terms of other elements. Instead of calling functions that
return elements, we can now make any struct into an element fairly
easily. The advantage is that we can use method chaining to express
optional state on these components, and they blend in better with other
elements.

cc @mikayla-maki @osiewicz @iamnbutler 

Release Notes:

- N/A
2023-06-25 08:12:02 -06:00
Nathan Sobo
bede668b14 Add a derive macro for Element
To turn any struct into a composite element, you can implement a render method
with the following signature:

fn render<V: View>(&mut self, view: &mut V, cx: &mut ViewContext<V>) -> AnyElement<V>;

Then add #[derive(Element)] to the struct definition.

This will make it easier to introduce higher-level components that are expressed in
terms of other elements.
2023-06-25 07:51:50 -06:00
Julia
c4b83c86cc Avoid validating/reinstalling server which refuses will_fetch/start
These adapters have indicated some broader reason to the user why
they cannot be started, don't waste time/bandwidth attempting to
validate and reinstall them
2023-06-24 22:42:06 -04:00
Kirill Bulatov
82bd5fb564 Fix main compilation 2023-06-25 01:43:58 +03:00
Joseph T. Lyons
7d065fa14e Add installation_id to panic events
Co-Authored-By: Julia <30666851+ForLoveOfCats@users.noreply.github.com>
2023-06-23 21:02:01 -04:00
Max Brunsfeld
030984dca4 Vim: substitute support (#2641)
Release Notes:

- vim mode now supports `s` for substitute
2023-06-23 12:58:14 -07:00
Max Brunsfeld
b0631e90ad vim: Fix 1G (#2640)
Before this change code could not distinguish between a user providing a
count of 1 and no count at all.

Fixes: zed-industries/community#710

Release Notes:

- 1G now correctly goes to the first line in vim mode
([710](zed-industries/community#710))
2023-06-23 12:55:46 -07:00
Max Brunsfeld
91f87bb31f Scan any external/ignored directories needed for LSP watchers
Also, don't include "external" files in project searches. Treat them
the same as ignored files.

Co-authored-by: Nathan Sobo <nathan@zed.dev>
2023-06-23 12:53:25 -07:00
Julia
7caa096bd0 Remove installation test binary from language server instance 2023-06-23 13:24:50 -04:00
Max Brunsfeld
27b74e9ea1 Prune the set of expanded dir ids as entries are removed 2023-06-23 10:23:21 -07:00
Max Brunsfeld
b22a18345e Emit loaded events for lazily loaded paths in worktree 2023-06-23 09:39:37 -07:00
KCaverly
c071b271be removed tokio and sqlx dependency, added dummy embeddings provider to save on open ai costs when testing 2023-06-23 10:25:12 -04:00
Piotr Osiewicz
4b52ff65c1 Add styles for button 2023-06-23 13:30:40 +02:00
Piotr Osiewicz
6c676121f2 Fixed mic's state not being updated in titlebar if user mutes a mic via command palette 2023-06-23 13:22:33 +02:00
Piotr Osiewicz
62786cd508 Add button 2023-06-23 13:15:25 +02:00
Piotr Osiewicz
437e41f99d Add styles for microphone and speakers buttons 2023-06-23 11:52:06 +02:00
Antonio Scandurra
5c5d598623 Insert new message right before the next valid one 2023-06-23 11:13:52 +02:00
Antonio Scandurra
6c7271c633 Test serialization roundtrip 2023-06-23 10:42:15 +02:00
Antonio Scandurra
c38bf2de33 Sort conversations in descending chronological order 2023-06-23 10:05:21 +02:00
Antonio Scandurra
5ea5368c07 Re-enable buffer search in assistant 2023-06-23 09:57:31 +02:00
Antonio Scandurra
ed88f52619 Remove double constrained call 2023-06-23 09:23:52 +02:00
Antonio Scandurra
6f0efec146 Merge remote-tracking branch 'origin/main' into save-conversations 2023-06-23 09:09:42 +02:00
Antonio Scandurra
ff07d0c2ed Fix Conversation::messages_for_offsets with empty message at the end 2023-06-23 08:58:30 +02:00
Julia
374c1a3a3e Remove some status stuff 2023-06-23 00:17:27 -04:00
Julia
3302e1133f Whoops 2023-06-22 20:22:05 -04:00
Julia
a8acf28989 Remove now-unnecessary complexity 2023-06-22 20:19:07 -04:00
Max Brunsfeld
9ad1ebf387 Fix project panel test helper 2023-06-22 17:02:01 -07:00
Max Brunsfeld
ffb0a215ea Fix randomized worktree test failures
* Distinguish between unloaded and pending directories via separate entry kind.
* Scan directories before updating ignore statuses after fs events.
2023-06-22 16:52:04 -07:00
KCaverly
dd309070eb open ai indexing on open for rust files 2023-06-22 16:50:07 -04:00
Conrad Irwin
926acd6033 vim: substitute handles multibyte characters
And is now in its own file
2023-06-22 13:22:19 -06:00
Conrad Irwin
0cacf01f90 vim: Fix 1G
Before this change code could not distinguish between a user providing a
count of 1 and no count at all.

Fixes: zed-industries/community#710
2023-06-22 12:11:14 -06:00
Piotr Osiewicz
8bd9fe1fb0 Deafen now also mutes microphone 2023-06-22 20:05:06 +02:00
Conrad Irwin
16022e9c1a Add counts to subsitute (and all)
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-06-22 11:50:56 -06:00
Max Brunsfeld
5350164db9 Get integration test passing. Wait for expand entry on remote projects. 2023-06-22 10:34:28 -07:00
Max Brunsfeld
400e3cda32 Scan directories when they stop being ignored 2023-06-22 10:34:28 -07:00
Max Brunsfeld
bfc90f4502 Add failing test for changing a gitignore so a pending dir is no longer ignored 2023-06-22 10:34:28 -07:00
Max Brunsfeld
d3477f75ac Fix reloading of git repositories
Also, clean up logic for reloading git repositories.
2023-06-22 10:34:28 -07:00
Max Brunsfeld
4424dafcd7 Fix expansion of ancestor directories when refreshing a path 2023-06-22 10:34:28 -07:00
Max Brunsfeld
3e6aedfc69 Expand dirs on-demand when opening buffers inside unloaded dirs 2023-06-22 10:34:28 -07:00
Max Brunsfeld
cd823ede4d Add a bit to each entry indicating if it's outside of the worktree root 2023-06-22 10:34:28 -07:00
Max Brunsfeld
1b71589514 Fix confusion between canonical vs non-canonical paths when rescanning, expanding paths 2023-06-22 10:34:28 -07:00
Max Brunsfeld
3c06bd056a Load git repositories when inserting the entry for the .git
Don't wait until populating that directory entry, for two reasons:
* In the case of submodules, .git is not a directory
* We don't eagerly populate .git directories, since their contents
  are automatically ignored.
2023-06-22 10:34:28 -07:00
Max Brunsfeld
6fe74602ac Fix detection of when refreshed paths are outside of worktree root 2023-06-22 10:34:28 -07:00
Max Brunsfeld
205c758e4e Wait for ignored directory to be expanded in descendant entries test 2023-06-22 10:34:28 -07:00
Max Brunsfeld
aa6f2f1816 Remove logic for marking worktree entries as collapsed 2023-06-22 10:34:28 -07:00
Max Brunsfeld
f910d8fe3e Only scan ignored or externals paths if expanded in a project panel 2023-06-22 10:34:28 -07:00
Max Brunsfeld
55f1a6647f Model symlinks better in FakeFs, add read_link Fs method 2023-06-22 10:34:28 -07:00
Max Brunsfeld
4c03231863 Maintain on the background scanner a set of expanded directories 2023-06-22 10:34:28 -07:00
KCaverly
d4a4db42aa WIP: started DB creating and naive inserts 2023-06-22 13:25:33 -04:00
Piotr Osiewicz
f774dbfe2e Use new icons, delete old ones 2023-06-22 18:58:11 +02:00
Piotr Osiewicz
18c4d43ee7 Add deafen button 2023-06-22 18:51:26 +02:00
Nate Butler
a305d93567 Z-2308 - Export Theme Types from Rust (#2621)
This PR adds JSON Schema definitions into GPUI's styles and adds a tool
for generating typescript types from these schema definitions.

Release Notes:

- N/A
2023-06-22 12:33:18 -04:00
Piotr Osiewicz
10cc0d567f Reintroduce package-lock.json 2023-06-22 18:26:18 +02:00
Nate Butler
1a0b2bfef8 Update stream control icons 2023-06-22 12:21:59 -04:00
Piotr Osiewicz
fcce1bc488 Fixup xtask compilation 2023-06-22 18:06:52 +02:00
Piotr Osiewicz
417a743b5e chore: use codegen_units=1 (#2633)
Reduces binary size by about 31Mb (total .dmg size down by 15Mb after compression).
2023-06-22 18:06:17 +02:00
Nate Butler
1079838443 Add mic and mic-mute icons 2023-06-22 12:00:42 -04:00
Piotr Osiewicz
b430be5bc6 cargo fmt 2023-06-22 17:59:56 +02:00
Piotr Osiewicz
af252888c4 Merge branch 'main' into sergey/z-2308-create-a-proof-of-concept-of-exporting-a-type-from-rust-and 2023-06-22 17:58:56 +02:00
Nate Butler
05730afdf0 Add radix icons
There are a lot of them, but they add less than 350kb to the app
2023-06-22 11:58:51 -04:00
Julia
0abda54d3c Remove individual location's request error handling 2023-06-22 11:43:26 -04:00
Piotr Osiewicz
1a55b687b0 Merge branch 'main' into collab-titlebar-2 2023-06-22 17:41:00 +02:00
Piotr Osiewicz
b16b6dcec7 Render microphone toggle 2023-06-22 17:40:29 +02:00
Piotr Osiewicz
5291bf3d9f Use nextest instead of test (#2639)
This should speed up our test CI by a minute or so. =)

[current best case CI
run](https://github.com/zed-industries/zed/actions/runs/5337351944/jobs/9673291188),
where we don't rebuild anything (and only run tests) takes about 2m30s
[with
nextest](https://github.com/zed-industries/zed/actions/runs/5346819257/jobs/9694617720?pr=2639),
that's down to 1m30s.
Release Notes:
- N/A
2023-06-22 16:50:26 +02:00
Julia
e1cd6cebb9 Revert "Route language server requests through wrapper object"
This reverts commit 9b63d6f832.
2023-06-22 10:45:08 -04:00
Piotr Osiewicz
bee6c59154 Add caret next to user avatar 2023-06-22 16:28:05 +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
Nathan Sobo
ea5398a702 vim: binding fixes (#2637)
Release Notes:

- In vim mode you can now use count modifiers with arrow keys (`5<down>`
will go down 5 lines).
- In vim mode `ctrl+]` and `ctrl+o` now work to go to definition and
back
2023-06-22 06:44:12 -06:00
Nathan Sobo
cd008d1503 Add support for joining lines (#2636)
🚧 We have a couple more refinements to this to add 🚧 

Release Notes:

You can now join lines with `ctrl-j` or `shift-J` in Vim normal mode.

🍐'd with @ConradIrwin
2023-06-22 06:38:57 -06:00
Piotr Osiewicz
bdccdaca1c Remove unused variable 2023-06-22 13:57:41 +02:00
Piotr Osiewicz
85d1c89d34 Remove unused import 2023-06-22 13:52:21 +02:00
Piotr Osiewicz
4583d22ede cargo fmt 2023-06-22 13:49:36 +02:00
Piotr Osiewicz
76366422a6 Merge branch 'main' into collab-titlebar-2 2023-06-22 13:48:16 +02:00
Julia
9b63d6f832 Route language server requests through wrapper object 2023-06-21 23:05:37 -04:00
Nathan Sobo
a49189a704 Add Zoom button to assistant panel 2023-06-21 19:50:22 -06:00
Nathan Sobo
a75341db97 Move model and remaining tokens to assistant toolbar 2023-06-21 19:01:30 -06:00
Conrad Irwin
e1f975e52e vim: Support s on selections and with multiple cursors 2023-06-21 15:44:19 -06:00
Conrad Irwin
dcca98b5cc vim: Add basic 's' support 2023-06-21 15:06:34 -06:00
Conrad Irwin
0c40ed5d85 vim: ctrl+] and ctrl+o to jump to definition and back
Equivalent to f12 and ctrl-- in non-vim mode.
2023-06-21 14:34:35 -06:00
Conrad Irwin
d6b1af6244 vim: Allow up/down/left/right in vim mode
The user impact of this is to 5<down> to move 5 lines at a time.
2023-06-21 14:20:39 -06:00
Conrad Irwin
91bd8e305e join_lines: Skip over leading indentation 2023-06-21 13:44:31 -06: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
KCaverly
80a894b829 WIP: started work on vector store db, by walking project worktrees.\n\nCo-Authored-By: Max <max@zed.dev> 2023-06-21 14:53:08 -04:00
Kirill Bulatov
1f35ddc44e Run LSP response deserialization outside of main thread (#2635)
Improves latency for big inlay hints LSP responses for ~8k line files.

Before, the CPU usage sample for editing a single line inside
`edirot.rs` file in Zed contained serde inside the main thread traces:

<img width="1728" alt="Screenshot 2023-06-21 at 00 33 23"
src="https://github.com/zed-industries/zed/assets/2690773/d9789efe-8055-487f-bbe7-8beb49605bcb">

Release Notes:

- N/A
2023-06-21 21:03:18 +03:00
Julia
e15be61ded The log-ification 2023-06-21 14:02:21 -04:00
Joseph T. Lyons
cc027dc626 v0.93.x dev 2023-06-21 13:59:07 -04:00
Nate Butler
9d9bbfdabf Format 2023-06-21 13:58:54 -04:00
Nate Butler
a845e82173 Update settings.json 2023-06-21 13:58:42 -04:00
Nathan Sobo
a365b2f177 Add shift-J binding to Vim normal mode
Co-Authored-By: Conrad Irwin <conrad.irwin@gmail.com>
2023-06-21 11:58:31 -06:00
Nate Butler
ed8bdd186e Update toggle active styles 2023-06-21 13:56:27 -04:00
Nathan Sobo
cde8d7d747 Don't use test-only method; add ctrl-j binding
Co-Authored-By: Conrad Irwin <conrad.irwin@gmail.com>
2023-06-21 11:53:11 -06:00
Nathan Sobo
cf38264eda Handle multiple selections when joining lines
Co-Authored-By: Conrad Irwin <conrad.irwin@gmail.com>
2023-06-21 11:47:06 -06:00
Nathan Sobo
61352f68ea Add more assertions for joining lines at the end of the file
Co-Authored-By: Conrad Irwin <conrad.irwin@gmail.com>
2023-06-21 11:21:09 -06:00
Nathan Sobo
f07a929350 Allow joining multiple lines and deleting empty lines
Co-Authored-By: Conrad Irwin <conrad.irwin@gmail.com>
2023-06-21 11:18:28 -06:00
Nate Butler
127f4aa506 Fix status bar buttons 2023-06-21 13:14:39 -04:00
Piotr Osiewicz
86506a89ab Remove theme_testbench 2023-06-21 19:11:55 +02:00
Piotr Osiewicz
d3a333b873 Tidy up xtask 2023-06-21 19:06:34 +02:00
Piotr Osiewicz
d194edc49f xtask: publish = false 2023-06-21 18:51:06 +02:00
Piotr Osiewicz
9aa7a50951 Use xtask for theme generation 2023-06-21 18:48:09 +02:00
Nate Butler
af8671cf7f Update rose pine theme family (#2624)
Update the Rose Pine theme family, including new syntax overrides
matching the official theme docs:
https://rosepinetheme.com/palette/ingredients/

Also adds a doc to our internal docs starting to outline how our syntax
highlighting works.

Before:
<img width="626" alt="CleanShot 2023-06-21 at 12 19 17@2x"
src="https://github.com/zed-industries/zed/assets/1714999/5ebe1cd0-1707-483b-a50f-bb53dbf89ba2">

After:
<img width="718" alt="CleanShot 2023-06-21 at 12 18 48@2x"
src="https://github.com/zed-industries/zed/assets/1714999/46b588aa-31a0-4402-934b-e3de7bc2f6b5">

From their site:

![image](https://github.com/zed-industries/zed/assets/1714999/83d4f671-e15f-4423-a01e-b382145e79fb)


Release Notes:

- Updated Rose Pine theme family to better match original theme.
2023-06-21 12:46:18 -04:00
Nathan Sobo
c48bd394c1 Start on joining lines
Co-Authored-By: Conrad Irwin <conrad.irwin@gmail.com>
2023-06-21 10:32:02 -06:00
Nate Butler
a3e65528ba Update syntax colors 2023-06-21 12:21:01 -04:00
Nate Butler
eeb155a951 Remove unused light variable 2023-06-21 12:20:47 -04:00
Nate Butler
f0138a7a87 Add initial syntax highlighting doc 2023-06-21 12:15:24 -04:00
Mikayla Maki
05c97ed355 Fix segfault with remote track publications
co-authored-by: antonio <antonio@zed.dev>
2023-06-21 09:05:36 -07:00
Nathan Sobo
d78fbbc63e Add title to assistant panel and move + to right 2023-06-21 09:54:49 -06:00
Mikayla Maki
5ffe74f47e Fix race condition in sharing mic on connection
co-authored-by: antonio <antonio@zed.dev>
2023-06-21 08:50:38 -07:00
Sergey Onufrienko
6e4439b4ca feat: move gen to styles and add scripts 2023-06-21 16:13:41 +02:00
Sergey Onufrienko
a9fec7f15b fix: create schemas folder 2023-06-21 16:13:04 +02:00
Sergey Onufrienko
01b9e88079 chore: move schema gen to theme 2023-06-21 16:12:27 +02:00
Sergey Onufrienko
43b912bc40 chore: ignore generated files 2023-06-21 16:12:01 +02:00
Antonio Scandurra
a011ced698 Allow loading a previously-saved conversation 2023-06-21 16:06:09 +02:00
Kirill Bulatov
bd97767c72 Run LSP response deserialization outside of main thread
Improves latency when big inlay hints LSP responses for ~8k line files

Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-21 13:20:42 +03:00
Antonio Scandurra
06701e78aa WIP 2023-06-21 11:44:32 +02:00
Antonio Scandurra
9217224fa6 Finish renaming AssistantEditor to ConversationEditor 2023-06-21 09:00:26 +02:00
Nathan Sobo
0932149c48 Fix filename 2023-06-20 20:21:43 -06:00
Nathan Sobo
3a61fd503f WIP: Trying to display the toolbar but tired. May be worth discarding this. 2023-06-20 20:11:37 -06: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
Nathan Sobo
7a051a0dcb Panic in debug if global settings can't be deserialized from defaults
Co-Authored-By: Max Brunsfeld <max@zed.dev>
Co-Authored-By: Julia Risley <julia@zed.dev>
2023-06-20 18:12:59 -06:00
Mikayla Maki
5860b7b143 Add copy-on-click to diagnostic messages (#2634)
I finally got fed up with being unable to copy error messages. This adds
a click target and tooltip to f8-style diagnostics that copies their
text on click.

Release Notes:

- Added the ability to copy under-line diagnostic errors on click
2023-06-20 17:05:20 -07:00
Mikayla Maki
11125a62c7 Add copy-on-click to diagnostic messages 2023-06-20 16:48:30 -07:00
Mikayla Maki
f1dc6124dd Fix rebase mistake 2023-06-20 16:09:17 -07:00
Mikayla Maki
b1b4b563c2 Add zed typescript settings
Remove 2 space indent
2023-06-20 16:05:23 -07:00
Mikayla Maki
da94014141 Fix flipped boolean 2023-06-20 16:05:23 -07:00
Mikayla Maki
dacfd70fb4 Remove unescessary enum 2023-06-20 16:05:23 -07:00
Piotr Osiewicz
60b4054b0a Fix up toggles 2023-06-20 16:05:23 -07:00
Nate Butler
ae53c3e623 WIP: Start updating style trees to new toggle() format. 2023-06-20 16:05:23 -07:00
Nate Butler
61535ed41f Update toggle, add tests 2023-06-20 16:05:23 -07:00
Nate Butler
040881df3f Update toggle 2023-06-20 16:05:23 -07:00
Nate Butler
5c034ab63c Format 2023-06-20 16:05:23 -07:00
Nate Butler
1f3feacb21 Add path aliases 2023-06-20 16:05:23 -07:00
Nate Butler
5369f2c25a Set up vitest and add tests for interactive 2023-06-20 16:05:23 -07:00
Piotr Osiewicz
4bd89c4c8c further style adjustments; cargo-run works 2023-06-20 16:05:23 -07:00
Piotr Osiewicz
63630949ba Fix up uses of interactive 2023-06-20 16:05:23 -07:00
Nate Butler
247f618d4f Update the interactive function 2023-06-20 16:05:23 -07:00
Nate Butler
16564707df Use TS-flavored doc comments 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
198a446b03 Implement Toggleable<T> and Interactive<T> properly 2023-06-20 16:05:23 -07:00
Piotr Osiewicz
c47d1e9f51 Add toggle.ts and interactive.ts 2023-06-20 16:05:23 -07:00
Piotr Osiewicz
b9959ffdc0 Do not flatten Interactive::default 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
Mikayla Maki
9b77cafd7b Add a mic sharing to room joining 2023-06-20 15:35:19 -07:00
Mikayla Maki
8273e08d4a Add is_muted and is_deafened 2023-06-20 15:23:06 -07:00
Nathan Sobo
bd7f8e8b38 Scan conversations dir on assistant panel open and on changes
Co-Authored-By: Julia Risley <julia@zed.dev>
2023-06-20 16:19:43 -06:00
Mikayla Maki
cf4251fb55 Fix deafened -> enabled mistranslation
Fix mislocation of caller query in detach_and_log_error
Fix incorrect wording on livekit integration
Add share_mic action for manually enabling the microphone
Make mic sharing wait until the room has been fully established
2023-06-20 15:17:49 -07:00
Julia
f91e95f24a Merge branch 'main' into fix-broken-lsp-installations 2023-06-20 17:23:34 -04:00
Mikayla Maki
dbd95e35cf fmt 2023-06-20 12:36:36 -07:00
Mikayla Maki
b828a74ad6 Add deafen controls 2023-06-20 12:34:32 -07:00
Nathan Sobo
230b4d237e Add SavedConversation::list() method
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-06-20 13:29:34 -06:00
Nathan Sobo
9f783944a7 Wait until we have a summary before saving a conversation
Also, avoid collisions by adding a discriminant.

Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-06-20 13:03:23 -06:00
Antonio Scandurra
c416551318 Don't use the summary as the filename if it's not done yet 2023-06-20 19:19:02 +02:00
Antonio Scandurra
f904698457 Use the OPENAI_API_KEY environment variable when present 2023-06-20 19:18:49 +02:00
Antonio Scandurra
31a70efe66 Autosave conversations 2023-06-20 19:10:52 +02:00
Mikayla Maki
e58f0ac72f Add mute toggling controls 2023-06-20 09:35:57 -07:00
Antonio Scandurra
c83a918a7e Merge remote-tracking branch 'origin/main' into save-conversations 2023-06-20 18:16:40 +02:00
Antonio Scandurra
6ed86781b2 Instruct the assistant to reply to a specific message (#2631)
Closes
https://linear.app/zed-industries/issue/Z-2384/hitting-cmd-enter-in-a-user-or-system-message-should-generate-a

Release Notes:

- Introduced the ability to generate assistant messages for any
user/system message, as well as generating multiple assists at the same
time, one for each cursor. (preview-only)
2023-06-20 18:16:23 +02:00
Nathan Sobo
03993ea719 Rename SumTree::push_tree to ::append (#2626)
This is something I've been meaning to rename in SumTree. Was looking at
the code and figure why not now.
2023-06-20 08:37:55 -06:00
Julia
adccfdfbbf Avoid assigning NSCursor style when it already is that style (#2632)
This avoids a high cost which appears to be the system rasterizing the
cursor every time we call this, fixes a slowdown when scrolling rapidly
while mouse motion continually attempted to assign the style

Fixes
https://linear.app/zed-industries/issue/Z-2200/editor-scroll-slowdown

Release Notes:

- Improved the performance of scrolling by avoiding unnecessary cursor
changes
([#1597](https://github.com/zed-industries/community/issues/1597)).
2023-06-20 10:02:04 -04:00
Antonio Scandurra
1d84da1d33 Improve prompt 2023-06-20 15:32:51 +02:00
Julia
dc07b60e40 Avoid assigning NSCursor style when it already is that style
This avoids a high cost which appears to be the system rasterizing the
cursor every time we call this, fixes a slowdown when scrolling rapidly
while mouse motion continually attempted to assign the style

Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2023-06-20 09:31:30 -04:00
Antonio Scandurra
8673b0b75b Avoid including pending or errored messages on assist 2023-06-20 11:59:51 +02:00
Max Brunsfeld
ebf0c96130 Show a notification when a dependency for a language server is missing (#2630)
Closes
https://linear.app/zed-industries/issue/Z-2402/elixir-ls-requires-a-system-elixir-runtime-to-be-installed
Closes
https://linear.app/zed-industries/issue/Z-666/notify-users-that-they-need-go-installed-to-use-go-language-server

Release Notes:

- Added a notification when unable to download the Go language server
because Go is not installed.
- Added a notification when unable to run the Elixir language server
because Elixir is not installed.
2023-06-19 20:03:30 -07:00
Max Brunsfeld
050c22312c Update plugin runtime LspAdapter impl 2023-06-19 19:38:31 -07:00
Nathan Sobo
8c298a9da5 Rename SumTree::push_tree to ::append 2023-06-19 19:49:33 -06:00
Max Brunsfeld
1215de0c42 Show a notification when unable to start elixir-ls 2023-06-19 18:05:30 -07:00
Max Brunsfeld
57c2d85c66 Show a notification that gopls can't be installed without go 2023-06-19 18:05:12 -07:00
Max Brunsfeld
360bbebbd9 Introduce LspAdapterDelegate trait, passed to LspDelegates 2023-06-19 16:12:25 -07:00
Julia
7e70e24bfc Remove server from both hashmaps 2023-06-19 18:02:57 -04:00
Julia
afa1434aa9 Get further reinstalling a server which died on startup 2023-06-19 17:45:27 -04:00
Max Brunsfeld
05d69c804c Fix issues with syntax highlighting in elixir and heex (#2629)
Fixes
https://linear.app/zed-industries/issue/Z-2391/text-within-h-isnt-highlighted-the-same-as-in-heex-files
Fixes
https://linear.app/zed-industries/issue/Z-2415/syntax-highlighting-bug-in-strings

Release Notes:

- Fixed some issues with syntax highlighting in Elixir and Heex.

If the release notes are only intended for a specific release channel
only, add `(<release_channel>-only)` to the end of the release note
line.
These will be removed by the person making the release.
2023-06-19 12:56:09 -07:00
Max Brunsfeld
04430fdbd6 Fix issues with syntax highlighting in elixir and heex 2023-06-19 12:34:46 -07:00
Julia
da2ee55013 Route some more information for reinstall after startup failure
Doesn't actually reinstall on that particular failure due to wrong
variant in hashmap
2023-06-19 15:18:12 -04:00
Mikayla Maki
6ad0b5d79f Change color representation in json schema 2023-06-19 11:47:11 -07:00
Mikayla Maki
ea46947489 Tidy up font schema a little 2023-06-19 11:36:42 -07:00
Mikayla Maki
193ad64d18 Add JsonSchema to container style and fix compile errors 2023-06-19 11:31:17 -07:00
Piotr Osiewicz
2a3c660d1f settings: accept trailing commas (#2606)
Z-2357

I've found a crate that handles both comments and trailing commas in
JSON. It is a fork of `serde_json`, but it is maintained & up-to-date.
Sadly RawValue seems to not play nicely with it; I've ran into
deserialisation issues around use of RawValue. For this PR I've migrated
to `Value` API.

Obviously this is just a point of discussion, not something I'd merge
straight away. There may be better solutions to this particular problem.

I've also noticed that `serde_json_lenient` does not handle trailing
commas after bindings array. I'm not sure how big of an issue that is.

Release Notes:
- Improved handling of trailing commas in settings files.
[#1322](https://github.com/zed-industries/community/issues/1322)
2023-06-19 18:29:03 +02:00
Antonio Scandurra
cb55356106 WIP 2023-06-19 17:53:05 +02:00
Antonio Scandurra
75e2329028 Allow for multi-cursor assist and cycle_role actions
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-06-19 17:23:40 +02:00
Antonio Scandurra
9191a82447 Remove Assistant::open_ai_request_messages 2023-06-19 14:35:33 +02:00
Antonio Scandurra
dc9231d5a3 Merge remote-tracking branch 'origin/main' into replies 2023-06-19 14:28:21 +02:00
Antonio Scandurra
70ccbbafc1 Allow message splitting with multiple cursors (#2627)
Closes
https://linear.app/zed-industries/issue/Z-2408/make-block-splitting-work-with-multiple-cursors
2023-06-19 12:07:16 +02:00
Piotr Osiewicz
3e3079b513 cargo fmt 2023-06-19 12:07:02 +02:00
Piotr Osiewicz
91f2f31daa Split git/project label into a flex row 2023-06-19 12:06:42 +02:00
Antonio Scandurra
c9df963142 Allow message splitting with multiple cursors 2023-06-19 12:00:45 +02:00
Joseph T. Lyons
c858ab263c Add pane activation bindings for Atom keymap (#2625)
Release Notes:

- N/A
2023-06-18 02:09:26 -04:00
Joseph T. Lyons
bb04d65b8e Add pane activation bindings for Atom keymap 2023-06-18 02:05:25 -04:00
Nate Butler
ffd1190cca Update rose pine theme family 2023-06-16 23:02:32 -04:00
Nathan Sobo
882009bc75 Save conversations to ~/.config/zed/conversations
Still need to implement loading / listing.
I'd really be rather write operations to a database. Maybe we
should be auto-saving? Integrating with panes? I just did
the simple thing for now.
2023-06-16 16:15:07 -06:00
Nathan Sobo
c3b2b4c4e3 Cycle message roles on ctrl-r (#2619)
I'd like to follow up to allow roles to be cycled for the selected range
and support multi-cursors, but this is a start and contains a
refactoring, so going to merge.

Release Notes:

- Added the ability to cycle roles in the assistant with `ctrl-r`
2023-06-16 14:11:01 -06:00
Kirill Bulatov
7ff194f21f React on message-less LSP requests properly (#2620) 2023-06-16 23:00:14 +03:00
Sergey Onufrienko
ac42522987 chore: remove ts-rs 2023-06-16 21:45:37 +02:00
Sergey Onufrienko
4badef19f1 feat: add Nodejs script to convert Json to TS 2023-06-16 21:39:22 +02:00
Sergey Onufrienko
6d6b7020a0 feat: export_schema 2023-06-16 21:38:06 +02:00
Sergey Onufrienko
a87b39a2d1 feat: add JsonSchema to Theme 2023-06-16 21:37:56 +02:00
Sergey Onufrienko
b45f5f0489 feat: add JsonSchema to gpui 2023-06-16 21:36:42 +02:00
Kirill Bulatov
77f5b5a80d React on message-less LSP requests properly
Co-Authored-By: Julia Risley <julia@zed.dev>
2023-06-16 22:02:29 +03:00
Nathan Sobo
54c71c1a35 Insert reply after the currently selected user message 2023-06-16 12:41:07 -06:00
Mikayla Maki
ecd2129c2f Add deafen and mute stubs 2023-06-16 11:16:36 -07:00
Nathan Sobo
11f318566e Allow splitting of messages using shift-enter (#2613)
Closes
https://linear.app/zed-industries/issue/Z-2364/allow-splitting-blocks

Release Notes:

- Added support for splitting messages in the assistant panel using
`shift-enter`. (preview-only)
2023-06-16 11:50:50 -06:00
Nathan Sobo
75b5ac8488 Cycle message roles on ctrl-r 2023-06-16 11:50:18 -06:00
Mikayla Maki
53062e8422 turn mic off by default in dev builds, add enviroment variable for turning it back on 2023-06-16 10:44:31 -07:00
Nathan Sobo
c179dd9990 Remove redundant tests 2023-06-16 11:43:16 -06:00
Mikayla Maki
dedc117cca Add audio APIs to Zed
Share mic on joining room
2023-06-16 10:13:27 -07:00
Nathan Sobo
6c0f65cfe0 Avoid inserting redundant newlines
Co-Authored-By: Piotr Osiewicz <piotr@zed.dev>
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-16 10:36:42 -06:00
Piotr Osiewicz
ef6cb11d5c Emit editor event whether we insert a newline or not. 2023-06-16 13:29:12 +02:00
Piotr Osiewicz
ae68be64c0 Move share button to the right hand side 2023-06-15 22:05:43 -07:00
Piotr Osiewicz
d079a0eb20 Render user avatar only if an user is not in a call 2023-06-15 22:05:43 -07:00
Piotr Osiewicz
83c1bb07bb Add background to user avatar 2023-06-15 22:05:43 -07:00
Piotr Osiewicz
433c5d30f5 Add Sign in button for an unregistered user 2023-06-15 22:05:43 -07:00
Piotr Osiewicz
092cf93dae Move zed actions to zed-actions 2023-06-15 22:05:43 -07:00
Piotr Osiewicz
4b87ce8952 add zed-actions crate 2023-06-15 22:05:43 -07:00
Piotr Osiewicz
0fe65b945f Remove user avatar from dropdown menu
Add new options in context menu
2023-06-15 22:05:43 -07:00
Piotr Osiewicz
5f7fdd25eb Fix compile error (use of moved value) 2023-06-15 22:05:43 -07:00
Mikayla Maki
47ef800dc6 WIP: Add face to right hand menu 2023-06-15 22:05:43 -07:00
Mikayla Maki
aac71fdcfe Remove border from sign in button
Co-authored-by: Piotr <piotr@zed.dev>
2023-06-15 22:05:43 -07:00
Mikayla Maki
8235d78afe Voice support (#2602)
This PR adds APIs for voice chat to our live kit integration

Release Notes:

- N/A
2023-06-15 19:40:01 -07:00
Mikayla Maki
d7dbc3b5d3 Implement test stubs 2023-06-15 19:28:59 -07:00
Max Brunsfeld
8592208d3a Fix failure to upload panics when multiple panics happen at the same time (#2616)
When multiple panics occur at the same time (usually because one thread
panics, and another thread joins it), multiple panic JSON objects can
get written to the same panic file. The resulting file won't be valid
JSON.

This PR addresses that problem via two changes:
* Format panic files as single-line JSON objects
* When a panic file  isn't valid JSON, try taking the first line

In the future, we could try combining all of the backtraces, but for
now, I just want to avoid a problem of not reporting a panic at all.

Release Notes:

- Fixed a problem with Zed's internal crash reporting.
2023-06-15 15:31:49 -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
Max Brunsfeld
e525706581 Fix failure to upload panics when multiple panics happen at the same time 2023-06-15 15:16:26 -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
Max Brunsfeld
5f93a4effd Don't rely on debug symbols for panic reporting (#2615)
This fixes a regression introduced in
https://github.com/zed-industries/zed/pull/2560, where panic reports did
not include backtraces. The problem was that in that PR, I assumed we
could retrieve file paths for symbols in our backtraces. But actually,
that functionality only works when the app is built locally, and a
`.dSYM` file can be magically found by the OS. We don't ship those dSYM
files with Zed, so panic symbols do not have file paths available.

Panic backtraces will still be more useful and less noisy than before
though: we will strip out frames for which we don't have symbol names,
and remove leading panic-handling stack frames from the backtraces.

Release Notes:

- N/A
2023-06-15 14:09:42 -07:00
Max Brunsfeld
e7e0f2183f Don't rely on debug symbols for panic reporting 2023-06-15 12:27:39 -07:00
Julia
abe5ecc5ec Actually fully start reinstalled language server 2023-06-15 13:56:07 -04:00
Julia
f81ccbd652 Setup C adapter with test binary 2023-06-15 12:18:34 -04:00
Julia
4d24eae901 Actually check and reinstall broken server 2023-06-15 12:18:34 -04:00
Julia
bca625a197 Many steps toward validating and reinstalling server after failure 2023-06-15 12:18:34 -04:00
Julia
ec0409a3d1 Detect LSP startup failure 2023-06-15 12:18:34 -04:00
Antonio Scandurra
0a8d67c4ca Activate screen-sharing when leader activates a panel (#2614)
Fixes
https://linear.app/zed-industries/issue/Z-1875/screen-sharing-tab-is-not-activated-when-leader-is-on-a-panel

Release Notes:

- Fixed a bug that caused followers to not see the leader's screen when
they activated a panel.
2023-06-15 18:13:07 +02:00
Antonio Scandurra
f068712a0a Activate screen-sharing when leader activates a panel 2023-06-15 18:01:30 +02:00
Nathan Sobo
8c6ba13fef Never insert an empty prefix when splitting a message with a non-empty range
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
Co-Authored-By: Piotr Osiewicz <piotr@zed.dev>
2023-06-15 09:02:15 -06:00
Nate Butler
0863486803 Add internal markdown docs (#2598)
This PR adds internal docs directly to the codebase.

There are a few goals here:

- Make it easier to document our internal processes
- Put the documentation where people already are
- Allow changes to be in sync with PRs
- Make it easier for people coming in to discover our docs and onboard
faster.

With 2 more people joining us in the next few weeks it would be great to
get these up.

Release Notes:

- N/A (No public facing changes)
2023-06-15 10:55:55 -04:00
Nate Butler
87c3216236 Fix design tools link 2023-06-15 10:38:15 -04:00
Nate Butler
5149db6acd Update docs/index.md
Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
2023-06-15 10:36:53 -04:00
Antonio Scandurra
21e8e8763e Allow splitting of messages using shift-enter 2023-06-15 14:05:26 +02:00
Piotr Osiewicz
86247bf657 editor: Highlight search results
Z-1292
2023-06-15 09:44:44 +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
Mikayla Maki
a4b009a497 Update test-app sound 2023-06-14 18:40:45 -07:00
Mikayla Maki
ce3847c9fc WIP: Use audio support to send live data 2023-06-14 18:40:45 -07:00
Mikayla Maki
bbf05c8eac Wire in audio APIs from swift
co-authored-by: nathan <nathan@zed.dev>
2023-06-14 18:40:45 -07:00
Mikayla Maki
8ccb75029f Add entitlements file to bundle step (#2611)
This completes the bundle changes that will be needed to access voice,
as well as adds permissions for accessing other MacOS services, the
camera, and the necessary permissions for plugins. This was developed by
combining the entitlements of iTerm and VSCode, cross-referenced with
the entitlements of Firefox. 

Release Notes:

- Fixed a bug in enabling authorization for macOS services (preview
only)
2023-06-14 18:06:55 -07:00
Mikayla Maki
b481e383ce Update bundle 2023-06-14 17:37:47 -07:00
Mikayla Maki
493e489c51 Add entitlements file to bundle step 2023-06-14 17:34:48 -07:00
Joseph Lyons
2e723cac62 v0.92.x dev 2023-06-14 13:27:36 -04:00
Mikayla Maki
75b1f60126 Add UsageDescriptions to Info.plist (#2609)
This updates our dependency on cargo-bundle to point at a fork I've
created that adjusts the latest version's behavior to work for our use
case. This PR also updates the Zed Info.plist to include the following
keys:

- NSSystemAdministrationUsageDescription
- NSAppleEventsUsageDescription
- NSBluetoothAlwaysUsageDescription
- NSCalendarsUsageDescription
- NSCameraUsageDescription
- NSContactsUsageDescription
- NSLocationAlwaysUsageDescription
- NSLocationUsageDescription
- NSLocationWhenInUseUsageDescription
- NSMicrophoneUsageDescription
- NSSpeechRecognitionUsageDescription
- NSRemindersUsageDescription

Release Notes:

- Bug fix: Allow applications run via the Zed terminal to request
authorization for macOS services (e.g. microphone and camera)
2023-06-14 10:04:54 -07:00
Antonio Scandurra
2b8b954c3e Overhaul assistant panel (#2610)
Closes
https://linear.app/zed-industries/issue/Z-2368/use-a-different-icon-for-the-assistant-panel
Closes
https://linear.app/zed-industries/issue/Z-2363/ship-the-assistant-only-on-preview
Closes
https://linear.app/zed-industries/issue/Z-2331/scrolling-makes-it-hard-to-read
Closes
https://linear.app/zed-industries/issue/Z-2306/allow-undo-and-collaboration-in-assistant

This pull request is a significant overhaul of the assistant panel,
which now uses a simple `Buffer` as opposed to a `MultiBuffer` to show
messages. Specifically, we track the start of each message with an
anchor located right after the newline (or `Anchor::MIN` for the first
message). When the anchor becomes invalid (that is, the newline is
deleted), we merge the message with the preceding ones. Crucially,
messages don't actually get deleted so that, if the newline anchor
becomes valid again (such as when undoing/redoing), we can restore the
messages as well.

As part of this overhaul, we are also improving the scrolling behavior
to maintain the viewport stable only when editing or moving the cursor,
but otherwise leave the scroll position unchanged when manually
scrolling up or down.

Note that with these changes, we are limiting access to the assistant to
users on preview (and dev), as we want to polish the behavior a little
more before shipping to the general public. Users on stable will still
be able to see the default settings/keybindings of the assistant, but I
think that's okay, as they won't be able to do anything with them.

Release Notes:

- Added support for undo/redo in the assistant (preview-only)
- Improved the scrolling behavior of the assistant when it was
generating responses. Now Zed will keep the viewport stable only when
editing or moving the cursor, but otherwise leave the scroll position
unchanged when manually scrolling up or down (preview-only)
- Changed the icon of the assistant panel (preview-only)

**Note for @JosephTLyons: given that we're feature flagging this, let's
make sure things on stable look reasonable and work correctly. Things to
look out for: ensure a stock installation works, changing the settings
on stable works, changing the keybinding on stable works.**
2023-06-14 14:09:09 +02:00
Antonio Scandurra
4efe62b3e5 Use robot icon for assistant to prevent confusion with conversations 2023-06-14 12:14:43 +02:00
Antonio Scandurra
049c987310 Avoid loading the assistant panel on stable 2023-06-14 12:08:49 +02:00
Antonio Scandurra
56b0bf8601 Save cursor scroll position when the editor is auto-scrolled 2023-06-14 12:00:27 +02:00
Antonio Scandurra
1aa1774688 Avoid auto-scrolling the editor when inserting/removing headers 2023-06-14 10:49:23 +02:00
Antonio Scandurra
f8b9417406 Keep cursor stable as autocompletions are being streamed 2023-06-14 10:41:18 +02:00
Antonio Scandurra
75ad76bfb2 💄 2023-06-14 09:47:30 +02:00
Antonio Scandurra
7dab17e233 Re-enable copy support in the assistant 2023-06-14 09:40:43 +02:00
Antonio Scandurra
27c83ca3f7 Remove unnecessary set_render_excerpt_header method 2023-06-14 09:38:49 +02:00
Antonio Scandurra
9b7617403d Parse buffer as Markdown 2023-06-14 09:31:41 +02:00
Antonio Scandurra
ea5d677ef8 Merge remote-tracking branch 'origin/main' into assistant-buffer 2023-06-14 09:16:45 +02:00
Mikayla Maki
adc8337ad4 Restore misconfigured Cargo.toml 2023-06-13 18:08:33 -07:00
Mikayla Maki
8ad7eb7598 Switch to using new version of cargo bundle with more capabilities 2023-06-13 18:01:51 -07:00
Kevin Hovsäter
b365e48ff0 Toggle comments for empty single line selections (#2594) 2023-06-13 20:15:11 +02:00
Max Brunsfeld
77367bf2e4 Move worktree tests into their own file (#2608)
The worktree has a lot of tests. Let's reduce their indentation, and
make it easier to navigate to them. We deserve it.

Just doing this in its own PR, to minimize conflicts.

Release Notes:

- N/A
2023-06-13 10:50:49 -07:00
Max Brunsfeld
5b6d1a27ff Flatten worktree tests module structure 2023-06-13 10:31:29 -07:00
Max Brunsfeld
c17dbab6f1 Move worktree tests to their own file 2023-06-13 10:22:14 -07:00
Piotr Osiewicz
b272db9e21 editor: Add language setting for comment continuations (#2605)
Per @JosephTLyons request I've added a language setting for comment
continuations.

Release Notes:

- Added a language setting for comment continuations.
2023-06-13 18:59:46 +02:00
Max Brunsfeld
aedef7bc58 Remove panic when programatically updating an invalid setting (#2607)
Fixes
https://linear.app/zed-industries/issue/Z-2170/thread-main-panicked-at-could-not-deserialize-setting-type-welcomebase
Fixes
https://linear.app/zed-industries/issue/Z-2228/thread-main-panicked-at-could-not-deserialize-setting-type
2023-06-13 09:50:54 -07:00
Max Brunsfeld
1cd11bfe66 Remove panic when programatically updating an invalid setting 2023-06-13 09:43:57 -07:00
Antonio Scandurra
0db0a1ccef Skip merged messages when inserting new ones
Co-Authored-By: Julia Risley <julia@zed.dev>
2023-06-13 16:06:50 +02:00
Antonio Scandurra
6e5de2fbbb Update blocks when cycling the message role
Co-Authored-By: Julia Risley <julia@zed.dev>
2023-06-13 16:00:13 +02:00
Antonio Scandurra
00cede63a8 Show message headers again
Co-Authored-By: Julia Risley <julia@zed.dev>
2023-06-13 15:55:52 +02:00
Antonio Scandurra
2842fc2b1d Merge messages whose header has been invalidated 2023-06-13 15:16:04 +02:00
Antonio Scandurra
2ae8b558b9 Get back to a compiling state with Buffer backing the assistant 2023-06-13 13:43:06 +02:00
Joseph T. Lyons
5e68dc5c92 Fix comments in settings files (#2604)
I accidentally added the information about folder-specific settings to
the user settings default file - just fixing that.

Release Notes:

- N/A
2023-06-13 04:06:53 -04:00
Joseph Lyons
5821bc4161 Fix comments in settings files 2023-06-13 04:03:51 -04:00
Max Brunsfeld
d8a2e176e6 Add support for HEEx templates in Elixir, fix a bug in handling nested language injections (#2603)
Closes https://linear.app/zed-industries/issue/Z-2211/heex-support

Release Notes:

- Added support for Elixir HEEx templates.
- Fixed a bug that caused incorrect syntax highlighting in ERB templates
([#1619](https://github.com/zed-industries/community/issues/1619)).
2023-06-12 17:49:07 -07:00
Max Brunsfeld
df76ab98cf Add Heex language 2023-06-12 17:32:20 -07:00
Max Brunsfeld
01bd5c30fc Fix syntax map bug with combined injections inside of other injections 2023-06-12 17:32:20 -07:00
Max Brunsfeld
ac1882b99b Move SyntaxMap tests to their own file 2023-06-12 16:24:17 -07:00
Max Brunsfeld
04e43899c0 Change action namespace to 'debug' for LSP log and syntax tree view 2023-06-12 15:54:36 -07:00
Max Brunsfeld
8542911eec Add a syntax tree view, for developing and debugging language support (#2601)
This PR adds a syntax tree view, which lets you view the syntax tree of
any layer in the active editor's `SyntaxMap`.

This view uses some new APIs that I added to Tree-sitter, which allow us
to efficiently render the syntax tree using a `UniformList`. Tree-sitter
PR: https://github.com/tree-sitter/tree-sitter/pull/2316

![Screen Shot 2023-06-12 at 3 33 36
PM](https://github.com/zed-industries/zed/assets/326587/2a27ee7b-bf29-4b3b-bfa8-fb47f97a2785)

Release Notes:

- Added a *syntax tree view* that shows Zed's internal syntax tree(s)
for the active editor. You can open it running the `debug: open syntax
tree view` command from the command palette.
2023-06-12 15:50:39 -07:00
Max Brunsfeld
018466171b Include field names in the syntax tree 2023-06-12 15:32:16 -07:00
Max Brunsfeld
594b9def20 Upgrade Tree-sitter 2023-06-12 15:31:59 -07:00
Max Brunsfeld
b4f3a88b38 Close the menu when selecting a different layer in the syntax tree view 2023-06-12 15:14:57 -07:00
Max Brunsfeld
56b749788f Improve the look of the syntax tree view UI 2023-06-12 15:14:57 -07:00
Max Brunsfeld
e969e3b028 Sync selection between syntax tree view and editor 2023-06-12 15:14:57 -07:00
Max Brunsfeld
086cfe57c5 Start work on a syntax tree view 2023-06-12 15:14:56 -07:00
Sergey Onufrienko
cfc1856210 feat: add ts export 2023-06-12 22:13:19 +02:00
Sergey Onufrienko
b494b43496 chore: add ts-rs 2023-06-12 22:12:24 +02:00
Piotr Osiewicz
3d02f7ce5f Move plugins to feature-gate (#2599)
This PR:
- Reduces our dependency count for a release build by 20%
- Reduces our release compile time by about 30s (out of ~5 minutes)
2023-06-12 21:04:09 +02:00
Antonio Scandurra
7db690b713 WIP 2023-06-12 17:50:13 +02:00
Nate Butler
7f71ee0870 Expand tools doc further 2023-06-12 09:45:42 -04:00
Nate Butler
f142449014 Add back links 2023-06-12 09:02:49 -04:00
Nate Butler
57ae64d44a Use simple markdown 2023-06-12 09:00:59 -04:00
Joseph T. Lyons
db5bb4ec03 Do not rely on user's system time for telemetry events (#2597)
Some user's don't have their system clocks configured right and we are
seeing events 10 years into the future. I'm stripping out the code that
adds time via the client and am adding it in on zed.dev. We will lose a
little accuracy, as the time will be when the batch hits the server, but
I think its negligible (currently, batches send up every 30 seconds, at
the max) and worth it to protect our data from user's who wonkily dont
set care about their system time.

- https://github.com/zed-industries/zed.dev/pull/332

Release Notes:

- N/A
2023-06-09 18:08:11 -04:00
Joseph Lyons
0b3b732310 Do not rely on user's system time for telemetry events 2023-06-09 18:02:20 -04:00
Max Brunsfeld
56a4c2afae Bump tree-sitter-yaml to avoid submodule error during build 2023-06-09 14:58:31 -07:00
Joseph T. Lyons
d8c1ab9c68 Fix formatter comment in default settings (#2593)
Fix comment related to the `formatter` configuration option in Zed's
default settings.

Release Notes:

- N/A
2023-06-09 15:14:04 -04:00
Max Brunsfeld
c1f1ee6b05 collab 0.14.2 2023-06-09 11:50:35 -07:00
Max Brunsfeld
b2bdca4779 Bump protocol version 2023-06-09 11:50:15 -07:00
Max Brunsfeld
097632467d collab 0.14.1 2023-06-09 11:37:47 -07:00
Max Brunsfeld
87efd25d42 Avoid dropping the worktree_repository_statuses table for now 2023-06-09 11:37:39 -07:00
Max Brunsfeld
bb65d75798 Enable rust backtraces on kubernetes 2023-06-09 11:15:21 -07:00
Max Brunsfeld
9cbb63d374 collab 0.14.0 2023-06-09 11:12:45 -07:00
Piotr Osiewicz
5bef2f1778 Z-2303 editor: fix comment extension on the start of line (#2595)
Release Notes:

- Improved comment extension for cases where cursor was placed before
start of comment marker
2023-06-09 20:02:51 +02:00
Max Brunsfeld
fb83ab8e9f Add outline support for Ruby singleton methods (#2592)
This pull request add support for Ruby singleton methods in the document
outline.

**Before**

<img width="1490" alt="outline-before"
src="https://github.com/zed-industries/zed/assets/503025/e90afd4c-bcdd-477b-92cf-fe34cec54980">

**After**

<img width="1493" alt="outline-after"
src="https://github.com/zed-industries/zed/assets/503025/067cc80b-7718-4395-9079-4677a689b9be">

Release Notes:

- Added support for singleton methods in Ruby outline view. Fixed
[#1442](https://github.com/zed-industries/community/issues/1442).
2023-06-09 08:35:34 -07:00
Max Brunsfeld
738b06a778 Update JavaScript outline queries (#2596)
Add support for exported const declarations in the outline view. Did not
include more context (e.g., whether or not the it's exported or not)
because we're not doing that for TypeScript right now. We could do that
in a follow up pull request, addressing both JavaScript and TypeScript
at once.


**Before**

<img width="1186" alt="outline-before"
src="https://github.com/zed-industries/zed/assets/503025/e72b0ed4-52b0-4a7c-af70-b2f4758e3554">

**After**

<img width="1186" alt="outline-after"
src="https://github.com/zed-industries/zed/assets/503025/cd91bc7f-8ce3-485f-9b33-d487ad6c718d">


Release Notes:

- Added support for exported const declarations in the JavaScript
outline view. Fixed
[#1399](https://github.com/zed-industries/community/issues/1399).
2023-06-09 08:34:14 -07:00
Kevin Hovsäter
4213cc013c Update JavaScript outline queries
Add support for exported const declarations in the outline view.
2023-06-09 15:33:27 +02:00
Kevin Hovsäter
6ce3f3bf27 Refactor toggle comment tests 2023-06-09 13:22:04 +02:00
Kevin Hovsäter
a8d43c6d71 Toggle comments for empty single line selections 2023-06-09 10:10:49 +02:00
Kevin Hovsäter
7deddd1149 Fix formatter comment in default settings 2023-06-09 08:08:07 +02:00
Kevin Hovsäter
57ff173e29 Add outline support for Ruby singleton methods 2023-06-09 07:31:09 +02:00
Nate Butler
85b049f250 Build tokens for each theme (#2590)
This PR adds the ability to export tokens for each theme. 

You can export tokens by:

1. `cd styles`
2. `npm run build-tokens`
3. Tokens will be output in the target folder (`styles/target`)

The tokens match the ColorScheme object. In the future we may also
export tokens for our styleTrees.

Release Notes:

- N/A (No public facing changes)

---
TODO:

- [x] Generate Token Studio theme index file
- [x] ColorScheme
    - [x] name:
    - [x] isLight
    - [x] lowest
    - [x] middle
    - [x] highest
    - [x] popoverShadow
    - [x] modalShadow
    - [x] players
    - [x] syntax
2023-06-08 16:40:46 -04:00
Nate Butler
ddcbc774ab $tokens.json => $themes.json 2023-06-08 16:36:15 -04:00
Nate Butler
e4cbc29f98 Update buildTokens to export $metadata.json and $themes.json 2023-06-08 16:19:28 -04:00
Max Brunsfeld
6304897abc Make the LSP log view searchable (#2591)
Also, I noticed errors in the logs of the Elixir LSP that we were
sending `goToTypeDefinition` requests, which that server does not
support. We now respect that server capability.

Release Notes:

- N/A
2023-06-08 13:15:05 -07:00
Nate Butler
3719c206c9 Only export color tokens for syntax 2023-06-08 15:14:59 -04:00
Nate Butler
91e1bb8fd4 WIP syntax tokens 2023-06-08 15:12:11 -04:00
Max Brunsfeld
a7f06f962b Enable type definition capability in fake LSPs in tests 2023-06-08 12:09:37 -07:00
Max Brunsfeld
e0dd9e4185 Make the LSP log view searchable 2023-06-08 11:33:20 -07:00
Max Brunsfeld
11dbbcc9dd Respect LSP goToTypeDefinition server capability 2023-06-08 11:33:09 -07:00
Nate Butler
999b2365a8 Export additional tokens, standardize naming convention 2023-06-08 12:21:51 -04:00
Max Brunsfeld
e3f319467a Enhance LSP log viewer to show server logs in addition to RPC trace (#2586)
In debugging what's going on with the Elixir language server, there was
some interesting content in the server's logs (sent to the app via the
`window/logMessage` LSP endpoint). I decided to invest in making
language server issues easier to debug by exposing these `logMessage`
contents in the app.

Also, improve the UI of the view slightly:

* Select one of the servers by default (instead of "no server selected")
* Make it clearer that the menu is clickable
2023-06-08 09:03:52 -07:00
Max Brunsfeld
908de23b72 Tweak LSP log menu styling 2023-06-08 08:58:57 -07:00
Max Brunsfeld
afaff7f9a9 Merge branch 'main' into lsp-log-messages 2023-06-08 08:49:08 -07:00
Max Brunsfeld
817644eb20 Style new lsp log menu, add a test for it 2023-06-08 08:43:25 -07:00
Nate Butler
e2f46d5448 Build layer tokens for each theme 2023-06-08 11:15:59 -04:00
Nate Butler
16e3e04501 Update TSConfig (#2589)
Based on #2558. Also fixes errors resulting from the stricter options.

Release Notes:

- N/A (No public facing changes)
2023-06-08 01:31:21 -04:00
Nate Butler
1e43fec1c5 Update buildLicenses to only include the theme url if there is one 2023-06-08 01:23:19 -04:00
Nate Butler
e996a66596 Update TSCondif
Based on #2558. Also fixes errors resulting from the stricter options.
2023-06-08 01:15:57 -04:00
Nate Butler
a75e9faa83 Add foundation for exporting tokens from our color schemes (#2588)
We removed our Figma Tokens/Tokens Studio export a while back when we
moved to the theme to ColorSchemes. I'd like to get back to exporting
these so we can be working from up to date themes in Figma, especially
with the large amount of UI design work we'll be doing in the next few
weeks on channels.

This PR adds some basic plumbing to start working through the
theme/colorScheme and export the parts as tokens.

I also discovered that Tokens Studio now publishes their types, so we
can use them directly rather than writing our own:
https://github.com/tokens-studio/types

Pulled those in and started connecting them as well.

Running `npm run build-tokens` will export the tokens for each theme to
`styles/target/tokens`.

Currently only a few element's tokens are exported, will expand this
further as time permits.

Release Notes:

- N/A (No public facing changes)
2023-06-08 00:53:16 -04:00
Nate Butler
c8a9d73ea6 Add foundation for exporting tokens 2023-06-08 00:37:00 -04:00
Nate Butler
d4192fc3e9 Organize misc files into theme, themes and styleTrees (#2587)
We've accumulated a number of miscellaneous folders in the styles
folder. Simplifying these down to `theme`, `themes` and `styleTrees`.

Release Notes:

- N/A (No public facing changes)
2023-06-07 22:47:48 -04:00
Mikayla Maki
8216d26a7a Switch to attaching git statuses to their associated entries (#2571)
This rewrites and simplifies the git status system by attaching the git
status to each individual entry. This also improves the git testing
infrastructure to cover more cases and be more accurate to how file
events actually occur. This also fixes several other bugs in the worktree and the buffer, and stops any randomly generated actions from happening inside a `.git` folder. Hopefully, we can undo this change soon once our randomized testing is more robust.

Release Notes:

- Will require a DB migration

TODO:
- [x] Pass randomized tests
- [x] Get ready for merging
2023-06-07 17:11:43 -07:00
Mikayla Maki
fc1f8c5657 Fixed ci 2023-06-07 16:58:55 -07:00
Mikayla Maki
8ca1a7d43d add scan_complete await 2023-06-07 16:51:54 -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
Mikayla Maki
9e9d8e3a7b add mroe dbg 2023-06-07 16:50:15 -07:00
Mikayla Maki
9d58c4526d Fix warning 2023-06-07 16:45:36 -07:00
Mikayla Maki
5f143f689f Attempting to debug on ci... 2023-06-07 16:44:13 -07:00
Mikayla Maki
572d40381a Add track caller 2023-06-07 16:39:10 -07:00
Mikayla Maki
2c5e83bf72 Fixed a bug where buffer saved clocks would desynchronize in rare execution paths
co-authored-by: Max <max@zed.dev>
2023-06-07 16:10:45 -07:00
Max Brunsfeld
78f9642ac2 Emit project event when a language server sends a logMessage notification 2023-06-07 14:46:08 -07:00
Mikayla Maki
cd63ec2c7f fmt 2023-06-07 14:20:01 -07:00
Mikayla Maki
03a96d2793 Feature gate import 2023-06-07 14:15:20 -07:00
Mikayla Maki
0ac7a3bc21 fmt 2023-06-07 14:13:57 -07:00
Mikayla Maki
28ba27c9c5 Merge branch 'main' into stream-git-statuses 2023-06-07 14:12:58 -07:00
Mikayla Maki
34e134fafb Fix several randomized test failures with the new git status implementation 2023-06-07 14:10:17 -07:00
Max Brunsfeld
351e4863cd Fix some issues found when testing Elixir-LS (#2583)
Closes
https://linear.app/zed-industries/issue/Z-2209/popovers-dont-always-have-syntax-highlighted-code
Closes
https://linear.app/zed-industries/issue/Z-2206/highlight-syntax-in-hover-docs

* Fix a ton of errors in our logs due to us not recognizing that
`elixir-ls` does not support code actions.
* Syntax-highlight elixir code blocks in hover popovers
2023-06-07 12:21:48 -07:00
Max Brunsfeld
11ab1a8cc6 collab 0.13.1 2023-06-07 10:54:27 -07:00
Max Brunsfeld
be8d268eb9 Bump tree-sitter-yaml submodule to avoid broken child submodule 2023-06-07 10:50:03 -07:00
Max Brunsfeld
72372ddf0e Highlight hover code blocks as LSP's own language by default
The elixir LSP does not include a language name on its elixir code blocks.
2023-06-07 10:01:19 -07:00
Nate Butler
86ec43c908 Update createColorScheme to accept ThemeConfig (#2557)
- Added ThemeConfig
- Updated themes use ThemeConfig
- Refactoring
- Fixed TypeScript errors

Release Notes:
- N/A (No public facing changes)
2023-06-07 12:57:34 -04:00
Nate Butler
29de420b59 Organize misc files into theme, themes and styleTrees 2023-06-07 12:50:37 -04:00
Nate Butler
6269cec4f1 Minor updates 2023-06-07 12:40:49 -04:00
Max Brunsfeld
6067575e38 collab 0.13.0 2023-06-07 09:29:58 -07:00
Max Brunsfeld
f56d642b88 Disable scheduled randomized test workflow for now 2023-06-07 09:20:25 -07:00
Joseph Lyons
8882b22c9c v0.91.x dev 2023-06-07 11:57:41 -04:00
Piotr Osiewicz
e94129446d Z 1618/extend comments (#2585)
Fixes Z-1618. In the current state, this only works for line comments
such as `//` (and whatever's set in `{language}.toml` as a
line_comment).

Release Notes:

- Comments are now extended on new line.
2023-06-07 17:37:02 +02:00
Sergii Onufriienko
b1f009cdce Merge branch 'main' into sergey/z-1768-update-createcolorscheme-to-accept-a-theme-in-the 2023-06-07 16:12:13 +01:00
Sergey Onufrienko
4c405e65a3 feat: use theme index to build licenses 2023-06-07 16:10:16 +01:00
Sergey Onufrienko
0ad76ac92c feat: use theme index to build themes 2023-06-07 16:10:02 +01:00
Sergey Onufrienko
02c1efc60d feat: re-export chroma 2023-06-07 16:09:24 +01:00
Sergey Onufrienko
f5d1f314e0 feat: add themes index 2023-06-07 16:08:58 +01:00
Sergey Onufrienko
d2b8501347 feat: change themes to return ThemeConfig 2023-06-07 16:08:48 +01:00
Antonio Scandurra
d5441ba386 Introduce an Assistant Panel (#2584)
This pull request introduces a new assistant panel to Zed that lets
users interact with OpenAI using their API key:

![CleanShot 2023-06-07 at 09 39
10@2x](https://github.com/zed-industries/zed/assets/482957/ba2a5830-9aeb-4c45-a182-a44d6a72675f)

After setting the key up, it will be saved to the keychain and
automatically loaded the next time the assistant panel is opened. The
key can be reset using `assistant: reset key`.

![CleanShot 2023-06-07 at 09 39
23@2x](https://github.com/zed-industries/zed/assets/482957/a6808bb0-0098-45ae-a2e3-f4d88472e626)

From there, users can type messages in a multi-buffer and hit
`cmd-enter` (`assistant: assist`) to stream assistant responses using
the OpenAI API. Responses can be canceled by hitting `escape`.

![CleanShot 2023-06-07 at 09 40
16@2x](https://github.com/zed-industries/zed/assets/482957/749779da-850e-4ad5-af04-74a3ca39f7ad)

Users can quote a selection from the active editor by hitting `cmd->`
(`assistant: quote selection`), which will embed the selected piece of
text in a Markdown fenced code block. Conversations with the assistant
are ephemeral at the moment, but can be easily copy/pasted:

![CleanShot 2023-06-07 at 09 50
33@2x](https://github.com/zed-industries/zed/assets/482957/b3386c10-4c51-4419-a0e0-517112ef6521)

Release Notes:

- Added a new assistant panel feature that enables interacting with
OpenAI using an API key. This replaces the previous experimental `ai:
assist` command that would work on any buffer. The experience is similar
to the one offered by ChatGPT with the added ability to edit, delete or
enhance previous messages. When hitting `cmd-enter`, the assistant will
start streaming responses from OpenAI. A response stream can be canceled
using `escape`. Moreover, the active editor's selection can be quoted in
the assistant panel using `cmd->`, which will automatically embed the
selected piece of text in a Markdown fenced code block.
2023-06-07 16:05:57 +02:00
Antonio Scandurra
d3e0d38bef Fix assistant panel tests 2023-06-07 15:24:08 +02:00
Antonio Scandurra
d26cc2c897 Maintain scroll bottom when streaming assistant responses 2023-06-07 15:01:50 +02:00
Antonio Scandurra
43500dbf60 Fix zed tests 2023-06-07 10:02:35 +02:00
Antonio Scandurra
0dae8f2dd8 Merge remote-tracking branch 'origin/main' into assistant-2 2023-06-07 09:34:16 +02:00
Antonio Scandurra
a6feaf1300 Allow search assistant editors 2023-06-07 09:24:18 +02:00
Joseph Lyons
c93b6cc599 Tweak comment wording 2023-06-07 00:23:58 -04:00
Max Brunsfeld
e8479f23f9 Improve log message on invalid LSP message from server's stdout 2023-06-06 17:13:59 -07:00
Max Brunsfeld
6f2726524e Remove stray println 2023-06-06 17:13:59 -07:00
Max Brunsfeld
fccbac4887 Handle LSP codeActions capability set to false 2023-06-06 17:13:59 -07:00
Max Brunsfeld
0d90c6d02e Improve syntax highlighting and outline view for Elixir (#2582)
Fixes
https://linear.app/zed-industries/issue/Z-2208/outline-view-doesnt-differentiate-between-overloaded-functions
Fixes
https://linear.app/zed-industries/issue/Z-2205/elixir-syntax-highlighting-not-working-properly-for-doc-attributes-and

This PR improves syntax highlighting and outline view in Elixir. It's
common to overload elixir functions, with many different versions of the
function for different patterns of parameters, so I updated the outline
view to show functions' parameters in Elixir. But if we showed functions
the same way in the *breadcrumbs*, it would take up too much space.

So I added a new capture in languages' `outline` queries called
`@context.extra`, which is included in the outline view, but not in
breadcrumbs.

Release Notes:

- Improved syntax highlighting of doc attributes and special macros in
Elixir
- Updated the outline view in Elixir to display function parameters, to
allow differentiating between function overloads.
2023-06-06 16:34:33 -07:00
Max Brunsfeld
4b9a3c66e6 Show function parameters in elixir outline view
Introduce a new capture in the outline query called 'context.extra', which
causes text to appear in the outline, but not in the breadcrumbs.
2023-06-06 16:27:05 -07:00
Max Brunsfeld
7aeaa84657 Fix the order of some patterns in elixir highlight query 2023-06-06 16:06:16 -07:00
Max Brunsfeld
8dc679e74e Upgrade tree-sitter-elixir 2023-06-06 16:06:16 -07:00
Max Brunsfeld
6737ee1495 Avoid panic when failing to load a language's queries 2023-06-06 16:06:16 -07:00
Piotr Osiewicz
cc63d3d048 chore: add targets to rust-toolchain.toml (#2581) 2023-06-07 00:12:47 +02:00
Max Brunsfeld
a9f865d828 Don't apply the 'literal' color to entire markdown code blocks (#2579)
### Before

![Screen Shot 2023-06-06 at 2 32 46
PM](https://github.com/zed-industries/zed/assets/326587/036f1da3-19c6-4979-adc6-c3133f8d63dc)

### After

![Screen Shot 2023-06-06 at 2 32 08
PM](https://github.com/zed-industries/zed/assets/326587/6d4729db-b76a-4052-847e-fd9de346f194)

Release Notes:

* Improved the syntax highlighting of fenced code blocks in markdown.
2023-06-06 14:54:24 -07:00
Piotr Osiewicz
dfd72770e7 chore: bump MSRV to 1.70, add rust-toolchain (#2580)
This time I've added a `components` section to rust-toolchain.toml file
to explicitly require a rustfmt component. Fingers crossed.
2023-06-06 23:49:34 +02:00
Max Brunsfeld
3fc2e0754b Don't apply the 'literal' color to entire markdown code blocks 2023-06-06 14:34:45 -07:00
Max Brunsfeld
bdd3e77e02 Live-reload tree-sitter queries in development (#2578)
This PR adds live reloading of Tree-sitter queries when running in debug
mode, similar to what we do for the themes. This way, you can change a
highlighting query or an outline query, and immediately see the result
in the app.

Release Notes:

- N/A
2023-06-06 14:30:28 -07:00
Max Brunsfeld
7bfb51ee76 Live-reload tree-sitter queries in development 2023-06-06 14:20:21 -07:00
Piotr Osiewicz
559a58d737 Revert "chore: bump MSRV to 1.70" (#2577)
Reverts zed-industries/zed#2573
2023-06-06 22:21:34 +02:00
Piotr Osiewicz
c1c91dc2e3 chore: bump MSRV to 1.70 (#2573)
Add rust-toolchain.toml

Release Notes:

- N/A
2023-06-06 21:50:27 +02:00
Piotr Osiewicz
572c59eec4 chore: Enable full LTO (#2548)
Per conversation with Antonio, I've suggested enabling full LTO; right
now we use a crate-local ThinLTO, which does not inline function calls
across crates.

| Configuration    | Current main (788f97e) | Thin LTO  | Full LTO  |
|------------------|------------------------|-----------|-----------|
| Size in bytes    | 158806721              | 155868753 | 111115553 |
| % of `main` size | 100%                   | 98.14%    | 69.96%    |
| Size in bytes (no debug info) | 129186657 | 127942929 | 108281345 |
2023-06-06 21:50:08 +02:00
Max Brunsfeld
17560cc5b0 Eliminate assets crate (#2575)
Previously, all static assets were embedded into Zed using a single
`RustEmbed` struct called `Assets`, which was in a crate of its own,
also called `assets`. Many crates depended on this crate. The problem
with this situation was that changing *any* static asset file caused
almost every crate in the codebase to need recompilation (because of
recursive dependencies on `assets`).

Now, most of the assets are embedded only into the top-level `zed`
crate. A few assets (such as settings JSON files and AI prompts) are
needed in lower-level crates such as `settings` and `ai`. For these,
I've created separate `RustEmbed` structs in those specific crates,
which embed those specific sub-folders of `assets`.

The result is that now, when you change a theme file, the only crate
that needs to recompile is `zed`.

Release Notes:

- N/A
2023-06-06 12:00:44 -07:00
Max Brunsfeld
dbbd0558c3 Eliminate assets crate 2023-06-06 11:46:46 -07:00
Joseph Lyons
2003d3dbe4 Update initial_user_settings.json 2023-06-06 14:39:56 -04:00
Antonio Scandurra
7a78e64831 Merge remote-tracking branch 'origin/main' into assistant-2 2023-06-06 19:18:22 +02:00
Antonio Scandurra
16090c35ae Insert reply after assistant message when hitting cmd-enter
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-06-06 19:15:06 +02:00
Antonio Scandurra
ef7ec265c8 Cycle message roles on click
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-06-06 18:45:08 +02:00
Max Brunsfeld
53906fd3da Add an application menu item for creating/opening a project-specific settings file (#2572)
Previously, project-specific settings were not discoverable. This PR
adds a `Zed > Preferences > Local Settings` application menu command
that creates a `.zed/settings.json` at the root of your current
worktree. This command works in both local and remote projects.

Limitations:

* Currently, if you have an empty project open, the command just shows a
notification that there are no folders open.
* The JSON-schema-based autocomplete is the same in local settings files
as in your main settings, even though not all settings can be locally
customized.

Release Notes:

- Added an application menu command - `Zed > Preferences > Local
Settings` for creating a folder-specific settings file.
2023-06-06 09:27:36 -07:00
Antonio Scandurra
ac7178068f Include message headers in copied assistant text
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-06-06 18:18:04 +02:00
Max Brunsfeld
cfcfc3bf6b Show notification when attempting to open local settings in a project w/ no folders 2023-06-06 09:03:57 -07:00
Antonio Scandurra
093ce8a9ac Simplify prompt
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-06-06 17:45:58 +02:00
Nate Butler
7b066df7e6 Tighten up spacing in the project panel (#2574)
Following https://github.com/zed-industries/zed/pull/2559 the project
panel entries become pretty wide again. This PR tries to mitigate that
and just make some general improvements to visual density in the project
panel.

- Reduces padding around items
- Removes top margin
- Slightly reduces the height of each item
- Fixes an issue where ignored files had the wrong color chevron

Release Notes:

- Improved density of the project panel and tidied up some visual
issues.
2023-06-06 11:31:53 -04:00
Piotr Osiewicz
a0e2e5db7d project panel/styles: Align child's chevron with parent path (#2559)
Z-1012

Release notes:
- Adjust indent of files in subdirectories.
2023-06-06 16:55:38 +02:00
Antonio Scandurra
2b1aeb07bc Show error message when requests to OpenAI fail
Co-Authored-By: Julia Risley <julia@zed.dev>
2023-06-06 16:53:56 +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
Antonio Scandurra
69b8267b6b Show the current model and allow clicking on it to change it 2023-06-06 13:13:44 +02:00
Antonio Scandurra
ada222078c Insert a user reply when hitting cmd-enter in an assistant message 2023-06-06 13:13:41 +02:00
Antonio Scandurra
f4f060667e Add assertion to pinpoint how deletion works across excerpts 2023-06-06 12:36:26 +02:00
Antonio Scandurra
337dda8e3a Only remove excerpts when an edit touches them 2023-06-06 12:27:05 +02:00
Antonio Scandurra
8032324470 Prevent moving across excerpts on Editor::delete 2023-06-06 12:26:53 +02:00
Antonio Scandurra
e46d1549d6 Retain selection's head (as opposed to its end) on insertion
This makes a difference when an edit spans two excerpts and the selection
start won't necessarily be the same as the selection end after the edit.
2023-06-06 10:12:15 +02:00
Nathan Sobo
23836eb251 Not working yet: Remove empty messages unless they contain the cursor
Problem is, I'm trying to trust the excerpt id of the selection head,
but it's a sentinel value and not the actual excerpt id of the message.
I think we probably need to resolve to offsets instead.
2023-06-05 22:58:08 -06:00
Max Brunsfeld
296a0bf510 Populate created local settings file with an empty JSON object and comments 2023-06-05 18:20:02 -07:00
Max Brunsfeld
cb975f1252 Add Zed > Preferences > Local Settings to application menu 2023-06-05 17:45:42 -07:00
Max Brunsfeld
0949ee84d8 🎨 Move OpenSettings action back to the zed crate 2023-06-05 17:43:05 -07:00
Mikayla Maki
a2d58068a7 Improve test generation and implement status propogation
co-authored-by: max <max@zed.dev>
2023-06-05 17:30:12 -07:00
Mikayla Maki
c12bdc894a Silence not found errors 2023-06-05 15:19:59 -07:00
Max Brunsfeld
398b0f303c Apply bounds to all windows when using start-local-collaboration script (#2570)
The `start-local-collaboration` script opens two instances of Zed, each
logged in as a different user, and each one taking up half of the
screen. But previously, when joining a remote project as one of the
collaborators, that newly-opened window would be full screen.

Now, each instance of Zed keeps *all* of its windows on its half of the
screen. This is implemented by respecting the `ZED_WINDOW_{SIZE,BOUNDS}`
env vars, even when joining *remote* projects.

Release Notes:

- N/A
2023-06-05 14:49:39 -07:00
Max Brunsfeld
3d1ba1b363 Apply bounds to all windows when using start-local-collaboration script 2023-06-05 14:36:21 -07:00
Max Brunsfeld
571151173c Fix copilot state corruption when there are multiple buffers with the same remote id in different projects (#2569)
Fixes
https://linear.app/zed-industries/issue/Z-1511/thread-main-panicked-at-assertion-failed-left-==-right-left-local-0-1

Previously, when exchanging messages about buffers with a copilot
language server, we identified buffers using their **remote id**. This
caused problems when there were multiple projects open, where one or
more were remote, because buffers' remote ids are only unique within a
given project.

When you have multiple projects open, and one or more of the projects is
remote, it's pretty easy to have two buffers open with the same remote
id. In my testing, when this happened, copilot would stop working in
both buffers. But I believe that depending on the editing patterns that
occur in the two buffers, it could cause the crash reported in the
Linear issue above.

This PR changes our copilot logic to use buffers' local handle ids for
identifying them. This fixed the problems I was able to reproduce when
using copilot in both remote and local projects.

Release Notes:

- Fixed a crash that would sometimes occur when editing buffers after
having collaborated on a remote project.
2023-06-05 14:33:56 -07:00
Max Brunsfeld
12dd91c89c Use local ids, not remote ids, to identify buffers to copilot 2023-06-05 14:12:19 -07:00
Mikayla Maki
5e4da6433f Add file and line number information to logs (#2568)
This PR adds codegen from rustc to track the file and line number of
calls to `log_err()`. I haven't noticed much longer compile times on my
machine, and looking at the
[implementation](https://rustc-dev-guide.rust-lang.org/backend/implicit-caller-location.html)
it essentially adds an extra argument and secret reference pass.
However, this will show a lot more data in our logs on user machines.
Requesting review from @ForLoveOfCats, who usually knows a bunch about
this kind of thing :)
2023-06-05 13:24:07 -07:00
Mikayla Maki
624467ebca Add file and line number information to logs 2023-06-05 12:53:37 -07:00
Mikayla Maki
9a13a2ba2c WIP: Add status bubbling to project panel 2023-06-05 12:53:04 -07:00
Joseph T. Lyons
7fbafc8030 Remove code sending zed events to mixpanel (#2567)
Release Notes:

- N/A
2023-06-05 15:40:27 -04:00
Joseph Lyons
311074e397 Remove code sending zed events to mixpanel 2023-06-05 15:33:17 -04:00
Mikayla Maki
49c5a3fa86 Add postgres migration 2023-06-05 12:17:21 -07:00
Joseph T. Lyons
2190a27dff Stop sending editor events to mixpanel (#2566)
Release Notes:

- N/A
2023-06-05 15:15:30 -04:00
Joseph Lyons
70c5489c13 Stop sending editor events to mixpanel 2023-06-05 15:09:47 -04:00
Mikayla Maki
4ac5f7b14e Add statuses to test integration 2023-06-05 12:06:23 -07:00
Mikayla Maki
e56fcd69b5 Track git status changes with the changed_paths system 2023-06-05 11:50:23 -07:00
Joseph T. Lyons
4f3165692f Move app version into panic object (#2565)
Final tweaks to clean up how we structure our panic data

Release Notes:

- N/A
2023-06-05 14:40:28 -04:00
Joseph Lyons
917d8949b7 Move app version into panic object 2023-06-05 14:17:48 -04:00
Julia
6b89243902 Update rust-bindgen dev-dependencies (#2563)
I did \*something\* Friday afternoon which changed something about my
system SDK to break the `media` crate's bindings generation. Some of the
types and consts were not being generated despite being able to prove
that they exist in the source, such as when running the header through
the preprocessor myself and feeding that through the generator. Updating
my OS, XCode, command line tools, and reinstalling Rust as well as
working from fresh clones of the repo had no effect.

Updating rust-bindgen resolved the issue and downgrading the version
back to the original version caused the issue to reappear. I'm still not
sure what happened to change the SDK but at this point with being able
to build the project again I'm not going to look a gift horse in the
mouth.

Release Notes:

- N/A
2023-06-05 09:21:07 -04:00
Antonio Scandurra
0ed8bbc818 Query rect_for_text_range on focused view instead of root element (#2564)
This was causing IME input to be drawn in the wrong place when there
were splits or panels in the window.

Release Notes:

- Fixed a bug that was causing IME input to sometimes be rendered in the
wrong position.
2023-06-05 12:11:35 +02:00
Antonio Scandurra
c872f581d1 Query rect_for_text_range on focused view instead of root element
This was causing IME input to be drawn in the wrong place when there
were splits or panels in the window.
2023-06-05 12:00:40 +02:00
Antonio Scandurra
bef6932da7 Avoid accidentally taking the api_key when requesting an assist 2023-06-05 11:25:21 +02:00
Julia
5790d6993e Update rust-bindgen dev-dependencies 2023-06-04 23:34:22 -04:00
Joseph T. Lyons
a89f3ed445 Fix typos (#2562)
Quite literally just ran `typos --write-changes` from
https://crates.io/crates/typos. Its pretty impressive - wonder if we
should run it on CI.

Release Notes:

- N/A
2023-06-02 22:08:45 -04:00
Joseph Lyons
7c60f636d5 Fix typos 2023-06-02 22:02:19 -04:00
Mikayla Maki
ca077408d7 Fix bug where git statuses would not be initialized on startup
move git status queries to be on entry creation

co-authored-by: max <max@zed.dev>
2023-06-02 17:38:39 -07:00
Mikayla Maki
2f97c7a4f1 Remove stale comments
Implement status bubbling query with sum tree traversals

co-authored-by: max <max@zed.dev>
2023-06-02 16:41:01 -07:00
Mikayla Maki
e377459948 Remove stateful bubbling
co-authored-by: max <max@zed.dev>
2023-06-02 15:07:49 -07:00
Mikayla Maki
99a0e11e70 Abandoning stateful bubbling approach
co-authored-by: max <max@zed.dev>
2023-06-02 14:51:40 -07:00
Max Brunsfeld
46d2cbaa4c Improve panic reports (#2560)
* Add an `identifying_backtrace` field that only contains symbols in
*our* own codebase, which can be used for better deduplication.
* In the main backtrace, include file and line numbers for all symbols
in our codebase
* Exclude any stack frames within the panic handling/hooking system
itself, so that the top line of the backtrace is where the panic
originated in our codebase.

This should improve our panic deduplication, and also make panic reports
a bit more readable.

example:

```
{
  "thread": "main",
  "payload": "wtf",
  "location_data": {
    "file": "crates/zed/src/zed.rs",
    "line": 459
  },
  "backtrace": [
    "zed::open_log_file::{{closure}}::{{closure}}::{{closure}}",
    "    crates/zed/src/zed.rs:459",
    "gpui::app::AppContext::spawn_internal::{{closure}}",
    "    crates/gpui/src/app.rs:2073",
    "gpui::executor::any_local_future::{{closure}}",
    "    crates/gpui/src/executor.rs:1026",
    "<core::pin::Pin<P> as core::future::future::Future>::poll",
    "<async_task::runnable::spawn_local::Checked<F> as core::future::future::Future>::poll",
    "async_task::raw::RawTask<F,T,S>::run",
    "async_task::runnable::Runnable::run",
    "<gpui::platform::mac::dispatcher::Dispatcher as gpui::platform::Dispatcher>::run_on_main_thread::trampoline",
    "    crates/gpui/src/platform/mac/dispatcher.rs:40",
    "<() as objc::message::MessageArguments>::invoke",
    "objc::message::platform::send_unverified",
    "objc::message::send_message",
    "<gpui::platform::mac::platform::MacForegroundPlatform as gpui::platform::ForegroundPlatform>::run",
    "    crates/gpui/src/platform/mac/platform.rs:366",
    "gpui::app::App::run",
    "    crates/gpui/src/app.rs:251",
    "Zed::main",
    "    crates/zed/src/main.rs:118",
    "core::ops::function::FnOnce::call_once",
    "std::sys_common::backtrace::__rust_begin_short_backtrace",
    "std::rt::lang_start::{{closure}}",
    "core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once",
    "std::rt::lang_start"
  ],
  "release_channel": "dev",
  "os_name": "macOS",
  "os_version": "12.6.1",
  "architecture": "aarch64",
  "panicked_on": 1685734744050,
  "identifying_backtrace": [
    "zed::open_log_file::{{closure}}::{{closure}}::{{closure}}",
    "gpui::app::AppContext::spawn_internal::{{closure}}",
    "gpui::executor::any_local_future::{{closure}}",
    "<gpui::platform::mac::dispatcher::Dispatcher as gpui::platform::Dispatcher>::run_on_main_thread::trampoline",
    "<gpui::platform::mac::platform::MacForegroundPlatform as gpui::platform::ForegroundPlatform>::run",
    "gpui::app::App::run",
    "Zed::main"
  ]
}
```

Release Notes:

N/A
2023-06-02 13:11:57 -07:00
Max Brunsfeld
33c4c32196 Avoid writing spurious nulls to the settings file when updating it programatically (#2561)
Thanks for catching this @iamnbutler.
2023-06-02 13:11:35 -07:00
Max Brunsfeld
7417835f06 Avoid writing spurious nulls to settings file when updating it programatically 2023-06-02 13:02:17 -07:00
Max Brunsfeld
f6a4706410 Improve panic reports
* Add an 'identifying_backtrace' field that only contains symbols in our
  codebase, which can be used for better deduplication.
* In the main backtrace, include file and line numbers for all symbols
  in our codebase
2023-06-02 12:37:39 -07:00
Joseph T. Lyons
00265c19a0 Add additional panic information to panic events (#2555)
Adds the following to the panic event

release_channel
os_name
os_version
architecture

Merge first: https://github.com/zed-industries/zed.dev/pull/322

Release Notes:

- N/A
2023-06-02 14:30:16 -04:00
Piotr Osiewicz
345fad3e9d editor: add select previous command (#2556)
Added a `select previous` command to complement `select next`.
Release Notes:

- Added "Select previous" editor command, mirroring `Select next`.
Ticket number: Z-366
2023-06-02 17:32:34 +02:00
Antonio Scandurra
f00f16fe37 Show remaining tokens 2023-06-02 17:27:21 +02:00
Sergey Onufrienko
f97999d97f feat: update themes to use ThemeConfig 2023-06-02 14:11:11 +02:00
Sergey Onufrienko
5fbbc1936f fix: typescript errors 2023-06-02 14:10:44 +02:00
Sergey Onufrienko
b38f760fcd feat: add index export 2023-06-02 14:10:19 +02:00
Sergey Onufrienko
d3ed958308 chore: make SyntaxHighlightStyle.color optional 2023-06-02 14:10:02 +02:00
Sergey Onufrienko
6b00db75ad feat: update and refactor colorScheme 2023-06-02 14:08:35 +02:00
Sergey Onufrienko
56ecfaf2f0 feat: add themeConfig types 2023-06-02 14:07:43 +02:00
Antonio Scandurra
3750e64d9f Save OpenAI API key in the keychain 2023-06-02 12:15:25 +02:00
Piotr Osiewicz
571d2f4966 Z-1074/search default label (#2547)
This commit adds a default "Project search" tooltip for empty search
panes. Fixes Linear ticket Z-1074
Release Notes:

- Added default tooltip to empty search panes.
([#1533](https://github.com/zed-industries/community/issues/1533)).
2023-06-02 11:42:40 +02:00
Antonio Scandurra
a81d164ea6 Allow saving the OpenAI API key in the assistant panel 2023-06-02 11:38:02 +02:00
Antonio Scandurra
d0aff65b1c Allow moving the assistant panel to other docks 2023-06-02 10:55:19 +02:00
Antonio Scandurra
55c8c6d3fb Allow adding new contexts 2023-06-02 10:29:22 +02:00
Antonio Scandurra
cf934ab696 Fix compile errors 2023-06-02 10:08:06 +02:00
Antonio Scandurra
20e65a533c Merge remote-tracking branch 'origin/main' into assistant-2 2023-06-02 09:32:11 +02:00
Mikayla Maki
3768851799 WIP: Git statuses 2023-06-01 23:27:49 -07:00
Joseph Lyons
c55aee84d3 Rename field to panicked_on 2023-06-02 01:33:25 -04:00
Joseph Lyons
cc055901e1 Add additional panic information to panic events 2023-06-01 23:34:39 -04:00
Mikayla Maki
5e43dcaab8 WIP: Add stateful status bubbling to worktree 2023-06-01 16:51:34 -07:00
Max Brunsfeld
0bd9d5b1fa Zoom out all panes when opening a dock (#2554)
Fixes
https://linear.app/zed-industries/issue/Z-2051/center-zoom-isnt-unset-when-opening-project-panel

Release Notes:

- Fixed a bug where opening the project panel did not reset the zoom
state of a pane.
2023-06-01 15:26:46 -07:00
Max Brunsfeld
585d13d3db Unzoom all panes when opening a dock 2023-06-01 15:20:15 -07:00
Max Brunsfeld
a55eafa726 Fix ambiguous glob export warnings in rust 1.70 (#2553)
This fixes a warning that is introduced when upgrading to Rust 1.70.

Release Notes:

- N/A
2023-06-01 14:37:36 -07:00
Max Brunsfeld
e67e6e6f70 Fix ambiguous glob export warnings in rust 1.70 2023-06-01 14:07:59 -07:00
Joseph T. Lyons
6d24a8a763 Add panic events (#2552)
Adds a time field to support panic events.  See

https://github.com/zed-industries/zed.dev/pull/321

Release Notes:

- N/A
2023-06-01 16:47:29 -04:00
Joseph Lyons
0065f5715c Add panic events 2023-06-01 16:40:54 -04:00
Mikayla Maki
9d6b3744f7 Redraw the terminal on every wakeup (#2551)
For whatever reason, the optimizations of panes and workspace have
caused the terminal to notify less often then it should. This PR fixes
that oversight.
2023-06-01 10:56:13 -07:00
Mikayla Maki
40c6baf7cb Redraw the terminal on every wakeup
co-authored-by: max <max@zed.dev>
2023-06-01 10:49:31 -07:00
Mikayla Maki
d64dc3960d Make settings store handle no user settings (#2550)
This fixes the crash users have been reporting with the theme selector
2023-06-01 10:25:30 -07:00
Mikayla Maki
2390815d67 Make settings store handle no user settings
co-authored-by: max <max@zed.dev>
2023-06-01 10:09:04 -07:00
Julia
2ffbeca7dd Avoid blocking forever on startup if config files do not exist (#2549)
The files will still get created if the user opens their settings and
saves, otherwise everything will transparently work

Release Notes:

- Fixed an issue where a missing settings file would cause a hang on
startup
([#1590](https://github.com/zed-industries/community/issues/1590)).
2023-06-01 12:13:22 -04:00
Julia
51c82da840 Avoid blocking forever on startup if config files do not exist
The files will still get created if the user opens their settings and
saves, otherwise everything will transparently work

Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-06-01 12:04:45 -04:00
Kirill Bulatov
d8ce333cf8 Remove wrong assertion 2023-06-01 16:51:29 +03:00
Piotr Osiewicz
01621972c5 Change "Project search" to "Project Search" 2023-06-01 12:31:37 +02:00
Piotr Osiewicz
e1a6dc9077 search: Add a default tooltip for empty searches
Z-1074
2023-06-01 11:17:33 +02:00
Max Brunsfeld
788f97ec68 Add support for folder-specific settings (#2537)
This PR allows you to customize Zed's settings within a particular
folder by creating a `.zed/settings.json` file within that folder.

Todo

* [x] respect folder-specific settings for local projects
* [x] respect folder-specific settings in remote projects
* [x] pass a path when retrieving editor/language settings
* [x] pass a path when retrieving copilot settings
* [ ] update the `Setting` trait to make it clear which types of
settings are locally overridable

Release Notes:

* Added support for folder-specific settings. You can customize Zed's
settings within a particular folder by creating a `.zed` directory and a
`.zed/settings.json` file within that folder.
2023-05-31 16:27:08 -07:00
Max Brunsfeld
ae7606ce21 collab 0.12.5 2023-05-31 15:38:26 -07:00
Max Brunsfeld
0d281c1b89 🎨 2023-05-31 15:13:01 -07:00
Max Brunsfeld
0dd7694ff5 Make language_settings take a language, not a language name 2023-05-31 15:10:30 -07:00
Max Brunsfeld
03a351fb26 Make language settings accessors take an arc dyn file 2023-05-31 14:57:04 -07:00
Max Brunsfeld
38078b93cc v0.90.x dev 2023-05-31 14:44:48 -07:00
Max Brunsfeld
a2ab7c9eb9 Respect project-specific settings for copilot 2023-05-31 14:42:15 -07: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
62660f2766 Fix more issues with panels and zoom (#2545)
Release Notes:

* Fixed the behavior of panel buttons when their panel is open. Show the
key binding for closing the containing dock (preview only).
* Improved the styling of zoomed panels and panes, giving them a
stronger border, and color the zoom button with an "active" style
(preview only).
* Improved the stability of panels' zoom state. Close their dock instead
of resetting their zoom state when dismissing panels to reveal other
items (preview only).
2023-05-31 13:17:12 -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
Mikayla Maki
4717ce1da3 WIP: Move statuses to entries
co-authored-by: julia <julia@zed.dev>
2023-05-31 12:55:31 -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
Nate Butler
1f72f9e18b Add un-hooked up zoomIcon styles 2023-05-31 12:45:55 -07:00
Nate Butler
a10933c063 Update pane/panel zoom styling 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
Mikayla Maki
22e4086658 WIP: Move statuses to be on their associated file entries in worktree
co-authored-by: Julia <julia@zed.dev>
2023-05-31 11:03:11 -07:00
Sergii Onufriienko
c6672dbac2 Update theme license logic (#2541)
Use new theme file structure
```
themes/
  [theme_name]
    [theme_name]-common.ts
    [theme_name]-light.ts
    [theme_name]-dark.ts
    LICENSE
```

Release Notes: 
- N/A
2023-05-31 18:36:13 +01:00
Max Brunsfeld
76927b6d95 Make active panel's button close its dock 2023-05-31 10:29:59 -07:00
Max Brunsfeld
eeba72d775 Bump protocol version 2023-05-31 09:03:45 -07:00
Max Brunsfeld
8f95435548 Replicate project-specific settings when collaborating 2023-05-30 18:08:03 -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
584e5f7958 Fix usability issues with new panel system. (#2544)
This PR updates the dock key bindings according to the following model:

There are three bits: 
Visible: Opened / closed.
Focus: Panel focused / center focused.
Zoom: Zoomed / Not zoomed.

Each of these variables is 'sticky' in that they won't effect each other
unless they need to. 'Zooming' a panel conceptually merges the visible
and focus bits.

cmd-shift-j/b/r have all been removed.

cmd-j/b/r have been updated to mean 'toggle visibility of a certain
dock', firing them should *always* reveal the panel to you (where you
last left it), or hide it, without moving focus (unless the focused
element is invisible). This means that, when the terminal panel is
zoomed, cmd-j has the same effect as ctrl-`

ctrl-` and cmd-shift-e now toggle a panel's focus, without updating the
zoom state of a panel. Toggling the focus of a zoomed panel causes it to
automatically hide itself, without losing the zoom bit.

When focused or made visible, panels which cannot be zoomed
automatically unzoom everything else so as to preserve user intent of
'show me this panel' and 'everything stays where it is if I don't take
an action'

Release Notes:

- cmd-shift-j/b/r have been removed.  (preview only)
- cmd-j/b/r unconditionally show or hide their associated dock,
respecting zoom settings. (preview only)
- ctrl-` and cmd-shift-e now retain zoom state. (preview only)
- Fixed a bug where terminal dock tab would always be in the active
state (preview only)
- Fixed a bug where terminals would not always open in the terminal
panel
- Changed the look of zoomed panels to fill more of the screen (preview
only)
2023-05-30 16:39:06 -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
Julia
8f0fc918e9 TextStyle::default() ask system for known existing font family (#2542)
Rather than assuming a specific family exists, try a set of specific
names and if they fail, just grab any old font that the system reports
as existing

Closes
https://linear.app/zed-industries/issue/Z-445/thread-main-panicked-at-called-resultunwrap-on-an-err-value-could-not

Release Notes:

* Fixed crash that could happen if system did not have a specific
fallback font
2023-05-30 16:25:07 -04: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
Joseph Lyons
efcf78cbe9 Update pull_request_template.md 2023-05-30 15:15:20 -04:00
Joseph T. Lyons
e9ce85ebc0 Scrape email from feedback editor (#2543)
Add release note lines here:

N/A
2023-05-30 15:13:35 -04:00
Joseph Lyons
501f9ab2c6 Scrape email from feedback editor 2023-05-30 15:06:35 -04: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
Julia
31516b7863 TextStyle::default() ask system for known existing font family
Rather than assuming a specific family exists, try a set of specific
names and if they fail, just grab any old font that the system reports
as existing

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-05-30 14:46:27 -04:00
Sergey Onufrienko
51c7078f47 chore: remove license_text 2023-05-30 18:16:50 +02:00
Sergey Onufrienko
4568f80f2e feat: read from LICENSE file 2023-05-30 18:12:31 +02:00
Sergey Onufrienko
14efc18eca refactor: add license file and check it exists 2023-05-30 18:11:54 +02:00
Sergey Onufrienko
05d1dd6b11 refactor: move common to theme folder 2023-05-30 16:53:12 +02:00
Sergey Onufrienko
ac63043c27 chore: move similar themes to one folder 2023-05-30 16:52:28 +02:00
Sergey Onufrienko
0d62e76cd6 refactor: colorSchemes 2023-05-30 15:52:32 +02:00
Antonio Scandurra
69e8a166e4 Start on assistant::QuoteSelection 2023-05-30 15:25:53 +02:00
Antonio Scandurra
dc365472a6 Merge remote-tracking branch 'origin/main' into assistant-2 2023-05-30 15:11:06 +02:00
Antonio Scandurra
1fc9103b61 Remove methods taking &mut Workspace from Pane (#2540)
This pull request simplifies the `Pane` struct by replacing methods like
`Pane::add_item` that would previously take a `&mut Workspace` with
methods that take a `&mut self`. When access to the workspace is needed,
we now either emit an event from the `Pane` or directly move the method
to the `Workspace` struct.
2023-05-30 15:01:35 +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
Sergey Onufrienko
2269c19169 chore: add LICENSE files 2023-05-30 14:06:19 +02:00
Nathan Sobo
8a851ad7f8 Fix annoying system prompt (#2538)
I was having fun, but it was too much. It makes the assistant too
annoying to be useful.

Release Notes:

Use `N/A` in this section if this item should be skipped in the release
notes.

Add release note lines here:

* Dialed back the system prompt on the assistant.
2023-05-29 22:05:40 -06:00
Nathan Sobo
063613bf4e Fix annoying system prompt
I was having fun, but it was too much. It makes the assistant too annoying to be useful.
2023-05-29 21:47:59 -06:00
Max Brunsfeld
ed0fa2404c Use settings JSON schema when editing local settings files 2023-05-29 14:31:54 -07:00
Max Brunsfeld
89446c7fd4 Start work on respecting project-specific settings 2023-05-29 14:25:49 -07: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
Antonio Scandurra
890c42a75a Show time in assistant messages 2023-05-29 16:23:16 +02:00
Kirill Bulatov
edf8e276af Improves project search panel shortcut handling (#2536)
* ESC (project_search::ToggleFocus) toggles focus from include/exclude
fields to the editor

* Cmd+Shift+F (workspace::NewSearch) can be triggered from the editor,
and moves focus to the query editor

Release Notes:

* Improved project search panel shortcut handling, allowing more actions
to trigger from panel elements
2023-05-29 17:06:38 +03:00
Kirill Bulatov
d593377e45 Improves project search panel shortcut handling
* ESC (project_search::ToggleFocus) toggles focus from
  include/exclude fields to the editor

* Cmd+Shift+F (workspace::NewSearch) can be triggered from the editor,
and moves focus to the query editor
2023-05-29 16:58:06 +03:00
Antonio Scandurra
52e8bf2928 Show custom header for assistant messages 2023-05-29 15:57:55 +02:00
Sergey Onufrienko
cf75b090d3 feat: organize themes by folders with LICENSE 2023-05-29 15:45:13 +02:00
Kirill Bulatov
986b02e217 Update LSP to the newest version (#2535)
Current `lsp-types:0.91.1` crate lacks inlay hints' definitions. Crate's
changelog is not very descriptive, but it appears that `0.92.1` could be
used:
https://github.com/gluon-lang/lsp-types/blob/master/CHANGELOG.md#v0921-2022-03-21
The latest is crate version is `0.94.0` (2023-02-08), the PR updates Zed
to the latest version.


Notable changes:
* workspace symbols may arrive unresolved if the corresponding client
capability is enabled:
https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#partialResults
Zed has this capability disabled, forcing all symbols to arrive
synchronously (?).

Resolve capabilities are important for inlay hints too, but I've not
found any code in Zed for that outside tests, so I'd love to learn more
and implement the resolution for workspace symbols separately.

* since LSP `3.17` (current), watch file changes can use relative glob
patterns:
https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#workspace_didChangeWatchedFiles

That seemed just a straightforward extra `match` to use the same Ruse
`Glob` to handle the relative path one.

Release Notes:

N/A
2023-05-29 12:49:37 +03:00
Antonio Scandurra
404bebab63 Set markdown as the assistant's buffer languages 2023-05-29 11:34:26 +02:00
Kirill Bulatov
fdad1adaf6 Update LSP to the newest version 2023-05-28 21:55:08 +03:00
Max Brunsfeld
e4530471de Make worktree UpdatedEntries events fully describe all changes (#2533)
This PR makes the worktree's change events more useful in a few ways:

* The changes are now described by a cheaply clone-able collection, so
that they can be used in background tasks. Right now, I'm using a simple
Arc slice.
* The `UpdatedEntries` event now captures not only changes due to FS
changes, but also newly-loaded paths that are discovered during the
initial scan.
* The `UpdatedGitRepositories` event now includes repositories whose
work-dir changed but git dir didn't change. A boolean flag is included,
to indicate whether the git content changed.
* The `UpdatedEntries` and `UpdatedGitRepositories` events are now
*used* to compute the worktree's `UpdateWorktree` messages, used to sync
changes to guests. This unifies two closely-related code paths, and
makes the host more efficient when collaborating, because the
`UpdateWorktree` message computation used to require walking the entire
`entries` tree on every FS change.
2023-05-26 15:55:14 -07:00
Max Brunsfeld
1f42bfc1bd Include repositories with workdir changes in worktree UpdatedGitRepsositories event 2023-05-26 15:47:37 -07:00
Max Brunsfeld
2db57b5139 Adjust diagnostic transformation test to not wait for two buffer notifications 2023-05-26 15:47:37 -07:00
Max Brunsfeld
02b95ef320 Derive worktree update messages from existing change events 2023-05-26 15:47:37 -07:00
Kirill Bulatov
9cfe39f1aa Display external paths in history (#2534)
Fixes
https://linear.app/zed-industries/issue/Z-1793/file-finder-external-recent-paths-are-not-rendered-properly

Long paths get trimmed, but same do many of our other elements, such as
type definitions, so I think it's ok for now:

![image](https://github.com/zed-industries/zed/assets/2690773/b8b6588d-6d6b-42db-9085-c741a40b7adb)

Also, we seem to do a lot of odd diagnostics handling on every external
stdlib file opened:

![image](https://github.com/zed-industries/zed/assets/2690773/cd82c54e-7849-46fe-a01c-79bfc5402b7b)
Other external files also emit similar messages, but not that much.
@\mikayla-maki mentioned, that this was happening before, so can be
fixed separately.
The PR adds path printing to these logs.

Release Notes:

* Fixed external files not being displayed properly in the recently
opened list in the file finder panel
2023-05-27 01:27:24 +03:00
Kirill Bulatov
5fda9e934d Shorten full paths with ~ 2023-05-27 01:21:38 +03:00
Kirill Bulatov
3a3c1c5a5b Add a test
co-authored-by: Mikayla <mikayla@zed.dev>
2023-05-27 01:12:22 +03:00
Nathan Sobo
ffbfbe422b WIP: Not sure I actually want to rip this out 2023-05-26 16:11:58 -06:00
Nathan Sobo
3904971bd8 Hide assistant gutter 2023-05-26 15:38:03 -06:00
Nathan Sobo
8f6e67f440 Cancel assists on escape 2023-05-26 14:49:27 -06:00
Max Brunsfeld
6628c4df28 Store worktree changes in a sorted arc slice, not a HashMap
We don't need to look-up change types by an arbitrary key, but we
do need to iterate it. It would also be useful to be able to
cheaply clone the changes, to use them in a background task.
2023-05-26 09:24:15 -07:00
Max Brunsfeld
59bfd40679 Make stricter assertions about change events in random worktree test 2023-05-26 09:24:15 -07:00
Max Brunsfeld
f890eefdef Include paths loaded during initial scan in worktree UpdatedEntries event 2023-05-26 09:24:15 -07:00
Nathan Sobo
80080a43e4 Start on an assistant panel based on multi-buffers
Each message is represented as a multibuffer excerpt to allow for
fluid editing of the conversation transcript.

Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-05-26 10:09:55 -06: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
Kirill Bulatov
b75c27da6f Simplify selected index handling 2023-05-26 14:15:58 +03:00
Kirill Bulatov
364631a155 Add absolute paths to historic elements 2023-05-26 14:03:44 +03:00
Kirill Bulatov
128c19875d Fix duplicate item creation in project panel (#2532)
Closes
https://linear.app/zed-industries/issue/Z-1760/creating-a-new-file-with-the-same-name-as-an-existing-file-overwrites

Now every rename/creation editor won't do anything if a duplicate name
is submitted.

Release Notes:

* Fixed a bug when created in project panel items with duplicate names
were overwriting the old files
2023-05-26 10:14:50 +03:00
Kirill Bulatov
5501dd741c Fix duplicate item creation in project panel 2023-05-26 02:07:25 +03:00
Julia
7900d2a20a Multibuffer edit perf (#2531)
This took so much longer than I wanted, so glad to finally be rid of
this

Release Notes:
* Improved performance when editing many git-tracked files in a
multi-buffer at the same time
2023-05-25 15:01:05 -04:00
Julia
5e39ba596e Clean up final remaining code paths calling old diff update method 2023-05-25 14:41:09 -04:00
Julia
f40c498491 Fix tests 2023-05-25 14:29:28 -04:00
Julia
8d662edb6c Remove concept of git diff refresh from Item trait 2023-05-25 14:29:28 -04:00
Julia
cede296b04 Project level git diff recalc handling
This avoids an issue where in a many-buffer multi-buffer, each modified
buffer could complete its recalc independently, causing a cascade of
repeated notifies

Now all recalcs started at the same time must complete before
 A: Starting another recalc pass
 B: The master notify occurring

Each buffer can still show its new diff if something else triggers it
to notify earlier, this is desirable and does not have the same negative
effects as the notify cascade as those re-layouts would need to happen
anyway

Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-05-25 14:10:27 -04:00
Max Brunsfeld
54421b11f3 wip 2023-05-25 14:10:27 -04:00
Kirill Bulatov
ae3bdd755e Support OnTypeFormatting LSP request (#2517)
Supports
https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_onTypeFormatting

rust-analyzer uses this feature to add matching brackets semantically,
e.g.
before:
![Screenshot 2023-05-23 at 17 46
42](https://github.com/zed-industries/zed/assets/2690773/020e8448-23e6-4a38-8dbb-c9edf18062f7)

after:
![Screenshot 2023-05-23 at 17 46
49](https://github.com/zed-industries/zed/assets/2690773/4d140af3-aca6-451d-ac61-e2a9bb31caea)

`use_on_type_format` settings entry was added, enabled by default, to
disable the new feature.

Release Notes:

* Support `OnTypeFormatting` LSP protocol feature, allowing
rust-analyzer to add matching brackets
2023-05-25 18:35:47 +03:00
Kirill Bulatov
739d5ca373 Have proper undo for both client and host 2023-05-25 18:29:57 +03:00
Antonio Scandurra
24098c561d Prevent bottom dock from becoming too large or too small (#2529)
Fixes
https://linear.app/zed-industries/issue/Z-1834/bottom-dock-can-be-dragged-down-far-enough-such-that-the-tab-bar-is

Release Notes:

- Improved the resize experience for the bottom dock, preventing it from
becoming too large or too small. (preview-only)
2023-05-25 15:44:23 +02:00
Antonio Scandurra
4185a178e7 Prevent bottom dock from becoming too large or too small 2023-05-25 15:29:59 +02:00
Antonio Scandurra
f549ada54f Restore the ability to search terminals in the terminal panel (#2528)
Fixes
https://linear.app/zed-industries/issue/Z-1812/find-in-terminal-panel-is-broken

![CleanShot 2023-05-25 at 15 18
01@2x](https://github.com/zed-industries/zed/assets/482957/ddb33b61-d253-4de1-961f-14b24aaa3e46)

This also removes navigation controls from the terminal panel, given
that terminals don't make use of that feature anyway. When the toolbar
is empty, we'll avoid showing it altogether.

![CleanShot 2023-05-25 at 15 17
26@2x](https://github.com/zed-industries/zed/assets/482957/52419f2c-bca0-494a-a9b3-88e183b4c12f)


Release Notes:

- Fixed a regression that was preventing the terminal panel from being
searched.
2023-05-25 15:28:32 +02:00
Antonio Scandurra
aa8c0475b1 Don't show navigation controls for terminal panel 2023-05-25 15:15:20 +02:00
Kirill Bulatov
e2ff829f98 Use Transaction instead of ProjectTransaction
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-05-25 16:12:14 +03:00
Antonio Scandurra
414b97adce Add search bar to terminal panel 2023-05-25 14:46:10 +02:00
Antonio Scandurra
dba7ec4a35 Prevent pane from being erroneously zoomed when toggling the outline pane (#2527)
Fixes
https://linear.app/zed-industries/issue/Z-1818/toggling-the-outline-pane-causes-the-pane-to-zoom

Add release note lines here:

- Fixed a bug that could cause panes to be erroneously zoomed when
toggling modals. (preview-only)
2023-05-25 14:10:08 +02:00
Antonio Scandurra
c2f3ac24a4 Prevent zoom from being restored when focusing a modal 2023-05-25 12:11:11 +02:00
Antonio Scandurra
7e1ea8f274 Remove stray dbg! 2023-05-25 12:04:41 +02:00
Kirill Bulatov
aa58d0fd77 Do not send edits over the wire 2023-05-25 12:55:44 +03:00
Kirill Bulatov
f812151840 Add integration tests 2023-05-25 09:45:50 +03:00
Kirill Bulatov
eca6d2b597 Process remote format typing also 2023-05-25 09:45:50 +03:00
Kirill Bulatov
58a56bdda2 Always use server formatting settings 2023-05-25 09:45:50 +03:00
Kirill Bulatov
d1f4b60fa1 Allow to disable the new feature 2023-05-25 09:45:50 +03:00
Kirill Bulatov
b9dabb165e Use formatting options 2023-05-25 09:45:50 +03:00
Kirill Bulatov
3327e8a6dd Support remote sessions 2023-05-25 09:45:50 +03:00
Kirill Bulatov
f6d7b3d2e8 Send and handle OnTypeFormatting LSP request 2023-05-25 09:45:50 +03:00
Nate Butler
793486b2e8 Update Diff Modified Color (#2526)
For some reason the yellow I used for the modified color in light themes
was really light
.
Release Notes:

* Improved the contrast of diff modified color in the editor in light
themes.
2023-05-24 23:50:37 -04:00
Joseph Lyons
3f79b0c7cc Don't hardcode dates into script 2023-05-24 17:39:02 -04:00
Joseph Lyons
cc3186cb4a Add script to print all prs merged between a previous date and now 2023-05-24 16:58:56 -04: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
Joseph Lyons
37d35db3d7 v0.89.x dev 2023-05-24 13:22:00 -04:00
Nathan Sobo
26051de160 Clean up 2023-05-24 11:08:00 -06:00
Max Brunsfeld
a1a66b8da4 Make toggle dock actions appear in the command palette (#2525)
This makes the `Toggle{Left,Right,Bottom}Dock` actions deserializable
from empty JSON, so that they can be constructed for the command
palette. It also fixes a bug in GPUI's `available_actions` method, in
which we'd include key bindings for actions of the same type but
different values.

Note that, for now, the command palette will perform the *focusing*
version of the actions. I'm not totally sure this is the right behavior,
but it seems more useful to me.

Release Notes:

N/A
2023-05-24 10:07:34 -07: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
Nathan Sobo
d495c1b804 Only run AI agent on dev and preview 2023-05-24 10:58:33 -06:00
Antonio Scandurra
35f9996a4f WIP 2023-05-24 18:45:47 +02:00
Nathan Sobo
ba79a8ba94 WIP 2023-05-24 10:26:14 -06:00
Nathan Sobo
50e1e17d09 WIP 2023-05-24 09:53:08 -06:00
Nathan Sobo
051c7566cc WIP 2023-05-24 09:38:37 -06:00
Nathan Sobo
8abaf66602 WIP 2023-05-24 09:21:50 -06:00
Nathan Sobo
6368ade1da WIP 2023-05-24 09:12:16 -06:00
Antonio Scandurra
8832248bb9 Polish panel experience (#2523)
In this pull request we improved key bindings (as described below) and
added tooltips.

Add these release notes to the panels release notes:

- The left, right and bottom dock can be toggled and focused at the same
time respectively via `cmd-b`, `cmd-r` and `cmd-j`. Holding `shift` will
toggle them without changing the focus.
2023-05-24 16:23:24 +02: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
0cf1632d39 Only focus new terminal if the panel contains focus
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-05-24 16:04:02 +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
7534c4e670 Fix opening excerpt when the cursor is at the end of a multi-buffer (#2522)
Fixes
https://linear.app/zed-industries/issue/Z-987/option-enter-doesnt-open-buffer-from-multibuffer-if-on-the-last-line

This was caused by seeking with a right bias, which in the case of the
last excerpt in the buffer would seek past the end of the buffer. This
commit changes the behavior to move the cursor back to the previous
excerpt if we overshoot, to ensure we always land on an excerpt.

Release Notes:

- Fixed a bug that prevented opening excerpts when the cursor was at the
end of a multi-buffer.
2023-05-24 15:08:18 +02:00
Antonio Scandurra
2a8e0824a6 Fix opening excerpt when the cursor is at the end of a multi-buffer
This was caused by seeking with a right bias, which in the case of the
last excerpt in the buffer would seek past the end of the buffer.  This
commit changes the behavior to move the cursor back to the previous excerpt
if we overshoot, to ensure we always land on an excerpt.
2023-05-24 15:02:57 +02:00
Antonio Scandurra
8f49552121 Show maximize/minimize icon for panes and terminal panel (#2521)
Closes
https://linear.app/zed-industries/issue/Z-1790/show-zoomunzoom-icons-for-panes-and-terminal-panel

![CleanShot 2023-05-24 at 11 07
04@2x](https://github.com/zed-industries/zed/assets/482957/b27d002c-6443-440b-88d0-cfa06d902477)
2023-05-24 11:44:39 +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
9575ffc1e3 Prevent empty panes from being zoomed (#2520)
Closes
https://linear.app/zed-industries/issue/Z-1789/empty-panes-should-not-be-zoomable
2023-05-24 10:51:52 +02:00
Antonio Scandurra
168ff99927 Prevent empty panes from being zoomed 2023-05-24 10:34:56 +02:00
Joseph T. Lyons
e463e3b2e8 Update terminal panel tooltip (#2519)
The actions in Zed now call this the Terminal Panel and the crate is
called that as well, so I think the tooltip should be updated to use
that same name.

Release Notes:

N/A
2023-05-23 22:33:08 -04:00
Joseph Lyons
e6857866d4 Update terminal panel tooltip 2023-05-23 22:23:38 -04:00
Nathan Sobo
637ed79603 WIP 2023-05-23 18:16:49 -06:00
Nathan Sobo
65fc50745b WIP 2023-05-23 18:04:33 -06:00
Nathan Sobo
d934da1905 WIP 2023-05-23 15:25:34 -06:00
Joseph T. Lyons
ba7659fa77 add toggle right and bottom dock actions (#2518)
Release Notes:

N/A
2023-05-23 13:59:45 -04:00
Joseph Lyons
2457c55fe7 add toggle right and bottom dock actions 2023-05-23 13:53:56 -04:00
Joseph T. Lyons
aac83ceea7 Add architecture to clickhouse event request body (#2514)
See title

Release Notes:

N/A
2023-05-23 11:11:17 -04:00
Nathan Sobo
7be41e19f7 WIP 2023-05-23 08:52:21 -06:00
Antonio Scandurra
ad866c5b21 Update LiveKit client SDK to 1.0.12 (#2516)
Fixes
https://linear.app/zed-industries/issue/Z-1756/screen-sharing-is-slow-and-sometimes-doesnt-work-at-all

Release Notes:

* Fixed some cases where screen-sharing would have low bitrate or
completely fail to start.
2023-05-23 16:19:12 +02:00
Antonio Scandurra
774530dd05 Update LiveKit client SDK to 1.0.12
Co-Authored-By: Julia Risley <julia@zed.dev>
2023-05-23 15:32:55 +02:00
Nathan Sobo
073967c80b WIP 2023-05-23 01:56:28 -06:00
Nathan Sobo
5362e7d346 WIP 2023-05-23 01:52:37 -06:00
Nathan Sobo
394e87d17c WIP 2023-05-23 01:23:01 -06:00
Antonio Scandurra
dcc4dd7eb8 Allow multiple docks to be visible at once and only let them contain panels (#2450)
Closes
https://linear.app/zed-industries/issue/Z-1188/allow-docks-to-be-visible-on-left-bottom-right

To prepare the way for the AI assistant, we want to revamp the way docks
and panels work. In this PR, we replace the dock as it currently exists
with 3 independent docks at the left, bottom, and right edge of the
workspace. To replace the "expanded" dock, we will introduce a zoom
feature that works on any pane and some panels. When showing a dock with
an active panel that is zoomed, it will automatically appear zoomed.
This replicates the expanded dock experience. If you unzoom, the panel
will still be visible.

### Panels only

We want to simplify these docks to only allow them to contain *panels*.
By doing this, we don't need to give each dock a tab bar, minimizing
clutter in the workspace. Each panel will remember its size, and the
dock will adjust to that size when the panel is toggled. This will allow
each panel to take up the amount of space that makes sense for its use
case.

There will be 3 kinds of panels:

* Project panel: This currently lives in the left "sidebar", which this
PR renames to the left dock. Users will be able to left click the icon
and switch the project panel to the right dock.
* Terminal panel: This is the primary user of the previous dock. Now all
terminals will live in a terminal panel, which can be docked at the
left, bottom, or right. This dock will contain tabs, but only for
terminals. Terminals will still be able to be dragged into the
workspace, but by default, the first new terminal will live in the
terminal panel which lives in one of the 3 docks.
* Feedback: Instead of opening a pane, let's explore making this a panel
instead.

### Status bar icons

A nice feature of this change is that it simplifies our status bar by
eliminating the dock button. We will only show icons for specific
panels. Panel in the left dock will appear at the left side of the
status bar. Panels in the right dock on the far right, panels in the
bottom will appear on the right, to the immediate left of the buttons
for right panels. Left clicking any panel button will allow it to be
redocked to any valid location for that panel.

### Paving the way for the AI assistant

I'm envisioning the assistant living in the far right panel by default.
So in the stock config, you'll have the project panel on the left,
terminal on the bottom, assistant on the right, and code in the middle.
Let's fucking go!
2023-05-23 09:09:43 +02: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
0de5a444d3 WIP 2023-05-23 00:22:21 -06:00
Nathan Sobo
234dbc3ca9 WIP 2023-05-23 00:16:44 -06:00
Nathan Sobo
c4d88bc529 WIP 2023-05-22 23:43:02 -06:00
Nathan Sobo
30de64845f WIP 2023-05-22 23:11:27 -06:00
Mikayla Maki
a5b5de5651 Add initial project panel settings (#2515)
This PR adds project panel settings for disabling git status.

Release Notes:

- Adds `project_panel: { git_status: bool }` to the settings, for
controlling whether git status information appears.
2023-05-22 20:43:24 -07:00
Mikayla Maki
a37b1b6a45 Add other setting init 2023-05-22 20:38:30 -07:00
Mikayla Maki
b19a712799 Add init_settings to tests 2023-05-22 20:33:18 -07:00
Mikayla Maki
da96802bf0 fmt 2023-05-22 20:25:27 -07:00
Mikayla Maki
7be8dead07 Add initial project panel settings 2023-05-22 20:23:07 -07:00
Nathan Sobo
7e6cccfa3d WIP: Stream in completions
Drop dependency on tokio introduced by async-openai and do it ourselves.

The approach I'm taking of replacing instead of appending is causing issues. Need to just append.
2023-05-22 20:28:22 -06:00
Joseph Lyons
049b72e3ac Add architecture to clickhouse event request body 2023-05-22 21:45:58 -04:00
Mikayla Maki
54c04a6618 Fix race condition in diff base initializaiton (#2513)
fixes
https://linear.app/zed-industries/issue/Z-1657/diff-markers-in-gutter-do-not-show-up-until-after-first-save

Release Notes:

- Fixes a race condition on buffer initialization that would cause git
diffs to not load.
2023-05-22 18:43:59 -07:00
Mikayla Maki
9307719a4b Add run until parked for test 2023-05-22 18:40:12 -07:00
Mikayla Maki
51d94f532b Load diff base for buffers that are opening but not yet opened when repositories are discovered 2023-05-22 18:26:33 -07:00
Mikayla Maki
fc82489128 Update scrollbar styling 2023-05-22 16:23:36 -07:00
Mikayla Maki
1b5be04f76 Fixed contrast in project panel and scrollbar (#2512)
Redo of https://github.com/zed-industries/zed/pull/2504 

This makes the different git locations individually style-able

Release Notes:

- Improve git contrast (preview only)
2023-05-22 15:59:02 -07:00
Mikayla Maki
e4454f1e7f fmt 2023-05-22 15:53:29 -07:00
Mikayla Maki
5c31c84c90 Fixed contrast in project panel and scrollbar
co-authored-by: nate <nate@zed.dev>
2023-05-22 15:51:31 -07:00
Mikayla Maki
fb2f17e5c9 Revert "Touch up git in project panel and scroll bar styling" (#2511)
Reverts zed-industries/zed#2504, due to accidentally pulling in main
2023-05-22 15:36:15 -07:00
Mikayla Maki
2d1c4a1971 Revert "Touch up git in project panel and scroll bar styling" 2023-05-22 15:31:14 -07:00
Mikayla Maki
dcf4791182 WIP: Touch up git in project panel and scroll bar styling (#2504)
This makes the different git locations individually style-able

Release Notes:

* Improve git contrast (preview only)
2023-05-22 15:11:10 -07:00
Mikayla Maki
9bec74f1d4 fmt 2023-05-22 15:04:51 -07:00
Mikayla Maki
9a47415cb5 Merge branch 'main' into git-project-panel-and-scrollbar-styling 2023-05-22 15:02:28 -07:00
Mikayla Maki
5dfb0e3691 remove border from thumb 2023-05-22 14:56:55 -07:00
Nate Butler
11eb9b17c9 Update project panel & scroll bar git colors 2023-05-22 17:47:52 -04:00
Mikayla Maki
4c9d24da7c Only fire update diff base when the dot repo is scanned (#2510)
This PR fixes a bug in the firing of the UpdatedRepositories event which
caused it to flood collaboration with new messages on every file save.

Release Notes:

* Fixed a bug in repository detection that caused it to fire
over-eagerly (preview only)
2023-05-22 14:11:19 -07:00
Mikayla Maki
96224fa7e8 Only fire update diff base when the dot repo is scanned 2023-05-22 13:57:07 -07:00
Max Brunsfeld
0e332b5f94 Clear old diagnostics when restarting a language server (#2509)
Previously, restarting a language server did not clear out the
diagnostics that were published by that server. Those diagnostics would
stick around forever.

Release Notes:

* Fixed a bug where restarting a language server would sometimes leave
buffers with stale diagnostics associated with that server.
2023-05-22 13:06:32 -07:00
Max Brunsfeld
7689cdf3f9 Clear old diagnostics when restarting a language server 2023-05-22 12:53:22 -07:00
Mikayla Maki
1d07cff765 Adjust scrollbar settings to be expandable (#2507)
Note that this PR cannot be cherrypicked into preview, as it relies on
the new settings infrastructure.

Switches settings from `show_scrollbars: "auto"` to `scrollbar: {show:
"auto", git_diffs: true}`.

fixes
https://linear.app/zed-industries/issue/Z-1650/scroll-bar-feature-settings

Release Notes:

- Changed scrollbar settings from `show_scrollbars: "auto"` to
`scrollbar: {show: "auto", git_diffs: true}`. (preview only)
2023-05-22 12:51:21 -07:00
Mikayla Maki
dcb987ba9d Diagnostics pane was not focusable with the mouse (#2506)
fixes
https://linear.app/zed-industries/issue/Z-1432/cant-cmd-w-an-empty-diagnostics-in-a-split-pane

Release Notes:

* Fixed a bug where the diagnostics pane could not be focused or closed
in certain circumstances.
2023-05-22 12:44:39 -07:00
Mikayla Maki
cfdf9198da Switch back to 2023-05-22 12:16:47 -07:00
Mikayla Maki
687ccd4c6f fmt 2023-05-22 12:13:23 -07:00
Mikayla Maki
366f13bb5c Adjust scrollbar settings to be expandable 2023-05-22 12:12:56 -07:00
Joseph Lyons
49566e5677 Update pull_request_template.md 2023-05-22 15:00:57 -04:00
Joseph Lyons
9c32b774aa Add example of changelog line in PR template 2023-05-22 14:53:07 -04:00
Mikayla Maki
bafc1d922e fmt 2023-05-22 11:46:52 -07:00
Mikayla Maki
e59c8e9d61 Fix diagnostic pane not being closeable 2023-05-22 11:44:23 -07:00
Max Brunsfeld
e129ed2d91 Fix spurious setting error log messages (#2498)
Fixes a bug introduced in
https://github.com/zed-industries/zed/pull/2448, where error messages
would be logged if the user config didn't specify certain fields like
`journal` or `telemetry`.
2023-05-22 11:44:21 -07:00
Joseph Lyons
04355215b2 Indent all release note lines for each PR 2023-05-22 14:44:05 -04:00
Julia
a69144911f Add paragraph based vertical movements (#2502)
Very selfish patch I worked on yesterday, I kept saying I wanted these
and finally decided to just add them. Feedback on the keybindings
welcome

Release Notes:

* Added `MoveToStartOfParagraph` and `MoveToEndOfParagraph` movements
for paragraph based vertical navigation
2023-05-22 14:31:34 -04:00
Mikayla Maki
85266131cf Fix perf problem with scrollbars in large multibuffers (#2505)
Remove scrollbars from multibuffers

Release Notes:

* Removes git scrollbar highlights from multibuffers (preview only)
2023-05-22 11:11:27 -07:00
Mikayla Maki
6f4b6eec5b Diagnostics pane was not focusable with the mouse 2023-05-22 11:10:13 -07:00
Mikayla Maki
6264b24788 fmt 2023-05-22 11:04:36 -07:00
Mikayla Maki
8669dcdc81 Make scrollbar content detection cheaper
Remove scrollbars from multibuffers

co-authored-by: max <max@zed.dev>
2023-05-22 10:55:44 -07: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
Mikayla Maki
ef81813d56 Wire in conflict styling 2023-05-22 10:10:47 -07:00
Mikayla Maki
a355b4c135 Add conflict styles to project panel 2023-05-22 10:09:55 -07:00
Mikayla Maki
af73c1af06 Add seperate scrollbar styling 2023-05-22 10:03:02 -07:00
Antonio Scandurra
3ca95678f1 Avoid leaking docks when adding panels 2023-05-22 18:57:14 +02:00
Kirill Bulatov
9e46b17149 Do not refocus project search query on ESC press (#2494)
Closes
https://linear.app/zed-industries/issue/Z-1471/escape-should-not-move-focus-to-project-search

Makes ESC more predictable as a shortcut that cancels/roll backs the
state in project search panel.

Release Notes:

* Fixes ESC making focus to jump in project search panel
2023-05-22 19:56:10 +03:00
Mikayla Maki
2200a22c07 Wire project panel themes into rust 2023-05-22 09:55:59 -07: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
deaf60005c Fix more tests 2023-05-22 18:21:12 +02:00
Nate Butler
b80cb73745 Add git to project panel in theme, use different values for dark and light 2023-05-22 12:09:54 -04:00
Antonio Scandurra
4aa2858b2b Transfer focus to root view only if previously-focused view was dropped 2023-05-22 18:05:08 +02:00
Max Brunsfeld
21ada545b0 Remove assertions about behavior on invalid settings file 2023-05-22 08:48:37 -07:00
Julia
44903bc193 Add test for paragraph vertical movements 2023-05-22 11:48:07 -04:00
Antonio Scandurra
185a624b99 Fix some project panel tests 2023-05-22 16:18:53 +02:00
Nate Butler
48dcacc7ce Sort & add some docs 2023-05-22 10:03:10 -04:00
Antonio Scandurra
10e947cb5f Persist project and terminal panel sizes 2023-05-22 15:55:44 +02:00
Julia
7190840081 Add paragraph based vertical movements 2023-05-22 09:12:36 -04:00
Antonio Scandurra
146809eef0 Merge branch 'main' into panels 2023-05-22 14:10:17 +02:00
Antonio Scandurra
2098ac2c77 Fix formatting for keymap.json 2023-05-22 10:41:48 +02:00
Joseph Lyons
cb1b64e51b Fix up formatting for get preview channel changes script 2023-05-22 00:02:19 -04:00
Joseph T. Lyons
f2a74017df Fix get preview channel changes script (#2501)
Fixes the text we match on to get PR commits and also prints the release
notes of each PR

Release Notes:

* Skip
2023-05-21 23:47:07 -04:00
Joseph Lyons
c701901c7b Fix get preview channel changes script 2023-05-21 23:40:07 -04:00
Nathan Sobo
d5cf595761 Enable "test-support" feature on editor dependencies for tests (#2499)
Enable the `"test-support"` feature whenever we depend on the `editor`
crate in tests.

If we don't do this, we end up depending on `livekit_client` without
enabling `"test-support"`, and this causes us to link against
`WebRTC.framework` in its build script, which causes a dynamic linker
error when starting the tests.

Fixes
https://linear.app/zed-industries/issue/Z-1646/cant-run-package-tests-for-activity-monitor-and-auto-update

Release Notes:

* No notes
2023-05-20 10:19:59 -06:00
Nathan Sobo
986eafd84e Enable test-support on editor in tests 2023-05-20 09:54:38 -06:00
Nathan Sobo
912fd23006 Parse markdown into an OpenAI chat completion request 2023-05-20 09:43:12 -06:00
Mikayla Maki
35a9b90528 Fix bugs in git implementation (#2495)
fixes
https://linear.app/zed-industries/issue/Z-1593/clean-up-git-integration

- Fixes calculation of git offsets in the scrollbar:

fixes
https://linear.app/zed-industries/issue/Z-1608/fix-scrollbar-diffs-sliding-out-of-sync-with-gutter-diffs-in

fixes
https://linear.app/zed-industries/issue/Z-1629/project-search-panel-has-git-marks-on-the-scrollbar-misaligned

fixes
https://linear.app/zed-industries/issue/Z-1625/soft-wrap-affects-diff-locations-in-scrollbar

- Improves the performance of scrollbar hunks:

fixes
https://linear.app/zed-industries/issue/Z-1640/double-check-performance-of-scrollbar-hunks

- Fixes a long standing bug with how git gutters interact with soft
wraps:

fixes
https://linear.app/zed-industries/issue/Z-1442/make-hunks-grow-to-the-end-of-softwraps-when-ending-on-a-softwrapped

- Allows work directories to be renamed

fixes
https://linear.app/zed-industries/issue/Z-1577/fix-stale-git-repositories-when-directory-is-renamed

Release Notes:

* Fix the offsets of the git diffs in the scrollbar when there are
folds, wraps, or excerpts (preview only)
* Allow the work directory of a repository to be renamed (preview only)
* Extend git gutter to cover the entirety of a wrapped line
(https://github.com/zed-industries/community/issues/937)
2023-05-19 18:15:11 -07:00
Mikayla Maki
bbb68c523c Refactored apart the forward and the backwards iterator for diff hunks 2023-05-19 18:09:47 -07:00
Max Brunsfeld
e32233c826 Fix spurious setting error logs on non-existent setting keys 2023-05-19 17:15:05 -07:00
Mikayla Maki
43e301eeef refine batched anchor conversions
co-authored-by: max <max@zed.dev>
2023-05-19 16:52:57 -07:00
Max Brunsfeld
fb11c3e4bf Remove stray prints 2023-05-19 16:52:30 -07:00
Mikayla Maki
1474429271 fmt 2023-05-19 16:32:07 -07:00
Mikayla Maki
c795c9b844 Rearrange git tests in worktree
Add support for renaming work directories
2023-05-19 16:30:00 -07:00
Mikayla Maki
623a177fe6 Fix bug where git diff hunks would not extend through a soft wrap 2023-05-19 16:23:45 -07:00
Mikayla Maki
560160b100 Batch anchor conversions in git hunk iterator 2023-05-19 16:23:45 -07:00
Mikayla Maki
2a41a32aac Calculate y offsets correctly 2023-05-19 16:23:45 -07:00
Max Brunsfeld
d7d29472c2 Remove expensive-to-clone fields from worktree's LocalSnapshot (#2497)
This fixes performance problems that @nathansobo and I have seen in some
cases, when a large number of files changed on disk. A lot of time was
being spent in `worktree::LocalSnapshot::clone`. I think this may have
been because of needing to clone the `removed_entry_ids` map. This
structure is only really used when *mutating* the `LocalSnapshot` in the
background scanner, so I moved it off of the snapshots.
2023-05-19 16:20:19 -07:00
Mikayla Maki
06a89d9104 Add guards to other pane index removals (#2496)
These should be impossible for users to reach, but why leave it to
chance?

Release Notes:

* N/A
2023-05-19 15:21:00 -07:00
Max Brunsfeld
7ae642b9b8 Avoid storing removed_entry_ids on the LocalSnapshot 2023-05-19 15:16:04 -07:00
Mikayla Maki
c193b0b8fc Add guards to other pane index removals 2023-05-19 15:10:44 -07:00
Max Brunsfeld
32c7157906 🎨 Make worktree repositories more consistent 2023-05-19 15:04:37 -07:00
Max Brunsfeld
6359333749 Don't store next_entry_id on worktree's local snapshot 2023-05-19 13:49:24 -07:00
Kirill Bulatov
065f71d671 Do not refocus project search query on ESC press 2023-05-19 22:06:47 +03:00
Kirill Bulatov
7d1833b759 When the file is deleted via project panel, close it in editors (#2490)
Deals with https://github.com/zed-industries/community/issues/179 by
sending a message about it, to asynchronously apply on all workspaces.

Release Notes:

* Fixes a bug when files, deleted in the project panel were left open in
the editor
2023-05-19 21:51:37 +03:00
Max Brunsfeld
844b8d9e1e Remove unnescessary double lookup in repo for (#2492)
Release Notes:

* Optimize repository queries (preview only)
2023-05-19 11:47:05 -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
Max Brunsfeld
01a3e49946 Optimize retrieving repos for entries when rendering the project panel (#2493)
This fixes slowness in rendering the project panel due to retrieving the
repository for a given entry.

Release Notes:

* Fixed a lag that would occur when lots of files changed on disk while
the project panel was open (preview only).
2023-05-19 11:46:32 -07:00
Mikayla Maki
9f157bdb67 Remove unescessary methods 2023-05-19 11:30:10 -07:00
Max Brunsfeld
729a93db6b Optimize retrieving repos for entries when rendering the project panel
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-05-19 11:29:02 -07:00
Mikayla Maki
6792788216 Remove unnescessary double lookup 2023-05-19 11:08:58 -07: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
Max Brunsfeld
d480555ec9 Fix performance problems in reporting changed FS paths to language servers (#2491)
Fixes
https://linear.app/zed-industries/issue/Z-1611/main-thread-hangs-while-sending-filesystem-change-events-to-lsp

Release Notes:

* Fixed a lag that would sometime occur when large numbers of files
changed on disk, due to reporting the changed files to language servers.
2023-05-19 09:42:55 -07:00
Max Brunsfeld
847d1e73a3 Replace remaining usages of glob crate with globset 2023-05-19 09:36:46 -07:00
Max Brunsfeld
459cc9c959 Optimize matching of multiple file-watch globs using the globset crate 2023-05-19 09:13:34 -07:00
Kirill Bulatov
583b15badc When the file is deleted via project panel, close it in editors 2023-05-19 18:52:30 +03:00
Nate Butler
32849d1e43 Add initial internal docs from Meta 2023-05-19 11:02:18 -04: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
3984cc6d39 Properly handle WorktreeId 2023-05-19 12:37:36 +03:00
Max Brunsfeld
4bda5c4d69 Optimize LSP watched file reporting in 2 simple ways
* Convert globs to relative paths in advance. This avoids needing to convert
  every changed path to an absolute path before performing glob matching.
* Avoid duplicate reporting for language servers with multiple worktrees.
2023-05-18 17:08:51 -07:00
Max Brunsfeld
34b0d6200f collab 0.12.4 2023-05-18 14:58:57 -07:00
Max Brunsfeld
ffe35d171c Avoid unnecessary code action requests when applying leader updates t… (#2489)
We noticed a huge amount of code actions requests being issued by
followers when applying leader updates. It was caused by a call to
`MultiBuffer::remove_excerpts` with an empty list of excerpts to remove.
This PR fixes that by avoiding emitting spurious events when multibuffer
excerpt manipulation methods are called with empty lists.
2023-05-18 14:52:21 -07:00
Max Brunsfeld
58f704abcb Avoid unnecessary code action requests when applying leader updates to an editor 2023-05-18 14:46:23 -07:00
Mikayla Maki
87e206c451 Fixed an imprecise join in rejoin room (#2488)
This fixed a pre-existing bug in rejoin room that got expanded to
stalling collab with the new git status feature.

Release Notes:

* N/A
2023-05-18 14:42:59 -07:00
Mikayla Maki
99fcf23798 fmt 2023-05-18 14:31:08 -07:00
Mikayla Maki
95a7d69bce Fixed an imprecise join in rejoin room 2023-05-18 14:29:18 -07:00
Max Brunsfeld
2883d6f1ef Improve collab logging (#2487)
This adds some logging to the collab server, to help us identify the
source of the collaboration latency we're seeing in the 0.87 preview
version of zed.
2023-05-18 14:17:17 -07:00
Max Brunsfeld
2a11a89827 collab 0.12.3 2023-05-18 12:27:08 -07:00
Joseph Lyons
55b241a4f6 collab 0.12.2 2023-05-18 12:27:01 -07:00
Max Brunsfeld
c71b59b248 Log how long it takes to handle each RPC message 2023-05-18 12:24:07 -07:00
Kirill Bulatov
923be1892d Maintain recently opened files history (#2467)
Part of https://github.com/zed-industries/community/issues/351 and
https://github.com/zed-industries/community/issues/1125

Adds navigation history to the search file dialogue:


![image](https://github.com/zed-industries/zed/assets/2690773/01a1d3ea-1328-425a-ac95-2ebdbfcc07ab)

The history is only shown on empty query and gets replaced by the query
results after an input.
Currently, history gets lost between the project restarts.

Release Notes:

* Added a recently opened file list to search file dialogue
2023-05-18 22:06:25 +03:00
Kirill Bulatov
2ec994dfcd Add a unit test 2023-05-18 21:53:42 +03: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
Kirill Bulatov
711d2c6fe7 Maintain recently opened files history 2023-05-18 21:50:38 +03:00
Julia
bd29812391 Avoid panic in get_injections (#2486) 2023-05-18 13:35:10 -04:00
Julia
5ab1ae1521 Avoid panic in get_injections 2023-05-18 12:23:49 -04:00
Max Brunsfeld
83f8981308 Define empty theme for tests regardless of cargo features (#2485)
This fixes some errors that were happening when running a single crate's
tests, if the test did not enable the `test-support` feature in the
`theme` crate.
2023-05-18 09:14:46 -07:00
Max Brunsfeld
71ad7e7612 Define empty theme for tests regardless of cargo features
Co-authored-by: Kirill <kirill@zed.dev>
2023-05-18 09:01:38 -07:00
Antonio Scandurra
f2ad17dbc0 WIP 2023-05-18 15:35:46 +02:00
Kirill Bulatov
263afc75a8 Merge pull request #2484 from zed-industries/kb/unite-dmg-build
Unite dmg build jobs

Follow-up of https://github.com/zed-industries/zed/pull/2472 actually doing the proper thing: allow running dmg builds on PRs if `run-build-dmg` label is attached.
2023-05-18 14:39:41 +03:00
Kirill Bulatov
5ab4eab369 Unite dmg build jobs 2023-05-18 13:49:55 +03:00
Mikayla Maki
89d8bb1425 WIP: Add persistence to new docks 2023-05-17 17:34:20 -07:00
Max Brunsfeld
5c437e2098 Fix crashes when running zed bundled 2023-05-17 16:53:48 -07:00
Max Brunsfeld
a9b107f155 Fix release-mode stub for watch_themes 2023-05-17 16:36:06 -07:00
Max Brunsfeld
d23fc6f135 Merge pull request #2448 from zed-industries/setting-store
Separate the settings struct into a set of dynamically-registered setting types
2023-05-17 16:19:09 -07:00
Max Brunsfeld
a56793c214 Clear buffer font size adjustments when buffer font size setting changes 2023-05-17 16:14:05 -07:00
Max Brunsfeld
823e15d85a Refresh windows when settings file changes 2023-05-17 16:02:21 -07:00
Max Brunsfeld
667f476f7f Remove unused watched_json file 2023-05-17 16:02:08 -07:00
Max Brunsfeld
42eca3048f Move font size adjustment code to the theme crate 2023-05-17 15:56:32 -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
1f0e79ee9d Merge branch 'main' into setting-store 2023-05-17 14:56:35 -07:00
Max Brunsfeld
67a25126d4 Define theme/ui text style settings in theme crate 2023-05-17 14:44:59 -07:00
Mikayla Maki
5ef03992c5 Merge pull request #2483 from zed-industries/add-scrollbar-settings
Add scrollbars setting
2023-05-17 14:44:08 -07:00
Mikayla Maki
f4e99ecde4 Add never option to scrollbar settings 2023-05-17 14:19:35 -07:00
Mikayla Maki
88bc55ddf5 Add a dependency on rustfmt to the CI tests 2023-05-17 14:17:10 -07:00
Mikayla Maki
6cf439e734 fmt 2023-05-17 14:12:04 -07:00
Mikayla Maki
ae3394f4de Add scrollbars setting 2023-05-17 14:09:26 -07:00
Mikayla Maki
1c9a7a7ad8 Merge pull request #2482 from zed-industries/add-hunks-to-scrollbar
Add diff hunks to the scroll bar
2023-05-17 11:51:01 -07:00
Mikayla Maki
aa89632286 Add diff hunks to the scroll bar 2023-05-17 11:40:30 -07:00
Max Brunsfeld
5c729c0e56 Define base keymap setting in welcome crate 2023-05-17 11:23:09 -07:00
Julia
7d11329e80 Merge pull request #2481 from zed-industries/update-font-kit
Update font-kit to resolve panics when loading malformed fonts
2023-05-17 13:57:39 -04:00
Julia
9e5983305b Update font-kit to resolve panics when loading malformed fonts 2023-05-17 13:38:54 -04:00
Max Brunsfeld
89204e85c0 Merge branch 'main' into setting-store 2023-05-17 09:55:24 -07:00
Joseph Lyons
cb0c613da2 v0.88.x dev 2023-05-17 12:39:08 -04:00
Max Brunsfeld
d2ba18eae9 Customize language settings JSON schema in language crate 2023-05-17 09:26:36 -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
747fbfadeb Notify old/new ancestors of the focused view when they change 2023-05-17 17:12:12 +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
cbd4771f10 Define project settings in project crate 2023-05-16 17:45:04 -07:00
Max Brunsfeld
65e3713d4d Define editor settings in editor crate 2023-05-16 17:30:29 -07:00
Max Brunsfeld
39618ae32d Define language settings in the language crate 2023-05-16 17:29:53 -07:00
Julia
0a0769d4b9 Merge pull request #2479 from zed-industries/dont-use-svg-text-feature
Disable usvg's text feature flags to include less dependency code
2023-05-16 18:48:12 -04:00
Julia
d61b12a05b Disable usvg's text feature flags to include less dependency code 2023-05-16 18:44:16 -04:00
Joseph T. Lyons
362f56d519 Merge pull request #2478 from zed-industries/Fix-telemetry-bugs
Send editor event when saving a new file
2023-05-16 18:18:07 -04:00
Joseph Lyons
c27859871f Send editor event when saving a new file 2023-05-16 18:16:09 -04:00
Joseph T. Lyons
2e27f26339 Merge pull request #2475 from zed-industries/add-copilot-events
Add events for copilot suggestion accepting and discarding
2023-05-16 17:25:54 -04:00
Joseph Lyons
ffd503951b Don't make events for every rejected suggestion 2023-05-16 17:19:05 -04:00
Kirill Bulatov
55950e52c2 Remove extra dbg! 2023-05-16 22:15:56 +03:00
Kirill Bulatov
685f3de796 Merge pull request #2462 from zed-industries/kb/go-to-line-column-numbers
Support go to file_query:row:column syntax in Find File, Go To Line dialogs and CLI

Deals slightly differently with zed-industries/community#557
Deals with zed-industries/community#1184

    Fixes Go To Line not respecting column number when navigating to a place
    Changes a line-row separator from , to : to show it more uniformly with other tools
    Adjusts file finder dialogue to allow file_query:row:column syntax and opens the buffer at the lines given
    Extends CLI with file_path:row_column syntax and opens these files similarly
2023-05-16 21:24:57 +03:00
Kirill Bulatov
5d4fc99750 Unit test file:row:column parsing 2023-05-16 21:07:48 +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
Kirill Bulatov
106064c734 Do not break Zed & Zed CLI compatibility 2023-05-16 21:07:47 +03:00
Kirill Bulatov
628558aa39 Attempt to open rows and columns from CLI input 2023-05-16 21:07:26 +03:00
Kirill Bulatov
d719352152 Unify path:row:column parsing, use it in CLI 2023-05-16 21:07:26 +03:00
Kirill Bulatov
89fe5c6b09 Test caret selection in file finder
co-authored-by: Max <max@zed.dev>
2023-05-16 21:07:26 +03:00
Kirill Bulatov
477bc8da05 Make Go To Line to respect column numbers 2023-05-16 21:07:26 +03:00
Kirill Bulatov
e5bca9c871 Simplify file-row-column parsing 2023-05-16 21:07:26 +03:00
Kirill Bulatov
e9606982e6 Use ':' instead of ',' to separate files, rows and columns 2023-05-16 21:07:26 +03:00
Kirill Bulatov
0db7f4202a Properly place the caret into the window of the file opened
co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
2023-05-16 21:07:26 +03:00
Kirill Bulatov
54c1e77aff Move the caret to the opened file 2023-05-16 21:07:26 +03:00
Kirill Bulatov
3eea2fb5f8 Parse file find queries with extra data 2023-05-16 21:07:26 +03:00
Kirill Bulatov
9de4a1b70f Merge pull request #2476 from zed-industries/kb/faster-dev-cli
Allow CLI to start Zed from local sources
2023-05-16 21:06:40 +03:00
Joseph Lyons
afe75e8cbd Send copilot events even if file_extension is not known at the time 2023-05-16 14:02:36 -04:00
Joseph Lyons
6976d60bfe Rework code to contain submitting of copilot events within editor 2023-05-16 13:26:05 -04:00
Julia
16cab5d021 Merge pull request #2477 from zed-industries/fixup-some-more-worktree-bugs
Fixup some more worktree bugs
2023-05-16 13:13:22 -04:00
Julia
8b63caa0bd Fix worktree refresh request causing gitignore to not update
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2023-05-16 13:01:29 -04:00
Julia
f50240181a Avoid removing fake fs entry when rename fails later in the process
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2023-05-16 13:00:39 -04: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
Joseph Lyons
2d4b2e0844 Fix compile error 2023-05-16 11:51:20 -04:00
Kirill Bulatov
903eed964a Allow CLI to start Zed from local sources
Zed now is able to behave as if it's being started from CLI
(`ZED_FORCE_CLI_MODE` env var)

Zed CLI accepts regular binary file path into `-b` parameter (only *.app before),
and tries to start it as Zed editor with `ZED_FORCE_CLI_MODE` env var
and other params needed.
2023-05-16 17:41:32 +03:00
Kirill Bulatov
421db9225a Merge pull request #2470 from zed-industries/kb/fix-project-search-esc
In project search on ESC, reduce multiple carets to one first
2023-05-16 15:16:34 +03:00
Antonio Scandurra
adf361b374 Implement zooming for panes and docks 2023-05-16 11:49:48 +02:00
Joseph Lyons
a7fc07a8cd Init copilot with client instead of http client 2023-05-16 03:12:39 -04:00
Joseph Lyons
f50afefed3 Subscribe to copilot events (WIP) 2023-05-16 00:35:21 -04:00
Joseph Lyons
a6a2f93607 Update telemetry client to accept copilot events 2023-05-16 00:34:58 -04:00
Mikayla Maki
ead9ac6f23 Fix typo 2023-05-15 16:47:46 -07:00
Mikayla Maki
606d5e36e1 Add events for copilot suggestion accepting and discarding 2023-05-15 16:44:09 -07:00
Mikayla Maki
790223f23a Merge pull request #2473 from zed-industries/fix-styling-feedback
Fix git status issues
2023-05-15 16:28:57 -07:00
Mikayla Maki
e4d509adf4 fmt 2023-05-15 16:22:52 -07:00
Mikayla Maki
4d40aa5d6f Restore trickle up git status to folder
co-authored-by: max <max@zed.dev>
2023-05-15 16:22:00 -07:00
Mikayla Maki
f59256f761 Update git repositories to be streamed with their entries
co-authored-by: max <max@zed.dev>
2023-05-15 16:22:00 -07:00
Mikayla Maki
68078853b7 Made status tracking resilient to folder renames
co-authored-by: max <max@zed.dev>
2023-05-15 16:21:58 -07:00
Mikayla Maki
307dd2b83e Update proto names to reflect new status info 2023-05-15 16:20:01 -07:00
Mikayla Maki
1e4ab6cd75 Add index tracking to status 2023-05-15 16:20:01 -07:00
Mikayla Maki
6c26f3d0e4 Fixed formatting 2023-05-15 16:20:01 -07:00
Mikayla Maki
2b18975cdc Change folder styling from a reduce over all child files to a simple 'always modified'
Remove git status from tab titles
2023-05-15 16:20:01 -07:00
Joseph T. Lyons
17f138906e Merge pull request #2474 from zed-industries/update-jetbrains-keymap
Update jetbrains keymap
2023-05-15 14:17:36 -04:00
Joseph Lyons
6a7d718381 Update jetbrains keymap 2023-05-15 14:12:02 -04:00
Julia
cf53b2ca87 Merge pull request #2471 from zed-industries/optimize-update-local-worktree-buffers
Optimize update local worktree buffers
2023-05-15 13:13:09 -04: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
Kirill Bulatov
93705cbe55 Merge pull request #2472 from zed-industries/kb/zed-main-builds
Build Zed for main and labeled PR commits

Add a job to build Zed images marked with the SHA of the commit it was built from.

The job triggers on every commit to main or every PR with run-build-dmg label and produces an install-ready *.dmg artifact attached to the corresponding CI run.
2023-05-15 11:30:26 +03:00
Kirill Bulatov
5465948f20 Build Zed dmg 2023-05-15 11:26:41 +03:00
Kirill Bulatov
4f36ba3b1e Add a job to build Zed images from current main
The job triggers on every commit to `main` or every PR with
`run-build-dmg` label and produces an install-ready *.dmg artifact attached to the
corresponding CI run.
2023-05-14 22:06:33 +03:00
Julia
fa32adecd5 Fixup more, tests finally pass 2023-05-14 12:06:00 -04:00
Nathan Sobo
ba50b35de6 wip 2023-05-13 14:34:09 -06:00
Mikayla Maki
db87e83bad Merge pull request #2469 from zed-industries/fix-git-init-bug
Fix repository initialization bug
2023-05-13 10:47:55 -07:00
Mikayla Maki
a6a4b846bc fmt 2023-05-13 10:43:16 -07:00
Mikayla Maki
5e2aaf45a0 Fix repository initialization bug 2023-05-13 10:38:24 -07:00
Mikayla Maki
3534665e2b Merge pull request #2468 from zed-industries/touch-up-status
Improve status integration
2023-05-13 09:38:02 -07:00
Mikayla Maki
04041af78b Fixed bug with failing to clear git file status 2023-05-13 02:40:22 -07:00
Mikayla Maki
62c445da57 Match priority of folder highlights to vscode 2023-05-13 02:30:59 -07:00
Mikayla Maki
41bef2e444 Refactor out git status into FileName component
Integrate file name component into the editor's tab content
2023-05-13 02:26:45 -07: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
Joseph T. Lyons
e1c1100c7b Merge pull request #2466 from zed-industries/update-release-links
Update release links
2023-05-12 14:08:10 -04:00
Joseph Lyons
b70c874a0e Update release links 2023-05-12 14:04:36 -04:00
Mikayla Maki
ad7ed56e6b Delete pull_request_template.md 2023-05-12 10:15:13 -07:00
Mikayla Maki
4663ac8abf Create pull_request_template.md 2023-05-12 10:14:54 -07:00
Mikayla Maki
e71846c653 Create pull_request_template.md 2023-05-12 10:12:47 -07:00
Mikayla Maki
deac8a6ff9 Merge pull request #2465 from zed-industries/stream-branch-first
Send the root branch along with it's entry
2023-05-12 09:45:40 -07:00
Mikayla Maki
60320c6b09 Send the root branch along with it's entry 2023-05-12 09:37:02 -07:00
Mikayla Maki
54e9e7c35b Merge pull request #2464 from zed-industries/remove-between
Add TreeMap::remove_between that can take abstract start and end points
2023-05-12 08:59:56 -07:00
Nathan Sobo
214354b4da Make panels independently resizable 2023-05-12 09:44:14 -06:00
Mikayla Maki
6ef0f70528 Made the map seek target a publicly implementable interface
Integrated remove_range with the existing git code

co-authored-by: Nathan <nathan@zed.dev>
2023-05-12 08:37:32 -07:00
Nathan Sobo
ee3637216e Add TreeMap::remove_between that can take abstract start and end points
This commit introduces a new adaptor trait for SeekTarget that works around
frustrating issues with lifetimes. It wraps the arguments in a newtype wrapper
that lives on the stack to avoid the lifetime getting extended to the caller
of the method.

This allows us to introduce a PathSuccessor object that can be passed as the
end argument of remove_between to remove a whole subtree.
2023-05-12 08:21:01 -07:00
Kirill Bulatov
89352a2bdc Merge pull request #2463 from zed-industries/kb/reapply-modal-accessibility
Reintroduce more accesible modal keybindings
2023-05-12 06:11:04 +03:00
Max Brunsfeld
9ae10a5dd9 Add a better API for updating settings in the SettingsStore in tests 2023-05-11 17:24:58 -07:00
Mikayla Maki
defc9c8591 Merge pull request #2455 from zed-industries/git-status-viewer
Add Git Status to the project panel
2023-05-11 16:13:34 -07:00
Mikayla Maki
5fe8b73f04 compile error 😅 2023-05-11 16:07:41 -07:00
Mikayla Maki
d526fa6f1f fmt 2023-05-11 16:06:56 -07:00
Mikayla Maki
d538994c7f Use more efficient sum tree traversals for removal and improve ergonomics with iter_from
co-authored-by: Nathan <nathan@zed.dev>
2023-05-11 16:06:25 -07:00
Mikayla Maki
72655fc41d fmt 2023-05-11 13:25:57 -07:00
Mikayla Maki
6f87f9c51f Don't scan for statuses in files that are ignored 2023-05-11 13:25:07 -07:00
Mikayla Maki
1bb34e08bb Fix test 2023-05-11 12:03:39 -07:00
Mikayla Maki
dfb6a2f7fc fmt 2023-05-11 12:02:25 -07:00
Mikayla Maki
5b2ee63f80 Added status trickle up 2023-05-11 12:01:42 -07:00
Kirill Bulatov
f12dffa60c Reintroduce more accesible modal keybindings
Brings commit 475fc40923 back
2023-05-11 20:59:10 +03:00
Mikayla Maki
5accf7cf4e Update is_deleted when sending new repositories 2023-05-11 10:21:25 -07:00
Max Brunsfeld
bebb5456c7 Merge pull request #2461 from zed-industries/ci-target-dir-size
During CI, clear the target directory if it gets larger than a maximum size
2023-05-11 09:57:36 -07:00
Max Brunsfeld
3550110e57 ci: clear the target dir if it gets too big 2023-05-11 09:43:13 -07:00
Mikayla Maki
191ac86f09 Remove the CORRECT, overly agressive deletion codepath 2023-05-11 09:24:36 -07:00
Joseph Lyons
0ab94551f4 Revert "More keybindings in macOs modals with buttons"
This reverts commit 1398a12062.
2023-05-11 11:37:34 -04:00
Julia
0f34af50a8 Use path list generated during entry reload of a refresh request 2023-05-10 23:37:02 -04:00
Mikayla Maki
adfbbf21b2 fmt 2023-05-10 20:09:37 -07:00
Mikayla Maki
f5c633e80c Fixed bug in status deletion marking 2023-05-10 19:54:02 -07:00
Mikayla Maki
fca3bb3b93 Add randomized test for git statuses 2023-05-10 19:21:27 -07:00
Mikayla Maki
9800a149a6 Remove some external context from git status test 2023-05-10 17:59:33 -07:00
Mikayla Maki
f55ca7ae3c Fix incorrect import 2023-05-10 17:52:23 -07:00
Mikayla Maki
18becabfa5 Add postgres migration 2023-05-10 17:50:35 -07:00
Max Brunsfeld
bc5b78198a Define terminal settings in terminal crate 2023-05-10 17:43:10 -07:00
Mikayla Maki
c7166fde3b Bump protocol version 2023-05-10 17:38:29 -07:00
Mikayla Maki
65d4c4f6ed Add integration test for git status 2023-05-10 17:37:36 -07:00
Mikayla Maki
e20eaca595 Got basic replication working :) 2023-05-10 17:37:36 -07:00
Mikayla Maki
2b80dfa81d Update protos 2023-05-10 17:37:36 -07:00
Mikayla Maki
00b345fdfe Use sum tree traversal to remove paths 2023-05-10 17:37:36 -07:00
Mikayla Maki
23a19d85b8 Fix bug in status detection when removing a directory 2023-05-10 17:37:36 -07:00
Mikayla Maki
0082d68d4a Revert "Convert git status calculation to use Entry IDs as the key instead of repo relative paths"
This reverts commit 728c6892c924ebeabb086e308ec4b5f56c4fd72a.
2023-05-10 17:37:36 -07:00
Petros Amoiridis
21e1bdc8cd Fix yellow to be yellow 2023-05-10 17:37:36 -07:00
Petros Amoiridis
6b4242cded Use theme.editor.diff for the colors 2023-05-10 17:37:36 -07:00
Mikayla Maki
f935047ff2 Convert git status calculation to use Entry IDs as the key instead of repo relative paths 2023-05-10 17:37:36 -07:00
Mikayla Maki
94a0de4c9f Fix compile errors 2023-05-10 17:37:36 -07:00
Mikayla Maki
a58a33fc93 WIP: integrate status with collab 2023-05-10 17:37:36 -07:00
Mikayla Maki
18cec8d64f Format 2023-05-10 17:37:36 -07:00
Mikayla Maki
e98507d8bf Added git status to the project panel, added worktree test 2023-05-10 17:37:36 -07:00
Mikayla Maki
93f57430da Track live entry status in repository 2023-05-10 17:37:36 -07:00
Mikayla Maki
bd98f78101 Fix compile error 2023-05-10 17:37:36 -07:00
Mikayla Maki
67491632cb WIP: Track live entry status in repository
co-authored-by: petros <petros@zed.dev>
2023-05-10 17:37:36 -07:00
Mikayla Maki
7169f5c760 Add git status to the file system abstraction
co-authored-by: petros <petros@zed.dev>
2023-05-10 17:37:36 -07:00
Max Brunsfeld
cee7edabf9 Ensure the SettingsStore global is added in tests 2023-05-10 16:39:59 -07:00
Joseph Lyons
6385e51957 collab 0.12.1 2023-05-10 18:16:20 -04:00
Joseph Lyons
9405b49957 v0.87.x dev 2023-05-10 16:47:09 -04:00
Max Brunsfeld
68867fe2e1 Define journal settings in journal crate 2023-05-10 12:59:24 -07:00
Max Brunsfeld
aa6ea920e2 Define telemetry settings in the client crate 2023-05-10 12:59:24 -07:00
Max Brunsfeld
9b06be2aa2 Define vim_mode setting in vim crate 2023-05-10 12:59:24 -07:00
Max Brunsfeld
926d7b356d Define auto_update setting in the auto_update crate 2023-05-10 12:59:24 -07:00
Max Brunsfeld
b6b2c5d1d1 Generalize settings JSON schema logic to work w/ arbitrary setting types 2023-05-10 12:59:24 -07:00
Max Brunsfeld
9a6a2d9d27 Start using the SettingsStore in the app 2023-05-10 12:59:24 -07:00
Max Brunsfeld
316f791a77 Add generic update method to SettingsStore 2023-05-10 12:59:24 -07:00
Max Brunsfeld
24e06334d0 Allow registering additional settings after loading global settings 2023-05-10 12:59:24 -07:00
Max Brunsfeld
5de9652a22 Create proof-of-concept SettingStore struct 2023-05-10 12:59:22 -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
9b9d53fcf8 Focus the root view if the previously-focused view isn't rendered 2023-05-10 15:40:46 +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
Antonio Scandurra
6e3ce6332a Fix panic when not specifying a project_panel setting 2023-05-10 10:43:42 +02:00
Kirill Bulatov
eec60556ab Highlight include/exclude inputs when errors happen there 2023-05-10 11:11:31 +03:00
Kirill Bulatov
dfdf7e4866 Test the search inclusions/exclusions 2023-05-10 11:11:31 +03:00
Kirill Bulatov
80fc1bc276 Use placeholder in include/exclude editors 2023-05-10 11:11:31 +03:00
Kirill Bulatov
0e31d13a1e Rework tab and escape key handling in search panel
Fixes
https://linear.app/zed-industries/issue/Z-1238/focus-the-results-multibuffer-in-project-search-on-esc

and adds a tab shortcut for project search inputs

co-authored-by: Julia <julia@zed.dev>
2023-05-10 11:11:31 +03:00
Kirill Bulatov
3da55c14a6 Fix arrow layout 2023-05-10 11:11:31 +03:00
Kirill Bulatov
6fb8679184 Trim glob input 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
Kirill Bulatov
b5abac6af6 Draft search include/exclude logic 2023-05-10 11:11:31 +03:00
Kirill Bulatov
915154b047 Add initial include/exclude project search UI 2023-05-10 11:11:31 +03:00
Antonio Scandurra
3115c8381d Merge pull request #2458 from zed-industries/fix-context-menu-click
Always dismiss context menu on click
2023-05-10 09:24:23 +02:00
Antonio Scandurra
1b5e79251c Always dismiss context menu on click 2023-05-10 09:18:13 +02:00
Nathan Sobo
9173916ab8 Remove unused terminal_button module 2023-05-09 20:24:37 -06:00
Nathan Sobo
f554877ff4 Render the bottom dock buttons before the right dock buttons 2023-05-09 17:41:24 -06:00
Nathan Sobo
ba248244ec Allow terminal to be docked left, bottom, or right
Co-Authored-By: Joseph Lyons <joseph@zed.dev>
2023-05-09 17:36:49 -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
0d78266ddb Replace todo with unimplemented to reduce distractions 2023-05-09 16:41:10 -06:00
Nathan Sobo
6d16d2224d Merge branch 'main' into panels 2023-05-09 16:35:04 -06:00
Nathan Sobo
5e8b7bd06d Replace todo with unimplemented to reduce distractions 2023-05-09 16:31:53 -06:00
Mikayla Maki
26d80eef0a Merge pull request #2456 from zed-industries/fix-dock-pane-focus
Make dock not eagerly steal focus from sub items
2023-05-09 15:59:06 -04: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
641f5d1107 Ensure ctrl-` works in the terminal panel 2023-05-09 17:38:18 +02:00
Antonio Scandurra
2bc7be9a76 WIP 2023-05-09 17:14:33 +02:00
Antonio Scandurra
48ad3866b7 Randomly mutate worktree in addition to mutating the file-system
This ensures that we test the code path that refreshes entries.

Co-Authored-By: Julia Risley <julia@zed.dev>
2023-05-09 17:01:11 +02:00
Antonio Scandurra
7f27d72b20 Deliver file-system change events in batches in randomized worktree test
Co-Authored-By: Julia Risley <julia@zed.dev>
2023-05-09 16:55:03 +02:00
Julia
5c859da457 Only update changed local worktree buffers
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2023-05-09 15:13:12 +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
2d7cfb8c7c Merge pull request #2454 from zed-industries/fix-mismatching-panes-when-deserializing-empty-panes
Fully remove panes and update internal data structures
2023-05-08 20:37:06 -04: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
Max Brunsfeld
8fd0c9fb0e collab 0.12.0 2023-05-08 15:54:11 -07:00
Mikayla Maki
1d66f24f23 Merge pull request #2428 from zed-industries/add-branch-name
Add branch name and synchronize repository representations on the worktree.
2023-05-08 17:40:47 -04:00
Mikayla Maki
9366a0dbee Bump protocol version number 2023-05-08 14:34:14 -07:00
Mikayla Maki
f28419cfd1 Fix styling of titlebar highlights 2023-05-08 14:33:59 -07:00
Mikayla Maki
712fb5ad7f Add postgres migration 2023-05-08 14:33:59 -07:00
Mikayla Maki
1a9afd186b Restore randomized integration tests 2023-05-08 14:33:59 -07:00
Mikayla Maki
15d2f19b4a fix format 2023-05-08 14:33:59 -07:00
Mikayla Maki
d2279674a7 Fix panic in tests 2023-05-08 14:33:59 -07:00
Mikayla Maki
62e763d0d3 Removed test modifications, added special case to git initialization for when the repository is inside a .git folder 2023-05-08 14:33:59 -07:00
Mikayla Maki
f9e4464658 Refresh titlebar on project notifications 2023-05-08 14:33:59 -07:00
Mikayla Maki
2c2076bd77 Adjust tests to not create repositories inside repositories 2023-05-08 14:33:59 -07:00
Mikayla Maki
ab952f1b31 Fixed randomized test failures
co-authored-by: Max <max@zed.dev>
2023-05-08 14:33:59 -07:00
Mikayla Maki
d8dac07408 Removed scan ID from repository interfaces
co-authored-by: Max <max@zed.dev>
2023-05-08 14:33:59 -07:00
Mikayla Maki
270147d20c Finished RepositoryEntry refactoring, smoke tests passing
co-authored-by: Max <max@zed.dev>
2023-05-08 14:33:59 -07:00
Mikayla Maki
53569ece03 WIP: Change RepositoryEntry representation to be keyed off of the work directory
Removes branches button scaffolding
2023-05-08 14:33:59 -07:00
Mikayla Maki
b6d6f5c650 WIP: re-arranging the RepositoryEntry representation
Added branches to the randomized test to check the git branch
Added the remaining database integrations in collab

Co-authored-by: Max <max@zed.dev>
Co-authored-by: Petros <petros@zed.dev>
2023-05-08 14:33:59 -07:00
Mikayla Maki
8bde496e74 Add branch name in title UI
co-authored-by: Petros <petros@zed.dev>
2023-05-08 14:33:59 -07:00
Petros Amoiridis
5302c256a4 Rebase main and fix error 2023-05-08 14:33:59 -07:00
Mikayla Maki
8301ee43d6 WIP: Add repository entries to collab and synchronize when rejoining the room
co-authored-by: Max <max@zed.dev>
2023-05-08 14:33:59 -07:00
Mikayla Maki
2fe5bf419b Add proto fields for repository entry maintenance 2023-05-08 14:33:59 -07:00
Mikayla Maki
c6d7ed33c2 Add smoke test for collaboration 2023-05-08 14:33:59 -07:00
Petros Amoiridis
ca4da52e39 Remove unused functions 2023-05-08 14:33:59 -07:00
Petros Amoiridis
e057b0193f Introduce BrancesButton in title bar
Co-Authored-By: Mikayla Maki <mikayla.c.maki@gmail.com>
2023-05-08 14:33:58 -07:00
Petros Amoiridis
797d47a08c Render title root names without branches 2023-05-08 14:33:58 -07:00
Petros Amoiridis
92a222aba8 Introduce a version control branch icon 2023-05-08 14:33:58 -07:00
Mikayla Maki
8f0aa3c6d9 Add branch name into title 2023-05-08 14:33:58 -07:00
Petros Amoiridis
d34ec462f8 Display branch information per worktree root
Co-Authored-By: Mikayla Maki <mikayla.c.maki@gmail.com>
2023-05-08 14:33:58 -07:00
Mikayla Maki
ffd9d4eb59 Fix bug in repo detection 2023-05-08 14:33:58 -07:00
Mikayla Maki
3570810516 Add API for accessing git branch 2023-05-08 14:33:58 -07:00
Mikayla Maki
26afd592c5 Wire in the branch name 2023-05-08 14:33:58 -07:00
Mikayla Maki
5b4e58d1de Fix repo_for and clean up repository_entries 2023-05-08 14:33:58 -07:00
Mikayla Maki
023d665fb3 Fix TreeMap retain 2023-05-08 14:33:58 -07:00
Mikayla Maki
ae890212e3 Restored a lost API and got everything compiling 2023-05-08 14:33:58 -07:00
Mikayla Maki
bcf608e9e9 WIP: Refactor existing git code to use new representation.
co-authored-by: petros <petros@zed.dev>
2023-05-08 14:33:58 -07:00
Mikayla Maki
563f13925f WIP: Convert old git repository vec to new treemap based approach.
co-authored-by: Nathan <nathan@zed.dev>
2023-05-08 14:33:58 -07:00
Mikayla Maki
a58d3d8128 Add a data driven representation of the current git repository state to the worktree snapshots
WIP: Switch git repositories to use SumTrees

Co-authored-by: Nathan <nathan@zed.dev>
2023-05-08 14:33:58 -07:00
Mikayla Maki
bb93447a0d Merge pull request #2453 from zed-industries/fix-click-fallthrough
Fixed clicks falling through the modal terminal
2023-05-08 13:59:57 -04:00
Mikayla Maki
2cf928c85a Fixed clicks falling through the modal terminal
co-authored-by: Antonio <antonio@zed.dev>
2023-05-08 10:54:12 -07:00
Kirill Bulatov
39bddfc7b7 Only allow invisbles in local and leader selections 2023-05-08 19:36:51 +03:00
Kirill Bulatov
98ff18c430 Code review fixes 2023-05-08 19:36:51 +03:00
Kirill Bulatov
e6489e999d Add invisibles wrapping test 2023-05-08 19:36:51 +03:00
Kirill Bulatov
d2b2dc39d9 Do not print invisibles in non-full mode editors 2023-05-08 19:36:51 +03:00
Nate Butler
ab6b3adb2b Add a theme entry for whitespace, use it to style whitespaces
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Kirill Bulatov <mail4score@gmail.com>
2023-05-08 19:36:51 +03:00
Kirill Bulatov
fb3ef4bcf6 Fix wrapped line detection 2023-05-08 19:36:51 +03:00
Kirill Bulatov
075bab2ea9 Use more convntional name for the settings 2023-05-08 19:36:51 +03:00
Kirill Bulatov
706f6f495a Add a test 2023-05-08 19:36:51 +03:00
Kirill Bulatov
ec725fe399 Do not print extra invisibles on line wraps 2023-05-08 19:36:51 +03:00
Kirill Bulatov
95bcd19020 Refactor line glyphs drawing methods 2023-05-08 19:36:51 +03:00
Kirill Bulatov
4aaf44df94 Support invisibles in the selection 2023-05-08 19:36:51 +03:00
Kirill Bulatov
1eeeec157e Use cached standard glyphs for invisible symbols
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2023-05-08 19:36:51 +03:00
Kirill Bulatov
714734d279 Add whitespaces rendering 2023-05-08 19:36:51 +03:00
Kirill Bulatov
2d8c88ad73 Draw tabs with svg icons in editor code only 2023-05-08 19:36:51 +03:00
Kirill Bulatov
f0a88b3337 Make invisibles display configurable 2023-05-08 19:36:51 +03:00
Kirill Bulatov
ad731ea6d2 Draft invisibles' tabs display 2023-05-08 19:36:51 +03:00
Max Brunsfeld
4f8607039c Add is_tab field to chunks
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2023-05-08 19:36:51 +03:00
Julia
cf304a0edc Merge pull request #2452 from zed-industries/prevent-some-rounding-clipping
Prevent some cases of clipping icons due to pixel coord rounding
2023-05-08 11:48:33 -04:00
Julia
332b364a30 Prevent some cases of clipping icons due to pixel coord rounding 2023-05-08 11:42:00 -04:00
Antonio Scandurra
235470bbfd Merge pull request #2451 from zed-industries/kb/extra-deps
Remove unused dependencies
2023-05-08 14:46:27 +02:00
Kirill Bulatov
6cb0bc89d2 Remove unused dependencies 2023-05-07 21:07:55 +03: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
5e16f70067 💄 2023-05-05 10:53:15 +02:00
Antonio Scandurra
080a1f00a3 Delay focus_in event for window activation till after layout 2023-05-05 10:47:42 +02:00
Antonio Scandurra
b9ed327b94 Replace usages of is_parent_view_focused with is_self_focused
Previously, this was used because we didn't have access to the current
view and `EventContext` was an element-only abstraction. Now that the
`EventContext` wraps the current view's `ViewContext` we can simply check
for the view's focus and avoid querying ancestors.
2023-05-05 10:08:22 +02:00
Antonio Scandurra
80ad59a620 Make focusing the parent an effect to avoid querying ancestors 2023-05-05 10:04:54 +02:00
Joseph T. Lyons
c55a4c0feb Merge pull request #2447 from zed-industries/fix-auto-update
Do not use post_json() to auto update
2023-05-04 17:15:09 -04:00
Mikayla Maki
3631b3a86c Merge pull request #2446 from zed-industries/fix-copilot-logged-out
Fix copilot stuck in logged out state
2023-05-04 16:52:04 -04:00
Mikayla Maki
89af803565 Rearrange the state machine 2023-05-04 13:45:31 -07:00
Julia
137cbaba34 Merge pull request #2445 from zed-industries/construct-text-buffer-in-background
Construct text buffer in background
2023-05-04 16:01:39 -04:00
Julia
eacea55aaf Fixup cases using buffer model handle id as buffer id 2023-05-04 12:32:31 -04:00
Julia
1883e260ce Offload text::Buffer construction to background worker
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2023-05-04 12:32:31 -04:00
Julia
7e06062bdb Store history base text as rope
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2023-05-04 12:32:31 -04:00
Joseph Lyons
8313414e1e Do not use post_json() to auto update 2023-05-04 12:12:36 -04:00
Antonio Scandurra
d6b0569bed Merge branch 'main' into implicit-ancestry 2023-05-04 17:19:06 +02:00
Antonio Scandurra
f51425d390 Merge pull request #2444 from zed-industries/fix-clicking-sidebar-buttons
Use `Workspace::toggle_sidebar_item` when clicking on sidebar button
2023-05-04 17:14:40 +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
cbae4e751b Merge pull request #2443 from zed-industries/fix-vim-mode-rename
Avoid calling `update_window` twice in `blurred` event handler
2023-05-04 16:24:51 +02:00
Antonio Scandurra
912a4cf549 Avoid calling update_window twice in blurred event handler
This was preventing us from unhooking vim when performing a rename,
which prevented typing in the rename editor.
2023-05-04 16:18:01 +02:00
Antonio Scandurra
0f93714d4f Merge pull request #2442 from zed-industries/filter-vim-commands
Filter out vim commands when vim mode is disabled
2023-05-04 15:00:19 +02:00
Antonio Scandurra
b1f5cfaa79 Merge pull request #2440 from zed-industries/fix-navigate-to-definitions-panic
Fix panic when opening multiple definitions in a multibuffer
2023-05-04 14:56:43 +02:00
Antonio Scandurra
b3baebde22 Filter out vim commands when vim mode is disabled 2023-05-04 14:52:34 +02:00
Antonio Scandurra
da19edc3e3 Merge branch 'main' into implicit-ancestry 2023-05-04 14:39:58 +02:00
Antonio Scandurra
121264d35a Fix panic when opening multiple definitions in a multibuffer
The editor is on the stack, so adding an item to the `Pane` containing
the editor will cause a double borrow and a consequent panic. This
commit fixes the issue by deferring the opening of the definitions.
2023-05-04 14:34:42 +02:00
Antonio Scandurra
7e2a461486 Merge pull request #2439 from zed-industries/fix-keystrokes-for-action
Cache view's type id and keymap context into a separate map
2023-05-04 14:22:42 +02:00
Antonio Scandurra
5cc6304fa6 Verify keystrokes can be queried while views are on the stack 2023-05-04 12:09:32 +02:00
Antonio Scandurra
3d679ddb26 Avoid re-allocating KeymapContext after every view notification 2023-05-04 12:04:30 +02:00
Antonio Scandurra
18e39ef2fa Cache view's type id and keymap context into a separate map
During `layout`, we now pass a mutable reference to the element's
parent view. This is a recursive process that causes the view to
be removed from `AppContext` and then re-inserted back into it once
the layout is complete.

As such, querying parent views during `layout` does not work as such
views will have been removed from `AppContext` and not yet re-inserted
into it. This caused a bug in `KeystrokeLabel`, which used the `keystrokes_for_action`
method to query its ancestors to determine their type id and keymap context.

Now, any time a view notifies, we will cache its keymap context so that
we don't need to query the parent view during `layout`.
2023-05-04 10:47:56 +02:00
Antonio Scandurra
7b7a495be3 Remove stray dbg! statement 2023-05-04 09:56:49 +02:00
Antonio Scandurra
f6f18be9c3 Remove WindowContext::is_child_focused 2023-05-04 09:53:35 +02:00
Antonio Scandurra
67a3891f15 Make dispatch_event related methods public to the crate only 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
Joseph Lyons
053b34875b collab 0.11.0 2023-05-03 14:59:04 -04:00
Joseph Lyons
653ea3a85d v0.86.x dev 2023-05-03 14:38:41 -04:00
Max Brunsfeld
c2c29d3fb6 Merge pull request #2427 from zed-industries/copilot-disabled-globs
Add copilot.disabled_globs setting
2023-05-03 11:00:08 -07:00
Max Brunsfeld
9d41f83b1b Merge branch 'main' into copilot-disabled-globs 2023-05-03 10:53:28 -07:00
Antonio Scandurra
040cc4d4c3 Allow notifying views when the ancestry of another view is outdated 2023-05-03 19:25:00 +02:00
Max Brunsfeld
8eb1312deb Add copilot menu item for enabling paths by glob 2023-05-03 10:14:01 -07:00
Antonio Scandurra
7250754f8e Make dispatch_keystroke public to the crate only 2023-05-03 19:13:17 +02:00
Antonio Scandurra
9e8f852afb Remove ViewContext::is_child 2023-05-03 19:09:07 +02:00
Antonio Scandurra
5157442703 Fix integration test relying on deferred happening after focus
Focus is now one of the last things that happens during `flush_effects`,
and we shouldn't have relied on `defer` in the first place to verify
focus changes.
2023-05-03 19:00:32 +02:00
Antonio Scandurra
c65465b0b5 Ensure workspace gets rendered in collab integration tests 2023-05-03 18:31: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
3f037e5128 Merge pull request #2437 from zed-industries/fix-joining-call
Fix "IncomingCallNotification was dropped" error when accepting a call
2023-05-03 10:49:04 +02:00
Antonio Scandurra
376aa1235f Fix "IncomingCallNotification was dropped" error when accepting a call
This was caused by accepting the call, which caused the notification to
be removed. When `active_call.accept_incoming()` finally completed, we
would try to get the app state from it in order to join the project, but
couldn't becuase the view would have already been dropped.

This commit fixes the bug by capturing a weak handle to the app state
when accepting the call as opposed to trying to read it from the view
when the accept completes.
2023-05-03 10:37:57 +02:00
Antonio Scandurra
c3cf9e3185 Merge pull request #2436 from zed-industries/close-window-end-call
Move methods querying window state into `AsyncAppContext`
2023-05-03 10:27:05 +02:00
Joseph T. Lyons
f576586cd7 Merge pull request #2435 from zed-industries/use-json-post-request-for-update-requests
Use json_post() request for update requests
2023-05-02 23:42:25 -04:00
Joseph Lyons
41d4454f45 Use post_json so that the Content-Type is set to application/json 2023-05-02 23:23:43 -04:00
Joseph Lyons
69a4fffae2 Update post_json to take in a bool for allowing for redirects 2023-05-02 23:22:55 -04:00
Joseph T. Lyons
7f5afeb9fa Merge pull request #2434 from zed-industries/add-download-and-uplodate-metadata-to-update-request
Add download and upload metadata to update request
2023-05-02 22:27:58 -04:00
Joseph Lyons
2b95aba99c Add download and upload metadata to update request 2023-05-02 17:16:42 -04:00
Kirill Bulatov
1398a12062 More keybindings in macOs modals with buttons
Closes https://github.com/zed-industries/community/issues/1095
by forcing the non-Cancel button to get a focus.
Due to the way macOs handles buttons on modals, the focus gain had to be
achieved via certain button addition order, rather than conventional
"setFocus"-ish API, see the related comment for details.

Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2023-05-02 21:10:20 +03:00
Antonio Scandurra
70f8cf4cf6 Move methods querying window state into AsyncAppContext 2023-05-02 19:38:48 +02:00
Julia
4f6939732e Merge pull request #2432 from zed-industries/more-diagnostic-source
Show diagnostic source in more places
2023-05-02 09:16:11 -04:00
Julia
185c1650df Show diagnostic source in inline diagnostic 2023-05-02 09:08:07 -04:00
Antonio Scandurra
9108e4151e Merge pull request #2431 from zed-industries/fix-broken-contact-finder
Fix broken styling in contact finder
2023-05-02 13:55:14 +02:00
Antonio Scandurra
94f1775533 Fix broken styling in contact finder
This regressed as part of #2372, where we forgot to theme the contact
finder picker differently from the rest of the app.
2023-05-02 13:46:49 +02:00
Antonio Scandurra
e8f2d985ff Merge pull request #2430 from zed-industries/fix-toggle-contacts-panic
Fix panic when showing contacts popover via keybinding
2023-05-02 11:53:24 +02:00
Antonio Scandurra
f985fac6f9 Fix panic when showing contacts popover via keybinding 2023-05-02 11:47:05 +02:00
Antonio Scandurra
484cda51cf Merge pull request #2429 from zed-industries/fix-debug-elements-panic
Move `debug_elements` to `AsyncAppContext`
2023-05-02 11:15:57 +02:00
Kirill Bulatov
f5278c49b0 Clarify GH Token scope requirements 2023-05-02 12:12:57 +03:00
Antonio Scandurra
794446bf8b Move debug_elements to AsyncAppContext
Previously, `debug_elements` was available on `WindowContext`. If that
method was called while having a borrow out to a view, it would panic because
the view would already have been borrowed.

By moving it to an `AsyncAppContext` we ensure the method can't be called while
a view is being used.
2023-05-02 11:09:40 +02:00
Antonio Scandurra
4c1cba6def Remove unnecessary Element impl for RootElement 2023-05-02 10:09:57 +02:00
Julia
f7de0ad8ae Show diagnostic source in diagnostic multibuffer headers 2023-05-01 16:48:27 -04:00
Max Brunsfeld
c485fc86a2 Add copilot.disabled_globs setting 2023-05-01 13:45:47 -07:00
Joseph T. Lyons
f62ba2eec7 use installation_id over device_id 2023-05-01 16:29:51 -04:00
Julia
5fb9d53dd0 Merge pull request #2425 from zed-industries/trim-eslint-workspace-configuration
Trim eslint workspace configuration & remove diagnostic source underline
2023-05-01 13:24:14 -04:00
Julia
40ab5c1fb9 Remove underline from diagnostic source 2023-05-01 13:15:41 -04:00
Julia
4966a4a681 Reduce hardcoded ESLint workspace configuration 2023-05-01 13:14:35 -04:00
Antonio Scandurra
a8084ad3f4 Merge pull request #2424 from zed-industries/constrain-programmatic-dispatch
Allow programmatic action dispatch only via `AsyncAppContext`
2023-05-01 17:10:57 +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
e3b2407ebf Run until parked now that the command palette spawns to dispatch action 2023-05-01 16:58:07 +02:00
Antonio Scandurra
6c931ab9da Inline test-only AppContext methods 2023-05-01 16:49:17 +02:00
Antonio Scandurra
eb2cce98a7 Move dispatch_action_any_action_at to AsyncAppContext 2023-05-01 16:40:57 +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
029538fe21 Make dispatch_global_action private 2023-05-01 11:45:35 +02:00
Antonio Scandurra
0f44648b38 Merge pull request #2423 from zed-industries/fix-panic-in-go-to-definition
Fix panic when clicking on a definition
2023-04-29 15:02:18 +02:00
Antonio Scandurra
e566929d9e Fix panic when clicking on a definition
This was introduced with #2420 and was caused by re-entrantly updating
the workspace. Instead of passing the workspace reference from the outside,
we now define the definition navigation as a method on the editor which solves
the issue.

Note that we also needed to introduce a `defer` call when navigating to a definition
to prevent the workspace from reading the editor during `open_project_item`.
2023-04-29 14:53:17 +02:00
Joseph T. Lyons
ae5794d911 Merge pull request #2421 from zed-industries/metrics-2
Rework telemetry code to support sending events to Clickhouse
2023-04-28 17:16:33 -04:00
Julia
32f26d1e9a Merge pull request #2422 from zed-industries/source-eslint-server-from-github
Source ESLint server from Github rather than 3rd party NPM package
2023-04-28 16:53:07 -04:00
Julia
1bf85214a4 Source ESLint server from Github rather than 3rd party NPM package 2023-04-28 16:42:36 -04:00
Joseph Lyons
6b0faa2d9c Rework telemetry code to support sending events to Clickhouse
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2023-04-28 16:06:55 -04:00
Antonio Scandurra
dc999f719b Merge pull request #2420 from zed-industries/simplify-action-dispatch
Remove `impl_internal_actions!` macro
2023-04-28 17:39:56 +02:00
Antonio Scandurra
106ebeb386 Remove obsolete presenter modules 2023-04-28 17:37:25 +02:00
Antonio Scandurra
489b1f6a63 Merge remote-tracking branch 'origin/main' into simplify-action-dispatch 2023-04-28 17:31:12 +02:00
Antonio Scandurra
1c5376a560 Remove impl_internal_actions macro 2023-04-28 17:29:57 +02:00
Antonio Scandurra
1d41a703ad Remove internal actions from terminal_button 2023-04-28 17:29:17 +02:00
Antonio Scandurra
33da9e5690 Remove internal actions from project_panel 2023-04-28 17:21:10 +02:00
Antonio Scandurra
e1535735b8 Remove DeployContextMenu internal action 2023-04-28 16:51:01 +02:00
Antonio Scandurra
f65e64829e Remove Scroll internal action 2023-04-28 16:43:31 +02:00
Antonio Scandurra
3409ee1785 Remove DeployMouseContextMenu internal action
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-04-28 16:41:46 +02:00
Antonio Scandurra
c22342e271 💄
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-04-28 16:38:00 +02:00
Antonio Scandurra
1f35e1dbf9 Remove internal actions from copilot_button
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-04-28 16:36:57 +02:00
Antonio Scandurra
a91903c2ab Remove internal actions from link_go_to_definition 2023-04-28 16:24:46 +02:00
Antonio Scandurra
264a2c1835 Remove HideHover and HoverAt internal actions 2023-04-28 16:12:24 +02:00
Antonio Scandurra
e6f561ce46 Remove unused Jump internal action 2023-04-28 15:57:36 +02:00
Antonio Scandurra
c04cb0286a Remove Dismiss and RespondToContactRequest internal actions 2023-04-28 15:56:41 +02:00
Antonio Scandurra
0469e25de6 Remove LeaveCall internal action 2023-04-28 14:14:25 +02:00
Antonio Scandurra
83436213ad Remove Jump internal action 2023-04-28 14:13:07 +02:00
Antonio Scandurra
3763b985e3 Fix panic due to re-entrantly reading Workspace 2023-04-28 12:36:50 +02:00
Antonio Scandurra
a978f3fe4f Remove Select internal action 2023-04-28 12:33:22 +02:00
Antonio Scandurra
5215adbd3f Remove ToggleExpanded and Call internal actions 2023-04-28 12:26:47 +02:00
Antonio Scandurra
5d8fcceee3 Remove RespondToCall internal action 2023-04-28 12:24:07 +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
Max Brunsfeld
db73ba5a1a Merge pull request #2419 from zed-industries/zombie-copilot-process
Shutdown copilot server when quitting zed
2023-04-27 14:47:30 -07:00
Max Brunsfeld
1533c17cd7 Shutdown copilot server when quitting zed 2023-04-27 14:39:00 -07:00
Max Brunsfeld
7258db7a4e Merge pull request #2417 from zed-industries/hover-markdown
Render markdown more correctly in the editor hover popover
2023-04-27 14:15:04 -07:00
Max Brunsfeld
6042df393b Give code spans in markdown a background highlight 2023-04-27 13:58:30 -07:00
Max Brunsfeld
8eb9c6563a Generalize Text element to let you add arbitrary scene primitives for runs of text 2023-04-27 13:58:06 -07:00
Julia
92c9de1f50 Merge pull request #2415 from zed-industries/diagnostic-hovers-source
Show source of diagnostic on hover
2023-04-27 15:12:22 -04:00
Julia
87539e7b82 Update test to not fail due to absence of diagnostic source 2023-04-27 15:04:48 -04:00
Max Brunsfeld
66d4cb8c14 Tweak rendering of multi-paragraph list items in markdown 2023-04-27 11:39:34 -07:00
Julia
a284fae515 Don't hardcode workspaceFolder for ESLint adapter 2023-04-27 14:35:34 -04:00
Julia
678c188de0 Re-allow diagnostics hovers to soft wrap
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-04-27 14:35:34 -04:00
Julia
3f7533a0b4 Show source of diagnostic hovers 2023-04-27 14:35:34 -04:00
Max Brunsfeld
45c7073934 Merge pull request #2418 from zed-industries/vim-inactive-window-crash
Fix vim mode crash when active editor changes in inactive window
2023-04-27 10:48:49 -07:00
Max Brunsfeld
30f20024c0 Fix vim mode crash when active editor changes in inactive window
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2023-04-27 10:43:35 -07: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
15d83d40b0 Remove internal actions from menu crate 2023-04-27 14:29:11 +02:00
Antonio Scandurra
816eb06a7b Remove internal actions from CopilotCodeVerification 2023-04-27 14:25:34 +02:00
Antonio Scandurra
32f21771a6 Remove internal actions from ContextMenu 2023-04-27 14:25:14 +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
d3b976d044 Remove ContextMenu::element_item 2023-04-27 11:11:21 +02:00
Antonio Scandurra
df2f471ddf Remove unused ContextMenu::ViewAction 2023-04-27 10:55:37 +02:00
Antonio Scandurra
06b12bbb68 Remove unnecessarily general keystroke_label_for function 2023-04-27 10:55:14 +02:00
Max Brunsfeld
c6abb0db3a Improve rendering of multi-paragraph list items in hover markdown 2023-04-26 17:09:20 -07:00
Max Brunsfeld
c75207c4e5 Merge pull request #2416 from zed-industries/outline-view-leaving-lines-highlighted
Remove highlighted rows when confirming outline view
2023-04-26 16:11:22 -07:00
Max Brunsfeld
c15dadbb8c Remove highlighted rows when confirming outline view 2023-04-26 15:46:29 -07:00
Max Brunsfeld
d298ce3fd3 Render more markdown features in hover popover 2023-04-26 15:33:10 -07:00
Max Brunsfeld
7960067cf9 Fix bug where Text element would wrap at the right glyph in the wrong run 2023-04-26 15:33:10 -07:00
Max Brunsfeld
54e7464163 collab 0.10.0 2023-04-26 13:24:08 -07:00
Max Brunsfeld
1bbcff543b Add API for adding mouse regions within Text 2023-04-26 12:00:26 -07:00
Joseph Lyons
99e82d829f v0.85.x dev 2023-04-26 14:19:52 -04:00
Max Brunsfeld
a7145021b6 Extract a named struct from text_layout::Line's style runs 2023-04-25 14:05:23 -07:00
1390 changed files with 251595 additions and 91259 deletions

12
.cargo/ci-config.toml Normal file
View File

@@ -0,0 +1,12 @@
# This config is different from config.toml in this directory, as the latter is recognized by Cargo.
# This file is placed in $HOME/.cargo/config.toml on CI runs. Cargo then merges Zeds .cargo/config.toml with $HOME/.cargo/config.toml
# with preference for settings from Zeds config.toml.
# TL;DR: If a value is set in both ci-config.toml and config.toml, config.toml value takes precedence.
# Arrays are merged together though. See: https://doc.rust-lang.org/cargo/reference/config.html#hierarchical-structure
# The intent for this file is to configure CI build process with a divergance from Zed developers experience; for example, in this config file
# we use `-D warnings` for rustflags (which makes compilation fail in presence of warnings during build process). Placing that in developers `config.toml`
# would be incovenient.
# We *could* override things like RUSTFLAGS manually by setting them as environment variables, but that is less DRY; worse yet, if you forget to set proper environment variables
# in one spot, that's going to trigger a rebuild of all of the artifacts. Using ci-config.toml we can define these overrides for CI in one spot and not worry about it.
[build]
rustflags = ["-D", "warnings"]

3
.cargo/config.toml Normal file
View File

@@ -0,0 +1,3 @@
[build]
# v0 mangling scheme provides more detailed backtraces around closures
rustflags = ["-C", "symbol-mangling-version=v0"]

6
.config/nextest.toml Normal file
View File

@@ -0,0 +1,6 @@
[test-groups]
sequential-db-tests = { max-threads = 1 }
[[profile.default.overrides]]
filter = 'package(db)'
test-group = 'sequential-db-tests'

View File

@@ -0,0 +1,15 @@
name: 'Check formatting'
description: 'Checks code formatting use cargo fmt'
runs:
using: "composite"
steps:
- name: Install Rust
shell: bash -euxo pipefail {0}
run: |
rustup set profile minimal
rustup update stable
- name: cargo fmt
shell: bash -euxo pipefail {0}
run: cargo fmt --all -- --check

30
.github/actions/run_tests/action.yml vendored Normal file
View File

@@ -0,0 +1,30 @@
name: "Run tests"
description: "Runs the tests"
runs:
using: "composite"
steps:
- name: Install Rust
shell: bash -euxo pipefail {0}
run: |
rustup set profile minimal
rustup update stable
rustup target add wasm32-wasi
cargo install cargo-nextest
- name: Install Node
uses: actions/setup-node@v3
with:
node-version: "18"
- name: Limit target directory size
shell: bash -euxo pipefail {0}
run: script/clear-target-dir-if-larger-than 100
- name: Run check
shell: bash -euxo pipefail {0}
run: cargo check --tests --workspace
- name: Run tests
shell: bash -euxo pipefail {0}
run: cargo nextest run --workspace --no-fail-fast

5
.github/pull_request_template.md vendored Normal file
View File

@@ -0,0 +1,5 @@
[[PR Description]]
Release Notes:
- (Added|Fixed|Improved) ... ([#<public_issue_number_if_exists>](https://github.com/zed-industries/community/issues/<public_issue_number_if_exists>)).

View File

@@ -1,160 +1,149 @@
name: CI
on:
push:
branches:
- main
- "v[0-9]+.[0-9]+.x"
tags:
- "v*"
pull_request:
branches:
- "**"
push:
branches:
- main
- "v[0-9]+.[0-9]+.x"
tags:
- "v*"
pull_request:
branches:
- "**"
concurrency:
# Allow only one workflow per any non-`main` branch.
group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.ref_name == 'main' && github.sha || 'anysha' }}
cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
CARGO_INCREMENTAL: 0
RUST_BACKTRACE: 1
CARGO_TERM_COLOR: always
CARGO_INCREMENTAL: 0
RUST_BACKTRACE: 1
jobs:
rustfmt:
name: Check formatting
runs-on:
- self-hosted
- test
steps:
- name: Install Rust
run: |
rustup set profile minimal
rustup update stable
rustfmt:
name: Check formatting
runs-on:
- self-hosted
- test
steps:
- name: Checkout repo
uses: actions/checkout@v3
with:
clean: false
submodules: "recursive"
- name: Checkout repo
uses: actions/checkout@v2
with:
clean: false
submodules: 'recursive'
- name: Set up default .cargo/config.toml
run: cp ./.cargo/ci-config.toml ~/.cargo/config.toml
- name: cargo fmt
run: cargo fmt --all -- --check
- name: Run rustfmt
uses: ./.github/actions/check_formatting
tests:
name: Run tests
runs-on:
- self-hosted
- test
env:
RUSTFLAGS: -D warnings
steps:
- name: Install Rust
run: |
rustup set profile minimal
rustup update stable
rustup target add wasm32-wasi
tests:
name: Run tests
runs-on:
- self-hosted
- test
needs: rustfmt
steps:
- name: Checkout repo
uses: actions/checkout@v3
with:
clean: false
submodules: "recursive"
- name: Install Node
uses: actions/setup-node@v2
with:
node-version: '18'
- name: Run tests
uses: ./.github/actions/run_tests
- name: Checkout repo
uses: actions/checkout@v2
with:
clean: false
submodules: 'recursive'
- name: Build collab
run: cargo build -p collab
- name: Run check
run: cargo check --workspace
- name: Build other binaries
run: cargo build --workspace --bins --all-features
- name: Run tests
run: cargo test --workspace --no-fail-fast
- name: Build collab
run: cargo build -p collab
- name: Build other binaries
run: cargo build --workspace --bins --all-features
- name: Generate license file
run: script/generate-licenses
bundle:
name: Bundle app
runs-on:
- self-hosted
- bundle
if: ${{ github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v') }}
needs: tests
env:
MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }}
MACOS_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }}
APPLE_NOTARIZATION_USERNAME: ${{ secrets.APPLE_NOTARIZATION_USERNAME }}
APPLE_NOTARIZATION_PASSWORD: ${{ secrets.APPLE_NOTARIZATION_PASSWORD }}
ZED_MIXPANEL_TOKEN: ${{ secrets.ZED_MIXPANEL_TOKEN }}
steps:
- name: Install Rust
run: |
rustup set profile minimal
rustup update stable
rustup target add aarch64-apple-darwin
rustup target add x86_64-apple-darwin
rustup target add wasm32-wasi
- name: Install Node
uses: actions/setup-node@v2
with:
node-version: '18'
- name: Checkout repo
uses: actions/checkout@v2
with:
clean: false
submodules: 'recursive'
- name: Determine version and release channel
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
run: |
set -eu
version=$(script/get-crate-version zed)
channel=$(cat crates/zed/RELEASE_CHANNEL)
echo "Publishing version: ${version} on release channel ${channel}"
echo "RELEASE_CHANNEL=${channel}" >> $GITHUB_ENV
expected_tag_name=""
case ${channel} in
stable)
expected_tag_name="v${version}";;
preview)
expected_tag_name="v${version}-pre";;
*)
echo "can't publish a release on channel ${channel}"
exit 1;;
esac
if [[ $GITHUB_REF_NAME != $expected_tag_name ]]; then
echo "invalid release tag ${GITHUB_REF_NAME}. expected ${expected_tag_name}"
exit 1
fi
- name: Generate license file
run: script/generate-licenses
- name: Create app bundle
run: script/bundle
- name: Upload app bundle to workflow run if main branch
uses: actions/upload-artifact@v2
if: ${{ github.ref == 'refs/heads/main' }}
with:
name: Zed.dmg
path: target/release/Zed.dmg
- uses: softprops/action-gh-release@v1
name: Upload app bundle to release
if: ${{ env.RELEASE_CHANNEL }}
with:
draft: true
prerelease: ${{ env.RELEASE_CHANNEL == 'preview' }}
files: target/release/Zed.dmg
body: ""
bundle:
name: Bundle app
runs-on:
- self-hosted
- bundle
if: ${{ startsWith(github.ref, 'refs/tags/v') || contains(github.event.pull_request.labels.*.name, 'run-build-dmg') }}
needs: tests
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }}
MACOS_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }}
APPLE_NOTARIZATION_USERNAME: ${{ secrets.APPLE_NOTARIZATION_USERNAME }}
APPLE_NOTARIZATION_PASSWORD: ${{ secrets.APPLE_NOTARIZATION_PASSWORD }}
steps:
- name: Install Rust
run: |
rustup set profile minimal
rustup update stable
rustup target add aarch64-apple-darwin
rustup target add x86_64-apple-darwin
rustup target add wasm32-wasi
- name: Install Node
uses: actions/setup-node@v3
with:
node-version: "18"
- name: Checkout repo
uses: actions/checkout@v3
with:
clean: false
submodules: "recursive"
- name: Limit target directory size
run: script/clear-target-dir-if-larger-than 100
- name: Determine version and release channel
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
run: |
set -eu
version=$(script/get-crate-version zed)
channel=$(cat crates/zed/RELEASE_CHANNEL)
echo "Publishing version: ${version} on release channel ${channel}"
echo "RELEASE_CHANNEL=${channel}" >> $GITHUB_ENV
expected_tag_name=""
case ${channel} in
stable)
expected_tag_name="v${version}";;
preview)
expected_tag_name="v${version}-pre";;
nightly)
expected_tag_name="v${version}-nightly";;
*)
echo "can't publish a release on channel ${channel}"
exit 1;;
esac
if [[ $GITHUB_REF_NAME != $expected_tag_name ]]; then
echo "invalid release tag ${GITHUB_REF_NAME}. expected ${expected_tag_name}"
exit 1
fi
- name: Generate license file
run: script/generate-licenses
- name: Create app bundle
run: script/bundle
- name: Upload app bundle to workflow run if main branch or specific label
uses: actions/upload-artifact@v3
if: ${{ github.ref == 'refs/heads/main' }} || contains(github.event.pull_request.labels.*.name, 'run-build-dmg') }}
with:
name: Zed_${{ github.event.pull_request.head.sha || github.sha }}.dmg
path: target/release/Zed.dmg
- uses: softprops/action-gh-release@v1
name: Upload app bundle to release
if: ${{ env.RELEASE_CHANNEL == 'preview' || env.RELEASE_CHANNEL == 'stable' }}
with:
draft: true
prerelease: ${{ env.RELEASE_CHANNEL == 'preview' }}
files: target/release/Zed.dmg
body: ""
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -11,7 +11,7 @@ env:
jobs:
publish:
name: Publish collab server image
name: Publish collab server image
runs-on:
- self-hosted
- deploy
@@ -22,6 +22,9 @@ jobs:
- name: Sign into DigitalOcean docker registry
run: doctl registry login
- name: Prune Docker system
run: docker system prune
- name: Checkout repo
uses: actions/checkout@v3
with:
@@ -41,6 +44,6 @@ jobs:
- name: Build docker image
run: docker build . --tag registry.digitalocean.com/zed/collab:v${COLLAB_VERSION}
- name: Publish docker image
run: docker push registry.digitalocean.com/zed/collab:v${COLLAB_VERSION}

View File

@@ -6,8 +6,8 @@ on:
push:
branches:
- randomized-tests-runner
schedule:
- cron: '0 * * * *'
# schedule:
# - cron: '0 * * * *'
env:
CARGO_TERM_COLOR: always
@@ -29,12 +29,12 @@ jobs:
rustup update stable
- name: Install Node
uses: actions/setup-node@v2
uses: actions/setup-node@v3
with:
node-version: '18'
- name: Checkout repo
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
clean: false
submodules: 'recursive'

View File

@@ -6,34 +6,27 @@ jobs:
discord_release:
runs-on: ubuntu-latest
steps:
- name: Discord Webhook Action
uses: tsickert/discord-webhook@v5.3.0
if: ${{ ! github.event.release.prerelease }}
with:
webhook-url: ${{ secrets.DISCORD_WEBHOOK_URL }}
content: |
📣 Zed ${{ github.event.release.tag_name }} was just released!
Restart your Zed or head to https://zed.dev/releases/latest to grab it.
```md
# Changelog
${{ github.event.release.body }}
```
mixpanel_release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
- name: Get release URL
id: get-release-url
run: |
if [ "${{ github.event.release.prerelease }}" == "true" ]; then
URL="https://zed.dev/releases/preview/latest"
else
URL="https://zed.dev/releases/stable/latest"
fi
echo "::set-output name=URL::$URL"
- name: Get content
uses: 2428392/gh-truncate-string-action@v1.3.0
id: get-content
with:
python-version: "3.10.5"
architecture: "x64"
cache: "pip"
- run: pip install -r script/mixpanel_release/requirements.txt
- run: >
python script/mixpanel_release/main.py
${{ github.event.release.tag_name }}
${{ secrets.MIXPANEL_PROJECT_ID }}
${{ secrets.MIXPANEL_SERVICE_ACCOUNT_USERNAME }}
${{ secrets.MIXPANEL_SERVICE_ACCOUNT_SECRET }}
stringToTruncate: |
📣 Zed [${{ github.event.release.tag_name }}](${{ steps.get-release-url.outputs.URL }}) was just released!
${{ github.event.release.body }}
maxLength: 2000
truncationSymbol: "..."
- name: Discord Webhook Action
uses: tsickert/discord-webhook@v5.3.0
with:
webhook-url: ${{ secrets.DISCORD_WEBHOOK_URL }}
content: ${{ steps.get-content.outputs.string }}

98
.github/workflows/release_nightly.yml vendored Normal file
View File

@@ -0,0 +1,98 @@
name: Release Nightly
on:
schedule:
# Fire every day at 7:00am UTC (Roughly before EU workday and after US workday)
- cron: "0 7 * * *"
push:
tags:
- "nightly"
env:
CARGO_TERM_COLOR: always
CARGO_INCREMENTAL: 0
RUST_BACKTRACE: 1
jobs:
rustfmt:
name: Check formatting
runs-on:
- self-hosted
- test
steps:
- name: Checkout repo
uses: actions/checkout@v3
with:
clean: false
submodules: "recursive"
- name: Run rustfmt
uses: ./.github/actions/check_formatting
tests:
name: Run tests
runs-on:
- self-hosted
- test
needs: rustfmt
steps:
- name: Checkout repo
uses: actions/checkout@v3
with:
clean: false
submodules: "recursive"
- name: Run tests
uses: ./.github/actions/run_tests
bundle:
name: Bundle app
runs-on:
- self-hosted
- bundle
needs: tests
env:
MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }}
MACOS_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }}
APPLE_NOTARIZATION_USERNAME: ${{ secrets.APPLE_NOTARIZATION_USERNAME }}
APPLE_NOTARIZATION_PASSWORD: ${{ secrets.APPLE_NOTARIZATION_PASSWORD }}
DIGITALOCEAN_SPACES_ACCESS_KEY: ${{ secrets.DIGITALOCEAN_SPACES_ACCESS_KEY }}
DIGITALOCEAN_SPACES_SECRET_KEY: ${{ secrets.DIGITALOCEAN_SPACES_SECRET_KEY }}
steps:
- name: Install Rust
run: |
rustup set profile minimal
rustup update stable
rustup target add aarch64-apple-darwin
rustup target add x86_64-apple-darwin
rustup target add wasm32-wasi
- name: Install Node
uses: actions/setup-node@v3
with:
node-version: "18"
- name: Checkout repo
uses: actions/checkout@v3
with:
clean: false
submodules: "recursive"
- name: Limit target directory size
run: script/clear-target-dir-if-larger-than 100
- name: Set release channel to nightly
run: |
set -eu
version=$(git rev-parse --short HEAD)
echo "Publishing version: ${version} on release channel nightly"
echo "nightly" > crates/zed/RELEASE_CHANNEL
- name: Generate license file
run: script/generate-licenses
- name: Create app bundle
run: script/bundle
- name: Upload Zed Nightly
run: script/upload-nightly

5
.gitignore vendored
View File

@@ -1,9 +1,13 @@
.idea
**/target
**/cargo-target
/zed.xcworkspace
.DS_Store
/plugins/bin
/script/node_modules
/styles/node_modules
/styles/src/types/zed.ts
/crates/theme/schemas/theme.json
/crates/collab/static/styles.css
/vendor/bin
/assets/themes/*.json
@@ -18,4 +22,5 @@ DerivedData/
.swiftpm/config/registries.json
.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
.netrc
.swiftpm
**/*.db

5
.zed/settings.json Normal file
View File

@@ -0,0 +1,5 @@
{
"JSON": {
"tab_size": 4
}
}

5471
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,10 +1,13 @@
[workspace]
members = [
"crates/activity_indicator",
"crates/assets",
"crates/ai",
"crates/assistant",
"crates/audio",
"crates/auto_update",
"crates/breadcrumbs",
"crates/call",
"crates/channel",
"crates/cli",
"crates/client",
"crates/clock",
@@ -12,13 +15,14 @@ members = [
"crates/collab_ui",
"crates/collections",
"crates/command_palette",
"crates/context_menu",
"crates/copilot",
"crates/copilot_button",
"crates/db",
"crates/refineable",
"crates/refineable/derive_refineable",
"crates/diagnostics",
"crates/drag_and_drop",
"crates/editor",
"crates/feature_flags",
"crates/feedback",
"crates/file_finder",
"crates/fs",
@@ -28,45 +32,58 @@ members = [
"crates/go_to_line",
"crates/gpui",
"crates/gpui_macros",
"crates/gpui",
"crates/gpui_macros",
"crates/install_cli",
"crates/journal",
"crates/journal",
"crates/language",
"crates/language_selector",
"crates/language_tools",
"crates/live_kit_client",
"crates/live_kit_server",
"crates/lsp",
"crates/lsp_log",
"crates/media",
"crates/menu",
"crates/multi_buffer",
"crates/node_runtime",
"crates/notifications",
"crates/outline",
"crates/picker",
"crates/plugin",
"crates/plugin_macros",
"crates/plugin_runtime",
"crates/prettier",
"crates/project",
"crates/project_panel",
"crates/project_symbols",
"crates/quick_action_bar",
"crates/recent_projects",
"crates/rope",
"crates/rpc",
"crates/search",
"crates/semantic_index",
"crates/settings",
"crates/snippet",
"crates/sqlez",
"crates/sqlez_macros",
"crates/staff_mode",
"crates/rich_text",
"crates/storybook",
"crates/sum_tree",
"crates/terminal",
"crates/terminal_view",
"crates/text",
"crates/theme",
"crates/theme_importer",
"crates/theme_selector",
"crates/theme_testbench",
"crates/ui",
"crates/util",
"crates/story",
"crates/vim",
"crates/vcs_menu",
"crates/workspace",
"crates/welcome",
"crates/zed",
"crates/zed_actions",
]
default-members = ["crates/zed"]
resolver = "2"
@@ -74,29 +91,77 @@ resolver = "2"
[workspace.dependencies]
anyhow = { version = "1.0.57" }
async-trait = { version = "0.1" }
ctor = { version = "0.1" }
async-compression = { version = "0.4", features = ["gzip", "futures-io"] }
ctor = "0.2.6"
derive_more = { version = "0.99.17" }
env_logger = { version = "0.9" }
futures = { version = "0.3" }
globset = { version = "0.4" }
indoc = "1"
# We explicitly disable a http2 support in isahc.
isahc = { version = "1.7.2", default-features = false, features = ["static-curl", "text-decoding"] }
lazy_static = { version = "1.4.0" }
log = { version = "0.4.16", features = ["kv_unstable_serde"] }
ordered-float = { version = "2.1.1" }
parking_lot = { version = "0.11.1" }
postage = { version = "0.5", features = ["futures-traits"] }
prost = { version = "0.8" }
rand = { version = "0.8.5" }
refineable = { path = "./crates/refineable" }
regex = { version = "1.5" }
rust-embed = { version = "8.0", features = ["include-exclude"] }
rusqlite = { version = "0.29.0", features = ["blob", "array", "modern_sqlite"] }
schemars = { version = "0.8" }
serde = { version = "1.0", features = ["derive", "rc"] }
serde_derive = { version = "1.0", features = ["deserialize_in_place"] }
serde_json = { version = "1.0", features = ["preserve_order", "raw_value"] }
smallvec = { version = "1.6", features = ["union"] }
smol = { version = "1.2" }
strum = { version = "0.25.0", features = ["derive"] }
sysinfo = "0.29.10"
tempdir = { version = "0.3.7" }
thiserror = { version = "1.0.29" }
time = { version = "0.3", features = ["serde", "serde-well-known"] }
toml = { version = "0.5" }
tiktoken-rs = "0.5.7"
tree-sitter = { version = "0.20" }
unindent = { version = "0.1.7" }
pretty_assertions = "1.3.0"
git2 = { version = "0.15", default-features = false}
uuid = { version = "1.1.2", features = ["v4"] }
tree-sitter-bash = { git = "https://github.com/tree-sitter/tree-sitter-bash", rev = "7331995b19b8f8aba2d5e26deb51d2195c18bc94" }
tree-sitter-c = "0.20.1"
tree-sitter-cpp = { git = "https://github.com/tree-sitter/tree-sitter-cpp", rev="f44509141e7e483323d2ec178f2d2e6c0fc041c1" }
tree-sitter-css = { git = "https://github.com/tree-sitter/tree-sitter-css", rev = "769203d0f9abe1a9a691ac2b9fe4bb4397a73c51" }
tree-sitter-elixir = { git = "https://github.com/elixir-lang/tree-sitter-elixir", rev = "a2861e88a730287a60c11ea9299c033c7d076e30" }
tree-sitter-elm = { git = "https://github.com/elm-tooling/tree-sitter-elm", rev = "692c50c0b961364c40299e73c1306aecb5d20f40"}
tree-sitter-embedded-template = "0.20.0"
tree-sitter-glsl = { git = "https://github.com/theHamsta/tree-sitter-glsl", rev = "2a56fb7bc8bb03a1892b4741279dd0a8758b7fb3" }
tree-sitter-go = { git = "https://github.com/tree-sitter/tree-sitter-go", rev = "aeb2f33b366fd78d5789ff104956ce23508b85db" }
tree-sitter-heex = { git = "https://github.com/phoenixframework/tree-sitter-heex", rev = "2e1348c3cf2c9323e87c2744796cf3f3868aa82a" }
tree-sitter-json = { git = "https://github.com/tree-sitter/tree-sitter-json", rev = "40a81c01a40ac48744e0c8ccabbaba1920441199" }
tree-sitter-rust = "0.20.3"
tree-sitter-markdown = { git = "https://github.com/MDeiml/tree-sitter-markdown", rev = "330ecab87a3e3a7211ac69bbadc19eabecdb1cca" }
tree-sitter-php = { git = "https://github.com/tree-sitter/tree-sitter-php", rev = "d43130fd1525301e9826f420c5393a4d169819fc" }
tree-sitter-python = "0.20.2"
tree-sitter-toml = { git = "https://github.com/tree-sitter/tree-sitter-toml", rev = "342d9be207c2dba869b9967124c679b5e6fd0ebe" }
tree-sitter-typescript = { git = "https://github.com/tree-sitter/tree-sitter-typescript", rev = "5d20856f34315b068c41edaee2ac8a100081d259" }
tree-sitter-ruby = "0.20.0"
tree-sitter-html = "0.19.0"
tree-sitter-scheme = { git = "https://github.com/6cdh/tree-sitter-scheme", rev = "af0fd1fa452cb2562dc7b5c8a8c55551c39273b9"}
tree-sitter-svelte = { git = "https://github.com/Himujjal/tree-sitter-svelte", rev = "697bb515471871e85ff799ea57a76298a71a9cca"}
tree-sitter-racket = { git = "https://github.com/zed-industries/tree-sitter-racket", rev = "eb010cf2c674c6fd9a6316a84e28ef90190fe51a"}
tree-sitter-yaml = { git = "https://github.com/zed-industries/tree-sitter-yaml", rev = "f545a41f57502e1b5ddf2a6668896c1b0620f930"}
tree-sitter-lua = "0.0.14"
tree-sitter-nix = { git = "https://github.com/nix-community/tree-sitter-nix", rev = "66e3e9ce9180ae08fc57372061006ef83f0abde7" }
tree-sitter-nu = { git = "https://github.com/nushell/tree-sitter-nu", rev = "26bbaecda0039df4067861ab38ea8ea169f7f5aa"}
tree-sitter-vue = {git = "https://github.com/zed-industries/tree-sitter-vue", rev = "6608d9d60c386f19d80af7d8132322fa11199c42"}
tree-sitter-uiua = {git = "https://github.com/shnarazk/tree-sitter-uiua", rev = "9260f11be5900beda4ee6d1a24ab8ddfaf5a19b2"}
[patch.crates-io]
tree-sitter = { git = "https://github.com/tree-sitter/tree-sitter", rev = "c51896d32dcc11a38e41f36e3deb1a6a9c4f4b14" }
async-task = { git = "https://github.com/zed-industries/async-task", rev = "341b57d6de98cdfd7b418567b8de2022ca993a6e" }
tree-sitter = { git = "https://github.com/tree-sitter/tree-sitter", rev = "31c40449749c4263a91a43593831b82229049a4c" }
# wasmtime = { git = "https://github.com/bytecodealliance/wasmtime", rev = "v16.0.0" }
# TODO - Remove when a version is released with this PR: https://github.com/servo/core-foundation-rs/pull/457
cocoa = { git = "https://github.com/servo/core-foundation-rs", rev = "079665882507dd5e2ff77db3de5070c1f6c0fb85" }
@@ -107,6 +172,12 @@ core-graphics = { git = "https://github.com/servo/core-foundation-rs", rev = "07
[profile.dev]
split-debuginfo = "unpacked"
debug = "limited"
[profile.dev.package.taffy]
opt-level = 3
[profile.release]
debug = true
debug = "limited"
lto = "thin"
codegen-units = 1

View File

@@ -1,6 +1,6 @@
# syntax = docker/dockerfile:1.2
FROM rust:1.65-bullseye as builder
FROM rust:1.75-bullseye as builder
WORKDIR app
COPY . .

View File

@@ -1,3 +1,4 @@
web: cd ../zed.dev && PORT=3000 npx vercel dev
collab: cd crates/collab && cargo run serve
livekit: livekit-server --dev
web: cd ../zed.dev && PORT=3000 npm run dev
collab: cd crates/collab && RUST_LOG=${RUST_LOG:-warn,collab=info} cargo run serve
livekit: livekit-server --dev
postgrest: postgrest crates/collab/admin_api.conf

View File

@@ -2,41 +2,76 @@
[![CI](https://github.com/zed-industries/zed/actions/workflows/ci.yml/badge.svg)](https://github.com/zed-industries/zed/actions/workflows/ci.yml)
Welcome to Zed, a lightning-fast, collaborative code editor that makes your dreams come true.
Welcome to Zed, a lightning-fast, collaborative code editor that makes your dreams come true.
## Development tips
### Dependencies
* Install [Postgres.app](https://postgresapp.com) and start it.
* Install the `LiveKit` server and the `foreman` process supervisor:
* Install Xcode from https://apps.apple.com/us/app/xcode/id497799835?mt=12, and accept the license:
```
sudo xcodebuild -license
```
* Install homebrew, node and rustup-init (rustup, rust, cargo, etc.)
```
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install node rustup-init
rustup-init # follow the installation steps
```
* Install postgres and configure the database
```
brew install postgresql@15
brew services start postgresql@15
psql -c "CREATE ROLE postgres SUPERUSER LOGIN" postgres
psql -U postgres -c "CREATE DATABASE zed"
```
* Install the `LiveKit` server, the `PostgREST` API server, and the `foreman` process supervisor:
```
brew install livekit
brew install postgrest
brew install foreman
```
* Ensure the Zed.dev website is checked out in a sibling directory:
* Ensure the Zed.dev website is checked out in a sibling directory and install its dependencies:
```
cd ..
git clone https://github.com/zed-industries/zed.dev
cd zed.dev && npm install
npm install -g vercel
```
* Initialize submodules
* Return to Zed project directory and Initialize submodules
```
cd zed
git submodule update --init --recursive
```
* Set up a local `zed` database and seed it with some initial users:
Create a personal GitHub token to run `script/bootstrap` once successfully. Then delete that token.
[Create a personal GitHub token](https://github.com/settings/tokens/new) to run `script/bootstrap` once successfully: the token needs to have an access to private repositories for the script to work (`repo` OAuth scope).
Then delete that token.
```
GITHUB_TOKEN=<$token> script/bootstrap
```
* Now try running zed with collaboration disabled:
```
cargo run
```
### Common errors
* `xcrun: error: unable to find utility "metal", not a developer tool or in PATH`
* You need to install Xcode and then run: `xcode-select --switch /Applications/Xcode.app/Contents/Developer`
* (see https://github.com/gfx-rs/gfx/issues/2309)
### Testing against locally-running servers
Start the web and collab servers:
@@ -48,9 +83,7 @@ foreman start
If you want to run Zed pointed at the local servers, you can run:
```
script/zed-with-local-servers
# or...
script/zed-with-local-servers --release
script/zed-local
```
### Dump element JSON

View File

@@ -0,0 +1,6 @@
User input begins on a line starting with /.
Don't apologize ever.
Never say "I apologize".
Use simple language and don't flatter the users.
Keep it short.
Risk being rude.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,93 @@
Copyright © 2017 IBM Corp. with Reserved Font Name "Plex"
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

23
assets/icons/ai.svg Normal file
View File

@@ -0,0 +1,23 @@
<svg width="14" height="16" viewBox="0 0 14 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10 8.94203V11C7.38649 11 6.61351 11 4 11V10.6812L10 5.31884V5H4V7.08696" stroke="black" stroke-width="1.25"/>
<circle cx="0.5" cy="8" r="0.5" fill="black"/>
<circle cx="1.49976" cy="5.82825" r="0.5" fill="black" fill-opacity="0.75"/>
<circle cx="1.49976" cy="10.1719" r="0.5" fill="black" fill-opacity="0.75"/>
<circle cx="13.5" cy="8.01581" r="0.5" fill="black"/>
<circle cx="12.5" cy="5.84387" r="0.5" fill="black" fill-opacity="0.75"/>
<circle cx="12.5" cy="10.1877" r="0.5" fill="black" fill-opacity="0.75"/>
<circle cx="6.99219" cy="1.48438" r="0.5" fill="black"/>
<circle cx="4.5" cy="2.5" r="0.5" fill="black" fill-opacity="0.75"/>
<circle cx="0.5" cy="12.016" r="0.5" fill="black"/>
<circle cx="0.5" cy="3.98438" r="0.5" fill="black"/>
<circle cx="13.5" cy="12.016" r="0.5" fill="black"/>
<circle cx="13.5" cy="3.98438" r="0.5" fill="black"/>
<circle cx="2.49976" cy="14.516" r="0.5" fill="black"/>
<circle cx="2.48413" cy="1.48438" r="0.5" fill="black"/>
<circle cx="11.5" cy="14.516" r="0.5" fill="black"/>
<circle cx="11.5" cy="1.48438" r="0.5" fill="black"/>
<circle cx="9.49609" cy="2.48438" r="0.5" fill="black" fill-opacity="0.75"/>
<circle cx="6.99219" cy="14.5" r="0.5" fill="black"/>
<circle cx="4.50391" cy="13.516" r="0.5" fill="black" fill-opacity="0.75"/>
<circle cx="9.49609" cy="13.5" r="0.5" fill="black" fill-opacity="0.75"/>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-refresh-cw"><path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"/><path d="M21 3v5h-5"/><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"/><path d="M8 16H3v5"/></svg>

After

Width:  |  Height:  |  Size: 389 B

View File

@@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.00001 12L3.5 7.50001M8.00001 12L12.5 7.50001M8.00001 12L8.00001 3.00001" stroke="black" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 272 B

View File

@@ -1,10 +0,0 @@
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_430_1271)">
<path d="M10.9007 7.45347L6.60649 11.7477C6.44009 11.9168 6.22001 12 5.99993 12C5.77985 12 5.56031 11.9161 5.39283 11.7484L1.09859 7.45414C0.763098 7.11865 0.763098 6.57516 1.09859 6.23967C1.43407 5.90419 1.97756 5.90419 2.31305 6.23967L5.14108 9.06904V0.834694C5.14108 0.359912 5.52568 0 5.97577 0C6.42587 0 6.85878 0.359912 6.85878 0.834694V9.06891L9.68761 6.24008C10.0231 5.90459 10.5666 5.90459 10.9021 6.24008C11.2376 6.57556 11.2362 7.11771 10.9007 7.4532V7.45347Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_430_1271">
<rect width="12" height="12" fill="white"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 734 B

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.0538 9.45347L8.75952 13.7477C8.59312 13.9168 8.37304 14 8.15296 14C7.93288 14 7.71334 13.9161 7.54586 13.7484L3.25162 9.45414C2.91613 9.11865 2.91613 8.57516 3.25162 8.23967C3.5871 7.90418 4.13059 7.90418 4.46608 8.23967L7.29411 11.069V2.83469C7.29411 2.35991 7.67871 2 8.12881 2C8.5789 2 9.01181 2.35991 9.01181 2.83469V11.0689L11.8406 8.24008C12.1761 7.90459 12.7196 7.90459 13.0551 8.24008C13.3906 8.57556 13.3893 9.11771 13.0538 9.4532V9.45347Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 581 B

View File

@@ -1,10 +0,0 @@
<svg width="8" height="8" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_430_1354)">
<path d="M7.26716 4.96898L4.40433 7.83181C4.2934 7.94453 4.14668 8 3.99996 8C3.85324 8 3.70688 7.94409 3.59523 7.83226L0.732395 4.96943C0.508737 4.74577 0.508737 4.38344 0.732395 4.15978C0.956054 3.93612 1.31838 3.93612 1.54204 4.15978L3.42739 6.04603V0.556463C3.42739 0.239941 3.68379 0 3.98385 0C4.28392 0 4.57252 0.239941 4.57252 0.556463V6.04594L6.45841 4.16005C6.68207 3.93639 7.0444 3.93639 7.26806 4.16005C7.49172 4.38371 7.49082 4.74514 7.26716 4.9688V4.96898Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_430_1354">
<rect width="8" height="8" fill="white"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 726 B

View File

@@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.5 7.50001L8 3M3.5 7.50001L8 12M3.5 7.50001H12.5" stroke="black" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 248 B

View File

@@ -1,10 +0,0 @@
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_430_1272)">
<path d="M12 6.00001C12 6.47507 11.6403 6.85889 11.1653 6.85889H2.93347L5.7624 9.68781C6.0979 10.0233 6.0979 10.5668 5.7624 10.9023C5.59331 11.0701 5.37322 11.1533 5.15313 11.1533C4.93305 11.1533 4.71349 11.0694 4.54601 10.9017L0.251624 6.60726C-0.0838748 6.27176 -0.0838748 5.72825 0.251624 5.39275L4.54601 1.09837C4.88151 0.762866 5.42502 0.762866 5.76052 1.09837C6.09602 1.43386 6.09602 1.97737 5.76052 2.31287L2.93347 5.14113H11.1653C11.6403 5.14113 12 5.52494 12 6.00001Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_430_1272">
<rect width="12" height="12" fill="white"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 740 B

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14 8.15327C14 8.62833 13.6403 9.01215 13.1653 9.01215H4.93347L7.7624 11.8411C8.0979 12.1766 8.0979 12.7201 7.7624 13.0556C7.59331 13.2233 7.37322 13.3065 7.15313 13.3065C6.93305 13.3065 6.71349 13.2227 6.54601 13.0549L2.25162 8.76052C1.91613 8.42502 1.91613 7.88151 2.25162 7.54601L6.54601 3.25162C6.88151 2.91613 7.42502 2.91613 7.76052 3.25162C8.09602 3.58712 8.09602 4.13063 7.76052 4.46613L4.93347 7.29439H13.1653C13.6403 7.29439 14 7.6782 14 8.15327Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 585 B

View File

@@ -1,10 +0,0 @@
<svg width="8" height="8" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_430_1355)">
<path d="M8 4.00003C8 4.31674 7.76023 4.57261 7.44352 4.57261H1.95565L3.8416 6.45856C4.06527 6.68223 4.06527 7.04457 3.8416 7.26823C3.72887 7.38007 3.58215 7.43554 3.43542 7.43554C3.2887 7.43554 3.14233 7.37962 3.03068 7.26779L0.16775 4.40486C-0.0559165 4.1812 -0.0559165 3.81886 0.16775 3.59519L3.03068 0.732264C3.25434 0.508598 3.61668 0.508598 3.84035 0.732264C4.06401 0.95593 4.06401 1.31827 3.84035 1.54194L1.95565 3.42744H7.44352C7.76023 3.42744 8 3.68331 8 4.00003Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_430_1355">
<rect width="8" height="8" fill="white"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 730 B

View File

@@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.5 7.5L8 12M12.5 7.5L8 3M12.5 7.5L3.5 7.5" stroke="black" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 242 B

View File

@@ -1,10 +0,0 @@
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_430_1273)">
<path d="M11.749 6.60576L7.46298 10.8917C7.2969 11.0605 7.07724 11.1436 6.85758 11.1436C6.63793 11.1436 6.41881 11.0598 6.25165 10.8924C5.91681 10.5576 5.91681 10.0151 6.25165 9.68029L9.07558 6.85756H0.857198C0.383864 6.85756 0 6.4745 0 6.00036C0 5.52623 0.383596 5.14317 0.85693 5.14317H9.07531L6.25192 2.31977C5.91708 1.98493 5.91708 1.44248 6.25192 1.10764C6.58676 0.772796 7.12921 0.772796 7.46405 1.10764L11.75 5.39363C12.0835 5.72981 12.0835 6.27092 11.7487 6.60576H11.749Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_430_1273">
<rect width="12" height="12" fill="white"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 743 B

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.749 8.74925L9.46298 13.0352C9.2969 13.204 9.07724 13.287 8.85758 13.287C8.63793 13.287 8.41881 13.2033 8.25165 13.0359C7.91681 12.7011 7.91681 12.1586 8.25165 11.8238L11.0756 9.00106H2.8572C2.38386 9.00106 2 8.61799 2 8.14386C2 7.66972 2.3836 7.28666 2.85693 7.28666H11.0753L8.25192 4.46326C7.91708 4.12842 7.91708 3.58598 8.25192 3.25113C8.58676 2.91629 9.12921 2.91629 9.46405 3.25113L13.75 7.53712C14.0835 7.8733 14.0835 8.41441 13.7487 8.74925H13.749Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 588 B

View File

@@ -1,10 +0,0 @@
<svg width="8" height="8" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_430_1356)">
<path d="M7.83265 4.40382L4.97532 7.26115C4.8646 7.37365 4.71816 7.42901 4.57172 7.42901C4.42528 7.42901 4.2792 7.37321 4.16777 7.26159C3.94454 7.03836 3.94454 6.67673 4.16777 6.4535L6.05039 4.57169H0.571465C0.255909 4.57169 0 4.31631 0 4.00022C0 3.68413 0.255731 3.42876 0.571287 3.42876H6.05021L4.16795 1.54649C3.94472 1.32326 3.94472 0.961634 4.16795 0.738405C4.39117 0.515177 4.75281 0.515177 4.97603 0.738405L7.83336 3.59573C8.0557 3.81985 8.0557 4.18059 7.83247 4.40382H7.83265Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_430_1356">
<rect width="8" height="8" fill="white"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 742 B

View File

@@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7.99999 3.00001L12.5 7.50001M7.99999 3.00001L3.49999 7.50001M7.99999 3.00001L7.99999 12" stroke="black" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 286 B

View File

@@ -1,10 +0,0 @@
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_430_1274)">
<path d="M10.9009 5.7604C10.7345 5.92948 10.5144 6.01268 10.2943 6.01268C10.0742 6.01268 9.85471 5.92881 9.68724 5.76107L6.85903 2.93408V11.1653C6.85903 11.6401 6.47444 12 6.02437 12C5.57429 12 5.14139 11.6404 5.14139 11.1653V2.93408L2.31346 5.76013C1.97798 6.09561 1.43451 6.09561 1.09903 5.76013C0.763558 5.42466 0.763558 4.88119 1.09903 4.54571L5.39314 0.251607C5.72861 -0.0838692 6.27209 -0.0838692 6.60756 0.251607L10.9017 4.54571C11.2363 4.88253 11.2363 5.42466 10.9009 5.76013V5.7604Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_430_1274">
<rect width="12" height="12" fill="white"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 755 B

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.0534 7.7604C12.887 7.92948 12.667 8.01268 12.4469 8.01268C12.2268 8.01268 12.0073 7.92881 11.8398 7.76107L9.01161 4.93408V13.1653C9.01161 13.6401 8.62702 14 8.17694 14C7.72687 14 7.29397 13.6404 7.29397 13.1653V4.93408L4.46603 7.76013C4.13056 8.09561 3.58708 8.09561 3.25161 7.76013C2.91613 7.42466 2.91613 6.88119 3.25161 6.54571L7.54571 2.25161C7.88119 1.91613 8.42466 1.91613 8.76013 2.25161L13.0542 6.54571C13.3889 6.88253 13.3889 7.42466 13.0534 7.76013V7.7604Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 599 B

View File

@@ -1,10 +0,0 @@
<svg width="8" height="8" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_430_1357)">
<path d="M7.26724 3.84027C7.15631 3.95299 7.0096 4.00845 6.86288 4.00845C6.71617 4.00845 6.56981 3.95254 6.45816 3.84072L4.57269 1.95605V7.44356C4.57269 7.76007 4.3163 8 4.01625 8C3.7162 8 3.4276 7.76025 3.4276 7.44356V1.95605L1.54231 3.84009C1.31866 4.06374 0.956346 4.06374 0.732695 3.84009C0.509044 3.61644 0.509044 3.25412 0.732695 3.03047L3.59543 0.167738C3.81908 -0.0559128 4.1814 -0.0559128 4.40505 0.167738L7.26778 3.03047C7.49089 3.25502 7.49089 3.61644 7.26724 3.84009V3.84027Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_430_1357">
<rect width="8" height="8" fill="white"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 745 B

View File

Before

Width:  |  Height:  |  Size: 608 B

After

Width:  |  Height:  |  Size: 608 B

1
assets/icons/at_sign.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-at-sign"><circle cx="12" cy="12" r="4"/><path d="M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8"/></svg>

After

Width:  |  Height:  |  Size: 301 B

View File

@@ -1,3 +0,0 @@
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12 8.66661C12 9.40202 11.4021 9.99992 10.6667 9.99992H4.27722C3.92306 9.99992 3.58348 9.86034 3.33348 9.61034L0.195413 6.47082C0.0702071 6.34582 0 6.17707 0 5.99999C0 5.82291 0.0702071 5.65416 0.195205 5.52917L3.33328 2.39068C3.58327 2.14048 3.92285 2.00006 4.27701 2.00006H10.6665C11.4019 2.00006 11.9998 2.59693 11.9998 3.33337V8.66661H12ZM5.64594 5.00209L6.62718 5.99999L5.64594 6.97914C5.4522 7.17497 5.4522 7.49163 5.64594 7.66871C5.84177 7.88121 6.15843 7.88121 6.33552 7.66871L7.33341 6.70623L8.31256 7.66871C8.50839 7.88121 8.82506 7.88121 9.00214 7.66871C9.21463 7.49163 9.21463 7.17497 9.00214 6.97914L8.03965 5.99999L9.00214 5.00209C9.21463 4.82501 9.21463 4.50835 9.00214 4.31252C8.82506 4.11877 8.50839 4.11877 8.31256 4.31252L7.33341 5.29375L6.33552 4.31252C6.15843 4.11877 5.84177 4.11877 5.64594 4.31252C5.4522 4.50835 5.4522 4.82501 5.64594 5.00209Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 996 B

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M15 11.1111C15 11.969 14.3024 12.6666 13.4445 12.6666H5.99009C5.5769 12.6666 5.18073 12.5038 4.88906 12.2121L1.22798 8.54932C1.08191 8.40349 1 8.20661 1 8.00002C1 7.79343 1.08191 7.59656 1.22774 7.45072L4.88882 3.78916C5.18048 3.49725 5.57666 3.33344 5.98984 3.33344H13.4442C14.3022 3.33344 14.9998 4.02978 14.9998 4.88896V11.1111H15ZM7.58693 6.8358L8.73171 8.00002L7.58693 9.14236C7.3609 9.37083 7.3609 9.74027 7.58693 9.94686C7.8154 10.1948 8.18484 10.1948 8.39143 9.94686L9.55565 8.82396L10.698 9.94686C10.9265 10.1948 11.2959 10.1948 11.5025 9.94686C11.7504 9.74027 11.7504 9.37083 11.5025 9.14236L10.3796 8.00002L11.5025 6.8358C11.7504 6.62921 11.7504 6.25977 11.5025 6.0313C11.2959 5.80527 10.9265 5.80527 10.698 6.0313L9.55565 7.17608L8.39143 6.0313C8.18484 5.80527 7.8154 5.80527 7.58693 6.0313C7.3609 6.25977 7.3609 6.62921 7.58693 6.8358Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 977 B

View File

@@ -1,3 +0,0 @@
<svg width="8" height="8" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8 5.77774C8 6.26801 7.6014 6.66661 7.11113 6.66661H2.85148C2.61537 6.66661 2.38899 6.57356 2.22232 6.4069L0.130276 4.31388C0.0468047 4.23055 0 4.11805 0 3.99999C0 3.88194 0.0468047 3.76944 0.130137 3.68611L2.22218 1.59379C2.38885 1.42698 2.61523 1.33337 2.85134 1.33337H7.11099C7.60126 1.33337 7.99986 1.73128 7.99986 2.22225V5.77774H8ZM3.76396 3.33473L4.41812 3.99999L3.76396 4.65276C3.6348 4.78331 3.6348 4.99442 3.76396 5.11247C3.89452 5.25414 4.10562 5.25414 4.22368 5.11247L4.88894 4.47082L5.54171 5.11247C5.67226 5.25414 5.88337 5.25414 6.00142 5.11247C6.14309 4.99442 6.14309 4.78331 6.00142 4.65276L5.35977 3.99999L6.00142 3.33473C6.14309 3.21667 6.14309 3.00557 6.00142 2.87501C5.88337 2.74585 5.67226 2.74585 5.54171 2.87501L4.88894 3.52917L4.22368 2.87501C4.10562 2.74585 3.89452 2.74585 3.76396 2.87501C3.6348 3.00557 3.6348 3.21667 3.76396 3.33473Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 987 B

View File

@@ -0,0 +1,3 @@
<svg width="15" height="11" viewBox="0 0 15 11" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.24432 11L0.183239 5.90909L5.24432 0.818182H14.75V11H5.24432ZM5.68679 9.90625H13.6761V1.91193H5.68679L1.70952 5.90909L5.68679 9.90625ZM11.7223 8.15625L10.9964 8.89205L5.75639 3.66193L6.48224 2.92614L11.7223 8.15625ZM6.48224 8.89205L5.75639 8.15625L10.9964 2.92614L11.7223 3.66193L6.48224 8.89205Z" fill="black"/>
</svg>

After

Width:  |  Height:  |  Size: 427 B

1
assets/icons/bell.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"/><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"/></svg>

After

Width:  |  Height:  |  Size: 309 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell-off"><path d="M8.7 3A6 6 0 0 1 18 8a21.3 21.3 0 0 0 .6 5"/><path d="M17 17H3s3-2 3-9a4.67 4.67 0 0 1 .3-1.7"/><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"/><path d="m2 2 20 20"/></svg>

After

Width:  |  Height:  |  Size: 387 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell-ring"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"/><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"/><path d="M4 2C2.8 3.7 2 5.7 2 8"/><path d="M22 8c0-2.3-.8-4.3-2-6"/></svg>

After

Width:  |  Height:  |  Size: 382 B

View File

Before

Width:  |  Height:  |  Size: 633 B

After

Width:  |  Height:  |  Size: 633 B

View File

@@ -1,3 +0,0 @@
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7.01442 5.33285H9.33914C9.61643 5.33285 9.86663 5.5059 9.94586 5.76443C10.0605 6.02505 9.98756 6.31903 9.77906 6.50251L4.4416 11.1728C4.206 11.3771 3.86136 11.3938 3.6095 11.2103C3.35743 11.0268 3.26569 10.6932 3.38849 10.4076L4.99202 6.66722H2.64855C2.38939 6.66722 2.14044 6.49417 2.04266 6.23563C1.9449 5.97501 2.01868 5.68104 2.22793 5.49756L7.56476 0.827491C7.80036 0.622333 8.14438 0.606695 8.39666 0.789754C8.64894 0.972937 8.74067 1.30578 8.61766 1.59237L7.01434 5.33256L7.01442 5.33285Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 625 B

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M9.33035 7.12505H12.3791C12.7427 7.12505 13.0708 7.352 13.1747 7.69105C13.3251 8.03283 13.2294 8.41836 12.956 8.65898L5.95625 14.7837C5.64728 15.0517 5.19531 15.0736 4.86501 14.833C4.53443 14.5923 4.41413 14.1549 4.57517 13.7803L6.6781 8.87499H3.60478C3.26491 8.87499 2.93844 8.64804 2.8102 8.30899C2.68199 7.96721 2.77876 7.58168 3.05317 7.34106L10.0521 1.21657C10.3611 0.947515 10.8122 0.927008 11.1431 1.16708C11.4739 1.40731 11.5942 1.84381 11.4329 2.21966L9.33024 7.12467L9.33035 7.12505Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 622 B

View File

@@ -1,10 +0,0 @@
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_430_1336)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.01443 5.33285H9.33914C9.61644 5.33285 9.86663 5.5059 9.94586 5.76443C10.0605 6.02505 9.98756 6.31903 9.77906 6.50251L9.11489 7.08366L11.4605 8.90799C11.7874 9.16229 11.8463 9.6335 11.592 9.96045C11.3377 10.2874 10.8665 10.3463 10.5395 10.092L1.53955 3.09201C1.21259 2.83771 1.15369 2.3665 1.40799 2.03954C1.66229 1.71258 2.1335 1.65368 2.46046 1.90799L4.50911 3.50138L7.56477 0.827491C7.80037 0.622333 8.14438 0.606695 8.39666 0.789754C8.64894 0.972937 8.74068 1.30578 8.61767 1.59237L7.01434 5.33256L7.01443 5.33285ZM2.88883 4.91923L7.49455 8.50146L4.4416 11.1728C4.206 11.3771 3.86136 11.3938 3.6095 11.2103C3.35743 11.0268 3.26569 10.6932 3.3885 10.4076L4.99203 6.66722H2.64855C2.38939 6.66722 2.14045 6.49416 2.04266 6.23563C1.9449 5.97501 2.01869 5.68104 2.22793 5.49756L2.88883 4.91923Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_430_1336">
<rect width="12" height="12" fill="white"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.42392 5.20324L10.1066 1.21711C10.4244 0.948067 10.8885 0.92756 11.2288 1.16762C11.5691 1.40784 11.6928 1.84432 11.5269 2.22016L9.36412 7.12497H12.5C12.874 7.12497 13.2115 7.35191 13.3184 7.69094C13.4731 8.03271 13.3746 8.41823 13.0934 8.65883L11.6112 9.91928L15.5 13C15.7925 13.2242 15.8459 13.6371 15.6153 13.9214C15.3847 14.2058 14.96 14.2577 14.6675 14.0335L0.499984 3.5C0.206368 3.27635 0.1549 2.86403 0.384956 2.57859C0.615012 2.29314 1.03884 2.24311 1.33246 2.46703L5.42392 5.20324ZM2.90681 7.34135L3.35399 6.9367L5.85423 8.87522H3.50023C3.12618 8.87522 2.78869 8.64828 2.65651 8.30924C2.52714 7.96747 2.62557 7.58196 2.90681 7.34135ZM4.47333 13.7803L6.43921 9.32362L9.53006 11.6668L5.8936 14.7837C5.5758 15.0517 5.11175 15.0736 4.77144 14.8329C4.43114 14.5923 4.3074 14.1549 4.47333 13.7803Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 930 B

View File

@@ -1,10 +0,0 @@
<svg width="8" height="8" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_702_132)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.67628 3.55525H6.22609C6.41096 3.55525 6.57775 3.67062 6.63057 3.84298C6.70702 4.01672 6.65837 4.21271 6.51937 4.33502L6.07659 4.72246L7.6403 5.93868C7.85828 6.10821 7.89754 6.42235 7.72801 6.64032C7.55847 6.8583 7.24434 6.89756 7.02636 6.72803L1.02636 2.06136C0.808388 1.89183 0.769121 1.57769 0.938656 1.35972C1.10819 1.14174 1.42233 1.10248 1.6403 1.27201L3.00607 2.33428L5.04318 0.551681C5.20024 0.414909 5.42959 0.404484 5.59777 0.526523C5.76596 0.648645 5.82712 0.870539 5.74511 1.0616L4.67622 3.55506L4.67628 3.55525ZM3.25023 4.62627L4.80474 5.83533L2.96106 7.44854C2.804 7.58476 2.57424 7.59588 2.40633 7.47356C2.23828 7.35125 2.17713 7.12885 2.25899 6.93843L3.25023 4.62627ZM1.73426 3.44719L3.01695 4.44483H1.7657C1.59292 4.44483 1.42696 4.32946 1.36177 4.15711C1.2966 3.98336 1.34579 3.78738 1.48528 3.66506L1.73426 3.44719Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_702_132">
<rect width="8" height="8" fill="white"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,8 @@
<svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="M4.18179 6.18181C4.35753 6.00608 4.64245 6.00608 4.81819 6.18181L7.49999 8.86362L10.1818 6.18181C10.3575 6.00608 10.6424 6.00608 10.8182 6.18181C10.9939 6.35755 10.9939 6.64247 10.8182 6.81821L7.81819 9.81821C7.73379 9.9026 7.61934 9.95001 7.49999 9.95001C7.38064 9.95001 7.26618 9.9026 7.18179 9.81821L4.18179 6.81821C4.00605 6.64247 4.00605 6.35755 4.18179 6.18181Z"
fill="currentColor"
/>
</svg>

After

Width:  |  Height:  |  Size: 564 B

View File

@@ -1,3 +0,0 @@
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.6709 4.44444L6.89463 9.25449C6.62782 9.49123 6.31967 9.60772 6.01153 9.60772C5.70339 9.60772 5.39599 9.49029 5.16113 9.25542L0.384899 4.44537C0.00723509 4.10247 -0.09573 3.5837 0.0902836 3.13633C0.276448 2.68914 0.71529 2.39227 1.20118 2.39227H10.7875C11.2737 2.39227 11.7126 2.68463 11.899 3.13445C12.0854 3.58389 12.0163 4.1021 11.6706 4.44406L11.6709 4.44444Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 495 B

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.616 6.18521L9.04373 11.7969C8.73246 12.0731 8.37295 12.209 8.01345 12.209C7.65395 12.209 7.29533 12.072 7.02132 11.798L1.44905 6.1863C1.00844 5.78625 0.888315 5.18101 1.10533 4.65908C1.32252 4.13736 1.8345 3.79102 2.40138 3.79102H13.5854C14.1527 3.79102 14.6648 4.1321 14.8822 4.65689C15.0997 5.18123 15.019 5.78581 14.6156 6.18477L14.616 6.18521Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 480 B

View File

@@ -1,10 +0,0 @@
<svg width="8" height="8" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_430_1359)">
<path d="M6.36286 3.35324L4.37276 5.35315C4.26159 5.45158 4.1332 5.50002 4.0048 5.50002C3.87641 5.50002 3.74833 5.45119 3.65047 5.35354L1.66037 3.35363C1.50301 3.21106 1.46011 2.99537 1.53762 2.80936C1.61519 2.62343 1.79804 2.5 2.00049 2.5H5.99478C6.19739 2.5 6.38027 2.62156 6.45793 2.80858C6.53559 2.99545 6.50678 3.2109 6.36273 3.35309L6.36286 3.35324Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_430_1359">
<rect width="8" height="8" fill="white"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 613 B

View File

@@ -1,3 +0,0 @@
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7.55575 11.671L2.74629 6.89533C2.51033 6.62855 2.3931 6.32045 2.3931 5.97853C2.3931 5.6366 2.51052 5.36307 2.74516 5.12823L7.55462 0.352587C7.89842 0.00841046 8.41544 -0.0945422 8.8652 0.0914486C9.31496 0.277439 9.60691 0.717805 9.60691 1.20251V10.7876C9.60691 11.2738 9.31421 11.7127 8.86482 11.899C8.41506 12.0854 7.8973 12.0163 7.55537 11.6706L7.55575 11.671Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 492 B

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M9.81503 14.6161L4.20399 9.04455C3.9287 8.73331 3.79193 8.37386 3.79193 7.97495C3.79193 7.57604 3.92892 7.25691 4.20268 6.98293L9.81371 1.41135C10.2148 1.00981 10.818 0.889701 11.3427 1.10669C11.8674 1.32368 12.208 1.83744 12.208 2.40293V13.5855C12.208 14.1528 11.8666 14.6648 11.3423 14.8822C10.8176 15.0996 10.2135 15.019 9.81459 14.6157L9.81503 14.6161Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 485 B

View File

@@ -1,10 +0,0 @@
<svg width="8" height="8" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_430_1360)">
<path d="M4.64677 6.36286L2.64687 4.37276C2.54843 4.26159 2.5 4.1332 2.5 4.0048C2.5 3.87641 2.54882 3.74833 2.64648 3.65047L4.64638 1.66037C4.78895 1.50301 5.00465 1.46011 5.19065 1.53762C5.37658 1.61519 5.50002 1.79804 5.50002 2.00049L5.50002 5.99478C5.50002 6.19739 5.37846 6.38027 5.19144 6.45793C5.00457 6.53559 4.78911 6.50678 4.64693 6.36273L4.64677 6.36286Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_430_1360">
<rect width="8" height="8" fill="white"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 622 B

View File

@@ -1,3 +0,0 @@
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.43898 0.355319L9.26566 5.14806C9.50322 5.41579 9.62012 5.725 9.62012 6.00027C9.62012 6.27554 9.50228 6.61793 9.2666 6.85361L4.43992 11.6463C4.09451 11.9914 3.57602 12.0951 3.12465 11.908C2.67328 11.721 2.37991 11.3469 2.37991 10.8266V1.20715C2.37991 0.719205 2.67328 0.278771 3.12465 0.0917373C3.57565 -0.0952964 4.09565 0.0091557 4.43879 0.354942L4.43898 0.355319Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 497 B

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6.1788 1.41454L11.8099 7.00607C12.0871 7.31842 12.2235 7.67916 12.2235 8.00031C12.2235 8.32146 12.086 8.72092 11.811 8.99588L6.1799 14.5874C5.77692 14.9899 5.17201 15.1109 4.64542 14.8927C4.11882 14.6745 3.77655 14.2381 3.77655 13.631V2.40834C3.77655 1.83907 4.11882 1.32523 4.64542 1.10703C5.17157 0.888821 5.77824 1.01068 6.17858 1.4141L6.1788 1.41454Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 484 B

View File

@@ -1,10 +0,0 @@
<svg width="8" height="8" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_430_1361)">
<path d="M3.35323 1.63714L5.35313 3.62724C5.45157 3.73841 5.5 3.8668 5.5 3.9952C5.5 4.12359 5.45118 4.25167 5.35352 4.34953L3.35362 6.33963C3.21105 6.49699 2.99535 6.53989 2.80935 6.46238C2.62342 6.38481 2.49998 6.20196 2.49998 5.99951L2.49998 2.00522C2.49998 1.80261 2.62154 1.61973 2.80856 1.54207C2.99543 1.46441 3.21089 1.49322 3.35307 1.63727L3.35323 1.63714Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_430_1361">
<rect width="8" height="8" fill="white"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 622 B

View File

@@ -0,0 +1,8 @@
<svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="M4.18179 8.81819C4.00605 8.64245 4.00605 8.35753 4.18179 8.18179L7.18179 5.18179C7.26618 5.0974 7.38064 5.04999 7.49999 5.04999C7.61933 5.04999 7.73379 5.0974 7.81819 5.18179L10.8182 8.18179C10.9939 8.35753 10.9939 8.64245 10.8182 8.81819C10.6424 8.99392 10.3575 8.99392 10.1818 8.81819L7.49999 6.13638L4.81819 8.81819C4.64245 8.99392 4.35753 8.99392 4.18179 8.81819Z"
fill="currentColor"
/>
</svg>

After

Width:  |  Height:  |  Size: 564 B

View File

@@ -1,3 +0,0 @@
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0.353682 7.55684L5.13301 2.74366C5.40037 2.50677 5.70871 2.3902 6.01705 2.3902C6.3254 2.3902 6.63299 2.50771 6.86801 2.74272L11.6473 7.5559C11.9914 7.89996 12.0948 8.41738 11.9083 8.86748C11.7218 9.31759 11.3149 9.60977 10.796 9.60977H1.20388C0.717302 9.60977 0.2781 9.31684 0.0915901 8.86711C-0.0949202 8.417 0.00886378 7.89883 0.353306 7.55665L0.353682 7.55684Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 493 B

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.41263 9.81632L6.98851 4.20095C7.30043 3.92457 7.66016 3.78857 8.0199 3.78857C8.37963 3.78857 8.73849 3.92567 9.01268 4.19986L14.5886 9.81522C14.99 10.2166 15.1106 10.8203 14.893 11.3454C14.6754 11.8705 14.2007 12.2114 13.5953 12.2114H2.40453C1.83685 12.2114 1.32445 11.8697 1.10686 11.345C0.88926 10.8198 1.01034 10.2153 1.41219 9.8161L1.41263 9.81632Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 484 B

View File

@@ -1,10 +0,0 @@
<svg width="8" height="8" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_430_1362)">
<path d="M1.63714 4.64676L3.62724 2.64685C3.73841 2.54842 3.8668 2.49998 3.9952 2.49998C4.12359 2.49998 4.25167 2.54881 4.34953 2.64646L6.33963 4.64637C6.49699 4.78894 6.53989 5.00463 6.46238 5.19064C6.38481 5.37657 6.20196 5.5 5.99951 5.5L2.00522 5.5C1.80261 5.5 1.61973 5.37844 1.54207 5.19142C1.46441 5.00455 1.49322 4.7891 1.63727 4.64691L1.63714 4.64676Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_430_1362">
<rect width="8" height="8" fill="white"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 617 B

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12px" height="12px" viewBox="0 0 12 12" version="1.1">
<g id="surface1">
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(47.058824%,49.019608%,52.941176%);fill-opacity:1;" d="M 2.976562 2.746094 L 4.226562 2.746094 L 6.105469 9.296875 L 5.285156 9.296875 L 4.804688 7.640625 L 2.386719 7.640625 L 1.914062 9.296875 L 1.097656 9.296875 Z M 4.621094 6.917969 L 3.640625 3.449219 L 3.5625 3.449219 L 2.582031 6.917969 Z M 4.621094 6.917969 "/>
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(47.058824%,49.019608%,52.941176%);fill-opacity:1;" d="M 2.878906 2.617188 L 4.324219 2.617188 L 6.277344 9.425781 L 5.191406 9.425781 L 4.707031 7.769531 L 2.484375 7.769531 L 2.011719 9.425781 L 0.925781 9.425781 Z M 3.601562 3.785156 L 2.75 6.789062 L 4.453125 6.789062 Z M 3.601562 3.785156 "/>
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(47.058824%,49.019608%,52.941176%);fill-opacity:1;" d="M 7.285156 9.378906 L 7.28125 9.378906 C 7.03125 9.277344 6.851562 9.101562 6.738281 8.859375 L 6.738281 8.855469 C 6.636719 8.621094 6.59375 8.296875 6.59375 7.894531 C 6.59375 7.421875 6.660156 7.035156 6.8125 6.757812 C 6.964844 6.464844 7.21875 6.265625 7.5625 6.152344 C 7.90625 6.039062 8.375 5.980469 8.96875 5.980469 L 9.75 5.980469 L 9.75 5.867188 C 9.75 5.605469 9.71875 5.417969 9.65625 5.292969 L 9.65625 5.289062 C 9.605469 5.175781 9.519531 5.09375 9.378906 5.039062 C 9.238281 4.984375 9.023438 4.949219 8.726562 4.949219 C 8.535156 4.949219 8.378906 4.964844 8.253906 4.988281 C 8.128906 5.011719 8.046875 5.042969 8 5.082031 L 7.996094 5.082031 C 7.902344 5.144531 7.832031 5.285156 7.820312 5.554688 L 7.8125 5.675781 L 6.746094 5.675781 L 6.746094 5.546875 C 6.746094 5.164062 6.804688 4.851562 6.925781 4.625 C 7.054688 4.382812 7.273438 4.21875 7.5625 4.128906 C 7.847656 4.03125 8.238281 3.984375 8.726562 3.984375 C 9.238281 3.984375 9.640625 4.039062 9.933594 4.148438 C 10.242188 4.261719 10.464844 4.464844 10.589844 4.75 C 10.714844 5.027344 10.773438 5.402344 10.773438 5.867188 L 10.773438 9.429688 L 9.78125 9.429688 L 9.78125 8.964844 C 9.644531 9.140625 9.488281 9.269531 9.316406 9.355469 C 9.078125 9.472656 8.730469 9.523438 8.289062 9.523438 C 7.871094 9.523438 7.53125 9.480469 7.285156 9.378906 Z M 8.058594 7.039062 C 7.914062 7.085938 7.816406 7.167969 7.753906 7.277344 C 7.699219 7.386719 7.664062 7.558594 7.664062 7.808594 C 7.664062 8.132812 7.730469 8.3125 7.824219 8.398438 C 7.921875 8.480469 8.132812 8.542969 8.496094 8.542969 C 8.84375 8.542969 9.097656 8.488281 9.261719 8.394531 C 9.421875 8.296875 9.546875 8.136719 9.621094 7.894531 C 9.691406 7.671875 9.734375 7.351562 9.742188 6.929688 L 8.777344 6.9375 C 8.460938 6.945312 8.222656 6.980469 8.0625 7.035156 Z M 8.058594 7.039062 "/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

3
assets/icons/check.svg Normal file
View File

@@ -0,0 +1,3 @@
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.98438 7.85115L6.13569 9.44983L9.98438 4.08141" stroke="black" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 246 B

View File

@@ -1,3 +0,0 @@
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.7489 1.96607C12.0837 2.3009 12.0837 2.842 11.7489 3.17684L4.89143 10.0343C4.55659 10.3691 4.01549 10.3691 3.68066 10.0343L0.251131 6.60556C-0.0837057 6.27072 -0.0837057 5.72963 0.251104 5.39479C0.585887 5.05995 1.12859 5.05995 1.46343 5.39479L4.26185 8.21545L10.538 1.96607C10.8729 1.6307 11.414 1.6307 11.7488 1.96607H11.7489Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 460 B

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.7489 4.25153C14.0837 4.58637 14.0837 5.12746 13.7489 5.4623L6.89143 12.3197C6.55659 12.6546 6.01549 12.6546 5.68066 12.3197L2.25113 8.89102C1.91629 8.55618 1.91629 8.01509 2.2511 7.68025C2.58589 7.34542 3.12859 7.34542 3.46343 7.68025L6.26185 10.5009L12.538 4.25153C12.8729 3.91616 13.414 3.91616 13.7488 4.25153H13.7489Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 454 B

View File

@@ -1,3 +0,0 @@
<svg width="8" height="8" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7.83258 1.31075C8.05581 1.53398 8.05581 1.89471 7.83258 2.11793L3.26095 6.68956C3.03773 6.91279 2.677 6.91279 2.45377 6.68956L0.16742 4.40375C-0.0558038 4.18052 -0.0558038 3.81979 0.167403 3.59657C0.390591 3.37334 0.752393 3.37334 0.975617 3.59657L2.84124 5.47701L7.02535 1.31075C7.24857 1.08717 7.6093 1.08717 7.83253 1.31075H7.83258Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 461 B

View File

@@ -0,0 +1,4 @@
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5 8L6.5 9L9 5.5" stroke="#11181C" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="7" cy="7" r="4.875" stroke="#11181C" stroke-width="1.25"/>
</svg>

After

Width:  |  Height:  |  Size: 287 B

View File

@@ -0,0 +1,3 @@
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.63281 5.66406L6.99344 8.89844L10.3672 5.66406" stroke="black" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 246 B

View File

@@ -1,3 +0,0 @@
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.9996 9.42843C5.78023 9.42843 5.56087 9.34473 5.39373 9.17733L0.251105 4.0347C-0.0837016 3.69989 -0.0837016 3.15751 0.251105 2.8227C0.585911 2.48789 1.1283 2.48789 1.4631 2.8227L5.9996 7.36067L10.5369 2.82337C10.8717 2.48856 11.4141 2.48856 11.7489 2.82337C12.0837 3.15818 12.0837 3.70056 11.7489 4.03537L6.60627 9.178C6.43886 9.3454 6.21923 9.42843 5.9996 9.42843Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 496 B

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7.99953 11.9998C7.74361 11.9998 7.48768 11.9022 7.29269 11.7069L1.29296 5.70714C0.902348 5.31653 0.902348 4.68375 1.29296 4.29314C1.68356 3.90253 2.31635 3.90253 2.70696 4.29314L7.99953 9.58743L13.293 4.29392C13.6837 3.90331 14.3164 3.90331 14.707 4.29392C15.0977 4.68453 15.0977 5.31731 14.707 5.70792L8.70731 11.7077C8.51201 11.903 8.25577 11.9998 7.99953 11.9998Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 496 B

View File

@@ -1,3 +0,0 @@
<svg width="8" height="8" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.99973 6.28564C3.85349 6.28564 3.70725 6.22984 3.59582 6.11824L0.167403 2.68982C-0.0558011 2.46662 -0.0558011 2.10502 0.167403 1.88182C0.390608 1.65862 0.752199 1.65862 0.975403 1.88182L3.99973 4.90713L7.0246 1.88227C7.2478 1.65906 7.60939 1.65906 7.8326 1.88227C8.0558 2.10547 8.0558 2.46706 7.8326 2.69027L4.40418 6.11868C4.29258 6.23029 4.14615 6.28564 3.99973 6.28564Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 499 B

View File

@@ -0,0 +1,3 @@
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.35938 3.63281L5.125 6.99344L8.35938 10.3672" stroke="black" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 244 B

View File

@@ -1,3 +0,0 @@
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.57103 12C8.35166 12 8.13228 11.9163 7.96514 11.7489L2.82228 6.60603C2.48746 6.27121 2.48746 5.72879 2.82228 5.39397L7.96514 0.251116C8.29996 -0.0837054 8.84237 -0.0837054 9.17719 0.251116C9.51202 0.585938 9.51202 1.12835 9.17719 1.46317L4.64023 6L9.17773 10.5375C9.51255 10.8723 9.51255 11.4147 9.17773 11.7496C9.01032 11.917 8.79068 12 8.57103 12Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 480 B

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.9995 15C10.7436 15 10.4877 14.9023 10.2927 14.707L4.29266 8.70703C3.90204 8.31641 3.90204 7.68359 4.29266 7.29297L10.2927 1.29297C10.6833 0.902344 11.3161 0.902344 11.7067 1.29297C12.0974 1.68359 12.0974 2.31641 11.7067 2.70703L6.4136 8L11.7074 13.2937C12.098 13.6844 12.098 14.3172 11.7074 14.7078C11.512 14.9031 11.2558 15 10.9995 15Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 469 B

View File

@@ -1,3 +0,0 @@
<svg width="8" height="8" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.71402 8C5.56777 8 5.42152 7.9442 5.31009 7.83259L1.88152 4.40402C1.65831 4.1808 1.65831 3.8192 1.88152 3.59598L5.31009 0.167411C5.53331 -0.0558036 5.89491 -0.0558036 6.11813 0.167411C6.34134 0.390625 6.34134 0.752232 6.11813 0.975446L3.09349 4L6.11849 7.025C6.3417 7.24821 6.3417 7.60982 6.11849 7.83304C6.00688 7.94464 5.86045 8 5.71402 8Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 468 B

View File

@@ -0,0 +1,3 @@
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.64062 3.64062L8.89062 7.00125L5.64062 10.375" stroke="black" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 245 B

View File

@@ -1,3 +0,0 @@
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.4284 12C3.20902 12 2.98964 11.9163 2.8225 11.7489C2.48767 11.4141 2.48767 10.8716 2.8225 10.5368L7.36059 5.99993L2.8225 1.46319C2.48767 1.12836 2.48767 0.585944 2.8225 0.251119C3.15732 -0.0837063 3.69974 -0.0837063 4.03457 0.251119L9.17748 5.39403C9.51231 5.72886 9.51231 6.27128 9.17748 6.6061L4.03457 11.749C3.86769 11.917 3.64804 12 3.4284 12Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 478 B

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.99982 15C4.74388 15 4.48794 14.9023 4.29294 14.707C3.90231 14.3164 3.90231 13.6836 4.29294 13.2929L9.58738 7.99992L4.29294 2.70705C3.90231 2.31642 3.90231 1.6836 4.29294 1.29297C4.68357 0.902343 5.31639 0.902343 5.70702 1.29297L11.7071 7.29304C12.0977 7.68367 12.0977 8.31649 11.7071 8.70712L5.70702 14.7072C5.51233 14.9031 5.25608 15 4.99982 15Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 478 B

View File

@@ -1,3 +0,0 @@
<svg width="8" height="8" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M2.28561 8C2.13936 8 1.99311 7.9442 1.88168 7.83259C1.65846 7.60937 1.65846 7.24776 1.88168 7.02454L4.90707 3.99996L1.88168 0.975457C1.65846 0.752241 1.65846 0.390629 1.88168 0.167413C2.10489 -0.0558042 2.4665 -0.0558042 2.68972 0.167413L6.11833 3.59602C6.34155 3.81924 6.34155 4.18085 6.11833 4.40407L2.68972 7.83268C2.57847 7.94464 2.43204 8 2.28561 8Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 479 B

View File

@@ -0,0 +1,3 @@
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.63281 8.36719L6.99344 5.13281L10.3672 8.36719" stroke="black" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 246 B

View File

@@ -1,3 +0,0 @@
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.1435 9.42655C10.9242 9.42655 10.7048 9.34284 10.5376 9.17543L6.00067 4.63994L1.46317 9.17744C1.12835 9.51226 0.585938 9.51226 0.251116 9.17744C-0.0837054 8.84262 -0.0837054 8.30021 0.251116 7.96538L5.39397 2.82253C5.72879 2.48771 6.27121 2.48771 6.60603 2.82253L11.7489 7.96538C12.0837 8.30021 12.0837 8.84262 11.7489 9.17744C11.5828 9.34351 11.3632 9.42655 11.1435 9.42655Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 507 B

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.0008 11.9977C13.7448 11.9977 13.4889 11.9 13.2939 11.7047L8.00078 6.41328L2.70703 11.707C2.31641 12.0977 1.68359 12.0977 1.29297 11.707C0.902344 11.3164 0.902344 10.6836 1.29297 10.293L7.29297 4.29297C7.68359 3.90234 8.31641 3.90234 8.70703 4.29297L14.707 10.293C15.0977 10.6836 15.0977 11.3164 14.707 11.707C14.5133 11.9008 14.257 11.9977 14.0008 11.9977Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 489 B

View File

@@ -1,3 +0,0 @@
<svg width="8" height="8" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7.42902 6.28438C7.28277 6.28438 7.13652 6.22858 7.02509 6.11697L4.00045 3.09331L0.975446 6.11831C0.752232 6.34153 0.390625 6.34153 0.167411 6.11831C-0.0558036 5.8951 -0.0558036 5.53349 0.167411 5.31028L3.59598 1.88171C3.8192 1.65849 4.1808 1.65849 4.40402 1.88171L7.83259 5.31028C8.0558 5.53349 8.0558 5.8951 7.83259 6.11831C7.72188 6.22903 7.57545 6.28438 7.42902 6.28438Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 499 B

View File

Before

Width:  |  Height:  |  Size: 384 B

After

Width:  |  Height:  |  Size: 384 B

View File

@@ -1,10 +0,0 @@
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_430_1285)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M6 12C9.31371 12 12 9.31371 12 6C12 2.68629 9.31371 0 6 0C2.68629 0 0 2.68629 0 6C0 9.31371 2.68629 12 6 12ZM9.53033 4.28033L8.46967 3.21967L4.875 6.81434L3.53033 5.46967L2.46967 6.53033L4.875 8.93566L9.53033 4.28033Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_430_1285">
<rect width="12" height="12" fill="white"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 530 B

View File

@@ -1,10 +0,0 @@
<svg width="8" height="8" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_430_1370)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 8C6.20914 8 8 6.20914 8 4C8 1.79086 6.20914 0 4 0C1.79086 0 0 1.79086 0 4C0 6.20914 1.79086 8 4 8ZM6.35355 2.85355L5.64645 2.14645L3.25 4.54289L2.35355 3.64645L1.64645 4.35355L3.25 5.95711L6.35355 2.85355Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_430_1370">
<rect width="8" height="8" fill="white"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 515 B

View File

@@ -1,10 +0,0 @@
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_430_1294)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M12 6C12 9.31371 9.31371 12 6 12C2.68629 12 0 9.31371 0 6C0 2.68629 2.68629 0 6 0C9.31371 0 12 2.68629 12 6ZM5.25 6H4.5V4.5H6.75V8.25H7.5V9.75H5.25V6ZM6.75 3.75V2.25H5.25V3.75H6.75Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_430_1294">
<rect width="12" height="12" fill="white"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 494 B

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M15 8C15 11.866 11.866 15 8 15C4.13401 15 1 11.866 1 8C1 4.13401 4.13401 1 8 1C11.866 1 15 4.13401 15 8ZM7.125 8H6.25V6.25H8.875V10.625H9.75V12.375H7.125V8ZM8.875 5.375V3.625H7.125V5.375H8.875Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 362 B

View File

@@ -1,10 +0,0 @@
<svg width="8" height="8" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_430_1372)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8 4C8 6.20914 6.20914 8 4 8C1.79086 8 0 6.20914 0 4C0 1.79086 1.79086 0 4 0C6.20914 0 8 1.79086 8 4ZM3.5 4H3V3H4.5V5.5H5V6.5H3.5V4ZM4.5 2.5V1.5H3.5V2.5H4.5Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_430_1372">
<rect width="8" height="8" fill="white"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 464 B

View File

@@ -1,10 +0,0 @@
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_430_1287)">
<path d="M6 0C2.68594 0 0 2.68594 0 6C0 9.31406 2.68594 12 6 12C9.31406 12 12 9.31406 12 6C12 2.68594 9.31406 0 6 0ZM8.97187 5.76797C8.91328 5.90859 8.77734 6 8.625 6H7.125V8.25C7.125 8.66414 6.78914 9 6.375 9H5.625C5.21086 9 4.875 8.66414 4.875 8.25V6H3.375C3.22266 6 3.08672 5.90859 3.02812 5.76797C2.96953 5.62734 3.00234 5.46797 3.11016 5.36016L5.73516 2.73516C5.88141 2.58867 6.11906 2.58867 6.26531 2.73516L8.89031 5.36016C8.99766 5.46797 9.03047 5.62734 8.97187 5.76797Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_430_1287">
<rect width="12" height="12" fill="white"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 741 B

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8 1C4.13359 1 1 4.13359 1 8C1 11.8664 4.13359 15 8 15C11.8664 15 15 11.8664 15 8C15 4.13359 11.8664 1 8 1ZM11.4672 7.7293C11.3988 7.89336 11.2402 8 11.0625 8H9.3125V10.625C9.3125 11.1082 8.92066 11.5 8.4375 11.5H7.5625C7.07934 11.5 6.6875 11.1082 6.6875 10.625V8H4.9375C4.75977 8 4.60117 7.89336 4.53281 7.7293C4.46445 7.56523 4.50273 7.3793 4.62852 7.25352L7.69102 4.19102C7.86164 4.02012 8.13891 4.02012 8.30953 4.19102L11.372 7.25352C11.4973 7.3793 11.5355 7.56523 11.4672 7.7293Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 613 B

Some files were not shown because too many files have changed in this diff Show More