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
In a local-file Markdown editor, clicking - [ ] / - [x] in the reading/preview pane should be able to request a source change through the host's document/undo pipeline. Vex currently supports this interaction and would need an equivalent integration point when adopting StreamMark.
The parser supports task lists. In the reviewed implementation, ListItemBlockView draws the marker using CheckboxRun, whose source describes it as read-only. There is no public host write-back event identified in this path. This is a source/API inspection finding, not a pointer-input test result.
Implemented in #8 (released in 0.1.0-alpha.24). The default stays read-only.
Set MarkdownView.IsTaskInteractionEnabled = true. A click on the box, or Space/Enter once it has focus, raises TaskToggleRequested instead of changing anything. StreamMark never edits the source or the snapshot; a rejected request leaves the screen unchanged.
TaskToggleRequestedEventArgs has Marker (the source range of [ ] / [x]), IsChecked, RequestedChecked, DocumentId and Version. ApplyTo(source) replaces only the character inside the brackets, so indentation and CRLF are kept, and returns null if the source no longer matches. view.IsCurrent(request) lets you reject a stale request.
Requests are only raised for a complete document (not while a stream is running). Clicking the task text still selects text. Task items expose a CheckBox automation peer with IToggleProvider.
Tested with nested, ordered/unordered and duplicate-label tasks, and CRLF.
Limits: TranscriptView is not wired up (only MarkdownView). Feedback on the event shape is welcome.
Activity
239573049 commentedon Oct 21, 2026
Implemented in #8 (released in
0.1.0-alpha.24). The default stays read-only.MarkdownView.IsTaskInteractionEnabled = true. A click on the box, or Space/Enter once it has focus, raisesTaskToggleRequestedinstead of changing anything. StreamMark never edits the source or the snapshot; a rejected request leaves the screen unchanged.TaskToggleRequestedEventArgshasMarker(the source range of[ ]/[x]),IsChecked,RequestedChecked,DocumentIdandVersion.ApplyTo(source)replaces only the character inside the brackets, so indentation and CRLF are kept, and returnsnullif the source no longer matches.view.IsCurrent(request)lets you reject a stale request.CheckBoxautomation peer withIToggleProvider.Limits:
TranscriptViewis not wired up (onlyMarkdownView). Feedback on the event shape is welcome.已在 #8 中实现(已随
0.1.0-alpha.24发布),默认仍然只读。MarkdownView.IsTaskInteractionEnabled = true后,点击复选框(或聚焦后按空格 / 回车)只会触发TaskToggleRequested,不会自行修改任何东西。StreamMark 不改原文也不改快照,拒绝请求时画面不变。TaskToggleRequestedEventArgs带Marker([ ]/[x]的源码区间)、IsChecked、RequestedChecked、DocumentId、Version。ApplyTo(source)只替换方括号里的那个字符,缩进和 CRLF 原样保留,源码已变化时返回null;view.IsCurrent(request)用来拒绝过期的请求。IToggleProvider的CheckBox无障碍节点。局限:
TranscriptView尚未接入(只做了MarkdownView)。欢迎对事件形态提意见。Merge pull request #8 from AtomUICommunity/release/0.1.0-alpha.24