agent: Keep horizontal scrollbar in edit file tool cards (#31510)
Previously disabled both scrollbars, but horizontal scrolling is still needed when lines exceed the viewport width. Now editors can disable a single scroll axis, not just both. Release Notes: - N/A
This commit is contained in:
parent
8faeb34367
commit
b5c2b25a76
3 changed files with 37 additions and 11 deletions
|
@ -9,7 +9,7 @@ use assistant_tool::{
|
||||||
ToolUseStatus,
|
ToolUseStatus,
|
||||||
};
|
};
|
||||||
use buffer_diff::{BufferDiff, BufferDiffSnapshot};
|
use buffer_diff::{BufferDiff, BufferDiffSnapshot};
|
||||||
use editor::{Editor, EditorMode, MultiBuffer, PathKey};
|
use editor::{Editor, EditorMode, MinimapVisibility, MultiBuffer, PathKey};
|
||||||
use futures::StreamExt;
|
use futures::StreamExt;
|
||||||
use gpui::{
|
use gpui::{
|
||||||
Animation, AnimationExt, AnyWindowHandle, App, AppContext, AsyncApp, Entity, EntityId, Task,
|
Animation, AnimationExt, AnyWindowHandle, App, AppContext, AsyncApp, Entity, EntityId, Task,
|
||||||
|
@ -428,7 +428,9 @@ impl EditFileToolCard {
|
||||||
editor.set_show_gutter(false, cx);
|
editor.set_show_gutter(false, cx);
|
||||||
editor.disable_inline_diagnostics();
|
editor.disable_inline_diagnostics();
|
||||||
editor.disable_expand_excerpt_buttons(cx);
|
editor.disable_expand_excerpt_buttons(cx);
|
||||||
editor.disable_scrollbars_and_minimap(window, cx);
|
// Keep horizontal scrollbar so user can scroll horizontally if needed
|
||||||
|
editor.set_show_vertical_scrollbar(false, cx);
|
||||||
|
editor.set_minimap_visibility(MinimapVisibility::Disabled, window, cx);
|
||||||
editor.set_soft_wrap_mode(SoftWrap::None, cx);
|
editor.set_soft_wrap_mode(SoftWrap::None, cx);
|
||||||
editor.scroll_manager.set_forbid_vertical_scroll(true);
|
editor.scroll_manager.set_forbid_vertical_scroll(true);
|
||||||
editor.set_show_indent_guides(false, cx);
|
editor.set_show_indent_guides(false, cx);
|
||||||
|
|
|
@ -63,8 +63,8 @@ use dap::TelemetrySpawnLocation;
|
||||||
use display_map::*;
|
use display_map::*;
|
||||||
pub use display_map::{ChunkRenderer, ChunkRendererContext, DisplayPoint, FoldPlaceholder};
|
pub use display_map::{ChunkRenderer, ChunkRendererContext, DisplayPoint, FoldPlaceholder};
|
||||||
pub use editor_settings::{
|
pub use editor_settings::{
|
||||||
CurrentLineHighlight, EditorSettings, HideMouseMode, ScrollBeyondLastLine, SearchSettings,
|
CurrentLineHighlight, EditorSettings, HideMouseMode, ScrollBeyondLastLine, ScrollbarAxes,
|
||||||
ShowScrollbar,
|
SearchSettings, ShowScrollbar,
|
||||||
};
|
};
|
||||||
use editor_settings::{GoToDefinitionFallback, Minimap as MinimapSettings};
|
use editor_settings::{GoToDefinitionFallback, Minimap as MinimapSettings};
|
||||||
pub use editor_settings_controls::*;
|
pub use editor_settings_controls::*;
|
||||||
|
@ -961,7 +961,7 @@ pub struct Editor {
|
||||||
mode: EditorMode,
|
mode: EditorMode,
|
||||||
show_breadcrumbs: bool,
|
show_breadcrumbs: bool,
|
||||||
show_gutter: bool,
|
show_gutter: bool,
|
||||||
show_scrollbars: bool,
|
show_scrollbars: ScrollbarAxes,
|
||||||
minimap_visibility: MinimapVisibility,
|
minimap_visibility: MinimapVisibility,
|
||||||
offset_content: bool,
|
offset_content: bool,
|
||||||
disable_expand_excerpt_buttons: bool,
|
disable_expand_excerpt_buttons: bool,
|
||||||
|
@ -1801,7 +1801,10 @@ impl Editor {
|
||||||
project,
|
project,
|
||||||
blink_manager: blink_manager.clone(),
|
blink_manager: blink_manager.clone(),
|
||||||
show_local_selections: true,
|
show_local_selections: true,
|
||||||
show_scrollbars: full_mode,
|
show_scrollbars: ScrollbarAxes {
|
||||||
|
horizontal: full_mode,
|
||||||
|
vertical: full_mode,
|
||||||
|
},
|
||||||
minimap_visibility: MinimapVisibility::for_mode(&mode, cx),
|
minimap_visibility: MinimapVisibility::for_mode(&mode, cx),
|
||||||
offset_content: !matches!(mode, EditorMode::SingleLine { .. }),
|
offset_content: !matches!(mode, EditorMode::SingleLine { .. }),
|
||||||
show_breadcrumbs: EditorSettings::get_global(cx).toolbar.breadcrumbs,
|
show_breadcrumbs: EditorSettings::get_global(cx).toolbar.breadcrumbs,
|
||||||
|
@ -16999,8 +17002,21 @@ impl Editor {
|
||||||
cx.notify();
|
cx.notify();
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn set_show_scrollbars(&mut self, show_scrollbars: bool, cx: &mut Context<Self>) {
|
pub fn set_show_scrollbars(&mut self, show: bool, cx: &mut Context<Self>) {
|
||||||
self.show_scrollbars = show_scrollbars;
|
self.show_scrollbars = ScrollbarAxes {
|
||||||
|
horizontal: show,
|
||||||
|
vertical: show,
|
||||||
|
};
|
||||||
|
cx.notify();
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn set_show_vertical_scrollbar(&mut self, show: bool, cx: &mut Context<Self>) {
|
||||||
|
self.show_scrollbars.vertical = show;
|
||||||
|
cx.notify();
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn set_show_horizontal_scrollbar(&mut self, show: bool, cx: &mut Context<Self>) {
|
||||||
|
self.show_scrollbars.horizontal = show;
|
||||||
cx.notify();
|
cx.notify();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1465,7 +1465,10 @@ impl EditorElement {
|
||||||
window: &mut Window,
|
window: &mut Window,
|
||||||
cx: &mut App,
|
cx: &mut App,
|
||||||
) -> Option<EditorScrollbars> {
|
) -> Option<EditorScrollbars> {
|
||||||
if !self.editor.read(cx).show_scrollbars || self.style.scrollbar_width.is_zero() {
|
let show_scrollbars = self.editor.read(cx).show_scrollbars;
|
||||||
|
if (!show_scrollbars.horizontal && !show_scrollbars.vertical)
|
||||||
|
|| self.style.scrollbar_width.is_zero()
|
||||||
|
{
|
||||||
return None;
|
return None;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1510,7 +1513,12 @@ impl EditorElement {
|
||||||
};
|
};
|
||||||
|
|
||||||
Some(EditorScrollbars::from_scrollbar_axes(
|
Some(EditorScrollbars::from_scrollbar_axes(
|
||||||
scrollbar_settings.axes,
|
ScrollbarAxes {
|
||||||
|
horizontal: scrollbar_settings.axes.horizontal
|
||||||
|
&& self.editor.read(cx).show_scrollbars.horizontal,
|
||||||
|
vertical: scrollbar_settings.axes.vertical
|
||||||
|
&& self.editor.read(cx).show_scrollbars.vertical,
|
||||||
|
},
|
||||||
scrollbar_layout_information,
|
scrollbar_layout_information,
|
||||||
content_offset,
|
content_offset,
|
||||||
scroll_position,
|
scroll_position,
|
||||||
|
@ -7558,7 +7566,7 @@ impl Element for EditorElement {
|
||||||
let scrollbars_shown = settings.scrollbar.show != ShowScrollbar::Never;
|
let scrollbars_shown = settings.scrollbar.show != ShowScrollbar::Never;
|
||||||
let vertical_scrollbar_width = (scrollbars_shown
|
let vertical_scrollbar_width = (scrollbars_shown
|
||||||
&& settings.scrollbar.axes.vertical
|
&& settings.scrollbar.axes.vertical
|
||||||
&& self.editor.read(cx).show_scrollbars)
|
&& self.editor.read(cx).show_scrollbars.vertical)
|
||||||
.then_some(style.scrollbar_width)
|
.then_some(style.scrollbar_width)
|
||||||
.unwrap_or_default();
|
.unwrap_or_default();
|
||||||
let minimap_width = self
|
let minimap_width = self
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue