IntelliJ IDEA 开发工具

IntelliJ IDEA 2019.1 已经发布!自定义主题、Java 12 Switch 表达式、在 Docker 容器内部调试等等!

我们很兴奋地宣布:现已发布 IntelliJ IDEA 2019.1 今年的第一次重大更新!本次大规模更新带来一系列令人印象深刻的新功能和改进,请务必在我们为您准备的最新消息页面上查看它们!本文应该可以为您广泛地概述本次更新提供的主要新功能。

用户界面

  • 全新皮肤主题和对自定义主题的官方支持!

    有关更多详情,请参阅最新消息页面的主题部分

Java

  • IntelliJ IDEA 支持 Java 12 预览功能 – Switch 表达式 JEP 325了解更多

  • 已改进提取变量重构,现在它比以前更好地保留了语义。

  • 在三元表达式中,IDE 现在只精确地高亮显示检测到的为空性违规条件。

  • 我们显著改进了数学运算分析,IDE 现在可以跟踪余数、乘法和右移运算的值。

  • IDE 现在可以从源码自动推断构造函数的纯度。

  • 可以为自动生成的 try/catch 块配置变量名称。

  • 可以从 Java 堆栈跟踪导航到一行中的相关位置。

  • IDE 现在可以检测重复的 switch 分支,并提供快速修复以合并这些分支。

  • 现在可以使用“上下移动表达式 (Move Statement Up/Down)”来上下移动 switch 表达式和 catch 块。

  • 现在可以在剪贴板导入和导出结构化搜索模式。

有关更多详情,请参阅最新消息页面的 Java 部分

Gradle

  • 新项目的构建和运行操作将默认委托到 Gradle。

  • 可以为每个 Gradle 项目单独设置构建和运行操作的 Gradle 委托。

  • 构建操作委托到 Gradle 时,HotSwap 将会工作。

  • 内置的 Gradle 已升级到 v4.10.3 版。

  • 可以使用 Gradle 测试运行程序运行 JUnit 参数化测试。

  • 正确选择要从编辑器运行的 Gradle 测试任务。

  • Gradle 工具窗口可以显示多模块项目的结构,就像运行 ‘gradle projects’ 命令一样。

有关更多详情,请参阅最新消息页面的 Gradle 部分

Maven

  • 构建操作委托到 Maven 时,HotSwap 将会工作。

  • 唯一绑定的 Maven 版本现在为 v3.3.9,我们不再将 Maven 2 绑定到 IntelliJ IDEA。

  • 现在有一个构建工具 (Build Tool) 窗口,可以让您在一个地方查看与构建相关的所有 Maven 输出。

  • 我们改进了 Maven 图表,您现在可以查看冲突的依赖项或重复的依赖项,只查看所选节点的相邻节点或显示至所选节点的路径,并且可以预览无边框的图表。

有关更多详情,请参阅最新消息页面的 Maven 部分

版本控制系统

  • 现在可以从 VCS Log 标签内上下文菜单中使用“修复 (Fixup)”和“压缩 (Squash)”操作,所以您可以用 fixup 快速创建提交!还有压缩提交消息!

  • 现在可以使用上下文菜单直接从 VCS 日志择优选择文件。

  • 现在,如果启用“在分支弹出窗口中标记有传入/传出提交的分支”选项,即可在“分支”弹出窗口中查看各个分支的传入和传出提交的可用性。

  • “架子 (Shelf )”选项卡中的新“最近删除 (Recently Deleted)”节点显示所有最近删除的文件,并为您提供恢复最近删除的任何上架文件的选项。

  • 现在有一种模式可以查看 VCS 注释的作者首字母。

  • 用于 Git 部分提交的“提交变更 (Commit Changes)”对话框的“差异 (Diff)” 窗格中新增“反选 (Uncheck all)”复选框,可以一次选择和取消选择所有代码块。

  • 在项目视图中,IDE 现在通过 Git忽略 (Git ignore) 以橄榄色标记忽略的文件和文件夹。

有关更多详情,请参阅最新消息页面的版本控制部分

差异查看器

  • 现在,您可以通过拖放文件将文本复制粘贴到空白差异 (Blank Diff) 窗口。

  • 现在可以在差异查看器 (Diff Viewer) 中按字符单元查看差异。

  • 差异查看器允许您通过换边 (Swap Sides) 选项选择哪些文件显示在左边,哪些显示在右边。

有关更多详情,请参阅最新消息页面的差异查看器部分

最近的位置弹出窗口

  • 可以使用全新的最近的位置 (Recent Locations) 导航弹出窗口 (Cmd-Shift-E / Ctrl-Shift-E) 来查看所有最近访问或更改的代码位置。了解更多

