Developer Guide
Welcome to the Lertaro Developer Reference Manual. Built upon a decoupled multi-process architecture and an extensible plugin ecosystem, Lertaro provides an official SDK assembly: Lertaro.PluginSdk. By referencing this SDK, third-party developers can contribute custom search sources, extend context action menus, integrate with third-party file managers and native file dialogs, and customize themes and preview handlers.
1. Architecture & Workflow
- System Architecture —— Deep dive into the three-process isolation model (SYSTEM-level Windows Service, user-mode WPF App, and keyboard Hook process) and named pipe IPC.
- Getting Started —— Step-by-step guide to creating a plugin class library, referencing the SDK, implementing
IPlugin, and local debugging. - Packaging & Distribution —— Assembly directory conventions, bundling third-party managed/native DLLs, embedding i18n resources, and PostBuild deployment automation.
- Plugin Examples —— Real-world case studies analyzing the official open-source
CoreExtensions,PinyinAlias,FlowLauncherBridge, andFileUnlockerplugins.
2. Plugin SDK Reference
| SDK Category | Core Interfaces & Services | Key Capabilities |
|---|---|---|
| Core Search & Actions | ISearchableItemProviderIInstantResultProviderIAliasProviderIQueryTokenProviderISearchResultActionIDynamicActionProvider | Contribute indexed items, instant calculation answers, non-ASCII alias transliteration engines, query suffix token handlers, and static/dynamic context action menus. |
| System & Dialog Adapters | IActivePathCollectorIFileDialogAdapterIInlineSearchAdapterIQuickNavigationProvider | Detect active directories in file managers, hook native file dialogs, embed inline search bars with two-way selection sync, and provide Quick Navigation menus. |
| UI & Preview Extensions | ISidebarFilterProviderIResultColumnProviderIQuickPanelTabProviderICalendarTextProviderIFilePreviewProviderIThumbnailProviderIThemeProviderITranslationProvider | Add sidebar filter categories, custom table columns, Quick Panel dynamic workspace tabs, the date text on the search window's clock line, QuickLook custom preview renderers, thumbnail extractors, WPF themes, and i18n language packs. |
| Shared Abstractions | ISearchResultFileMetadataIPluginSearchWindowIConfigurable | Read-only result models, high-precision file timestamps and size metadata, host window control handles, and schema-driven native configuration forms. |
| Host Services | FuzzyMatchServiceTranslationServiceIconServiceFavoritesServiceHistoryServiceFileMetadataServiceDirectoryIndexerServiceMemoryMaintenanceServiceRecentFilesServiceExplorerPathServicePluginSettingsServiceSettingsSearchServiceSettingsWindowServiceSearchRefreshServiceUserDataServiceLogger | High-performance host infrastructure: fzf fuzzy matching and highlight masks, cached icon extraction, favorite management, directory indexer proxies, deferred memory maintenance, data directory isolation, and native Shell file operations. |
| Notifications | PluginNotificationServiceNotificationRequestINotificationHandleNotificationLevelNotificationPositionNotificationResultNotificationFailure | Background attention through the host's own windows: a bottom-right card stack or a bottom-centre notice, durations clipped by the host, replacement by Id, per-plugin limits, and a completion task that always finishes. |
NOTE
Interface signatures, member names, defaults and parameter order on these pages are read off the Lertaro.PluginSdk source. Where a page also describes how the host reacts to a plugin's call, that sentence is documentation of current behavior, not a contract a plugin may depend on.