Going to move LspAdapter from trait to struct

Isaac Clayton created

Change summary

crates/language/src/language.rs | 17 +++++++++++++++++
crates/project/src/project.rs   |  3 +++
2 files changed, 20 insertions(+)

Detailed changes

crates/language/src/language.rs 🔗

@@ -65,6 +65,23 @@ pub struct LanguageServerName(pub Arc<str>);
 
 use async_trait::async_trait;
 
+// pub struct LspAdapter {
+//     name: LanguageServerName,
+//     adapter: Arc<dyn LspAdapter>,
+// }
+
+// impl LspAdapter {
+//     async fn new(adapter: Arc<dyn LspAdapter>) -> Self {
+//         let name = adapter.name().await;
+
+//         LspAdapter { name, adapter }
+//     }
+
+//     fn name(&self) -> LanguageServerName {
+//         self.name
+//     }
+// }
+
 #[async_trait]
 pub trait LspAdapter: 'static + Send + Sync {
     async fn name(&self) -> LanguageServerName;

crates/project/src/project.rs 🔗

@@ -1787,6 +1787,7 @@ impl Project {
             ))?,
         }
         cx.subscribe(buffer, |this, buffer, event, cx| {
+            // TODO(isaac): should this be done in the background?
             this.on_buffer_event(buffer, event, cx).await;
         })
         .detach();
@@ -3310,6 +3311,7 @@ impl Project {
                     return Ok(Default::default());
                 };
 
+                // TODO(isaac): also use join_all
                 struct PartialSymbol {
                     source_worktree_id: WorktreeId,
                     worktree_id: WorktreeId,
@@ -3537,6 +3539,7 @@ impl Project {
                     Default::default()
                 };
 
+                // TODO(isaac): use futures::future::join_all
                 struct PartialCompletion {
                     pub old_range: Range<Anchor>,
                     pub new_text: String,