Close Unmodified MindManager Maps with GyroQ
If you use a series of linked maps and dashboards to navigate around your projects and tasks, you can quickly find yourself with a dozen maps open at a time, even though you are only actively editing a couple of them. The GyroQ “clo” tag described in this post enables you to clear your plate of all your unmodified maps, leaving only the ones you have edited open.
Background
GyroQ lets you do quite a bit with ResultsManager and MindManager, but eventually you run into some limitations of what the language allows you to accomplish. You can further extend it by using the “run:macro” command, which lets you either run a single line of code or execute a SAX Basic macro file on the disk. I found the single line functionality came in handy for the copy/paste and send-changes operations in “Logging Things Done” and for the final dashboard installation step of the “1:1 meeting dashboard“.
In the process of figuring out how to achieve that I’ve learned a little bit about the SAX basic language and the MindManager object model. Documentation is very readily accessible. The language help in the editor provides some background when combined with information on the object model.
A came up with a few small examples of useful code and created a MindManager Macro library to share them. Because most require multiple lines of code, I assumed they would be complicated to share on the blog as you’d need to put the macros in some fixed location and then have corresponding GyroQ tag use the run:macro:full-path-name command to execute them. That might be a bit work more than most busy GyroQ users want to deal with. It would be much better if the multi-line macros could be incorporated into the GyroQ code itself.
It occurred to me this evening that we might be able to trick GyroQ into running multi-line macros if we inserted the hex codes for CR/LF into one line of GyroQ code, it would enable longer macros to be embedded, and sure enough, this seems to work!
Close Unmodified Map Macro
Sub Main
For Each DocCurrent In Documents
If Not DocCurrent.IsModified Then
DocCurrent.Close
End If
Next
End Sub
This is a simplified version of a much more detailed script by Nick Duffill that can be found in the appendix of “MindManager for Dummmies“. Replacing the actual line breaks with %0D%0A enables this macro to be embedded into “clo” GyroQ tag available in the Gyro Tag Library. You can see a simple demo in this video.
I think this opens up some possibilities in how we might all better leverage GyroQ.