IDE
A devfile lets you specify the IDE to use in a dev environment, JVM options (in case of IntelliJ-based IDEs), and the project root directory.
You can use the following IDEs from JetBrains in a dev environment: Fleet, IntelliJ IDEA, WebStorm, PyCharm, RubyMine, CLion, GoLand, PhpStorm, and Rider *. To get information about available IDEs, Space uses the JetBrains Toolbox App update feed. You can view the available IDEs, IDE versions, and version release states (e.g., Release, EAP, and so on) on the dev environments administration page.
Using the space.editor
parameters, you can specify a default IDE, IDE version, and version release state. Users can change any of these settings when creating a dev environment. When warming up a dev environment, Space will build IDE indexes for the IDE and IDE version specified in the devfile.
schemaVersion: 2.2.0
attributes:
space:
editor:
# (Required) IDE type: Idea, WebStorm, PyCharm,
# RubyMine, CLion, Fleet, GoLand, PhpStorm, Rider
type: WebStorm
version: '2022.1'
# release state, e.g. Release or EAP
updateChannel: Release
If not specified in a devfile, the default IDE version is always the latest available release version. This is the organization-wide default. To change it, a user must have the Edit dev environments settings global permission (for example, this can be an administrator with the System Admin role).
If you want to use a dev environment with JetBrains Rider, you must additionaly specify a path to the solution file. To specify the path, use the projectRoot
parameter. For example:
schemaVersion: 2.2.0
attributes:
space:
editor:
type: Rider
version: '2022.1'
# projectRoot is specified
# relative to repository root
projectRoot: projects/my-project/MySolution.sln
In some cases, you might need to change the configuration of Java Virtual Machine (JVM) your IntelliJ-based IDE runs on. For example, increase the maximum memory heap size allocated for the IDE.
tip
The default maximum memory heap size depends on a dev environment type: Regular - 2000 MB, Large - 4000 MB, and Extra Large - 7000 MB.
To specify the required JVM options, use the vmoptions
list. For example, to set the initial and max memory heap size allocated for the IDE:
schemaVersion: 2.2.0
attributes:
space:
editor:
type: WebStorm
# the config appends to the default .vmoptions file
vmoptions:
- '-Xms2048m'
- '-Xmx4096m'
After you push the updated devfile to the project repository, the specified JVM options will be applied only to newly created dev environments.
After you start a dev environment, an IDE opens a project root directory. By default, the project root is the repository root. You can specify an alternative project root location (relative to the repository root) using the projectRoot
parameter. This might be helpful for mono-repositories which include multiple projects.
Also note that all path parameters in a devfile (e.g., components[*].image.dockerfile.uri
and components[*].image.dockerfile.buildContext
) are specified relative to the project root.
# resulting project root: <path-to-repo>/server
schemaVersion: 2.2.0
attributes:
space:
editor:
type: Idea
projectRoot: server
# projectRoot is not specified
# resulting project root: <path-to-repo>
schemaVersion: 2.2.0
attributes:
space:
editor:
type: Idea
Thanks for your feedback!