Install the IDE plugin¶
Katalyst is annotation-free: it discovers routes, middleware, WebSockets, exception handlers, services, components, repositories, tables, event handlers, scheduled jobs, migrations, initializers, and config loaders by convention at startup. Because nothing in your code calls those entrypoints directly, the IDE's static analysis can't see that they're used and reports them as unused.
The Katalyst Support plugin teaches IntelliJ IDEA and Android Studio those conventions, so
the editor treats framework entrypoints as live code. Install it and you no longer annotate
entrypoints with @Suppress("unused").
Install from the IDE¶
- Open Settings/Preferences → Plugins.
- Select the Marketplace tab.
- Search for Katalyst Support.
- Click Install, then restart the IDE when prompted.
You can also install it from the JetBrains Marketplace page.
What you get¶
- No more
@Suppress("unused"). Every Katalyst entrypoint is recognized as used, so the "never used" warning disappears without annotations. - Gutter icons next to each discovered entrypoint, with a tooltip naming its kind (route, service, event handler, and so on).
- Entrypoint signature inspection that warns when a function looks like an entrypoint but
won't be discovered — for example, it's
private, or it has a Ktor receiver and a route-like name but is missing thekatalyst*DSL call. - Scheduler validation: invalid cron expressions are flagged in the editor with the exact
field error (instead of only failing at startup), and duplicate job names within a
jobs { }block are reported. - Cron expressions rendered in plain English inline —
0 0 2 * * ?shows as Every day at 02:00. - Event handler type check that warns when an
EventHandler<T>'seventTypedoesn't match its type argument.
Compatibility¶
The plugin supports IntelliJ IDEA and Android Studio on build 2024.2 (242) and newer, and works in both the K1 and K2 Kotlin analysis modes.
Without the plugin¶
The plugin is optional — your application compiles and runs exactly the same without it. If you
don't install it, the IDE will flag discovered entrypoints as unused; that's a cosmetic editor
warning, not a compilation error. The plugin simply removes the noise so you can keep your code
free of @Suppress annotations.