# THE PATH IN A TAG IS SELECTABLE, NOT EDITABLE. # tag_col/tag_anchor index the WHOLE rendered tag (prefix ++ tail) — one # coordinate space, no conversions: the renderer prints the cursor at tag_col # verbatim and a mouse column IS a tag column. So motions and sweeps reach the # path, a selection over it yanks and executes like any other text, and the # ONLY thing fenced off is EDITING: every edit op measures from the first # editable column (tagPrefix().len) and does nothing to the left of it. # # The prefix IS the path now — the mode word that used to lead it is a single # character in the layout box — so column 0 of the tag is the path's first byte. lines c.txt 4 start 30 100 c.txt wait 8000 New Newcol wait 8000 c.txt stable 700 20000 snap start # --- keyboard: select part of the PATH --- # `:` parks at the tail's start (the first EDITABLE column) — unchanged, that # is what makes `:w` the same two keystrokes every time key : stable 400 5000 snap colon # 0 goes to column 0 of the RENDERED tag: the path's leading "/", a column the # keyboard could not name at all before key 0 stable 400 5000 snap col0 # E: extend to the end of the long word under the cursor — the style capture # shows ONE highlighted run over the whole path, read-only prefix though it is key E stable 400 5000 snap sel-path snapstyle sel-path # y yanks the selection. Esc hands the body back; p pastes the register into # the file, which is the only way a snapshot can see what was yanked. key y key esc settle 100 stable 400 5000 key p stable 400 5000 snap yanked-path # --- mouse: a sweep across the prefix/tail boundary --- # a left press on a tagline anchors a TAG sweep (not the body's block # selection), so the drag paints one run of the tag row. Press at col 12 # (inside the path), release at col 42 (just past "Save" in the tail): the # highlight crosses the boundary — screen col 36, where the tail starts, four # columns left of where it used to be — in one piece, which is the whole point # of there being one coordinate space. press left 12 2 drag left 30 2 drag left 42 2 release left 42 2 stable 400 5000 snap drag-cross snapstyle drag-cross # --- the path is inert to editing --- # a plain click INSIDE the path leaves the cursor there (no clamp into the # tail), in insert mode like any tag click — and then typing and backspace do # NOTHING: the tag row below is byte-identical to the one in `yanked-path`. press left 12 2 release left 12 2 stable 400 5000 text ZZNOPE key bs key bs stable 400 5000 snap path-inert