@@ -350,6 +350,51 @@ local function solveAwaitInSync(uri, diag, results)
350
350
}
351
351
end
352
352
353
+ local function solveSpell (uri , diag , results )
354
+ local spell = require ' provider.spell'
355
+ local word = diag .data
356
+ if word == nil then
357
+ return
358
+ end
359
+
360
+ results [# results + 1 ] = {
361
+ title = lang .script (' ACTION_ADD_DICT' , word ),
362
+ kind = ' quickfix' ,
363
+ command = {
364
+ title = lang .script .COMMAND_ADD_DICT ,
365
+ command = ' lua.setConfig' ,
366
+ arguments = {
367
+ {
368
+ key = ' Lua.spell.dict' ,
369
+ action = ' add' ,
370
+ value = word ,
371
+ uri = uri ,
372
+ }
373
+ }
374
+ }
375
+ }
376
+
377
+ local suggests = spell .getSpellSuggest (word )
378
+ for _ , suggest in ipairs (suggests ) do
379
+ results [# results + 1 ] = {
380
+ title = suggest ,
381
+ kind = ' quickfix' ,
382
+ edit = {
383
+ changes = {
384
+ [uri ] = {
385
+ {
386
+ start = converter .unpackPosition (uri , diag .range .start ),
387
+ finish = converter .unpackPosition (uri , diag .range [" end" ]),
388
+ newText = suggest
389
+ }
390
+ }
391
+ }
392
+ }
393
+ }
394
+ end
395
+
396
+ end
397
+
353
398
local function solveDiagnostic (uri , diag , start , results )
354
399
if diag .source == lang .script .DIAG_SYNTAX_CHECK then
355
400
solveSyntax (uri , diag , results )
@@ -370,6 +415,8 @@ local function solveDiagnostic(uri, diag, start, results)
370
415
solveTrailingSpace (uri , diag , results )
371
416
elseif diag .code == ' await-in-sync' then
372
417
solveAwaitInSync (uri , diag , results )
418
+ elseif diag .code == ' spell-check' then
419
+ solveSpell (uri , diag , results )
373
420
end
374
421
disableDiagnostic (uri , diag .code , start , results )
375
422
end
0 commit comments