b38e9e4
Fix hover popover font fallbacks (#21945)
Click to expand commit body
Closes #21848 Release Notes: - Fixed Hover Popover Font Callbacks
0x2CA created
b38e9e4
Fix hover popover font fallbacks (#21945)
Closes #21848 Release Notes: - Fixed Hover Popover Font Callbacks
0x2CA created
e0cbbf8
Fix opening repos when `.git` is a soft link (#21153)
Closes #ISSUE ## background If a project is big, some times it will be splited into many small git repos. [google repo](https://gerrit.googlesource.com/git-repo/) is a tool to manage a group of git repos. But, any small git repo manged by this tool, have a difference with normal git repo. That is , the path `.git` in the root of the git repo, is not a normal directory, but a soft link to real git bare dir. ### zed can not recognize the `git-repo` managed git repos you can use the procedure to genreate this problem ```bash # tested on linux mkdir -p bad_git_repo_project cd bad_git_repo_project git init echo "hello" > hi.txt git add . git commit -m "init commit" echo "hello world" >> hi.txt # modify the repo mv .git ../.real_git_repo ln -sf ../.real_git_repo .git ``` with vscode, after opening this project, git works well. but for Zed, git not work(not git status, no git blame) ## how to fix libgit2 can recognize git repo from the root of the project(dir that have `.git`). so, we can recognize the git project by opening from the project root dir, but not the `.git` dir This fix also works with normal git project. ### before fix  ### after fix  Release Notes: - Fix opening repos when .git is a soft link
Wang Can created
4eaa1c2
Only debounce the cursor position in multibuffer excerpts (#21946)
Follow up to: https://github.com/zed-industries/zed/pull/20211 Release Notes: - Improved the performance of the cursor position indicator in single buffers
Mikayla Maki created
b3de19a
editor: Add duplicate selection command (#21154)
Closes #4890 Release Notes: - Add duplicate selection command for editor
CharlesChen0823 created
241b14e
project_panel: Create items when the editor is dismissed via the mouse (#21045)
Closes #5036 Release Notes: - Created project panel items when the editor is dismissed via the mouse
CharlesChen0823 created
72d8f2e
editor: Add "selection" key context (#21927)
This change allows defining keybindings that are active when there is a
text selection.
This is especially useful, as an example, for Emacs-like keybindings
where movement keybindings expand the selection.
Here is a snippet from my keymap.json that implements Emacs movements
when selection is active:
```json
{
"context": "Editor && selection",
"bindings": {
"ctrl-f": "editor::SelectRight",
"ctrl-b": "editor::SelectLeft",
"ctrl-n": "editor::SelectDown",
"ctrl-p": "editor::SelectUp",
"ctrl-a": "editor::SelectToBeginningOfLine",
"ctrl-e": "editor::SelectToEndOfLine",
"alt-f": "editor::SelectToNextWordEnd",
"alt-b": "editor::SelectToPreviousWordStart",
"alt-<": "editor::SelectToBeginning",
"alt->": "editor::SelectToEnd"
}
}
```
What do you think about inclusion of this feature? Should I add more granular `selection=single` `selection=multi`?
Release Notes:
- Added "selection" context for keybindings that are active when there is a text selection.
Ozan created
3f6ac53
Update GitHub bug issue template to refer to bugs instead of features (#21727)
Release Notes: - N/A
Dan Dascalescu created
74d7ce2
elixir: Improve ElixirLS LSP autocomplete to show labelDetails information (#21666)
Closes https://github.com/zed-industries/zed/issues/19688 Release Notes: - Improved ElixirLS LSP autocomplete to show module, function and struct field details   
João Otávio Biondo created
6a37307
Add .prettierignore support (#21297)
Closes #11115 **Context**: Consider a monorepo setup like this: the root has Prettier installed, but the individual monorepos do not. In this case, only one Prettier instance is used, with its installation located at the root. The monorepos also use this same instance for formatting. However, monorepo can have its own `.prettierignore` file, which will take precedence over the `.prettierignore` file at the root level (if one exists) for files in that monorepo. <img src="https://github.com/user-attachments/assets/742f16ac-11ad-4d2f-a5a2-696e47a617b9" alt="prettier" width="200px" /> **Implementation**: From the context above, we should keep ignore dir decoupled from the Prettier instance. This means that even if the project has only one Prettier installation (and thus a single Prettier instance), there can still be multiple `.prettierignore` in play. This approach also allows us to respect `.prettierignore` even when the project does not have Prettier installed locally and instead relies on the editor’s Prettier instance. **Tests**: 1. No Prettier in project, using editor Prettier: Ensures `.prettierignore` is respected even without a local Prettier installation. 2. Monorepo with root Prettier and child `.prettierignore`: Confirms that the child project’s ignore file is correctly used. 3. Monorepo with root and child `.prettierignore` files: Verifies the child ignore file takes precedence over the root’s. Release Notes: - Added `.prettierignore` support to the Prettier integration.
tims created
8dd1c23
editor: Add debounce setting for triggering DocumentHighlight (#21702)
Closes https://github.com/zed-industries/zed/issues/6843 I don't see where is the logic to remove old document highlight when new one applies, ideally, old highlight should be cleared as soon as possible when cursor moves if the new position does not sits in old highlight ranges to avoid linger highlights described in https://github.com/zed-industries/zed/issues/13682#issuecomment-2498368680. So current solution is still not ideal, because only when lsp responses highlight ranges (even is a empty set) can we clear the old one. Release Notes: - Added a setting `lsp_highlight_debounce` to configure delay for querying highlights from language server. --------- Co-authored-by: mgsloan@gmail.com <michael@zed.dev>
xzbdmw and mgsloan@gmail.com created
5787471
Add metal icon (#21720)
Release Notes: - Added file icon for metal --------- Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Evren Sen and Danilo Leal created
bab6a79
Fix audio tooltip logic (#21941)
Earlier work by @osiewicz in #21931 aims to fix audio control tooltips in the title bar to close #21929. However, its logic is not quite correct, and does not match the toggle behavior for the controls. This PR corrects the logic to match the toggle behavior for the controls. It also updates capitalization and wording for consistency. Release Notes: - N/A
Aaron Feickert created
9a806f9
Improve diff syntax highlighting queries (#21740)
Brings over the improvements made for the same grammar: https://github.com/nvim-treesitter/nvim-treesitter/pull/6619. Related to #19986 but not really- the problem brought up there is an issue of themes not supporting the `diff.plus` and `diff.minus` captures (already used before this PR). <details><summary>Theme previews (before/after)</summary> | Before | After | | --- | --- | |  |  | | Before | After | | --- | --- | |  |  | | Before | After | | --- | --- | |  |  | | Before | After | | --- | --- | |  |  | | Before | After | | --- | --- | |  |  | </details> Release Notes: - Improved diff syntax highlighting
uncenter created
e778635
search: Add ToggleRegex for buffer search (#21799)
Closes #21790 IMO, this is lost Release Notes: - Add ToggleRegex for buffer search
CharlesChen0823 created
5de0bcc
gpui: Fix for setting window titles on Windows (#21907)
Windows requires `WM_NCCREATE` to be processed by default procedure to set window title properly. Release Notes: - N/A
雨 created
9143fd2
language_model_selector: Don't recreate the `Picker` view each render (#21939)
While working on Assistant2, I noticed that the `LanguageModelSelector` was recreating its `Picker` view on every single render. This PR makes it so we create the view once and hold onto it in the parent view. Release Notes: - N/A
Marshall Bowers created
d7eba54
Add version control file icon for gitcommit files (#21935)
Closes: https://github.com/zed-industries/zed/issues/21734 <img width="976" alt="SCR-20241212-nlci" src="https://github.com/user-attachments/assets/d567e2c8-d803-4148-b159-ae781eb59b50" /> I added the same file extensions that are used in the `Git Firefly` extension. https://github.com/d1y/git_firefly/blob/b521b7132491808e3f6f0416387a9a7b5eca464a/languages/gitcommit/config.toml#L5-L9 Release Notes: - Added version control file icon for gitcommit files.
Joseph T. Lyons created
52c0d71
assistant2: Add initial support for attaching file context (#21934)
This PR adds the initial support for attaching files as context to a thread in Assistant2. Release Notes: - N/A
Marshall Bowers created
111e844
title_bar: Adjust tooltip for mute/deafen buttons (#21931)
Closes #21929 Release Notes: - N/A
Piotr Osiewicz created
0eb9922
Set User Agent for Jupyter websocket connections (#21910)
Some VPN configurations require that websockets present a user agent. This adds it in directly for the repl usage. I wish there was a way to reuse the user agent from the `cx.http_client`, but I'm not seeing a simple way to do that for the moment since it's not on the `HttpClient` trait. No release notes since this feature hasn't been announced/exposed. Release Notes: - N/A
Kyle Kelley created
573e096
More Git panel refinements (#21928)
- Add and wire through git method stubs - Organize render methods - Track modifier changes - Swap commit buttons when `option`/`alt` is held - More TODOs Release Notes: - N/A
Nate Butler created
ee6f834
Fuse LLM completion stream to avoid a panic (#21914)
`LanguageModel::stream_completion_text` can poll the `stream_completion` stream (ultimately a `futures::Unfold`) after it's returned `Ready(None)`, which leads to a panic; avoid this by fusing the stream. Release Notes: - Fixed a panic when streaming language model completions
Cole Miller created
b4c8e04
Clear completion if model doesn't produce any edit (#21925)
Release Notes: - N/A
Antonio Scandurra created
bcf8a2f
Inline terminal assistant v2 (#21888)
Follow-up to https://github.com/zed-industries/zed/pull/21828 to add it to the terminal as well. https://github.com/user-attachments/assets/505d1443-4081-4dd8-9725-17d85532f52d As with the previous PR, there's plenty of code duplication here; the plan is to do more code sharing in separate PRs! Release Notes: - N/A
Richard Feldman created
77d0662
lsp: Fill in a bunch of missing capabilities (#21924)
Also state explicitly that we do support UTF-16 encoding and nothing else. See also #19788 Release Notes: - N/A
Piotr Osiewicz created
5d0e75d
Improve emacs keybind with better home/end behavior (#21923)
Improve behavior of ctrl-a/ctrl-e home/end in emacs keybind. Follow up to #21921 to add those to Linux emacs keymap too. Release Notes: - emacs: Improved `ctrl-a` / `ctrl-e` / `home` / `end` behavior - emacs: Added for `ctrl-s` / `ctrl-r` / `ctrl-g` for navigating buffer search results
Peter Tripp created
181af78
Fix docstring for CallSettingsContent.share_on_join (#21884)
Aaron Feickert created
ad4c4af
Always let two completions race with each other (#21919)
When a user types, chances are the model will anticipate what they are about to do. Previously, we would continuously cancel the pending completion until the user stopped typing. With this commit, we allow at most two completions to race with each other (the first and the last one): - If the completion that was requested first completes first, we will show it (assuming we can interpolate it) but avoid canceling the last one. - When the completion that was requested last completes, we will cancel the first one if it's pending. In both cases, if a completion is already on-screen we have a special case for when the completions are just insertions and the new completion is a superset of the existing one. In this case, we will replace the existing completion with the new one. Otherwise we will keep showing the old one to avoid thrashing the UI. This should make latency a lot better. Note that I also reduced the debounce timeout to 8ms. Release Notes: - N/A
Antonio Scandurra created
91b02a6
Add emacs keybinds for previous/next/cancel in search (#21921)
Peter Tripp created
1f296d8
docs: Include `restore_on_startup` (#21918)
Signed-off-by: xuoe <xuoe@pm.me>
xuoe created
c204b0d
zeta: Add adjustments to the review modal UI (#21920)
Most notably, adding a current iteration of a possible logo to feel it out! :) Also, I'm hiding the input and instructions container after the review has been sent. In the future, if we allow changing an already sent review, we can change this behavior. <img width="800" alt="Screenshot 2024-12-12 at 10 42 44" src="https://github.com/user-attachments/assets/37e63d0d-d847-445e-bdf8-bf5c97d0fe4c" /> Release Notes: - N/A
Danilo Leal created
8e0ae44
Initial git panel refinements (#21912)
- Wire up settings - Update static Panel impl - Tidy up renders Release Notes: - N/A
Nate Butler created
02fbad1
toolbar: Add gap between the Kernel and REPL button (#21871)
Before:  After:  Also works with dark themes:  Release Notes: - N/A Co-authored-by: raphael.kieling <raphael.kieling-ext@ab-inbev.com>
Raphael Kieling and raphael.kieling created
227f21f
zeta: Show timestamps and latency in rating modal (#21863)
Release Notes: - N/A --------- Co-authored-by: Antonio <antonio@zed.dev> Co-authored-by: Bennet <bennet@zed.dev> Co-authored-by: Cole <cole@zed.dev>
Thorsten Ball , Antonio , Bennet , and Cole created
543a3ef
linux: Don't watch parent directory when target path already exists (#21854)
The Linux watcher was unconditionally watching the parent directory of every watched path. This is needed in the case of config files that may not exist when the watch is set up, but not in other cases. Scoping the parent watch more narrowly cuts down on the amount of error logging from irrelevant file change notifications being sent to Zed (in my case it was picking up changes to a random file in `$HOME`). Release Notes: - N/A
Cole Miller created
cc97e68
worktree: Fix privacy check for singleton files (#21861)
Closes #20676 Release Notes: - Fixed private files not being redacted when not part of a larger worktree
Cole Miller created
59afc27
Add placeholder git panel (#21894)
Adds a simple git placeholder panel for us to iterate from. Also includes a number of assets from the git prototyping branch that we will use. Note: This panel is staff flagged for now. Release Notes: - N/A
Nate Butler created
611abca
Add schema to .github/ISSUE_TEMPLATE/config.yml (#21836)
Workaround for upstream issue where yaml-language-server
Peter Tripp created
fff12ec
Mention Lllama 3.3 in Ollama config panel (#21866)
Trivial, but makes us not look outdated.
Peter Tripp created
13a81e4
Start to split out initialization and registration (#21787)
Still TODO: * [x] Factor out `start_language_server` so we can call it on register (instead of on detect language) * [x] Only call register in singleton editors (or when editing/go-to-definition etc. in a multibuffer?) * [x] Refcount on register so we can unregister when no buffer remain * [ ] (maybe) Stop language servers that are no longer needed after some time Release Notes: - Fixed language servers starting when doing project search - Fixed high CPU usage when ignoring warnings in the diagnostics view --------- Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Co-authored-by: Cole <cole@zed.dev>
Conrad Irwin , Piotr Osiewicz , and Cole created
de89f8c
gpui: Add linear gradient support to fill background (#20812)
Release Notes: - gpui: Add linear gradient support to fill background Run example: ``` cargo run -p gpui --example gradient cargo run -p gpui --example gradient --features macos-blade ``` ## Demo In GPUI (sRGB): <img width="761" alt="image" src="https://github.com/user-attachments/assets/568c02e8-3065-43c2-b5c2-5618d553dd6e"> In GPUI (Oklab): <img width="761" alt="image" src="https://github.com/user-attachments/assets/b008b0de-2705-4f99-831d-998ce48eed42"> In CSS (sRGB): https://codepen.io/huacnlee/pen/rNXgxBY <img width="505" alt="image" src="https://github.com/user-attachments/assets/239f4b65-24b3-4797-9491-a13eea420158"> In CSS (Oklab): https://codepen.io/huacnlee/pen/wBwBKOp <img width="658" alt="image" src="https://github.com/user-attachments/assets/56fdd55f-d219-45de-922f-7227f535b210"> --- Currently only support 2 color stops with linear-gradient. I think this is we first introduce the gradient feature in GPUI, and the linear-gradient is most popular for use. So we can just add this first and then to add more other supports.
Jason Lee created
c594ccb
Inline assistant v2 (#21828)
This is behind the Assistant v2 feature flag. As @maxdeviant and I discussed, the state is currently decoupled from the Assistant Panel's state, although in the future we plan to introduce a way to refer to conversations from the panel. Also, we're intentionally duplicating some code with the v2 panel right now; the plan is to do a future PR to make them share code more. https://github.com/user-attachments/assets/bb163bd3-a02d-4a91-8f8f-2a8e60acbc34 It doesn't include the terminal inline assistant, which will be in a separate PR. Release Notes: - N/A
Richard Feldman created
937186d
gpui: Don't export named `Context` from prelude (#21869)
This PR updates the `gpui::prelude` to not export the `Context` trait named. This prevents some naming clashes in downstream consumers. Release Notes: - N/A
Marshall Bowers created
b3ffbea
assistant2: Allow removing individual context (#21868)
This PR adds the ability to remove individual pieces of context from the message editor: <img width="1159" alt="Screenshot 2024-12-11 at 12 38 45 PM" src="https://github.com/user-attachments/assets/77d04272-f667-4ebb-a567-84b382afef3d" /> Release Notes: - N/A
Marshall Bowers created
124e63d
Show inline completions when completion menu is visible (#21858)
This changes the behavior of how we display inline completions and non-inline completions (i.e. completion menu). Previously we would never show inline completions if a completion menu was visible, meaning that we'd never show Copilot/Supermaven/... suggestions if the language server had a suggestion. With this change, we now display the inline completions even if there is a completion menu visible. In that case `<tab>` then accepts the inline completion and `<enter>` accepts the selected entry in the completion menu. Release Notes: - Changed how inline completions (Copilot, Supermaven, ...) and normal completions (from language servers) interact. Zed will now also show inline completions when the completion menu is visible. The user can accept the inline completion with `<tab>` and the active entry in the completion menu with `<enter>`. Previously, `<tab>` would also select the active entry in the completion menu. --------- Co-authored-by: Antonio <antonio@zed.dev>
Thorsten Ball and Antonio created
dd66a20
Move prediction diff computation to background thread (#21862)
Release Notes: - N/A Co-authored-by: Thorsten <thorsten@zed.dev> Co-authored-by: Cole <cole@zed.dev> Co-authored-by: Bennet <bennet@zed.dev>
Antonio Scandurra , Thorsten , Cole , and Bennet created
e8c72d9
v0.167.x dev
Joseph T. Lyons created
dfe455b
zeta: Improve UI for feedback instructions (#21857)
If the instructions are added as the input placeholder, when in a smaller window size (like the one from the screenshot), scrolling is needed to see them all. So, thought of extracting it out of there. Also thought it looked more refined this way! <img width="800" alt="Screenshot 2024-12-11 at 11 48 17" src="https://github.com/user-attachments/assets/46974b94-6365-4a59-bf71-a6c0863aac68" /> Release Notes: - N/A
Danilo Leal created
db7e384
zeta: Show keybinding on rating buttons (#21853)
<img width="800" alt="Screenshot 2024-12-11 at 10 57 00" src="https://github.com/user-attachments/assets/6055639c-5b38-444d-b76d-bf7584a82efc" /> Release Notes: - N/A
Danilo Leal created
f8b6d71
Optimize REPL kernel spec refresh (#21844)
Python kernelspec refresh now only performed on (known) python files. Release Notes: - N/A
Kyle Kelley created