# VS Code Setup

As of August 2021, we will be terminating our license with PHPStorm in favour of VS Code. Over the years VSCode has come a very long way from the basic code editor it used to be at it's infancy, and it's become one of the leading tools that developers rely on for all sorts of projects.&#x20;

Out of the box, VS Code runs faster than it's Java-based counterparts, and uses a fraction of the resources when compared to full-blown IDEs. Resources aside, PHPStorm and other IDEs spend a lot of time indexing your projects, getting in the way of development and slowing down your workflow.

Out of the box, PHPStorm comes with various tools that make it one of the best IDEs out there. There's no denying that PHPStorm is a great piece of software, however due to the wide adoption of VS Code, and the large number of official extensions, one can easily switch without skipping a beat.&#x20;

A quick peak at the Activity Monitor shows the massive difference in resources between the two applications:

![](/files/-MYl_GWH8AhgCoEB0bpc)

![](/files/-MYl_P-VZzkf8d-ni2mH)

### Recommended Extensions

Here's a list of extensions that we highly recommend to Elentra developers:

1. [PHP Intelephense](https://marketplace.visualstudio.com/items?itemName=bmewburn.vscode-intelephense-client)
2. [PHP Debug](https://marketplace.visualstudio.com/items?itemName=felixfbecker.php-debug)
3. [Remote - SSH](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh)
4. [Remote - Containers (Docker)](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)
5. [GitLens](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens)
6. [Bookmarks](https://marketplace.visualstudio.com/items?itemName=alefragnani.Bookmarks)
7. [Docker](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker)
8. [Vetur](https://marketplace.visualstudio.com/items?itemName=octref.vetur)&#x20;

### Visual Studio Code Keyboard Shortcuts

{% hint style="info" %}
It's better to learn VS Code's default key-bindings, however, some developers might prefer to maintain PHPStorm's key-bindings in VS Code, and for that, you can use [IntelliJ IDEA Keybindings.](https://marketplace.visualstudio.com/items?itemName=k--kato.intellij-idea-keybindings)
{% endhint %}

You can access a list of shortcuts for your operating system by going to Help - Keyboard Shortcuts Reference within your VS Code application, or [click here.](https://code.visualstudio.com/docs/getstarted/keybindings#_keyboard-shortcuts-reference)

### PHP in Visual Studio Code

[Click here ](https://code.visualstudio.com/docs/languages/php)to read a general overview of PHP programming in VS Code with tips around linting and debugging.

### Additional Helpful Customization

Initially, you may find the visual layout a bit challenging, especially if you've been using PhpStorm for a long time. There are many small visual differences things that seem insignificant, but they do make a big difference. We recommend you spend some time in the Settings and configure the interface to something you're happy with.

**Working tree file/folder indentation**

**Settings - Workbench > Tree: Indent** (Controls indentation in the Workspace tree)

![](/files/-MYlb_wT5nL_0ewYgDVE)

**Increase the size of variables that you can peak at when using breakpoints**

```
"xdebugSettings": {
    "max_children": 999,
    "max_depth": 10,
    "max_data": -1
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.elentra.org/technical/developers/troubleshooting/vscode-setup.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
