Move lsp configuration into language crate
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
This commit is contained in:
parent
de8218314c
commit
7d5425e142
8 changed files with 79 additions and 47 deletions
|
@ -8,12 +8,11 @@ use futures::Future;
|
|||
use fuzzy::{PathMatch, PathMatchCandidate, PathMatchCandidateSet};
|
||||
use gpui::{AppContext, Entity, ModelContext, ModelHandle, Task};
|
||||
use language::LanguageRegistry;
|
||||
use lsp::LanguageServer;
|
||||
use std::{
|
||||
path::Path,
|
||||
sync::{atomic::AtomicBool, Arc},
|
||||
};
|
||||
use util::TryFutureExt as _;
|
||||
use util::{ResultExt, TryFutureExt as _};
|
||||
|
||||
pub use fs::*;
|
||||
pub use worktree::*;
|
||||
|
@ -74,11 +73,20 @@ impl Project {
|
|||
let rpc = self.client.clone();
|
||||
let languages = self.languages.clone();
|
||||
let path = Arc::from(abs_path);
|
||||
let language_server = LanguageServer::rust(&path, cx);
|
||||
let language_server = languages
|
||||
.get_language("Rust")
|
||||
.unwrap()
|
||||
.start_server(&path, cx);
|
||||
cx.spawn(|this, mut cx| async move {
|
||||
let worktree =
|
||||
Worktree::open_local(rpc, path, fs, languages, Some(language_server?), &mut cx)
|
||||
.await?;
|
||||
let worktree = Worktree::open_local(
|
||||
rpc,
|
||||
path,
|
||||
fs,
|
||||
languages,
|
||||
language_server.log_err().flatten(),
|
||||
&mut cx,
|
||||
)
|
||||
.await?;
|
||||
this.update(&mut cx, |this, cx| {
|
||||
this.add_worktree(worktree.clone(), cx);
|
||||
});
|
||||
|
|
|
@ -295,7 +295,7 @@ impl Worktree {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn language_server(&self) -> Option<&Arc<lsp::LanguageServer>> {
|
||||
pub fn language_server(&self) -> Option<&Arc<LanguageServer>> {
|
||||
match self {
|
||||
Worktree::Local(worktree) => worktree.language_server.as_ref(),
|
||||
Worktree::Remote(_) => None,
|
||||
|
@ -2872,7 +2872,6 @@ mod tests {
|
|||
use anyhow::Result;
|
||||
use client::test::FakeServer;
|
||||
use fs::RealFs;
|
||||
use language::Point;
|
||||
use lsp::Url;
|
||||
use rand::prelude::*;
|
||||
use serde_json::json;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue