Releases

WebStorm 2021.3: Numerous JavaScript Improvements, Remote Development, and Better HTML Completion

WebStorm 2021.3, the last major update of the year, is here! This update is jam-packed with long-awaited enhancements, including support for remote development, improved HTML completion, reworked Deno integration, and others.

DOWNLOAD WEBSTORM 2021.3

released_blog_pic

If you only have a few minutes to explore what’s new in WebStorm 2021.3, watch this video where Paul Everitt, Developer Advocate at JetBrains, walks you through the most notable changes. If you feel like diving deeper, read on!

The new features and improvements fall into these categories:

  • JavaScript & TypeScript: improvements for working with monorepos, faster indexing times for JavaScript files, a quick-fix for downloading remote ES6 modules, support for ES2022 private class members, and more.
  • Frameworks & Technologies: easier management of project dependencies, reworked Deno plugin, support for Angular 13, better HTML completion, and more.
  • Remote Development: JetBrains Gateway for remote development, Node.js remote interpreter updates, and proxy support for SSH connections.
  • Docker: improved connection process, a new Clean up action, Minikube integration, support for Compose V2, and more.
  • User Experience: the ability to split the Run tool window, a new Bookmarks tool window, ML-based search for actions in Search Everywhere, and more.
  • Version Control: reorganized VCS settings, improved workflow for pushing commits, a new Changes tool window, and more.

JavaScript & TypeScript

Improved support for monorepos

This release comes with a number of improvements for working with monorepos. The most notable change is that automatically added imports now respect the project structure by treating each folder in the project with package.json as a separate package.

Faster indexing of JavaScript files

We understand that WebStorm’s performance may not be optimal at times, so we’re constantly working to improve it. Quite often, the changes related to performance are subtle, and you may not notice them unless you use a timer or a CPU profiler. In this release, we’ve managed to achieve more noticeable results, decreasing the indexing times for JavaScript files by 20%.

We hope this improvement will help you to get working faster when you open a new project or do a massive Git update. Please note that the change will be less noticeable if your project mainly consists of TypeScript or other types of files.

Support for URLs in import statements

Starting from v2021.3 you can download remote ES6 modules using a quick-fix on the import path in ES6 files. The module with all its dependencies will be downloaded and linked as a project library. The functionality should work the same way it does in the browser. To give it a try, place the caret on the import path, then press ⌥⏎ / Alt+Enter and select Download module.

support-for-urls-in-import-statements

Refactoring support for ES2022 private class members

Support for private fields was added to WebStorm back in 2018. However, as this support was based on the old proposal from TC39, it has since diverged from the standard. To comply with the standard, we’ve reworked the existing support from the ground up – WebStorm 2021.3 will support ES2022 private class members. When you use private names – elements starting with # – for your fields, accessors, or methods, everything should work as expected. For example, here’s how the rename refactoring will work in v2021.3.

rename-refactoring-private-class-members

New intentions for organizing code

There are two new intentions for organizing your code in WebStorm 2021.3.

You can now quickly put comma-separated elements on one or multiple lines. The new intention works for array and object literals, parameter and argument lists, XML, HTML, and JSX attributes, and other similar elements.

To try the intention, place the caret on the elements you want to alter, then press ⌥⏎ / Alt+Enter and select either Put comma-separated elements on one line or Put comma-separated elements on multiple lines as appropriate. For XML, HTML, and JSX, you’ll see slightly different wording for this action – Put attributes on separate lines or Put attributes on one line.

intention-for-putting-elements-on-separate-lines-and-back-webstorm

The second intention that was added relates to JSDoc comments. WebStorm can now help you replace single and multi-line comments with JSDoc comments in one click. As usual, you can access the available context actions with ⌥⏎ / Alt+Enter.

replace-with-jsdoc-comment

Better mapping between .js and .d.ts files

Another improvement in this release touches .js and .d.ts files. We’ve improved mapping between them and added gutter icons for better navigation. To learn more about the changes, read this blog post.

mapping-between-js-and-dts-files

Frameworks & Technologies

New inspection for updating dependencies

Over the years, we’ve added features to help you add and update packages from the package.json file, as well as to help you get relevant information about those packages. With this release, we’ve made some changes that should make the management of project dependencies easier.

You can now update npm packages to the latest version right from the editor. Open your package.json file, place the caret on the package version you want to update, then press ⌥⏎ / Alt+Enter and select Update ‘package name’ to the latest version. A quick-fix will also be shown when you hover over the package version.

update-package-in-package-json-quick-fix

By default, the new inspection only provides a quick-fix, and doesn’t highlight the outdated package in any way. If you want the warnings to be more prominent, you can change the inspection severity level in Preferences / Settings | Editor | Inspections – look for Update package.json dependencies there.

update-inspection-severity-level-package-json

Previously, WebStorm would allow you to manage your packages through the corresponding section in Preferences / Settings | Languages and Frameworks | Node.js and NPM. As only a few users managed their packages this way, we decided to remove this section and introduce a more straightforward way to handle the task – the new inspection described above.

Lastly, we’ve renamed the Node.js and NPM section in Preferences / Settings to Node.js to avoid any confusion. Just like before, you can use it to select a Node interpreter and the package manager of your choice: npm, pnpm, or Yarn.

node-js-section-in-preferences

Reworked Deno integration

Last year we introduced support for Deno in WebStorm. It relied on WebStorm’s integration with the TypeScript service as well as on the typescript-deno plugin. There were several drawbacks to this implementation, and it hasn’t been working reliably lately. Because of this, we’ve completely reworked it and migrated to the Deno LSP. We’ve also fixed a bunch of known issues. You can learn more about the biggest changes that we have made here.

To learn more about working with Deno, see this blog post. It already includes information about the recent changes.

Angular 13 support

One of the most pressing problems that we’ve addressed in this release is support for Angular 13. It was broken because of the changes to the Angular Package Format. WebStorm 2021.3 takes these changes into account and supports the new version of Angular.

Improved HTML completion

We’ve improved the way code completion works in HTML. Now, whenever you type a tag name or an abbreviation in the editor, or invoke code completion, WebStorm will show you relevant suggestions right away. Previously, it would only show them if you typed < first. We realized that this wasn’t very comfortable for those of you who aren’t used to typing < and > and for those of you who aren’t familiar with Emmet.

html-tag-completion-webstorm

Additionally, code completion for character entity references should work better now.

Type checking for Vue and React properties

In between the 2021.2 and 2021.3 releases, we’ve shipped a bunch of long-awaited fixes for Vue, including support for script setup. In this release, we’ve added another useful improvement – WebStorm 2021.3 supports TypeScript type checking in Vue templates. The IDE will let you know when an incorrect type is used in the expressions bound to properties.

vue-typescript-type-checking

This will also work for React attributes.

New features for HTTP client

In this release, we’ve significantly improved WebStorm’s built-in HTTP client. We’ve added a lot of new functionality, including support for binary responses, output redirection to a custom file or directory, support for text and JSON streams, and support for HTTP request identifiers.

image-response-http

Read this blog post to take a closer look at these new features.

Remote Development

Running WebStorm remotely

As one of the biggest and longest-awaited updates of this release – WebStorm now has support for remote development workflows! You can connect to a remote machine with an IDE backend running and work on a project located there as if it were located on your local machine. We hope this helps you stay more productive and flexible while allowing you to work securely from anywhere.

Support for remote development workflows is provided through our new application: JetBrains Gateway. It serves as an entry point for all your remote backends and doesn’t require you to have an IDE installed on your local machine. You can grab the latest version of JetBrains Gateway from our website. Here’s what you’ll see after doing this:

jetbrains-gateway

For more information on how to get started, please refer to the documentation.

Please note that this is a beta version of the remote development functionality and we’re still actively working to improve it. Please give the new functionality a try and let us know what you think. You can share your feedback or report any bugs here.

Development with remote Node.js

For this release, we made a few significant improvements that support the workflow where Node.js is installed in Docker and then used by WebStorm’s integrations with JavaScript tooling. Your IDE will now let you use the Node.js remote interpreter with ESLint, Mocha, Jest, npm, pnpm, and yarn.

Node.js remote interpreter support for ESLint has been available since v2021.2 as an experimental feature. From here on out, it will be active by default.

To try out the new feature, start by adding a remote Node.js interpreter. This can be done by going to Preferences / Settings | Languages & Frameworks | Node.js, opening the drop-down list under the Node interpreter field and clicking Add. Then select Add Remote… and specify one of the existing Docker images in the dialog that appears.

