This is mostly a placeholder until I come back and edit this so it has a proper description of what this project is.
I’m going to be creating a plugin for IntelliJ IDEs to make developing DBT a better experience. DBT is looking to one of the largest frameworks for Data Engineers, so basically the people who work on moving data to analytics/BI dashboards for a business.
Features of this plugin will be similar to plugins for other frameworks:
- Ctrl+Click to jump to function/class
- Auto Complete based on existing classes/packages
- Auto Complete based on Schema
Be interesting to see your process in making Intellij plugins, see how the process is like.
Doing IntelliJ plugin for two years now, I can tell:
- have a patience
- reverse engineering is the way
- if you have not already join the JetBrains Platform Slack … oh, I think you already joined
Yeah progress on this project has really slowed. I got advice from JetBrains that what I’m don’t isn’t noob friendly. On the bright side they said it’s doable.
What kinda sucks is that there’s not a lot of plugins out there using the new plugin template so just figuring out how plugins work and the AST has taken most of my time.
If I understand correctly the “new template” - it is simply a gradle based building process.
I think I written the build script by hand. Then plugin.xml - also by hand. And that was it - to start having plugin that does nothing . What I need every time is to study plugin.xml fragments of other plugins or from tutorial - the reverse engineering (at least 1% of it). The “rest” of reverse engendering (99%) is the investigation of correct use and possibilities of the platform API.
But it sounds like you are going even bigger into reverse engineering. I have plugin for language support, not framework.
But I would expect that gradle is not really target of your investigation - since all is starting with plugin.xml . Since old plugins have the same plugin structure (?)
It is mostly the build process that has changed but also some internals on how IDEA works. For example components aren’t really used anymore since IDEA has a new way for you to build plugins that doesn’t require a restart of the IDE.
For the most part all plugins seem to be backwards compatible so I can still use old plugins to reverse engineer it’s just more time consuming because they’re mostly in Java and I’ll be using Kotlin.