Move the @next tag on, marking the current line as @done(yyyy-mm-dd hh:mm)
Automating @done and @next
When I am working through the finer detail of a project I like to use a @next tag to mark which item I’m on.
I assign a keystroke to:
- Marking the current line as
- and moving the
@nexttag on (to the next item in the current project which is not tagged
If we are on the last remaining line of a project:
- The project/heading section itself is flagged as
@done(yyy-mm-dd hh:mm)if no uncompleted items remain.
- If any earlier lines remain uncompleted, then the
@nexttag jumps to the first of them.
- The script then backs up the project outline to any containing project and walks the whole outline recursively in search of an eligible @next
- (continuing until the whole document is complete)
To use the script
- Choose the appropriate version (FoldingText or TaskPaper 3 Dev)
- If there is no @next tag in your project, put your cursor on the line you want to start with.
- If there is already a @next somewhere in the project, you can leave your cursor anywhere in the project – no need to move it.
- Run the script from something like KeyBoard Maestro or FastScripts
- A line which had no @next tag will simply get one,
- but if one of the project lines already had a @next tag:
- It will be stamped as
- the @next tag will move to the next eligible line, and
- if all lines in this project are now
@done, the project itself will be stamped as done, and the @next tag will move on to the next project in the file, if there is one.
- It will be stamped as
FoldingText 2 and TaskPaper 3 scripts
Here are two sample scripts, one for FoldingText 2, and one for TaskPaper 3 which automate the business of marking a line as
@done(yyy-mm-dd hh:mm) and moving the
@next tag to the next line in the project which isn’t completed, and which doesn’t have any other disqualifying tags.
Customising the scripts
@next versus @now etc:
To specify an alternative ‘bookmarking’ tag to
@next, edit the value of
pstrTagat the top of the text
- Other disqualifying tags:
By default, the script assumes that lines marked
@doneshould be skipped by the bookmarking tag (
@nowor whatever you have chosen). If you want to specify any other disqualifying tags which should be skipped, like
@snoozeetc, add quoted tag names to the comma-delimited
plstExceptlist at the top of the script.
Experimenting with the new FoldingText debugger
Note that you can run these scripts in a debug mode and trace their execution if you want. To do that:
pblnDebugat the start of the script to
- insert the line
debugger;wherever you want a break-point,
- and open the SDK version of the editor through FoldingText > Help > Software Development Kit > Run Editor > Inspector
- Paste a bit of text into the SDK editor, and
- run the script.
You can then:
- Step through the code line by line with F7 or ⌘;
- (other debugging icons to the left)
- and watch variables changing their values in the Scope Chain panel to the right.