Only send the document close event if we're closing the underlying buffer
This commit is contained in:
parent
c20813690f
commit
c0a8b81487
2 changed files with 18 additions and 18 deletions
|
@ -856,7 +856,7 @@ pub fn command_mode(cx: &mut Context) {
|
|||
|
||||
match *parts.as_slice() {
|
||||
["q"] | ["quit"] => {
|
||||
editor.close(editor.view().id);
|
||||
editor.close(editor.view().id, /* close_buffer */ false);
|
||||
}
|
||||
["o", path] | ["open", path] => {
|
||||
editor.open(path.into(), Action::Replace);
|
||||
|
@ -2085,7 +2085,7 @@ pub fn space_mode(cx: &mut Context) {
|
|||
}
|
||||
'c' => {
|
||||
// close current split
|
||||
cx.editor.close(cx.view_id);
|
||||
cx.editor.close(cx.view_id, /* close_buffer */ false);
|
||||
}
|
||||
// ' ' => toggle_alternate_buffer(cx),
|
||||
// TODO: temporary since space mode took it's old key
|
||||
|
|
|
@ -162,26 +162,26 @@ impl Editor {
|
|||
Ok(id)
|
||||
}
|
||||
|
||||
pub fn close(&mut self, id: ViewId) {
|
||||
pub fn close(&mut self, id: ViewId, close_buffer: bool) {
|
||||
let view = self.tree.get(self.tree.focus);
|
||||
// get around borrowck issues
|
||||
let language_servers = &mut self.language_servers;
|
||||
|
||||
let doc = &self.documents[view.doc];
|
||||
|
||||
let language_server = doc
|
||||
.language
|
||||
.as_ref()
|
||||
.and_then(|language| language_servers.get(language));
|
||||
|
||||
if let Some(language_server) = language_server {
|
||||
tokio::spawn(language_server.text_document_did_close(doc.identifier()));
|
||||
}
|
||||
|
||||
// remove selection
|
||||
self.documents[view.doc].selections.remove(&id);
|
||||
|
||||
// self.documents.remove(view.doc);
|
||||
if close_buffer {
|
||||
// get around borrowck issues
|
||||
let language_servers = &mut self.language_servers;
|
||||
let doc = &self.documents[view.doc];
|
||||
|
||||
let language_server = doc
|
||||
.language
|
||||
.as_ref()
|
||||
.and_then(|language| language_servers.get(language));
|
||||
if let Some(language_server) = language_server {
|
||||
tokio::spawn(language_server.text_document_did_close(doc.identifier()));
|
||||
}
|
||||
self.documents.remove(view.doc);
|
||||
}
|
||||
|
||||
self.tree.remove(id);
|
||||
self._refresh();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue