db11a3b
ci: Update issue templates. Rename defect to bug and improve log formatting (#20246)
Peter Tripp 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
77de20c
settings: Allow `null` as a value for font fallback fields (#20186)
This PR updates the `buffer_font_fallbacks` and `ui_font_fallbacks` settings to allow `null` as a value instead of showing a warning. Related to https://github.com/zed-industries/zed/issues/18006. Release Notes: - Updated the settings schema to allow `null` as a value for `buffer_font_fallbacks` and `ui_font_fallbacks` instead of showing a warning.
Marshall Bowers created
e1cb8a6
Add pages to theme_preview (#20185)
Added some simple logic + an example of adding pages to the theme preview. Will be used for organizing theme preview sections. Release Notes: - N/A
Nate Butler created
7025d3f
Extract outline rendering to `outline` crate (#20179)
This PR extracts the `render_item` implementation for outlines to the `outline` crate to help reduce `language`'s dependence on `theme`. Release Notes: - N/A
Marshall Bowers created
4bbde40
recent projects: Fix inconsistent keybinding with which window is replaced or not (#20176)
This removes the inconsistency between these two workflows: - Clicking on the project name in the upper left shows: <img width="333" alt="image" src="https://github.com/user-attachments/assets/f54c34b4-67ab-4cbc-85ee-845c41aa4a8c"> - Using `projects: Open recent` shows: <img width="337" alt="image" src="https://github.com/user-attachments/assets/b1eb244f-ce28-4e6c-8404-b6cd88caef1e"> --- We now use `enter` to re-use the window and `cmd-enter` to open a new window in both cases Closes #16361 Release Notes: - Fixed an inconsistency in the recent project picker, where different keybindings would determine whether to reuse the window or not
Bennet Bo Fenner created
15e7b67
markdown preview: Refresh preview when file is changed outside of the editor (#20175)
Closes #20091 Release Notes: - Fixed an issue where the markdown preview would not update when a markdown file was changed outside of the editor
Bennet Bo Fenner created
f0aeab7
Add surround aliases (#20104)
Closes #19417
Release Notes:
- vim : Added `r` and `a` as aliases for `[` and `<` text objects
(copying vim-surround).
- vim: (breaking change) rebound the function argument text object to
`g`.
- vim: Fixed surrounds to allow `b`/`B`/`r`/`a` anywhere you could use
`(`, `{`, `[`, `<`.
---
- vim: Added `b`, `B`, `r`, `s`, `a` as aliases for `()`, `{}`, `[]`,
`<>` in vim surround mode.
- Adds a new `surround_alias` function where aliases are defined.
- This function is used in `find_surround_pairs` to substitute the
chosen text with the alias
- The keymap is also modified to add support for Square and Angle
brackets when changing surrounds. These two were added to follow the
example of Tim Pope's ubiquitous `vim-surround` plugin.
- I had to overwrite the `vim::Argument` keybind in order to do this. I
moved it to use the `g` modifier. I realize this is a breaking change
and will happily move the `vim::AngleBracket` keymap to a different
letter if you'd like to avoid this. I'm just trying to keep with
convention. Ideally, Users would be able to define surround aliases
themselves in the config file but that's a much bigger task than I'm
able to do right now.
- I also added tests for the new aliases.
Thanks for making such a clean and organized codebase. I was able to
find the relevant section of code rather quickly thanks to this.
Mike Lloyd created
4bbddca
extension: Add support for `labelDetails` for LSP completions (#20144)
Closes #14278 https://github.com/zed-industries/lsp-types/blob/be7336e92a6ad23f214df19bcdceab17f39531a9/src/completion.rs#L419-L429 https://github.com/zed-industries/lsp-types/blob/be7336e92a6ad23f214df19bcdceab17f39531a9/src/completion.rs#L555-L572 Release Notes: - N/A --------- Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
bangbangsheshotmedown and Marshall Bowers created
1e944a5
Delete a.py (#20173)
Release Notes: - N/A
Pablo Portas López created
d90770c
Actually reuse previous search entries (#20171)
Release Notes: - Improved outline panel performance during large project searches
Kirill Bulatov created
6316151
docs: Add redirect for /conversations (#20170)
Release Notes: - N/A
Peter Tripp created
49a0a11
chore: Remove toolchain section from language settings (#20168)
Closes #ISSUE Release Notes: - N/A
Piotr Osiewicz created
376a455
assistant: Improve role button loading state (#20125)
We've received feedback that it wasn't clear how to cancel/interrupt the LLM while it's generating a response. Additionally, I also had folks telling me that the loading state was hard to notice—the pulsating animation is too subtle on its own. This PR attempts to improve both of these things. The end result is:  Release Notes: - N/A
Danilo Leal created
20eeb78
chore: Update BranchListDelegate to use WeakView<Workspace> (#20157)
Jason Lee created
67be6ec
copilot: Add support for new models (#19968)
Closes #19963 This PR implements integration with the newly announced GitHub Copilot LLM models, including: - Claude 3.5 Sonnet - o1-mini - o1-preview Release Notes: - N/A --------- Co-authored-by: Bennet Bo Fenner <bennet@zed.dev>
Jonathan Toledo and Bennet Bo Fenner created
070e591
markdown renderer: Add copy icon button for code block (#19312)
Closes #19061 I don't know should i add tooltip or not Before  After  Release Notes: - Markdown Preview: Added button to copy code blocks. --------- Co-authored-by: Bennet Bo Fenner <bennet@zed.dev>
Lilith Iris and Bennet Bo Fenner created
c41a8e3
Fix file reloading not populating the history (#20156)
Closes https://github.com/zed-industries/zed/issues/20111 Closes https://github.com/zed-industries/zed/issues/20153 cc @mikayla-maki and @ConradIrwin Release Notes: - Fixed undo stack corruption on external file changes ([#20111](https://github.com/zed-industries/zed/issues/20111)) ([#20153](https://github.com/zed-industries/zed/issues/20153)) Co-authored-by: Antonio Scandurra <antonio@zed.dev>
Kirill Bulatov and Antonio Scandurra created
25443a9
image viewer: Show path in breadcrumbs (#20155)
Closes #10057 <img width="354" alt="image" src="https://github.com/user-attachments/assets/47afe8fd-c8ac-45af-be9a-9ca8c5e066f6"> Release Notes: - Show path in breadcrumbs/toolbar when opening an image
Bennet Bo Fenner created
8e00caf
go: Add `go-generate` runnables and tasks (#19987)
I was missing the `go generate` runnable from other editors so I figured I'd implement one here! Now, comments of the form `//go:generate` can prompt for the `go generate <package>` task. Meanwhile, I've also added a global `go generate ./...` task. ~When making the global task, I noticed that the existing `go test ./...` task runs tests in subdirectories of the CWD of the active editor, whereas I would really expect it to run all tests across my project. I have changed to use the latter behavior (run relative to project root) for both `go generate ./...` and `go test ./...`. Please let me know if the prior behavior was intended, and I can revert.~ Release Notes: - Added runnable and tasks for `go generate` commands
Roshan Padaki created
9a869f0
project panel: Focus editor when single-clicking on file and preview tabs are disabled (#20154)
Closes #4324 Release Notes: - Fixed an issue where single-clicking on a file in the project panel would not focus the editor, when preview tabs are disabled
Bennet Bo Fenner created
de2483e
terminal: Do not show multibuffer hint when in centered pane (#20137)
Co-Authored-by: Bennet <bennet@zed.dev>  Release Notes: - Fixed an issue where the multibuffer hint was shown when terminal was in centered mode Co-authored-by: Bennet <bennet@zed.dev>
Marc and Bennet created
95259bf
Add michael@zed.dev to .mailmap (#20119)
Release Notes: - N/A
Michael Sloan created
3b76ba6
docs: Align soft_wrap reference with naming pattern used (#20080)
Release Notes: - N/A
Henry Barreto created