From 172e27641123dc724278817ca9e7686c91c2c03a Mon Sep 17 00:00:00 2001 From: Isaac Clayton Date: Tue, 5 Jul 2022 15:11:35 +0200 Subject: [PATCH] Fix warnings and propogate async further --- crates/project/src/project.rs | 20 +++++++++++--------- crates/zed/src/languages.rs | 5 +---- crates/zed/src/languages/c.rs | 10 +++------- crates/zed/src/languages/go.rs | 12 +++--------- crates/zed/src/languages/json.rs | 10 +++------- crates/zed/src/languages/language_plugin.rs | 2 -- crates/zed/src/languages/python.rs | 10 +++------- crates/zed/src/languages/rust.rs | 15 ++++----------- crates/zed/src/languages/typescript.rs | 10 +++------- 9 files changed, 31 insertions(+), 63 deletions(-) diff --git a/crates/project/src/project.rs b/crates/project/src/project.rs index 262171e5100baca22e02c4068067d9d8a04035ad..dddaebf551db025fa640f2580bdbf4ce4fd8d8c2 100644 --- a/crates/project/src/project.rs +++ b/crates/project/src/project.rs @@ -31,8 +31,8 @@ use language::{ Transaction, }; use lsp::{ - CompletionList, DiagnosticSeverity, DiagnosticTag, DocumentHighlightKind, LanguageServer, - LanguageString, MarkedString, + DiagnosticSeverity, DiagnosticTag, DocumentHighlightKind, LanguageServer, LanguageString, + MarkedString, }; use lsp_command::*; use parking_lot::Mutex; @@ -1732,7 +1732,7 @@ impl Project { .await?; this.update(&mut cx, |this, cx| { this.assign_language_to_buffer(&buffer, cx); - this.register_buffer_with_language_server(&buffer, cx); + this.register_buffer_with_language_server(&buffer, cx).await; }); Ok(()) }) @@ -1786,12 +1786,12 @@ impl Project { ))?, } cx.subscribe(buffer, |this, buffer, event, cx| { - this.on_buffer_event(buffer, event, cx); + this.on_buffer_event(buffer, event, cx).await; }) .detach(); self.assign_language_to_buffer(buffer, cx); - self.register_buffer_with_language_server(buffer, cx); + self.register_buffer_with_language_server(buffer, cx).await; cx.observe_release(buffer, |this, buffer, cx| { if let Some(file) = File::from_dyn(buffer.file()) { if file.is_local() { @@ -2052,7 +2052,8 @@ impl Project { let worktree = file.worktree.read(cx).as_local()?; let worktree_id = worktree.id(); let worktree_abs_path = worktree.abs_path().clone(); - self.start_language_server(worktree_id, worktree_abs_path, language, cx); + self.start_language_server(worktree_id, worktree_abs_path, language, cx) + .await; None } @@ -2404,7 +2405,8 @@ impl Project { .collect(); for (worktree_id, worktree_abs_path, full_path) in language_server_lookup_info { let language = self.languages.select_language(&full_path)?; - self.restart_language_server(worktree_id, worktree_abs_path, language, cx); + self.restart_language_server(worktree_id, worktree_abs_path, language, cx) + .await; } None @@ -2462,7 +2464,7 @@ impl Project { adapter: &Arc, cx: &mut ModelContext<'_, Self>, ) { - adapter.process_diagnostics(&mut params); + adapter.process_diagnostics(&mut params).await; self.update_diagnostics( server_id, params, @@ -4640,7 +4642,7 @@ impl Project { for (buffer, old_path) in renamed_buffers { self.unregister_buffer_from_language_server(&buffer, old_path, cx); self.assign_language_to_buffer(&buffer, cx); - self.register_buffer_with_language_server(&buffer, cx); + self.register_buffer_with_language_server(&buffer, cx).await; } } diff --git a/crates/zed/src/languages.rs b/crates/zed/src/languages.rs index 75bf8212f8f920226e771c8469695e6bdedd1a3d..753845ef63fbe301e21b736b76a13f474da3d493 100644 --- a/crates/zed/src/languages.rs +++ b/crates/zed/src/languages.rs @@ -1,7 +1,4 @@ -use gpui::{ - executor::{self, Background}, - Task, -}; +use gpui::executor::Background; pub use language::*; use rust_embed::RustEmbed; use std::{borrow::Cow, str, sync::Arc}; diff --git a/crates/zed/src/languages/c.rs b/crates/zed/src/languages/c.rs index ca720120945787062c76f4dc6d3ba56e33340d05..54554beaf6c52a47d98b9e16aa8be3dac766a5b8 100644 --- a/crates/zed/src/languages/c.rs +++ b/crates/zed/src/languages/c.rs @@ -2,15 +2,11 @@ use super::installation::{latest_github_release, GitHubLspBinaryVersion}; use anyhow::{anyhow, Context, Result}; use async_trait::async_trait; use client::http::HttpClient; -use futures::{future::BoxFuture, FutureExt, StreamExt}; +use futures::StreamExt; pub use language::*; use smol::fs::{self, File}; -use std::{ - any::Any, - path::{Path, PathBuf}, - sync::Arc, -}; -use util::{ResultExt, TryFutureExt}; +use std::{any::Any, path::PathBuf, sync::Arc}; +use util::ResultExt; pub struct CLspAdapter; diff --git a/crates/zed/src/languages/go.rs b/crates/zed/src/languages/go.rs index 6445036a75ae830946892c44646a528de0b5583e..314055e5ffe48aecb44ed56f7225c620831817b6 100644 --- a/crates/zed/src/languages/go.rs +++ b/crates/zed/src/languages/go.rs @@ -2,19 +2,13 @@ use super::installation::latest_github_release; use anyhow::{anyhow, Result}; use async_trait::async_trait; use client::http::HttpClient; -use futures::{future::BoxFuture, FutureExt, StreamExt}; +use futures::StreamExt; pub use language::*; use lazy_static::lazy_static; use regex::Regex; use smol::{fs, process}; -use std::{ - any::Any, - ops::Range, - path::{Path, PathBuf}, - str, - sync::Arc, -}; -use util::{ResultExt, TryFutureExt}; +use std::{any::Any, ops::Range, path::PathBuf, str, sync::Arc}; +use util::ResultExt; #[derive(Copy, Clone)] pub struct GoLspAdapter; diff --git a/crates/zed/src/languages/json.rs b/crates/zed/src/languages/json.rs index 04204dc665701518c7c567d282afa25ff6325a4d..29e8e7da020fef625b50d9fa794778ed43a1a9e2 100644 --- a/crates/zed/src/languages/json.rs +++ b/crates/zed/src/languages/json.rs @@ -2,16 +2,12 @@ use super::installation::{npm_install_packages, npm_package_latest_version}; use anyhow::{anyhow, Context, Result}; use async_trait::async_trait; use client::http::HttpClient; -use futures::{future::BoxFuture, FutureExt, StreamExt}; +use futures::StreamExt; use language::{LanguageServerName, LspAdapter}; use serde_json::json; use smol::fs; -use std::{ - any::Any, - path::{Path, PathBuf}, - sync::Arc, -}; -use util::{ResultExt, TryFutureExt}; +use std::{any::Any, path::PathBuf, sync::Arc}; +use util::ResultExt; pub struct JsonLspAdapter; diff --git a/crates/zed/src/languages/language_plugin.rs b/crates/zed/src/languages/language_plugin.rs index 77df85508e6f3928572470457e57360a18bd817c..51284afb2829ddfba6fa595ce8264a7af2fc764b 100644 --- a/crates/zed/src/languages/language_plugin.rs +++ b/crates/zed/src/languages/language_plugin.rs @@ -3,11 +3,9 @@ use async_trait::async_trait; use client::http::HttpClient; use futures::lock::Mutex; use futures::Future; -use futures::{future::BoxFuture, FutureExt}; use gpui::executor::Background; use language::{LanguageServerName, LspAdapter}; use plugin_runtime::{Plugin, PluginBuilder, WasiFn}; -use std::task::Poll; use std::{any::Any, path::PathBuf, sync::Arc}; use util::ResultExt; diff --git a/crates/zed/src/languages/python.rs b/crates/zed/src/languages/python.rs index 475856b47ded20b9cf92401a4c2c3daf399af6b5..ca0b24bda78f024701ecdec2582cb0225a9dc9da 100644 --- a/crates/zed/src/languages/python.rs +++ b/crates/zed/src/languages/python.rs @@ -2,15 +2,11 @@ use super::installation::{npm_install_packages, npm_package_latest_version}; use anyhow::{anyhow, Context, Result}; use async_trait::async_trait; use client::http::HttpClient; -use futures::{future::BoxFuture, FutureExt, StreamExt}; +use futures::StreamExt; use language::{LanguageServerName, LspAdapter}; use smol::fs; -use std::{ - any::Any, - path::{Path, PathBuf}, - sync::Arc, -}; -use util::{ResultExt, TryFutureExt}; +use std::{any::Any, path::PathBuf, sync::Arc}; +use util::ResultExt; pub struct PythonLspAdapter; diff --git a/crates/zed/src/languages/rust.rs b/crates/zed/src/languages/rust.rs index bba5b526c96dd084e2b52e4f1b3d7eef1aa4caef..7d7c60dea419e7f9a2fa7944589162f6db1fb985 100644 --- a/crates/zed/src/languages/rust.rs +++ b/crates/zed/src/languages/rust.rs @@ -3,20 +3,13 @@ use anyhow::{anyhow, Result}; use async_compression::futures::bufread::GzipDecoder; use async_trait::async_trait; use client::http::HttpClient; -use futures::{future::BoxFuture, io::BufReader, FutureExt, StreamExt}; +use futures::{io::BufReader, StreamExt}; pub use language::*; use lazy_static::lazy_static; use regex::Regex; use smol::fs::{self, File}; -use std::{ - any::Any, - borrow::Cow, - env::consts, - path::{Path, PathBuf}, - str, - sync::Arc, -}; -use util::{ResultExt, TryFutureExt}; +use std::{any::Any, borrow::Cow, env::consts, path::PathBuf, str, sync::Arc}; +use util::ResultExt; pub struct RustLspAdapter; @@ -290,7 +283,7 @@ mod tests { }, ], }; - RustLspAdapter.process_diagnostics(&mut params); + smol::block_on(RustLspAdapter.process_diagnostics(&mut params)); assert_eq!(params.diagnostics[0].message, "use of moved value `a`"); diff --git a/crates/zed/src/languages/typescript.rs b/crates/zed/src/languages/typescript.rs index 890317948de8af8bffef9878a9accd3273e3766a..199a7f22ae28d029867cd3281c9b12ef1dc746f4 100644 --- a/crates/zed/src/languages/typescript.rs +++ b/crates/zed/src/languages/typescript.rs @@ -2,16 +2,12 @@ use super::installation::{npm_install_packages, npm_package_latest_version}; use anyhow::{anyhow, Context, Result}; use async_trait::async_trait; use client::http::HttpClient; -use futures::{future::BoxFuture, FutureExt, StreamExt}; +use futures::StreamExt; use language::{LanguageServerName, LspAdapter}; use serde_json::json; use smol::fs; -use std::{ - any::Any, - path::{Path, PathBuf}, - sync::Arc, -}; -use util::{ResultExt, TryFutureExt}; +use std::{any::Any, path::PathBuf, sync::Arc}; +use util::ResultExt; pub struct TypeScriptLspAdapter;