@@ -3,7 +3,7 @@ use crate::{
3 Call, Error, OffsetEncoding, Result,
3 Call, Error, OffsetEncoding, Result,
6−use helix_core::{ChangeSet, Rope};
6+use helix_core::{find_root, ChangeSet, Rope};
8// use std::collections::HashMap;
8// use std::collections::HashMap;
9use std::future::Future;
9use std::future::Future;
@@ -218,13 +218,14 @@ impl Client {
219 pub async fn initialize(&mut self) -> Result<()> {
219 pub async fn initialize(&mut self) -> Result<()> {
220 // TODO: delay any requests that are triggered prior to initialize
220 // TODO: delay any requests that are triggered prior to initialize
221+ let root = find_root(None).and_then(|root| lsp::Url::from_file_path(root).ok());
222 #[allow(deprecated)]
223 #[allow(deprecated)]
223 let params = lsp::InitializeParams {
224 let params = lsp::InitializeParams {
224 process_id: Some(std::process::id()),
225 process_id: Some(std::process::id()),
226+ // root_path is obsolete, use root_uri
225 root_path: None,
227 root_path: None,
226− // root_uri: Some(lsp_types::Url::parse("file://localhost/")?),
227− root_uri: None, // set to project root in the future
228+ root_uri: root,
228 initialization_options: None,
229 initialization_options: None,
229 capabilities: lsp::ClientCapabilities {
230 capabilities: lsp::ClientCapabilities {
230 text_document: Some(lsp::TextDocumentClientCapabilities {
231 text_document: Some(lsp::TextDocumentClientCapabilities {