IntelliJ Tooling Plugin - devnatan/inventory-framework GitHub Wiki
The IntelliJ Tooling Plugin adds a live preview of your inventories directly inside IntelliJ IDEA: open a View class (or a view built with Views.rows(...)) and see what it will actually look like, right next to your code, updating as you type. It also warns you when you're using an experimental or internal part of the API.
The plugin is still in development and isn't available on the JetBrains Marketplace yet — for now it's installed by running it from the project's source.
Requirements
- IntelliJ IDEA 2026.1 or newer.
- Works with both Java and Kotlin.
Installation
Since the plugin isn't published yet, you run it straight from the repository:
git clone https://github.com/DevNatan/inventory-framework
cd inventory-framework
./gradlew :intellij-plugin:runIde
This opens a separate IntelliJ IDEA window with the plugin already installed, where you can open your own project and try it out.
Live Preview
Open any file with a View class (or an inline view built with Views.rows(...)) and you'll get a Preview tab next to your code. Click the split-view icon in the top-right corner to see your code and the preview side by side.
- The preview updates automatically as you edit — no need to run your plugin or server.
- Clicking a slot in the preview jumps your cursor to the line of code that put an item there, and moving your cursor around highlights the matching slot — handy for finding your way around a big view.
- Chest-type inventories are drawn on a chest sprite so they look close to the real thing; other inventory types (hoppers, furnaces, anvils, etc.) are shown as a plain slot grid.
- Items show up as a colored square with a short abbreviation of the material name (e.g.
GIDfor gold ingot) rather than the real item texture — see Limitations below.
The preview understands the basics of setting up a view: its type and size, its title (when set to a plain string), layout(...) patterns, and items placed with withItem(...) on slots, rows, columns, and layout characters.
Experimental/Internal API warnings
Some parts of the Inventory Framework API are marked as experimental or internal — meaning they may change, break, or be removed without much notice. The plugin underlines these in your code as you use them, so you know when you're relying on something that isn't fully stable yet, before it surprises you in a future update.
Limitations
The preview is a best-effort approximation, not a real simulation of your view — it doesn't run your code, so anything that depends on what happens at runtime can't be shown exactly:
- Item icons aren't real. You'll see a colored square and a short abbreviation instead of the actual item texture.
- Dynamic content isn't shown. Titles built from variables, items set through
renderWith/onRender, conditional items, and anything else that isn't a plain literal value are shown as a generic placeholder rather than their real value. row()/column()and friends are approximated. These normally fill the next available slot one at a time (usually from a loop), but the preview doesn't know how many times they'll run, so it shows them as filling the entire row or column. This matches the most common usage but won't be accurate for one-off single-slot placements.availableSlot()andresultSlot()items aren't shown, since their position depends on things the plugin can't know ahead of time.- Clicking is not simulated — the preview is read-only, so
onClick/onSlotClickbehavior won't do anything in it. - Only Java and Kotlin source files are supported.
Learn more
- Plugin source:
intellij-plugin