IntelliJ IDEA 2018.3 重大升級,哪些功能打動了你?


前言

2018.11.28 IntelliJ IDEA 2018.3 正式版發布。對於一個忠實愛好者,迫不及待的我下載了最新版本來體驗下。而且 IDEA 今年的第三次重大更新提供了不容錯過的顯著功能!你可以訪問詳細概述的新內容 What's New,或直接訪問網站並立即下載 IntelliJ IDEA的全新版本

具體的安裝步驟就不在贅述了,可以參考之前的 系列教程 | IntelliJ IDEA(一) :安裝與破解

安裝完成之后,啟動IntelliJ IDEA 2018.3,期待的等待加載過程,首先可以看到,加載界面已經發生變化了,IntelliJ IDEA 2018.2的時候是大紅色的,現在改成了如下的背景:

加載完成之后,還是一如既往的先讓你設置操作習慣,當然你也可以默認設置然后直接跳過,之后進入功能界面,發現操作界面好像沒有什么大的變化

對於如下的彈框我還是保持讓它每次啟動自動彈出,因為它可以提示我一些快捷鍵的使用,畢竟快捷鍵那么多,每次能了解多一點能更高效率的開發。

既然操作界面上看不出什么大的改變,那說明新的功能升級並非是在工具的界面上而是一些功能使用上,我們將根據官方博客以及自己的理解來為大家解讀一下這次更新有哪些全新的功能。

針對 Java

IntelliJ IDEA 2018.3最新支持 Java 12,雖然Java 12尚未發布,而且我們市場上現在普遍的還是在使用JDK 8,但是我們可以先提前了解一點。

檢測更多重復項

即使在更復雜的情況下,IntelliJ IDEA現在也可以快速發現重復,例如變量名稱不同。IDEA 將在差異查看器中顯示重復項,因此您可以將它們彼此並排比較。

Java Stream API的改進

IDEA 檢測在后續最小 Call 之前進行不必要的已排序 Call 的情況。還提供了用於刪除冗余排序 Call 的快速修復程序。

JavaRedundantMin

數據流增強功能

我們已經創建了一個新的基於數據流的檢查,稱為 Condition is covered by further condition。當第一個條件被第二個條件覆蓋時,它會檢測到第一個條件是不必要的情況。IDEA 提供了一個快速修復程序來消除這些冗余條件。

JavaSimplifingCondition

禁止檢查的冗余使用

IntelliJ IDEA現在可以檢測到@SuppressWarning注釋、// noinspection行注釋或/** noinspection */ JavaDoc注釋的冗余用法。當被抑制的檢查不再處理相關方法體、類或語句中的任何警告時,IDEA 不僅會給您一個警告,而且還會提供一個快速修復程序來刪除這些不必要的注釋和注釋。

JavaRedundantSuppression

編輯器改進

編輯器也是我們開發中常用的一些功能,新版本中 IDEA 又為我們推出了一些實用又便捷的操作。

多行TODO評論

IntelliJ IDEA 2018.3現在支持多行 TODO 注釋,現在第一個和所有后續的 TODO 注釋行在編輯器中突出顯示並列在TODO工具窗口中。只需從多行 TODO 注釋的第二行開始添加縮進,IDEA 就會將其與普通注釋區分開來。

EditorMultipleTODOComments

老版本中,是不支持多行 TODO 注釋的顯示的,而在新版本中,如果 todo 注釋有多行,你只需要在下面幾行前面再添加一個空格即可。

禁用對特殊文件和文件夾的代碼格式化

我們已經可以從格式化、導入優化和代碼重排中鎖定某些文件——實際上是從任何涉及格式化的操作中鎖定,無論是顯式的還是隱式的。只需創建一個范圍,並將任何不能格式化的文件添加到其中!

EditorDisableFormating

新的縮進狀態欄

IntelliJ IDEA在一個新的縮進狀態欄中顯示當前文件中的縮進大小。如果文件的縮進與項目的當前設置不匹配,將在縮進視圖中添加星號。現在可以選擇控制狀態欄中當前縮進的操作。

EditorIndent

EditorConfig支持的改進

IDE現在為EditorConfig文件提供語法突出顯示和代碼完成。您還可以使用新的縮進狀態欄彈出窗口輕松導航到正在使用的EditorConfig文件。

EditorConfig

版本控制

IDEA 中的版本控制一直是我比較熱愛的一個功能,對於代碼分支管理,代碼拉取提交都比較友好,特別是 Merge 沖突的時候,本地代碼和遠程分支代碼的沖突 Diff Code 分界面展示,清晰一目了然,減少了合並代碼的痛苦。在新版本中 IDEA 又對版本控制做了哪些優化呢?

GitHub拉請求