node-remote-interpreter-settings

Then go back to your Preferences / Settings and make sure the Package manager field has the correct path to the installation folder of a package manager in your Docker image.

Then you can go back to the editor and install the dependencies in your project using Node.js and your package manager inside Docker. At this point, you should be able to start working as you normally would when using Node.js locally. For example, if you want to lint a JavaScript file with ESLint, open that file in the editor. The errors should be highlighted automatically.

We’ve also extended Node.js remote interpreter support to Mocha, Jest, npm, pnpm, and yarn scripts. You can find instructions for each of the supported technologies below:

Proxy support for SSH connections

You can now specify an HTTP or SOCKS proxy server for your SSH configuration in Preferences / Settings | Tools | SSH Configurations.

Under the new HTTP/SOCKS Proxy section, you can select the proxy type, enter a hostname and a port, and, if necessary, apply authentication with a login and password.

http-socks-proxy-settings-webstorm

It is also possible to sync your SSH proxy settings with the global IDE ones. To do so, select the Use global IDE proxy settings checkbox.

Docker

Easier connection process

Connecting to Docker has become faster! You can simply double-click on the node you need or use the new shortcut: ⌘⏎ on macOS or Ctrl+Enter on Windows and Linux. The Start container action can also be invoked with this shortcut.

docker-connection

New Clean up action

The new Clean up action works just like the prune terminal command. When you right-click on the Networks, Volumes, Containers, or Images node, you can select Clean up, and the IDE will delete the unused objects. You can also apply this action to the Docker root node to prune all the unnecessary objects in one click.

docker-clean-up

Connection to Docker from Minikube

It is now easy to connect to a Docker daemon from Minikube. Go to Preferences / Settings | Build, Execution, Deployment and select the Minikube radio button. In the field next to it, the IDE will automatically display the detected Minikube’s docker-daemon environments that you can connect to.

docker-minicube

Support for Compose V2

WebStorm supports Compose V2, which allows you to run Docker Compose commands as docker compose, instead of docker-compose (with a dash).

To activate this option, go to Preferences / Settings | Build, Execution, Deployment | Docker | Tools and tick the Use Compose V2 checkbox.

compose-v2

Image layers

Image layers allow you to track all of the commands that are applied to images. To access them, select an image and go to the Layers tab. From there, when you choose a command, you can click on the Analyze image for more information link on the right-hand side of the screen for more detailed information about the changes applied to each layer.

image-layers

Save container as image

If you have a preconfigured container that you want to use later, you can save it as an image. Go to the Services tool window, right-click on the container, and select Image | Save as a new Image.

container-image

Podman support

WebStorm now supports Podman as an alternative way to manage pods, containers, and images. Before using Podman in the IDE, please configure a connection first.

Once Podman has been installed and configured on your OS, you can connect to it via Preferences / Settings | Build, Execution, Deployment | Docker by selecting the TCP socket radio button and filling out the required fields.

User Experience

Ability to split the Run tool window

Have several configurations running and want to see their results simultaneously? You can now split your Run tool window! To do this, drag the desired tab to the highlighted area and drop it there. To unsplit the tool window, you can drag the tab back or right-click the top pane and select Unsplit from the context menu.

split-run-tool-window

New Bookmarks tool window

In WebStorm, we had two very similar instances – Favorites and Bookmarks. The difference could sometimes be confusing, so we decided to stick to just one – Bookmarks. We’ve reworked the workflow for this functionality and made a new tool window for it.

From now on, any files, folders, and classes you mark as important with the F3 shortcut on macOS or F11 on Windows / Linux will be located under the new Bookmarks tool window.

When you add a bookmark, WebStorm puts it in the node named after your project. The IDE automatically creates this node beforehand and stores all your prioritized items there by default. Any new bookmarks will appear at the top of the list inside this node. However, you can organize them manually by dragging them to new lists, which you can name as you like.

bookmarks-tool-window-webstorm

Source preview for Show Usages

The Show Usages feature has received a small yet handy improvement in this release. When you view the usages of a symbol with ⌥⌘F7 / Ctrl+Alt+F7, or by pressing ⌘ / Ctrl and clicking on the definition, you can now turn on the source code preview for a found usage by clicking the square icon.

preview-in-show-usages-webstorm

ML-based search for actions in Search Everywhere

When searching for actions, Search Everywhere in WebStorm is now powered by machine learning by default. We’ve trained an ML-based formula that takes into account:

  • The specific user’s action usage history.
  • Action usage frequencies across the whole user base.
  • The lengths of the search query, the action’s name, and so on.

We hope you find that the ML-based models boost your search quality and return results tailored to your specific needs.

ml-actions-2021.3

ml-actions-2021.2

Improvements to the terminal

WebStorm’s terminal now supports the new ConPTY API on Windows. Using this as a backend for the terminal helps address several problems that users were having with the old implementation, which was based on winpty. Also, 24-bit colors are now supported.

conpty-support

Additionally, the newly added typeahead support predicts text modifications and displays them in light grey right away. This feature allows you to type in the terminal equally fast, whether you work on a local or a remote machine.

Evaluate expressions from the debugger

In this release, we’ve improved the discoverability of the Evaluate Expression feature. Previously, many users resorted to using watches instead of the Evaluate dialog.

Now, the Evaluate Expression field is accessible right in the Debug tool window, making the most convenient way to evaluate expressions more obvious.

evaluate-expression-in-webstorm-2021-3

Built-in troubleshooting tool

WebStorm 2021.3 brings a new, faster way to diagnose and fix issues that prevent your IDE from working properly. If you have problems with WebStorm, invoke the new Repair IDE… action from the File menu. It will guide you through a sequence of steps to troubleshoot some of the most common problems.

repair_ide

Accessibility updates

We’ve addressed some accessibility issues to make it more comfortable to work in the screen reader mode. We’ve disabled the tool window widget pop-up and the quick documentation pop-up that used to appear on a mouse hover.

We’ve also fixed an issue with calling the Go to Declaration or Usages pop-up.

The accessibility support on macOS has also been improved. We’ve resolved several issues with voiceover focus and made it possible to create projects using a screen reader. To minimize distractions while you’re coding, we’ve decreased the number of help tooltips that play sounds.

Ability to change font size for all tabs

Did you know you can change the editor font size using the mouse wheel? Previously, this feature worked only for the current file. Now you can make it work for all opened files. Go to Preferences / Settings | Editor | General, tick Change font size with Command / Ctrl + Mouse Wheel in, and then choose All editors option.

change-font-size

Version Control

Reorganized VCS settings

To help you configure your version control systems faster, we’ve made VCS settings more discoverable and more clearly structured. Here are some of the changes you’ll find in Preferences / Settings | Version Control.

The Version Control node now lists all the available settings. You can navigate to the settings by clicking on them.

webstorm-vcs-settings-2021-3

We improved the layout inside the Git node. We divided all the settings into sections that account for the most important processes: Commit, Push, and Update. Additionally, the parameters inside these sections are now organized more logically.

git-node-in-webstorm-2021-3

We’ve also added a separate node for Directory mappings, and the background operations are now switched on by default. The Background node no longer exists.

New Push All up to Here action

Sometimes, you may have several commits that are ready to be shipped while others are still works in progress. In such cases, you may want to push only the ones you are sure about. With this release, WebStorm will let you push commits up to the one you have selected in the Log tab of the Git tool window. To do so, pick the necessary commit, right-click on it to open the context menu, and select a new Push All up to Here action.

push-all-up-to-here-in-webstorm

Checkout and Rebase onto Current for remote branches

The Checkout and Rebase onto Current action allows you to check out the selected branch and rebase it on top of a branch that is currently checked out. Previously, this action was available for local branches only. Starting from v2021.3, you can apply this action to remote branches, too.

checkout-and-rebase-onto-current-for-remote-branches-webstorm

New Changes tool window

Previously, WebStorm would show you the difference between commits in a separate dialog. Starting from this release, the IDE will display this information in a new Changes tool window. To open the new tool window, in the Log tab of your version control system right-click on a revision and pick Compare with Local from the context menu.

changes-tool-window

Align Changes Highlighting

We’ve added the new Align Changes Highlighting option to the Diff screen settings that can be found under the gear icon. This feature makes the Diff easier to read, especially when there are complex modifications, because it aligns the unchanged lines so that they are displayed next to each other. This helps you see the code that has been added or removed more clearly.

