IntelliJ IDEA 2019.1 新特性

4444發表於2019-03-29

盼望著, 盼望著, 春天來了, JB的新年第一版IDEA終於釋出了!閒言少敘, 介紹下新特性吧

  • 主題

自定義UI

通過書寫配置檔案的方式自定義UI

High contrast

高對比度主題套餐, 硬核的朋友可嘗試一下

IntelliJ IDEA 2019.1 新特性

IntelliJ IDEA 2019.1 新特性

  • Java

Switch

  • 在Java12的新特性中, switch表示式可以被增強為類似箭頭函式的形式;

  • 可以合併同樣處理邏輯的switch選項.

變數提取

  • 變數提取得到了增強, 現在可以將相同語義的程式碼進行提取

  • 根據上下文的不同, IDE會將if表示式轉換為三元表示式.

  • 三元表示式中更精確的警告

  • 在之前的IDEA中, 其對非空限定的三元表示式的檢測為"高亮整個表示式", 現在可以精確高亮違法約定的那部分了;

IntelliJ IDEA 2019.1 新特性

表示式中的數學檢測

IntelliJ IDEA 2019.1 新特性

IntelliJ IDEA 2019.1 新特性

註解

  • @Contract 註解

@Contract 註解用於標識方法所需遵循的限定, 它有2個屬性:

value: 包含描述引數和返回值之間因果關係;

pure:  用於只返回新值不更改物件狀態的方法, 參見

If its return value is not used, removing its invocation will not affect program state or change the semantics, unless the method call throws an exception (exception is not considered to be a side effect). A method should not be marked as pure if it does not produce a side effect by itself, but it could be used to establish the happens-before relation between an event in another thread, so that changes performed in another thread might become visible in current thread after invocation of this method. On the other hand, some synchronized methods could be marked as pure, because the purpose of synchronization here is to keep the collection internal integrity rather than to wait for an event in another thread. "Invisible" side effects (such as logging) that do not affect important program semantics are allowed.

  • 根據引數所使用的的方法, IDEA會建議加上註解

堆疊跟蹤

  • 現在可以在進行堆疊跟蹤時直接定位到具體位置了, 而非以前的只定位到所屬行.

  • Gradle

  • 委託給Gradle

現在可以將構建和執行操作委託給Gradle(支援對每個專案單獨分級)

可以為同一個專案的測試執行程式和應用程式執行程式設定不同的值 (此版本IDEA中預設將專案委指定為Gradle管理)

  • 從測試任務列表中選擇

Gradle支援從測試任務列表中進行選擇

  • HotSwap觸發構建

  • Maven

  • 構建輸出位置

構建的過程的輸出位置從run視窗轉移到build視窗

IntelliJ IDEA 2019.1 新特性

  • 依賴檢視增強

  • 顯示依賴衝突

  • 顯示無邊界檢視

  • 顯示相鄰節點

  • 顯示依賴路徑

  • Version Control

  • 修正和壓並

修正和壓並操作被加入到了VCS選項中

  • Cherry-pick

cherry-pick可以從VCS日誌中選擇並應用

  • 傳入和傳出

檢視傳入和傳出有效性

需要在Settings->Version Control->Git中修改

IntelliJ IDEA 2019.1 新特性

  • 還原已刪除的檔案

  • 批量選擇

比較不同時可以通過全選框批量選擇

  • "我的同事git名太長怎麼辦?"

別擔心, 可以只看首字母

  • Diff

  • 拖拽到比較

現在檔案比對可以把要比較的檔案直接拖拽到比較區了

  •   互換差異內容

  • 更精確的高亮

現在可以精確到字元級別了

  • 最近(變動的)位置

CMD(Ctrl)+Shift+E 可檢視最近訪問和修改的痕跡, 按最近變動時間排序

  • JVM 偵錯程式

支援“synchronized”、“assert”和“switch”

跳出程式碼塊

可以在除錯過程中跳出當前所屬的程式碼塊(媽媽再也不用擔心我的for迴圈了)

指哪跑哪

選中行號後可選擇"執行到所選位置"

  • Scala

理解

增強了對錯誤高亮 / 隱式提示 / GoTo / Quick Definition / Quick Documentation等的理解

