IDEA 2024.1到底更新啥有用的?

0 關鍵亮點

全行代碼補全 Ultimate

全行代碼補全

全行代碼補全

IntelliJ IDEA Ultimate 2024.1 針對 Java 全行代碼補全。 這項功能由無縫集成到 IDE 中的高級深度學習模型提供支持。 它可以基於上下文分析預測和建議整行代碼,有助於提高編碼效率。 這些建議由針對不同語言和框架特別訓練的專屬語言模型驅動,模型完全在本地設備上運行,有助於確保數據安全,並且無需與外部服務器通信。 此功能包含在 IntelliJ IDEA Ultimate 許可證訂閱中。 在這篇博文中瞭解詳情。

對 Java 22 功能的支持

對 Java 22 功能的支持

對 Java 22 功能的支持

提供對 2024 年 3 月發佈的 JDK 22 中的功能集的支持, 支持覆蓋未命名變量與模式的最終迭代、字符串模板與隱式聲明的類的第二個預覽版,以及實例 main 方法。 還引入了對 super(...) 之前預覽狀態下的 new 語句的支持。 在這篇博文中瞭解詳情。

新終端 Beta

新終端

新終端

重做的終端,具有可視化和功能增強,有助於簡化命令行任務。 此更新爲既有工具帶來了全新的外觀,命令被分爲不同的塊,擴展的功能集包括塊間絲滑導航、命令補全和命令歷史記錄的輕鬆訪問等。

這篇博文中瞭解詳情。

編輯器中的粘性行

編輯器中的粘性行

編輯器中的粘性行

在編輯器中引入了粘性行,旨在簡化大文件的處理和新代碼庫的探索。 滾動時,此功能會將類或方法的開頭等關鍵結構元素固定到編輯器頂部。 這將使作用域始終保持在視野中,您可以點擊固定的行快速瀏覽代碼。

1 用戶體驗

索引編制期間 IDE 功能對 Java 和 Kotlin 可用

1.1 索引編制期間 IDE 功能對 Java 可用

現在,代碼高亮顯示和補全等基本 IDE 功能可在項目索引編制期間用於 Java,這應該會增強您的啓動體驗。 此外,您可以在項目仍在加載時使用 Go to class(轉到類)和 Go to symbol(轉到符號)瀏覽代碼。

更新的 New Project(新建項目)嚮導

1.2 更新的 New Project(新建項目)嚮導

爲了減輕您在配置新項目時的認知負擔,我們微調了 New Project(新建項目)嚮導的佈局。 語言列表現在位於左上角,使最流行的選項更加醒目。

用於縮小整個 IDE 的選項

1.3 用於縮小整個 IDE 的選項

您現在可以將 IDE 縮小到 90%、80% 或 70%,從而可以靈活地調整 IDE 元素的大小。

2 Java

2.1 字符串模板中的語言注入

字符串模板中的語言注入

字符串模板中的語言注入

IntelliJ IDEA 2024.1 引入了將語言注入字符串模板的功能。 您可以使用註解,註解會自動選擇所需語言,也可以使用 Inject language or reference(注入語言或引用)意圖操作 (⌥Enter) 從列表中手動選擇語言。 如果您使用後一種方式,IDE 將建議您插入語言註解。 執行注入後,您可以再次調用意圖操作列表,並選擇在獨立編輯器窗格中打開和編輯注入的片段。

2.2 改進的日誌工作流

改進的日誌工作流

改進的日誌工作流

改進的日誌工作流

改進的日誌工作流

改進的日誌工作流

由於日誌記錄是日常開發的重要環節。 可從控制檯中的日誌消息輕鬆導航到生成它們的代碼。 此外,IDE 會在有需要的位置建議添加記錄器,並簡化插入記錄器語句的操作,即使記錄器實例不在作用域內。

這篇博文瞭解詳情。

2.3 新檢查與快速修復

新檢查與快速修復

新檢查與快速修復

新檢查與快速修復

