盼望著, 盼望著, 春天來了, JB的新年第一版IDEA終於釋出了!閒言少敘, 介紹下新特性吧
主題
自定義UI
通過書寫配置檔案的方式自定義UI
High contrast
高對比度主題套餐, 硬核的朋友可嘗試一下
Java
Switch
- 在Java12的新特性中, switch表示式可以被增強為類似箭頭函式的形式;
- 可以合併同樣處理邏輯的switch選項.
變數提取
- 變數提取得到了增強, 現在可以將相同語義的程式碼進行提取
- 根據上下文的不同, IDE會將if表示式轉換為三元表示式.
三元表示式中更精確的警告
- 在之前的IDEA中, 其對非空限定的三元表示式的檢測為"高亮整個表示式", 現在可以精確高亮違法約定的那部分了;
表示式中的數學檢測
註解
- @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視窗
依賴檢視增強
- 顯示依賴衝突
- 顯示無邊界檢視
- 顯示相鄰節點
- 顯示依賴路徑
Version Control
修正和壓並
Cherry-pick
cherry-pick可以從VCS日誌中選擇並應用
傳入和傳出
檢視傳入和傳出有效性
需要在Settings->Version Control->Git中修改
還原已刪除的檔案
批量選擇
比較不同時可以通過全選框批量選擇
"我的同事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等優秀的軟體, 我們才得以在工作學習過程中能夠持續性獲得便利性的良好體驗, 它們的誕生也一定程度上促進了當今社會的發展.
向那些孜孜不倦為行業提供優秀工具的人們致敬 !