My point with this post is to understand if I’m missing something or the features that are important for me are really missing in VSCode. Can you help me?
A bit of context, I have tried to use VSCode twice, the first time was approximately 2 years ago and I gave up because it was not able to open my project without crashing, I was working Cavadinha that time and the project was not that big, it was less than 200 files split across two Meteor projects. The second time was 2 months ago when I started to work for Pathable and the crashes were gone but then I realized that a few features that I use every day were not available, all of them are available in WebStorm and because of those features, I had to give up on VSCode again.
As I know that topics around IDEs and developer tools can be very personal and polemic I decided to write down a few disclaimers before I start with the list of the Missing Features of VSCode:
1— I'm not saying that WebStorm is better than VSCode, I'm just saying that for me WebStorm is working better (maybe for you too) or we can try to improve VSCode together using this post as a reference.
2 — I'm a former Java developer that used Intellij IDEA for more than 6 years then it's pretty easy for me to work with WebStorm because both IDEs are developed by the same company, JetBrains, and share the same platform.
3 — WebStorm has a lot of built-in features without any Plugins and I understand that VSCode is different in this point, VSCode relies a lot on Extensions, why am I saying this here? I’m afraid that can have an impact on the performance of VSCode, there are features that I’ll mention that exist on VSCode but are very slow and then we can’t use them and maybe this is because we need a lot of Extensions to make VSCode work.
Now we can go over the list:
- Clipboard history
There is an extension to give you the ability to see your clipboard history but the extension only works in the editor (not in the integrated terminal, for instance) and it's very limited, e.g., the preview of previously copy things with more than one line is messy.
- Duplicate the selected content
Duplicate a line is not enough, a lot of times we want to just duplicate a part of the line, just a few words.
- Auto import on paste
When you need to use a function or a class that you have used in a similar way in another file it's pretty fast to just copy and paste that usage with the parameters and everything but it's important that the IDE generate the same imports in the top of the file for you as you paste, if not, you need to import one by one and that is time being wasted.
- Close unmodified tabs
Git Lens extension has this feature but it’s not working, it gets into infinite loop
- Git commit messages history
Almost every task that I do require more than one commit to be finished and I always try to reference the GitHub issue or the feature on PivotalTracker (or an entity in TargetProcess) in the commit message of every commit but I don't have an easy way to get my recent commit messages. I can get this information with Git History extension but I need to press a lot of keys and use the mouse to select and copy the message, all this to accomplish this very simple thing.
- Rename files should be considered a git mv
When you rename a file VSCode is deleting the file and creating a new one, what is bad for changes history. VSCode should do a `git mv` command to git understand as a rename and keep the history of this file .
- Visual tool to resolve git conflicts
That is probably my favorite tool of JetBrains, theirs platform has an incredible visual tool to deal with merges, with a bunch of options. If you are working in a big project that will save you a lot of time.
- Rename files are not updated in imports
When you rename files the imports that were using this file are not being updated.
- Categorized search results
In VSCode your search results are just a list of stuff inside files but in JetBrains IDEs the results are categorized in different topics like string, comment, declaration, write, read, etc and that is powerful to help you to find very quickly what you are looking for, almost every time you do a search you know what kind of result you are looking for.
- Find usages
That's called Find References in VSCode but it's pretty slow, it is not working on every case and again, it doesn't categorize the results
- Very slow to index files
It looks like VSCode only index a file after we try to use it, taking more than 1 minute for every new file that you try to use Find Reference or something similar, that is not suitable and it's better to use the regular Find but that will bring a lot of results that you don't want (if you are using defaults export, you are in trouble). WebStorm index every file eagerly when you open the IDE and them everything works instantaneously.
- Run configurations
We don't have a way to save common commands to run the application and manage these processes easily, that is important in projects that you have a lot of different applications and different ways to run in a mono repository, like Web apps, Android and iOS apps. In WebStorm you can start, stop, kill, etc the processes and you can even share this configurations with your team just committing the runConfigurations folder inside .idea to the remote repository.
Well, now is the moment that you can help me, tell me what of those I'm able to do today in VSCode or what we can do to have those features in VSCode soon. Share this post with your friends that are experts on VSCode.
I really appreciate the community and Microsoft work in VSCode and I believe it can become the best IDE to work within a near future, I really hope for that day!
There are features that we only have on VSCode too, if you want to know this list, let me know in Twitter and I'll do one post about it.