Changes

Summary

  1. PragmaCollector has just one way to create itself: by filtering all Pragmas. (details)
  2. keepPragma: has to check the selectors again as it is called when methods with pragmas are added (details)
  3. - Improve the API further by adding #selectors:filter: (details)
Commit d1acf3416859944367cb66c50b7c254695b831fb by marcus.denker
PragmaCollector has just one way to create itself: by filtering all Pragmas. 

This is not a good idea, as this means that it always has to iterate over all Pragmas. For large systems, this is slow however you do it
(iterate all methods or iterate all pragmas of the cache and check if the methods are still installed)

For one, PragmaCollector is often not needed. But existing clients that rely on announcements of added / removed pragmas can benefit from a simple change: When creating PragmaCollector, we can
pre-set which Pragma selectors we are interested in.

This PR implements creating PragmaCollector with #selectors:  and changes both PragmaMenuBuilder and KMKeymapBuilder to use this new scheme.
The file was modifiedsrc/MenuRegistration/PragmaMenuBuilder.class.st (diff)
The file was modifiedsrc/PragmaCollector/PragmaCollector.class.st (diff)
The file was modifiedsrc/Keymapping-Pragmas/KMPragmaKeymapBuilder.class.st (diff)
The file was addedsrc/Deprecated90/PragmaCollector.extension.st
Commit 7cd7ea3ec3560faf63e29e8e52e63ad8e09ccce8 by marcus.denker
keepPragma: has to check the selectors again as it is called when methods with pragmas are added
The file was modifiedsrc/PragmaCollector/PragmaCollector.class.st (diff)
Commit 6c166c36a1140d82e1b01a1f484dd21c79e49fb6 by marcus.denker
- Improve the API further by adding #selectors:filter:
- better comments
The file was modifiedsrc/PragmaCollector/PragmaCollector.class.st (diff)
The file was modifiedsrc/MenuRegistration/PragmaMenuBuilder.class.st (diff)
The file was modifiedsrc/Keymapping-Pragmas/KMPragmaKeymapBuilder.class.st (diff)