新檢查與快速修復

新檢查與快速修復

新檢查與快速修復

爲 Java 實現新的檢查和快速修復,幫助您保持代碼整潔無誤。 爲清楚起見,IDE 現在會檢測可被替換爲對 Long.hashCode()Double.hashCode() 方法的調用的按位操作。 此外,新的快速修復可以根據代碼庫的要求簡化隱式和顯式類聲明之間的切換。 另一項新檢查爲匹配代碼段建議使用現有 static 方法,使代碼可以輕鬆重用,無需引入額外 API。 此外,IDE 現在可以檢測並報告永遠不會執行的無法訪問的代碼。

通過多版本 JAR 增強的用戶體驗

通過多版本 JAR 增強的用戶體驗

通過多版本 JAR 增強的用戶體驗

2.4 通過多版本 JAR 增強的用戶體驗

IntelliJ IDEA 2024.1 通過多版本 JAR 庫提供增強的用戶體驗。 使用具有不同版本的類時,Go to declaration(轉到聲明)功能現在會根據當前模塊的語言級別從 JAR 中選擇正確的版本。 此外,Go to class(轉到類)功能還提供有關類版本的額外信息。 調試期間使用 Step Into(步入)時,IDE 會將您帶到與 JDK 版本而不是模塊語言級別對應的類。

重做的 Conflicts Detected(檢測到衝突)對話框

2.5 重做的 Conflicts Detected(檢測到衝突)對話框

重做了 Conflicts Detected(檢測到衝突)對話框以提高可讀性。 現在,對話框中的代碼反映了編輯器中的內容,使您可以更清楚地瞭解衝突,並且 IDE 會自動保存窗口大小調整以供將來使用。 另外,我們還更新了按鈕及其行爲以簡化重構工作流,對話框現在可以完全通過鍵盤訪問,您可以使用快捷鍵和箭頭鍵進行無縫交互。

Rename(重命名)重構嵌入提示

2.6 Rename(重命名)重構嵌入提示

爲了使重命名流程更簡單、更直觀,我們實現了一個新的嵌入提示,在更改的代碼元素上顯示。 要將代碼庫中的所有引用更新爲新版本,點擊此提示並確認更改即可。

3 版本控制系統

編輯器內代碼審查

編輯器內代碼審查

藉助實現的新審查模式,IntelliJ IDEA 2024.1 爲 GitHub 和 GitLab 用戶引入了增強的代碼審查體驗。 此功能與編輯器集成,促進作者與審查者直接互動。 在檢查拉取/合併請求分支時,審查模式會自動激活,並在裝訂區域中顯示粉色標記,表明代碼更改可供審查。 點擊這些標記會彈出一個顯示原始代碼的彈出窗口,這樣您就能快速識別哪些代碼已被更改。 裝訂區域圖標可以幫助您迅速發起新討論,以及查看和隱藏現有討論。 這些圖標還可以讓用戶方便地訪問評論,從而輕鬆查看、回覆和作出反應。 在我們的博文中詳細瞭解此更改。

在 Log(日誌)標籤頁中顯示審查分支更改的選項

Log(日誌)標籤頁中顯示審查分支更改的選項

IntelliJ IDEA 2024.1 通過提供分支相關更改的集中視圖簡化了代碼審查工作流。 對於 GitHub、GitLab 和 Space,現在可以在 Git 工具窗口中的單獨 Log(日誌)標籤頁中查看具體分支中的更改。 爲此,點擊 Pull Requests(拉取請求)工具窗口中的分支名稱,然後從菜單中選擇 Show in Git Log(在 Git 日誌中顯示)。

對代碼審查評論迴應的支持

對代碼審查評論迴應的支持

IntelliJ IDEA 2024.1 開始支持對 GitHub 拉取請求和 GitLab 合併請求的審查評論發表迴應,已有一組表情符號可供選擇。

Git 工具窗口中 CI 檢查的狀態

Git 工具窗口中 CI 檢查的狀態

