Codify

webstorm

A reference page for the webstorm resource

The webstorm resource installs JetBrains WebStorm, a JavaScript IDE. On macOS it is installed via Homebrew Cask (brew install --cask webstorm); on Linux via Snap (snap install webstorm --classic).

Parameters

  • settingsZip (string, optional) — Absolute path to a WebStorm settings ZIP file (exported via File | Manage IDE Settings | Export Settings) to import on first install. The archive is extracted directly into the WebStorm config directory, so all exported settings (keymaps, code styles, inspections, etc.) are applied before WebStorm is first launched.

  • importSettings (boolean, optional, default: true) — Controls whether the settingsZip is imported during create. Set to false to skip the import even when settingsZip is specified. This is a setting parameter and is not tracked as state, so it only has effect when the resource is first applied.

  • plugins (string[], optional) — JetBrains Marketplace plugin IDs to install (e.g. "dev.blachut.svelte.lang", "org.jetbrains.plugins.github"). Plugin IDs can be found on the plugin's page in the Marketplace under Additional Information. Plugins are managed statefully: Codify adds missing plugins and removes plugins no longer in the list.

  • jvmMaxHeapSize (string, optional) — Maximum JVM heap allocated to WebStorm, e.g. "2048m" for 2 GB or "4096m" for 4 GB. Written to webstorm.vmoptions in the IDE config directory as -Xmx<value>.

  • jvmMinHeapSize (string, optional) — Initial JVM heap allocated to WebStorm, e.g. "512m". Written to webstorm.vmoptions as -Xms<value>. Typically set to half the max heap size.

Example usage

Install WebStorm with plugins

codify.jsonc
[
  {
    "type": "webstorm",
    "plugins": [
      "dev.blachut.svelte.lang",
      "org.jetbrains.plugins.github"
    ]
  }
]

Install WebStorm, import previous settings, and increase heap

codify.jsonc
[
  {
    "type": "webstorm",
    "settingsZip": "/path/to/webstorm-settings.zip",
    "importSettings": true,
    "jvmMaxHeapSize": "4096m",
    "jvmMinHeapSize": "1024m",
    "plugins": [
      "dev.blachut.svelte.lang",
      "org.jetbrains.plugins.github"
    ]
  }
]

Notes

  • On macOS a CLI launcher symlink is created at /usr/local/bin/webstorm during install so that webstorm is available in terminal sessions. It is removed on destroy.
  • Plugin IDs must be exact JetBrains Marketplace IDs. You can find them on the plugin's Marketplace page under Additional Information → Plugin ID.
  • The settingsZip import only runs during create (first apply), not on subsequent applies. If you need to re-import, destroy and re-apply the resource.
  • JVM options are written to webstorm.vmoptions in ~/Library/Application Support/JetBrains/WebStorm<version>/ on macOS and ~/.config/JetBrains/WebStorm<version>/ on Linux. If WebStorm has never been launched, Codify creates this directory and file automatically.
  • On Linux, Snap must be available. Codify will attempt to install snapd via the system package manager if it is not found.

On this page