Debounce refresh of inlay hints on buffer edits (#8282)
I think this makes it less chaotic to edit text when the inlay hints are on. It's for cases where you're editing to the right side of an inlay hint. Example: ```rust for name in names.iter().map(|item| item.len()) { println!("{:?}", name); } ``` We display a `usize` inlay hint right next to `name`. But as soon as you remove that `.` in `names.iter` your cursor jumps around because the inlay hint has been removed. With this change we now have a 700ms debounce before we update the inlay hints. VS Code seems to have an even longer debounce, I think somewhere around ~1s. Release Notes: - Added debouncing to make it easier to edit text when inlay hints are enabled and to save rendering of inlay hints when scrolling. Both debounce durations can be configured with `{"inlay_hints": {"edit_debounce_ms": 700}}` (default) and `{"inlay_hints": {"scroll_debounce_ms": 50}}`. Set a value to `0` to turn off the debouncing. ### Before https://github.com/zed-industries/zed/assets/1185253/3afbe548-dcfb-45a3-ab9f-cce14c04a148 ### After https://github.com/zed-industries/zed/assets/1185253/7ea90e42-bca6-4f6c-995e-83324669ab43 --------- Co-authored-by: Kirill <kirill@zed.dev>
This commit is contained in:
parent
cbdc07dcd0
commit
ddca6a3fb7
8 changed files with 137 additions and 19 deletions
|
@ -1426,6 +1426,8 @@ async fn test_mutual_editor_inlay_hint_cache_update(
|
|||
store.update_user_settings::<AllLanguageSettings>(cx, |settings| {
|
||||
settings.defaults.inlay_hints = Some(InlayHintSettings {
|
||||
enabled: true,
|
||||
edit_debounce_ms: 0,
|
||||
scroll_debounce_ms: 0,
|
||||
show_type_hints: true,
|
||||
show_parameter_hints: false,
|
||||
show_other_hints: true,
|
||||
|
@ -1438,6 +1440,8 @@ async fn test_mutual_editor_inlay_hint_cache_update(
|
|||
store.update_user_settings::<AllLanguageSettings>(cx, |settings| {
|
||||
settings.defaults.inlay_hints = Some(InlayHintSettings {
|
||||
enabled: true,
|
||||
edit_debounce_ms: 0,
|
||||
scroll_debounce_ms: 0,
|
||||
show_type_hints: true,
|
||||
show_parameter_hints: false,
|
||||
show_other_hints: true,
|
||||
|
@ -1695,6 +1699,8 @@ async fn test_inlay_hint_refresh_is_forwarded(
|
|||
store.update_user_settings::<AllLanguageSettings>(cx, |settings| {
|
||||
settings.defaults.inlay_hints = Some(InlayHintSettings {
|
||||
enabled: false,
|
||||
edit_debounce_ms: 0,
|
||||
scroll_debounce_ms: 0,
|
||||
show_type_hints: false,
|
||||
show_parameter_hints: false,
|
||||
show_other_hints: false,
|
||||
|
@ -1707,6 +1713,8 @@ async fn test_inlay_hint_refresh_is_forwarded(
|
|||
store.update_user_settings::<AllLanguageSettings>(cx, |settings| {
|
||||
settings.defaults.inlay_hints = Some(InlayHintSettings {
|
||||
enabled: true,
|
||||
edit_debounce_ms: 0,
|
||||
scroll_debounce_ms: 0,
|
||||
show_type_hints: true,
|
||||
show_parameter_hints: true,
|
||||
show_other_hints: true,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue