Display language server name in status bar
This commit is contained in:
parent
4243f0c339
commit
45fb470f4d
7 changed files with 228 additions and 86 deletions
|
@ -83,8 +83,9 @@ impl Server {
|
|||
.add_request_handler(Server::register_worktree)
|
||||
.add_message_handler(Server::unregister_worktree)
|
||||
.add_request_handler(Server::update_worktree)
|
||||
.add_message_handler(Server::start_language_server)
|
||||
.add_message_handler(Server::update_language_server)
|
||||
.add_message_handler(Server::update_diagnostic_summary)
|
||||
.add_message_handler(Server::lsp_event)
|
||||
.add_request_handler(Server::forward_project_request::<proto::GetDefinition>)
|
||||
.add_request_handler(Server::forward_project_request::<proto::GetReferences>)
|
||||
.add_request_handler(Server::forward_project_request::<proto::SearchProject>)
|
||||
|
@ -385,6 +386,7 @@ impl Server {
|
|||
worktrees,
|
||||
replica_id: joined.replica_id as u32,
|
||||
collaborators,
|
||||
language_servers: joined.project.language_servers.clone(),
|
||||
};
|
||||
let connection_ids = joined.project.connection_ids();
|
||||
let contact_user_ids = joined.project.authorized_user_ids();
|
||||
|
@ -534,9 +536,29 @@ impl Server {
|
|||
Ok(())
|
||||
}
|
||||
|
||||
async fn lsp_event(
|
||||
async fn start_language_server(
|
||||
mut self: Arc<Server>,
|
||||
request: TypedEnvelope<proto::StartLanguageServer>,
|
||||
) -> tide::Result<()> {
|
||||
let receiver_ids = self.state_mut().start_language_server(
|
||||
request.payload.project_id,
|
||||
request.sender_id,
|
||||
request
|
||||
.payload
|
||||
.server
|
||||
.clone()
|
||||
.ok_or_else(|| anyhow!("invalid language server"))?,
|
||||
)?;
|
||||
broadcast(request.sender_id, receiver_ids, |connection_id| {
|
||||
self.peer
|
||||
.forward_send(request.sender_id, connection_id, request.payload.clone())
|
||||
})?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
async fn update_language_server(
|
||||
self: Arc<Server>,
|
||||
request: TypedEnvelope<proto::LspEvent>,
|
||||
request: TypedEnvelope<proto::UpdateLanguageServer>,
|
||||
) -> tide::Result<()> {
|
||||
let receiver_ids = self
|
||||
.state()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue