IntelliJ IDEA 2018.2支援Java 11、MacBook Touch Bar等新特性

weixin_33766168發表於2018-08-30

近期,JetBrains釋出了其旗艦產品IntelliJ IDEA的2018.2版本。新版本支援即將推出的Java 11、斷點意圖(Breakpoints Intentions)、MacBook的Touch Bar等特性,並改進了Spring Boot、Scala和Docker外掛。

\\

Java

\\

IntelliJ IDEA 2018.2支援Lambda引數使用的本地變數新語法(即JEP 323)。這是定於11月推出的Java 11中的一個新特性。該特性支援開發人員在Lambda表示式中使用var

\\
\//Java 8,不支援var。 \BiConsumer\u0026lt;Processor, String\u0026gt; consumer = (Processor x, String y) -\u0026gt; x.process(y);\//Java 11,支援var。\BiConsumer\u0026lt;Processor, String\u0026gt; consumer = (var x, var y) -\u0026gt; x.process(y);\
\\

為配合Java 11對var的支援特性,在IDE中按住“Ctrl/⌘”鍵並將游標駐留於var上,將會顯示該變數的型別。

\\

對於程式碼中冗長的方法鏈,IntelliJ IDEA將會給出型別提示(Type Hint)。面對具有泛型的長方法鏈時,開發人員可通過該功能檢視每個呼叫的型別提示。

\\

2254edc577630b5ebabfe82686830bd2.png

\\

2018.2為使用Extract Method(提煉方法)的重構新添了一個預覽皮膚。它有助於開發人員在確認更改前檢視重構的可能情況。

\\

55ef8463b29d7ac6574e1b819e01dbe4.png

\\

IntelliJ IDEA改進了對@org.jetbrains.annotations.Contract標註的支援。該標註支援開發人員為特定引數的傳遞指定一個響應方法,這將為空性(Nullability)分析以及其它一些程式碼檢查提供幫助。其約束新增的支援值包括:new,方法應該返回一個非Null的新物件;this,方法應該返回一個非Null的本身(this)指向;paramX,方法應該返回第X個引數。

\\

Stream API支援也做了改進。它將會顯示不必要的排序操作,以及錯誤使用了收集器(Collector)或集合(Colleciton)。此外,它還新增了對collect()(toSet())方法之前冗餘呼叫distinct()方法給出警告。

\\

Java專案的除錯也做了大量的改進。如果開發人員組合使用Alt+Enter鍵及其他一些可用意圖(Intension),就可能會看到三種新的斷點意圖:在類中只停(stop only)、類中不停,以及在當前物件中只停。此外,除錯中還提供了一種新的Caller過濾器,支援開發人員從指定方法呼叫時在一個斷點處只停,或是從指定方法呼叫時跳過一個斷點。

\\

使用者介面

\\

新版本還交付了一系列使用者介面上的改進。現在IDEA直接支援MacBook的Touch Bar,並在Touch Bar介面的中間顯示TouchJ IDEA按鈕。這使得開發人員可以直接從Touch Bar執行、除錯、提交更改和更新專案。對於macOS上的IntelliJ主題,現在支援以更暗方式顯示標題欄,並新增了一些新的圖示。而Linux上的IntelliJ主題也做了一些更新。

\\

d6eb36e66f48d0cac20efb160873855b.png

\\

Scala

\\

IntelliJ IDEA對Scala外掛做了多項改進。它支援開發人員以內聯提示的方式檢視隱式轉換和引數,並在一個提示工具(Tooltip)中瀏覽並擴充套件顯示資訊。現在,Scala外掛中新增了Scalafmt格式化工具。要配置Scala外掛,可依次點選選單項“Preferences/Settings”\u0026gt;“Editor”\u0026gt;“Code Style”\u0026gt;“Scala”。

\\

型別標註的自動完成和模式匹配功能也做了改進。如有可能,Scala外掛會對類和介面給出一組建議的型別模式,參見下圖:

\\

9f3c6be5e063d4eee45a71afade8e55d.gif

\\

JavaScript/Typescript

\\

2018.2還改進了對JavaScript和TypeScript的支援。開發人員可以使用新的提煉元件(Extract Component)重構特性新建一個React元件,使用新的Code Coverage特性發現並未在客戶端使用的JavaScript/TypeScript程式碼,並對程式碼做手工功能測試。為此,開發人員需要使用Code Coverage啟動一個JavaScript Debug配置,並與Chrome中的應用進行互動。配置完成後,IntelliJ IDEA會在Coverage工具視窗中給出一個程式碼覆蓋情況報告。

\\

此外,開發人員可使用一系列JavaScript和TypeScript意圖,例如實現介面、建立派生類、實現介面或抽象類的成員、生成switch語句中的case,以及使用“for..of”實現迭代運算。

\\

Spring

\\

在2018.2中新添了一個Spring Integration Diagram。它使用XML或Java標註顯示了Spring應用的配置情況,包括gateway、channel和bridge等。

\\

233b4fdbef820c26ba9f04a84f97933f.gif

\\

2018.2針對Spring Boot應用做了一些改進。新的Diagram Model支援開發人員對Spring Boot應用執行時Bean之間的依賴關係做視覺化。開發人員可以通過Run Dashboard管理HTTP請求對映。

\\

baa922b186e6a0c7aa532dc2d98ecd73.gif

\\

Docker

\\

IDEA的Docker外掛日漸成熟。新支援的特性包括使用新的Use Soft Warps操作支援Docker日誌換行(wrap word)。開發人員也可以從Compose節點和容器瀏覽對應的Compose和Docker檔案。此外,現在支援定義一個用於為Docker檔案執行docker build命令的根目錄。

\\

更多資訊,以及完全的改進列表,提供於“新特性”頁面中。

\\

檢視英文原文: IntelliJ IDEA 2018.2 Supports Java 11, MacBook Touch Bar and More

相關文章