Tool Change Log
2025_1128
Fixes 'move subset to bin'
Improves CMD P: 1st press focus search. 2nd Action menu
2025_1125
Removes rich text
Changes format to '1 blank line separates items'
Simplifies logic.
Visually groups without need for indents or CSS.
Inserts timestamp on double enter to act as ID
Auto-reopens last used file on new session:
If user didn't close the file in the previous session
Providing user uses tool via https:// address
Notifies if browser lacks support for File System Access API
2025_1124
Adds file editor (load, save, save as)
Uses "File System Access" API
Shows save button whenever content has changed from saved
Improves message notifications function
Makes CMD click fn a self-contained feature
Previous extended and depended on syntax highlighter
Now:
works directly on any textarea or contentEditable
Continues to work on removal or disabling of rich text
Also simplifies rich text function
2025_1120
improve search speed and logic
(tool updates search data on first search after any user edit)
on first search, makes a map {item_text:{searchable_data},...}
on next search:
if user has made no edits, reuses all data.
if user has made edits:
reuses all search data for all unchanged items
and items with only text case changes (HELLO->hello)
makes and stores search data for new and changed items
deletes search data for deleted and old versions of items
(vs remake search data for all, per search after any edit)
stores words as tries {h:{e:{l:{l:o}}}}
avoids storing short words which are prefixes of longer ones
faster lookup
re-factors
2025_1118
makes nested slash tags wrap in sync with editor
makes searcher more efficient
stores per item
unique regular words over 2 characters to avoid non-content
stores words starting with punctuation in to search sets:
with and without leading punctuation
the query 'e.g.' matches items with '(e.g.)' and ' e.g.'
the query '(e.g' matches item with '(e.g.)', not ' e.g.'
slash tag data: full `/a/b/c` and ordered parts `a` `b` `c`
finding splits query into parts: words and slash tags
for each query word, checks item has a word starting with it
for each slash tag query performs fuzzy-ish search:
to find an item with the tag /animal/bear/cub
user could search:
/ani (start of full tag)
/be (start of a part)
/a/b/c (matching the start of each part)
/bear/cub (from the start of any part onwards)
moves searcher library in separate script
describes search features in intro text
2025_1117
refines valid '/tag' pattern
tags start and end with A-Za-z0-9, and may have dash in middle
improves action menu
auto select first item in action menu on each focus
improves up down keys: filters by group hidden first
improves tool tip mutation observer efficiency
lets '/tag' to start / end parenthetical text "" '' `` () [] {}
adds `code` highlighting
converts /tags to work like urls:
click edits, cmd click fires, hover shows clickable tooltip
disables hover states of CMD clickable items for now
styles popovers minimally
improves syntax highlighting
swaps textarea to contenteditable to support Safari:
Safari wraps div and textarea text at different places
(When text meets right edge of textarea / div)
debugs safari's contenteditable handling
puts editable area in front of highlighting area
(means color properties don't obscure selected text styles)
2025_1116
improves action menu and menu maker
allows grouping menu options (vs 1 group per menu)
uses one menu palette for whole app (vs many searchable menus)
hides and shows possible actions based on current context
(e.g. only shows actions for a subset when editing a subset)
presents action menu as palette popover (vs dropdown)
reworks shortcuts
CMD P Shift = open action menu and focus search actions field
CMD P = focus 'search items' input
auto enters 'edit mode' for any subset a search returns
(vs showing the subset and listing edit as an action option)
adds 'mode switcher' and swaps modes based on search query
no query : show editor for all and related actions
matches : show subset editor, and related actions
no matches : show no editor and only 'other actions'
adds 'Export all' option to main mode's action menu
auto-makes tips for elements made after page load with tip data
makes enter key in search items field context based:
no query = focus main editor, place caret before first item
matches = focus subset editor, place caret at editor start
no matches = add item to main editor, place caret after it
improves tool write up
adds disclaimer info to tool, and menu item
adds '.' to list of characters that end a slash tag
makes clicking each part of a nested tag run a specific search
allows broad or narrow searches: /area/group/subgroup/specific
adds typewriter scrolling:
scrolls beyond last line of text area to allow eye-level edits
logs changes
converts tool log to html page
adds no-script message
2025_1115
writes two helper libraries for storing item metadata in codes
(to incorporate later)
character string stores item states and facts as boolean flags
2025_1113
auto-applies any changes made, to a loaded subset, to main set:
- on change or clear the item search bar
- before performing any action on subset (e.g. move subset)
(prepares for removing edit subset apply and cancel buttons)
makes UI single column (towards minimal UI: 1 bar, 1 area)
2025_1112
improves handling of non-item lines - text before any first item
highlights any lines before the first to start with a letter
inserts new items above the first existing item
Auto selects and scrolls to newly added items
added via button that uses search bar text as new item text
or added via ENTER key if search returns no matches
2025_1111
updates syntax highlighter side-project
adds virtual scrolling
adds lazy highlighting to only style content in or near view
parses items on input but item content only when in view range
improves tag matching: `/tag` `/group/tag`, not `/` `//` `/a/`
styles **bold**, *italic*, ~strikethrough~, =mark=, #h1-6
improves custom 'biject' helper library (for IDs: a->z->aa-zz)
shows a 'follow link' link above any hovered item link-text
click on link text edits it as normal plain text
cmd+click on link text opens the link
2025_1110
presents searchable menu options like a drop down menu:
options float over other elements (vs moving layout)
makes clicking tags in items run a search for items with the tag
2025_1109
incorporates rich text editor / syntax highlighter
improves searcher logic on backend
prepares words in item on filter focus only (vs per keystroke)
makes temp IDs as short as match count will allows
<10:`0-9`, <100:`00-99`, >:`aa` (vs all long IDs)
2025_1108
codes a rich text editor / syntax highlighter (to incorporate)
wraps each item in a block
makes links in items clickable
makes tags in items clickable: to trigger a future function
adds escape key functions sequence: 1) select 2) delete 3) fn()
lets "cmd p" auto focus the search field
inserts any selected text to search field on CMD+P shortcut
presents fonts without anti-aliasing
2025_1107
uses an input field to filter a textarea of items (tasks)
populates a separate 'subset' textarea with the matching items
stamps subset items with an ID to allow tracking changes
applies changes made to found items back to original textarea
keeps the original items in their original place
deletes the item if user removes from the subset editor
adds deleted items to a 'bin' area for user to see and restore
adds any new items user added to subset to main textarea
enables one editor at a time: main or subset
adds 'move' actions to move and group a subset in the main set
move subset to top or bottom of file, or to first or last item
adds 'bin' option to remove all found items from document to bin
adds basic two column view ALL on left, SOME on right
for testing and dev purposes
writes and adds tool tip helper function to show tips to user
writes and adds a make_menu function (to use instead of buttons)
to easily make and control a searchable action menu
Copyright 2025 Greg Abbott.