Added support for the popular vim
[indent-text-object](https://github.com/michaeljsmith/vim-indent-object).
This is especially useful in indentation-sensitive languages like
python.
Release Notes:
- vim: Added `vii`, `vai` and `vaI` for selecting
[indent-text-object](https://github.com/michaeljsmith/vim-indent-object)s.
vultix
created
6470852
Revert "Styling for Apply/Discard buttons (#21017)"
Click to expand commit body
This reverts commit 884748038e9c99b83b943d4550dd3cf515563071.
Max Brunsfeld
created
6dbe2ef
docs: Fix default value for `relative_line_numbers` in vim (#21196)
Click to expand commit body

Changes:
`true` to `false`
Reasoning:
matches zed default settings as well as the settings changes portion of
the vim docs


Release Notes:
- N/A
yoleuh
created
8847480
Styling for Apply/Discard buttons (#21017)
Click to expand commit body
Change the "Apply" and "Discard" buttons to match @danilo-leal's design!
Here are some different states:
### Cursor in the first hunk
Now that the cursor is in a particular hunk, we show the "Apply" and
"Discard" names, and the keyboard shortcut. If I press the keyboard
shortcut, it will only apply to this hunk.
<img width="759" alt="Screenshot 2024-11-23 at 10 54 45β―PM"
src="https://github.com/user-attachments/assets/68e0f109-9493-4ca2-a99c-dfcbb4d1ce0c">
### Cursor in the second hunk
Moving the cursor to a different hunk changes which buttons get the
keyboard shortcut treatment. Now the keyboard shortcut is shown next to
the hunk that will actually be affected if you press that shortcut.
<img width="749" alt="Screenshot 2024-11-23 at 10 56 27β―PM"
src="https://github.com/user-attachments/assets/59c2ace3-6972-4a60-b806-f45e8c25eaae">
Release Notes:
- Restyled Apply/Discard buttons
---------
Co-authored-by: Max <max@zed.dev>
Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com>
Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Co-authored-by: Bennet Bo Fenner <53836821+bennetbo@users.noreply.github.com>
Richard Feldman
,
Max
,
Danilo Leal
,
Danilo Leal
, and
Bennet Bo Fenner
created
8f1ec3d
assistant2: Add a checkbox to control tool use (#21215)
Click to expand commit body
This PR adds a checkbox to the `assistant2` message editor to control
whether tools should be used for a given message.
Release Notes:
- N/A
Marshall Bowers
created
fdc17c5
macos: Keybind improvements for binds involving shift (#21207)
Click to expand commit body
Fix cmd-pipe
Remove redudnant jetbrains/sublime keybinds (these exist as `cmd-{` and `cmd-}` under default vscode keymap) and were broken as part of the recent keybind changes.
Remove excess JSON whitespace from tests to make them more readable.
Peter Tripp
created
9999c31
Avoid endless loop of the diagnostic updates (#21209)
Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/21173
Rust-analyzer with `checkOnSave` enabled will push diagnostics for a
file after each diagnostics refresh (e.g. save, file open, file close).
If there's a file that is not open in any pane and has only warnings,
and the diagnostics editor has warnings toggled off, then
0. rust-analyzer will push the corresponding warnings after initial load
1. the diagnostics editor code registers
`project::Event::DiagnosticsUpdated` for the corresponding file path and
opens the corresponding buffer to read its associated diagnostics from
the snapshot
2. opening the buffer would send `textDocument/didOpen` which would
trigger rust-analyzer to push the same diagnostics
3. meanwhile, the diagnostics editor would filter out all diagnostics
for that buffer, dropping the open buffer and effectively closing it
4. closing the buffer will send `textDocument/didClose` which would
trigger rust-analyzer to push the same diagnostics again, as those are
`cargo check` ones, still present in the file
5. GOTO 1
Release Notes:
- Fixed diagnostics editor not scrolling properly under certain
conditions
Kirill Bulatov
created
7d67bb4
Properly use lsp::CompletionList defaults (#21202)
Click to expand commit body
- Closes https://github.com/zed-industries/zed/issues/21185
Release Notes:
- Fixed incorrect handling of the completion list defaults
Kirill Bulatov
created
968ffaa
assistant2: Restructure storage of tool uses and results (#21194)
Click to expand commit body
This PR restructures the storage of the tool uses and results in
`assistant2` so that they don't live on the individual messages.
It also introduces a `LanguageModelToolUseId` newtype for better type
safety.
Release Notes:
- N/A
This PR styles the messages in `assistant2` so they don't look quite as
rough:
<img width="1138" alt="Screenshot 2024-11-25 at 8 36 32β―PM"
src="https://github.com/user-attachments/assets/9cc423fa-feff-4c69-9d2b-d28970559547">
Release Notes:
- N/A
Marshall Bowers
created
f059b6a
assistant2: Add support for using tools (#21190)
Click to expand commit body
This PR adds rudimentary support for using tools to `assistant2`. There
are currently no visual affordances for tool use.
This is gated behind the `assistant-tool-use` feature flag.
<img width="1079" alt="Screenshot 2024-11-25 at 7 21 31β―PM"
src="https://github.com/user-attachments/assets/64d6ca29-c592-4474-8e9d-c344f855bc63">
Release Notes:
- N/A
Marshall Bowers
created
3901d46
Factor tool definitions out of `assistant` (#21189)
Click to expand commit body
This PR factors the tool definitions out of the `assistant` crate so
that they can be shared between `assistant` and `assistant2`.
`ToolWorkingSet` now lives in `assistant_tool`. The tool definitions
themselves live in `assistant_tools`, with the exception of the
`ContextServerTool`, which has been moved to the `context_server` crate.
As part of this refactoring I needed to extract the
`ContextServerSettings` to a separate `context_server_settings` crate so
that the `extension_host`βwhich is referenced by the `remote_server`βcan
name the `ContextServerSettings` type without pulling in some undesired
dependencies.
Release Notes:
- N/A
Marshall Bowers
created
321fd19
assistant2: Wire up `assistant2::NewThread` action (#21187)
Click to expand commit body
This PR wires up the `assistant2::NewThread` action so that you can
create new threads.
Release Notes:
- N/A
Marshall Bowers
created
cc5daa2
assistant2: Improve tracking of pending completions (#21186)
Click to expand commit body
This PR improves the tracking of pending completions in `assistant2`
such that we actually remove ones that have been completed.
Release Notes:
- N/A
Marshall Bowers
created
2b92508
assistant2: Include previous messages in the thread in the completion request (#21184)
Click to expand commit body
This PR makes it so previous messages in the thread are included when
constructing the completion request, instead of only sending up the most
recent user message.
Release Notes:
- N/A
This PR removes an unnecessary `Pane` that was copied over from
`assistant::AssistantPanel` to `assistant2::AssistantPanel`.
Release Notes:
- N/A
Marshall Bowers
created
9ee1aba
assistant2: Stream in completion text (#21182)
Click to expand commit body
This PR makes it so that the completion text streams into the message
list rather than being buffered until the end.
Release Notes:
- N/A
Marshall Bowers
created
91a565f
Simplify BufferStore's local vs remote state (#21180)
Click to expand commit body
This is a pure refactor, motivated by wanting to introduce to the
BufferStore new logic for opening staged and committed changes.
I found the `BufferStoreImpl` trait a little bit confusing, particularly
how the different implementors of the trait held a handle back to the
owning buffer store. I was able to reduce the amount of code
considerably (-78 lines) by using a two-variant enum instead, similar to
what we do for `LspStore`, `WorktreeStore` and `Worktree`.
Release Notes:
- N/A
This PR adds in rudimentary functionality for sending messages to the
LLM in `assistant2`.
<img width="1079" alt="Screenshot 2024-11-25 at 1 49 11β―PM"
src="https://github.com/user-attachments/assets/5accb749-c034-4fb2-bf55-3ae5bc9529ad">
Release Notes:
- N/A
Attempts to reduce the diagnostics flicker, when editing very
fundamental parts of the large code base in Rust.
https://github.com/user-attachments/assets/dc3f9c21-8c6e-48db-967b-040649fd00da
Release Notes:
- N/A
This reverts #20824 and #20899. After adding them last week we came to
the conclusion that the hints are too distracting in everyday use, see
#21128 for more details.
Release Notes:
- N/A
This PR adds documentation for context servers.
Release Notes:
- N/A
Marshall Bowers
created
b83f104
Do not reuse render cache for nested items whose parents are re-rendered (#21165)
Click to expand commit body
Fixes a bug with terminal splits panicking during writing a command in
the command input
Release Notes:
- N/A
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
Kirill Bulatov
and
Antonio Scandurra
created
08b214d
Rename 'chat' to 'thread' in assistant2 (#21141)
Click to expand commit body
Release Notes:
- N/A
Nathan Sobo
created
aa58cab
Fix offline workspace deserialization with assistant2 (#21159)
5b0fa6e
Hide AI hints on line ends so we can discuss more (#21128)
Click to expand commit body
@bennetbo @as-cii @mrnugget I'm really not liking the hints about AI on
every line. It feels too distracting to me and damaging to the user
experience. I'm wondering if we can hide them and work with design for
other ideas. Or at least talk it through.
Release Notes:
- N/A
Nathan Sobo
created
e85848a
pylsp: Prefer version from user venv (#21069)
Click to expand commit body
Closes #ISSUE
Release Notes:
- pylsp will now use version installed in user venv, if one is
available.
Piotr Osiewicz
created
20bffaf
python: Highlight docstrings for classes and modules (#20486)
Click to expand commit body
Release Notes:
- Add `string.doc` python syntax highlighting to class and module-level
docstrings.
Previously, only docstrings inside python functions were labeled as
`string.doc`, but docstrings can exist at the class or module level too.
This adds the more specific string type for each of those.
*Before*:
<img width="288" alt="image"
src="https://github.com/user-attachments/assets/5a6c4c9d-709c-40e2-8316-31c95084a1a9">
*After*:
<img width="294" alt="image"
src="https://github.com/user-attachments/assets/8212bfa2-2288-4623-aa63-f748a2295ada">
Carroll Wainwright
created
3dcb94c
Correct more app event inconsistencies (#21129)
Click to expand commit body
- Unify welcome page event type string structure
- Differentiate between metric telemetry event and diagnostic telemetry
event
Release Notes:
- N/A
Joseph T. Lyons
created
0395d1b
Clean up app event transformations (#21115)
Click to expand commit body
This needs scrutinized. Detailed breakdown of what events I kept and
threw out here:
https://zed.dev/channel/app-events-17178/notes
I also removed a few fake events and tossed out json properties that
were being inserted for things we don't have logic to track. See PR
review comments below.
I think the only bad data we have are that we were identifying all node,
pnpm, and yarn projects as 'node' in the `project_type` property, so a
few days of lost data there.
Release Notes:
- N/A
Joseph T. Lyons
created
628b96f
assistant2: Sketch in chat editor (#21116)
Click to expand commit body
This PR sketches in the chat editor for `assistant2`.
<img width="1136" alt="Screenshot 2024-11-23 at 1 56 23β―PM"
src="https://github.com/user-attachments/assets/6e979995-c0cf-4a46-8694-fc4a8646336f">
Release Notes:
- N/A
This PR sketches in the toolbar for `assistant2`.
<img width="1136" alt="Screenshot 2024-11-23 at 12 39 49β―PM"
src="https://github.com/user-attachments/assets/ed56fc36-54c8-48d4-8446-6c1f182fcef2">
Release Notes:
- N/A
Marshall Bowers
created
3a04089
Factor out language model selector into its own crate (#21113)
Click to expand commit body
This PR factors the language model selector out into its own
`language_model_selector` crate so that it can be reused in
`assistant2`.
Also renamed it from `ModelSelector` to `LanguageModelSelector` to be a
bit more specific.
Release Notes:
- N/A
This PR breaks ground on a new `assistant2` crate.
In order to see this new version of the assistant, both of the following
must be true:
1. The `assistant2` feature flag is enabled for your user
- It is **not** currently enabled for all staff.
2. You are running a development build of Zed
The intent here is to enable the folks working on `assistant2` to
incrementally land work onto `main` without breaking use of the current
Assistant for anyone.
<img width="1136" alt="Screenshot 2024-11-23 at 10 46 08β―AM"
src="https://github.com/user-attachments/assets/5723a13f-5be1-4486-9460-ead7329ba78e">
Release Notes:
- N/A
Marshall Bowers
created
f30de48
docs: Proto Language is by extension not native (#21096)
Click to expand commit body
Fixes docs to reflect that Protobuf support is via extension.
Comment out references ProtoLS formatter.
Need to test both protols and protobuf-language-server to ensure both work.
Closes https://github.com/zed-industries/zed/issues/21077
* BREAKING: rename `file_finder::OpenMenu` into
`file_finder::ToggleMenu`
* Display the keybinding for menu toggling when the menu is open
* Fix `enter` not working in the menu
Release Notes:
- Fixed enter not working and menu toggle binding not shown in the file
finder menu
This PR overhauls extension registration in order to make it more
modular.
The `extension` crate now contains an `ExtensionHostProxy` that can be
used to register various proxies that the extension host can use to
interact with the rest of the system.
There are now a number of different proxy traits representing the
various pieces of functionality that can be provided by an extension.
The respective crates that provide this functionality can implement
their corresponding proxy trait in order to register a proxy that the
extension host will use to register the bits of functionality provided
by the extension.
Release Notes:
- N/A
Marshall Bowers
created
c9f2c27
Improve error handling and resource cleanup in `linux/x11/window.rs` (#21079)
Click to expand commit body
* Fixes registration of event handler for xinput-2 device changes,
revealed by this improvement.
* Pushes `.unwrap()` panic-ing outwards to callers.
* Includes a description of what the X11 call was doing when a failure
was encountered.
* Fixes a variety of places where the X11 reply wasn't being inspected
for failures.
* Destroys windows on failure during setup. New structure makes it
possible for the caller of `open_window` to carry on despite failures,
and so partially initialized window should be removed (though all calls
I looked at also panic currently).
Considered pushing this through `linux/x11/client.rs` too but figured
it'd be nice to minimize merge conflicts with #20853.
Release Notes:
- N/A
Michael Sloan
created
8240a52
Prevent panels from being resized past the edge of the workspace (#20637)
Click to expand commit body
Closes #20593
Release Notes:
- Fixed a bug where it is possible to get in near-unrecoverable panel
state by resizing the panel past the edge of the workspace.
Co-authored-by: Trace <violet.white.batt@gmail.com>
Mikayla Maki
and
Trace
created
c28f5b1
Allow overrides for json-language-server settings (#20748)
Click to expand commit body
Closes #20739
The JSON LSP adapter now merges user settings with cached settings, and
util::merge_json_value_into pushes array contents from source to target.
Closes https://github.com/zed-industries/zed/issues/13246
Supersedes: https://github.com/zed-industries/zed/pull/16192
I couldn't push to the git fork this user was using, so here's the exact
same PR but with some style nits implemented.
Release Notes:
- Added image rendering to the Markdown preview
---------
Co-authored-by: dovakin0007 <dovakin0007@gmail.com>
Co-authored-by: dovakin0007 <73059450+dovakin0007@users.noreply.github.com>
Mikayla Maki
,
dovakin0007
, and
dovakin0007
created
becc363
Cleanup file_scan_inclusions in default.json (#21073)