IntelliJ IDEA 重大更新:支持CPU火焰圖,新增酷炫主題!


IntelliJ IDEA 重大更新:支持CPU火焰圖,新增酷炫主題!


JetBrain 是一家偉大的公司,一直致力於為開發者開發世界上最好用的集成開發環境

就在上週,JetBrain 公司發佈了 Java 集成開發環境 IntelliJ IDEA 最新版本 2018.3Beta,本篇文章,我將根據官方博客以及自己的理解來為大家解讀一下這次更新有哪些重磅的功能。

1. 重構類、文件、符號,Action 搜索

IntelliJ IDEA(以下簡稱 IDEA) 中的搜索可以分為以下幾類

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

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

在老的版本中,類、文件、符號、Action 搜索是獨立的快捷鍵,在新版中,任意一種類型的搜索行為被觸發,將彈出來以下窗口

IntelliJ IDEA 重大更新:支持CPU火焰圖,新增酷炫主題!


從以上演示可以看到,我們調出搜索類的窗口,該窗口將首先會展示基於類名搜索的結果,如果你想複用當前輸入的字符基於其他的語義(比如文件或者符號)進行搜索,只需要按 Tab 鍵,結果瞬間就出來了。

2. 重新設計的結構搜索/替換對話框

其實,IDEA 裡面除了以上五種類型的搜索,還有一種非常強大的搜索叫做 結構化搜索,你可以基於一定的代碼結構搜到你所需要的結果。

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

try

{
$TryStatement$
;
}

catch
(
$ExceptionType$ $Exception$
)

{
$CatchStatement$
;
}

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

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

IntelliJ IDEA 重大更新:支持CPU火焰圖,新增酷炫主題!


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

IntelliJ IDEA 重大更新:支持CPU火焰圖,新增酷炫主題!


更多技巧在關注"閃電俠的博客"公眾號之後,回覆 idea 即可獲取。

3. 運行一切

你可以雙擊 ctrl 鍵,調出 RunAnything 窗口,你可以輸入點什麼來運行任意可以運行的東西,比如起 tomcat 容器,單元測試,甚至可以運行終端指令,gradle、maven 構建命令

IntelliJ IDEA 重大更新:支持CPU火焰圖,新增酷炫主題!


另外,你還可以按住 shift 鍵,那麼所有支持 debug 的運行將秒變 debug 模式

4. 重構插件中心

IDEA 中很多強大的功能都是通過插件來實現的,隨便舉個栗子,裝個語言插件,IDEA 搖身一變為 nodejs IDE、php IDE、python IDE、scala IDE、go IDE,我自己就安裝了 30+ 非常好用的插件。

而在新版的 IDEA 中,JetBrain 更是對插件中心進行全面改版,如下圖

IntelliJ IDEA 重大更新:支持CPU火焰圖,新增酷炫主題!


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

  1. Marketplace: 插件市場,你可以搜索到你想要的插件
  2. Installed: 當前安裝的所有的插件,你還可以點擊左上角搜索小 icon,按類別查看當前已安裝的插件,其中的 custom 選項便是自己下載安裝的插件
  3. Updates:當前安裝過的插件如果有更新,都會在這裡顯示出來
  4. 最後一個是配置項,你可以自定義你的插件倉庫,你可以給配置插件下載的 http 代理(尤其是國外網絡訪問差的時候),你還可以從本地硬盤中安裝插件

5. 不斷改進的版本控制系統

我個人對於版本控制,是不太喜歡用圖形界面的,但是 IDEA 對於版本控制的設計真是太好用了,只能淪陷了,嘿嘿~

5.1 GitHub Pull Requests

新版中,加入了對 GitHub Pull Requests 的支持,現在你可以直接在電腦上創建或者查看某個項目的 Pull Request 了

IntelliJ IDEA 重大更新:支持CPU火焰圖,新增酷炫主題!


你還可以基於某個 Pull Requests 直接創建一個分支,或者直接在 Github 上查看當前的 Pull Request,這個功能對於開源工作者來說是一件非常幸福的事。

5.2 Git 子模塊支持

此外,新本 IDEA 對於 Git 子模塊的支持也更加友好了。如果你的 Git 項目中包含 Git 子模塊,在 clone 代碼的時候,也會一併 clone 到本地,另外,項目中任何文件有變更,提交 commit,IDEA 也會智能匹配到外層模塊或者子模塊,一併提交 commit,進而同時 push 到多個倉庫。

5.3 Improved Annotate support

我們有時候會不經意地格式化自己或者別人寫過的代碼,這就導致了每次提交代碼的時候,即使只更新了一兩處代碼,最後 diff 出來也會顯得很亂,然而其中大部分亂的地方是因為空格導致的。

在新版 IDEA 中,我們在對比文件的時候,可以選擇忽略空格

IntelliJ IDEA 重大更新:支持CPU火焰圖,新增酷炫主題!