我們在 Git 工具窗口的 Log(日誌)標籤頁中引入了一個新列,使您可以輕鬆審查 CI 系統執行的 GitHub 提交檢查的結果。

從推送通知創建拉取/合併請求

從推送通知創建拉取/合併請求

成功將更改推送到版本控制系統後,IDE 現在將發佈一條通知,提醒您已成功推送並建議創建拉取/合併請求的操作。

待處理 GitHub 更新的可視化指示器

待處理 GitHub 更新的可視化指示器

我們引入了可視化指示器來提示代碼審查工作流中待處理的更新。 有需要您注意的更改時,工具窗口的圖標上會出現一個點。 未查看的拉取請求也將用點標記,確保您不會錯過代碼審查流程中的更新。

防止大文件提交到倉庫

防止大文件提交到倉庫

爲了幫助您避免由於文件過大而導致版本控制拒絕,IDE 現在包含預提交檢查,防止您提交此類文件並通知您該限制。

Allow unrelated histories(允許不相關的歷史記錄)合併選項

Allow unrelated histories(允許不相關的歷史記錄)合併選項

Merge into(合併到)對話框的下拉菜單中新增了 Allow unrelated histories(允許不相關的歷史記錄)選項。 選擇後,該選項允許合併兩個分支,即使它們沒有共同的歷史記錄。

Git 工具窗口中 History(歷史記錄)標籤頁的分支篩選器

Git 工具窗口中 History(歷史記錄)標籤頁的分支篩選器

Git 工具窗口中,Show all branches(顯示所有分支)按鈕已被替換爲分支篩選器,允許您審查對指定分支內的文件所做的更改。 我們還調整了工具欄的方向,將其水平放置以提高實用性。

Commit(提交)工具窗口中的 Stash(隱藏)標籤頁

Commit(提交)工具窗口中的 Stash(隱藏)標籤頁

對於依賴隱藏來存儲臨時未提交更改的用戶,我們在 Commit(提交)工具窗口中引入了一個專屬標籤頁以便訪問。 如果您同時使用隱藏和擱置,則可以通過 Settings/Preferences | Version Control | Git(設置/偏好設置 | 版本控制 | Git)中的相應複選框啓用組合的 Stashes and Shelves(隱藏和擱置)標籤頁。

從比較中排除文件夾和文件的選項

從比較中排除文件夾和文件的選項

在差異查看器中,您可以指定在比較中要忽略的文件夾和文件,從而僅關注有意義的更改。 右鍵點擊您不想在比較結果中看到的文件或文件夾,然後從上下文菜單中選擇 Exclude from results(從結果中排除)。

Branches(分支)彈出窗口中改進的搜索

Branches(分支)彈出窗口中改進的搜索

Branches(分支)彈出窗口中,您可以按操作和倉庫篩選搜索結果,以在版本控制系統中更快、更精確地導航。

Git 標籤頁已從 Search Everywhere(隨處搜索)對話框中移除

Git 標籤頁已從 Search Everywhere(隨處搜索)對話框中移除

分析使用統計數據後,我們默認從 Search Everywhere 對話框中移除了 Git 標籤頁。 如果要將其恢復,可以使用 Settings / Preferences | Advanced Settings | Version Control. Git(設置/偏好設置 | 高級設置 | 版本控制. Git)中的 Show Git tab in Search Everywhere (在“隨處搜索”中顯示 Git 標籤頁)複選框。

4 構建工具

針對 Maven 項目的打開速度提升

針對 Maven 項目的打開速度提升

針對 Maven 項目的打開速度提升

針對 Maven 項目的打開速度提升

針對 Maven 項目的打開速度提升

IntelliJ IDEA 現在通過解析 pom.xml 文件構建項目模型。 這使得有效項目結構可以在幾秒鐘內獲得,具有所有依賴項的完整項目模型則同時在後臺構建,使您無需等待完全同步即可開始處理項目。

對 Maven Shade 插件的重命名工作流的支持

