@@ -135,18 +135,13 @@ impl LanguageServer for ProtoLanguageServer {
135135
136136 let content = self . state . get_content ( & uri) ;
137137 let hv = tree. get_hoverable_at_position ( & pos, content. as_bytes ( ) ) ;
138- let current_package_name = tree. get_package_name ( content. as_bytes ( ) ) ;
138+ let current_package_name = tree. get_package_name ( content. as_bytes ( ) ) . unwrap_or ( "." ) ;
139139
140140 let Some ( hv) = hv else {
141141 error ! ( uri=%uri, "failed to get hoverable identifier" ) ;
142142 return Box :: pin ( async move { Ok ( None ) } ) ;
143143 } ;
144144
145- let Some ( current_package_name) = current_package_name else {
146- error ! ( uri=%uri, "failed to get package name" ) ;
147- return Box :: pin ( async move { Ok ( None ) } ) ;
148- } ;
149-
150145 let ipath = self . configs . get_include_paths ( & uri) . unwrap_or_default ( ) ;
151146 let result = self . state . hover ( & ipath, current_package_name. as_ref ( ) , hv) ;
152147
@@ -220,10 +215,7 @@ impl LanguageServer for ProtoLanguageServer {
220215
221216 let content = self . state . get_content ( & uri) ;
222217
223- let Some ( current_package) = tree. get_package_name ( content. as_bytes ( ) ) else {
224- error ! ( uri=%uri, "failed to get package name" ) ;
225- return Box :: pin ( async move { Ok ( None ) } ) ;
226- } ;
218+ let current_package = tree. get_package_name ( content. as_bytes ( ) ) . unwrap_or ( "." ) ;
227219
228220 let Some ( ( edit, otext, ntext) ) = tree. rename_tree ( & pos, & new_name, content. as_bytes ( ) )
229221 else {
@@ -240,7 +232,6 @@ impl LanguageServer for ProtoLanguageServer {
240232 let progress_sender = work_done_token. map ( |token| self . with_report_progress ( token) ) ;
241233
242234 let mut h = HashMap :: new ( ) ;
243- h. insert ( tree. uri . clone ( ) , edit) ;
244235 h. extend ( self . state . rename_fields (
245236 current_package,
246237 & otext,
@@ -249,6 +240,8 @@ impl LanguageServer for ProtoLanguageServer {
249240 progress_sender,
250241 ) ) ;
251242
243+ h. entry ( tree. uri ) . or_insert ( edit. clone ( ) ) . extend ( edit) ;
244+
252245 let response = Some ( WorkspaceEdit {
253246 changes : Some ( h) ,
254247 ..Default :: default ( )
@@ -272,10 +265,7 @@ impl LanguageServer for ProtoLanguageServer {
272265
273266 let content = self . state . get_content ( & uri) ;
274267
275- let Some ( current_package) = tree. get_package_name ( content. as_bytes ( ) ) else {
276- error ! ( uri=%uri, "failed to get package name" ) ;
277- return Box :: pin ( async move { Ok ( None ) } ) ;
278- } ;
268+ let current_package = tree. get_package_name ( content. as_bytes ( ) ) . unwrap_or ( "." ) ;
279269
280270 let Some ( ( mut refs, otext) ) = tree. reference_tree ( & pos, content. as_bytes ( ) ) else {
281271 error ! ( uri=%uri, "failed to find references in a tree" ) ;
@@ -321,18 +311,13 @@ impl LanguageServer for ProtoLanguageServer {
321311
322312 let content = self . state . get_content ( & uri) ;
323313 let jump = tree. get_jumpable_at_position ( & pos, content. as_bytes ( ) ) ;
324- let current_package_name = tree. get_package_name ( content. as_bytes ( ) ) ;
314+ let current_package_name = tree. get_package_name ( content. as_bytes ( ) ) . unwrap_or ( "." ) ;
325315
326316 let Some ( jump) = jump else {
327317 error ! ( uri=%uri, "failed to get jump identifier" ) ;
328318 return Box :: pin ( async move { Ok ( None ) } ) ;
329319 } ;
330320
331- let Some ( current_package_name) = current_package_name else {
332- error ! ( uri=%uri, "failed to get package name" ) ;
333- return Box :: pin ( async move { Ok ( None ) } ) ;
334- } ;
335-
336321 let ipath = self . configs . get_include_paths ( & uri) . unwrap_or_default ( ) ;
337322 let locations = self
338323 . state
@@ -407,9 +392,9 @@ impl LanguageServer for ProtoLanguageServer {
407392 return ControlFlow :: Continue ( ( ) ) ;
408393 } ;
409394
410- if let Some ( diagnostics) = self
411- . state
412- . upsert_file ( & uri, content, & ipath, 8 , & pconf. config , true )
395+ if let Some ( diagnostics) =
396+ self . state
397+ . upsert_file ( & uri, content, & ipath, 8 , & pconf. config , true )
413398 {
414399 if let Err ( e) = self . client . publish_diagnostics ( diagnostics) {
415400 error ! ( error=%e, "failed to publish diagnostics" )
@@ -434,9 +419,9 @@ impl LanguageServer for ProtoLanguageServer {
434419 return ControlFlow :: Continue ( ( ) ) ;
435420 } ;
436421
437- if let Some ( diagnostics) = self
438- . state
439- . upsert_file ( & uri, content, & ipath, 8 , & pconf. config , true )
422+ if let Some ( diagnostics) =
423+ self . state
424+ . upsert_file ( & uri, content, & ipath, 8 , & pconf. config , true )
440425 {
441426 if let Err ( e) = self . client . publish_diagnostics ( diagnostics) {
442427 error ! ( error=%e, "failed to publish diagnostics" )
@@ -457,7 +442,10 @@ impl LanguageServer for ProtoLanguageServer {
457442 return ControlFlow :: Continue ( ( ) ) ;
458443 } ;
459444
460- if let Some ( diagnostics) = self . state . upsert_file ( & uri, content, & ipath, 8 , & pconf. config , false ) {
445+ if let Some ( diagnostics) =
446+ self . state
447+ . upsert_file ( & uri, content, & ipath, 8 , & pconf. config , false )
448+ {
461449 if let Err ( e) = self . client . publish_diagnostics ( diagnostics) {
462450 error ! ( error=%e, "failed to publish diagnostics" )
463451 }
0 commit comments