Enhanced the JetBrains module to support pre-installing plugins in workspaces. When users specify plugin IDs, the module creates configuration files that automatically suggest plugin installation when connecting via JetBrains Gateway. This eliminates the need for manual plugin installation after workspace setup.
$ grep -A 4 "variable \"plugins\"" main.tf
variable "plugins" {
type = list(string)
description = "A list of plugin IDs to pre-install in the JetBrains IDEs. Plugin IDs can be found on the JetBrains Marketplace."
default = []
}
$ ls -la scripts/
total 12
drwxrwxr-x 2 user user 4096 Jan 12 10:30 .
drwxrwxr-x 3 user user 4096 Jan 12 10:29 ..
-rw-rw-r-- 1 user user 4985 Jan 12 10:30 install-plugins.sh
$ grep -A 8 "coder_script.*jetbrains_plugins" main.tf
resource "coder_script" "jetbrains_plugins" {
count = length(var.plugins) > 0 ? 1 : 0
agent_id = var.agent_id
display_name = "Configure JetBrains Plugins"
icon = "/icon/jetbrains-toolbox.svg"
run_on_start = true
start_blocks_login = false
timeout = 120
}
$ terraform init
Initializing the backend...
Initializing provider plugins...
- Installing coder/coder v2.8.0...
- Installing hashicorp/http v3.5.0...
Terraform has been successfully initialized!
$ terraform validate
Success! The configuration is valid.
$ terraform plan -var='agent_id=demo-agent' -var='folder=/workspace' -var='default=["IU","PY"]' -var='plugins=["org.jetbrains.plugins.github","com.intellij.ml.llm"]'
Terraform will perform the following actions:
# coder_app.jetbrains["IU"] will be created
+ resource "coder_app" "jetbrains" {
+ display_name = "IntelliJ IDEA"
+ slug = "jetbrains-iu"
+ url = "jetbrains://gateway/coder?&workspace=default&owner=default&folder=/workspace&url=https://mydeployment.coder.com&token=$SESSION_TOKEN&ide_product_code=IU&ide_build_number=251.26927.53"
}
# coder_app.jetbrains["PY"] will be created
+ resource "coder_app" "jetbrains" {
+ display_name = "PyCharm"
+ slug = "jetbrains-py"
}
# coder_script.jetbrains_plugins[0] will be created
+ resource "coder_script" "jetbrains_plugins" {
+ display_name = "Configure JetBrains Plugins"
+ run_on_start = true
+ script = <<-EOT
PLUGINS=(org.jetbrains.plugins.github com.intellij.ml.llm)
SELECTED_IDES=(IU PY)
echo "🚀 JetBrains Plugin Configuration Setup"
echo "Configuring 2 plugin(s) for auto-installation..."
EOT
}
Plan: 3 to add, 0 to change, 0 to destroy.
$ bash -n scripts/install-plugins.sh
# No output = syntax is valid
$ terraform fmt -check
# No output = formatting is correct
https://github.com/user-attachments/assets/8a290003-42bf-49b2-a787-6d504dc12019
module "jetbrains" {
source = "registry.coder.com/coder/jetbrains/coder"
version = "1.0.1"
agent_id = coder_agent.main.id
folder = "/workspace"
default = ["IU", "PY"]
# Pre-configure plugins for auto-installation
plugins = [
"org.jetbrains.plugins.github", # GitHub integration
"com.intellij.ml.llm", # AI Assistant
"Pythonid", # Python support
"org.intellij.plugins.markdown" # Markdown support
]
}
Closes #208 - Pre-install JetBrains plugins in Workspaces /claim #208
Saheli Saha
@Sahelisaha04
Coder
@coder