IntelliJ platform roadmap for 2020

Issued JetBrains IntelliJ introduced its platform roadmap for 2020.

The current paper describes some of the work done in JetBrains IntelliJ IDEA and improvements based IDE IntelliJ platform, mainly including performance and work flow to support the development of modern two aspects. Improved results will be released next year, some of which will be published in the spring edition of 2020.1 in.

performance

Index Performance

Two major pain points associated with IDE performance is to start the performance, the index lengthy tool is considered heavyweight. JetBrains said that next year the focus will shift index performance.

For this issue of the official took a multi-pronged approach. First of all, support the use of pre-built index blocks, so that each user instance do not have to perform index IntelliJ java.lang.Stringworking class. Plans next year to gradually provide support, JDK from the beginning, and then covered Maven Central Library as well as in other IDE interpreter and packages. While also studying ways to share in the index block support team or enterprise project source code, although this one has not any specific plans.

Secondly, the plan to reduce the destructive indexed by providing more IDE operating in the index.

Third, will detect and notify the user information about the index abnormalities, including an index file takes too long, too high a frequency to re-establish the index file and index rebuild abnormalities caused by the aim of providing to address these problems and improve the project in the IDE clear steps performance.

Also plans to support the old performance optimization, in order to ensure that the index will not perform any unnecessary work and do not generate avoidable costs.

Read / write lock thread model redesign

UI stuck (freeze, frozen) is a big problem. Although this year has been to build a foundation for such a report stuck issues and schema changes made to fix a number of related issues, such as asynchronous listeners file system events, but the next year, plans to take bigger step: the need to write lock operation out of the UI thread.

As early as the early IntelliJ IDEA to make a framework decision, which requires most operations need to modify the internal data structures of the IDE to run on the UI thread, that is, including basic operations (the character into your document) and large-scale operations (renamed method has thousands of usage). The advantage of this architecture is a simple programming model, but the obvious disadvantage is UI responsiveness will be affected in many cases.

Over the years, officials have been looking for ways to address the limitations of this framework, mainly to large-scale operation is split into portions and applied to the UI thread to run in the background. A more fundamental solution is to completely get rid of the requirement UI thread, but until recently, did not know how to do it at a major rewrite of the case does not own code and third-party plug-ins.

But now, JetBrains have allowed a gradual migration of infrastructure solutions and is implemented. Next year the reconstruction of basic UI components and API IntelliJ platform, with the introduction of new threading model. Once the new improved model is stable and can be seen, all the switches in the new model to the IDE, so that the UI smooth and no hysteresis.

Can be loaded and unloaded without rebooting plug

This feature has been in IntelliJ IDEA 2019.3 preview, which allows developers without rebooting you can install themes and plug-in keyboard mapping, seamless upgrade. 2020.1 This version will support extended to all types of plug-ins. Most plugins bundled plan will provide support, and will provide support for third-party plug-in developers explanation.

The work place is more meaningful, its ultimate goal is IDE can be adjusted according to the size of each project developers to open their own size, such as only load plug-ins for Spring project using Spring, just load Angular Angular plug-in for the project. If you do not use such a technology, you will not see any UI element associated with this, it will not be seen to support the technology plug any impact on performance or memory usage.

Workflow Support

Collaborative Editing

Collaborative editing is the issue tracker highest vote request, JetBrains currently also follow up this feature. In the method currently used, there will be a primary IDE run on a computer running the source code, other users can be connected as an IDE "thin client" to the primary IDE, without direct access to the source code. Each user will have its own connection status, including number of open files with the inserted location, and can "follow" another user as necessary.

Thin client users will have access to the core IDE features, such as navigation, completion and commissioning, but can not access the full feature set, for example, in the initial version, thin clients may be unable to perform version control operations.

Supports collaborative editing  Rider  agreement, it is likely to be released in Rider first, and then extended to other IDE. But this is a long-term work, IntelliJ IDEA 2020.1 release is not related to temporary or see results.

Support the implementation of cloud

For quite a long time, many JetBrains products support running and debugging code in the container, but in different products and there is not much correlation between the realization of these functions, even the basic functions (such as Docker support) is also inconsistent UI .

Now JetBrains introduced the concept of the target environment, this concept provides a method and two-way file copy process started in the target environment. In IntelliJ IDEA 2020.1, a supported environment including a local computer, and the computer Docker container connected through ssh.

In subsequent releases, the planned unified remote support existing Docker and interpreters around the new architecture. In addition, the cloud will also provide deeper integration.

Redesign Project Model

IDE project is a model representation of the project structure: which files belong to the project, how they are interdependent, which use the library ...... project model has some limitations, first of all, it does not support any mix of different types of projects. For example, AppCode can open the Xcode project, Rider can open Visual Studio solution, but can not open the Gradle project and Xcode project in the same IDE framework. Secondly, the model works on the project directory level, rather than at the file level, and it can not represent the same directory with different dependencies of different files, which makes it difficult to construct such Bazel such system is integrated into the IDE, and also other issues brought to the scene.

The redesigned project model (known internally as "workspace model") to eliminate these restrictions. It also brings other benefits, such as improved performance during the project open, be smoother and better synchronization programming model with Maven and Gradle.

JetBrains also said the next plan would release more information, see the details:

https://blog.jetbrains.com/idea/2019/12/intellij-platform-roadmap-for-2020

Guess you like

Origin www.oschina.net/news/112204/intellij-platform-roadmap-for-2020