The module is built to hook into when game.macros.getName() is called. Then if that returned a value return that value. Otherwise it begins searching through the compendiums for the specified macro until it hits the first match. Essentially executing macros from the compendium. Additionally, when doing this search it adds the macro to a global map that is defined as: {"macroName": { "compendiumName" : "compendiumNameValue", "macroId":"macroIdValue"}}. To make the search quicker, and to avoid copies of the macro into game.macros.
The settings menu does allow for establishing a list of compendiums to search through, and a list of compendiums to exclude from searching. The menu is multiselect allowing multiple entries to be moved from include to exclude. And vice versa.
I mainly created this module to help with macros that were part of class features and effects I had set up in shared compendiums.
https://github.com/NexasXowlins/macroSearch/blob/main/README.md