注意:這個選項默認是打開的

另外,在合併代碼的時候,你也可以選擇忽略空格

IntelliJ IDEA 重大更新:支持CPU火焰圖,新增酷炫主題!


這樣在解決衝突的時候,你也不會看到空格相關的改動,省下的很多寶貴的注意力。

IDEA 對於版本控制的支持實在是太強大了,更多版本控制神技在關注"閃電俠的博客"公眾號之後,回覆 idea 即可獲取。

6. 全新主題

IDEA 終於在這一版新增了一款默認主題,該主題為一款高對比度主題,應該會有很多人會喜歡吧

IntelliJ IDEA 重大更新:支持CPU火焰圖,新增酷炫主題!


預計在不久的將來,IDEA 會在主題這方面下功夫,畢竟筆者覺得 VS Code 的主題還是蠻好看的,IDEA 可以吸收過來。

7.1 多行 TODO 註釋

在 IDEA 中,只要你在註釋中添加了 todo 關鍵詞,在邊條欄中的 todo 選項卡中就可以看到當前所有待未完成的功能,如下圖

IntelliJ IDEA 重大更新:支持CPU火焰圖,新增酷炫主題!


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

IntelliJ IDEA 重大更新:支持CPU火焰圖,新增酷炫主題!


7.2 縮進狀態欄

IDEA 現在可以在狀態欄中顯示當前文件的縮進是幾個空格,你可以點擊這個狀態欄,控制當前文件的縮進風格。

IntelliJ IDEA 重大更新:支持CPU火焰圖,新增酷炫主題!


比如,你的項目縮進風格是4個空格,然後某個新人寫了個 tab 風格的源文件提交了,你可以直接點擊彈出菜單的 ConfigureIndentsForJava...,然後做一些修改即可

7.3 TAB 快速切換源文件

IntelliJ IDEA 重大更新:支持CPU火焰圖,新增酷炫主題!


你現在可以使用 Tab+數字,迅速切換到你想要的文件,這比鼠標點擊要快一些

7.4 多行字符串搜索

在新版 IDEA 中,不僅僅能夠搜索字符串,而且能夠搜索整個段落

IntelliJ IDEA 重大更新:支持CPU火焰圖,新增酷炫主題!


8. JVM 調試器

8.1 attach 到任意 Java 進程

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

IntelliJ IDEA 重大更新:支持CPU火焰圖,新增酷炫主題!


8.2 遠程調試支持異步棧追蹤

IDEA 支持遠程 debug 幾乎和本地 debug 一樣,只需要遠程端口開啟即可。

IntelliJ IDEA 重大更新:支持CPU火焰圖,新增酷炫主題!


IDEA 也支持異步線程的調試,斷點打在某一行,你不僅可以看到這行對應線程的調用棧,還能看到啟動對應線程的外部線程的調用棧。

IntelliJ IDEA 重大更新:支持CPU火焰圖,新增酷炫主題!


新版中,對遠程調試也加入了異步棧的支持,採用以下兩個步驟即可

  1. 拷貝 /lib/rt/debugger-agent.jar 到遠程機器
  2. 添加啟動參數 -javaagent:debugger-agent.jar 到遠程機器

如何使用 debug 功能來迅速找錯,如何通過 debug 閃電般地閱讀源碼,在關注"閃電俠的博客"公眾號之後,回覆 idea 即可獲取酷炫神技。

9. 運行配置

9.1 配置宏

我們在運行應用程序的時候,有的時候需要設定不同的啟動參數來查看不同的效果,在以前,這些參數都需要你手動敲進去,並且經常會忘記當前啟動參數的測試目的,非常麻煩。

現在,你可以提前將參數通過宏的方式輸入,調試的時候,通過調整宏,你不用反覆修改啟動參數文本,通過宏文本還可以一目瞭然看到當前的啟動參數的測試目的是什麼。

IntelliJ IDEA 重大更新:支持CPU火焰圖,新增酷炫主題!


9.2 使用文本作為控制檯輸入

有的時候需要在控制檯輸入一些文本,然後再運行程序,這個對於調試來說非常不便,新版 IDEA 支持指定一個文本文件作為控制檯輸入,這樣,你就可以預先定義好控制檯輸入,重複利用,提高效率

IntelliJ IDEA 重大更新:支持CPU火焰圖,新增酷炫主題!


10. JVM Profiler

最後一個重磅功能,應該可以說是本次更新最大的亮點,IDEA 現在可以分析 Java 程序的性能分析了,包括如下幾個方面

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

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

IntelliJ IDEA 重大更新:支持CPU火焰圖,新增酷炫主題!


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

11. More……

除此之外,本次更新還有大量的小功能的更新,在你使用新版 IDEA 的時候就會體驗到,這裡就不一一贅述了,趕緊下載體驗吧,下載地址:https://www.jetbrains.com/idea/nextversion/。

商業用途請與作者聯繫!


分享到:


相關文章: