803e5d4
vim: Fix readonly mode (#20264)
Click to expand commit body
Closes #18854 Release Notes: - vim: Fixed `r`, `~` etc. appearing to modify readonly buffers
Conrad Irwin created
803e5d4
vim: Fix readonly mode (#20264)
Closes #18854 Release Notes: - vim: Fixed `r`, `~` etc. appearing to modify readonly buffers
Conrad Irwin created
c10c35f
Fix duplicate SshProject's in Remote Projects menu (#20271)
Closes #20269 Release Notes: - Changes SshConnection to use a BTreeSet of SshProject's instead of a Vec of SshProject's in order to remove duplicate remote projects from "settings.json" and the Remote Projects menu.
AidanV created
38b1940
Re-entrant SendKeystrokes (#20277)
Release Notes: - Improved `workspace::SendKeystrokes` to support re-binding keys. For example you can now do: `"x": ["workspace::SendKeystrokes", "\" _ x"]` in vim mode to ensure that `x` does not clobber your clipboard. - Improved key binding documentation
Conrad Irwin created
50069a2
Unbind app menu actions (#20268)
Closes #7544 Release Notes: - Fixed an issue that prevented removing key bindings for actions used in the macOS application menu.
Max Brunsfeld created
b23835b
Disable sccache during dev extension builds (#20270)
Kirill Bulatov created
e47b305
Use correct context path for focused element in WindowContext::bindings_for_action (#18843)
Previously, we were reaching in and using the context_stack on the dispatch tree, which was incorrect. /cc @as-cii /cc @ConradIrwin Release Notes: - N/A --------- Co-authored-by: Michael Sloan <michael@zed.dev>
Nathan Sobo and Michael Sloan created
7931342
Fix typo in Ansible docs (#20267)
fix typo in Ansible docs. Release Notes: - N/A
Will Bradley created
282f624
Fix outline panel selection races (#20263)
Follow-up of https://github.com/zed-industries/zed/pull/20211 Release Notes: - N/A
Kirill Bulatov created
73bbdd4
Allow vim macros in visual mode (#20261)
Closes #19764 Release Notes: - vim: Fixed `q` and `@` in visual mode
Conrad Irwin created
2364984
Use zed-style shifted letters (#20254)
Release Notes: - vim: Fixed some shortcuts to render correctly in Command
Conrad Irwin created
86ff6e2
vim: Fix paragraphs with softwrap (#20259)
Closes #19778 Release Notes: - vim: Fixed paragraph object in the presence of softwrap
Conrad Irwin created
4bf6fb2
vim: Fix search in the Assistant (#20258)
Closes #17704 Release Notes: - vim: Fix search in the assistant panel
Conrad Irwin created
c527f2e
Prevent extra line break on long token at start of rewrap (#20256)
Closes #19532 Release Notes: - Fixed a bug where rewrapping with a long word at the start of the line would cause a new line to be inserted. Co-authored-by: Will Bradley <will@zed.dev>
Mikayla Maki and Will Bradley created
47defa2
docs: Add documentation for configuring clangd in C-only mode (#20255)
Peter Tripp created
6dfff1b
Improve rewrap for ideographic writing systems (#20218)
Closes #19733 Before: https://github.com/user-attachments/assets/5399e8fd-2687-445a-a8ab-023c348aff3f After: https://github.com/user-attachments/assets/b4ea5cb6-92ec-49ae-a982-194a1fc68d88 Release Notes: - improve handling of text wrapping in Rewrap for some ideographic writing systems Co-authored-by: Richard <richard@zed.dev> Co-authored-by: Mikayla <mikayla@zed.dev>
Will Bradley , Richard , and Mikayla created
66e0661
Don't write temp files for telemetry logs (#20209)
This still keeps a telemetry.log for the current session, but not one file per load of zed. Closes: #20045 Release Notes: - Fixed a bug where Zed would create a new temporary file on each boot for telemetry logs
Conrad Irwin created
765626a
Disable /search by default (#20252)
This stops us sending GetCachedEmbeddings requests which frequently time out after 10s, and block the collab connection. Release Notes: - N/A
Conrad Irwin created
27cdc6c
Reuse focused buffer search query in the project search (#20253)
Closes https://github.com/zed-industries/zed/issues/10011 Release Notes: - Reuse focused buffer search query in the project search ([#10011](https://github.com/zed-industries/zed/issues/10011))
Kirill Bulatov created
87ba5fd
Rebuild SSH installation (#20220)
Closes #ISSUE
This refactors SSH installation to require less shell stuff. We'd like
to
support arbitrary remote hosts, and unfortunately csh/tcsh have quoting
rules
that make it impossible to run multi-line scripts.
The primary changes are:
* The target path now contains the version:
`./zed_server/zed-remote-server-{release_channel}-{version}`
* We do all our processing in a temporary file and `mv` it into place.
* We do fewer calls to `ssh_command` overall. With the previous two
changes we can avoid lock files, and fuser calls. Instead cleanup of old
binaries now happens in `execute_run`.
* We only try to install the remote server when the connection is
established, not on each project open.
This should also put us in a good position if we want to pre-emptively
install new versions when the auto-updater detects an update for the
running version of zed (but that's not wired up yet)
Release Notes:
- Remoting: Fixed remoting when the remote runs `tcsh`
- Remoting: Improved latency of connecting
Conrad Irwin created
7c72929
docs: Add Ansible language documentation (#20087)
Co-authored-by: Peter Tripp <peter@zed.dev>
Kartik Vashistha and Peter Tripp created
9e49894
assistant: Remove the selection action as an extra option (#20234)
This PR should only be merged after https://github.com/zed-industries/zed/pull/19988. Once the selection action is added as a "proper" slash command, there's no need to have it duplicate on the "Add Context" menu anymore. 😄 Release Notes: - N/A
Danilo Leal created
2364804
assistant: Implement `/selection` slash command (#19988)
- Closes #18868 ## Summary This PR introduces a new slash command `/selection` to enhance the usability of the assistant's quote selection feature. ## Changes Made 1. Extracted a function from the `assistant: quote selection` action to find the selected text and format it as an assistant section. 2. Created a new slash command `/selection` that utilizes the extracted function to achieve the same effect as the existing `assistant: quote selection` action. 3. Updated the documentation to include information about the new `/selection` slash command. Release Notes: - Moved the text selection action to a slash command (`/selection`) in the assistant panel --------- Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Co-authored-by: Bennet Bo Fenner <bennet@zed.dev>
Tristan Marechaux , Danilo Leal , and Bennet Bo Fenner created
db11a3b
ci: Update issue templates. Rename defect to bug and improve log formatting (#20246)
Peter Tripp created
d0ca49f
Make project search inputs full width (#20242)
Closes https://github.com/zed-industries/zed/issues/13099 This PR main thing is making the inputs in the project search full width, but it also has some slight design and UI code improvements here and there, such as extracting the common input styles to its own variable. I figure that the reason why the inputs weren't full width before is just because it'd be hard to reach for the buttons when in a large monitor with the app maximised _and_ with a single tab open. However, I do feel like it's common not to have these conditions in place, too, which make the small inputs too small, like the issue states. At the very least, we also have the keybindings. Here's the final result: | Small window size | Big window size | |--------|--------| | <img width="1279" alt="Screenshot 2024-11-05 at 11 18 08" src="https://github.com/user-attachments/assets/73548300-1ad2-4ed0-b99f-adb3212ac163"> | <img width="2992" alt="Screenshot 2024-11-05 at 11 24 06" src="https://github.com/user-attachments/assets/3a1ccabd-2350-42f0-8e31-112f27da98a4"> | Release Notes: - N/A
Danilo Leal created
d6fcd98
keymaps: Fix how single line editor handles new lines in BufferSearch (#19316)
Updates JetBrains keymap to handle the `shift-enter` as the `SelectPrevMatch` action.
Vladimir Varankin created
bc3550d
workspace: Add settings to dim inactive panes and highlight active pane (#18968)
Closes #12529 Closes #8639 Release Notes: - Added option to dim inactive panes ([#12529](https://github.com/zed-industries/zed/issues/12529)) - Added option to highlight active pane with a border ([#8639](https://github.com/zed-industries/zed/issues/8639)) BREAKING: `active_pane_magnification` value is no longer used, it should be migrated to `active_pane_modifiers.magnification`  > note: don't know much rust, so I wouldn't be surprised if stuff can be done much better, happy to update things after the review. Also, wasn't sure about introducing the new object in the settings, but it felt better than adding two more keys to the root, let me know what you think and if there's a better way to do this. Also happy to get feedback on the text itself, as I didn't spend much thinking how to document this.
Alex Viscreanu created
b850119
Fix name of vcpp libs in windows build guide (#20240)
It is not obvious that you need to choose the latest one from the same libraries, especially in non-English locales Release Notes: - N/A
1dNDN created
7fb9549
vim: Fix `d shift-g` not deleting until EOD if soft-wrap is on (#20160)
This previously didn't work: `d G` would delete to the end of the "first of the soft-wrapped lines" of the last line. To fix it, we special case the delete behavior for `shift-g`, which is what Neovim also seems to do. Release Notes: - Fixed `d G` in Vim mode not deleting until the actual end of the document if soft-wrap is turned on.
Thorsten Ball created
4097118
ui: Fix scrollbar content size calculation for non-uniform lists with single element (#20237)
Previously we were always adding the origin coordinate of last item to the content size, which is incorrect when the list has just one item; in that case, we should just use the size of that item as the content size of a list. Closes #ISSUE Release Notes: - N/A
Piotr Osiewicz created
a26c0a8
Fix toolchain detection for worktree-local paths (#20229)
Reimplements `pet::EnvironmentApi`, trying to access the `project_env` first Closes #20177 Release Notes: - Fixed python toolchain detection when worktree local path is set
Stanislav Alekseev created
f8bd6c6
Fix cursor shape flickering and dead-zone on 1px border around list items in project and outline panels (#20202)
Move click listener to outer div - Avoids dead area when clicking the 1px border around a list item - Avoids flickering cursor shape when moving the cursor above the list, and especially when scrolling the list with a stationary cursor. Closes #15614 Release Notes: - Fixed mouse cursor shape flickering in project and outline panels when crossing items ([#15614](https://github.com/zed-industries/zed/issues/15614)) --------- Co-authored-by: Stephan Aßmus <stephan.assmus@sap.com>
Stephan Aßmus and Stephan Aßmus created
02b1e3a
assistant: Adjust the toolbar design (#20101)
This PR's most relevant change is removing the three-dot menu dropdown from the assistant toolbar. The "Regenerate Title" button is now only visible on hover and it appears on the far right of the title input. <img width="700" alt="Screenshot 2024-11-04 at 13 31 37" src="https://github.com/user-attachments/assets/891703af-7985-4b16-bb5e-d852491abd6f"> Release Notes: - N/A
Danilo Leal created
83ad28d
Remove duplicate `load_system_fonts`call (#19374)
Related comment on issue
https://github.com/zed-industries/zed/issues/14222#issuecomment-2418375056
On `crates/gpui/src/platform/linux/text_system.rs` on method
`CosmicTextSystem::new` `load_system_fonts` is being called twice:
```rust
pub(crate) fn new() -> Self {
let mut font_system = FontSystem::new();
// todo(linux) make font loading non-blocking
font_system.db_mut().load_system_fonts();
Self(RwLock::new(CosmicTextSystemState {
font_system,
swash_cache: SwashCache::new(),
scratch: ShapeBuffer::default(),
loaded_fonts_store: Vec::new(),
font_ids_by_family_cache: HashMap::default(),
postscript_names: HashMap::default(),
}))
}
```
First one on `FontSystem::new()` and second one is explicit on
`font_system.db_mut().load_system_fonts()`. The first call
`FontSystem::new()` is defined as:
```
pub fn new() -> Self {
Self::new_with_fonts(core::iter::empty())
}
```
And `new_with_fonts`:
```rust
/// Create a new [`FontSystem`] with a pre-specified set of fonts.
pub fn new_with_fonts(fonts: impl IntoIterator<Item = fontdb::Source>) -> Self {
let locale = Self::get_locale();
log::debug!("Locale: {}", locale);
let mut db = fontdb::Database::new();
//TODO: configurable default fonts
db.set_monospace_family("Fira Mono");
db.set_sans_serif_family("Fira Sans");
db.set_serif_family("DejaVu Serif");
Self::load_fonts(&mut db, fonts.into_iter());
Self::new_with_locale_and_db(locale, db)
}
```
Finally `Self::load_fonts(&mut db, fonts.into_iter())` calls
`load_system_fonts`:
```rust
#[cfg(feature = "std")]
fn load_fonts(db: &mut fontdb::Database, fonts: impl Iterator<Item = fontdb::Source>) {
#[cfg(not(target_arch = "wasm32"))]
let now = std::time::Instant::now();
db.load_system_fonts();
for source in fonts {
db.load_font_source(source);
}
...
```
Release Notes:
- Remove duplicate font loading on Linux
Alvaro Parker created
17b9d19
Fix buffer restoration on ssh projects (#20215)
Closes #20143 Release Notes: - Remoting: Fixed a panic restoring unsaved untitled buffers over SSH
Conrad Irwin created
3856599
Improve project search performance (#20211)
Follow-up of https://github.com/zed-industries/zed/pull/20171 Reduces time Zed needs to reach maximum search results by an order of a magnitude. Methodology: * plugged-in mac with Instruments and Zed open * Zed is restarted before each measurement, `zed` project is opened, a *.rs file is opened and rust-analyzer is fully loaded, file is closed then * from an "empty" state, a `test` word is searched in the project search * each version is checked with project panel; and then, separately, without it * after we reach maximum test results (the counter stops at `10191+`), the measurement stops Zed Dev is compiled and installed with `./script/bundle-mac -li` ------------------------ [measurements.trace.zip](https://github.com/user-attachments/files/17625516/measurements.trace.zip) Before: * Zed Nightly with outline panel open <img width="1113" alt="image" src="https://github.com/user-attachments/assets/62b29a69-c266-4d46-8c3c-0e9534ca7967"> Took over 30s to load the result set * Zed Nightly without outline panel <img width="1109" alt="image" src="https://github.com/user-attachments/assets/82d8d9d6-e8f2-4e67-af55-3f54a7c1d92d"> Took over 24s to load the result set * Zed Dev with outline panel open <img width="1131" alt="image" src="https://github.com/user-attachments/assets/15605ff8-0787-428e-bbb6-f8496f7e1d43"> Took around 6s to load the result set (the profile was running a bit longer) * Zed Dev without outline panel <img width="1147" alt="image" src="https://github.com/user-attachments/assets/0715d73e-f41a-4d74-a604-a3a96ad8d585"> Took around 5s to load the result set --------------------- Improvements in the outline panel: * https://github.com/zed-industries/zed/pull/20171 ensured we reuse previous rendered search results from the outline panel * all search results are now rendered in the background thread * only the entries that are rendered with gpui are sent to the background thread for rendering * FS entries' update logic does nothing before the debounce now Improvements in the editor: * cursor update operations are debounced and all calculations start after the debounce only * linked edits are now debounced and all work is done after the debounce only Further possible improvements: * we could batch calculations of text coordinates, related to the search entries: right now, each search match range is expanded around and clipped, then fitted to the closest surrounding whitespace (if any, otherwise it's just trimmed). Each such calculation requires multiple tree traversals, which is suboptimal and causes more CPU usage than we could use. * linked edits are always calculated, even if the language settings have it disabled, or the corresponding language having no corresponding capabilities Release Notes: - Improve large project search performance
Kirill Bulatov created
81dd4ca
Fix a typo (#20210)
Release Notes: - N/A
Ganesh Gupta created
2965119
project panel: scroll when drag-hovering over the edge of a list (#20207)
Closes [19554](https://github.com/zed-industries/zed/issues/19554) Release Notes: - Added auto-scrolling to project panel when a vertical edge of a panel is hovered with a dragged entry.
Piotr Osiewicz created
258cf6c
Add inclusive range scope overrides. Don't auto-close quotes at the ends of line comments (#20206)
Closes #9195 Closes #19787 Release Notes: - Fixed an issue where single quotation marks were spuriously auto-closed when typing in line comments
Max Brunsfeld created
369de40
Make rewrapping take tabs more into account (#20196)
Closes #18686 https://github.com/user-attachments/assets/e87b4508-3570-4395-92b4-c5e0e9e19623 Release Notes: - The Rewrap command now considers the width of each tab character at the beginning of the line to be the configured tab size. --------- Co-authored-by: Will <will@zed.dev>
Richard Feldman and Will created
dc02894
editor: Add scrollbar to info popovers (#20184)
Related to https://github.com/zed-industries/zed/issues/5034 Release Notes: - Added scrollbar to info popovers in editor.
Piotr Osiewicz created
966b18e
assistant: Fix Gemini 1.5 Pro throwing "missing field 'index' at line N column M" (#20200)
Closes https://github.com/zed-industries/zed/issues/20033 - Fixed deserialization error of `GenerateContentCandidate` where `index` is unexpectedly nil
Patrick Sy created
2c7e710
Fix selection extend/shrink on JetBrains keymap (#20199)
JetBrains IDE's use `ctrl-w` and `ctrl-shift-w` on Win/Linux and `cmd-up` and `cmd-down` on mac to extend/shrink selections. https://www.jetbrains.com/guide/java/tips/extend-selection/ Release Notes: - Fixed extend/shrink selection on JetBrains keymap
Elias Müller created
24dba07
Do not alter soft wrap based on .editorconfig contents (#20198)
Closes https://github.com/zed-industries/zed/issues/20194 Release Notes: - Fixed Zed incorrectly changing soft wrap based on .editorconfig contents ([#20194](https://github.com/zed-industries/zed/issues/20194))
Kirill Bulatov created
16e9b4c
typescript: Improve installation checks for `vtsls` (#20197)
This PR improves the installation checks for `vtsls`. Previously we were checking the installed version of TypeScript against the latest available version to determine whether we needed to installed the `vtsls` language server or not. However, these are two independent concerns, so we should be checking individually whether `typescript` or `@vtsls/language-server` need to be installed/updated. Closes https://github.com/zed-industries/zed/issues/18349. Release Notes: - typescript: Fixed an issue where `@vtsls/language-server` may not have been updated to the latest version.
Marshall Bowers created
bc4bd2e
Don't conservatively include Suggest Edits token in token count (#20180)
Before: (note the 1.3k in the upper right corner instead of 3 in the second screenshot) <img width="459" alt="Screenshot 2024-11-04 at 11 37 58 AM" src="https://github.com/user-attachments/assets/64c06aff-f7d2-42a4-a767-0d7a4ba0f486"> Now: <img width="631" alt="Screenshot 2024-11-04 at 11 38 11 AM" src="https://github.com/user-attachments/assets/22af974d-915a-41e1-9ee0-f0622901e242"> This was intended to be a conservative estimate in case you pressed Suggest Edits (and therefore might have an unpleasant surprise if you were under the context limit but Suggest Edits failed with a "too much context" error message anyway, after the Suggest Edits context got added for you behind the scenes). However, in retrospect this design created more [confusion in the common case](https://github.com/zed-industries/zed/pull/19900#issuecomment-2453456569) because it made it look like more context had been actually consumed than what was actually consumed. This does raise a potential design question for the future: the Suggest Edits button adds more context at the last minute without ever communicating that it's going to do that. In the meantime it seems best to go back to the less-confusing way of reporting the token counts, especially since only users of the experimental flag could possibly press Suggest Edits anyway. Release Notes: - Fixed issue where initial token count was over-reported as 1.3k instead of 3 (for the context string "You").
Richard Feldman created
4d3a18c
Fix two auto-indent issues with Markdown and YAML (#20193)
Closes #13376 Closes #13338 Release Notes: - Fixed unhelpful auto-indent suggestions in markdown. - Added `auto_indent_on_paste` setting, which can be used on a per-language basis, to configure whether indentation should be adjusted when pasting. This setting is enabled by default for languages other than YAML and Markdown.
Max Brunsfeld created
cfcbfc1
Fix saving files as `*.sql` on macOS Sequoia (#20195)
Closes #16969 Release Notes: - Fixed a bug in macOS Sequoia where you can't save a new file as `*.sql`, it would rename to `.sql.s`. As a side effect you can no longer save a new file as `*sql.s`. We hope to remove this workaround when the operating system fixes its bug; in the meantime you can either set `"use_system_path_prompts": false` in your settings file to skip the macOS dialogues, or create new files by right clicking in the project panel.
Conrad Irwin created
c9ec235
Sort completions by relevance for strong matches (#20145)
Further enhancement: On exploring VSCode's sorting logic, there are two major distinctions: * A config option exists to adjust sort priority of snippets. They can be placed inline (default), top or at bottom of completitions. * The sorting order sorts by (in order): sort_text (lower case), sort_text, kind ref: https://github.com/microsoft/vscode/blob/6f2d4781e857a550b7e9b05d40b969c840e264db/src/vs/editor/contrib/suggest/browser/suggest.ts#L338-L383 Closes #19786 Release Notes: - Improved sort order in completions to show relevant matches first ([#19786](https://github.com/zed-industries/zed/issues/19786))
Avinash Thakur created
8196db6
settings: Include `null` in the type for optional settings (#20192)
This PR updates all settings that are defined as `Option`s to include `null` in their type. This prevents warnings from being displayed when `null` is used a default value. Closes https://github.com/zed-industries/zed/issues/18006. Release Notes: - Updated the settings schema to allow `null` as a value for optional settings instead of showing a warning.
Marshall Bowers created
dc5fad5
diagnostics: Improve performance with large # of diagnostics (#20189)
Related to: https://github.com/zed-industries/zed/issues/19022 Release Notes: - Improve editor performance with large # of diagnostics. --------- Co-authored-by: Conrad <conrad@zed.dev> Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Piotr Osiewicz , Conrad , and Conrad Irwin created