You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Terminal.Gui.TextView supports overwrite mode: Used state + Command.ToggleOverwrite (Insert key), Command.EnableOverwrite, Command.DisableOverwrite, a distinct caret rendering, and typing that replaces the rune under the caret instead of inserting. Editor is insert-only — no overwrite state, command, or caret style.
Editor is intended to functionally replace TextView (not API/UI-compatible); overwrite is a widely-expected editor mode and a genuine gap. Not replicable by a consumer: requires intercepting text input before the document edit plus a mode-aware caret.
Scope
OverwriteMode state on Editor (the field-keyword pattern; default off).
Wire Command.ToggleOverwrite / Command.EnableOverwrite / Command.DisableOverwrite (these Command enum members already exist in TG) via AddCommand and the configurable [ConfigurationProperty] Editor.DefaultKeyBindings (Insert = default toggle). No inline if in OnKeyDownNotHandled.
Text-insertion path in Editor.Keyboard.cs: when overwrite is on and the caret is not at line-end and there is no selection, replace the rune at the caret (grapheme-aware, one undo step) instead of inserting.
Summary
Terminal.Gui.TextViewsupports overwrite mode:Usedstate +Command.ToggleOverwrite(Insert key),Command.EnableOverwrite,Command.DisableOverwrite, a distinct caret rendering, and typing that replaces the rune under the caret instead of inserting.Editoris insert-only — no overwrite state, command, or caret style.Editor is intended to functionally replace
TextView(not API/UI-compatible); overwrite is a widely-expected editor mode and a genuine gap. Not replicable by a consumer: requires intercepting text input before the document edit plus a mode-aware caret.Scope
OverwriteModestate onEditor(thefield-keyword pattern; default off).Command.ToggleOverwrite/Command.EnableOverwrite/Command.DisableOverwrite(theseCommandenum members already exist in TG) viaAddCommandand the configurable[ConfigurationProperty] Editor.DefaultKeyBindings(Insert = default toggle). No inlineifinOnKeyDownNotHandled.Editor.Keyboard.cs: when overwrite is on and the caret is not at line-end and there is no selection, replace the rune at the caret (grapheme-aware, one undo step) instead of inserting.examples/ted: status-bar indicator (R9).Definition of done
OverwriteMode+ three commands bound throughEditor.DefaultKeyBindings; user-overridable.specs/overwrite-mode/spec.md;specs/public-api.mdupdated (R8).dotnet format+jbclean.Refs:
specs/textview-parity-gap/spec.mdGap 2.🤖 Generated with Claude Code