IntelliJ IDEA最新支持GitHub Pull請求。從全新的GitHub pull requests工具窗口預覽GitHub儲存庫中的所有拉請求。使用diff預覽更改,或者通過上下文菜單從Pull請求創建一個本地分支,然后將其合並為常規分支。

“History up to Here” 可以展示完整的歷史

以前,History up to Here 只顯示所選提交之前文件的歷史記錄,但是現在它可以通過切換到工具欄上顯示所有分支來顯示文件之后發生的事情。如果文件后來被刪除了,這可能特別有用,因為要查明這種情況並非易事。

VCSHistoryUpToHere

VCS日志中的高級導航

您現在可以在VCS日志中從提交散列導航到VCS日志選項卡中的提交之后,或者在使用Go to hash/branch/tag操作之后,使用前進和后退導航操作。使用左右箭頭鍵導航到子或父提交。

忽略空格

用 IDEA合並代碼時,發現有時候只是兩個開發者提交的代碼是因為格式化,導致一些空格的差異,我們可能也需要一個個檢查下。

現在,在新版本中,IDEA 可以在合並時忽略空白更改。在“ 合並修訂版本”對話框中,有一個新的“ 忽略” 下拉菜單,其中包含用於在合並時隱藏或修剪空白更改的選項。

將文件從一個Git分支復制到另一個分支

IntelliJ IDEA 2018.3允許您通過方便的新的Get from Branch操作輕松地將文件從一個Git分支復制到另一個Git分支,該操作可從Compare branches對話框的Files選項卡中獲得。

提交對話框中的分支名稱

IDE將在“ 提交”對話框中顯示您要提交文件的分支名稱。目前 IDEA 已經為Git,Mercurial 和 SVN 實現了這個功能。

預覽文件歷史記錄選項卡中的差異

Diff Preview現在可在Version Control工具窗口的File History選項卡中找到。

搜索和替換

新搜索無處不在

IntelliJ IDEA 2018.3引入了一種更好的方法來瀏覽項目和IDEA。請熱烈歡迎重新設計Search Everywhere!實際上,它不僅僅是Search Everywhere,因為它包含了所有其他導航對話框:Search Everywhere, Find Action,Go to class,Go to file和Go to symbol。請注意,所有這些導航對話框仍可通過自己的鍵盤快捷方式訪問,如前所述。

IDEA 中的搜索可以分為以下幾類:

  • 類搜索,比如 Java,Groovy,Scala 等類文件
  • 文件搜索,類文件之外的所有文件
  • 符號搜索,包括接口名,類名,函數名,成員變量等
  • Action 搜索,找到你的操作
  • 字符串搜索及替換

在 IDEA 的世界里,搜索無處不在,你幾乎可以瞬間找到你想要找到的任何一行代碼甚至任何一個字。新版中,IDEA 更是將類、文件、符號、Action 搜索與雙 Shift 鍵調出來的 SearchEverywhere 無縫地結合在一起。

在“Find in Path”中搜索多行片段

現在,可以在路徑中的查找/路徑替換對話框中執行多行片段的搜索/替換 。您不再需要使用正則表達式來執行多行搜索。

新結構搜索和替換對話框

IntelliJ IDEA 2018.3提供了一個更新的、流線型的結構化搜索和替換對話框。自動完成功能可在搜索字段的預定義模板中使用。您可以在搜索圖標下方的下拉菜單中查看搜索歷史記錄。范圍配置現在也更容易,更靈活。復雜的“ 編輯變量”表單已替換為過濾器面板,您可以在更新的對話框中找到該面板。

舉個栗子:如果我們想搜索所有的 try catch 語句塊,在調出結構化搜索框之后,可以輸入以下文本:

try {
  $TryStatement$;
} catch($ExceptionType$ $Exception$){
  $CatchStatement$;
}

然后,IDEA 就會把所有的 try catch 語句塊搜索出來,而新版更是強化了這個功能,下面我用兩張動圖演示一下這次更新的兩個功能

結構化搜索由於輸入的文本比較長,所以一般我們會自己預置一些模板,然后給模板命名,然后結構化搜索的時候呢,我們就可以直接基於這個模板名來搜索,新版更新的第一個功能就是,在文本輸入框里,按下智能補全鍵,可以迅速調出模板,按照最近的搜索歷史排序,然后再按下回車,文本就自動給你填充上了,你還可以點擊左上角的搜索 icon,也會展示你最近的搜索記錄,這些記錄是以文本的方式展示的。

上面的文本就是系統內置的結構化模板 try's,點擊完 Find 按鈕之后,所有的 try catch 都會展示出來,我們還可以進一步過濾,比如,我們想要找出 catch 到的 exception 的名字為 flash,給對應的模板變量加上一個 Text 類型的 filter 即可迅速定位。

插件首選項頁面

