[FEATURE] Spellcheck: surface the checker's correction suggestions, not just underlines
Feature request
v2.1.235 added the spellcheck setting, which underlines misspelled words in the prompt input using an installed aspell/hunspell/ispell. It works great — but it only flags words. There is no way to see or apply the checker's suggested corrections; you have to guess the right spelling yourself.
Request: let the user act on an underlined word, e.g. with the cursor on a misspelled word, a keybinding opens a small suggestion menu (similar to the existing :emoji: typeahead or slash-command popup) and accepting an entry replaces the word.
Why this is cheap to add
The suggestion data is already flowing. In ispell -a pipe mode the checker returns suggestions on the very line Claude Code parses:
& helllo 5 0: hello, hell lo, hell-lo, hellhole, hell
The current response parser keeps only the word and discards everything after the colon:
case "&": {
let t = /^[&?] (\S+) \d+ \d+:/.exec(e);
return t ? {type: "misspelled", word: t[1]} : {type: "unrecognized"}
}
So no extra checker round-trip or protocol change is needed — capture the tail of the & line, store it alongside the misspelled-word verdict, and add the picker UI.
Non-goal: autocorrect-as-you-type; an explicit, opt-in picker is enough.
Related: #69668 (asked for a built-in checker generally; the underline half shipped in 2.1.235), #81814 (VS Code input box).
Environment
- Claude Code 2.1.235 (native install), Windows 11
- hunspell 1.7.0, en_US, configured via
"spellcheck": {"enabled": true, "checker": "hunspell", "language": "en_US"}— underlining confirmed working