Phpstorm Intellisense



Moving from WebStorm/Phpstorm to VS Code

PHPSTORM intellisense for casted object. Handling array of object and intellisense. PHP retrieve object's getter methods only once in an array of objects. Up till yesterday, WebStorm would assist me in completing html and less values with intellisense. For example, it would help to auto complete paths to images or other files, or class names from the css file.

Been a user of Phpstorm/webstorm since long and wish to migrate to VS Code ? Skeptical about changing your IDE or the changes that it might bring along ? Fear not, for we will show you how you could setup VS code to be identical to Phpstorm/webstorm.

Why should you migrate to VS Code ?

PHPSTORM intellisense for casted object. Handling array of object and intellisense. PHP retrieve object's getter methods only once in an array of objects.

I love using Webstorm/Phpstorm and it has been the editor of my choice since several years now. But here are a few advantages that I saw that compelled me try out VS Code –

  • VS Code provides the same functionality as Webstorm/Phpstorm
  • Free of cost (thanks to Microsoft for making it Open Source)
  • It is fast. (In fact, faster than Webstorm/Phpstorm and lighter in terms of RAM usage)

Lets see how to get this IDE setup

Setting Up VS Code

Phpstorm intellisense license

Firstly, you should have installed VS Code. If you haven’t, do so by downloading it from its official source

By default, VS Code does not come with out-of-the-box support for many languages like PHP, Java, Ruby, etc or even frameworks like React, Vue, Svelte, Symfony, etc. Thankfully, there are extensions to support almost every language and framework.

You will find a list of useful extensions which are highly recommended to make your new IDE function just like Phpstorm/Webstorm. In general, to keep your IDE fast, the lesser the number of extensions, the better. Consequently, only the bare essential extensions have been listed.

Recommended Extensions

1. IntelliJ Keybindings

This extension ensures your transition to VS Code to be less cumbersome by allowing you to use the same keyboard shortcuts as you did with WebStorm/PhpStorm.
There are a few exceptions but its much better than having to learn new keyboard combinations all over.

2. IntelliSense for CSS class names in HTML

Intellisense

As the name suggests, this adds auto-complete support for css classes in your html files.

3. Gitlens

Gitlens is a cool extension that can be used for all your git based tasks. Allows you to check a file’s history, annotate them, explore repositories, see and compare your stashed items and so on.

4. Javascript Snippets

This extension installs handy javascript snippets to speed up your development. This gives you a functionality similar to that of Live Templates in Webstorm/Phpstorm. You can also add your custom javascript snippets at ~/.config/Code/User/snippets/javascript.json

Phpstorm

5. Extensions to Support PHP

  • Php Pack – Adds support for Php
  • Php Intellisense – Adds autocompletion and refactoring support for Php
  • Php-Debug – Adds debug support for php via XDebug

6. Extensions to Support Symfony + Twig

  • Symfony – Adds debug/autocomplete support for Symfony
  • Twig – Adds support for Twig syntax

7. Linters

Highly recommended if you work with Typescript and/or Javascript.

  • TSLint – Adds support for TSLint
  • EsLint – Integrates ESLint JavaScript with VS Code

8. Docker

If you’re using docker, then this extension will be your ally. It helps you to build, manage, deploy and debug your containerized applications.

9. Reveal

Pycharm Intellisense

This extension is the equivalent of the Select Opened File button found in PhpStorm/WebStorm. Its adds a similar button to allow you to quickly highlight an open file in the File Explorer/sidebar.

10. Code Formatting

  • Prettier – Formats Code with Prettier
  • EditorConfig – Adds EditorConfig Support for VS Code

11. Auto Rename Tag

As the name suggests, this extension will rename matching tags like <html></html> while you edit them. VS code does this automatically for html files but other file formats aren’t supported. To add support for every other format, use this extension. I find it very helpful while using frameworks like React, Vue, Svelte or any other frameworks that use JSX or even XML files.

12. Syntax Highlighting for Apache, yaml and dotenv

  • Apache Conf – Highlights syntax for apache configuration files
  • Yaml – Adds Yaml language support
  • Dotenv – Adds support for dotenv file syntax

13. Settings Sync

