8c4fb34
Show location of log file when using `zed: open log` (#13252)
Click to expand commit body
This changes the breadcrumb header from "untitled" to "Last 1000 lines
in <location of log file>".
Reason is that it's been incredibly frustrating not seeing the location
of the log file there and not seeing that it's actually a truncated
version of the logs.
This is one remedy for that.
Other options considered:
1. Opening the actual log file. Turns out that is huge. On Linux right
now it's 5 megabyte after 5 minutes.
2. Opening the file and adding it on the buffer. That is tricky and
weird, because you have to modify the underlying buffer and set the
file, after having to add it to the workspace and getting its entry,
etc.
3. Setting a `display_file_path` on Buffer. That would require also
adding it on `BufferSnapshot` and then threading that through so that it
gets returned by the multi-buffer and then in the editor. And ultimately
this here is a "view concern", so we thought we just add it as such.
So yes, not the best change possible, but it's not that invasive and
makes it clear that it's a view-only concern.
Release Notes:
- N/A
Co-authored-by: Kirill <kirill@zed.dev>
Thorsten Ball
and
Kirill
created
d4891a6
Conform to wayland spec on resize (#13243)
Fixes a bug in current nightly.
Release Notes:
- N/A
Mikayla Maki
created
db0d843
Allow completing slash command arguments from extensions (#13240)
Click to expand commit body
This PR extends the extension API with support for completing slash
command arguments for slash commands defined in extensions.
Release Notes:
- N/A
Marshall Bowers
created
ad4e528
Make slash commands defined in extensions return `SlashCommandOutput` (#13237)
Click to expand commit body
This PR extends the interface for slash commands defined in extensions
to have them return `SlashCommandOutput`.
This allows for slash commands to return multiple output sections for a
single piece of generated text.
Note that we don't allow specifying the icon to display in the
placeholder, as we don't want to commit to that in our API at the
moment.
Release Notes:
- N/A
Marshall Bowers
created
ca18549
Keyboardable buttons in linux alerts (#13235)
Click to expand commit body
Release Notes:
- N/A
Conrad Irwin
created
5cbb360
zed_extension_api: Add default implementation for `language_server_command` (#13234)
Click to expand commit body
This PR adds a default implementation for the `language_server_command`
method on the `Extension` trait.
This will allow for extensions to be defined without having to implement
this method, which will be useful for extensions that may just want to
provide slash commands.
Release Notes:
- N/A
Marshall Bowers
created
5ff7c89
Fix panic trying to go to next of 0 matches (#13233)
Click to expand commit body
Release Notes:
- Fixed a panic when going to next search result when there are none
Conrad Irwin
created
99e4b3a
Add linux arm support to installer (#13231)
Click to expand commit body
Release Notes:
- N/A
Conrad Irwin
created
9af4b6b
Allow telemetry from unofficial builds (#13224)
Click to expand commit body
Release Notes:
- N/A
Co-authored-by: Peter Tripp <notpeter@users.noreply.github.com>
Joseph T. Lyons
and
Peter Tripp
created
c84d432
Fix modality indicators in user menu (#13228)
Click to expand commit body
This PR updates the modality indicators in the user menu after #12940.
We use the ellipsis throughout the app to indicate that a menu action
will open a modal (e.g., the theme selector), so "Themes" needs the
trailing ellipsis.
Whereas the "Extensions" entry opens up a new tab, which we don't
indicate that same way.
Release Notes:
- N/A
This fixes an extra 10 second delay when needing to recompile xtask, and
allows passing arbitrary clippy args (like --allow-dirty)
Release Notes:
- N/A
Conrad Irwin
created
490a75a
Fix bug where window contents could appear outside of window bounds on X11 (#13181)
Remove noise from the #panics channel by excluding any linux build
before
0.139.x. We filter on the os_version and os_name because evern older
versions
of linux set app_version = 1.0.0.
Release Notes:
- N/A
Conrad Irwin
created
89d2ace
Make LSP task cancellation discoverable (#13226)
Click to expand commit body
Release Notes:
- Added the ability to cancel a cargo check by clicking on the status
bar item.
Max Brunsfeld
created
84a44be
storybook: Use `theme::setup_ui_font` helper function (#13227)
Click to expand commit body
This PR updates the storybook to use the new `theme::setup_ui_font`
helper function to initialize the UI font.
Release Notes:
- N/A
### TODO
- [x] Make sure keybinding shows up in pane + menu
- [x] Selection tool in the editor toolbar
- [x] Application Menu
- [x] Add more options to pane + menu
- Go to File...
- Go to Symbol in Project...
- [x] Add go items to the selection tool in the editor:
- Go to Symbol in Editor...
- Go to Line/Column...
- Next Problem
- Previous Problem
- [x] Fix a bug where modals opened from a context menu aren't focused
correclty
- [x] Determine if or what needs to be done with project actions:
- Difficulty is that these are exposed in the UI via clicking the
project name in the titlebar or by right clicking the root entry in the
project panel. But they require reading and are two clicks away. Is that
sufficient?
- Add Folder to Project
- Open a new project
- Open recent
- [x] Get a style pass
- [x] Implement style pass
- [x] Fix the wrong actions in the selection menu
- [x] Show selection tool toggle in the 'editor settings' thing
- [x] Put preferences section from the app menu onto the right hand user
menu
- [x] Add Project menu into app menu to replace 'preferences' section,
and put the rest of the actions there
- [ ] ~~Adopt `...` convention for opening a surface~~ uncertain what
this convention is.
- [x] Adopt link styling for webview actions
- [x] Set lucide hamburger for menu icon
- [x] Gate application menu to only show on Linux and Windows
Release Notes:
- Added a 'selection and movement' tool to the Editor's toolbar, as well
as controls to toggle it and a setting to remove it (`"toolbar":
{"selections_menu": true/false }`)
- Changed the behavior of the `+` menu in the tab bar to use standard
actions and keybindings. Replaced 'New Center Terminal' with 'New
Terminal', and 'New Search', with the usual 'Deploy Search'. Also added
item-creating actions to this menu.
- Added an 'application' menu to the titlebar to Linux and Windows
builds of Zed
Mikayla Maki
created
8af8493
typescript: Make VTSLS the default language server for Typescript (#13140)
Click to expand commit body
Additionally, limit # of returned completion items + use fuzzy filtering
on VTSLS side. Prime LSP handler for response handling.
Release Notes:
- VTSLS is now a default language server for TypeScript, TSX, and
JavaScript.
Fixes https://github.com/zed-industries/zed/issues/12054
Replaces the `copypasta`/`smithay-clipboard` implementation with a new,
custom one
TODO list:
- [x] Cleanup code
- [x] Remove `smithay-clipboard`
- [x] Add more mime types to the supported list
Release Notes:
- Fixed drag and drop on Gnome
- Fixed clipboard paste on Hyprland
apricotbucket28
created
b55961b
ruby: Update tree-sitter grammar version (#13216)
Click to expand commit body
Hi, this pull request just updates the `tree-sitter` version for the
Ruby language. I checked the changelog and it doesn't contain breaking
changes. Thanks.
tree-sitter/tree-sitter-ruby@9d86f3761bb3 ->
tree-sitter/tree-sitter-ruby@dc2d7d6b50f9
Release Notes:
- N/A
Vitaly Slobodin
created
01b836a
util: Replace `lazy_static!` with `OnceLock` (#13215)
Click to expand commit body
This PR replaces the `lazy_static!` usages in the `util` crate with
`OnceLock` from the standard library.
This allows us to drop the `lazy_static` dependency from this crate.
Release Notes:
- N/A
This PR removes a leftover `http` module in `util` that was lingering
from #11680.
Release Notes:
- N/A
Marshall Bowers
created
81475ac
paths: Replace `lazy_static!` with `OnceLock` (#13213)
Click to expand commit body
This PR replaces the `lazy_static!` usages in the `paths` crate with
`OnceLock` from the standard library.
This allows us to drop the `lazy_static` dependency from this crate.
The paths are now exposed as accessor functions that reference a private
static value.
Release Notes:
- N/A
Add details/summary block to GitHub issue templates so zed.log can be
hidden by default.
The diff for this is messy because the existing files were not correctly
auto-formatted. So I created two commits, one for autoformat and the
other for the changes.
I tested it on a private repo. When you first open the issue it looks
like this:
<img width="879" alt="image"
src="https://github.com/zed-industries/zed/assets/145113/07cda992-4d62-4c27-abaa-5c272ff65345">
Then when you double-click inside it becomes editable:
<img width="880" alt="image"
src="https://github.com/zed-industries/zed/assets/145113/970c6669-84da-41d1-9119-d3eb9b090066">
Release Notes:
- N/A
Peter Tripp
created
3701e19
Add runnable for rust main function (#13087)
Previously we were using a single globset::Glob in PathMatcher; higher
up the stack, we were then resorting to using a list of PathMatchers.
globset crate exposes a GlobSet type that's better suited for this use
case. In my benchmarks, using a single PathMatcher with GlobSet instead
of a Vec of PathMatchers with Globs is about 3 times faster with the
default 'file_scan_exclusions' values. This slightly improves our
project load time for projects with large # of files, as showcased in
the following videos of loading a project with 100k source files. This
project is *not* a git repository, so it should measure raw overhead on
our side.
Current nightly: 51404d4ea08cb5ba1cd678b9963037bde31aa7b2
https://github.com/zed-industries/zed/assets/24362066/e0aa9f8c-aae6-4348-8d42-d20bd41fcd76
versus this PR:
https://github.com/zed-industries/zed/assets/24362066/408dcab1-cee2-4c9e-a541-a31d14772dd7
Release Notes:
- Improved performance in large worktrees
Piotr Osiewicz
created
64d815a
linux/x11: Fix closing of GPUI windows not working (#13201)
Click to expand commit body
This fixes everything but the main Zed window (GPUI examples, prompt
library, etc.) not being closable by clicking on the X in X11.
We had a dangling reference before: we would remove the window from the
X11 state, but GPUI itself would still have the window in its
references.
In order to fix this we have to call `window.close()`, which ends up
calling `cx.remove_window()`, which removes the reference.
That in turn then causes the reference to be dropped, which cleans up
the X11 state for the window.
Release Notes:
- N/A
Thorsten Ball
created
5dc5486
project panel: Improve performance in large projects (#13202)
Click to expand commit body
In #12980 I've hoisted out creation of HashSet<PathInWorktree> out of
render_entry, which made us not create that hash set for each entry in a
worktree on each frame. In current nightly, we do it once per call to
render() on the whole worktree, which is better.
However, we can still reuse the hashed between the frames, if the
worktree has not changed. Once we calculate the hashset for a given
worktree state, we keep it around for as long as the state is valid for.
We calculate the HashSet lazily, as we may not necessarily need it if
the project panel is collapsed. In large worktrees, this helps keep the
CPU usage of the main thread low-ish.
Release Notes:
- Improved performance of project panel in large worktrees.
Piotr Osiewicz
created
e4ba336
Preserve sections generated by slash commands when reloading a context (#13199)
Click to expand commit body
Release Notes:
- N/A
Antonio Scandurra
created
195a270
vim: Display pending keys in Vim mode indicator (#13195)
Click to expand commit body
This changes the mode indicator to now show pending keys and not just
pending operators.
Release Notes:
- Added pending keys to the mode indicator in Vim mode.
Demo:
https://github.com/zed-industries/zed/assets/1185253/4fc4ffd9-2ba7-4e2c-b2c3-cd19b40cb640
This reverts URI changes made in
https://github.com/zed-industries/zed/pull/12928 while keeping the perf
goodies in tact. We should keep an eye out for
https://github.com/gluon-lang/lsp-types/issues/284
Fixes: https://github.com/zed-industries/zed/issues/13135
Fixes: https://github.com/zed-industries/zed/issues/13131
Release Notes:
- N/A
Piotr Osiewicz
created
479c5df
Add more rust-analyzer configuration examples in the docs (#13189)
0af6e44
Don't generate invalid ranges for C code (#13183)
Click to expand commit body
Fixes: #13128
Release Notes:
- Fixed a panic when editing C code
([#13128](https://github.com/zed-industries/zed/issues/13128)).
Conrad Irwin
created
7003b0f
Allow canceling in-progress language server work (e.g. `cargo check`) (#13173)
Click to expand commit body
Release Notes:
- Added a more detailed message in place of the generic `checking...`
messages when Rust-analyzer is running.
- Added a rate limit for language server status messages, to reduce
noisiness of those updates.
- Added a `cancel language server work` action which will cancel
long-running language server tasks.
---------
Co-authored-by: Richard <richard@zed.dev>
Max Brunsfeld
and
Richard
created
f489c8b
Allow for non-official builds to report telemetry (#13175)
This PR extracts the definition of the various Zed paths out of `util`
and into a new `paths` crate.
`util` is for generic utils, while these paths are Zed-specific. For
instance, `gpui` depends on `util`, and it shouldn't have knowledge of
these paths, since they are only used by Zed.
Release Notes:
- N/A
Marshall Bowers
created
78e0f71
ui: Use `PopoverMenu::new` for constructing `PopoverMenu`s (#13178)
Click to expand commit body
This PR replaces the `popover_menu` function for constructing
`PopoverMenu`s with a `PopoverMenu::new` associated function.
This brings `PopoverMenu` in line with our other UI components.
Release Notes:
- N/A
Marshall Bowers
created
59104a0
assistant: Show an indicator when a crate is being indexed (#13174)
Click to expand commit body
This PR adds an indicator when a crate is being indexed as part of the
`/rustdoc` command invocation.
https://github.com/zed-industries/zed/assets/1486634/0dd4b663-658c-4be5-a342-cfbd7a938fca
Release Notes:
- N/A
Marshall Bowers
created
7aa28c9
rustdoc: Strip out additional chrome (#13172)
Click to expand commit body
This PR updates the HTML to Markdown converter for rustdoc to strip out
some additional chrome.
Namely, anchors and links to source files.
Release Notes:
- N/A
Marshall Bowers
created
bb1d52b
docs: Remove references to `copilot` and `show_copilot_suggestions` settings (#13169)
Click to expand commit body
This PR removes references to the deprecated `copilot` and
`show_copilot_suggestions` settings.
These settings were removed in #13167.
Release Notes:
- N/A
Marshall Bowers
created
ca035db
Move project event logic to telemetry.rs (#13166)
Click to expand commit body
I previously put this logic directly into `project.rs`, but it doesn't
feel good to pollute that code with telemetry logic, so I've moved it
over to `telemetry.rs`.
Release Notes:
- N/A
Joseph T. Lyons
created
71cc95d
Remove `copilot` and `show_copilot_suggestions` setting aliases (#13167)
Click to expand commit body
This PR removes the Copilot-specific aliases for the
`inline_completions` and `show_inline_completions` settings.
While these aliases were added to maintain backward-compatibility, the
aliasing behavior here can lead to a confusing experience when both keys
end up in the `settings.json`.
Release Notes:
- Breaking Change: Removed the `copilot` alias for the
`inline_completions` setting. If you have settings under `copilot` they
should get moved to `inline_completions`.
- Breaking Change: Removed the `show_copilot_suggestions` alias for the
`show_inline_completions` setting.
Marshall Bowers
created
3707734
windows: Fix executable display name (#13091)
Click to expand commit body
Closes #12907
**Note:** To actually take effect, delete the registered key of `Zed` in
`HKEY_CLASSES_ROOT\Local
Settings\Software\Microsoft\Windows\Shell\MuiCache`, for example, delete
this:

### Before
1. In Taskmanager

2. Right click taskbar

### After


Release Notes:
- N/A
张小白
created
e19627d
windows: Fix regression introduced by a prev PR (#13090)
Click to expand commit body
Fix regression introduced by #12991
### Before
The re-position and re-size of a window is broken.
https://github.com/zed-industries/zed/assets/14981363/d4fb9dce-707e-4ab1-9ff5-f355b7fdd8a8
### After
https://github.com/zed-industries/zed/assets/14981363/7fd232e6-ff6c-4b7f-ad32-c284acd4f6db
Release Notes:
- N/A
张小白
created
bb75d87
Remove `language_overrides` setting alias (#13164)
Click to expand commit body
This PR removes the `language_overrides` alias for the `languages`
setting.
I've seen a number of people run into issues where they have both
`languages` and `language_overrides` in their settings and get confused
when their settings don't seem to apply as expected.
This is a breaking change, but I think it is a necessary one to prevent
more users from running into issues.
Release Notes:
- Breaking Change: Removed the `language_overrides` alias for the
`languages` setting. If you have settings under `language_overrides`
they should get moved to `languages`.