baf4abe
Correct variable name in project type detection (#32835)
Click to expand commit body
Release Notes: - N/A
Joseph T. Lyons created
baf4abe
Correct variable name in project type detection (#32835)
Release Notes: - N/A
Joseph T. Lyons created
2539d57
wayland: Avoid reloading cursor theme on every cursor style change (#32832)
Release Notes: - N/A
Michael Sloan created
c95e2a2
linux: Add mouse cursor icon name synonyms (#32820)
Most of the default icon sets on Ubuntu do not use the names that were there. To fix, using the icon synonyms from the chromium source. This will probably fix some of the linux mouse cursor issues tracked in #26141 Also adds a note in the load failure logs mentioning that misconfigured `XCURSOR_PATH` may be the issue. I ran into this because [the alacritty snap incorrectly sets XCURSOR_PATH](https://github.com/snapcrafters/alacritty/issues/21). On X11 also adds: * Caching of load errors to log once for missing cursor icons. * Fallback on default cursor icon. This way if there was a transition from a non-default icon to a missing icon it doesn't get stuck showing the non-default icon. Leaving release notes blank as I have other mouse cursor fixes and would prefer to just have one entry in the release notes. Release Notes: - N/A
Michael Sloan created
dfa7ed5
collab: Update Stripe customer email before checkout (#32669)
Release Notes: - N/A
Michael Sloan created
783412f
debugger: Don't spawn unnecessary process (#32827)
Before this change, when spawning a child session we'd launch an extra node process that would immediately die because it couldn't listen on the debugger port Release Notes: - N/A
Conrad Irwin created
6d96f8b
Use a proper snapshot version when resolving for utf16 points (#32815)
Release Notes: - Fixed a panic when merging pull and (newer) push diagnostics Co-authored-by: Conrad Irwin <conrad@zed.dev>
Kirill Bulatov and Conrad Irwin created
69e84c0
agent: Scroll to bottom after submitting a new message (#32819)
This is a follow up to my original attempt https://github.com/zed-industries/zed/pull/30878 and to the PR that eventually reverted parts of it because it broke stuff https://github.com/zed-industries/zed/pull/31295. This new approach attaches the `scroll_to_bottom` feature to the `chat` function, which is triggered when the `Chat` action is dispatched by the "send" icon buttons. With that, and from my testing, the thread doesn't forcefully scroll as new messages are added, which was the regression I had introduced. Release Notes: - agent: The panel nows scrolls to the bottom after submitting a new message, allowing to see it more easily.
Danilo Leal created
ffc6218
debugger: Process ANSI color escape codes in console (#32817)
- [x] foreground highlights - [x] background highlights - [x] advertise support in DAP capabilities Closes #31372 Release Notes: - Debugger Beta: added basic support for highlighting in the console based on ANSI escape codes.
Cole Miller created
1f45716
Windows tests on self-hosted runners (#29764)
Windows self-hosted runners Release Notes: - N/A --------- Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com> Co-authored-by: Junkui Zhang <364772080@qq.com>
Peter Tripp , Max Brunsfeld , and Junkui Zhang created
701fa4d
Reduce allocations on project type detection (#32818)
Release Notes: - N/A
Joseph T. Lyons created
7fb8ae0
debugger: Make the remove button easier to click for breakpoint list entries (#32772)
Closes #31574 Move this button a bit to the left so it doesn't get blocked by the hitbox of the scrollbar. Also makes the list entries a bit thicker vertically so that the button can be `XSmall` instead of `Indicator`-sized again. Release Notes: - Debugger Beta: fixed a layout issue that made it hard to click the remove (`X`) button for entries in the breakpoint list.
Cole Miller created
22a2ff4
Bail and signal error when the cwd of a resolved task doesn't exist (#32777)
Closes #32688 Release Notes: - Fixed tasks (including build tasks for debug configurations) silently using `/` as a working directory when the specified `cwd` didn't exist.
Cole Miller created
0f0ff40
extension: Another batch of updates for DAP extension API (#32809)
Closes #ISSUE Release Notes: - N/A
Piotr Osiewicz created
4383fee
assistant_tools: Enable diff-fenced edit parser for all Gemini models (#32812)
I saw recently we added diff-fenced edit parser which improves the overall edit performance of gemini models in this PR: #32737. The idea is to enable it to all the models which has gemini as their id as this will help copilot and openrouter provider as they seem to aggregate all these models under one umbrella. I thought about adding a new method in LanguageModel as vendor_name() which returns the underlying actual model provider name but felt like a too early abstraction for a method to be used at one place. Release Notes: - N/A
Umesh Yadav created
cfbc2d0
Don't spawn Anthropic telemetry event when API key is missing (#32813)
Minor refactor that I'm extracting from a branch because it can stand alone. - Now we no longer spawn an executor for `report_anthropic_event` if it's just going to immediately fail due to API key being missing - `report_anthropic_event` now takes a `String` API key instead of `Option<String>` and the error reporting if the key is missing has been moved to the caller. - `report_anthropic_event` is longer coupled to `AnthropicError`, because all it ever did was generate an `AnthropicEvent::Other`, which in turn was then only used for `log_err` - so, can just be an `anyhow::Result`. Release Notes: - N/A
Richard Feldman created
6e04b9e
inline assistant: Do not dismiss while generating when hitting enter (#32810)
Closes #32798 Release Notes: - Fixed an issue where the inline assistant would be dismissed when hitting enter while generating code
Bennet Bo Fenner created
baad66c
wayland: Hopefully fix a panic recenty added in #32784 (#32808)
Release Notes: - N/A
Michael Sloan created
c7de817
editor: Fix code action not visible until mouse move or buffer interaction (#32804)
Closes #32796 Regressed since https://github.com/zed-industries/zed/pull/32408. Fixed in same way as other related PRs https://github.com/zed-industries/zed/pull/32683, https://github.com/zed-industries/zed/pull/32692, https://github.com/zed-industries/zed/pull/32795. Release Notes: - Fixed issue where code actions are not visible until the mouse is moved when the `cursor_blink` setting is `false`.
Smit Barmase created
29cdef1
Ensure we scan worktrees again for project types when none were previously found (#32805)
This PR doesn't change behavior, but simply adds a case to a test to make sure we continue to scan any given worktree for project types, if one was not found prior. Also updates `detect_project_types`'s return type to an `Option` so we can differentiate in tests between the case where we skip a worktree that previously had project type events sent and the case where we simply found no project types to report. Release Notes: - N/A
Joseph T. Lyons created
6df4c53
agent: Less disruptive changed file notification (#31693)
When the user edits one of the tracked files, we used to notify the agent by inserting a user message at the end of the thread. This was causing a few problems: - The agent would stop doing its work and start reading changed files - The agent would write something like, "Thank you for letting me know about these changed files." This fix contains two parts: 1. Changing the prompt to indicate this is a service message 2. Moving the message higher in the conversation thread This works, but it slightly hurts caching. We may consider making these notification messages stick in history, trading context tokens count for the cache. This might be related to #30906 Release Notes: - N/A --------- Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Oleksiy Syvokon and Marshall Bowers created
92addb0
Pass project environment to runInTerminal requests (#32720)
Closes #ISSUE Release Notes: - debugger: Pass environment to run in terminal requests
Conrad Irwin created
d7db4d4
agent: Rework context server settings (#32793)
This changes the way context servers are organised. We now store a `source` which indicates if the MCP server is configured manually or managed by an extension. Release Notes: - N/A --------- Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
Bennet Bo Fenner and Ben Brandt created
c35f22d
agent: Enable accepting and rejecting individual file changes from message editor (#32801)
Previously, you could only accept and reject all changes from a specific file by checking that file out on a tab. Now, you can do that via the message editor changes summary bar. The buttons appear as you hover over the file item in the accordion. Here's what it looks like: <img src="https://github.com/user-attachments/assets/8c0843d3-9bf1-4588-8b42-4cd8d0798a68" width="500" /> Release Notes: - agent: Enable accepting and rejecting individual file changes from message editor.
Danilo Leal created
fceba6c
edit_file: Add diff-fenced output format (#32737)
This format is enabled for Google models as they seem to prefer it. A relevant unit eval's pass rate has increased from 0.77 to 0.98. Diff-fenced format looks like this (markdown fences and a line hint are optional): ```diff <<<<<<< SEARCH line=42 ... ======= ... >>>>>>> REPLACE ``` Release Notes: - Agent: Gemini models now use the diff-fenced format when making edits
Oleksiy Syvokon created
8df6ce2
extension: Update DAP extension API (#32448)
- DAP schemas will be stored in `debug_adapters_schemas` subdirectory in extension work dir. - Added Debug Config integration and such. Release Notes: - N/A
Piotr Osiewicz created
41e9f31
gemini: Send thought signatures back to API (#32064)
This is a follow-up to: - #31925 - #31902 Release Notes: - Support Gemini thought signatures
Oleksiy Syvokon created
b749d93
editor: Ensure mouse cursor is shown again on mouse move (#32795)
Closes #32787 Follow-up to #27519 and #32408 This PR fixes an issue where the mouse cursor would stay hidden after typing in the editor. Before #32408, we would rerender the editor on every mouse move. Now, we (correctly) only do this if a rerender is actually required. This caused a small regression for hiding the mouse cursor though: Due to the view now being cached, we do not neccessarily update the mouse cursor style so it is shown again. The boolean is updated but the view is not, resulting in the cursor style being kept until another action is performed. This is an issue with both Stable and Preview (due to some other changes, the issue is slightly worse on Preview though, see https://github.com/zed-industries/zed/pull/32596#issuecomment-2969258800 and https://github.com/zed-industries/zed/pull/32596#issuecomment-2969357248 for some more context). This PR ensures that the cursor is shown again by scheduling a redraw of the editor whenever the boolean is updated. The change should not cause any performance regressions: In most cases where we want to hide the mouse, the editor is about to be rerendered anyway, hence this would not change anything. For cases where we want to show the cursor again, this ensures that we actually end up doing so by rerendering the editor once. Release Notes: - Fixed an issue where the mouse cursor would sometimes stay hidden after typing in editors with the `hide_mouse` setting enabled.
Finn Evers created
d29e94b
Fix the component preview page scroll (#32797)
Plus some other tiny visual adjustments. I've been using the Component Preview a lot this past week and vertical scroll wasn't working, which was a big bummer! Release Notes: - N/A
Danilo Leal created
c72cdfd
Do not report same project type multiple times for same worktree (#32785)
Follow-up to: https://github.com/zed-industries/zed/pull/32769 Now that the project type identification telemetry can look for multiple files in order to identify the project type, we need to make sure we still only send a single event for a given worktree. Also, simplifies project detection telemetry code Release Notes: - N/A
Joseph T. Lyons created
4733f18
linux: Only call `on_keyboard_layout_change` when layout name changes (#32784)
Release Notes: - N/A
Michael Sloan created
1660438
Add tests for project discovery telemetry (#32782)
Release Notes: - N/A
Joseph T. Lyons created
ef61ebe
editor: Support both cursor and mouse based columnar selection (#32779)
Closes #32584 In https://github.com/zed-industries/zed/pull/31888, we changed the default `opt + shift` behavior to start columnar selection from the mouse position (Sublime-like behavior) instead of from the existing selection head (VSCode-like behavior). It turns out there is a use case for creating columnar selection from an existing selection head as well, such as creating a consecutive multi-cursor from existing selection head with just a click instead of dragging. This PR brings back columnar selection from the selection head via `opt + shift`, while retaining columnar selection from the mouse position, which is now mapped to the new `cmd + shift` binding. Note: If you like to swap the binding, you can use [existing multi cursor modifier setting](https://zed.dev/docs/configuring-zed?highlight=multi_cursor_modifier#multi-cursor-modifier). Release Notes: - Added `cmd + shift` to start columnar selection from the mouse position. - Restored `opt + shift` to create columnar selection (or consecutive multi-cursor on click) from the selection head.
Smit Barmase created
6150c26
X11: Fix handling of key remapping (#32780)
Closes #27384 I wrote #32771 before seeing #27384, and hoped that change would fix it. It didn't because `XkbSelectNotify` wants a mask of which types of `XkbMapNotify` to deliver, and otherwise won't send them. I noticed quite a few events are sent just for remapping a single keycode, so I updated the event loop to deduplicate these events (since the handler does not attempt to apply them and instead just re-queries keyboard info). Also adds a missing call of `keyboard_layout_change` on `XkbMapNotify` and `XkbNewKeyboardNotify`. Release Notes: - x11: Fixed handling of key remapping occurring while Zed is running (e.g. xmodmap)
Michael Sloan created
3bed5b7
x11: Halt periodic refresh for windows that aren't visible (#32775)
This adds handling of UnmapNotify / MapNotify / VisibilityNotify to track whether windows are visible. When hidden, the refresh loop is halted until visible again. Often these refreshes were just checking if the window is dirty, but I believe it sometimes did a full re-render for things that change without user interaction (cursor blink, animations). This also changes handling of Expose events to set a flag indicating the next refresh should have `require_presentation: true`. Release Notes: - x11: No longer refreshes windows that aren't visible.
Michael Sloan created
3595dbb
x11: Fix keymap reload to happen on XkbMapNotify not MapNotify (#32771)
Keyboard hot reloading was added in #15059, but also reloaded this on MapNotify instead of XkbMapNotify, so it wasn't handling keymap change events and was instead reloading when windows are mapped (typically when they go from a minimized / other workspace state to being visible). Release Notes: - N/A
Michael Sloan created
61771e7
Improve code for unsaved tab titles (#32770)
Just fixing a couple of minor things that bugged when revisiting this code. Release Notes: - N/A
Joseph T. Lyons created
fd7a133
Include .NET project identification in telemetry (#32769)
With Windows support on the horizon this year, we'll want to know how much .NET dev happens in Zed, so we can know how to prioritize bug fixes or enhancements to the dev experience in this framework. Release Notes: - N/A
Joseph T. Lyons created
3810227
Misc nitpicks, changes too small / unrelated to be in other PRs (#32768)
Release Notes: - N/A
Michael Sloan created
02da466
terminal: Fix file paths links with URL escapes not being clickable (#31830)
For #31827
# URL Decoding Fix for Terminal File Path Clicking
## Discussion
This change does not allow for paths that literally have `%XX` inside of
them. If any such paths exist, they will fail to ctrl+click. A larger
change would be needed to handle that.
## Problem
In the terminal, you could ctrl+click file paths to open them in the
editor, but this didn't work when the paths contained URL-encoded
characters (percent-encoded sequences like `%CE%BB` for Greek letter λ).
### Example Issue
- This worked: `dashboardλ.mts:3:8`
- This didn't work: `dashboard%CE%BB.mts:3:8`
The URL-encoded form `%CE%BB` represents the Greek letter λ (lambda),
but the terminal wasn't decoding these sequences before trying to open
the files.
## Solution
Added URL decoding functionality to the terminal path detection system:
1. **Added urlencoding dependency** to `crates/terminal/Cargo.toml`
2. **Created decode_file_path function** in
`crates/terminal/src/terminal.rs` that:
- Attempts to decode URL-encoded paths using `urlencoding::decode()`
- Falls back to the original string if decoding fails
- Handles malformed encodings gracefully
3. **Applied decoding to PathLikeTarget creation** for both:
- Regular file paths detected by word regex
- File:// URLs that are treated as paths
## Code Changes
### New Function
```rust
/// Decodes URL-encoded file paths to handle cases where terminal output contains
/// percent-encoded characters (e.g., %CE%BB for λ).
/// Falls back to the original string if decoding fails.
fn decode_file_path(path: &str) -> String {
urlencoding::decode(path)
.map(|decoded| decoded.into_owned())
.unwrap_or_else(|_| path.to_string())
}
```
### Modified PathLikeTarget Creation
The function is now called when creating `PathLikeTarget` instances:
- For file:// URLs: `decode_file_path(path)`
- For regular paths: `decode_file_path(&maybe_url_or_path)`
## Testing
Added comprehensive test coverage in `test_decode_file_path()` that
verifies:
- Normal paths remain unchanged
- URL-encoded characters are properly decoded (λ, spaces, slashes)
- Paths with line numbers work correctly
- Invalid encodings fall back gracefully
- Mixed encoding scenarios work
## Impact
This fix enables ctrl+click functionality for file paths containing
non-ASCII characters that appear URL-encoded in terminal output, making
the feature work consistently with tools that output percent-encoded
file paths.
The change is backward compatible - all existing functionality continues
to work unchanged, and the fix only activates when URL-encoded sequences
are detected.
Release Notes:
* File paths printed in the terminal that have `%XX` escape sequences
will now be properly decoded so that ctrl+click will open them
Jason Garber created
c0717bc
Fix block cursor using placeholder text even when it's not displayed (#32766)
The condition for displaying the first char of the placeholder text in the block cursor was `cursor_column == 0`. This meant that it was displayed on the first column even when the placeholder text is not being displayed. Instead this now shows it only when `snapshot.is_empty()` - the same condition used to determine whether to show placeholder text. In the case of vim mode + agent panel message editor, this meant that if you did `shift-enter` to make a newline and then `escape` to enter normal mode, the block cursor would show `M` inside it as that's the first character of the placeholder text "Message the agent - @ to include context" Release Notes: - N/A
Michael Sloan created
f052a9e
Fixed typo in SQL language documentation (#32764)
Fixed typo in bullet 2 (line 17) referring to `shfmt` instead of `sql-formatter`
Ozan Ozbeker created
681c88d
Fix clicking in to agent message editor and tighten up vertical spacing (#32765)
* Adds `min_lines` to `EditorMode::AutoHeight` and use `min_lines: 4` in agent message editor. This makes it so that clicks in the blank space below the first line of the editor also focus it, instead of needing to click the very first line. * Removes the div wrapping the editor, as it was only there to set `min_h_16()`. This also tightens up the min space given to the editor - before it was not evenly dividing the number of lines. * Further tightens up vertical spacing by using `gap_1` instead of `gap_4` between editor and controls below At 4 line min height (after on the left, before on the right):  At 5 lines, one more than min height (after on the left, before on the right):  Release Notes: - Agent: Fixed clicking to focus the message editor to also work for clicks below the last line.
Michael Sloan created
a994666
Include full abs paths of worktrees in system prompt (#32725)
Some MCP servers expose tools that take absolute paths as arguments. To interact with these, the agent needs to know the absolute path to the project directories, not just their names. This PR changes the system prompt to include the full path to each worktree, and updates some tool descriptions to reflect this. Todo: * [x] Run evals, make sure assistant still understand how to specify paths for tools, now that we include abs paths in the system prompt. Release Notes: - Improved the agent's ability to use MPC tools that require absolute paths to files and directories in the project. --------- Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
Max Brunsfeld and Ben Brandt created
0433b88
debugger: Fix module list getting queried when not shown (#32761)
Closes #ISSUE Release Notes: - N/A
Piotr Osiewicz created
a5ceef3
Improve logic for finding VSCode / Cursor settings files (#32721)
* Fixes a bug where for Cursor, `config_dir()` (Zed's config dir) was being used instead of `dirs::config_dir` (`~/.config` / `$XDG_CONFIG_HOME`). * Adds support for windows, before it was using the user profile folder + `/.config` which is incorrect. * Now looks using a variety of product names - `["Code", "Code - OSS", "Code Dev", "Code - OSS Dev", "code-oss-dev", "VSCodium"]`. * Now shows settings path that was read before confirming import. Including this path in the confirmation modal is a bit ugly (making it link-styled and clickable would be nice), but I think it's better to include it now that it is selecting the first match of a list of candidate paths:  Release Notes: - Added more settings file locations to check for VS Code / Cursor settings import.
Michael Sloan created
afa7003
docs: Fix a typo in text threads docs (#32417)
Behrang Saeedzadeh created
5d293ae
edit_file: Let agent specify locations of edit chunks (#32628)
These changes help the agent edit files when `<old_text>` matches more than one location. First, the agent can specify an optional `<old_text line=XX>` parameter. When this is provided and multiple matches exist, we use this hint to identify the best match. Second, when there is ambiguity in matches, we now return the agent a more helpful message listing the line numbers of all possible matches. Together, these changes should reduce the number of misplaced edits and agent confusion. I have ensured the LLM Worker works with these prompt changes. Release Notes: - Agent: Improved locating edits
Oleksiy Syvokon created
e8d4958
debugger: Select first stack frame with valid path (#32724)
This PR addresses an issue where we could get a stack frame list and automatically select a stack frame that didn't have a valid path. Causing a failure on Zed's end to select/update the active debug line. The fix for this is selecting the first non-subtle stack frame that has the optional path parameter. We also made subtle stack frames move into their own collapsable list as well. Release Notes: - debugger: Fix edge case where hitting a breakpoint wouldn't take you to the active debug line Co-authored-by: Remco Smits <djsmits12@gmail.com>
Anthony Eid and Remco Smits created
baefec3
Move r-a status into the activity indicator (#32726)
Deals with the noisy pop-ups by moving r-a **status messages** into the activity indicator, where the rest of the LSP statuses is displayed. https://github.com/user-attachments/assets/e16fb374-d34d-4d03-b5f1-41f71f61c7c7 https://github.com/user-attachments/assets/67c611aa-8b73-4adb-a76d-b0c8ce3e2f94 Release Notes: - N/A *or* Added/Fixed/Improved ...
Kirill Bulatov created
1edaeeb
languages: Bump ESLint LSP server to version 3.0.10 (#32717)
Testing project: https://github.com/imumesh18/zed-testing
I have attached the logs from the eslint lsp server. Confirming that we
are indeed calling `textDocument/diagnostic` and we are receiving the
error response as well from lsp. Please check the attached log for it.
<details>
<summary>Server Log</summary>
```
// Send:
{"jsonrpc":"2.0","method":"workspace/didChangeConfiguration","params":{"settings":{"":{"validate":"on","rulesCustomizations":[],"run":"onType","nodePath":null,"workingDirectory":{"mode":"auto"},"workspaceFolder":{"uri":"/Users/umesh/code/zed-testing","name":"zed-testing"},"problems":{},"codeActionOnSave":{"enable":true},"codeAction":{"disableRuleComment":{"enable":true,"location":"separateLine"},"showDocumentation":{"enable":true}},"useFlatConfig":true}}}}
// Receive:
{"jsonrpc":"2.0","id":6,"method":"workspace/diagnostic/refresh"}
// Send:
{"jsonrpc":"2.0","id":6,"result":null}
// Send:
{"jsonrpc":"2.0","id":8,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx"},"range":{"start":{"line":9,"character":3},"end":{"line":9,"character":3}},"context":{"diagnostics":[],"only":["quickfix","source.fixAll.eslint"]}}}
// Receive:
{"jsonrpc":"2.0","id":7,"method":"workspace/configuration","params":{"items":[{"scopeUri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx","section":""}]}}
// Send:
{"jsonrpc":"2.0","id":7,"result":[{"validate":"on","rulesCustomizations":[],"run":"onType","nodePath":null,"workingDirectory":{"mode":"auto"},"workspaceFolder":{"uri":"/Users/umesh/code/zed-testing","name":"zed-testing"},"problems":{},"codeActionOnSave":{"enable":true},"codeAction":{"disableRuleComment":{"enable":true,"location":"separateLine"},"showDocumentation":{"enable":true}},"useFlatConfig":true}]}
// Receive:
{"jsonrpc":"2.0","id":8,"result":[]}
// Send:
{"jsonrpc":"2.0","id":9,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx"},"range":{"start":{"line":12,"character":20},"end":{"line":12,"character":20}},"context":{"diagnostics":[],"only":["quickfix","source.fixAll.eslint"]}}}
// Receive:
{"jsonrpc":"2.0","id":9,"result":[]}
// Send:
{"jsonrpc":"2.0","id":10,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx"},"range":{"start":{"line":11,"character":37},"end":{"line":11,"character":37}},"context":{"diagnostics":[],"only":["quickfix","source.fixAll.eslint"]}}}
// Receive:
{"jsonrpc":"2.0","id":10,"result":[]}
// Send:
{"jsonrpc":"2.0","method":"textDocument/didSave","params":{"textDocument":{"uri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx"}}}
// Send:
{"jsonrpc":"2.0","id":11,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx"},"range":{"start":{"line":3,"character":0},"end":{"line":14,"character":0}},"context":{"diagnostics":[{"range":{"start":{"line":4,"character":8},"end":{"line":4,"character":22}},"severity":1,"code":"@typescript-eslint/no-unused-vars","source":"eslint","message":"'unusedVariable' is assigned a value but never used."},{"range":{"start":{"line":4,"character":8},"end":{"line":4,"character":22}},"severity":4,"code":6133,"source":"ts","message":"'unusedVariable' is declared but its value is never read."},{"range":{"start":{"line":7,"character":6},"end":{"line":7,"character":14}},"severity":1,"code":2367,"source":"ts","message":"This comparison appears to be unintentional because the types 'number' and 'string' have no overlap."},{"range":{"start":{"line":13,"character":2},"end":{"line":13,"character":52}},"severity":1,"code":"no-var","source":"eslint","message":"Unexpected var, use let or const instead."},{"range":{"start":{"line":13,"character":6},"end":{"line":13,"character":22}},"severity":1,"code":"@typescript-eslint/no-unused-vars","source":"eslint","message":"'oldStyleVariable' is assigned a value but never used."},{"range":{"start":{"line":13,"character":6},"end":{"line":13,"character":22}},"severity":4,"code":6133,"source":"ts","message":"'oldStyleVariable' is declared but its value is never read."}],"only":["quickfix","source.fixAll.eslint"]}}}
// Receive:
{"jsonrpc":"2.0","id":11,"result":[{"title":"Disable @typescript-eslint/no-unused-vars for this line","command":{"title":"Disable @typescript-eslint/no-unused-vars for this line","command":"eslint.applyDisableLine","arguments":[{"uri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx","version":0,"ruleId":"@typescript-eslint/no-unused-vars"}]},"kind":"quickfix"},{"title":"Disable @typescript-eslint/no-unused-vars for the entire file","command":{"title":"Disable @typescript-eslint/no-unused-vars for the entire file","command":"eslint.applyDisableFile","arguments":[{"uri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx","version":0,"ruleId":"@typescript-eslint/no-unused-vars"}]},"kind":"quickfix"},{"title":"Show documentation for @typescript-eslint/no-unused-vars","command":{"title":"Show documentation for @typescript-eslint/no-unused-vars","command":"eslint.openRuleDoc","arguments":[{"uri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx","version":0,"ruleId":"@typescript-eslint/no-unused-vars"}]},"kind":"quickfix"},{"title":"Fix this no-var problem","command":{"title":"Fix this no-var problem","command":"eslint.applySingleFix","arguments":[{"uri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx","version":0,"ruleId":"no-var"}]},"kind":"quickfix","diagnostics":[{"message":"Unexpected var, use let or const instead.","severity":1,"source":"eslint","range":{"start":{"line":13,"character":2},"end":{"line":13,"character":52}},"code":"no-var","codeDescription":{"href":"https://eslint.org/docs/latest/rules/no-var"}}],"isPreferred":true},{"title":"Disable no-var for this line","command":{"title":"Disable no-var for this line","command":"eslint.applyDisableLine","arguments":[{"uri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx","version":0,"ruleId":"no-var"}]},"kind":"quickfix"},{"title":"Disable no-var for the entire file","command":{"title":"Disable no-var for the entire file","command":"eslint.applyDisableFile","arguments":[{"uri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx","version":0,"ruleId":"no-var"}]},"kind":"quickfix"},{"title":"Show documentation for no-var","command":{"title":"Show documentation for no-var","command":"eslint.openRuleDoc","arguments":[{"uri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx","version":0,"ruleId":"no-var"}]},"kind":"quickfix"},{"title":"Fix all auto-fixable problems","command":{"title":"Fix all auto-fixable problems","command":"eslint.applyAllFixes","arguments":[{"uri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx","version":0}]},"kind":"quickfix"}]}
// Send:
{"jsonrpc":"2.0","method":"textDocument/didChange","params":{"textDocument":{"uri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx","version":1},"contentChanges":[{"range":{"start":{"line":3,"character":2},"end":{"line":3,"character":2}},"text":"// "},{"range":{"start":{"line":4,"character":2},"end":{"line":4,"character":2}},"text":"// "},{"range":{"start":{"line":6,"character":2},"end":{"line":6,"character":2}},"text":"// "},{"range":{"start":{"line":7,"character":2},"end":{"line":7,"character":2}},"text":"// "},{"range":{"start":{"line":8,"character":2},"end":{"line":8,"character":2}},"text":"// "},{"range":{"start":{"line":9,"character":2},"end":{"line":9,"character":2}},"text":"// "},{"range":{"start":{"line":11,"character":2},"end":{"line":11,"character":2}},"text":"// "},{"range":{"start":{"line":12,"character":2},"end":{"line":12,"character":2}},"text":"// "},{"range":{"start":{"line":13,"character":2},"end":{"line":13,"character":2}},"text":"// "}]}}
// Send:
{"jsonrpc":"2.0","id":12,"method":"textDocument/diagnostic","params":{"textDocument":{"uri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx"},"identifier":"eslint","previousResultId":null}}
// Receive:
{"jsonrpc":"2.0","method":"eslint/status","params":{"uri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx","state":1,"validationTime":18}}
// Receive:
{"jsonrpc":"2.0","id":12,"result":{"kind":"full","items":[]}}
// Send:
{"jsonrpc":"2.0","id":13,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx"},"range":{"start":{"line":3,"character":0},"end":{"line":14,"character":0}},"context":{"diagnostics":[{"range":{"start":{"line":4,"character":11},"end":{"line":4,"character":25}},"severity":4,"code":6133,"source":"ts","message":"'unusedVariable' is declared but its value is never read."},{"range":{"start":{"line":7,"character":9},"end":{"line":7,"character":17}},"severity":1,"code":2367,"source":"ts","message":"This comparison appears to be unintentional because the types 'number' and 'string' have no overlap."},{"range":{"start":{"line":13,"character":9},"end":{"line":13,"character":25}},"severity":4,"code":6133,"source":"ts","message":"'oldStyleVariable' is declared but its value is never read."}],"only":["quickfix","source.fixAll.eslint"]}}}
// Receive:
{"jsonrpc":"2.0","id":13,"result":[]}
// Send:
{"jsonrpc":"2.0","method":"textDocument/didSave","params":{"textDocument":{"uri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx"}}}
// Send:
{"jsonrpc":"2.0","id":14,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx"},"range":{"start":{"line":13,"character":7},"end":{"line":13,"character":7}},"context":{"diagnostics":[],"only":["quickfix","source.fixAll.eslint"]}}}
// Receive:
{"jsonrpc":"2.0","id":14,"result":[]}
// Send:
{"jsonrpc":"2.0","id":15,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx"},"range":{"start":{"line":3,"character":0},"end":{"line":14,"character":0}},"context":{"diagnostics":[],"only":["quickfix","source.fixAll.eslint"]}}}
// Receive:
{"jsonrpc":"2.0","id":15,"result":[]}
// Send:
{"jsonrpc":"2.0","method":"textDocument/didChange","params":{"textDocument":{"uri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx","version":2},"contentChanges":[{"range":{"start":{"line":3,"character":2},"end":{"line":3,"character":5}},"text":""},{"range":{"start":{"line":4,"character":2},"end":{"line":4,"character":5}},"text":""},{"range":{"start":{"line":6,"character":2},"end":{"line":6,"character":5}},"text":""},{"range":{"start":{"line":7,"character":2},"end":{"line":7,"character":5}},"text":""},{"range":{"start":{"line":8,"character":2},"end":{"line":8,"character":5}},"text":""},{"range":{"start":{"line":9,"character":2},"end":{"line":9,"character":5}},"text":""},{"range":{"start":{"line":11,"character":2},"end":{"line":11,"character":5}},"text":""},{"range":{"start":{"line":12,"character":2},"end":{"line":12,"character":5}},"text":""},{"range":{"start":{"line":13,"character":2},"end":{"line":13,"character":5}},"text":""}]}}
// Send:
{"jsonrpc":"2.0","id":16,"method":"textDocument/diagnostic","params":{"textDocument":{"uri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx"},"identifier":"eslint","previousResultId":null}}
// Receive:
{"jsonrpc":"2.0","method":"eslint/status","params":{"uri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx","state":1,"validationTime":15}}
// Receive:
{"jsonrpc":"2.0","id":16,"result":{"kind":"full","items":[{"message":"'unusedVariable' is assigned a value but never used.","severity":1,"source":"eslint","range":{"start":{"line":4,"character":8},"end":{"line":4,"character":22}},"code":"@typescript-eslint/no-unused-vars","codeDescription":{"href":"https://typescript-eslint.io/rules/no-unused-vars"}},{"message":"Unexpected var, use let or const instead.","severity":1,"source":"eslint","range":{"start":{"line":13,"character":2},"end":{"line":13,"character":52}},"code":"no-var","codeDescription":{"href":"https://eslint.org/docs/latest/rules/no-var"}},{"message":"'oldStyleVariable' is assigned a value but never used.","severity":1,"source":"eslint","range":{"start":{"line":13,"character":6},"end":{"line":13,"character":22}},"code":"@typescript-eslint/no-unused-vars","codeDescription":{"href":"https://typescript-eslint.io/rules/no-unused-vars"}}]}}
// Send:
{"jsonrpc":"2.0","id":17,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx"},"range":{"start":{"line":3,"character":0},"end":{"line":14,"character":0}},"context":{"diagnostics":[{"range":{"start":{"line":4,"character":8},"end":{"line":4,"character":22}},"severity":1,"code":"@typescript-eslint/no-unused-vars","source":"eslint","message":"'unusedVariable' is assigned a value but never used."},{"range":{"start":{"line":13,"character":2},"end":{"line":13,"character":52}},"severity":1,"code":"no-var","source":"eslint","message":"Unexpected var, use let or const instead."},{"range":{"start":{"line":13,"character":6},"end":{"line":13,"character":22}},"severity":1,"code":"@typescript-eslint/no-unused-vars","source":"eslint","message":"'oldStyleVariable' is assigned a value but never used."}],"only":["quickfix","source.fixAll.eslint"]}}}
// Receive:
{"jsonrpc":"2.0","id":17,"result":[{"title":"Disable @typescript-eslint/no-unused-vars for this line","command":{"title":"Disable @typescript-eslint/no-unused-vars for this line","command":"eslint.applyDisableLine","arguments":[{"uri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx","version":2,"ruleId":"@typescript-eslint/no-unused-vars"}]},"kind":"quickfix"},{"title":"Disable @typescript-eslint/no-unused-vars for the entire file","command":{"title":"Disable @typescript-eslint/no-unused-vars for the entire file","command":"eslint.applyDisableFile","arguments":[{"uri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx","version":2,"ruleId":"@typescript-eslint/no-unused-vars"}]},"kind":"quickfix"},{"title":"Show documentation for @typescript-eslint/no-unused-vars","command":{"title":"Show documentation for @typescript-eslint/no-unused-vars","command":"eslint.openRuleDoc","arguments":[{"uri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx","version":2,"ruleId":"@typescript-eslint/no-unused-vars"}]},"kind":"quickfix"},{"title":"Fix this no-var problem","command":{"title":"Fix this no-var problem","command":"eslint.applySingleFix","arguments":[{"uri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx","version":2,"ruleId":"no-var"}]},"kind":"quickfix","diagnostics":[{"message":"Unexpected var, use let or const instead.","severity":1,"source":"eslint","range":{"start":{"line":13,"character":2},"end":{"line":13,"character":52}},"code":"no-var","codeDescription":{"href":"https://eslint.org/docs/latest/rules/no-var"}}],"isPreferred":true},{"title":"Disable no-var for this line","command":{"title":"Disable no-var for this line","command":"eslint.applyDisableLine","arguments":[{"uri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx","version":2,"ruleId":"no-var"}]},"kind":"quickfix"},{"title":"Disable no-var for the entire file","command":{"title":"Disable no-var for the entire file","command":"eslint.applyDisableFile","arguments":[{"uri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx","version":2,"ruleId":"no-var"}]},"kind":"quickfix"},{"title":"Show documentation for no-var","command":{"title":"Show documentation for no-var","command":"eslint.openRuleDoc","arguments":[{"uri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx","version":2,"ruleId":"no-var"}]},"kind":"quickfix"},{"title":"Fix all auto-fixable problems","command":{"title":"Fix all auto-fixable problems","command":"eslint.applyAllFixes","arguments":[{"uri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx","version":2}]},"kind":"quickfix"}]}
// Send:
{"jsonrpc":"2.0","method":"textDocument/didSave","params":{"textDocument":{"uri":"file:///Users/umesh/code/zed-testing/src/app/page.tsx"}}}
```
</details>
Release Notes:
- Bump ESLint LSP server to version 3.0.10
Umesh Yadav created