APOLLO TERMINAL v1.0
> type '/help' for commands
Skip to main content
0200 / 00:00:00 / 1970.01.01
×
HOME ABOUT NEWS PROJECTS REFERENCES LINKS

FLEXIBLE SOLIDITY

When boredom leads to better tools

Flexible Solidity plugin

I was deep into AIVory development, hit a wall, and needed a mental break. Some people go for walks. I apparently build JetBrains plugins.

This wasn’t new territory for me – I’d already built Scipio ERP Integration, Flexible FreeMarker, Magnolia CMS Integration, consulted on Cody AI, and created the Rookout plugin. Plugin development had become my preferred form of procrastination.

I’ve always been fascinated by blockchain technology from a purely technical perspective. Back in 2018, we built the first ERP/E-Commerce system running on the Lightning network for Scipio ERP (Is the Lightning network ready for commerce?, The issue with Bitcoin in commerce). So when I found myself with some free time, I opened IntelliJ to check out the current state of Solidity support.

It was… underwhelming. There was one other plugin, but it lacked basic features and the language implementation itself was buggy. No proper autocomplete. No security checks. Barely functional navigation.

Three months later, I had Flexible Solidity.

What started as cleanup became comprehensive

Initially, I just wanted proper syntax highlighting and autocomplete. But once I got the language parser working correctly, I kept noticing gaps. Before I knew it, I had 10+ security checks running in real-time, catching vulnerabilities as you type.

Templates that actually save time

I got tired of writing the same OpenZeppelin boilerplate repeatedly. So I built 27+ live templates directly into the plugin. Type s:erc20 and get a complete ERC20 token implementation. s:upgradeable generates a full UUPS upgradeable contract. s:reentrancy adds ReentrancyGuard protection with proper imports and setup.

The template system covers everything from basic contracts to complex patterns like AccessControl, Pausable, and SafeERC20 operations. Each template includes proper NatSpec documentation and follows current best practices.

Framework detection that works

One small annoyance I fixed: never being sure if a project uses Hardhat, Foundry, or both. The plugin automatically detects your framework setup by checking for hardhat.config.js/ts or foundry.toml, then shows it in the status bar. It even handles hybrid projects running both frameworks simultaneously, adjusting directory detection accordingly (contracts/ vs src/).

Everything you’d expect from mature IDE support

Since I’d built several language plugins before, I knew what developers actually need:

  • Go to Definition (Ctrl+Click) that actually works across contracts, functions, variables, and imports
  • Find Usages (Alt+F7) for tracking references across your entire project
  • Rename refactoring that updates all references without breaking your contracts
  • Structure View with visibility-specific icons and smart sorting
  • Hover documentation for quick reference without leaving your code
  • Parameter hints for function calls
  • Code folding for contracts, functions, structs, enums, and assembly blocks

I also added a built-in documentation panel with six tabs: Language Reference, Tutorials, Best Practices, Security Guidelines, Code Examples, and a Quick Reference cheat sheet. Because who actually remembers all the Solidity syntax?

Built for the community

The Solidity development community deserves professional tooling. JetBrains IDEs are excellent, but they need proper language support to be truly effective. This plugin brings that support – complete language implementation, real security analysis, practical optimizations, and comprehensive templates.

Check it out at plugins.jetbrains.com/plugin/28744-flexible-solidity.

Background
EducationEBS Business School, SFSU, HSG
Experience20 Years Enterprise Systems
BuiltScipio ERP - ERP & Ecommerce System
Author"Start/Up - Set the net on fire"
JetBrains5x Plugins Published
Tech Stack
LanguagesJava, Python, JS, TS, Rust, Go, Swift, PHP
FrontendReact, Vue, Angular, HTML/CSS
DatabasesPostgreSQL, MySQL, MongoDB
CachingRedis, Memcached
Key Clients
EnterpriseL'Oréal, Amadeus, Konica Minolta, Orange
Digital1&1 Internet, Sedo.com, Creditsafe
PublicDRK, Kanton Basel, Aktion Mensch, Börsenverein
← PREV NEXT → TOP ↑