preparing for gd merge

pull/8/head
Jan Hrastnik 4 years ago committed by Blaž Hrastnik
parent 4e461bea2f
commit eadad13efa

@ -857,8 +857,6 @@ fn goto(cx: &mut Context, locations: Vec<lsp::Location>) {
doc.mode = Mode::Normal; doc.mode = Mode::Normal;
log::info!("{:?}", locations);
match locations.as_slice() { match locations.as_slice() {
[location] => { [location] => {
cx.editor cx.editor
@ -874,7 +872,7 @@ fn goto(cx: &mut Context, locations: Vec<lsp::Location>) {
locations, locations,
|item| { |item| {
let file = item.uri.as_str(); let file = item.uri.as_str();
let line = item.range.start.line.to_string(); let line = item.range.start.line;
format!("{}:{}", file, line).into() format!("{}:{}", file, line).into()
}, },
move |editor: &mut Editor, item| { move |editor: &mut Editor, item| {

@ -34,6 +34,14 @@ impl Editor {
pub fn open(&mut self, path: PathBuf, executor: &smol::Executor) -> Result<(), Error> { pub fn open(&mut self, path: PathBuf, executor: &smol::Executor) -> Result<(), Error> {
// TODO: try to find an open view/buffer first // 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())?; let mut doc = Document::load(path, self.theme.scopes())?;
@ -62,15 +70,7 @@ impl Editor {
} }
let view = View::new(doc)?; let view = View::new(doc)?;
let existing_view_option = self self.tree.insert(view);
.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);
}
Ok(()) Ok(())
} }

Loading…
Cancel
Save