@@ -142,11 +142,14 @@ proc completion*(
142
142
let nimsuggest = await ls.tryGetNimsuggest (uri)
143
143
if nimsuggest.isNone ():
144
144
return @ []
145
+ let ch = ls.getCharacter (uri, line, character)
146
+ if ch.isNone:
147
+ return @ []
145
148
let completions = await nimsuggest.get.sug (
146
149
uriToPath (uri),
147
150
ls.uriToStash (uri),
148
151
line + 1 ,
149
- ls. getCharacter (uri, line, character) ,
152
+ ch.get ,
150
153
)
151
154
result = completions.map (toCompletionItem)
152
155
@@ -171,12 +174,15 @@ proc definition*(
171
174
let ns = await ls.tryGetNimsuggest (uri)
172
175
if ns.isNone:
173
176
return @ []
177
+ let ch = ls.getCharacter (uri, line, character)
178
+ if ch.isNone:
179
+ return @ []
174
180
result = ns.get
175
181
.def (
176
182
uriToPath (uri),
177
183
ls.uriToStash (uri),
178
184
line + 1 ,
179
- ls. getCharacter (uri, line, character) ,
185
+ ch.get ,
180
186
)
181
187
.await ()
182
188
.map (toLocation)
@@ -189,12 +195,15 @@ proc declaration*(
189
195
let ns = await ls.tryGetNimsuggest (uri)
190
196
if ns.isNone:
191
197
return @ []
198
+ let ch = ls.getCharacter (uri, line, character)
199
+ if ch.isNone:
200
+ return @ []
192
201
result = ns.get
193
202
.declaration (
194
203
uriToPath (uri),
195
204
ls.uriToStash (uri),
196
205
line + 1 ,
197
- ls. getCharacter (uri, line, character) ,
206
+ ch.get ,
198
207
)
199
208
.await ()
200
209
.map (toLocation)
@@ -206,13 +215,15 @@ proc expandAll*(
206
215
let ns = await ls.tryGetNimsuggest (uri)
207
216
if ns.isNone:
208
217
return ExpandResult () # TODO make it optional
209
-
218
+ let ch = ls.getCharacter (uri, line, character)
219
+ if ch.isNone:
220
+ return ExpandResult ()
210
221
let expand = ns.get
211
222
.expand (
212
223
uriToPath (uri),
213
224
ls.uriToStash (uri),
214
225
line + 1 ,
215
- ls. getCharacter (uri, line, character) ,
226
+ ch.get ,
216
227
)
217
228
.await ()
218
229
@@ -244,12 +255,15 @@ proc expand*(
244
255
ns = await ls.tryGetNimsuggest (uri)
245
256
if ns.isNone:
246
257
return ExpandResult ()
258
+ let ch = ls.getCharacter (uri, line, character)
259
+ if ch.isNone:
260
+ return ExpandResult ()
247
261
let expand = ns.get
248
262
.expand (
249
263
uriToPath (uri),
250
264
ls.uriToStash (uri),
251
265
line + 1 ,
252
- ls. getCharacter (uri, line, character) ,
266
+ ch.get ,
253
267
fmt " {tag}" ,
254
268
)
255
269
.await ()
@@ -316,12 +330,15 @@ proc typeDefinition*(
316
330
let ns = await ls.tryGetNimSuggest (uri)
317
331
if ns.isNone:
318
332
return @ []
333
+ let ch = ls.getCharacter (uri, line, character)
334
+ if ch.isNone:
335
+ return @ []
319
336
result = ns.get
320
337
.`type` (
321
338
uriToPath (uri),
322
339
ls.uriToStash (uri),
323
340
line + 1 ,
324
- ls. getCharacter (uri, line, character) ,
341
+ ch.get ,
325
342
)
326
343
.await ()
327
344
.map (toLocation)
@@ -395,11 +412,14 @@ proc hover*(
395
412
let nimsuggest = await ls.tryGetNimsuggest (uri)
396
413
if nimsuggest.isNone:
397
414
return none (Hover )
415
+ let ch = ls.getCharacter (uri, line, character)
416
+ if ch.isNone:
417
+ return none (Hover )
398
418
let suggestions = await nimsuggest.get ().def (
399
419
uriToPath (uri),
400
420
ls.uriToStash (uri),
401
421
line + 1 ,
402
- ls. getCharacter (uri, line, character) ,
422
+ ch.get ,
403
423
)
404
424
if suggestions.len == 0 :
405
425
return none [Hover ]()
@@ -413,11 +433,14 @@ proc references*(
413
433
let nimsuggest = await ls.tryGetNimsuggest (uri)
414
434
if nimsuggest.isNone:
415
435
return @ []
436
+ let ch = ls.getCharacter (uri, line, character)
437
+ if ch.isNone:
438
+ return @ []
416
439
let refs = await nimsuggest.get.use (
417
440
uriToPath (uri),
418
441
ls.uriToStash (uri),
419
442
line + 1 ,
420
- ls. getCharacter (uri, line, character) ,
443
+ ch.get ,
421
444
)
422
445
result = refs.filter (suggest => suggest.section != ideDef or includeDeclaration).map (
423
446
toLocation
@@ -430,12 +453,15 @@ proc prepareRename*(
430
453
asyncSpawn ls.addProjectFileToPendingRequest (id.uint , uri)
431
454
let nimsuggest = await ls.tryGetNimsuggest (uri)
432
455
if nimsuggest.isNone:
456
+ return newJNull ()
457
+ let ch = ls.getCharacter (uri, line, character)
458
+ if ch.isNone:
433
459
return newJNull ()
434
460
let def = await nimsuggest.get.def (
435
461
uriToPath (uri),
436
462
ls.uriToStash (uri),
437
463
line + 1 ,
438
- ls. getCharacter (uri, line, character) ,
464
+ ch.get ,
439
465
)
440
466
if def.len == 0 :
441
467
return newJNull ()
@@ -530,13 +556,16 @@ proc inlayHint*(
530
556
if nimsuggest.isNone or nimsuggest.get.protocolVersion < 4 or
531
557
not configuration.inlayHintsEnabled:
532
558
return @ []
559
+ let ch = ls.getCharacter (uri, start.line, start.character)
560
+ if ch.isNone:
561
+ return @ []
533
562
let suggestions = await nimsuggest.get.inlayHints (
534
563
uriToPath (uri),
535
564
ls.uriToStash (uri),
536
565
start.line + 1 ,
537
- ls. getCharacter (uri, start.line, start.character) ,
566
+ ch.get ,
538
567
`end`.line + 1 ,
539
- ls. getCharacter (uri, `end`.line, `end`.character) ,
568
+ ch.get ,
540
569
" +exceptionHints +parameterHints" ,
541
570
)
542
571
result = suggestions
@@ -660,12 +689,14 @@ proc signatureHelp*(
660
689
if nsCon notin nimSuggest.get.capabilities:
661
690
# support signatureHelp only if the current version of NimSuggest supports it.
662
691
return none [SignatureHelp ]()
663
-
692
+ let ch = ls.getCharacter (uri, line, character)
693
+ if ch.isNone:
694
+ return none [SignatureHelp ]()
664
695
let completions = await nimsuggest.get.con (
665
696
uriToPath (uri),
666
697
ls.uriToStash (uri),
667
698
line + 1 ,
668
- ls. getCharacter (uri, line, character) ,
699
+ ch.get ,
669
700
)
670
701
let signatures = completions.map (toSignatureInformation)
671
702
if signatures.len () > 0 :
@@ -735,11 +766,14 @@ proc documentHighlight*(
735
766
let nimsuggest = await ls.tryGetNimsuggest (uri)
736
767
if nimsuggest.isNone:
737
768
return @ []
769
+ let ch = ls.getCharacter (uri, line, character)
770
+ if ch.isNone:
771
+ return @ []
738
772
let suggestLocations = await nimsuggest.get.highlight (
739
773
uriToPath (uri),
740
774
ls.uriToStash (uri),
741
775
line + 1 ,
742
- ls. getCharacter (uri, line, character) ,
776
+ ch.get ,
743
777
)
744
778
result = suggestLocations.map (toDocumentHighlight)
745
779
0 commit comments