89d9d2d
v0.90.x preview
Joseph Lyons created
89d9d2d
v0.90.x preview
Joseph Lyons created
e941294
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.
Piotr Osiewicz created
d5441ba
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:  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`.  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`.  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:  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.
Antonio Scandurra created
d3e0d38
Fix assistant panel tests
Antonio Scandurra created
d26cc2c
Maintain scroll bottom when streaming assistant responses
Antonio Scandurra created
43500db
Fix zed tests
Antonio Scandurra created
0dae8f2
Merge remote-tracking branch 'origin/main' into assistant-2
Antonio Scandurra created
a6feaf1
Allow search assistant editors
Antonio Scandurra created
c93b6cc
Tweak comment wording
Joseph Lyons created
0d90c6d
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.
Max Brunsfeld created
4b9a3c6
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.
Max Brunsfeld created
7aeaa84
Fix the order of some patterns in elixir highlight query
Max Brunsfeld created
8dc679e
Upgrade tree-sitter-elixir
Max Brunsfeld created
6737ee1
Avoid panic when failing to load a language's queries
Max Brunsfeld created
cc63d3d
chore: add targets to rust-toolchain.toml (#2581)
Piotr Osiewicz created
a9f865d
Don't apply the 'literal' color to entire markdown code blocks (#2579)
### Before  ### After  Release Notes: * Improved the syntax highlighting of fenced code blocks in markdown.
Max Brunsfeld created
dfd7277
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.
Piotr Osiewicz created
3fc2e07
Don't apply the 'literal' color to entire markdown code blocks
Max Brunsfeld created
bdd3e77
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
Max Brunsfeld created
7bfb51e
Live-reload tree-sitter queries in development
Max Brunsfeld created
559a58d
Revert "chore: bump MSRV to 1.70" (#2577)
Reverts zed-industries/zed#2573
Piotr Osiewicz created
c1c91dc
chore: bump MSRV to 1.70 (#2573)
Add rust-toolchain.toml Release Notes: - N/A
Piotr Osiewicz created
572c59e
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 |
Piotr Osiewicz created
17560cc
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
Max Brunsfeld created
dbbd055
Eliminate assets crate
Max Brunsfeld created
2003d3d
Update initial_user_settings.json
Joseph Lyons created
7a78e64
Merge remote-tracking branch 'origin/main' into assistant-2
Antonio Scandurra created
16090c3
Insert reply after assistant message when hitting `cmd-enter`
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Antonio Scandurra and Nathan Sobo created
ef7ec26
Cycle message roles on click
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Antonio Scandurra and Nathan Sobo created
53906fd
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.
Max Brunsfeld created
ac71780
Include message headers in copied assistant text
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Antonio Scandurra and Nathan Sobo created
cfcfc3b
Show notification when attempting to open local settings in a project w/ no folders
Max Brunsfeld created
093ce8a
Simplify prompt
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Antonio Scandurra and Nathan Sobo created
7b066df
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.
Nate Butler created
a0e2e5d
project panel/styles: Align child's chevron with parent path (#2559)
Z-1012 Release notes: - Adjust indent of files in subdirectories.
Piotr Osiewicz created
2b1aeb0
Show error message when requests to OpenAI fail
Co-Authored-By: Julia Risley <julia@zed.dev>
Antonio Scandurra and Julia Risley created
9c59146
Set assistant editor's title based on the first question/answer pair
Co-Authored-By: Julia Risley <julia@zed.dev>
Antonio Scandurra and Julia Risley created
69b8267
Show the current model and allow clicking on it to change it
Antonio Scandurra created
ada2220
Insert a user reply when hitting `cmd-enter` in an assistant message
Antonio Scandurra created
f4f0606
Add assertion to pinpoint how deletion works across excerpts
Antonio Scandurra created
337dda8
Only remove excerpts when an edit touches them
Antonio Scandurra created
8032324
Prevent moving across excerpts on `Editor::delete`
Antonio Scandurra created
e46d154
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.
Antonio Scandurra created
23836eb
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.
Nathan Sobo created
296a0bf
Populate created local settings file with an empty JSON object and comments
Max Brunsfeld created
cb975f1
Add Zed > Preferences > Local Settings to application menu
Max Brunsfeld created
0949ee8
:art: Move OpenSettings action back to the zed crate
Max Brunsfeld created
398b0f3
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
Max Brunsfeld created
3d1ba1b
Apply bounds to all windows when using start-local-collaboration script
Max Brunsfeld created
5711511
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.
Max Brunsfeld created