128779f
docs: Improve Lua language documentation (#28662)
Click to expand commit body
Release Notes: - N/A
Peter Tripp created
128779f
docs: Improve Lua language documentation (#28662)
Release Notes: - N/A
Peter Tripp created
b25c333
Detect decorated pytest methods as runnable (#28652)
Closes #28096 Release Notes: - Fixed decorated pytest methods not being picked up as runnable
hrou0003 created
77544f4
snippets: Fix plaintext snippets not working (#28655)
This PR fixes a minor regression introduced in #27718, where snippets stopped working when the language was set to plaintext because `languages_at` doesn't include plaintext, while `language_at` does. Release Notes: - Fixed plaintext snippets not working
loczek created
b864a9b
hover_popover: Fix markdown selection for info and diagnostic popovers (#28642)
Closes #28638 This PR fixes markdown selection for the info and diagnostic popovers. In the editor popover, after the changes in https://github.com/zed-industries/zed/pull/28255, the markdown selection state updates correctly, but it no longer triggers the editor element to repaint like it used to. This is fixed by adding a subscription to listen for markdown entity changes and triggering a repaint for the editor. I assume markdown selection works elsewhere because: 1. Either the `Markdown` entity is directly part of a struct that implements the `Render` trait, causing it to repaint whenever the markdown state changes. See [here](https://github.com/zed-industries/zed/blob/d1ffda9bfeccfdf9bea3f76251350bf9cf7f6e1b/crates/ui_prompt/src/ui_prompt.rs#L65). 2. OR it's wrapped around component like Popover which implements `RenderOnce` trait. See [here](https://github.com/zed-industries/zed/blob/d1ffda9bfeccfdf9bea3f76251350bf9cf7f6e1b/crates/editor/src/code_context_menus.rs#L645). Whereas info and diagnostic popovers does not do both. I do think we can change it to use `Popover` component, but for now this works as quick fix. Extras: - Remove unnecessary struct cloning. - Refactor rendering logic to use `when_some`. Release Notes: - Fixed issue where selection wasn't working for info and diagnostic popovers.
Smit Barmase created
e4844b2
Keep .vscode folder included during initialization even if it's in .gitignore (#28631)
This fixes an issue where tasks in `.vscode/tasks.json` weren't being loaded at startup of a project Closes #28494 Release Notes: - Tasks are now loaded from local `.vscode/tasks.json` files even if they are `.gitignore`d
hrou0003 created
d1ffda9
agent: Display keybindings for "Reject All" and "Keep All" (#28620)
<img src="https://github.com/user-attachments/assets/2cdc5121-dd7b-4f46-8d43-88d5152c77ea" width="550" /> Release Notes: - N/A
Danilo Leal created
8ffa584
agent: Increase message editor height (#28618)
It was too tiny, felt like we could use more breathing room. Release Notes: - N/A
Danilo Leal created
fb78cbb
agent: Adjust MCP section in the settings view (#28615)
Mentioning "MCP" more prominently, adding tool descriptions in the icon button tooltip, and other UI adjustments. <img src="https://github.com/user-attachments/assets/e021b3be-99b8-454c-b5fd-0221a7947a35" width="600" /> Release Notes: - N/A
Danilo Leal created
17719f9
agent: Add "Install MCPs" to panel menu (#28616)
Also took the opportunity to rename the "Continue in New Thread" item to a potentially clearer name. <img src="https://github.com/user-attachments/assets/024de07d-f215-4c41-8fbe-652a216b61d9" width="300"/> Release Notes: - N/A
Danilo Leal created
055df30
Directly parse .git when it's a file instead of using libgit2 (#27885)
Avoids building a whole git2 repository object at the worktree layer just to watch some additional paths. - [x] Tidy up names of the various paths - [x] Tests for worktrees and submodules Release Notes: - N/A
Cole Miller created
429d458
agent: Cleanup `message_editor` (#28614)
This PR splits up the rendering of the message editor into multiple functions. Previously we had a single `h_flex()...` expression which spanned across 550 lines, `cargo fmt` stopped working. Release Notes: - N/A
Bennet Bo Fenner created
62ebae9
agent: Only show recommended models that are actually configured (#28613)
Release Notes: - N/A
Bennet Bo Fenner created
0036a33
agent: Remove unused code (#28552)
This code was used before we had a proper completion menu for at-mentions Release Notes: - N/A
Bennet Bo Fenner created
b22faf9
agent: Refine language model selector (#28597)
Release Notes: - agent: Show recommended models in the agent model selector and display the provider in the model selector's trigger. --------- Co-authored-by: Danilo Leal <daniloleal09@gmail.com> Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com>
Bennet Bo Fenner , Danilo Leal , and Danilo Leal created
dafe994
agent: Register tracked buffers with language servers (#28610)
Release Notes: - agent: Start language servers when accessing files via tools Co-authored-by: Michael <michael@zed.dev>
Agus Zubiaga and Michael created
5994ac5
Use NoopTextSystem during tests (#28607)
This should allow tests to be more similar across platforms. Release Notes: - N/A
Conrad Irwin created
97a9a5d
snippets: Fix snippets for PHP and ERB languages (#27718)
Closes #21541
Closes #22726
This should fix snippets in languages, like PHP, that are based on the
HTML syntax layer. To be honest, I don't totally get where HTML comes
into it, but the issues outlined in #21541 and #22726 both boil down to
"Zed only shows me HTML snippets in PHP/ERB files; I expected to see
PHP/ERB snippets". This solution is based on the comments between
@mrnugget and @osiewicz in #22726: resolve/combine snippets for all
language layers at the given position, whereas current behavior is to
resolve snippets only for the `.last()` language layer at the given
position.
- add `Buffer:languages_at()` (note the plural)
- update `snippet_completions()` in `editor.rs` to loop over each
language, gathering snippets as it goes
- the primary logic for resolving snippets within a single language has
not changed
### Verifying this change
I couldn't find tests related to snippet and currently active languages
(CI may show them to me 😆 ) but I can add some if desired and w/ perhaps
a little coaching or prompting about another test to look to for
inspiration. I have confirmed that this works for PHP, but I have not
checked ERB because I'm not familiar with it or set up for it.
To check this manually:
1. install the PHP extension
2. install at least 1 snippet for each of html, php and phpdoc. If you
don't have any, these should work:
```sh
# BEWARE these will clobber existing snippets!
echo '{"dddd":{"body":"hello from phpdoc"}}' > ~/.config/zed/snippets/phpdoc.json
echo '{"pppp":{"body":"hello from PHP"}}' > ~/.config/zed/snippets/php.json
echo '{"hhhh":{"body":"hello from HTML"}}' > ~/.config/zed/snippets/html.json
```
3. open any PHP file. If you don't have one, here's one that should
work:
```php
<?php
/**
*
*/
function function_name()
{
}
```
4. Place your cursor in a PHPdoc comment (eg after the `/**` on line 3)
- you should be able to use the `dddd`, `pppp` and `hhhh` snippets; on
`main`, only the `dddd` snippet works here
5. Move your cursor to a non-comment PHP area (eg after the `{` on line
7)
- you should be able to use the `pppp` and `hhhh` snippets, but not
`dddd`; on `main`, only `hhhh` works here
### Performance
This adds 2 separate (not nested) loops to `snippet_completions()`, each
of which will iterate over the active language scopes at the given
location. I have not looked into the specifics of how many layers most
languages have, but I suspect that *most* users will see identical
performance as before because there will only be 1 scope active most of
the time.
In some cases, though (eg PHP, ERB, maybe template strings in JS), the
editor will be looping over more layers, possibly many in some deeply
injected/embedded cases (I'm thinking of a regex template string in a JS
heredoc string in a PHP script in an HTML file). I don't expect this to
be an issue – nor has it been in my usage and testing – but performance
of snippets could be affected in pathological cases.
### Alternate solutions
Instead of resolving snippets for *all* layers, we could just change how
we pick which language to resolve. Instead of always using `.last()`,
perhaps we could do something more clever. This feels like it could be
tricky and potentially error prone, though.
Release Notes:
- Snippets are now resolved for all languages active at the cursor
location.
- Fixed snippets in PHP, ERB and other languages whose syntax layers are
based on HTML
claytonrcarter created
730f2e7
vim: Add highlighting to set commands (#28600)
|Before|After| |--|--| ||| Release Notes: - N/A
5brian created
141ad72
extension: Use `heck` instead of `convert_case` for snake_case check (#28608)
This PR updates the snake_case check for grammar names to use `heck` instead of `convert_case`. `heck` correctly handles values like `d2`. Fixes https://github.com/zed-industries/zed/issues/28583. Release Notes: - Updated snake_case check for grammar names in extensions.
Marshall Bowers created
a5fe6d1
History manager (#26369)
While working on implementing `add_recent_documents` for Windows, I found that the process is significantly more complex compared to macOS. On macOS, simply registering the `add_recent_documents` function is enough, as the system handles everything automatically. On Windows, however, there are two cases to consider: - **Files opened by the app**: These appear in the "Recent" section (as shown in the screenshot, "test.txt") and are managed automatically by Windows (by setting windows registry), similar to macOS.  - **Folders opened by the app**: This is more complicated because Windows does not handle it automatically, requiring the application to track opened folders manually. To address this, this PR introduces a `History Manager` along with `HistoryManagerEvent::Update` and `HistoryManagerEvent::Delete` events to simplify the process of managing recently opened folders. https://github.com/user-attachments/assets/a2581c15-7653-4faf-96b0-7c48ab1dcc8d Release Notes: - N/A --------- Co-authored-by: Mikayla Maki <mikayla@zed.dev>
张小白 and Mikayla Maki created
5734ffb
Update haskell extension docs (#28603)
In https://github.com/zed-extensions/haskell/pull/2 the HLS settings were updated to respect binary path/argument overrides. This PR just updates the docs to demonstrate this. Release Notes: - N/A --------- Co-authored-by: Peter Tripp <peter@zed.dev>
Sam Tay and Peter Tripp created
932a7c6
keymap: Document editor::Select* actions (cmd-d, etc) (#28362)
This is a no-op change which just adds comments. Release Notes: - N/A
Peter Tripp created
6a60bb1
ci: No draft releases when using 'run-bundling' (#28596)
Improve the logic in around release artifact bundling. - Suppress a harmless "error: no such command: `about`" from script/generate-licenes output - Remove checks for main branch (which will never be true) - Only run `Upload Artifacts to release` when not using `run-bundling`. Prevents the creation of draft releases with just linux remote server binaries) Release Notes: - N/A
Peter Tripp created
5909d12
Fix a panic in the git store (#28590)
Closes #ISSUE Release Notes: - Fixed a panic that could occur when git statuses were updated.
Cole Miller created
78662f8
debugger: UI refinements (#28589)
- Name of source is only used as a fallback if there's no path - Make the frames a bit more compact.  Release Notes: - N/A
Piotr Osiewicz created
c2e3134
Try to weak-link ScreenCaptureKit always (#28585)
Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ...
Conrad Irwin created
66b3e03
Fix a bug causing stale optimistic state in the git panel (#28588)
Release Notes: - Fixed a bug that caused the staged status of files in the git panel to be out of date in some cases.
Cole Miller created
7caa2c2
debugger: Prompt user when they try to close a running debug session (#28584)
Closes #ISSUE Release Notes: - N/A
Piotr Osiewicz created
08ce230
vim: Add some forced motion support (#27991)
Closes https://github.com/zed-industries/zed/issues/20971 Added `v` input to yank and delete to override default motion. The global vim state tracking if the forced motion flag was passed handled the same way that the count is. [The main chunk of code maps the motion kind from the default to the overridden kind](https://github.com/zed-industries/zed/pull/27991/files#diff-2dca6b7d1673c912d14e4edc74e415abbe3a4e6d6b37e0e2006d30828bf4bb9cR1249-R1254). To handle the case of deleting a single character (dv0) at the start of a row I had to modify the control flow [here](https://github.com/zed-industries/zed/pull/27991/files#diff-2dca6b7d1673c912d14e4edc74e415abbe3a4e6d6b37e0e2006d30828bf4bb9cR1240-R1244). Then to handle an exclusive delete till the end of the row (dv$) I [saturated the endpoint with a left bias](https://github.com/zed-industries/zed/pull/27991/files#diff-2dca6b7d1673c912d14e4edc74e415abbe3a4e6d6b37e0e2006d30828bf4bb9cR1281-R1286). Test case: dv0 https://github.com/user-attachments/assets/613cf9fb-9732-425c-9179-025f3e107584 Test case: yvjp https://github.com/user-attachments/assets/550b7c77-1eb8-41c3-894b-117eb50b7a5d Release Notes: - Added some forced motion support for delete and yank
Peter Finn created
1df01ea
workspace: Implement Extended Terminal Option (#26211)
Closes #10211 Closes #7575 Screenshot of feature:  Screenshot of proposed menu:  Screenshot of proposed menu closed:  Release Notes: - Configuration of bottom_dock_layout in settings.json - Layout Mode button in Title Bar - 4 different layout modes for the bottom dock: contained (default), full (extends below both docks), left-aligned, right-aligned (extends only below the respective dock) --------- Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
Thomas Jensen and Mikayla Maki created
2f5c662
Refine component preview & add serialization (#28545)
https://github.com/user-attachments/assets/0be12a9a-f6ce-4eca-90de-6ef01eb41ff9 - Allows the active ComponentPreview page to be restored via serialization - Allows filtering components using a filter input - Updates component example rendering - Updates some components Release Notes: - N/A --------- Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Nate Butler and Max Brunsfeld created
a03fb37
docs: Fix name for `zed: open project tasks` command (#28578)
There's no `zed: open local tasks`, perhaps it was called that previously. Release Notes: - N/A
Andy Waite created
dd7bc5f
vim: Add delete keymapping to vim.json (#28551)
Closes #16511 Added test for delete in normal mode and keymapping in vim.json Release Notes: - Added delete mapping in normal mode
Peter Finn created
c7d3fbc
debugger: Fix Debugpy spawning & session removal (#28577)
Closes #ISSUE Release Notes: - N/A
Piotr Osiewicz created
1164829
html: Bump to v0.2.1 (#28575)
This PR bumps the HTML extension to v0.2.1. Changes: - https://github.com/zed-industries/zed/pull/28542 Release Notes: - N/A
Marshall Bowers created
e09eeb7
debugger: Style debugger tabs (#28572)
 Release Notes: - N/A
Piotr Osiewicz created
cdcad70
task: Poll Rust subcommands on background thread (#28553)
Closes #ISSUE Release Notes: - Improved app responsiveness when spawning Rust tasks.
Piotr Osiewicz created
bd4c9b4
editor: Fix signature help popover goes off screen (#28566)
Closes #27731 Uses similar logic as other popovers for layouting signature help popover. Release Notes: - Fixed case where signature help popover goes off the screen.
Smit Barmase created
d4736a5
debugger: Fix bug where deleting a breakpoint could delete multiple breakpoints (#28562)
This PR fixes a bug when deleting a breakpoint with a (log, conditional, hit condition) message by removing the message. All breakpoints that contain that type of message were also deleted. Release Notes: - N/A
Anthony Eid created
353ae23
Fix staging/unstaging hunks remotely (#28560)
Fixes a regression introduced in https://github.com/zed-industries/zed/pull/28377 where the pending hunks didn't get cleared properly when staging/unstaging hunks remotely. I didn't add new tests, because the fix was to simplify some code. Release Notes: - N/A
Max Brunsfeld created
ad39d32
Add new actions `editor::FindNextMatch` and `editor::FindPreviousMatch` (#28559)
Closes #7903 Release Notes: - Add new actions `editor::FindNextMatch` and `editor::FindPreviousMatch` that are similar to `editor::SelectNext` and `editor::SelectPrevious` with `"replace_newest": true`, but jumps to the first or last selection when there are multiple selections.
João Marcos created
c35238b
debugger: Add support for setting multiple breakpoints via actions (#28437)
Allow setting multiple breakpoints with multi cursors Release Notes: - N/A --------- Co-authored-by: Anthony Eid <hello@anthonyeid.me> Co-authored-by: Remco Smits <djsmits12@gmail.com> Co-authored-by: Anthony <anthony@zed.dev>
Piotr Osiewicz , Anthony Eid , Remco Smits , and Anthony created
5757e35
agent: Fix bug where wrong crease for @mention would be displayed (#28558)
Release Notes: - agent: Fix a bug where an inserted @mention did not show up as the one that was selected
Bennet Bo Fenner created
c124838
agent: Fix "new text thread" action name (#28555)
Moving from "NewPromptEditor" to "NewTextThread". We recently re-named that and this was missing. Release Notes: - N/A
Danilo Leal created
5ebac7e
agent: Clean up thread auto-capturing (#28550)
This PR cleans up the thread auto-capturing added in #28271. - Removed usage of `unsafe` - Fixed feature flag check - We were incorrectly not respecting the feature flag in release builds - Made sure the telemetry event was being run on the background executor Release Notes: - N/A
Marshall Bowers created
c143846
Revert buggy pr (#28554)
Earlier, I merged #24723 Before merging it, I made a change that was incorrect and fast followed with a fix: #28548 Following that fix, @bennetbo discovered that the modals where no longer highlighting correctly, particularly the outline modal. So I'm going to revert it all. Release Notes: - N/A
Mikayla Maki created
71c2a11
agent: Make the message editor expandable (#28420)
This PR allows expanding the message editor textarea to fit almost the total height of the Agent Panel. Stylistically, I'm also changing the font family we use in the textarea to use the buffer font; want to experiment with this for a bit. Release Notes: - agent: The Agent Panel textarea can now be expanded to fill almost the total height of the panel. --------- Co-authored-by: Bennet Bo Fenner <bennet@zed.dev> Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Danilo Leal , Bennet Bo Fenner , and Bennet Bo Fenner created
2440faf
Actually run the eval and fix a hang when retrieving outline (#28547)
Release Notes: - Fixed a regression that caused the agent to hang sometimes. --------- Co-authored-by: Thomas Mickley-Doyle <tmickleydoyle@gmail.com> Co-authored-by: Nathan Sobo <nathan@zed.dev> Co-authored-by: Michael Sloan <mgsloan@gmail.com>
Antonio Scandurra , Thomas Mickley-Doyle , Nathan Sobo , and Michael Sloan created
c0262cf
Fix bug where all editor completions would be black (#28548)
Release Notes: - N/A
Mikayla Maki created
fd256d1
gpui: Keep drag cursor style when dragging (#24797)
Release Notes: - Improve to keep drag cursor style on dragging resize handles. --- ### Before https://github.com/user-attachments/assets/d4100d01-ac02-42b8-b923-9f2b4633c458 ### After https://github.com/user-attachments/assets/b5a450cd-c6de-4b39-a79c-2d73fcbad209 With example: ``` cargo run -p gpui --example drag_drop ``` https://github.com/user-attachments/assets/4cba1966-1578-40ce-a435-64ec11bcace5
Jason Lee created