align-changes-highlighting

Those are the most notable highlights! For the full list of new features and enhancements available in WebStorm 2021.3, see the release notes. Please share your feedback with us and report any issues you encounter to our issue tracker.

The WebStorm team

Releases

WebStorm 2021.3:大量 JavaScript 改进、远程开发和更好的 HTML 补全

本年度最后一个主要更新 WebStorm 2021.3 现已发布!这次更新具有大量备受期待的增强,包括对远程开发的支持、改进的 HTML 补全、重做的 Deno 集成等。

 下载 WEBSTORM 2021.3

released_blog_pic

如果您想快速探索 WebStorm 2021.3 中的最新变化,可以观看此视频,JetBrains 开发技术推广工程师 Paul Everitt 在视频中介绍了最值得注意的变化。如果您想深入了解,请继续阅读!
 
新功能和改进分为以下几类:
  • JavaScript 和 TypeScript:单仓库处理改进、JavaScript 文件的更快索引、下载远程 ES6 模块的快速修复、对 ES2022 私有类成员的支持等。
  • 框架和技术:更轻松的项目依赖项管理、重做的 Deno 插件、对 Angular 13 的支持、更好的 HTML 补全等。
  • 远程开发:用于远程开发的 JetBrains Gateway、Node.js 远程解释器更新以及对 SSH 连接的代理支持。
  • Docker:改进的连接过程、新的 Clean up(清理)操作、Minikube 集成、对 Compose V2 的支持等。
  • 用户体验Run(运行)工具窗口拆分、新的 Bookmarks(书签)工具窗口、基于机器学习的 Search Everywhere(随处搜索)操作搜索等。
  • 版本控制:重新组织的 VCS 设置、改进的推送提交工作流、新的 Changes(变更)工具窗口等。

JavaScript 和 TypeScript

改进了对单仓库的支持

此版本对单仓库的操作做出了许多改进。最显著的变化是自动添加的导入现在会考虑项目结构,将项目中每个带有 package.json 的文件夹视为一个单独的软件包。
 

JavaScript 文件的更快索引

我们了解 WebStorm 在性能上偶尔会表现欠佳,因此我们在一直设法做出改进。通常,性能的相关变化较为微妙,只有在使用计时器或 CPU 分析器时才有可能引起注意。在此版本中,我们取得了更显著的结果,将 JavaScript 文件的索引时间减少了 20%。
 
我们希望这项改进可以帮助您在打开新项目或进行大规模 Git 更新时更快地开始工作。请注意,如果项目主要由 TypeScript 或其他类型的文件组成,则变化将不太明显。
 

对 import 语句中 URL 的支持

从 2021.3 版开始,您可以使用 ES6 文件中导入路径的快速修复下载远程 ES6 模块。该模块将连同其所有依赖项一起下载并链接为项目库。功能的运作方式应该与在浏览器中相同。要进行尝试,请将文本光标放在导入路径上,然后按 ⌥⏎ / Alt+Enter 并选择 Download module(下载模块)。
 

support-for-urls-in-import-statements

ES2022 私有类成员的重构支持

