i’m making a plugin to support a custom language via lsp4ij. i have it mostly working for IDEA, but i want it to also work in pycharm.
im finding the docs very confusing. how do i target all intelliJ IDEs that are able to support the plugin, or even manually define multiple targets (eg IDEA community, IDEA Ultimate, Pycharm Community, PyCharmPro… etc…
my build.gradle is as
plugins {
id 'java'
id("org.jetbrains.intellij.platform") version "2.2.1"
}
group 'pawrequest'
version '0.0.1'
repositories {
mavenCentral()
intellijPlatform {
defaultRepositories()
}
}
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(21))
}
}
dependencies {
intellijPlatform {
intellijIdeaCommunity("2024.3.3")
plugin("com.redhat.devtools.lsp4ij:0.10.0")
}
}
sourceSets {
main {
java {
srcDirs = ['src/main/java']
}
resources {
srcDirs = ['src/main/resources']
}
}
}
test {
useJUnitPlatform()
}
and plugin.xml is
<idea-plugin>
<id>pawrequest.rs4ij</id>
<name>RedScript4IntelliJ</name>
<vendor>pawrequest</vendor>
<description>
Adds support for redscript LSP integration via LSP4IJ.
</description>
<version>0.0.1</version>
<depends>com.intellij.modules.platform</depends>
<depends>com.intellij.modules.lang</depends>
<depends>com.redhat.devtools.lsp4ij</depends>
<extensions defaultExtensionNs="com.redhat.devtools.lsp4ij">
<server id="RedscriptLanguageServerId"
name="RedscriptLanguageServer"
factoryClass="pawrequest.rs4ij.server.RedscriptLanguageServerFactory">
<description><![CDATA[
RedScript4IJ language server
]]>
</description>
</server>
</extensions>
<extensions defaultExtensionNs="com.redhat.devtools.lsp4ij">
<fileNamePatternMapping patterns="*.reds"
serverId="RedscriptLanguageServerId"
languageId="reds"/>
</extensions>
</idea-plugin>