@@ -135,18 +135,13 @@ impl LanguageServer for ProtoLanguageServer {
135
135
136
136
let content = self . state . get_content ( & uri) ;
137
137
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 ( "." ) ;
139
139
140
140
let Some ( hv) = hv else {
141
141
error ! ( uri=%uri, "failed to get hoverable identifier" ) ;
142
142
return Box :: pin ( async move { Ok ( None ) } ) ;
143
143
} ;
144
144
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
-
150
145
let ipath = self . configs . get_include_paths ( & uri) . unwrap_or_default ( ) ;
151
146
let result = self . state . hover ( & ipath, current_package_name. as_ref ( ) , hv) ;
152
147
@@ -220,10 +215,7 @@ impl LanguageServer for ProtoLanguageServer {
220
215
221
216
let content = self . state . get_content ( & uri) ;
222
217
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 ( "." ) ;
227
219
228
220
let Some ( ( edit, otext, ntext) ) = tree. rename_tree ( & pos, & new_name, content. as_bytes ( ) )
229
221
else {
@@ -240,7 +232,6 @@ impl LanguageServer for ProtoLanguageServer {
240
232
let progress_sender = work_done_token. map ( |token| self . with_report_progress ( token) ) ;
241
233
242
234
let mut h = HashMap :: new ( ) ;
243
- h. insert ( tree. uri . clone ( ) , edit) ;
244
235
h. extend ( self . state . rename_fields (
245
236
current_package,
246
237
& otext,
@@ -249,6 +240,8 @@ impl LanguageServer for ProtoLanguageServer {
249
240
progress_sender,
250
241
) ) ;
251
242
243
+ h. entry ( tree. uri ) . or_insert ( edit. clone ( ) ) . extend ( edit) ;
244
+
252
245
let response = Some ( WorkspaceEdit {
253
246
changes : Some ( h) ,
254
247
..Default :: default ( )
@@ -272,10 +265,7 @@ impl LanguageServer for ProtoLanguageServer {
272
265
273
266
let content = self . state . get_content ( & uri) ;
274
267
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 ( "." ) ;
279
269
280
270
let Some ( ( mut refs, otext) ) = tree. reference_tree ( & pos, content. as_bytes ( ) ) else {
281
271
error ! ( uri=%uri, "failed to find references in a tree" ) ;
@@ -321,18 +311,13 @@ impl LanguageServer for ProtoLanguageServer {
321
311
322
312
let content = self . state . get_content ( & uri) ;
323
313
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 ( "." ) ;
325
315
326
316
let Some ( jump) = jump else {
327
317
error ! ( uri=%uri, "failed to get jump identifier" ) ;
328
318
return Box :: pin ( async move { Ok ( None ) } ) ;
329
319
} ;
330
320
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
-
336
321
let ipath = self . configs . get_include_paths ( & uri) . unwrap_or_default ( ) ;
337
322
let locations = self
338
323
. state
@@ -407,9 +392,9 @@ impl LanguageServer for ProtoLanguageServer {
407
392
return ControlFlow :: Continue ( ( ) ) ;
408
393
} ;
409
394
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 )
413
398
{
414
399
if let Err ( e) = self . client . publish_diagnostics ( diagnostics) {
415
400
error ! ( error=%e, "failed to publish diagnostics" )
@@ -434,9 +419,9 @@ impl LanguageServer for ProtoLanguageServer {
434
419
return ControlFlow :: Continue ( ( ) ) ;
435
420
} ;
436
421
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 )
440
425
{
441
426
if let Err ( e) = self . client . publish_diagnostics ( diagnostics) {
442
427
error ! ( error=%e, "failed to publish diagnostics" )
@@ -457,7 +442,10 @@ impl LanguageServer for ProtoLanguageServer {
457
442
return ControlFlow :: Continue ( ( ) ) ;
458
443
} ;
459
444
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
+ {
461
449
if let Err ( e) = self . client . publish_diagnostics ( diagnostics) {
462
450
error ! ( error=%e, "failed to publish diagnostics" )
463
451
}
0 commit comments