對 Maven Shade 插件的重命名工作流的支持

對 Maven Shade 插件的重命名工作流的支持

對 Maven Shade 插件的重命名工作流的支持

對 Maven Shade 插件的重命名工作流的支持

在 IntelliJ IDEA 2024.1 版本中,我們添加了備受期待的對 Maven Shade 插件重命名功能的支持。 現在,IntelliJ IDEA 可以識別重命名工作流,在使用着色 JAR 及其依賴項時提供準確的代碼高亮顯示和導航。

從快速文檔彈出窗口直接訪問源文件

從快速文檔彈出窗口直接訪問源文件

快速文檔彈出窗口現在提供了一種下載源代碼的簡單方式。 現在,查看庫或依賴項的文檔並需要訪問其源代碼時,按 F1 即可。 更新後的彈出窗口將提供一個直接鏈接,您可以使用它來下載所需的源文件,簡化了工作流。

Maven 工具窗口中的 Maven 倉庫

Maven 工具窗口中的 Maven 倉庫

Maven 倉庫列表及其索引編制狀態現在顯示在 Maven 工具窗口中,而不是以前 Maven 設置中的位置。

Gradle 版本支持更新

從這個版本開始,IntelliJ IDEA 不再支持使用低於 Gradle 版本 4.5 的項目,並且 IDE 不會對帶有不支持的 Gradle 版本的項目執行 Gradle 同步。

5 運行/調試

多語句的內聯斷點

多語句的內聯斷點

IntelliJ IDEA 2024.1 爲在包含 lambda 函數或 return 語句的行中的斷點設置提供了更方便的工作流。 點擊裝訂區域設置斷點後,IDE 會自動顯示可在其中設置額外斷點的內聯標記。 每個斷點都可以獨立配置,釋放高級調試功能。

調用堆棧中的摺疊庫調用

調用堆棧中的摺疊庫調用

調用堆棧中的摺疊庫調用

調用堆棧中的摺疊庫調用

PreviousNext

調用堆棧中的摺疊庫調用

現在,庫調用在 Debug(調試)工具窗口的調用堆棧中默認摺疊,幫助您在瀏覽代碼時保持專注。 但是,如果您需要驗證庫調用序列,可以展開組並相應地探索幀。 要顯示列表,請使用工具欄中的 Filter(篩選器)圖標或調用上下文菜單並禁用 Hide Frames from Libraries(在庫中隱藏幀)選項。

條件語句覆蓋

條件語句覆蓋

版本 2024.1 使 IntelliJ IDEA 距離實現全面測試覆蓋又近了一步。 這項更新的重點是確定測試未完全覆蓋代碼中的哪些條件語句。 現在,IntelliJ IDEA 既顯示哪一行具有未覆蓋的條件,還會指定未覆蓋的條件分支或變量值。 這項功能默認啓用,您可以在 Settings/Preferences | Build, Execution, Deployment | Coverage(設置/偏好設置 | 構建、執行、部署 | 覆蓋率)進行控制。

代碼覆蓋率設置移至主 IDE 設置

代碼覆蓋率設置移至主 IDE 設置

代碼覆蓋率設置已從 Run Configuration(運行配置)彈出窗口移至 Settings/Preferences | Build, Execution, Deployment | Coverage(設置/偏好設置 | 構建、執行、部署 | 覆蓋率)。 經過這一改動,不必爲每次測試運行單獨更新配置即可選擇覆蓋率運行程序或啓用高級功能,例如跟蹤哪些測試覆蓋特定代碼行。

JaCoCo 測試覆蓋率報告的簡化導入

JaCoCo 測試覆蓋率報告的簡化導入

JaCoCo 測試覆蓋率報告的簡化導入

JaCoCo 測試覆蓋率報告的簡化導入

PreviousNext

JaCoCo 測試覆蓋率報告的簡化導入

