Skip to content

Commit

Permalink
fix: Some LSPs still want rootPath, so provide it
Browse files Browse the repository at this point in the history
Refs #1898
  • Loading branch information
archseer committed Mar 31, 2022
1 parent 5d61631 commit 84e799f
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions helix-lsp/src/client.rs
Expand Up @@ -235,7 +235,10 @@ impl Client {

pub(crate) async fn initialize(&self) -> Result<lsp::InitializeResult> {
// TODO: delay any requests that are triggered prior to initialize
let root = find_root(None, &self.root_markers)
let root_path = find_root(None, &self.root_markers);

let root_uri = root_path
.clone()
.and_then(|root| lsp::Url::from_file_path(root).ok());

if self.config.is_some() {
Expand All @@ -245,9 +248,10 @@ impl Client {
#[allow(deprecated)]
let params = lsp::InitializeParams {
process_id: Some(std::process::id()),
// root_path is obsolete, use root_uri
root_path: None,
root_uri: root,
// root_path is obsolete, but some clients like pyright still use it so we specify both.
// clients will prefer _uri if possible
root_path: root_path.and_then(|path| path.to_str().map(|path| path.to_owned())),
root_uri,
initialization_options: self.config.clone(),
capabilities: lsp::ClientCapabilities {
workspace: Some(lsp::WorkspaceClientCapabilities {
Expand Down

0 comments on commit 84e799f

Please sign in to comment.