JVM 调试器

  • 调试器评估器现在支持同步 (synchronized) 语句、断言表达式和 switch 语句。

  • 现在可以在使用新操作 “Step Out of the block” 在调试 Java 项目时跳出当前块。

  • 现在只需在调试模式下点击所需行号,即可使用鼠标调用 run to cursor 操作。

有关更多详情,请参阅最新消息页面的 JVM 调试器部分

Scala

  • 现在,“便于理解 (For-comprehensions)” 支持高亮显示错误、隐式提示和转到 (GoTo) / 快速定义 (Quick Definition) / 快速文档 (Quick Documentation) 操作。

  • 现在可以在隐式定义 apply / unapply 方法、for-comprehension 方法和单一抽象方法 (Single Abstract Method (SAM)) 类型上调用 Find Usages。

  • 现在可以将编译的 Scala 文件反编译到 Java。

  • 您现在可以使用 Scalafmt 格式化程序的自定义版本。

  • 现在通过专用插件支持 HOCON 格式。

  • 已大幅改善高亮显示错误:部分统一、高亮显示构造函数、 better-monadic-for 编译器插件(implicit0 功能)、kind-projector(值级多态 lambdas)、simulacrum(更多参数类型的构造函数)等等。

有关更多详情,请参阅最新消息页面的博客文章和 Scala 部分

Groovy

  • 支持 Groovy 3.0 的 Java 风格的 Lambda 语法

  • Groovy 意图和检查在 lambda 内正常工作。

  • 能够调试 Java 风格的 lambdas。

有关更多详情,请参阅最新消息页面的 Groovy 部分

Kotlin 

捆绑的 Kotlin 插件已更新至 v1.3.21 版

  • 可以使用 ‘main’ 动态模板创建无参 main 方法。

  • 建议为返回 ‘Deferred’ 的函数添加 “Async” 后缀的新意图操作。

  • 将 SAM 作为 lambda 转换为匿名对象的新意图

  • 改进字符串转换。

有关更多详情,请参阅最新消息页面的 Kotlin 部分

JavaScript 和 TypeScript

  • 用于 JavaScript 和 TypeScript 解构的新重构和意图

  • 将带有 Promise 的函数转换为 async/await 的新意图。

  • 更新了 CSS 和 HTML 文档。

  • 改进了 JavaScript 和 Node.js 调试工具窗口中的调试器控制台。

有关更多详情,请参阅 WebStorm 最新消息页面。

Docker

  • 现在可以调试在 Docker 容器内运行的 Java 应用程序。了解更多.

Kubernetes 插件

  • 能够从已有外部源加载自定义资源规范。

  • 可以在 Helm 资源文件中完成图表重命名重构。

有关更多详情,请参阅最新消息页面的 Kubernetes 部分

编辑器

  • 新增一个将所有代码样式设置导出到 JSON 的选项。

    您可以进一步将所有导出的代码样式设置用于与外部工具的自定义集成。

  • 支持根据文件类型进行软包装。

  • 第一次在 Windows 环境下使用时,通过“键盘映射配置 (Keymap Configuration)” 对话框,选择将 Ctrl+Y 快捷键分配给“删除行 (Delete Line)” 或“重做 (Redo)” 操作。

  • IDE 现在可预配置 Sublime Text 键盘映射。

  • 可以通过安装全新的 VSCode Text 键盘映射插件,在 IntelliJ IDEA 中使用 VSCode 键盘映射。

有关更多详情,请参阅最新消息页面的编辑器部分

Spring Cloud Stream

  • IDE 现在为 Spring Cloud Stream 提供了其众所周知的编辑支持:高亮显示语法、代码补全、检查和快速修复。

  • 绑定器名称完成现在可用于 application.properties 或 application.yml 文件中的值和引用。

  • 现在可以通过间距中的图标在绑定的消耗和生产消息处理程序之间导航。

在最新消息页面的 Spring Cloud Stream 部分查看更多信息。

Thymeleaf

  • 导航到在 ‘th: replace’ 和 ‘th: include’ 属性中引用的模板片段。

  • 包含和替换片段的重命名重构。

  • 包含和替换片段现在也有了代码补全。

有关更多详情,请参阅最新消息页面的 Thymeleaf 部分

Android

  • IntelliJ IDEA 2019.1 包含来自 Android Studio 3.3 的所有变化。了解更多

