Small scripting addition requests

I’ve been doing some wonderful things with scripting, but wanted to see what you thought about adding a few more properties to a row for speeding up a lot of operations.

Right now we have container row, prev sibling row, and next sibling row which is wonderful for navigating a big outline, but my small request is to add ids for each of these versions: container row id, prev sibling row id, and next sibling row id.

This would allow for some really fast searching on larger outlines for creating an internal representation of the tree as you can call doc.rows.name() example (in js automation) for getting back all of the names right away without needing to iterate through each row.

Thoughts?

On top of that, I notice rows on a row will only show direct sibling rows, where entire contents returns everything underneath. However, I can use the whose query on the former but not the later.

It appears it only works on application objects like rows and not list operations like entire contents. From the docs:

The filter form specifies application objects only. It cannot be used to filter the AppleScript objects list , record , or text . A term that uses the filter form is also known as a whose clause.

Disregard. I had a misunderstanding, and you can actually just do something like doc.rows.containerRow.id()

I’m really glad to have people digging into scripting.

Sorry, which of the requests in this post still remain? I’d like to help if still needed.

Maybe useful, these a thread in the Late Night Software Forums discussing Bike’s dictionary design. I’m not certain I agree with all the suggestions, but I also know that I don’t know all that much about AppleScript.

If there a way to efficient combine multiple whose clauses? On option… I could add a “branch count” property to each row. You could then use that determine range of a branch in document.rows.