2018.3版本中更新了“首選項(設置)” 中的“ 插件”頁面,以便更輕松地管理,安裝,卸載和更新插件。現在,您不僅可以按名稱搜索插件,還可以按標簽搜索插件。它變得更好,因為您現在還可以通過下載,名稱,評級,功能或更新對結果進行排序。

調出插件配置之后,頁面分為三大部分:

  • Marketplace: 插件市場,你可以搜索到你想要的插件
  • Installed: 當前安裝的所有的插件,你還可以點擊左上角搜索小 icon,按類別查看當前已安裝的插件,其中的 custom 選項便是自己下載安裝的插件
  • Updates:當前安裝過的插件如果有更新,都會在這里顯示出來

最后一個是配置項,你可以自定義你的插件倉庫,你可以給配置插件下載的 http 代理(尤其是國外網絡訪問差的時候),你還可以從本地硬盤中安裝插件

運行一切

IntelliJ IDEA 2018.3帶有一種新的集中式方法,可通過新的Run Anything操作(雙擊 Ctrl 調出窗口)在IDEA 中運行命令。使用新操作啟動運行配置,可以運行包括 Maven 、Gradle 等其他終端命令。

在菜單欄中如下的圖標按鈕即可打開,亦可通過快捷鍵雙擊 Ctrl

另外,只需按Shift鍵即可將Run Anything對話框切換到Debug Anything模式。

全新的高對比度主題

IDEA 這次又推出了一款新主題 High constrast,但是我感覺不是特別好看 我還是喜歡原來的 Darcula,根據每個人的口味吧,自己選擇。主題預覽如下:

Spring & Spring Boot

IntelliJ IDEA 2018.3完全支持最近發布的Spring Boot 2.1。現在,當您使用Spring Initializr創建項目時,IDE將建議安裝或啟用適當的插件,以確保支持所有選定的技術。

JVM調試器

attach 到 java進程

IDEA 的 debug 功能無論是對於調試找錯還是閱讀源碼,都發揮了非常重要的作用,新版 IDEA 對 debug 功能進一步加強,現在不僅僅能 debug 當前的應用,而且能夠 attach 到任意的 Java 進程,attach 之后,你就可以看到該進程的線程狀態,並且使用強大的 Memory View 功能可以看到當前內存的狀態。

自動重啟偵聽遠程連接

現在,在調試遠程進程時,IDE可以自動重新啟動配置。只需 為遠程調試配置啟用新的自動重啟選項。

遠程JVM中的異步堆棧跟蹤

IntelliJ IDEA 2018.3現在支持遠程JVM中的異步堆棧跟蹤。要遠程開始使用代理:

  • 將/lib/rt/debugger-agent.jar復制到遠程計算機。
  • 將-javaagent:debugger-agent.jar添加到遠程JVM選項。

現在,您可以在“ 異步注釋配置”對話框中定義自己的異步注釋。

刪除所有斷點的操作

IntelliJ IDEA 2018.3提供了一些方便的新操作,可以刪除項目中的所有斷點或文件中的所有斷點。您可以在“首選項(設置)”中為這些快捷方式分配自己的快捷方式 鍵圖| 調試器操作。

JVM Profiler

在網上看到一篇文章說 IDEA 2018.3 支持 CPU 的火焰圖了,但是我看官網上沒有介紹,所以也不確定,但是如果真有這功能我感覺滿酷炫的。這里引用一下他的內容做個介紹。

IDEA 分析 Java 程序的性能分析了,主要包括如下幾個方面:

  • 火焰圖分析 CPU 性能消耗,你可以分析 Java 進程的所有線程的 CPU 消耗火焰圖,也可以只選擇一個線程來分析
  • 方法調用圖,可以找到在某個線程中,消耗 cpu 最多的方法
  • 方法列表,可以看到每個方法的調用次數,點進去還可以看到詳細的調用棧

下面用一章動圖來展示一下,具體的細節讀者可自行探索

有了這個神器之后,你不需要額外的 profiler 工具,就可以直接在 IDEA 里面完成應用程序的性能分析。預計不久的將來,Eclipse MAT 相關的功能可能也會移植到 IDEA 中,屆時,Java 應用程序性能分析,堆分析,gc 分析將統統可以在 IDEA 里面運行,真正的 All In One 時代即將到來!

結尾

當然本次的更新不止這些,篇幅有限,而且很多我目前也用不上,例如:關於Kubernetes的支持Helm資源文件,在Helm資源文件中導航,關於數據庫的SQL代碼完成的改進等等。

如果你感興趣的話可以前往 IDEA 的官網閱讀下他們更新的日志,或下載他們最新的版本體驗下。IDEA 現在發展的越來越好,用戶肯定也會越來越多,還沒有加入體驗的現在可以試着使用下。

參考:1. IDEA 的新功能 2. [微信公眾號] 閃電俠的博客


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM