Released 1 Aug 2023. Build number is 632.
Eastgate release page for this version is here.
Minor changes not necessarily warranting explicit mention in an aTbRef note:
- Action Code:
- The result of [String].size is now the number of unicode characters in the string. Previously, it was the size of the UTF-8 string in bytes, which differed in strings containing multibyte characters.
- Tinderbox no longer forbids expressions that interrogate properties of the root note—the parent of top-level notes. For example, a top-level note can now get the value of $MapBackgroundColor(parent) if it wants to know the background colour of the top-level map.
- A comment followed by a var statement caused some statements following the var statement to be treated as comments.
- The operators inside(path) and descendedFrom(path) once again properly recognise designators as the path argument.
- collect(scope,attribute) and its relatives failed when scope was a find(…) expression. Now fixed.
- links.[inbound/outbound].path.attributeName expressions failed if the attribute was a URL attribute, because the system was misinterpreting the scheme (such as https:) as a dictionary key.
- Syntax highlighting now recognises keywords such as function when they appear at the start of a note.
- Syntax highlighting of quoted strings now includes the closing quote.
- Revised parsing of action( ), which sometimes saw syntax errors in valid expressions.
- Indexed references to a list of lists, e.g.
var:list myMatrix = "[0;1;2];[3;4;5][6;7;8][9;10;11]";
or$MyList=[0;1;2];[3;4;5][6;7;8][9;10;11];
failed because the parser stripped brackets incorrectly. The parser has been revised to handle nested lists more consistently. A separate note will describe the state of list and dictionary syntax as I understand it. - %matches is now treated by TbxCodeField as a keyword.
- .format() now uses "duck typing" to assess the type of the object being formatted if the type cannot be determined. For example, if
$MyList is [ [1;2] ; [3;4] ]
, then$MyList[0].format(",")
inspects the result,"[1;2]"
, decides that it looks like a list, and formats it as a list. - Comments begin with // and continue to the end of the line. Formerly, comments terminated with a second //, but URLs are not unheard of in comments and this caused confusion.
- Fixed: the eachLink(){} action crashed if the action deleted the targeted link.
- Corrected handling of lists in dictionaries.
- AppleScript/OSAscript
- The command
make new linkType with properties {name:"tester6", ...}
now correctly recognises the property "broad" for broad links.
- The command
- Attributes:
- $TextExportTemplate is now deprecated.
- Find:
- It appears to have been possible for a torn-off Find window to receive changes before it is ready to receive them. Steps taken to correct this.
- Get Info:
- Book. This once again displays covers for many (though, of course, not all) books.
- Hyperbolic view:
- If the hyperbolic view is not excessively complex, Tinderbox performs some force-directed layout adjustments to better use the space.
- When creating a link, the rubber band line starts at the correct position. Previously, it was displaced 40px.
- The degree of spread is now saved with the tab and restored when the document is reopened.
- Occasionally, links failed to draw when they fell precisely along the diameter of the unit circle.
- Previously, the scaling of link labels had been computed incorrectly.
- Further revisions to the hyperbolic browser, coping with issues regarding notes close to the edge of the universe.
- Panning the hyperbolic view is now restricted so that part of the graph always remains in view. Previously, it was possible to move the entire graph to the far distance, leaving no hint of where to find it.
- The tab contextual menu command for setting Hyperbolic view now sets the focus to the tab's currently selected note.
- Hyperbolic view now defaults to using *untitled links for initial (display) tree-building.
- Hyperbolic View no longer offers a single crosslinks checkbox, as we now have fine-grain control of spanning tree construction and cross links.
- Hyperbolic view omits "Delete" from the contextual menu of the focus note, since deleting the focus would leave nothing in the view.
- Import:
- Updated for new Ventura drag flavour for calendar items.
- Pasting from Microsoft Word® into the text pane set $URL to an applewebdata: URL. Because these URLs aren't useful, we no longer record them.
- DEVONthink watch folders should now work as expected.
- When importing a spreadsheet with a column headed by "0", Tinderbox created an attribute named "0" which caused trouble. Tinderbox now prepends "_" to column headings that begin with a digit.
- Inspector:
- Tinderbox Inspector's word count failed to update in large documents, and failed to adapt when changing documents. We now throttle updates to this instead, because counting hundreds of thousands of words can take time. The reported value may lag the actual value by several seconds.
- Corrected the width of the Badge control of the Appearance inspector.
- When using the Quickstamp inspector to change a boolean attribute that is a Displayed Attribute, Tinderbox now updates the DisplayedAttributes table to reflect the change. Formerly, this update was deferred to the next selection, which was confusing.
- Links:
- When a new link type is created in the Document Inspector's Links pane, it takes its colour from the current colour scheme. Previously, the new link type used black links.
- A major refactoring of the link parking space and link tracking is under way. Visible changes should be undetectable or minimal, please report discrepancies.
- Addressed an error in accounting for text link changes when editing a multiple selection in which text links appear in the second or subsequent notes.
- When creating links, the Create Link pop-over's swap button now reflects any pending changes to the destination name.
- Tinderbox no longer stores the source Document ID and destination Document ID in links when the source and destination both reside in the current document.
- Map view:
- An outmoded animation in the Cut handler for map view sometimes left "ghost" views, as animations for removing and selecting the view could wind up interacting.
- In map view, the inbound and outbound stub counts are once again positioned correctly.
- Implemented methods for adding new CSS style rules to poster notes.
- Implemented methods to enable Javascript in poster notes to perform Tinderbox actions and to evaluate Tinderbox expressions.
- Corrected the text area computation for left tag to have the same size, and therefore the same line breaks, as right tag.
- TbxDocument's close method could get into trouble if the agent queue was very busy — especially if pending actions would add more work (such as screen updates) to the agent queue. Tinderbox now clears pending work, since this will either not need to be performed (for screen updates) or will be performed on reopen (for agent updates) before putting the action recycle operation onto the queue. This should reduce problems on close.
- The Built-In Prototypes and Hints containers now respect $CleanupAction.
- Miscellaneous:
- Tinderbox once more performs the edict of every note — not only the selected notes — when a document is loaded.
- Revised handling of the internal indexing primitives. These are especially tricky because they must run in the background, and must be careful to sequence themselves relative to each other and to changes performed by the user and by actions. This issue may have been responsible for crashes sometimes encountered when bringing a Tinderbox window to the foreground after using another application.
- In building the Stamps menu, separators now become separator menu items (if not named) or disabled menu items (if the separator has a name).
- Tinderbox Help documented the wrong order of arguments for create, createAgent, and createAdornment.
- Prevented a crash observed when Tinderbox to attempt to use the index of a note that doesn't exist.
- Menus: Format ▸ Style ▸ Standard Font and Format ▸ Style ▸ StandardSize can now be applied to a multiple selection.
- Menus: Format ▸ Style ▸ Reset Margins is available from the view pane.
- The application's disk image is now signed with the new notarytool.
- Addressed a crash after closing a document with an inter-document link.
- Outline view:
- When double-clicking a note in the Links pane to select it, Tinderbox will expand any collapsed ancestors of that note in outline view.
- Roadmap view:
- Less space is reserved for link comments in the torn-off Roadmap window. When the selected link comment is empty or brief, or when no link is selected, even less space is reserved.
- Taggers
- Re-installing built-in Hints overrode changes to pre-existing highlighters and taggers that had been user-edited. This should no longer occur.
- Text pane:
- After selecting from the pulldown value menu in the displayed attributes table, the currently-selected attribute remains selected for list and set attributes, since you might well want to add or remove several elements. For other attributes, the next row of the displayed attributes table is selected.
- The Displayed Attributes table should no longer terminate the editing session of a value when a rule or agent action changes that value.
- In the Displayed Attributes table, the action of the values pulldown menu has been improved when editing sets and lists. Now, any pending edits are recorded, and then the chosen value is added to the set or list. Previously, pending edits were discarded.
- Adjusted the placement of the error icon in the text pane. It now aligns with the top of the title.
- The minimum height of text windows is now increased in proportion to the number of displayed attributes.
- The behaviour of the Displayed Attributes table's values pulldown is improved when editing lists or sets. Tinderbox now records any pending edits from the text field, and then adds the chosen value to the list or set if it was not present. If the value was present, it is removed.
- The Displayed Attributes table does a better job of allowing sufficient space for multi-line attribute values.
- When entering American-style dates without a time, Tinderbox now chooses noon rather than midnight for consistency with other methods of converting text to dates.
- After editing date attributes in the displayed attributes table, Tinderbox now selects the next value in the table, not the first value.
- When dealing with long (>100,000 character) texts, Tinderbox now limits the work it performs in cleaning up margins and paragraph styles in order to improve performance.
- Windows:
- See v9.6.0 Release Notes for more detail of minor points.
This version is cited in the following notes:
- %matches (query back-references)
- $N (query back-reference)
- Attribute Browser view
- attribute(attributeNameStr)[keyStr]
- attributes tab
- Backslash: escape character
- Built-in export Templates
- Caret delimiters: export code operators
- changed([scope])
- Choosing to use variables or attributes in code
- Colon: ad hoc delimiter in some action operators
- Colon: dictionary key-value pair delimiter
- Coloured syntax highlighting in Action code
- Comma: function argument delimiter
- Creating draft emails
- Creating new posters
- Curly brackets: defining code blocks
- Curly brackets: dictionaries and nested dictionaries
- Date-Type Attributes
- Designators
- Dictionary-Type Attributes
- Displayed Attributes table
- document()
- Dollar-sign prefix: attribute references
- Dollar-sign prefixed numbers: macro arguments
- Dollar-sign prefixed numbers: query back-references
- Double forward slash: action code comments
- Dragging content from DEVONthink to Tinderbox
- Dragging in Apple Calendar events
- Dragging URLs into Tinderbox views
- Email-Type Attributes
- EmailSubject
- EmailTemplate
- Explicit declaration of dictionaries using curly braces
- Explicit declaration of lists using square brackets
- Expressions in attribute offset addresses
- fetch(urlStr,headersDict,attrNameStr,cmdStr[,httpMethod,POSTbody])
- Font sub-menu
- Forward slash: folder delimiter in paths
- Full stop: dot-operators
- Geographic Adornments
- Hover tab
- HoverBackgroundColor
- Hyperbolic view controls
- Hyperbolic view-specific data
- Interior tab
- IsSeparator
- Item Note Designators
- JSON.each([pathStr]){actions}
- JSON.json[keyStr]
- JSON.jsonValue(pathStr)
- Lexical vs. numerical sorting
- link tag
- Links tab
- List.select()
- Map Posters
- map tab
- Navigating hyperbolic view
- nextItem
- nextSiblingItem
- Note Flags
- Notes displaying body text
- Outline view
- Parentheses: arguments for action code operators and user functions
- Parentheses: attribute 'offset' references (offset addressing)
- Parentheses: controlling parsing of code
- Pasting notes to a different TBX: $Created and $Modified
- Poster attributes
- PosterCSS
- PosterLabels
- Posters and performance
- PosterSettings
- PosterTemplate
- PosterURL
- PosterX
- PosterY
- PosterZoom
- previousItem
- previousSiblingItem
- Printing from Tinderbox
- Prototype: Event
- Prototype: Poster
- Punctuation and special characters in definitions, actions and expressions
- require(featureName)
- ScreenHeight
- ScreenWidth
- select()
- select(scope)
- Semicolon: expression delimiter, code line end
- Semicolon: list and dictionary item delimiter
- Separator
- Simulating global variables
- Smart Links and URLs
- Some Tinderbox pre-history
- Sort Transform pop-up list
- Square Brackets in code operator explanations
- Square brackets: dictionary data keys
- Square brackets: dictionary keys with multiple values
- Square brackets: in documentation, optional arguments
- Square brackets: list indexes
- Square brackets: lists and nested lists
- Stamps
- String.eachLine(loopVar[:condition]){actions}
- Symbols used in Mathematical and Logical operations
- Symbols used in Regular Expressions
- System tab
- Text area - Links panel
- Text tab
- The library sorting note
- unlinkFrom(scope[, linkTypeStr])
- unlinkFromOriginal(scope[, linkTypeStr])
- unlinkTo(scope[, linkTypeStr])
- unlinkToOriginal(scope[, linkTypeStr])
- Updating posters
- User tab
- Using long sections of code—code notes
- Using regular expression back-references