現在,可以更輕鬆地導入、瀏覽和分析 JaCoCo 運行程序在 CI/CD 管道中收集的代碼覆蓋率數據。 如果 Coverage(覆蓋率)工具窗口中未顯示報告,現在將顯示用於導入 JaCoCo 報告的直接鏈接。 我們還更新了窗口的工具欄,添加了一個導入圖標,這個圖標允許您作爲 .exec 文件檢索 JaCoCo 報告。

6 框架和技術

針對 Spring 的改進 Bean 補全和自動裝配

針對 Spring 的改進 Bean 補全和自動裝配 Ultimate

IntelliJ IDEA Ultimate 現在爲應用程序上下文中的所有 Bean 提供自動補全,並自動裝配 Bean。 如果 Bean 通過構造函數自動裝配依賴項,則相關字段也會通過構造函數自動裝配。 同樣,如果依賴項是通過字段或 Lombok 的 @RequiredArgsConstructor 註解注入,則新 Bean 會自動通過字段裝配。

增強的 Spring 圖表

增強的 Spring 圖表

增強的 Spring 圖表

增強的 Spring 圖表

PreviousNext

增強的 Spring 圖表 Ultimate

我們使 Spring 模型圖表更易訪問。 您可以使用 Bean 行標記或對 Spring 類使用意圖操作 (⌥⏎) 進行調用。 我們爲 Spring 圖表引入了新的圖標,增強了 Spring 原型(如組件、控制器、倉庫和配置 Bean)的可視化。 此外,您現在可以方便地切換庫中 Bean 的可見性(默認隱藏)。

HTTP 客戶端改進

HTTP 客戶端改進

HTTP 客戶端改進

HTTP 客戶端改進

HTTP 客戶端改進

HTTP 客戶端改進

PreviousNext

HTTP 客戶端改進 Ultimate

版本 2024.1 中的 HTTP 客戶端提供了更多身份驗證選項,包括 PKCE 授權代碼和設備授予流。 除了在 PKCE 請求期間自動處理用於令牌檢索的 code_challenge 生成和 code_verifier 傳遞之外,它還支持令牌和身份驗證請求的額外參數。 HTTP 客戶端升級爲 Netty 的底層網絡庫實現了 SSL、代理和 HTTP/2 支持,有助於促進 HTTP/2 的實現。 此外,HTTP 客戶端的工具欄已經過重做,與新 UI 的風格保持一致,提供更加美觀協調的外觀。

Search Everywhere(隨處搜索)中的 Endpoints(端點)標籤頁

Search Everywhere(隨處搜索)中的 Endpoints(端點)標籤頁 Ultimate

我們引入了在 URL 搜索結果相關的項目中出現的 Endpoints(端點)標籤頁,增強了 Search Everywhere(隨處搜索)對話框。 目前,檢測到項目中存在 Spring、Micronaut、Ktor 或 Quarkus 技術時,IDE 會自動包含此標籤頁。

針對 HTTP 頁眉的代碼補全

針對 HTTP 頁眉的代碼補全 Ultimate

現在,HTTP 頁眉可以在所有常見場景中輕鬆補全 ,例如使用 Spring WebClient 和 REST Assured 測試。 遇到預期值時,補全彈出窗口會自動出現。

優化的 JSON 架構處理

優化的 JSON 架構處理 Ultimate

我們優化了 JSON 架構驗證和補全背後的代碼。 因此,IDE 現在可以更快處理這些任務並減少內存消耗。 在使用 Azure Pipelines 的現實文件中,架構檢查速度現在提高了 10 倍。

Quarkus 更新

Quarkus 更新

Quarkus 更新

Quarkus 更新

PreviousNext

Quarkus 更新 Ultimate

我們爲 Quarkus 運行配置引入了一個新的設置編輯器。 現在,Run/Debug Configuration(運行/調試配置)對話框爲 Maven 和 Gradle 項目提供了改進的 UI,使用戶可以輕鬆訪問 Run profile(運行配置文件)和 Environment variables(環境變量)等常用設置。 您可以通過新增到 Run(運行)工具窗口工具欄的圖標方便地訪問 Quarkus Dev UI。