JetBrains Runtime

  • 通过 IntelliJ IDEA 2019.1,凭借新的 JetBrains Runtime 11,您更易于访问 IntelliJ IDEA。

    我们将继续发布带有 JetBrains Runtime 8 和 JetBrains Runtime 11 的 IntelliJ IDEA。

数据库工具

  • 支持新数据库:Greenplum、Vertica 和 Apache Hive。

  • 外观焕然一新的连接对话框。

  • 能够指定每次建立连接时将运行的 SQL 查询。

  • 新的保持连接和自动断开选项。

有关更多详情,请参阅最新消息页面的数据库工具部分

其他变化

  • IntelliJ IDEA 在 Linux 上完全支持全局菜单,不再是实验性功能。

  • IDE 现在支持 Eclipse Concierge OSGi 框架。

  • 现在可以在 IntelliJ IDEA 中搜索插件设置,即使插件并未与 IDE 捆绑且是手动安装的,设置仍会显示在搜索结果中。

虽然这是一个很长的亮点列表,但当我们忙于添加所有这些新的闪亮功能时,并没有忘记保证其质量和稳定性,我们将不断修复各种缺陷和性能问题,并提高可用性。

总体而言,这次主要更新修复了 1700 多个问题!您可以在发行说明中找到所有已解决问题的完整列表。我们衷心感谢所有为问题投票,提交了功能要求,并且在 Twitter 和这里的意见中分享了想法和建议之人!

我们始终感谢您的反馈,请继续提供反馈!

现在可以 – 下载 IntelliJ IDEA 2019.1 了!

祝您开发愉快!

Discover more

网络研讨会视频:快速上手,使用 Kotlin 把支付宝小程序装进自己的 App

写一个 Android App 或许不难,但企业对于移动应用的要求愈来愈高,不只要求开发速度、稳定度、质量等,甚至希望能具备动态扩展的架构设计、在 App 中自启动小程序。面向这些需求,若是有好的开发工具及平台的支持,将可以大大降低开发及运维的成本。本次网络研讨会特别邀请到支付宝高级无线开发工程师温盛章为大家演示用 Kotlin 开发移动应用,并集成 mPaaS 让 App 具备小程序能力。 (本次视频已同步发表至 B 站) 主題分享 本次分享共有三个关键字: Kotlin 、 小程序 、 mPaaS 。温盛章首先从用户、开发、技术、平台等四大视角,向大家说明小程序是什么?简单来说,小程序就是一种拥有完整生命周期、应用间相互隔离、独立运行于宿主应用内的应用。而小程序从工作型 App、平台型 App、超级 App 到新阶段一路的演化历程,目前已经可以有接近 Native 的体验和顺畅、也可以有 H5 的快捷发布的优势。 对小程序有概念后,温盛章就以 Android Studio 演示如何在一个 Mobile App 里,以 Kotlin 撰写 Mobile App 的代码,并接上 mPaaS 平台,让 App 有自启动小程序的能力。要接入 mPaaS,首先需在 Android Studio 里安装 mPaaS 插件,并到阿里云的 mPaaS 后台创建一个新建用。接着,在 Andro

网络研讨会视频:重构还是重写?聊聊 Java 代码臭味与重构技巧

在重构一书里,将有问题的代码称作代码臭味(Code Smells,有些翻译成”代码异味”、”代码坏味道”),表示这份代码可能有设计上的问题、或是因为写得太凌乱而难以维护。总得来说,这份代码需要通过重构来改善。这样的场景往往是许多开发者的每日工作,因此,判定一位开发者的等级,往往就是看他的重构技巧是否熟练。本次网路研讨会特别邀请到 Odd-e 敏捷教练张博超(Jackson)为大家演示如何用 IntelliJ IDEA 的重构功能来改善 Java 代码臭味。 (本次视频已同步发表至 B 站) 主題分享 在本次的分享里,张博超先用一个日常工作的场景给大家举了个例子:我们在工作前可能会先收拾一下桌子、重启电脑、提前打开软件、在昨天写的代码上加注释,这些动作代表很多情况下,人会有直觉去做改善措施,这些改善措施的背后都会对应一个需要解决的问题。写代码也是类似的,每当我们说要改善代码前,需要先想清楚这个改善的目标是什么?是要解决什么问题?同时,我们也要思考这个改善的作法是不是能真正的解决问题? 为了让大家具体体现重构的过程,张博超以一个计算预算的代码为例子,实际以 IntelliJ IDEA 演示该怎么综合运用提取变量、提取方法、提取类、引入参数对象、修改构造函数等重构功能安全地修改代码,将一个原本高达 30 行、充满原始类型迷恋(Primitives Obsession)、过分亲密(In