mirror of
https://github.com/zed-industries/zed.git
synced 2024-12-27 12:02:07 +03:00
Don't select entire item when jumping to a project symbol
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
This commit is contained in:
parent
5d2201c4ca
commit
6be4b1ef6a
@ -337,7 +337,11 @@ impl ProjectSymbolsView {
|
||||
))
|
||||
.boxed(),
|
||||
)
|
||||
.with_child(Label::new(path.to_string(), style.label.clone()).boxed())
|
||||
.with_child(
|
||||
// Avoid styling the path differently when it is selected, since
|
||||
// the symbol's syntax highlighting doesn't change when selected.
|
||||
Label::new(path.to_string(), settings.theme.selector.item.label.clone()).boxed(),
|
||||
)
|
||||
.contained()
|
||||
.with_style(style.container)
|
||||
.boxed()
|
||||
@ -372,18 +376,19 @@ impl ProjectSymbolsView {
|
||||
cx.spawn(|workspace, mut cx| async move {
|
||||
let buffer = buffer.await?;
|
||||
workspace.update(&mut cx, |workspace, cx| {
|
||||
let start;
|
||||
let end;
|
||||
{
|
||||
let buffer = buffer.read(cx);
|
||||
start = buffer.clip_point_utf16(symbol.range.start, Bias::Left);
|
||||
end = buffer.clip_point_utf16(symbol.range.end, Bias::Left);
|
||||
}
|
||||
|
||||
let editor = workspace.open_item(BufferItemHandle(buffer), cx);
|
||||
let editor = editor.downcast::<Editor>().unwrap();
|
||||
let position = buffer
|
||||
.read(cx)
|
||||
.clip_point_utf16(symbol.range.start, Bias::Left);
|
||||
let editor = workspace
|
||||
.open_item(BufferItemHandle(buffer), cx)
|
||||
.downcast::<Editor>()
|
||||
.unwrap();
|
||||
editor.update(cx, |editor, cx| {
|
||||
editor.select_ranges([start..end], Some(Autoscroll::Center), cx);
|
||||
editor.select_ranges(
|
||||
[position..position],
|
||||
Some(Autoscroll::Center),
|
||||
cx,
|
||||
);
|
||||
});
|
||||
});
|
||||
Ok::<_, anyhow::Error>(())
|
||||
|
Loading…
Reference in New Issue
Block a user