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

前言

2018.11.28 IntelliJ IDEA 2018.3 正式版發佈。對於一個忠實愛好者,火燒眉毛的我下載了最新版原本體驗下。並且 IDEA 今年的第三次重大更新提供了不容錯過的顯著功能!你能夠訪問詳細概述的新內容 What's New,或直接訪問網站並當即下載 IntelliJ IDEA的全新版本html

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

安裝完成以後,啓動IntelliJ IDEA 2018.3,期待的等待加載過程,首先能夠看到,加載界面已經發生變化了,IntelliJ IDEA 2018.2的時候是大紅色的,如今改爲了以下的背景:git

加載完成以後,仍是一如既往的先讓你設置操做習慣,固然你也能夠默認設置而後直接跳過,以後進入功能界面,發現操做界面好像沒有什麼大的變化github

對於以下的彈框我仍是保持讓它每次啓動自動彈出,由於它能夠提示我一些快捷鍵的使用,畢竟快捷鍵那麼多,每次能瞭解多一點能更高效率的開發。正則表達式

既然操做界面上看不出什麼大的改變,那說明新的功能升級並不是是在工具的界面上而是一些功能使用上,咱們將根據官方博客以及本身的理解來爲你們解讀一下此次更新有哪些全新的功能。spring

針對 Java

IntelliJ IDEA 2018.3最新支持 Java 12,雖然Java 12還沒有發佈,並且咱們市場上如今廣泛的仍是在使用JDK 8,可是咱們能夠先提早了解一點。數據庫

檢測更多重複項

即便在更復雜的狀況下,IntelliJ IDEA如今也能夠快速發現重複,例如變量名稱不一樣。IDEA 將在差別查看器中顯示重複項,所以您能夠將它們彼此並排比較。api

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. [微信公衆號] 閃電俠的博客

相關文章
相關標籤/搜索