The new WebStorm 2017.3 Early Preview build (173.3531.1) is now available.
To learn more about all the new features added in earlier WebStorm 2017.3 EAP builds, please check out these blog posts.
Optimizing project indexing
As you may know, to provide code completion and navigation WebStorm has to analyze the project sources. This process is called indexing. It happens when you open the project for the first time, install the project’s dependencies, update from a version control or change the branches, or simply add new files to the project.
There are two things that affect the indexing time: 1. The amount of data that the IDE needs to index; and 2. The actual speed of processing each file. For every WebStorm release, we are making many small and big improvements on the both fronts. This time we decided to tell you a bit more about what’s been done in WebStorm 2017.3.
Reducing the number of indexed files
Here what’s been done:
Quite often in the CPU snapshots that our users send to us we see that the indexing is affected by the performance of the lexer. The lexer splits input files into a stream of tokens and it is used for many IDE subsystems, including indexing and syntax highlighting.
As we’ve already said, we are constantly working on various performance improvements and optimizations, and we don’t plan to stop here. While some changes that we make are more general, there are a huge number of changes that are made to address some specific issues that appear in some specific project configurations. That is why we are really grateful when you send us as much diagnostic data as possible when you experience any performance issues.
Improvements in VCS integration
WebStorm 2017.3 also brings lots of improvements in the version control integration. You may have probably already noticed some of these changes since they have been available for a couple of weeks now.
Working with multiple branches has become better. When you switch between branches, the IDE preserves your workspace: the opened files, the current run configuration, and the breakpoints. The workspace associated with a branch will be automatically restored when you switch back to that branch.
Changelists can now be renamed in the Shelf tab. It is also possible to shelve changes using drag-and-drop: drag a changelist from the Local Changes tab to the Shelf tab, and soon after the Shelf tab will be activated.
Drag-and-drop a changelist from the Shelf tab to the Local Changes tab, and the IDE will let you select a changelist to put it into.
You can find a few more details about these improvements in the IntelliJ IDEA’s blog post.
You can find a list of all addressed issues in the Release notes.