def menu_items(rendering: VSCode_Rendering, caret: Text.Offset): List[LSP.CompletionItem] = { val result = for {
spell_checker <- rendering.resources.spell_checker.get
range = rendering.before_caret_range(caret)
Text.Info(_, word) <- Spell_Checker.current_word(rendering, range)
} yield (spell_checker, word)
result match { case Some((spell_checker, word)) =>
def item(command: LSP.Command): LSP.CompletionItem =
LSP.CompletionItem(
label = command.title,
text = Some(""),
range = Some(rendering.model.content.doc.range(Text.Range(caret))),
command = Some(command))
val update_items = if (spell_checker.check(word))
List(
item(LSP.Exclude_Word.command),
item(LSP.Exclude_Word_Permanently.command)) else
List(
item(LSP.Include_Word.command),
item(LSP.Include_Word_Permanently.command))
val reset_items =
spell_checker.reset_enabled() match { case 0 => Nil case n => val command = LSP.Reset_Words.command
List(item(command).copy(label = command.title + " (" + n + ")"))
}
update_items ::: reset_items
case None => Nil
}
}
}
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet)
¤