Hi, there.
After my somewhat unlucky attempt to improve the list filtering feature in Squeak:
http://forum.world.st/The-Trunk-Morphic-mt-1119-mcz-tp4890816.htmlhttp://forum.world.st/The-Trunk-Morphic-cmm-1120-mcz-tp4890853.htmlAnd the great explanation of the status quo by Chris:
http://forum.world.st/Squeak-IDE-videos-td4890897.htmlhttps://youtu.be/11CLNKl5334I want to explain a little bit more, what the issues with the list filtering is at the moment.
-----------
Here are the
good things:
- You can just start typing and the filter results appear.
- Matches that have the search term at the beginning come first, other matches follow alphabetically.
- The parts that matched in an item are highlighted.
- Hitting backspace or losing focus (controlled by preference) clears the filter.
- Re-typing after some timeout describes a new filter.
- If there are 0 matches, the new filter is not applied at all to not have an empty list.
Here are the
challenging things considering stability in interactive, graphical tools:
- If there is no selection in the list, the first filter result will be selected automatically.
- If the current selection is not included in the filter result, the first filter result will be selected automatically.
- If the user makes a selection in the filtered list, removing the filter will revert the selection to the one that used to be there before starting to filter. (Which can be several minutes, days, hours, days, ago)
Here is a
change set, which preserves the good things and fixes the issues:
list-filtering-stability-fix.csHere is a feature which -- in my opinion -- was not intended by the original idea of filtering lists and which -- unfortunately -- cannot be retained:
- Repeatedly hitting <Backspace> toggles between the last selection in a filtered list and the last selection in an unfiltered list.
However, I think that such a workflow is difficult to discover and should have a lower priority than the challenges described above. It might be added with a preference, though. For example, "Use two-level selection in lists with filters".
How about it? :-)
Best,
Marcel