• src/syncterm/Wren.adoc src/syncterm/scripts/sftp_app.wren ui_list.wren

    From Deucе@VERT to Git commit to main/sbbs/master on Mon May 4 11:53:57 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/838332e35280aa8865a3ed7f
    Modified Files:
    src/syncterm/Wren.adoc src/syncterm/scripts/sftp_app.wren ui_list.wren ui_popup.wren
    Log Message:
    SyncTERM: ListView gets type-to-search, Ctrl-F/G, click-activate, tag mode

    Type-to-search: any printable codepoint grows a rolling buffer and
    jumps to the first item whose searchTextFor_ starts with it (case-
    insensitive ASCII fold). No-match falls back to just the new char.
    Buffer resets on any nav / activation key.

    Ctrl-F: prompts via a new compact Find popup (3 rows tall, title in
    the top frame border, full innerBounds row for the input, no buttons), case-insensitive substring search wrapping the list. Ctrl-G repeats
    the last query.

    Click-to-activate: button1Click on a row both selects and fires
    onSelect, matching UIFC's ulist.

    Tag mode: opt-in via selectionMode = "tag". Per-item flags toggled
    by Space; tagged getter returns the indices. 1-cell marker column
    uses theme tag.on / tag.off glyphs.

    searchTextFor_(item) is the subclass hook for what users type
    against; defaults to formatItem(item, 1024). BrowserListView and
    QueueListView override it to point at the bare filename instead of
    the chip-prefixed display line.

    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net