💡 Most of the information is available in the help icon when you open the tool.
When exploring the system, it's useful to have a single entry point to search across different components. Pulse provides such an entry point and is usually available by pressing <Meta+Enter>.
Pulse is a remake of Spotter, a front-end tool for displaying results from various processors. These processors can be configured in different ways to provide flexible access options.
Pulse splits the traditional Spotter interface into three distinct tabs:
- Environment — for classes, methods, and packages
- Windows — for every open window in the image
- Tools — for menu items
- Pulse fetches the first 25 results, but loads the first 3 results immediately via events to improve responsiveness.
- You can request the full results by using the down arrow button or
<Meta + ↓>. - A background service runs every 50 milliseconds to manage the search behavior asynchronously.
- Logic handled in:
StPulse >> processSearch
- Logic handled in:
- When typing, the service triggers the search.
- When changing tabs, a separate search is executed outside the service.
- A spinner gives visual feedback during searches.
Any class, method, or package you open (from the Environment tab) is stored as a HistoryEntry:
- Classes/Methods → contents serialized as a string
- Packages → stores the package name and re-queries on retrieval
This avoids hard references and all entries are stored in a circular memory logger, which auto-cleans any nil or invalid entries.
Keyboard shortcuts are available at both the window level and individual presenters for full mouse-free navigation.
Multiple shortcuts allow you to open Pulse directly into a specific tab, enhancing speed and usability.
- Designed to work with Pharo's new memory of window size.
- Special handling was implemented for modal resizing, requiring Spec-level customization.
- New Spec styles were added to lists (e.g.,
rowHeight) to support this tool.
| Processor | Search Keyword | Shortcut |
|---|---|---|
| Classes | #classes |
<Meta+B> |
| Implementors | #implementors |
<Meta+M> |
| Packages | #packages |
<Meta+P> |
Pulse development was divided into this repository and contributions to related projects: (At the moment, I'm developing DockPulse, an adaptation for another IDE)
Contributions to NewTools
- Small fix on NewTools-Spotter-Processors →
StQuery >> updateFromContext: - Add
stpulse - Fixing NewTools baseline
- Reverted deleted
stEntrymethods - Fixing focus bug on
stpulseand tests - Implement
stpulse"Find All" button