查詢隱式使用處

Find Usages可以作用於隱式定義、應用/不應用的方法、理解方法和單個抽象方法(SAM)型別


反編譯

可以將沒有原始碼的.class檔案反編譯為.java檔案了

Scalafmt

在2018.2版本中已經加入了對Scalafmt的支援, 現在這個功能又得到了增強——可支援自定義的Scalafmt版本並可以通過IDEA下載

Hocon

Hocon外掛被分離為一個獨立的外掛, 你可以按需啟用/棄用

錯誤高亮

變動區域包括:

1.區域性統一和類變數統一;

2.建構函式高亮,呼叫私有建構函式;

3.implicit0;

4.多型lambda;

5.Simulatrum:  higher-arity建構函式。


  • Groovy

支援Groovy3.0的Java風格lambda語法. IDEA提供了程式碼補全, 高亮和型別推斷等編輯功能, Groovy的檢測和提示將在其中可以正常工作. Java風格的lambda可以使用格式化和除錯.

  • Kotlin

內建的Kotlin外掛版本被升級到v1.3.21版本

動態模板生成main時為空參

kotlin1.3開始main方法可以不帶引數

main縮寫生成的是空參版, maina縮寫生成的是帶參版

String轉化

可以優化掉不必要的toString()

lambda轉換匿名類

程式碼風格提示

  • JavaScript & TypeScript

解構

現在支援JS和TS中的解構了

Promise轉Async/Wait

更新CSS和HTML文件


JavaScript debug 控制檯

Javascript和node.js除錯工具視窗中的互動式偵錯程式控制檯現在使用樹檢視顯示物件,它支援使用css設定日誌訊息的樣式,並使用console.group()和console.groupend()對其進行分組。此外,它還允許您過濾掉任何型別的日誌訊息。

  • Docker

IDEA允許在從dockerfile構建或使用docker compose(docker compose.yml)建立的容器中進行除錯Java程式。

  • K8S

外部資源支援


Helm

現在可以在helm資源模板檔案的圖表中使用重新命名重構(需要安裝Go模板外掛)

  • 編輯器

匯出編碼格式

Soft-wraps

Soft-wraps可以指定適用範圍(檔案型別)了


鍵位對話方塊

初次在Windows上按Ctrl+Y時會彈出鍵位此對話方塊

Sublime Text鍵位

 在Keymap中可以使用Sublime Text這個預設鍵位了.

VS Code鍵位

提供了VS Code鍵位外掛以支援使用VS Code的鍵位

  • Spring Cloud Stream

編輯器支援

IDEA現在為Spring Cloud流專案提供了豐富的編輯支援,例如語法突出顯示、檢查、快速修復和程式碼補全(包括application.properties或application.yml檔案中值和引用的繫結器名稱補全)。

生產者和消費者之間的導航

  • Thymeleaf

現在可以導航到“th:replace”和“th:include”屬性中引用的模板片段。程式碼補全和重新命名重構現在也適用於這些包含和替換的片段。

  • Database Tools

支援更多資料庫

Intellij IDEA支援這些新資料庫:

Greenplum——基於PostgreSQL的分析資料庫。

Vertica——面向列的儲存,用於處理大量資料。

ApacheHive——建立在Hadoop之上的資料倉儲,用於提供資料查詢和分析。

選項

變更了連線對話方塊的外觀,並新增了幾個重要的設定。現在,您可以在“啟動指令碼”欄位中新增一個SQL查詢,該查詢將在每次建立連線時執行。此外,還可以設定超時,在超時之後,IDE將自動斷開連線,或者設定每隔n秒執行一次查詢的時間間隔,以保持連線的活動狀態。


  • 結語

工欲善其事必先利其器   ——《論語·衛靈公》

提高工作效率的一個手段之一是使用強大的工具, 18年來JetBrains公司給我們帶來了一次又一次驚喜. 一定程度上講, 正是有著像IDEA,PyCharm等優秀的軟體, 我們才得以在工作學習過程中能夠持續性獲得便利性的良好體驗, 它們的誕生也一定程度上促進了當今社會的發展.

向那些孜孜不倦為行業提供優秀工具的人們致敬 !

相關文章