In JetBrains’ IDE, some language support is not good enough, and some language support is not available at all.
- Good enough language will have IDE support, like golang with GoLand.
- Not good enough language will have no IDE support, like Rust with CLion (before RustRover)
So, we need to configure plugin for the language
Debug Config
for Debug, We already run configs under .idea/runConfigurations
, so we can just copy and modify them.
Here are some examples [RustRust.xml] :
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Run Rust" type="GradleRunConfiguration" factoryName="Gradle">
<ExternalSystemSettings>
<option name="executionName" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="externalSystemIdString" value="GRADLE" />
<option name="scriptParameters" value="-PbaseIDE=idea -Plang=rust" />
<option name="taskDescriptions">
<list />
</option>
<option name="taskNames">
<list>
<option value=":plugin:runIde" />
</list>
</option>
<option name="vmOptions" value="" />
</ExternalSystemSettings>
<GradleScriptDebugEnabled>false</GradleScriptDebugEnabled>
<method v="2" />
</configuration>
</component>
We configure the scriptParameters
to pass the baseIDE
and lang
to the gradle script.
./gradlew :plugin:runIde -PbaseIDE=idea -Plang=rust
Configure in Gradle
We can configure the plugin in Gradle script, like build.gradle.kts :
project(":plugin") {
apply {
plugin("org.jetbrains.changelog")
}
version = prop("pluginVersion") + "-$platformVersion"
intellij {
pluginName.set(basePluginArchiveName)
val pluginList: MutableList<String> = mutableListOf("Git4Idea")
when (lang) {
"idea" -> {
pluginList += javaPlugins
}
"python" -> {
pluginList += pycharmPlugins
}
"go" -> {
pluginList += listOf("org.jetbrains.plugins.go")
}
"rust" -> {
pluginList += rustPlugins
}
}
plugins.set(pluginList)
}
// ...
}
In rustPlugins
, we can see the plugin list for Rust:
val rustPlugins = listOf(
prop("rustPlugin"),
"org.toml.lang"
)
The prop("rustPlugin")
is defined in gradle.properties
, which will also load different version of plugin for different IDE version.
- gradle-222.properties
- gradle-233.properties
In gradle-222.properties
, we can see the plugin version for Rust:
rustPlugin=org.rust.lang:0.4.185.5086-222
In gradle-233.properties
, we can see the plugin version for Rust:
rustPlugin=com.jetbrains.rust:233.21799.284
Debug Config for Rust
Tricks for Rust development.
Due to JetBrains’ crafty move, there are two different versions of the Rust IDE plugin.
- Under 233: Deprecated Rust
- check latest available version here https://plugins.jetbrains.com/plugin/8182–deprecated-rust
- rustPlugin=org.rust.lang:0.4.185.5086-222
- Above 233: Official Rust
- check latest available version here https://plugins.jetbrains.com/plugin/22407-rust/versions
- rustPlugin=com.jetbrains.rust:233.21799.284