Commit Graph
10119 Commits
Author SHA1 Message Date
Mikayla Maki 8eca1fdbb8 fmt 2023-06-29 17:19:35 -07:00
Mikayla Maki 74fefb0002 Remove on_click_out handler from context menu
Add 'delay_cancel()' method and on_down handler to relevant buttons
2023-06-29 17:10:51 -07:00
Mikayla Maki 6a2d71cc97 fmt 2023-06-28 16:35:57 -07:00
Mikayla Maki b516ef434c Add click out handler
Make all context menus on button click toggles instead of re-shows
2023-06-28 16:23:07 -07:00
Mikayla Maki 8f3385625c WIP: Add click out event to fix context menus 2023-06-28 09:29:49 -07:00
Joseph T. Lyons dbfa58f248 v0.94.x dev 2023-06-28 12:23:42 -04:00
Mikayla Maki 16108b19fa 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 c6abcdccc9 Remove menu tracking state 2023-06-28 09:06:06 -07:00
Max Brunsfeld 58cb0e960e collab 0.15.0 2023-06-28 09:01:07 -07:00
Mikayla Maki f969a66885 fmt 2023-06-28 08:44:17 -07:00
Mikayla Maki 6bce345ba5 Fix microphone and speaking styles 2023-06-28 08:41:31 -07:00
Julia c85350dc8c 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 5c45371a80 Handle new elixir-ls release zip name 2023-06-28 10:22:39 -04:00
Nate Butler e8ecbfd43e Update icon sizes 2023-06-28 10:19:30 -04:00
Nate Butler d1a4cd1129 Reduce the right spacing of the contacts menu 2023-06-28 10:06:12 -04:00
Piotr Osiewicz f1bee7707b Optimize user menu trigger 2023-06-28 15:27:38 +02:00
Piotr Osiewicz edc7ca58b4 Fix warning 2023-06-28 15:22:17 +02:00
Piotr Osiewicz 6a50cdd5fa Hide user menu on second click 2023-06-28 15:19:32 +02:00
Piotr Osiewicz 9d9877ad2e tests: Test 'db' package sequentially (#2654)
/cc @as-cii  @nathansobo  

Release Notes:

- N/A
2023-06-28 15:00:43 +02:00
Antonio ScandurraandNathan Sobo 818cc6a7c3 Enable assistant on stable
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-06-28 12:09:49 +02:00
Antonio Scandurra 159d39337f 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 SoboandAntonio Scandurra 02102c90f4 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 f7fbf321c8 Undeafen: unmute if user was not muted prior to deafening 2023-06-28 11:10:56 +02:00
Nathan SoboandAntonio Scandurra 47839417f9 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 SoboandAntonio Scandurra 0855bbfe5e 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 SoboandAntonio Scandurra 88a9908309 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 SoboandAntonio Scandurra 2d13e04489 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 66efdaa04e fmt 2023-06-27 19:25:46 -07:00
Mikayla Maki 0a7651a1e3 Added muted and currently speaking tracking 2023-06-27 19:23:13 -07:00
Max Brunsfeld 59ef9557b3 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 ecf26b93d4 Use FakeFs in worktree gitignore test 2023-06-27 15:40:36 -07:00
Max Brunsfeld 0b2f2ccc17 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 995045efa7 Fix bugs in handling combined injections exposed by HEEx 2023-06-27 15:08:26 -07:00
Nate Butler 404f01cb26 Update titlebar item spacing 2023-06-27 17:56:44 -04:00
Nate Butler d2c38b1954 workspace.titlebar -> titlebar in Theme 2023-06-27 17:27:58 -04:00
Mikayla Maki fbc5e7f63e Seperate online and offline 2023-06-27 13:33:04 -07:00
Nate Butler 0c6dd8615c Update screenshare toggle, titlebar spacing 2023-06-27 16:20:45 -04:00
Mikayla Maki b1a3d83c2e WIP: Add mute icons 2023-06-27 13:12:52 -07:00
Mikayla Maki afd9263f61 Rename and toggle screenshare 2023-06-27 09:58:01 -07:00
Nate Butler fe7bf7a5b8 Update share, call control buttons 2023-06-27 12:24:19 -04:00
Nate Butler 624b8da9e7 Add script for building theme types 2023-06-27 11:34:26 -04:00
Nate Butler 1cc20b5d49 Use icon_button for leave call 2023-06-27 11:34:12 -04:00
Piotr Osiewicz a59f347ff2 Keep users muted once they undeafen themselves 2023-06-27 17:19:18 +02:00
Nate Butler a5f9c53f03 Update local-collaboration.md
Add missing livekit info
2023-06-27 10:52:38 -04:00
Nate Butler 4fc4ac369e Update local-collaboration.md 2023-06-27 10:05:37 -04:00
Nate Butler a0d0d3402e 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 efd490810d Create local-collaboration.md
I forget how to do this every single time 😅
2023-06-27 09:51:30 -04:00
Piotr Osiewicz 89cbe97810 Merge branch 'main' into collab-titlebar-2 2023-06-27 15:40:43 +02:00
Nathan Sobo cb9ffd81cf 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 1a5f35c7a2 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