Settings Sync helps you to synchronize your settings between multiple machines. Synchronizing settings has become absolutely essential for people in 2020 who are forced to toggle between work and work from home (thanks Corona!) NOTE: To sync settings, there exists a native way to do it within VS Code. I’d suggest using this recommended way instead of the extension. The extension nonetheless serves as an excellent alternate option.

Intellij

14. Rest Client

If you need to test your API without leaving your IDE, this extension does a great job. Its an alternative to using Postman or Insomnia for the same.

15. Improve Code Readability

  • Bracket Pair Colorizer – This extension colorizes matching brackets
  • Indent Rainbow – Makes indentation easier to read by adding colours

Bonus: Custom Vscode Icons

Phpstorm Intellisense Server

This extension adds custom icons for files according to their extension. For example, package.json files will have an icon with npm written on it, thus making it easier to identify the file.

Bonus Theme: Darcula IntelliJ Theme

Do you prefer Webstorm’s / Phpstorm’s Darcula theme ? If yes, then this extension is for you!

I’m sure that there are tons of other extensions available at VS code’s marketplace. Feel free to try them out and if they’re worth it, recommend them to the dev community as well.

Update VS Code Settings

Once you’ve installed all the necessary extensions, its time to update the settings of your new IDE. To open the settings, you can use the File Menu (Preferences => Settings) or you could hit Ctrl + ,. This will open up your Settings. You can tinker with the settings as you’d like.

You can also update the settings.json directly. Hit Ctrl + Shift + P and type settings.json and then select Preferences: Open Settings (JSON).

You should now have your settings.json file on the screen and could update it as shown below. And you do not need to worry about updating settings of extensions that you haven’t installed. Because, in that case, those settings will simply have no effect. So you could directly copy-paste the following settings –

Visual Code Intellisense

Useful Keyboard Shortcuts

Here are a few new keyboard shortcuts that you might wanna learn to make your life easier.

  • Open command Palette => Ctrl + Shift + PORF1 key
  • Open Settings => Ctrl + ,
  • Select all occurrences of Find match => Ctrl + Shift + L
  • Add selection/cursor to next match =>Alt + J
  • Jump to matching bracket =>Ctrl + Shift +

To help with your transition, here’s a link to my VS Code Settings. You can most certainly use it as a reference. Also, once you finish setting up your new IDE, feel free to go through the official Tips & tricks.
Hope it helps 😉

Phpstorm Intellisense Download

References

To get you familiar with JetBrains Rider's code completion features, here are some implementation basics:

What Is Intellisense

  • The suggestion list of Automatic Completion appears as soon as you start typing a new identifier. The suggestion list of Basic Completion appears when you press Ctrl+Space.

  • Two other completion commands, Smart CompletionCtrl+Shift+Space and Second Basic CompletionCtrl+Alt+Space apply advanced algorithms to add more items to the suggestion list.

  • By default, all JetBrains Rider's completion features support CamelHumps, that is you can type the initial letters of a compound name parts and the name will appear in the list of suggestions.

  • When you use code completion over existing code items, you can either insert the selected completion suggestion by pressing Enter or substitute the existing identifier with the selected suggestion by pressing Tab. You can configure this behavior with the Preselect the best match to insert it by pressing dot, parentheses, and other keys and Enter inserts suggestion even if completion popup is not focused checkboxes on the Editor | General | Code Completion settings page.

  • You may want some types or namespaces not to be suggested, for example, if you have something similar to a system type in your solution, say MyFramework.MyCollections.List, but you are not actually using it. To exclude such symbols from the suggestions, add them to the Exclude from import and completion list on the Editor | General | Auto Import page of JetBrains Rider settings Ctrl+Alt+S. The format of the entries is Fully.Qualified.Name, Fully.Qualified.Name.Prefix*, or *Fully.Qualified.Name.Suffix. Generic types are specified as List`1.

  • When you select items in completion lists using keyboard, the selection will jump to the first item after the last item and vice versa. You can disable this behavior by clearing Cyclic scrolling in list on the Appearance and Behavior | Appearance page of JetBrains Rider settings Ctrl+Alt+S.

  • When a completion list is open, you can press Ctrl+Down or Ctrl+Up to close it and move the caret down or up in the editor.

Phpstorm Intellisense 2019

In this section:





Comments are closed.