PhpStorm

Gitpod enables code editing using JetBrains PhpStorm currently via JetBrains Gateway.

Please note: JetBrains PhpStorm is currently in beta. If you experience any issues, or have feedback, please get in touch.

Getting Started

  1. Install JetBrains Gateway - With the JetBrains Gateway and Gitpod plugin you can create and manage your latest 20 Gitpod workspaces.
  2. Install the Gitpod plugin - Open JetBrains Gateway and you’ll see the Gitpod logo on the main page. Click “install” to install the Gitpod plugin for JetBrains Gateway.
  3. Update your Gitpod preferences - Select PhpStorm on the Gitpod preferences page which will set PhpStorm as your default IDE for future workspace starts.
  4. Start (or restart) your workspace - Either start a workspace directly from within the JetBrains Gateway via the Gitpod plugin OR open a new workspace direclty in Gitpod where on workspace start you will be prompted to open PhpStorm for that workspace.
Updating Gitpod IDE preferences to PhpStorm
Opening a JetBrains IDE from Gitpod
Updating the Gitpod plugin in JetBrains Gateway
Opening a JetBrains IDE from Gateway

Important: You must restart any started workspaces for your IDE preferences to take effect.

Install Plugins

This section relates to plugin management when using JetBrains IDEs in a remote development context. For information on regular plugin management, refer to PhpStorm docs.

Unlike with regular development, JetBrains Remote development with PhpStorm allows users to install plugins in different locations:

  • PhpStorm backend plugins - The JetBrains PhpStorm backend runs within the remote Gitpod workspace. Backend plugins contribute functionality for IDE experiences relating to the filesystem, tools or languages and frameworks. When installed, a backend plugin only applies to the currently running Gitpod workspace and is not associated with a user. However, a plugin can be preconfigured for all users of a repository so that the plugin is enabled with every workspace start. It is not currently possible to install a backend plugin that applies to all workspaces of a Gitpod user or team.
  • JetBrains Client plugins - The JetBrains client runs on the users local machine and can be thought of as the user interface to the remote PhpStorm backend. Client plugins are different to backend plugins as they contribute to the user interface aspect of the IDE experience (e.g. keyboard shortcuts and themes). Once installed, a client plugin is enabled for all Gitpod workspaces the user opens (if the workspace is running the exact same version of the PhpStorm backend where the plugin was initially installed).
  • JetBrains Gateway plugins - The JetBrains Gateway is an application downloaded onto a users local machine which allows users to start JetBrains Clients that are compatible with the PhpStorm backend, running in a Gitpod workspace. JetBrains Gateway plugins are installed directly in JetBrains Gateway and contribute to remote development connection experiences (e.g. the Gitpod JetBrains Gateway plugin).

Install on JetBrains Client

The JetBrains client runs on the users local machine and can be thought of as the user interface to the remote PhpStorm backend. Client plugins contribute to the user interface aspect of the IDE experience (e.g. keyboard shortcuts and themes).

Once installed, a client plugin is enabled for all Gitpod workspaces the user opens (if the workspace is running the exact same version of the PhpStorm backend where the plugin was initially installed).

To install a plugin on JetBrains Client follow these steps:

  • In JetBrains Client open the IDE settings and select Plugins.
  • Find the plugin in the Marketplace and click Install.
Install a plugin on JetBrains Client
Install a plugin on JetBrains Client

Install on PhpStorm backend

The JetBrains PhpStorm backend runs within the remote Gitpod workspace. Backend plugins contribute functionality requiring access to IDE experiences such as the remote filesystem (e.g. contributing support of languages and frameworks).

When installed, a backend plugin only applies to the currently running Gitpod workspace and is not associated with a user. However, a plugin can be preconfigured for all users of a repository so that the plugin is enabled with every workspace start.

It is not currently possible to install a backend plugin that applies to all workspaces of a Gitpod user or team.

Install for your current workspace

You can install a plugin only for your current workspace following these steps:

  • In JetBrains Client open the IDE settings and select Plugins On Host.
  • Find the plugin in the Marketplace and click Install.
Install a plugin on PhpStorm backend
Install a plugin on PhpStorm backend

Preconfigure for repository

Please note: This feature is currently experimental and is a subject to change. Send feedback.

You can share a plugin on PhpStorm backend with everybody working on the repository by adding it to .gitpod.yml and pushing to your Git repository. Each workspace is preconfigured with plugins from the gitpod.yml configuration file. For example:

jetbrains:
  phpstorm:
    plugins:
      - zielu.gittoolbox
      - izhangzhihao.rainbow.brackets

You can find the pluginId on the JetBrains Marketplace page:

  • Find a page of the required plugin.
  • Select the Versions tab.
  • Click any version to copy the pluginId (short name such as org.rust.lang) of the plugin you want to install.

Install for your user

It is not yet possible to install plugins on PhpStorm backend for your user to share across all your Gitpod workspaces.

Indexing using Prebuilds

Please note: This feature is currently experimental and is a subject to change. Send feedback.

When you open the project PhpStorm starts indexing to load modules and enable the core functionality like code completion and navigation. Depending on the size of your project indexing speed can vary significantly.

You can speed up the indexing of a project by applying these general recommendations. Gitpod prebuilds allow you to improve it further by indexing before you start a new workspace.

To leverage it:

  • configure prebuilds for your repository, refer to Prebuilds;
  • enable indexing for PhpStorm in prebuilds by editing .gitpod.yml in your repository:
jetbrains:
  phpstorm:
    prebuilds:
      version: stable
  • push changes to your Git repository to apply.

The version property allows you to control whether to index for stable, latest, or both versions of PhpStorm compatible with Gitpod. Users can switch between stable and latest versions of PhpStorm on the user preferences page.

FAQ

  • For the questions about supported IDEs and Editors in Gitpod, refer to FAQs.

  • For the general questions about JetBrains Remote Development, refer to refer to PhpStorm FAQ.

Was this helpful?