Using IntelliJ "as a library" Follow
Answered
I would like to use code from an IntelliJ plugin in my own code. Specifically, https://github.com/asciidoctor/asciidoctor-intellij-plugin has an AsciiDoc parser, which is a piece of software that is hard to come by. I'd like to invoke that parser in a command-line tool to extract an AST and write it as a JSON or something.
This plugin has extensive tests that demonstrate how to call into the code from outside IntelliJ, but it's complex and I wonder if there's a better way. As I see, I need to setup a good chunk of the IntelliJ architecture.
I wonder if there's any generic "mock" of that which can be instantiated easily, or even a way to set up the whole IntelliJ architecture of classes...
Please sign in to leave a comment.
Alex, I'd suggest you redirect such a question directly to the plugin's author.
Hi,
I don't think that's up to the plugin. I can use the plugin's code just fine (it's a parser). However, if I try to build my code using the plugin's code in a standalone project, I get *tons* of pain. I've basically narrowed it down to a bunch of dependencies in a "3rd-party.jar" library that seems to be included in the plugin by the IntelliJ Gradle plugin... which I cannot add to my own Gradle, non-IntelliJ plugin project :\
Cheers,
Álex
See https://plugins.jetbrains.com/docs/intellij/intellij-artifacts.html#using-intellij-platform-module-artifacts on how to obtain required artifacts. But in general, it is very hard/impossible to make code work "Standalone" without IDE instance.
Ah, in the end I got it working (see https://github.com/alexpdp7/asciidoc-ast/ , it's not very well-documented, but it works)... I think I missed that link, and it would probably have helped- I'll review that anyway, thanks!