Absolutely amazing, @DanThomas! Thank you so much for sharing this incredible macro group! The video is also very helpful!
I can think of several use cases; an important one that immediately comes to mind is when I improve a subroutine or submacro and I don't want to risk breaking all of the callers. Instead I'll:
Run MIM and use it to locate the existing subroutine or submacro.
Once it is found, I'll delete it before importing the improved version.
Thanks for doing so much work on this Macro … it is amazing what an amount of features it now contains…
Have tested it only so far with Km11 trial on a Ventura VM and love it …
Looking forward to install and use it on a regular basis when updating my iMac to Ventura …
If you consider to accept building detection of custom Plugins into this Macro it would even be greater. This is a thing I think is often overlooked when installing Macros.
If this Macro could tell me if there is a custom Plugin to be installed in order of the Macro(s) to work properly I would be very happy about that.
Thanks! And yes, a lot of work has gone into it, over the span of many months while working on other things too.
I'll think about it, and it's probably doable. But the problem is, if a plugin (or other macro) is required, I probably only know the UUID, not the name. I don't know how much help a messages saying "you need macro 6C806D57-29A7-49AF-9A6F-79F4FD767661", or "plugin 6C806D57-29A7-49AF-9A6F-79F4FD767661" would be.
First speaking of required Macros … you do a great job on getting everything that’s required out of selected Macro Files at the current stage of the Macro… I think there is nothing more to say about this because it’s a great feature that it automatically selects any companion or SubMacro or Subroutine as long you’ve selected everything in one go.
Speaking of custom PlugIns .. since you already write a temp file if macros from big Files were left off - why not copying the Macro File to the temp Folder and scan the XML for all Actiontype Properties KM has to offer (I know that’s a huge Number) and check if there are any which aren’t in that huge List - and if there are some found then searching the right out of existing PlugIns….
This way you would be able to get the PlugIns detected. And could notify the User.
I maybe could provide you a huge List of around 50 or maybe more PlugIns with the corresponding XML code so you could include the right pieces into your Code.
But you’ll have to bare with me if it takes longer … I’m not the healthiest person at the moment… of course I’ll try to give you this list as fast as possible - since this is the best thing I can do to contribute to the further development of this fantastic Macro.
Now I’ll be packing my b** into my warm bed and take my medicine to get healthy faster.
I don't use plugins, but I do think it would be really helpful to know if a not included submacro or subroutine was: 1) required, and 2) not already in my current macro library.
A flag would be awesome and I could see there would be times when the UUID would also be helpful. For example, suppose I shared a macro and someone downloaded and used MIM to install it. If MIM displayed the missing UUID, and the user reported it to me, then I'd be able to tell them what macro was required.
As I'm sure you know, the Keyboard Maestro editor does not give specific feedback, i.e., in the Execute a Macro and Execute a Subroutine actions just report None.
With all that said, based on the current scope and awesomeness of MIM, I hesitate to ask for enhancements... at least the first week.
This is actually MUCH harder than you might think. It's one thing to find macros in a .kmmacros file that reference other macros in that .kmmacros file. All you have to do is search a macro's XML for the UUIDs of the other macros.
You don't need to know anything about specific KM actions and how they're structured. If the XML has one of the known macro UUIDs in it, then it references the other macro. You don't care what kinds of actions do the referencing, or anything like that.
It's much harder if you don't already know the macro UUIDs, because UUIDs are used for more than just identifying macros. They're used for named clipboards, among other things. So you'd have to understand the context of each UUID to know if it's referencing a macro, or a plugin, or a named clipboard, or whatever.