3541a11
Disrupt blink for immediate feedback on cursor shape changes (#14177)
Click to expand commit body
# Issue
When a user does something that changes the cursor shape, such as when
switching between vim modes, there may be an up to 500ms (cursor blink
interval) delay until the user receives feedback for their action. This
happens when the shape change happens during the invisible phase of a
blink - the user will not see the cursor shape change until the next
phase, which could be 500ms away.
# Solution
Cursor shape changes should disrupt blinking by forcing the cursor to be
shown, this results in immediate feedback for shape changes. This is in
line with the behavior of other editors I've tried.
Release Notes:
- Improved visual feedback when changing cursor shape
Omer Tuchfeld
created
e51d469
Invalidate anchors when they get deleted (#14116)
Click to expand commit body
Allows deleting the outputs directly within the editor. This also fixes
the overlap logic to make sure that the ends and the starts are
compared.
https://github.com/zed-industries/zed/assets/836375/84f5f582-95f3-4c6a-a3c9-54da6009e34d
Release Notes:
- N/A
---------
Co-authored-by: Antonio <antonio@zed.dev>
Kyle Kelley
and
Antonio
created
018a2a2
vim: Fix `c` when range ends in a multibyte character (#14139)
d49727f
terminal: Set `TERM_PROGRAM` and `TERM_PROGRAM_VERSION` environment variables in integrated terminal (#14213)
Click to expand commit body

These two environment variables are essential when people need to detect
terminal type and do something. Many popular terminals set them.
fixes https://github.com/zed-industries/zed/issues/4571
Release Notes:
- Set `TERM_PROGRAM` and `TERM_PROGRAM_VERSION` environment variables in
the integrated terminal
([#4571](https://github.com/zed-industries/zed/issues/4571)).
`buffer_line_height` has been requested in #5590 and implemented in
#2718, however the documentation was still lacking.
Release Notes:
- N/A
oliverpool
created
fd03454
Fix reverse selections always being cleared (#14150)
Click to expand commit body
When I implemented #13701, I kinda messed up with the reversed
selections, thinking that their anchors are flipped, so I flipped them
again. This caused the reverse selections to always be cleared
Release Notes:
- Fix reverse selections always being cleared, even if the right click
was performed inside
Stanislav Alekseev
created
6eeec9b
windows: Create window with correct size (#14218)
Click to expand commit body
The `Bounds<DevicePixels>` we use to create a window represents the size
of the drawable area.
### Before:
https://github.com/zed-industries/zed/assets/14981363/52f0d196-b113-4b64-a0d1-407972674990
### After
https://github.com/zed-industries/zed/assets/14981363/83298b6c-5e5f-4a47-b051-35b4a02404ac
Release Notes:
- N/A
- Mostly just tweaking some design (colors & spacing) stuff
- Some small accessibility things—e.g., underline decoration for links
and one h1 only per page
- Most of the other captured changes are really just Prettier indenting
stuff
Release Notes:
- N/A
Danilo Leal
created
37fc4ce
Allow Zed Nightly to use v0.0.7 of the Zed extension API (#14209)
Click to expand commit body
This PR updates the Wasm API compatibility check to allow Nightly to
load extensions using v0.0.7 of the Zed extension API.
Release Notes:
- N/A
Marshall Bowers
created
99f5625
docs: Tiny formatting tweaks on the Linux page (#14208)
Click to expand commit body
Release Notes:
- N/A
Danilo Leal
created
f61abe0
Pass `hold: true` to Alacritty for tasks (#13898)
Click to expand commit body
It seems `hold: false` causes alacritty to close the channel earlier,
without waiting for the output from the child command to go to Zed.
Fixes [#13683](https://github.com/zed-industries/zed/issues/13683)
Release Notes:
- Fixed loosing output of a spawned task
([#13683](https://github.com/zed-industries/zed/issues/13683)).
[Screencast from 2024-07-06
18-28-56.webm](https://github.com/zed-industries/zed/assets/39293/4ebef8b5-7c0d-46be-9341-4ac0d809458d)
Aleksei Gusev
created
45c54d1
assistant: Show a message when no docs providers are available (#14207)
Click to expand commit body
This PR updates the `/docs` slash command to show a message to more
clearly indicate when there are no available docs providers.
<img width="379" alt="Screenshot 2024-07-11 at 10 31 53 AM"
src="https://github.com/zed-industries/zed/assets/1486634/d079f87c-4933-4da9-ad82-34dbfe6a284c">
Release Notes:
- N/A
Marshall Bowers
created
2727f55
Add support for projects managed with Yarn (#13644)
Click to expand commit body
TODO:
- [ ] File a PR with Yarn to add Zed to the list of supported IDEs.
Fixes: https://github.com/zed-industries/zed/issues/10107
Fixes: https://github.com/zed-industries/zed/issues/13706
Release Notes:
- Improved experience in projects using Yarn. Run `yarn dlx
@yarnpkg/sdks base` in the root of your project in order to elevate your
experience.
---------
Co-authored-by: Saurabh <79586784+m4saurabh@users.noreply.github.com>
Piotr Osiewicz
and
Saurabh
created
291d64c
lsp: Implement `textDocument/signatureHelp` for `ProjectClientState::Local` environment (#12909)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/5155
Closes https://github.com/zed-industries/zed/issues/4879
# Purpose
There was no way to know what to put in function signatures or struct
fields other than hovering at the moment. Therefore, it was necessary to
implement LSP's `textDocument/signatureHelp`.
I tried my best to match the surrounding coding style, but since this is
my first contribution, I believe there are various aspects that may be
lacking. I would greatly appreciate your code review.
# Description
When the window is displayed, the current argument or field at the
cursor's position is automatically bolded. If the cursor moves and there
is nothing to display, the window closes automatically.
To minimize changes and reduce the burden of review and debugging, the
SignatureHelp feature is implemented only when `is_local` is `true`.
Some `unimplemented!()` macros are embedded, but rest assured that they
are not called in this implementation.
# How to try it out
Press `cmd + i` (MacOS), `ctrl + i` (Linux).
# Enable auto signature help (2 ways)
### Add `"auto_signature_help": true` to `settings.json`
<img width="426" alt="image"
src="https://github.com/zed-industries/zed/assets/55743826/61310c39-47f9-4586-94b0-ae519dc3b37c">
Or
### Press `Auto Signature Help`. (Default `false`)
<img width="226" alt="image"
src="https://github.com/zed-industries/zed/assets/55743826/34155215-1eb5-4621-b09b-55df2f1ab6a8">
# Disable to show signature help after completion
### Add `"show_signature_help_after_completion": false` to
`settings.json`
<img width="438" alt="image"
src="https://github.com/zed-industries/zed/assets/55743826/5e5bacac-62e0-4921-9243-17e1e72d5eb6">
# Movie
https://github.com/zed-industries/zed/assets/55743826/77c12d51-b0a5-415d-8901-f93ef92098e7
# Screen Shot
<img width="628" alt="image"
src="https://github.com/zed-industries/zed/assets/55743826/3ebcf4b6-2b94-4dea-97f9-ac4f33e0291e">
<img width="637" alt="image"
src="https://github.com/zed-industries/zed/assets/55743826/6dc3eb4d-beee-460b-8dbe-d6eec6379b76">
Release Notes:
- Show function signature popovers
([4879](https://github.com/zed-industries/zed/issues/4879),
[5155](https://github.com/zed-industries/zed/issues/5155))
---------
Co-authored-by: Kirill Bulatov <kirill@zed.dev>
bdba8b2
dart: Add Flutter runnables and tasks (#13686)
Click to expand commit body
Release Notes:
- Added runnable tasks for Flutter
Abdullah Alsigar
created
2290055
Project panel: Prevent scrollbar size from scaling with rem size (#14167)
Click to expand commit body
The underlying container had width of 0.75 rem, which was equal to 12px
at default ui_font_size. However, with larger values of ui_font_size the
scrollbar would drift towards the center of a project panel, as the
scrollbar itself has a fixed width of 12 pixels. This commit moves
towards using a fixed width of 12px for scrollbar container. The
alternative was to make the scrollbar scale with ui_font_size, but that
isn't what the Editor scrollbar does, so I decided against it.
Release Notes:
- Fixed position of scrollbar in project panel with non-default
`ui_font_size` values.
Piotr Osiewicz
created
6db0b6c
terminal: Prevent extra character on handled meta keystrokes (#14151)
Click to expand commit body
On macOS, when `terminal.option_as_meta` is enabled, pressing key
combinations like `option+b` and `option+f` would lead to both an escape
sequence being sent to the terminal (the expected behavior with
`option_as_meta == true`) AND a character being inserted (the behavior
when `option_as_meta == false`). Prevent the latter by stopping
propagation of the key-down event if it corresponds to a terminal escape
sequence and `option_as_meta` is enabled.
Fixes #7728
Release Notes:
- Fixed insertion of extra characters for some keystrokes if
`terminal.option_as_meta` is enabled
([#7728](https://github.com/zed-industries/zed/issues/7728)).
Denis Washington
created
ba11e9a
Fix SystemUIFont typo in default settings (#14158)
This let's GitHub and the Git cli optionally "skip" certain revs when
generating `git blame`.
Co-authored-by: Gilles Peiffer <gilles.peiffer.yt@gmail.com>
Peter Tripp
and
Gilles Peiffer
created
1b08f14
Document how to enable `vim_mode` in /docs/vim (#14138)
Click to expand commit body
## Documents:
- **Added** instructions on how to enable "Vim mode" to the
["Settings"](https://zed.dev/docs/vim#settings) of
[/docs/vim](https://zed.dev/docs/vim).
While [/docs/configuring-zed](https://zed.dev/docs/configuring-zed)
_does_ mention the `vim_mode` setting,
[/docs/vim](https://zed.dev/docs/vim) does not.
This can be confusing for users like me who went straight to the vim
doc, and could not figure out how to enable vim.
## Release Notes:
- N/A
Chris Hayes
created
36d3b16
Add toggle hunk diff and expand all hunk diffs key bindings (#14130)
Click to expand commit body
Noticed these were missing when I was reading through the docs.
Release Notes:
- Add toggle hunk diff and expand all hunk diffs key bindings
Release Notes:
- Fixed #5236
- Added the ability to select and copy text from information popovers
https://github.com/zed-industries/zed/assets/50590465/d5c86623-342b-474b-913e-d07cc3f76de4
---------
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Co-authored-by: Antonio <ascii@zed.dev>
Ephram
,
Conrad Irwin
, and
Antonio
created
f1281c1
Revert Windows normal window title style to `WS_EX_APPWINDOW` (#14132)
Click to expand commit body
Release Notes:
- N/A
@ConradIrwin we must revert this little change.
https://github.com/zed-industries/zed/pull/14063#issuecomment-2221867379
For: #13417
This is a simple version, I'm not sure if we just need to limit this
feature to vim mode, or maybe in normal editor mode, which involves
other logic like the location of the setting
Release Notes:
- N/A
---------
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
5bc3846
Fix #14106 Windows title bar broken (#14122)
Click to expand commit body
Release Notes:
- N/A
----
Fix #14106
Sorry, the previous change in #14063 I have made a mistake. I shouldn't
have changed the previous logic.
```diff
- if !state_ptr.hide_title_bar {
+ if state_ptr.hide_title_bar {
```
## Test
https://github.com/zed-industries/zed/assets/5518/e03fbcac-be6b-4a9d-8937-d3b5e236b564
And the popup window limit is still works.
Jason Lee
created
e6d608f
linux: Add NewWorkspace to the Actions list in .desktop (#14097)
This PR fixes `<script context="module">` not being highlighted.
It also adds support for scss.
Release Notes:
- N/A
Sören Meier
created
15662f1
gpui: Fix TextStyle default font_family crash on Windows, use `Segoe UI` for Windows (#14040)
Click to expand commit body
Release Notes:
- Fixed default font_family crash on Windows, use `Segoe UI`.
## Crash error message
```
thread 'main' panicked at crates\gpui\src\text_system.rs:150:9:
failed to resolve font 'Helvetica' or any of the fallbacks:
Zed Plex Mono, Helvetica, Cantarell, Ubuntu, Noto Sans, DejaVu Sans
```
Jason Lee
created
1887a6d
gpui: Fix popup kind window support on Windows (#14063)
Click to expand commit body
Release Notes:
- N/A
----
Continue #14044 for Windows
## The problem
The `cx.open_window` method has provided us a `window_kind` option to
allows creating a Popup kind. This behavior can work on macOS, the popup
kind window have no-border, no-shadow, no-resize, and followed the
`is_movable` if present true it can't move.
This PR to fix those supports on Windows.
The border and shadow still exist, I have tried to use WS_POPUP
window_style, but it will crash:
> This is looks like complex, it is out of my known.
```
Blocking waiting for file lock on build directory
Compiling gpui v0.1.0 (F:\work\zed\crates\gpui)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 13.96s
Running `target\debug\examples\window_positioning.exe`
thread 'main' panicked at F:\Users\jason\.cargo\git\checkouts\blade-b2bcd1de1cf7ab6a\21a56f7\blade-graphics\src\vulkan\init.rs:864:18:
called `Result::unwrap()` on an `Err` value: ERROR_OUT_OF_DEVICE_MEMORY
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
error: process didn't exit successfully: `target\debug\examples\window_positioning.exe` (exit code: 0xc0000409, STATUS_STACK_BUFFER_OVERRUN)
```
So I just make a simple change, to use `WS_EX_TOOLWINDOW` this can
disable resize, and connect `is_movable` to `handle_hit_test_msg` to
disable move, and also no Status Bar icon.
## Before
https://github.com/zed-industries/zed/assets/5518/76740a71-e0ba-401f-958d-f4afdeb417c6
## After
https://github.com/zed-industries/zed/assets/5518/dca49f13-914c-425a-b8b6-b9fc15f8d208
Jason Lee
created
fa9360f
windows: Work around font rendering clipping issue (#14075)
Click to expand commit body
Release Notes:
- N/A
张小白
created
3ff738f
Fix panic clicking on multibyte chars (#14086)
Click to expand commit body
Fixes: #12011
When hovering over a multibyte character in a debug build, Zed would
panic.
Follow up to #11296
Release Notes:
- N/A
Conrad Irwin
created
77b31d1
Allow rpc_url to be assigned on Client with test-support feature (#13430)
Click to expand commit body
Also, allow proto messages to be deserialized. This is to support
translating these messages JS types in a new server implementation based
on CloudFlare durable objects.
Release Notes:
- N/A
Release Notes:
- Changed the `modified` color on the one-light color theme to a more
readable value
The current color in the file tree for modified files is basically
unreadable in the default light mode
<img width="238" alt="image"
src="https://github.com/zed-industries/zed/assets/50590465/e553673f-1c24-41d9-b1b9-1dbbb7419d1e">
This change just changes the color to match that of the one-light theme
present in vscode
~~old proposal:
https://github.com/zed-industries/zed/assets/50590465/b4dc4030-bcd8-429a-84b8-2744e213e492~~
new proposal:
<img width="378" alt="image"
src="https://github.com/zed-industries/zed/assets/50590465/41c53019-8cf3-4927-9879-47937388cde8">
This does have a side-effect of changing the modified color on the side
in the editor, but personally I think this change is negligable.
Release Notes:
- Fixed line wrap for CJK characters.
## Demo
https://github.com/zed-industries/zed/assets/5518/c6695bb4-b170-4ce0-9a84-c36b051de438

Fix issues: #4623 #11202
### Render case
```
## fr
Bien démarrer avec la documentation GitHub Découvrez comment commencer à créer, à livrer et à gérer des logiciels avec GitHub. Explorez nos produits, inscrivez-vous pour obtenir un compte et connectez-vous à la plus grande communauté de développement du monde.
## zh
GitHub 入门文档 了解如何开始构建、运输和维护具有 GitHub 的软件。 了解我们的产品,注册一个帐户,与世界上最大的发展社区建立联系。
## es
Documentación sobre la introducción a GitHub Aprende cómo comenzar a crear, enviar y mantener software con GitHub. Explora nuestros productos, regístrate para una cuenta y conéctate con la comunidad de desarrollo más grande del mundo.
## kr
GitHub 설명서 시작 GitHub를 사용하여 소프트웨어 빌드, 납품 및 유지 관리를 시작하는 방법을 알아봅니다. 제품을 탐색하고, 계정에 등록하고, 세계 최대의 개발 커뮤니티와 연결합니다.
## ja
GitHub の概要に関するドキュメント GitHub を使用してソフトウェアの構築、出荷、および保守を始める方法を学びます。 当社の製品を探索し、アカウントにサインアップして、世界最大の開発コミュニティと繋がりましょう。
## pt
Documentação de introdução ao GitHub Aprenda a começar a criar, enviar e manter um software com a GitHub. Explore nossos produtos, inscreva-se em uma conta e conecte-se com a maior comunidade de desenvolvimento do mundo.
## ru
Начало работы с документацией по GitHub Узнайте, как начать создание, доставку и обслуживание программного обеспечения с помощью GitHub. Изучите наши продукты, зарегистрируйте учетную запись и присоединитесь к крупнейшему в мире сообществу разработчиков.
```
Minor breadcrumb style updates
Before:

After:

Release Notes:
- N/A
Nate Butler
created
ee623f7
linux/x11: Restore differentiation of mouse/keyboard focus (#13995)
Click to expand commit body
This restores https://github.com/zed-industries/zed/pull/13943 which was
reverted in #13974 because it was possible to get in a state where focus
could not be restored on a window.
In this PR there's an additional change: `FocusIn` and `FocusOut` events
are always handled, even if the `event.mode` is not "NORMAL". In my
testing, `alt-tabbing` between windows didn't produce `FocusIn` and
`FocusOut` events when we had that check. Now, with the check removed,
it's possible to switch focus between two windows again with `alt-tab`.
Release Notes:
- N/A
---------
Co-authored-by: Conrad <conrad@zed.dev>
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
8a659af
gpui_macros: Enable `extra-traits` feature for `syn` (#14067)
Click to expand commit body
Must enable extra-traits of syn feature to enable Debug trait of
Visibility
Release Notes:
- N/A
---------
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>