早在 2018 年,WebStorm 就添加了对私有字段的支持。然而,这种支持是以 TC39 的旧提案为基础,现已偏离标准。为了符合标准,我们从头开始重新设计了既有支持 – WebStorm 2021.3 将支持 ES2022 私有类成员。当您为字段、访问器或方法使用私有名称(以 # 开头的元素)时,一切都应该按预期工作。例如,以下是重命名重构在 2021.3 版中的工作方式。
 

rename-refactoring-private-class-members

用于组织代码的新意图

在 WebStorm 2021.3 中,组织代码新增了两个新意图。
 
您现在可以快速地将逗号分隔的元素放在一行或多行中。新意图适用于数组和对象文字、形参和实参列表、XML、HTML 和 JSX 特性以及其他类似元素。
 
要尝试这种意图,首先将文本光标放在要更改的元素上,然后按 ⌥⏎ / Alt+Enter 并视情况选择 Put comma-separated elements on one line(将逗号分隔的元素放在同一行中)或 Put comma-separated elements on multiple lines(将逗号分隔的元素放在多行中)。对于 XML、HTML 和 JSX,此操作的措辞略有不同,分别为 Put attributes on separate lines(将特性放在单独的行上)或 Put attributes on one line(将特性放在同一行上)。

intention-for-putting-elements-on-separate-lines-and-back-webstorm

新增的第二个意图与 JSDoc 注释有关。WebStorm 现在可以帮助您一键将单行和多行注释替换为 JSDoc 注释。同样,您可以使用 ⌥⏎ / Alt+Enter 访问可用的上下文操作。

replace-with-jsdoc-comment

.js 和 .d.ts 文件之间更好的映射

此版本的另一项改进涉及 .js 和 .d.ts 文件。我们改进了它们之间的映射,并添加了间距图标以实现更好的导航。要详细了解这些变更,请阅读此博文

mapping-between-js-and-dts-files

框架和技术

用于更新依赖项的新检查

多年来,我们添加了许多功能来帮助您从 package.json 文件添加和更新软件包,以及获取这些软件包的相关信息。此版本的一些变更将使项目依赖项的管理更加轻松。
 
现在,可以直接从编辑器将 npm 软件包更新到最新版本。打开 package.json 文件,将文本光标放在要更新的软件包版本上,按 ⌥⏎ / Alt+Enter,然后选择 Update ‘package name’ to the latest version(将“软件包名称”更新到最新版本)。将鼠标悬停在软件包版本上时,还会显示快速修复。

update-package-in-package-json-quick-fix

默认情况下,新检查仅提供快速修复,且不会以任何方式高亮显示过时的软件包。如果您希望警告更加突出,可以在 Preferences / Settings | Editor | Inspections(偏好设置 / 设置 | 编辑器 | 检查)中更改检查严重性级别 – 找到 Update package.json dependencies(更新 package.json 依赖项)。

update-inspection-severity-level-package-json

此前,WebStorm 允许您通过 Preferences / Settings | Languages and Frameworks | Node.js and NPM(偏好设置 / 设置 | 语言和框架 | Node.js 和 NPM)中的相应部分管理软件包。由于只有少数用户以这种方式管理软件包,我们决定移除此部分并引入新的检查,提供更直接的任务处理方法。
 
最后,为了避免混淆,我们将 Preferences / Settings(偏好设置 / 设置)中的 Node.js and NPM(Node.js 和 NPM)部分重命名为 Node.js。和以前一样,您可以使用它选择 Node 解释器和需要的软件包管理器:npm、pnpm 或 Yarn。

node-js-section-in-preferences

重新设计了 Deno 集成

去年,我们在 WebStorm 中引入了对 Deno 的支持。它依赖于 WebStorm 与 TypeScript 服务的集成以及 typescript-deno 插件。这种实现有几个缺点,最近无法可靠地运作。因此,我们进行了重做并将其迁移到 Deno LSP。我们还修正了许多已知问题。您可以在这里详细了解我们做出的最大变更。
 
要详细了解如何使用 Deno,请阅读此博文。其中已经包含有关最新变更的信息。
 

Angular 13 支持

我们在此版本中解决的最紧迫的问题之一是对 Angular 13 的支持。由于 Angular 软件包格式的变更,它已经无法工作。WebStorm 2021.3 考虑到了这些变更,并支持新版本的 Angular。
 

改进了 HTML 补全

我们改进了代码补全在 HTML 中的工作方式。现在,每当您在编辑器中输入标记名称或缩写或者调用代码补全,WebStorm 都会立即显示相关建议。先前,只有首先输入 才会显示。我们意识到,对于不习惯输入 和 > 的人和不熟悉 Emmet 的人来说,这很不方便。

html-tag-completion-webstorm

此外,字符实体引用的代码补全现在也可以更好地工作。
 

Vue 和 React 属性的类型检查

在 2021.2 和 2021.3 版本之间,我们发布了一系列备受期待的 Vue 修正,包括脚本设置的支持。在此版本中,我们添加了另一项实用改进:WebStorm 2021.3 在 Vue 模板中支持 TypeScript 类型检查。当绑定到属性的表达式中使用了不正确的类型时,IDE 会发出通知。

vue-typescript-type-checking

这也适用于 React 特性。
 

针对 HTTP 客户端的新功能

在此版本中,我们大幅改进了 WebStorm 的内置 HTTP 客户端。我们增加了大量新功能,包括对二进制响应、输出重定向到自定义文件或目录的支持、对文本和 JSON 流的支持以及对 HTTP 请求标识符的支持。

image-response-http

阅读这篇博文来进一步了解这些新功能。
 

远程开发

远程运行 WebStorm

此版本最大和最受期待的更新 – WebStorm 现已支持远程开发工作流!您可以连接到正在运行 IDE 后端的远程计算机,并像在本地计算机上一样处理其中的项目。我们希望这可以让您随时随地更高效、更灵活、更安全地工作。
 
对远程开发工作流的支持通过我们的新应用程序 JetBrains Gateway 提供。它是所有远程后端的入口点,不需要您在本地计算机上安装 IDE。您可以从我们的网站获取最新版本的 JetBrains Gateway。然后,您将看到:

jetbrains-gateway

要进一步了解如何入门,请参阅此文档。请注意,这是测试版的远程开发功能,我们仍在积极改进。欢迎试用新功能,并告诉我们您的想法。您可以在这里分享反馈或报告错误。
 

使用远程 Node.js 进行开发

在此版本中,我们进行了多项重大改进,支持将 Node.js 安装在 Docker 中并随后由 WebStorm 与 JavaScript 工具的集成使用这种工作流。现在,IDE 允许您将 Node.js 远程解释器与 ESLint、Mocha、Jest、npm、pnpm 和 yarn 结合使用。
 
Node.js 远程解释器对 ESLint 的支持从 2021.2 版开始作为实验性功能推出。从现在开始,它将默认处于启用状态。
 
要试用这一新功能,首先,请添加远程 Node.js 解释器。转到 Preferences / Settings | Languages & Frameworks | Node.js(偏好设置 / 设置 | 语言和框架 | Node.js),打开 Node interpreter(节点解释器)字段下的下拉列表,点击 Add(添加)。然后,选择 Add Remote…(添加远程…)并在出现的对话框中指定一个现有 Docker 镜像。

node-remote-interpreter-settings

然后,返回到 Preferences / Settings(偏好设置 / 设置)并确保 Package manager(软件包管理器)字段具有指向 Docker 镜像中软件包管理器安装文件夹的正确路径。
 
接下来,您可以返回编辑器并使用 Node.js 和 Docker 中的软件包管理器在项目中安装依赖项。这时候,您就应该可以像在本地使用 Node.js 一样开始正常工作。例如,如果您想使用 ESLint 对一个 JavaScript 文件进行 lint 操作,请在编辑器中打开该文件。错误应当会自动高亮显示。
 
我们还将 Node.js 远程解释器支持扩展到了 Mocha、Jest、npm、pnpm 和 yarn 脚本。您可以在下方找到每种受支持技术的说明:
  • ESLint
  • Mocha 和 Jest
  • npm、pnpm 和 yarn

 

SSH 连接的代理支持

您现在可以在 Preferences / Settings | Tools | SSH Configurations(偏好设置 / 设置 | 工具 | SSH 配置)中为 SSH 配置指定 HTTP 或 SOCKS 代理服务器。
 
在新的 HTTP/SOCKS Proxy(HTTP/SOCKS 代理)部分中,您可以选择代理类型,输入主机名和端口,并在必要时使用登录名和密码应用身份验证。

http-socks-proxy-settings-webstorm

也可以将 SSH 代理设置与全局 IDE 设置同步。为此,请选中 Use global IDE proxy settings(使用全局 IDE 代理设置)复选框。

Docker

更简单的连接过程

连接到 Docker 的速度更快了!双击所需节点或使用新的快捷方式:macOS 上为 ⌘⏎,Windows 和 Linux 上为 Ctrl+EnterStart container(启动容器)操作也可以通过此快捷键调用。

docker-connection

新的 Clean up(清理)操作

新的 Clean up(清理)操作与 prune 终端命令类似。右键点击 Networks(网络)、Volumes(卷)、Containers(容器)或者 Images(镜像)节点,选择 Clean up(清理),随后 IDE 将删除未使用的对象。您也可以将此操作应用于 Docker 根节点,一键修剪所有多余对象。

docker-clean-up

从 Minikube 连接到 Docker

现在可以轻松地从 Minikube 连接到 Docker 守护程序。转到 Preferences / Settings | Build, Execution, Deployment(偏好设置 / 设置 | 构建、执行、部署),选择 Minikube 单选按钮。在旁边的字段中,IDE 将自动显示检测到的 Minikube 的 docker-daemon 环境以供连接。

docker-minicube

对 Compose V2 的支持

WebStorm 支持 Compose V2,这允许您将 Docker Compose 命令作为 docker compose 运行,而不是 docker-compose(带破折号)。
 
要激活此选项,首先转到 Preferences/Settings | Build, Execution, Deployment | Docker | Tools(偏好设置 / 设置 | 构建、执行、部署 | Docker | 工具),然后勾选 Use Compose V2(使用 Compose V2)复选框。

compose-v2

镜像层

镜像层允许您跟踪应用于镜像的所有命令。要访问镜像层,首先选择一个镜像,然后转到 Layers(层)选项卡。在这里选择一个命令后,点击屏幕右侧的 Analyze image for more information(分析镜像以获取更多信息)链接,即可获取应用于各个镜像层的变更的更多详细信息。

image-layers

将容器另存为镜像

如果您想要之后使用预配置的容器,可以将其另存为镜像。转到 Services(服务)工具窗口,右键点击容器,然后选择 Image | Save as a new Image(镜像 | 另存为新镜像)。

container-image

Podman 支持

WebStorm 现在支持以 Podman 替代通常的 Pod、容器和镜像管理方式。在 IDE 中使用 Podman 之前,请先配置一个连接
 
在操作系统上安装和配置 Podman 后,转到 Preferences/Settings | Build, Execution, Deployment | Docker(偏好设置 / 设置 | 构建、执行、部署 | Docker),选择 TCP socket (TCP 套接字)单选按钮,填写必填字段,即可完成连接。
 

用户体验

拆分 Run(运行)工具窗口

要在运行多个配置时查看其结果?您现在可以拆分 Run(运行)工具窗口!为此,请将所需选项卡拖放到高亮显示的区域。要取消拆分工具窗口,您可以拖回选项卡,或右键点击顶部窗格并从上下文菜单中选择 Unsplit(取消拆分)。

split-run-tool-window

新的 Bookmarks(书签)工具窗口

WebStorm 以前有两个非常相似的实例:Favorites(收藏夹)和 Bookmarks(书签)。由于两者之间的区别有时会造成困惑,我们决定改为只使用 Bookmarks(书签)。我们重新设计了此功能的工作流,并为其创建了一个新的工具窗口。
 
从现在开始,您使用 F3 (macOS) 或 F11 (Windows / Linux) 标记为重要的文件、文件夹和类都将位于新的 Bookmarks(书签)工具窗口下。
 
添加书签时,WebStorm 会将其置于以项目命名的节点中。默认情况下,IDE 会提前自动创建此节点并在其中存储所有优先条目。所有新书签都将出现在此节点内的列表顶部。但是,您也可以手动组织,将其拖放到任意命名的新列表。

bookmarks-tool-window-webstorm

Show Usages(显示用法)的源代码预览

Show Usages(显示用法)功能在此版本中得到了实用的小幅改进。使用 ⌥⌘F7 / Ctrl+Alt+F7 或按 ⌘ / Ctrl 并点击定义查看符号的用法时,现在可以通过点击方形图标来打开找到的用法的源代码预览。

preview-in-show-usages-webstorm

Search Everywhere(随处搜索)中基于机器学习的操作搜索

在搜索操作时,WebStorm 中的 Search Everywhere(随处搜索)现在默认由机器学习驱动。我们训练了一个基于机器学习的公式,它会考虑以下信息:
 
  • 特定用户的操作使用历史记录。
  • 整个用户群的操作使用频率。
  • 搜索查询的长度、操作的名称等。
 
我们希望基于机器学习的模型可以提高您的搜索质量并根据您的特定需求返回最合适的结果。

ml-actions-2021.3

终端的改进

WebStorm 的终端现已支持 Windows 上的新 ConPTY API。使用它作为终端的后端有助于解决用户在基于 winpty 的旧实现中遇到的多种问题。另外,24 位颜色也已获得支持。

conpty-support

此外,新添加的键盘缓冲支持可预测文本修改并立即以浅灰色显示。此功能将帮助您在本地和远程计算机上保持同样的终端输入速度。
 

从调试器评估表达式

在此版本中,我们改进了 Evaluate Expression(评估表达式)功能的曝光度。此前,许多用户倾向于使用监视而不使用 Evaluate(评估)对话框。
 
Evaluate Expression (评估表达式)字段现在可在 Debug(调试)工具窗口中直接访问,这让评估表达式最便捷的方式更为醒目。

evaluate-expression-in-webstorm-2021-3

内置故障排除工具

WebStorm 2021.3 能够以一种全新的快速方法诊断和修正导致 IDE 无法正常工作的问题。如果您在使用 WebStorm 时遇到问题,可从 File(文件)菜单调用新的 Repair IDE…(修复 IDE…)操作。它将通过一系列步骤引导您解决一些最常见的问题。

repair_ide

无障碍功能更新

我们解决了一些无障碍功能问题,使屏幕阅读器模式下的工作更加舒适。我们禁用了过去在鼠标悬停时出现的工具窗口微件弹出窗口和快速文档弹出窗口。
 
我们还修正了调用 Go to Declaration or Usages(转到声明或用法)对话框时会出现的问题。
 
macOS 上的无障碍功能支持也得到了改进。我们解决了 VoiceOver 焦点的几个问题,并支持从屏幕阅读器创建项目。我们减少了播放声音的帮助工具提示的数量,以最大限度地降低编码时的干扰。
 

更改所有选项卡的字体大小

您知道可以在编辑器中使用鼠标滚轮更改字体大小吗?以前,此功能仅适用于当前文件。现在,您可以将其应用于所有打开的文件。转到 Preferences / Settings | Editor | General(偏好设置 / 设置 | 编辑器 | 常规),勾选 Change font size with Command / Ctrl + Mouse Wheel in(使用 Command / Ctrl + 鼠标滚轮更改字体大小),然后选择 All editors(所有编辑器)选项。

change-font-size

版本控制

重新组织了 VCS 设置

为了帮助您快速配置版本控制系统,我们改进了 VCS 设置,使其位置更醒目、结构更清晰。以下是您将在 Preferences / Settings | Version Control(偏好设置 / 设置 | 版本控制)中发现的一些变化。
 
Version Control(版本控制)节点现在会列出所有可用设置。点击即可导航到设置。

webstorm-vcs-settings-2021-3

我们改进了 Git 节点内的布局。我们将所有设置分为几个部分,对应最重要的流程:Commit(提交)、Push(推送)和 Update(更新)。此外,这些部分中的参数现在组织得更合乎逻辑。

git-node-in-webstorm-2021-3

我们还为 Directory mappings(目录映射)添加了一个单独的节点,并将后台操作设为默认开启。Background(后台)节点不再存在。
 

新的 Push All up to Here(推送此前所有提交)操作

有时,您可能会已经准备好要发布一些提交,而其他的提交却仍在进行中。在这种情况下,您可能需要仅推送您确定要发布的提交。在此版本中,WebStorm 允许您推送您在 Git 工具窗口的 Log(日志)选项卡中所选及其之前的提交。为此,首先右键点击必要的提交,打开上下文菜单,然后选择新的 Push All up to Here (推送此前所有提交)操作。

push-all-up-to-here-in-webstorm

远程分支的 Checkout and Rebase onto Current(签出并变基到当前分支)

Checkout and Rebase onto Current(签出并变基到当前分支)操作可用于签出所选分支并将其变基到当前签出分支的顶部。在此之前,此操作仅适用于本地分支。从 2021.3 版开始,您也可以将此操作应用于远程分支。

checkout-and-rebase-onto-current-for-remote-branches-webstorm

新的 Changes(变更)工具窗口

以前,WebStorm 会在单独的对话框中显示提交之间的差异。从此版本开始,IDE 将在新的 Changes(变更)工具窗口中显示此信息。要打开新的工具窗口,在版本控制系统的 Log(日志)选项卡中右键点击一个修订,然后从上下文菜单中选择 Compare with Local(与本地版本比较)。

changes-tool-window

Align Changes Highlighting(对齐变更高亮显示)

我们在齿轮图标下的 Diff(差异)屏幕设置中添加了新的 Align Changes Highlighting(对齐变更高亮显示)选项。此功能可改良 Diff(差异)的易读性,使未更改的行对齐并并排显示,特别适用于复杂修改。这有助于您更清楚地查看已添加或移除的代码。

align-changes-highlighting

以上就是最值得注意的亮点!有关 WebStorm 2021.3 中的完整新功能和增强列表,请参阅版本说明。请在我们的问题跟踪器中分享您的反馈并报告您遇到的问题。
 
WebStorm 团队
 
 
本文英文原作者:

Releases

WebStorm 2021.3: viele JavaScript-Verbesserungen, Remote-Entwicklung und bessere HTML-Completion

WebStorm 2021.3 ist da – unser letztes großes Update in diesem Jahr! Wir haben zahlreiche lang erwartete Verbesserungen für Sie, darunter Unterstützung für Remote-Entwicklung, verbesserte HTML-Completion, eine überarbeitete Deno-Integration und mehr.

WEBSTORM 2021.3 HERUNTERLADEN

released_blog_pic

Wenn Sie nur ein paar Minuten Zeit haben, um die Neuerungen in WebStorm 2021.3 kennenzulernen, sehen Sie sich dieses Video an, in dem unser Developer Advocate Paul Everitt Ihnen die wichtigsten Änderungen vorstellt. Wenn Sie auch an den Details interessiert sind, lesen Sie einfach weiter!

Die neuen Funktionen und Verbesserungen fallen in diese Kategorien:

  • JavaScript und TypeScript: Verbesserungen für die Arbeit mit Monorepos, schnellere Indizierung von JavaScript-Dateien, ein Quick-Fix zum Herunterladen von Remote-ES6-Modulen, Unterstützung für private Klassenmember nach ES2022 und mehr.
  • Frameworks und Technologien: Einfachere Verwaltung von Projektabhängigkeiten, überarbeitetes Deno-Plugin, Unterstützung für Angular 13, bessere HTML-Completion und mehr.
  • Remote-Entwicklung: JetBrains Gateway für die Remote-Entwicklung, Updates für Remote-Node.js-Interpreter und Proxy-Unterstützung für SSH-Verbindungen.
  • Docker: Verbesserter Verbindungsprozess, neue Clean up-Aktion, Minikube-Integration, Compose-V2-Unterstützung und mehr.
  • Benutzererfahrung: Teilbares Run-Toolfenster, neues Bookmarks-Toolfenster, ML-basierte Suche nach Aktionen in Search Everywhere und mehr.
  • Versionsverwaltung: Neu strukturierte VCS-Einstellungen, verbesserter Workflow für das Pushen von Commits, neues Changes-Toolfenster und mehr.

JavaScript und TypeScript

Verbesserte Unterstützung für Monorepos

Wir haben eine Reihe von Verbesserungen für die Arbeit mit Monorepos eingeführt. Die wichtigste Änderung: Automatisch hinzugefügte Importe respektieren nun die Projektstruktur, indem sie jeden Ordner im Projekt mit einer package.json-Datei als separates Paket behandeln.

Schnellere Indizierung von JavaScript-Dateien

Uns ist bewusst, dass die Performance von WebStorm in einigen Situationen nicht optimal ist, und wir arbeiten kontinuierlich daran, dies zu verbessern. Leistungsbezogene Änderungen fallen ja oft kaum auf, wenn Sie nicht gerade einen Timer oder CPU-Profiler mitlaufen lassen. In dieser Version hingegen ist es uns gelungen, deutlichere Ergebnisse zu erzielen und die Indizierungszeiten von JavaScript-Dateien um 20% zu verkürzen.

Dadurch sollten Sie beim Öffnen eines neuen Projekts oder nach einem größeren Git-Update schneller mit der Arbeit beginnen können. Bitte beachten Sie, dass die Änderung weniger ins Gewicht fällt, wenn Ihr Projekt hauptsächlich aus TypeScript-Dateien oder anderen Dateitypen besteht.

URL-Unterstützung in Importanweisungen

Um Remote-ES6-Module herunterzuladen, können Sie ab v2021.3 in ES6-Dateien einen Quick-Fix auf den Importpfad anwenden. Das Modul wird mit allen Abhängigkeiten heruntergeladen und als Projektbibliothek verknüpft. Dies funktioniert genauso wie im Browser. Um die Funktion auszuprobieren, legen Sie die Einfügemarke auf den Importpfad, drücken Sie ⌥⏎ / Alt+Enter und wählen Sie Download module.

URL-Unterstützung in Importanweisungen

Refactoring-Unterstützung für private Klassenmember nach ES2022

WebStorm unterstützt private Felder bereits seit 2018. Diese Unterstützung basierte jedoch auf dem alten TC39-Proposal, von dem der Standard seitdem abgewichen ist. Um dem Standard zu entsprechen, haben wir die bestehende Unterstützung von Grund auf überarbeitet, und WebStorm 2021.3 unterstützt jetzt private Klassenmember gemäß ES2022. Wenn Sie Feldern, Eigenschaftszugriffen oder Methoden private Namen geben, die mit # beginnen, sollte alles wie erwartet funktionieren. So funktioniert beispielsweise das Rename-Refactoring in v2021.3:

Rename-Refactoring von privaten Klassenmembern

Neue Intentions für die Codestrukturierung

Zwei neue Intentions helfen Ihnen beim Strukturieren Ihres Codes in WebStorm 2021.3.

Sie können jetzt mit minimalem Aufwand eine kommagetrennte Liste von Elementen auf mehrere Zeilen aufteilen oder in eine Zeile bringen. Die neue Intention funktioniert für Array- und Objektliterale, Parameter- und Argumentlisten, XML-, HTML- und JSX-Attribute und weitere ähnliche Elemente.

Um die Intention auszuprobieren, legen Sie die Einfügemarke auf die Liste, die Sie neu strukturieren möchten und drücken Sie ⌥⏎ / Alt+Enter. Wählen Sie dann Put comma-separated elements on one line bzw. Put comma-separated elements on multiple lines aus. Bei XML, HTML und JSX sind diese Aktionen etwas anders formuliert: Put attributes on separate lines bzw. Put attributes on one line.

Intention zum Strukturieren von Elementen in einer oder mehreren Zeilen in WebStorm

Die zweite neue Intention bezieht sich auf JSDoc-Kommentare. WebStorm hilft Ihnen jetzt, ein- oder mehrzeilige Kommentare mit einem Klick durch JSDoc-Kommentare zu ersetzen. Auf die verfügbaren Kontextaktionen können Sie wie gewohnt mit ⌥⏎ / Alt+Enter zugreifen.

Ersetzen eines Standardkommentars durch einen JSDoc-Kommentar

Bessere Zuordnung zwischen .js- und .d.ts-Dateien

Eine weitere Verbesserung in dieser Version betrifft .js– und .d.ts-Dateien. Wir haben die Zuordnung zwischen diesen beiden Dateitypen verbessert und durch Randleistensymbole die Navigation zwischen ihnen vereinfacht. Weitere Details zu den Änderungen finden Sie in diesem Blogbeitrag.

Bessere Zuordnung zwischen .js- und .d.ts-Dateien

Frameworks und Technologien

Neue Inspektion zum Aktualisieren von Abhängigkeiten

Im Lauf der Jahre haben wir verschiedene Funktionen hinzugefügt, um Ihnen zu helfen, Pakete aus der package.json-Datei hinzuzufügen und zu aktualisieren und relevante Informationen zu diesen Paketen abzurufen. In dieser Version haben wir einige Änderungen vorgenommen, die Ihnen die Verwaltung von Projektabhängigkeiten weiter erleichtern.

Sie können jetzt npm-Pakete direkt im Editor auf die neueste Version aktualisieren. Öffnen Sie die Datei package.json, legen Sie die Einfügemarke auf die Paketversion, die Sie aktualisieren möchten, drücken Sie ⌥⏎ / Alt+Enter und wählen Sie dann Update ‘Paketname’ to the latest version. Wenn Sie mit der Maus über die Paketversion fahren, wird außerdem ein Quick-Fix angezeigt.

Quick-Fix zur Paketaktualisierung in package.json

Standardmäßig bietet die neue Inspektion nur einen Quick-Fix, ohne veraltete Pakete in irgendeiner Weise hervorzuheben. Wenn Sie sich deutliche Hinweise wünschen, können Sie die Severity-Stufe der Inspektion unter Preferences / Settings | Editor | Inspections ändern – suchen Sie nach dem Eintrag Update package.json dependencies.

Ändern der Severity-Stufe der package.json-Inspektion

Bisher konnten Sie in WebStorm Ihre Pakete im entsprechenden Abschnitt unter Preferences / Settings | Languages und Frameworks | Node.js and NPM verwalten. Da diese Art der Paketverwaltung kaum genutzt wurde, haben wir uns entschieden, diesen Abschnitt zu entfernen und mit der oben beschriebenen neuen Inspektion eine einfachere Methode für diese Aufgabe einzuführen.

Zu guter Letzt haben wir unter Preferences / Settings den Abschnitt Node.js and NPM in Node.js umbenannt, um Verwirrung zu vermeiden. Wie zuvor können Sie dort einen Node-Interpreter und den Paketmanager Ihrer Wahl auswählen: npm, pnpm oder Yarn.

Node.js-Abschnitt in den Einstellungen

Überarbeitete Deno-Integration

Letztes Jahr haben wir Unterstützung für Deno in WebStorm eingeführt. Diese Unterstützung basierte auf der Integration von WebStorm mit dem TypeScript-Service sowie auf dem Plugin typescript-deno. Diese Implementierung hatte mehrere Nachteile und funktionierte in letzter Zeit nicht zuverlässig. Aus diesem Grund haben wir die Unterstützung komplett überarbeitet und auf Deno LSP umgestellt. Wir haben auch eine Reihe bekannter Probleme behoben. Mehr zu den wichtigsten diesbezüglichen Änderungen erfahren Sie hier.

Weitere Informationen zum Arbeiten mit Deno finden Sie in diesem Blogbeitrag. Dieser enthält bereits Informationen zu den jüngsten Änderungen.

Unterstützung für Angular 13

Eine der dringendsten Herausforderungen, die wir in dieser Version gelöst haben, ist die Unterstützung für Angular 13. Änderungen am Angular Package Format hatten dazu geführt, dass die Unterstützung nicht funktionierte. WebStorm 2021.3 berücksichtigt diese Änderungen und unterstützt die neue Angular-Version.

Verbesserte HTML-Completion

Wir haben die Funktionsweise der HTML-Completion verbessert. Wenn Sie jetzt im Editor einen Tag-Namen oder eine Abkürzung eingeben oder die Code-Completion explizit aufrufen, zeigt WebStorm sofort relevante Vorschläge an. Bisher wurden die Vorschläge nur angezeigt, nachdem Sie das <-Zeichen eingegeben haben. Wir haben erkannt, dass dies für diejenigen unter Ihnen, die nicht an die Eingabe von < und > gewöhnt sind oder Emmet nicht kennen, nicht sehr angenehm war.

Completion von HTML-Tags in WebStorm

Außerdem sollte die Code-Completion für Zeichenentitäten jetzt besser funktionieren.

Typprüfung für Vue- und React-Eigenschaften

Zwischen den Releases 2021.2 und 2021.3 haben wir eine Reihe lang erwarteter Fixes für Vue umgesetzt, darunter die Unterstützung für script setup. In dieser Version haben wir eine weitere nützliche Verbesserung eingeführt: WebStorm 2021.3 unterstützt die TypeScript-Typprüfung in Vue-Vorlagen. Die IDE warnt Sie, wenn in einem Ausdruck, der an eine Eigenschaft gebunden ist, der falsche Typ verwendet wird.

TypeScript-Typprüfung in Vue

Dies funktioniert auch bei React-Attributen.

Neue Funktionen im HTTP-Client

In dieser Version haben wir den integrierten HTTP-Client von WebStorm erheblich verbessert. Wir haben viele neue Funktionen hinzugefügt: Der Client unterstützt jetzt binäre Antworten, die Ausgabeumleitung in eine benutzerdefinierte Datei oder ein benutzerdefiniertes Verzeichnis, Text- und JSON-Streams sowie HTTP-Anfrage-IDs.

Bildinhalt in einer HTTP-Antwort

Lesen Sie diesen Blogbeitrag, um einen genaueren Überblick über die Neuerungen zu erhalten.

Remote-Entwicklung

Remote-Ausführung von WebStorm

Dies ist eines der größten und am sehnlichsten erwarteten Updates in dieser Version: WebStorm unterstützt jetzt Remote-Entwicklungsworkflows! Sie können eine Verbindung zu einem Remote-Rechner herstellen, auf dem ein IDE-Backend ausgeführt wird. Das Projekt auf dem Remote-System kann genauso einfach bearbeitet werden, als würde es sich auf Ihrem lokalen System befinden. Wir hoffen, Ihnen mit dieser Neuerung noch mehr Produktivität und Flexibilität zu bieten und gleichzeitig ein sicheres Arbeiten zu ermöglichen, ganz unabhängig davon, wo Sie sich gerade befinden.

Die Unterstützung für Remote-Entwicklungsworkflows wird durch unsere neue Anwendung JetBrains Gateway bereitgestellt. Diese ermöglicht den Zugriff auf alle Ihre Remote-Backends, ohne dass Sie eine IDE auf Ihrem lokalen Computer installieren müssen. Sie können die neueste Version von JetBrains Gateway von unserer Website herunterladen. Danach werden Sie von diesem Bildschirm begrüßt:

JetBrains Gateway

Weitere Informationen zum Einstieg finden Sie in der Dokumentation.

Bitte beachten Sie, dass sich die Remote-Entwicklung noch in der Betaphase befindet und weiterhin aktiv verbessert wird. Bitte probieren Sie die neue Funktionalität aus und teilen Sie uns Ihre Meinung mit. Sie können uns Ihr Feedback oder Ihre Fehlermeldungen hier zukommen lassen.

Entwicklung mit einem remote installierten Node.js

In dieser Version haben wir einige wichtige Verbesserungen eingeführt, um eine Docker-Installation von Node.js zu unterstützen, die von den WebStorm-Integrationen mit JavaScript-Tools verwendet wird. Sie können jetzt Remote-Node.js-Interpreter mit ESLint, Mocha, Jest, npm, pnpm und yarn verwenden.

Die Unterstützung von Remote-Node.js-Interpretern war für ESLint bereits seit v2021.2 als experimentelle Funktion verfügbar. Ab sofort ist sie standardmäßig aktiviert.

Um die neue Funktion auszuprobieren, fügen Sie zunächst einen Remote-Node.js-Interpreter hinzu: Öffnen Sie unter Preferences / Settings | Languages & Frameworks | Node.js die Dropdown-Liste des Feldes Node interpreter und klicken Sie auf Add. Wählen Sie dann Add Remote… und geben Sie im angezeigten Dialogfeld eines der vorhandenen Docker-Images an.

Einstellungen für Remote-Node.js-Interpreter

Gehen Sie dann zu Preferences / Settings zurück und stellen Sie sicher, dass im Feld Package manager der richtige Pfad zum Installationsordner eines Paketmanagers in Ihrem Docker-Image angegeben ist.

Anschließend können Sie zum Editor zurückkehren und mit Node.js und Ihrem Paketmanager die Projektabhängigkeiten in Docker installieren. Ab diesem Punkt sollten Sie genauso weiterarbeiten können, als ob Node.js lokal installiert wäre. Wenn Sie beispielsweise eine JavaScript-Datei mit ESLint analysieren möchten, öffnen Sie diese Datei im Editor. Die Fehler sollten automatisch hervorgehoben werden.

Wir haben außerdem die Unterstützung von Remote-Node.js-Interpretern auf Mocha-, Jest-, npm-, pnpm- und yarn-Skripte erweitert. Unter den folgenden Links finden Sie Anweisungen für jede der unterstützten Technologien:

Proxy-Unterstützung für SSH-Verbindungen

Sie können jetzt in Preferences / Settings | Tools | SSH Configurations unter SSH configuration einen HTTP- oder SOCKS-Proxyserver angeben.

Im neuen Abschnitt HTTP/SOCKS Proxy können Sie den Proxy-Typ auswählen, einen Hostnamen und einen Port festlegen und bei Bedarf Anmeldenamen und Passwort für die Authentifizierung angeben.

HTTP/SOCKS-Proxyeinstellungen in WebStorm

Sie haben auch die Möglichkeit, Ihre SSH-Proxy-Einstellungen mit den globalen IDE-Einstellungen zu synchronisieren. Aktivieren Sie dazu das Kontrollkästchen Use global IDE proxy settings.

Docker

Einfacherer Verbindungsaufbau

Sie können jetzt einfacher eine Verbindung zu Docker herstellen. Klicken Sie einfach auf den entsprechenden Knoten oder verwenden Sie die neue Tastenkombination ⌘⏎ auf macOS bzw. Strg+Enter auf Windows und Linux. Auch Aktion Start container ist über dieses Tastenkürzel zugänglich.

Docker-Verbindung

Neue Aktion Clean up

Die neue Aktion Clean up hat die gleiche Wirkung wie der Terminalbefehl prune. Wenn Sie auf die Knoten Networks, Volumes, Containers oder Images rechtsklicken und Clean up auswählen, löscht die IDE nicht verwendete Objekte. Sie können diese Aktion auch auf den Docker-Stammknoten anwenden, um alle nicht benötigten Objekte mit einem Klick zu entfernen.

Docker-Bereinigung

Docker-Verbindung aus Minikube

Sie können jetzt ganz einfach aus Minikube eine Verbindung zu einem Docker-Daemon herstellen. Aktivieren Sie dazu unter Preferences / Settings | Build, Execution, Deployment die Optionsschaltfläche Minikube. Im Feld daneben zeigt die IDE automatisch die docker-daemon-Umgebungen des erkannten Minikube an, zu denen Sie eine Verbindung herstellen können.

docker-minikube

Unterstützung für Compose V2

WebStorm unterstützt Compose V2. Dadurch können Sie Docker-Compose-Befehle als docker compose statt docker-compose (mit Bindestrich) ausführen.

Um diese Option einzuschalten, aktivieren Sie unter Preferences / Settings | Build, Execution, Deployment | Docker | Tools das Kontrollkästchen Use Compose V2.

Compose V2

Image-Ebenen

Image-Ebenen ermöglichen die Nachverfolgung aller Befehle, die auf Images angewendet werden. Um auf sie zuzugreifen, wählen Sie ein Image aus und gehen Sie zum Tab Layers. Wenn Sie dort einen Befehl auswählen, können Sie rechts auf den Link Analyze image for more information klicken, um detaillierte Informationen zu den Änderungen zu erhalten, die auf die einzelnen Ebenen angewendet wurden.

Image-Ebenen

Container als Image speichern

Wenn Sie einen vorkonfigurierten Container später verwenden möchten, können Sie ihn als Image speichern. Klicken Sie dazu im Services-Toolfenster mit der rechten Maustaste auf den Container und wählen Sie Image | Save as a new Image.

Container-Image

Podman-Unterstützung

WebStorm unterstützt jetzt Podman als alternative Verwaltungsmethode für Pods, Container und Images. Bevor Sie Podman in der IDE verwenden, sollten Sie eine Verbindung konfigurieren.

Sobald Podman in Ihrem Betriebssystem installiert und konfiguriert wurde, können Sie über Preferences / Settings | Build, Execution, Deployment | Docker eine Verbindung herstellen, indem Sie die Optionsschaltfläche TCP socket auswählen und die erforderlichen Felder ausfüllen.

Benutzererfahrung

Teilbares Run-Toolfenster

Sie führen mehrere Konfigurationen parallel aus und möchten die Ergebnisse gleichzeitig sehen? Teilen Sie das Run-Toolfenster horizontal oder vertikal! Ziehen Sie dazu den gewünschten Tab in den markierten Bereich und legen Sie ihn dort ab. Um die Teilung aufzuheben, ziehen Sie den Tab auf die Tableiste zurück oder klicken mit der rechten Maustaste auf den oberen Fensterbereich und wählen im Kontextmenü den Eintrag Unsplit aus.

Teilbares Run-Toolfenster

Neues Bookmarks-Toolfenster

Bisher hatten wir in WebStorm zwei sehr ähnliche Fenster – Favorites und Bookmarks. Da der Unterschied zwischen den beiden manchmal nicht ganz klar war, haben wir uns entschieden, nur eines zu behalten: Bookmarks. Wir haben den Workflow für diese Funktionalität überarbeitet und ein neues Toolfenster dafür erstellt.

Von nun an werden alle Dateien, Ordner und Klassen, die Sie mit F3 (macOS) oder F11 (Windows/Linux) als wichtig markieren, im neuen Bookmarks-Toolfenster angezeigt.

Wenn Sie ein Lesezeichen hinzufügen, sortiert WebStorm es unter dem Knoten ein, der den Namen Ihres Projekts trägt. Die IDE erstellt diesen Knoten vorher automatisch und speichert dort standardmäßig alle Ihre als wichtig markierten Elemente. Neue Lesezeichen werden am Anfang der Liste unter diesem Knoten hinzugefügt. Sie können sie jedoch manuell anordnen, indem Sie sie in neue Listen ziehen, die Sie frei benennen können.

Bookmarks-Toolfenster in WebStorm

Quellcode-Vorschau für Verwendungen

Die Funktion Show Usages hat in dieser Version eine kleine, aber praktische Verbesserung erfahren. Wenn Sie die Verwendungen eines Symbols aufgerufen haben, indem Sie ⌥⌘F7 / Strg+Alt+F7 gedrückt oder mit gedrückter ⌘/Strg-Taste auf die Definition geklickt haben, können Sie jetzt die Quellcode-Vorschau für eine Verwendung aktivieren, indem Sie auf das quadratische Symbol klicken.

Vorschau in der Verwendungssuche von WebStorm

ML-basierte Suche nach Aktionen in Search Everywhere

Bei der Suche nach Aktionen in Search Everywhere wird WebStorm jetzt standardmäßig durch Machine Learning unterstützt. Wir haben eine ML-basierte Formel trainiert, die Folgendes berücksichtigt:

  • Ihr persönlicher Aktionsverlauf.
  • Aktionshäufigkeiten unseres gesamten Nutzerbestands.
  • Länge der Suchanfrage, Name der Aktion usw.

Wir hoffen, dass Sie durch die ML-basierten Modelle bessere Suchergebnisse erhalten, die auf Ihre individuellen Bedürfnisse abgestimmt sind.

ML-Aktionen in 2021.3

ML-Aktionen in 2021.2

Terminal-Verbesserungen

Das WebStorm-Terminal unterstützt jetzt die neue ConPTY-API unter Windows. Durch dieses neue Terminal-Backend lösen wir mehrere Probleme, die von der alten, auf winpty basierenden Implementierung verursacht wurden. Außerdem werden jetzt 24-Bit-Farben unterstützt.

conPTY-Unterstützung

Außerdem nimmt die neue Type-Ahead-Unterstützung Textänderungen vorweg und zeigt sie sofort hellgrau an. Dadurch können Sie im Terminal ohne Verzögerung tippen, egal ob es sich um ein lokales oder entferntes System handelt.

Auswertung von Ausdrücken im Debugger

In dieser Version haben wir die Auffindbarkeit der Funktion Evaluate Expression verbessert, denn früher wurden oft Überwachungen verwendet, wo es auch die einfachere Evaluate-Funktion getan hätte.

Das Evaluate-Feld ist jetzt direkt im Debug-Toolfenster zugänglich, um die praktischste Methode zum Auswerten von Ausdrücken stärker ins Blickfeld zu rücken.

Auswertung von Ausdrücken in WebStorm 2021.3

Integriertes Tool für die Fehlerbehebung

WebStorm 2021.3 bietet eine neue, schnellere Möglichkeit zur Diagnose und Behebung von Problemen, die die Funktionsfähigkeit Ihrer IDE beeinträchtigen. Wenn Sie Probleme mit WebStorm haben, rufen Sie im File-Menü die neue Aktion Repair IDE… auf. Diese führt Sie durch eine Reihe von Schritten, die verschiedene häufige Probleme beheben.

Repair IDE

Updates für die Barrierefreiheit

Wir haben einige Probleme mit der Barrierefreiheit behoben, um die Arbeit im Bildschirmleser-Modus komfortabler zu gestalten. Das Toolfenster-Widget-Popup und das Kurzdoku-Popup, die bisher beim Überfahren mit dem Mauszeiger erschienen, wurden deaktiviert.

Wir haben auch ein Problem beim Aufrufen des Popups Go to Declaration or Usages behoben.

Auch unter macOS wurde die Barrierefreiheit verbessert. Wir haben mehrere Probleme mit dem Voiceover-Fokus gelöst, und Projekte können jetzt mithilfe eines Screenreaders erstellt werden. Um Ablenkungen beim Programmieren zu minimieren, haben wir die Anzahl der Hilfe-Tooltips verringert, auf die mit einem Ton hingewiesen wird.

Schriftgrößenanpassung für alle Tabs

Wussten Sie, dass Sie die Schriftgröße im Editor mit dem Mausrad ändern können? Bisher wirkte sich diese Funktion nur auf die aktuelle Datei aus. Jetzt können Sie die Schriftgröße für alle geöffneten Dateien ändern. Öffnen Sie Preferences / Settings | Editor | General, aktivieren Sie Change font size with Command / Ctrl + Mouse Wheel in und wählen Sie die Option All editors.

Ändern der Schriftgröße

Versionsverwaltung

VCS-Einstellungen mit neuer Struktur

Damit Sie Ihre Versionsverwaltung schneller konfigurieren können, haben wir die VCS-Einstellungen besser auffindbar und übersichtlicher gestaltet. Hier sind einige der Änderungen, die Sie unter Preferences / Settings | Version Control finden können.

Der Knoten Version Control enthält jetzt alle verfügbaren Einstellungen. Klicken Sie auf die Einstellungen, um zu ihnen zu navigieren.

VCS-Einstellungen in WebStorm 2021.3

Wir haben das Layout des Git-Knotens verbessert. Die Einstellungen wurden in Abschnitte unterteilt, die den wichtigsten Abläufen entsprechen: Commit, Push und Update. Außerdem sind die Parameter in diesen Abschnitten jetzt sinnvoller strukturiert.

Git-Knoten in WebStorm 2021.3

Wir haben außerdem mit Directory mappings einen separaten Knoten für Verzeichniszuordnungen hinzugefügt, und die Hintergrundoperationen sind jetzt standardmäßig aktiviert. Der Knoten Background ist nicht mehr vorhanden.

Neue Aktion Push All up to Here

Manchmal kann es passieren, dass Sie mehrere veröffentlichungsreife Commits haben, während andere noch in Bearbeitung sind. In solchen Fällen möchten Sie vielleicht nur Commits pushen, von deren Qualität Sie überzeugt sind. Ab dieser Version von WebStorm haben Sie die Möglichkeit, einen Commit im Log-Tab des Git-Toolfensters auszuwählen und nur die Commits bis zu diesem ausgewählten Commit zu pushen. Um diese Funktion zu verwenden, wählen Sie den benötigten Commit aus, öffnen Sie mit einem Rechtsklick das Kontextmenü und wählen Sie die Aktion Push All up to Here aus.

Aktion Push All up to Here in WebStorm

Checkout and Rebase onto Current für Remote-Branches

Mit der Aktion Checkout und Rebase onto Current können Sie den ausgewählten Branch auschecken und ein Rebasing auf dem aktuell ausgecheckten Branch durchführen. Bisher war diese Aktion nur für lokale Branches verfügbar. Ab v2021.3 können Sie diese Aktion auch auf Remote-Branches anwenden.

Checkout and Rebase onto Current für Remote-Branches in WebStorm

Neues Changes-Toolfenster

Bisher zeigte WebStorm den Unterschied zwischen Commits in einem separaten Dialog an. Ab dieser Version zeigt die IDE diese Informationen in einem neuen Changes-Toolfenster an. Um das neue Toolfenster zu öffnen, klicken Sie auf dem Log-Tab Ihrer Versionsverwaltung mit der rechten Maustaste auf eine Revision und wählen Sie im Kontextmenü den Eintrag Compare with Local aus.

Changes-Toolfenster

Hervorgehobene Änderungen ausrichten

In den Einstellungen der Diff-Anzeige, die über das Zahnradsymbol zugänglich sind, haben wir die neue Option Align Changes Highlighting hinzugefügt. Diese Funktion verbessert die Lesbarkeit des Diffs insbesondere bei komplexen Änderungen, da die unveränderten Zeilen so ausgerichtet werden, dass sie nebeneinander angezeigt werden. Auf diese Weise lassen sich hinzugefügte oder entfernte Codeabschnitte klarer erkennen.

Ausrichten von hervorgehobenen Änderungen

Dies waren nur die wichtigsten Highlights! Die vollständige Liste der neuen Funktionen und Verbesserungen in WebStorm 2021.3 finden Sie in den Versionshinweisen. Bitte teilen Sie uns Ihr Feedback mit und melden Sie eventuelle Probleme in unserem Issue-Tracker.

Ihr WebStorm-Team

Autorin des Original-Blogposts: