Commit log

c6672db Update theme license logic (#2541)

Click to expand commit body
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

Sergii Onufriienko created

76927b6 Make active panel's button close its dock

Max Brunsfeld created

eeba72d Bump protocol version

Max Brunsfeld created

8f95435 Replicate project-specific settings when collaborating

Max Brunsfeld created

c9820fd WIP: Add toast when users attempt to use shift-escape for the first time

Mikayla Maki created

584e5f7 Fix usability issues with new panel system. (#2544)

Click to expand commit body
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)

Mikayla Maki created

0122cd6 fmt

Mikayla Maki created

685e8d7 Seperate pane and panel styling

Click to expand commit body
co-authored-by: max <max@zed.dev>

Mikayla Maki and max created

9c707ef Rework new terminal actions

Mikayla Maki created

e80ab5f Fix focus bug with new docks

Click to expand commit body
co-authored-by: max <max@zed.dev>

Mikayla Maki and max created

5e4a9ab Fix bug in panel button dispatch

Mikayla Maki created

5065804 WIP: iron out bugs in interaction between toggle and toggle focus key bindings

Click to expand commit body
co-authored-by: max <max@zed.dev>

Mikayla Maki and max created

8f0fc91 `TextStyle::default()` ask system for known existing font family (#2542)

Click to expand commit body
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

Julia created

9c9af5e Remove focus side effects from toggle dock commands

Click to expand commit body
co-authored-by: max <max@zed.dev>

Mikayla Maki and max created

efcf78c Update pull_request_template.md

Joseph Lyons created

e9ce85e Scrape email from feedback editor (#2543)

Click to expand commit body
Add release note lines here:

N/A

Joseph T. Lyons created

501f9ab Scrape email from feedback editor

Joseph Lyons created

1a23fe9 WIP: Remove focus side effects from toggle dock commands

Click to expand commit body
co-authored-by: max <max@zed.dev>

Mikayla Maki and max created

84f98f1 Seperate open and zoom bits conceptually for new panels

Click to expand commit body
co-authored-by: max <max@zed.dev>

Mikayla Maki and max created

31516b7 `TextStyle::default()` ask system for known existing font family

Click to expand commit body
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>

Julia and Nathan Sobo created

51c7078 chore: remove license_text

Sergey Onufrienko created

4568f80 feat: read from LICENSE file

Sergey Onufrienko created

14efc18 refactor: add license file and check it exists

Sergey Onufrienko created

05d1dd6 refactor: move common to theme folder

Sergey Onufrienko created

ac63043 chore: move similar themes to one folder

Sergey Onufrienko created

0d62e76 refactor: colorSchemes

Sergey Onufrienko created

69e8a16 Start on `assistant::QuoteSelection`

Antonio Scandurra created

dc36547 Merge remote-tracking branch 'origin/main' into assistant-2

Antonio Scandurra created

1fc9103 Remove methods taking `&mut Workspace` from `Pane` (#2540)

Click to expand commit body
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.

Antonio Scandurra created

bd49403 Call `ItemHandle::added_to_pane` when an item is added to a pane

Antonio Scandurra created

2269c19 chore: add LICENSE files

Sergey Onufrienko created

8a851ad Fix annoying system prompt (#2538)

Click to expand commit body
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.

Nathan Sobo created

063613b Fix annoying system prompt

Click to expand commit body
I was having fun, but it was too much. It makes the assistant too annoying to be useful.

Nathan Sobo created

ed0fa24 Use settings JSON schema when editing local settings files

Max Brunsfeld created

89446c7 Start work on respecting project-specific settings

Max Brunsfeld created

88eb2b2 Move history navigation logic to `Workspace`

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

6d3464f Make `Pane::add_item` a proper `Pane` method

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

890c42a Show time in assistant messages

Antonio Scandurra created

edf8e27 Improves project search panel shortcut handling (#2536)

Click to expand commit body
* 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

Kirill Bulatov created

d593377 Improves project search panel shortcut handling

Click to expand commit body
* 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

Kirill Bulatov created

52e8bf2 Show custom header for assistant messages

Antonio Scandurra created

cf75b09 feat: organize themes by folders with LICENSE

Sergey Onufrienko created

986b02e Update LSP to the newest version (#2535)

Click to expand commit body
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

Kirill Bulatov created

404beba Set markdown as the assistant's buffer languages

Antonio Scandurra created

fdad1ad Update LSP to the newest version

Kirill Bulatov created

e453047 Make worktree `UpdatedEntries` events fully describe all changes (#2533)

Click to expand commit body
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.

Max Brunsfeld created

1f42bfc Include repositories with workdir changes in worktree UpdatedGitRepsositories event

Max Brunsfeld created

2db57b5 Adjust diagnostic transformation test to not wait for two buffer notifications

Max Brunsfeld created

02b95ef Derive worktree update messages from existing change events

Max Brunsfeld created

9cfe39f Display external paths in history (#2534)

Click to expand commit body
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

Kirill Bulatov created