對 OpenRewrite 的支持

對 OpenRewrite 的支持

對 OpenRewrite 的支持

對 OpenRewrite 的支持

對 OpenRewrite 的支持

PreviousNext

對 OpenRewrite 的支持 Ultimate

IntelliJ IDEA Ultimate 2024.1 集成了 OpenRewrite,這將擴展 IDE 的現有重構功能,併爲您提供一個用於提高代碼質量、一致性和可維護性的工具包。 藉助 OpenRewrite 的資源,您可以現代化遺留代碼、優化性能並處理複雜的遷移任務,例如升級到新的 Spring Boot 版本。

WireMock 服務器支持

WireMock 服務器支持

WireMock 服務器支持

WireMock 服務器支持

WireMock 服務器支持

PreviousNext

WireMock 服務器支持 Ultimate

我們通過插件實現了 WireMock 支持,您可以從 IDE 內部安裝或從 JetBrains Marketplace 獲取。 此集成包括適用於 JSON 配置的架構補全、從 Endpoints(端點)工具窗口生成 WireMock 存根文件的功能,以及允許直接從編輯器啓動服務器的內置運行配置。 新功能可讓您快速創建測試數據服務器或存根,從而簡化 Web UI 和微服務的開發。

增強的 Terraform 支持

增強的 Terraform 支持

增強的 Terraform 支持

增強的 Terraform 支持

增強的 Terraform 支持

增強的 Terraform 支持

增強的 Terraform 支持

增強的 Terraform 支持 Ultimate

IntelliJ IDEA Ultimate 2024.1 帶來了改進的 Terraform 支持,有助於簡化創建、管理和擴展基礎架構的流程。 現在,IDE 通過明確建議運行 terraform init 來簡化初始化,併爲超過 3,900 個第三方 Terraform 提供程序提供了擴展的代碼補全功能。 此外,IDE 還引入了對 Terraform 模板語言 (tftpl) 的支持,實現動態模板,可以與您的首選編程語言無縫集成。 您可以在我們的博文中找到更多詳細信息。

7 數據庫工具

數據編輯器中的本地篩選

數據編輯器中的本地篩選 Ultimate

此版本在數據編輯器中引入了期待已久的本地篩選功能。 現在,您可以根據列值快速篩選行,而無需向數據庫發送查詢。 這種本地方式隻影響當前頁面,但如果需要擴大作用域,可以調整頁面大小或提取所有數據。 要禁用所有本地篩選器,請取消選擇指定的 Enable Local Filter(啓用本地篩選器)圖標。

會話簡化

會話簡化 Ultimate

IntelliJ IDEA Ultimate 2024.1 消除了手動選擇會話的需求,從而簡化查詢執行。 要附加文件,您只需選擇數據源,而不是會話。 此外,啓動函數不再需要選擇會話,您現在可以選擇直接從控制檯或文件運行函數。 這些更改旨在最大限度地縮短工具的學習曲線,減少不必要的步驟並增強整體實用性。

關注我,緊跟本系列專欄文章,咱們下篇再續!

作者簡介:魔都技術專家,多家大廠後端一線研發經驗,在分佈式系統、和大數據系統等方面有多年的研究和實踐經驗,擁有從零到一的大數據平臺和基礎架構研發經驗,對分佈式存儲、數據平臺架構、數據倉庫等領域都有豐富實踐經驗。

各大技術社區頭部專家博主。具有豐富的引領團隊經驗,深厚業務架構和解決方案的積累。

負責:

  • 中央/分銷預訂系統性能優化
  • 活動&優惠券等營銷中臺建設
  • 交易平臺及數據中臺等架構和開發設計
  • 車聯網核心平臺-物聯網連接平臺、大數據平臺架構設計及優化

目前主攻降低軟件複雜性設計、構建高可用系統方向。

參考:

本文由博客一文多發平臺 OpenWrite 發佈!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章