File tree Expand file tree Collapse file tree 1 file changed +8
-4
lines changed Expand file tree Collapse file tree 1 file changed +8
-4
lines changed Original file line number Diff line number Diff line change @@ -235,7 +235,10 @@ impl Client {
235235
236236    pub ( crate )  async  fn  initialize ( & self )  -> Result < lsp:: InitializeResult >  { 
237237        // TODO: delay any requests that are triggered prior to initialize 
238-         let  root = find_root ( None ,  & self . root_markers ) 
238+         let  root_path = find_root ( None ,  & self . root_markers ) ; 
239+ 
240+         let  root_uri = root_path
241+             . clone ( ) 
239242            . and_then ( |root| lsp:: Url :: from_file_path ( root) . ok ( ) ) ; 
240243
241244        if  self . config . is_some ( )  { 
@@ -245,9 +248,10 @@ impl Client {
245248        #[ allow( deprecated) ]  
246249        let  params = lsp:: InitializeParams  { 
247250            process_id :  Some ( std:: process:: id ( ) ) , 
248-             // root_path is obsolete, use root_uri 
249-             root_path :  None , 
250-             root_uri :  root, 
251+             // root_path is obsolete, but some clients like pyright still use it so we specify both. 
252+             // clients will prefer _uri if possible 
253+             root_path :  root_path. and_then ( |path| path. to_str ( ) . map ( |path| path. to_owned ( ) ) ) , 
254+             root_uri, 
251255            initialization_options :  self . config . clone ( ) , 
252256            capabilities :  lsp:: ClientCapabilities  { 
253257                workspace :  Some ( lsp:: WorkspaceClientCapabilities  { 
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments