diff options
-rw-r--r-- | helix-term/src/commands.rs | 4 | ||||
-rw-r--r-- | helix-view/src/editor.rs | 18 |
2 files changed, 10 insertions, 12 deletions
diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs index 20f51ef4..45e8cd01 100644 --- a/helix-term/src/commands.rs +++ b/helix-term/src/commands.rs @@ -857,8 +857,6 @@ fn goto(cx: &mut Context, locations: Vec<lsp::Location>) { doc.mode = Mode::Normal; - log::info!("{:?}", locations); - match locations.as_slice() { [location] => { cx.editor @@ -874,7 +872,7 @@ fn goto(cx: &mut Context, locations: Vec<lsp::Location>) { locations, |item| { let file = item.uri.as_str(); - let line = item.range.start.line.to_string(); + let line = item.range.start.line; format!("{}:{}", file, line).into() }, move |editor: &mut Editor, item| { diff --git a/helix-view/src/editor.rs b/helix-view/src/editor.rs index 38182126..99c0398f 100644 --- a/helix-view/src/editor.rs +++ b/helix-view/src/editor.rs @@ -34,6 +34,14 @@ impl Editor { pub fn open(&mut self, path: PathBuf, executor: &smol::Executor) -> Result<(), Error> { // TODO: try to find an open view/buffer first + let existing_view_option = self + .tree + .views() + .find(|v| path.to_str().unwrap() == v.0.doc.path().unwrap().to_str().unwrap()); + if let Some(existing_view) = existing_view_option { + self.tree.focus = existing_view.0.id; + return Ok(()); + } let mut doc = Document::load(path, self.theme.scopes())?; @@ -62,15 +70,7 @@ impl Editor { } let view = View::new(doc)?; - let existing_view_option = self - .tree - .views() - .find(|v| view.doc.path().unwrap().to_str() == v.0.doc.path().unwrap().to_str()); - if let Some(existing_view) = existing_view_option { - self.tree.focus = existing_view.0.id; - } else { - self.tree.insert(view); - } + self.tree.insert(view); Ok(()) } |