From d009e10a466b9718e2b2403a5a98719d42a439e1 Mon Sep 17 00:00:00 2001 From: Isaac Clayton Date: Wed, 6 Jul 2022 15:57:25 +0200 Subject: [PATCH] Fix all residual errors, need to polish off warnings and TODOS --- crates/editor/src/editor.rs | 2 +- crates/language/src/language.rs | 2 +- crates/zed/src/languages.rs | 28 ++++++++++++++-------------- crates/zed/src/languages/go.rs | 2 +- crates/zed/src/languages/rust.rs | 4 ++-- 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/crates/editor/src/editor.rs b/crates/editor/src/editor.rs index 6d0427ad612193f607cd890e5b2d33e974e8b045..90f152fc9b9ae6d673fc6ef9445dfdd9aa0b3ba5 100644 --- a/crates/editor/src/editor.rs +++ b/crates/editor/src/editor.rs @@ -6233,7 +6233,7 @@ mod tests { platform::{WindowBounds, WindowOptions}, }; use indoc::indoc; - use language::{FakeLspAdapter, LanguageConfig, FakeLspAdapterInner}; + use language::{FakeLspAdapter, FakeLspAdapterInner, LanguageConfig}; use lsp::FakeLanguageServer; use project::FakeFs; use settings::LanguageSettings; diff --git a/crates/language/src/language.rs b/crates/language/src/language.rs index c87cdd30bb8fd06c43535e6f3c6295cbc47efbf2..a2da63052f1ae647dce90e5283381fd8f3abfaf9 100644 --- a/crates/language/src/language.rs +++ b/crates/language/src/language.rs @@ -78,7 +78,7 @@ pub struct LspAdapter { } impl LspAdapter { - pub async fn new(adapter: impl LspAdapterTrait) -> Arc { + pub async fn new(adapter: T) -> Arc { let adapter = Box::new(adapter); let name = adapter.name().await; let server_args = adapter.server_args().await; diff --git a/crates/zed/src/languages.rs b/crates/zed/src/languages.rs index 753845ef63fbe301e21b736b76a13f474da3d493..f5660667d5ec362fab70bc75ed0653bdb9d0ce64 100644 --- a/crates/zed/src/languages.rs +++ b/crates/zed/src/languages.rs @@ -22,26 +22,26 @@ pub async fn init(languages: Arc, executor: Arc) { ( "c", tree_sitter_c::language(), - Some(Arc::new(c::CLspAdapter) as Arc), + Some(LspAdapter::new(c::CLspAdapter).await), ), ( "cpp", tree_sitter_cpp::language(), - Some(Arc::new(c::CLspAdapter) as Arc), + Some(LspAdapter::new(c::CLspAdapter).await), ), ( "go", tree_sitter_go::language(), - Some(Arc::new(go::GoLspAdapter) as Arc), + Some(LspAdapter::new(go::GoLspAdapter).await), ), ( "json", tree_sitter_json::language(), - // Some(Arc::new(json::JsonLspAdapter)), - language_plugin::new_json(executor) - .await - .log_err() - .map(|lang| Arc::new(lang) as Arc<_>), + // Some(LspAdapter::new(json::JsonLspAdapter)), + match language_plugin::new_json(executor).await.log_err() { + Some(lang) => Some(LspAdapter::new(lang).await), + None => None, + }, ), ( "markdown", @@ -51,12 +51,12 @@ pub async fn init(languages: Arc, executor: Arc) { ( "python", tree_sitter_python::language(), - Some(Arc::new(python::PythonLspAdapter)), + Some(LspAdapter::new(python::PythonLspAdapter).await), ), ( "rust", tree_sitter_rust::language(), - Some(Arc::new(rust::RustLspAdapter)), + Some(LspAdapter::new(rust::RustLspAdapter).await), ), ( "toml", @@ -66,17 +66,17 @@ pub async fn init(languages: Arc, executor: Arc) { ( "tsx", tree_sitter_typescript::language_tsx(), - Some(Arc::new(typescript::TypeScriptLspAdapter)), + Some(LspAdapter::new(typescript::TypeScriptLspAdapter).await), ), ( "typescript", tree_sitter_typescript::language_typescript(), - Some(Arc::new(typescript::TypeScriptLspAdapter)), + Some(LspAdapter::new(typescript::TypeScriptLspAdapter).await), ), ( "javascript", tree_sitter_typescript::language_tsx(), - Some(Arc::new(typescript::TypeScriptLspAdapter)), + Some(LspAdapter::new(typescript::TypeScriptLspAdapter).await), ), ] { languages.add(Arc::new(language(name, grammar, lsp_adapter))); @@ -86,7 +86,7 @@ pub async fn init(languages: Arc, executor: Arc) { pub(crate) fn language( name: &str, grammar: tree_sitter::Language, - lsp_adapter: Option>, + lsp_adapter: Option>, ) -> Language { let config = toml::from_slice( &LanguageDir::get(&format!("{}/config.toml", name)) diff --git a/crates/zed/src/languages/go.rs b/crates/zed/src/languages/go.rs index a8fe908867d422a3abc5ac0113f8d18824642b89..8e8e4b300b63b7d84c18957d68fbc64a7f67105e 100644 --- a/crates/zed/src/languages/go.rs +++ b/crates/zed/src/languages/go.rs @@ -314,7 +314,7 @@ mod tests { let language = language( "go", tree_sitter_go::language(), - Some(Arc::new(GoLspAdapter)), + Some(smol::block_on(LspAdapter::new(GoLspAdapter))), ); let theme = SyntaxTheme::new(vec![ diff --git a/crates/zed/src/languages/rust.rs b/crates/zed/src/languages/rust.rs index 03999b15ff2d90fcbe95790916adda878cccc6d4..5a38c8d7c5b243a8779a9ec6ba05f081c7dfd382 100644 --- a/crates/zed/src/languages/rust.rs +++ b/crates/zed/src/languages/rust.rs @@ -305,7 +305,7 @@ mod tests { let language = language( "rust", tree_sitter_rust::language(), - Some(Arc::new(RustLspAdapter)), + Some(smol::block_on(LspAdapter::new(RustLspAdapter))), ); let grammar = language.grammar().unwrap(); let theme = SyntaxTheme::new(vec![ @@ -384,7 +384,7 @@ mod tests { let language = language( "rust", tree_sitter_rust::language(), - Some(Arc::new(RustLspAdapter)), + Some(smol::block_on(LspAdapter::new(RustLspAdapter))), ); let grammar = language.grammar().unwrap(); let theme = SyntaxTheme::new(vec![