arrayrun is a rather complex run. Each arrayrun is made of a number of elements, each of which contains a fixed set of segments.
Right now, the only type of segment it supports is strings. But ideally a segment could also be a number, a pointer, or something else.
The entire run could represent a large block of data. But the point is that the block is fairly homogeneus.
- added support for adding runs via typing
- added support for comprehending string segments to display/edit as PCS
- fixed a StringModelTest that was wrong, since this feature exposed it
PCSRun was a bit slow if you have multiple long strings on screen at the same time.
this was because CreateDataFormat was reloading the same long string for every cell in that string.
This is an n^2 operation.
To fix this, only load the screen for the FIRST index, then don't reload it again until reading a previous index again.
SearchResultsViewPort.AnchorText needs get and set for binding purposes.
strings should work with the tool (and to auto-open the tool) when hitting the first byte in the string.
adding an AnchorText/AnchorTextVisible property to the ViewPort, so that the UI can display an editable text field as a better way of editng anchors
make Metadata not crash if there's a parse error
load metadata on app start
- PCSString.ReadString should optionally only recognize a string if it has a minimal number of repeated characters.
- don't automatically show a tool when one of its fields changes
- fix a bug where following a link in a multi-find document would shift the results in the main tab
- since a tool doesn't auto-show when a property changes, manually show it on double-click
- when a selection changes, if a string is selected, change the string tool to show that string
- slightly widen the string tool: it wasn't fitting all the strings it should on one line.
- PCSString conversion puts newlines after \n and \pn
- Goto/Back/Forward go to addresses, not lines
- fix visual glitches with PCS escaped bytes
- use monospace font for string tool. Use a width that works well with newlines.
- change app width to better default to work with tools
escape clears in-progresss edits
when editing an anchor, the current name/format is displayed
you get an error if you try to insert an anchor but don't give it a name.
Note that you can still enter an empty anchor (^ ) to DELETE an anchor that has nothing pointing to it.
'Goto Address' formula correction
-> account for both the format's offset from start and the current cell's
offset from the start of the format.
After auto-moving the data, we ALWAYS need to refresh backing data.