来自 操作系统 2020-03-13 14:53 的文章
当前位置: 澳门威尼斯人平台 > 操作系统 > 正文

IntelliJ 平台 2020 年路线图

JetBrains 发文介绍了其 IntelliJ 平台 2020 年的路线图。

原文链接:
http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/plugin_compatibility.html

原文链接:

Dao平台开发路线图

文章主要介绍了当前 JetBrains 在改进 IntelliJ IDEA 和基于 IntelliJ 平台的 IDE 方面所做的一些工作,主要包括性能和对现代开发工作流的支持两个方面。改进结果将会在明年发布,其中一些会发布在春季的 2020.1 版本中。

所有基于IntelliJ平台的产品(IntelliJ IDEA、RubyMine、WebStorm、PhpStorm、PyCharm、AppCode等等)共享相同的底层API。因此,如果一个插件没有使用任何Java特定的功能,那么它可以被标记为兼容任何其他产品。这是通过在plugin.xml文件中指定模块依赖关系来完成的。

欢迎来到IntelliJ平台SDK文档!您可以在这里找到有关IntelliJ平台SDK的基本信息,特别是如何开始为IntelliJ IDEA和其它IDE开发插件。更多具体开发主题的详细信息可以参阅体系结构参考指南。一组带有代码示例的分步教程将引导您了解IntelliJ平台SDK的常见用例。插件开发常见问题部分包含一系列在我们的Open API and Plugin Development论坛上经常讨论的问题。改进IntelliJ SDK文档的方法之一是贡献项目。 任何类型的内容包括教程和有关体系结构的文章或可以帮助插件开发人员的示例代码都是受欢迎的。 如果您想分享您的知识,请阅读贡献指南。您可以在YouTrack提交问题告知我们文档和示例中任何不一致的内容,过时的资料,外观问题或其他缺陷。 如果您没有找到解答您的问题的文档主题,请随时提出请求。您的反馈有助于IntelliJ平台文档更加完美。

第一产品阶段:采用分布式文件系统的Web Server。

澳门威尼斯人注册网站 1

一个模块依赖就是一个<depends>标签,它的内容以com.intellij.modules开头。
例如:

  1. 快速入门指南
  2. 体系结构参考指南
  3. PhpStorm
  4. 教程

P0.1:框架

  • 系统框架。支持发布、更新、调试、分析和文档化。
  • 数据层。简易的分布式GraphDB。
  • 编程框架。Actor Model实现。
  • Web框架。第三方的Web 服务器。
  • 内容发布工具。命令行脚本工具。

性能

索引性能

与 IDE 性能有关的两个主要痛点是启动性能,索引耗时较长的工具被认为是重量级的。JetBrains 表示,明年关注点将转向索引性能方面。

针对此问题官方采取了多管齐下的方法。首先,支持使用预建的索引块,这样每个用户 IntelliJ 实例都不必执行索引java.lang.String类的工作。计划明年逐步提供支持,从 JDK 开始,然后涵盖 Maven Central 的库以及其它 IDE 中的解释器和包。同时还在研究支持团队或企业内项目源代码的索引块共享的方法,虽然这一块目前还没有任何具体计划。

其次,计划通过在索引时提供更多的 IDE 操作来减少索引的破坏性。

澳门威尼斯人注册网站,第三,将检测并通知用户有关索引异常的信息,包括索引花费时间太长的文件、索引重新建立频率太高的文件以及异常导致的索引重建,目的是提供解决这些问题并提高 IDE 在项目上的性能的清晰步骤。

同时也计划支持进行旧性能优化,以确保索引系统不会执行任何不必要的工作并且不会产生可避免的开销。

读/写锁线程模型重新设计

UI 卡死(freeze,冻结)是一个很大的问题。今年虽然已经构建了用于报告此类卡死问题的基础,并进行了架构更改以修复许多相关问题,比如文件系统事件的异步侦听器,但是接下来的一年中,计划迈出更大的一步:将需要写锁定的操作移出 UI 线程。

早在 IntelliJ IDEA 早期就做出了一项架构决定,该决定要求大多数操作需要修改 IDE 的内部数据结构才能在 UI 线程上运行,也就是包括基本操作(将字符插入文档中)和大规模操作(重新命名具有数千种用法的方法)。这种架构的好处是简单的编程模型,但是明显的缺点是 UI 响应能力在许多情况下都会受到影响。

多年以来,官方一直在寻找方法来解决此架构的局限性,主要是将大型操作拆分为在后台运行并应用于 UI 线程的部分。一个更基本的解决方案是完全摆脱 UI 线程的要求,但是直到最近,还不知道如何在不对自己的代码和第三方插件进行重大重写的情况下做到这一点。

不过现在,JetBrains 已经有了一个允许逐步迁移的架构解决方案,并且正在开始实施。明年将重构 IntelliJ 平台的基本 UI 组件和 API,以采用新的线程模型。一旦新模型稳定并且可以看到改进,将在所有 IDE 中切换到新模型,从而使 UI 平滑且没有滞后。

无需重启即可加载和卸载插件

该特性已经在 IntelliJ IDEA 2019.3 中预览,它使开发者不用重新启动就可以安装主题和键盘映射插件,无缝升级。2020.1 版本中会将此支持扩展到所有类型的插件。计划将为大部分捆绑的插件提供支持,并且会为第三方插件开发人员提供支持说明。

这项工作更有意义的地方在于,它的最终目标是 IDE 可以根据开发者打开的每个项目的大小自行调整大小,比如仅针对使用 Spring 的项目加载 Spring 插件,仅针对 Angular 项目加载 Angular 插件。这样如果不使用某项技术,那么就不会看到与此相关的任何 UI 元素,也不会看到支持该技术的插件对性能或内存使用量产生任何影响。

<idea-plugin>
    ...
    <depends>com.intellij.modules.lang</depends>
    ...
</idea-plugin>

插件开发常见问题贡献指南

P0.2:产品化

  • 增加鉴权机制及访问域的支持。
  • 增强GraphDB的性能及容灾机制。
  • 加入对Django模板的支持。

本文由澳门威尼斯人平台发布于操作系统,转载请注明出处:IntelliJ 平台 2020 年路线图

关键词: