Google AI Says: To import classes from com.intellij.compiler within an IntelliJ-based plugin, you need to declare the appropriate dependencies in your plugin project’s configuration.
The com.intellij.compiler package belongs to the IntelliJ Platform’s core compiler module. To access these classes, you must: Declare a dependency in plugin.xml.
Add the following line within the <depends> tags in your plugin.xml file:
<depends>com.intellij.modules.java</depends>
I got: Cannot resolve plugin 'com.intellij.modules.java' in dependencies (Reference: Plugin Dependencies)
How do I make it work?
Yes I did base my project on the IntelliJ Platform Gradle Plugin.
This is my plugin.xml: – see line: 24-25
<!-- Plugin Configuration File. Read more: https://plugins.jetbrains.com/docs/intellij/plugin-configuration-file.html -->
<idea-plugin>
<!-- Unique identifier of the plugin. It should be FQN. It cannot be changed between the plugin versions. -->
<id>com.portablesimula.SimulaPlugin</id>
<!-- Public plugin name should be written in Title Case.
Guidelines: https://plugins.jetbrains.com/docs/marketplace/best-practices-for-listing.html#plugin-name -->
<name>SimulaPlugin</name>
<!-- A displayed Vendor name or Organization ID displayed on the Plugins Page. -->
<vendor url="https://portablesimula.github.io/github.io/">Portable Simula</vendor>
<!-- Description of the plugin displayed on the Plugin Page and IDE Plugin Manager.
Guidelines: https://plugins.jetbrains.com/docs/marketplace/best-practices-for-listing.html#plugin-description -->
<!--description><![CDATA[
Enter short description for your plugin here.<br>
<em>most HTML tags may be used</em>
]]></description-->
<!-- Product and plugin compatibility requirements.
Read more: https://plugins.jetbrains.com/docs/intellij/plugin-compatibility.html -->
<depends>com.intellij.modules.platform</depends>
<!-- Following line: Cannot resolve plugin 'com.intellij.modules.java' in dependencies -->
<depends>com.intellij.modules.java</depends>
<!-- Extension points defined by the plugin.
Read more: https://plugins.jetbrains.com/docs/intellij/plugin-extension-points.html -->
<extensions defaultExtensionNs="com.intellij">
<fileType name="Simula File" implementationClass="com.simula.extensions.lang.SimulaFileType"
fieldName="INSTANCE" language="Simula" extensions="sim"/>
<lang.syntaxHighlighterFactory
language="Simula"
implementationClass="com.simula.extensions.highlighterExtension.zz_highlighter.SimulaSyntaxHighlighterFactory"/>
<!--lang.parserDefinition
language="Simula"
implementationClass="com.simula.lang.parser.SimulaParserDefinition"/-->
<!-- New Project -->
<newProjectWizard.languageGenerator implementation="com.simula.extensions.newProject.SimulaNewProjectWizard"/>
<!-- Run Configuration -->
<!-- test1
<configurationType implementation="com.simula.extensions.runConfigurationExtension.SimulaRunConfigurationType"/>
<runConfigurationProducer implementation="com.simula.extensions.runConfigurationExtension.SimulaRunConfigurationProducer"/>
-->
<!-- test2
<configurationType implementation="com.simula.extensions.runConfigurationExtension.test2.TestSimulaConfigurationType"/>
<runConfigurationProducer implementation="com.simula.extensions.runConfigurationExtension.test2.TestSimulaRunConfigurationProducer"/>
-->
<!-- test3 -->
<!-- Register your main configuration type first -->
<configurationType implementation="com.simula.extensions.runConfigurationExtension.SimulaRunConfigurationType"/>
<!-- Register the producer to link it to the context menu -->
<runConfigurationProducer implementation="com.simula.extensions.runConfigurationExtension.MyFileRunConfigurationProducer"/>
-->
<executor implementation="com.simula.extensions.programRunner.InCmdExecutor"/>
<programRunner implementation="com.simula.extensions.programRunner.InCmdRunner"/>
<projectConfigurable instance="com.simula.extensions.programRunner.InCmdConfigurable"/>
<projectService serviceImplementation="com.simula.extensions.programRunner.OptionsPatchConfiguration"/>
</extensions>
<applicationListeners>
<listener class="com.simula.actions.MyActionLogger" topic="com.intellij.openapi.actionSystem.ex.AnActionListener"/>
</applicationListeners>
<actions>
<action id="MyPlugin.MyAction"
class="com.simula.actions.toolsMenu.SimulaOptions"
text="My Plugin Menu Item"
description="A description for my plugin's menu item">
<add-to-group group-id="ToolsMenu" anchor="first"/>
<!-- Or other group-id like "FileMenu", "EditMenu", "ProjectViewPopupMenu", etc. -->
<!-- Anchor can be "first", "last", "before", or "after" with a specific action ID -->
</action>
<!-- Build Actions -->
<action id="MyBuildPlugin.MyBuild"
class="com.simula.actions.build.SimulaBuildAction"
text="Simula Build"
description="Triggers a simula build for the plugin">
<add-to-group group-id="BuildMenu" anchor="last"/>
</action>
</actions>
</idea-plugin>
“ you need to tell Gradle about the Java plugin. Add the following to build.gradle in order to include classes from the Java plugin into the compilation classpath, and tell the IDE to load the plugin at runtime:
intellij {
plugins = [‘com.intellij.java’]
// …
}
Please let us know if you have any issues. “
I tried to put it in build.gradle.kts at several places, but got errors all the time.