IntelliJ IDEA2020.3 新特性(小結)

北京時間2020年12月1日,JetBrain公司推出瞭二十周年第三個穩定版的IntelliJ IDEA 2020.3 。
距離上一個穩定版IDEA,過去瞭小五個月,這次的更新來得比較晚,我的博客也是。如果不是同事提醒,我也差點忘記瞭自己其實是打算把IDEA編輯器這個系列給一直更新下去的哈哈哈,話不多說,讓我們先進官網看看。
以下是官網的原話:

IntelliJ IDEA 2020.3 adds interactive hints and inline watches in the debugger, improves support for Java 15, and introduces support for Git staging, along with a variety of other features. Continue reading to learn about them all!

照例翻譯一下
1.IntelliJ IDEA 2020.3在調試器中添加瞭交互式提示和嵌入式監視器
2.改進瞭對Java 15的支持
3.並引入瞭對Git暫存的支持
4.其他各種功能
繼續閱讀以瞭解所有內容!

這四點是官網歡迎頁面的簡單描述,我本人觀看瞭1<<1<<1遍官網介紹視頻後感覺總結得還算到位。
沒寫上去的功能基本就是錦上添花,提及的部分是真的非常提高生產力,尤其是debug中的嵌入式監視Git暫存,那簡直是Nice中的Nice。
其餘一些表情包功能,閱讀器模式,主題和系統一致,相較於2020.2更強的search功能,還有一個重磅,那就是可以遠程協助寫代碼瞭!!以後不會寫的代碼,可以找個大佬給我們解決瞭,棒棒棒!!

本篇博客中的更新要點全部來自官網首頁的介紹視頻,下面就按照視頻中的順序給大傢一一實際展示一下

視頻鏈接(需翻墻):https://www.youtube.com/watch?v=KffXqIZ0tYg&ab_channel=IntelliJIDEAbyJetBrains

新的改變

新的啟動頁

在這裡插入圖片描述

新的首頁

在這裡插入圖片描述

全新的UI設計,將平時我們不太會操作的New ProjectOpenGet From VCS按鈕放在瞭右上角的位置,突出新的重點:原有項目(畢竟我們的主要操作就是打開舊項目)。

同時,logo被移動到瞭左上角,更靈動瞭,下方排佈瞭四個新的導航欄

  • Projects 項目(這個沒啥好說的)
  • Customize 自定義界面樣式

現在可以直接在初始界面就設置IDEA主題,字體大小
同時新增瞭跟系統主題保持一致的配置選項Sync with OS

在這裡插入圖片描述

  • Plugins 插件(就是將配置裡的插件設置弄到瞭初始頁面)
  • Learn Intellij IDEA 瞭解,學習IDEA

好傢夥,我隨手點瞭一下圖中的Start Learning按鈕,簡直就是米老鼠進瞭米奇妙妙屋,妙到傢瞭
一個非常完整的教程
如果退出教程,教程會在下次打開IDEA的時候展示在Projects
推薦剛上手Idea的小夥伴點進去看看,幫助快速上手IDEA

在這裡插入圖片描述

搜索窗口支持數學計算

雙擊Shift打開搜索全部窗口
輸入簡單運算加減乘除、冪運算這些,可以直接得到結果,按Enter或者鼠標點擊,復制到剪切板,不用像以前打開系統的計算器瞭

不過我在測試的時候發現瞭一個不知道是bug還是double損失精度的問題,有空的小夥伴麻煩留言幫我解答一下~感激不盡!

在這裡插入圖片描述

眼尖的小夥伴可能已經看到瞭,我們的選項卡最後一個是git,現在的搜索框也支持搜索git的commit內容瞭!

分屏預覽

在這裡插入圖片描述

現在支持拖動tab來分屏預覽
其實!!
IDEA早就支持分屏瞭,隻不過以前需要設置分屏快捷鍵,或者直接點擊split
我以前是這樣操作的,雙擊Shift打開搜索框,然後輸入split就可以找到啦

2020.3搜索split關鍵字,出現的提示相較於2020.2版本,變得通俗易懂瞭
左舊右新
split horizontally 水平分割 ==> split down 向下分割
split vertically 垂直分割 ==> split right 向右分割

不過拖動更加方便嘛

可以拖動其他tab到編輯窗口瞭

比如我們可以拖動Terminal Tab到編輯窗口,不過我個人認為,Terminal還是放下面好看一些

機器學習(排序你的方法)

當我幾年前第一次接觸IDEA的時候,就被它強大的代碼自動補全能力深深吸引瞭,甚至開始擔心自己以後會不會因為用太多IDEA變得不會寫代碼瞭。。。後面證明我想多瞭,哈哈

Now,最新的IDEA來瞭,他帶來瞭更強大的代碼補全以及方法提示

視頻中@Trisha Gee說道:

IDEA一直致力於提供代碼編寫早期的相關建議,2020.3引入瞭這方面的機器學習能力

那麼我們怎麼去使用這個新功能呢?照圖上設置就可以啦。

默認是開啟對於Java代碼的機器學習的,
但是我們是沒有直觀感受的,所以IDEA提供瞭一個開關,我們可以點擊,開啟箭頭提示

在這裡插入圖片描述

下面就是效果:重新排序完成建議,並用箭頭標出最近的使用情況

在這裡插入圖片描述

你的編輯器,越用越懂你

更好地支持 Java 15

大部分開發者基本都使用Java8 或者Java11,這裡我就不多贅述瞭,涉及到語言的新特性

內聯方法 Inline Method

當開發人員使用多語言開發(圖示Kotlin調用Java),同時存在語言之間互相調用方法的情況
我們可以使用Inline Method 選項來內聯方法,將Java代碼的方法轉換成Kotlin代碼並寫進Kotlin文件中

在這裡插入圖片描述

更強大的 Structurally Search

2020.2版本新出的結構化查找,2020.3版本現在查找Kotlin文件瞭

具體使用方法在我的上一篇博客中有詳細提及
視頻中@Trisha Gee也推薦我們程序員要習慣去使用,是一個非常實用的東西
這裡附上我上一篇博客的地址,對結構化查找有詳細介紹,感興趣的小夥伴動動手指~
鏈接: Show me the code系列之IntelliJ IDEA 2020.2 新特性

重點!!!2020.3對於debug的提升

以下幾個地方,希望小夥伴們好好掌握,非常非常地好用,正確的debug能幫助你飛躍提升生產力

交互式內嵌提示 Interactive Inline Hint

現在支持交互式Inlay hints內嵌提示,註意是交互式,因為內嵌提示早就有瞭
當我們在debug的時候遇到瞭斷點,代碼行內會出現行內提示
2020.3以後可以直接點擊這些提示,查看這個對象的完整信息

在這裡插入圖片描述

同時我們可以右鍵去做設置這個對象的屬性,或者復制等操作

在這裡插入圖片描述

如果是舊版本,隻能在底部的Debug的ToolBar去看瞭,總的來說這個改變還是人性化的

內聯監視器 Inline Watcher

上一個功能點我們提到交互式內嵌提示,接下去講,現在我們可以在行中直接添加監視器Add to Watches,也就是Inline Watcher

那,什麼是watcher和Inline Watcher呢

我們假設一個場景,我們需要遍歷一組數據,且其中一條數據出瞭問題,會導致不可預測的情況發生
我們現在需要debug把那條數據找出來

首先我們做一下準備步驟

-創建一個測試類-DebugTest
-測試類裡寫一個Hero內部類,擁有id,name和god屬性值
-main方法中創建三個Hero對象,添加到list中
-循環輸出hero的名字

public class DebugTest {
  public static void main(String[] args) {
    Hero superMan = new Hero(1,"超人2028",true);
    Hero batMan = new Hero(2,"BatMan",false);
    Hero wonderWoman = new Hero(3,"WonderWoman",true);
    ArrayList<Hero> list = new ArrayList<>(3);
    list.add(superMan);
    list.add(batMan);
    list.add(wonderWoman);

    for (Hero hero : list) {
      System.out.println(hero.getName());
    }
  }

  @Data
  @AllArgsConstructor
  public static class Hero {
    Integer id;
    String name ;
    boolean god;
  }
} 

在這裡插入圖片描述

現在我們在循環輸出名字的地方打上一個斷點(上圖step4)
然後debug我們的main方法

在這裡插入圖片描述

這個時候我們可以觀察到提示有兩個對象,一個是hero,一個是list
我們平時debug的時候需要看到hero內部的參數,會選擇在Debugger的工具欄裡點擊當前循環的hero對象,然後打開hero,來查找他的屬性值,我們假設是name,就像下圖

在這裡插入圖片描述

此從有瞭交互式內嵌提示,我們隻需要在行內點擊提示就可以做到

在這裡插入圖片描述

現在我們可以直觀地看到內部的屬性值瞭
那麼問題來瞭,如果這個類的成員變量非常非常地多,我們不僅要點進去,還要往下拉很久才能找到這個值,不是很麻煩嘛

這個時候,我們的Inline Watcher就派上用場瞭
我們假設我們要找的屬性值是name,我們點擊屬性值name,然後點擊右下角的Add as Inline Watcher

在這裡插入圖片描述

出現hero.name,先不用管,我們點擊回車(這裡其實可以寫代碼比如hero.name+hero.id這樣)

在這裡插入圖片描述

這個時候我們發現hero對象前面多瞭一個東西
小眼鏡和hero.name

在這裡插入圖片描述

這樣就完成瞭一個Inline Watcher的設置,當進入下一個循環的時候,就會展示下一個hero對象的name屬性

在這裡插入圖片描述

這樣我們debug起來是不是就特別容易找到有問題的那條數據瞭~~~~~

創建渲染 Create Renderer

繼續上面往下講,還是上面那個例子
我們不僅可以創建一個watcher去監視某個屬性
我們也可以把hero對象渲染成別的東西
點擊Create Renderer

在這裡插入圖片描述

點擊User following expression來使用下面的表達式渲染對象

在這裡插入圖片描述

接下來我們會看到

在這裡插入圖片描述

hero會根據表達式被渲染成不同的對象瞭呢,是不是很神奇!!
這樣是不是也可以一眼就能找出“人”,也就是一組數據中出問題的那一條

這個新特性,真心希望每個使用IDEA的小夥伴都能學會使用!

添加默認運行選項

在Run/Debug Configuration 對話框中,我們可以選擇其中一個應用入口,來添加默認運行選項,就像是用於運行的命令行參數,使其在運行前,會先運行我們的配置,如下動圖

在這裡插入圖片描述

像動圖中那樣操作後,每次我們在運行這個測試類的時候,會先去運行一下mvn clean這個命令

Git暫存代碼 Git Stage

這裡的暫存怎麼理解呢?
有的小夥伴可能會問,git不是有stash這個東西嘛?

是的沒有錯,但是stash有一個缺陷就是,粒度隻能最小到文件
而我們使用IDEA的暫存功能後,粒度可以最小到行

在我的另一篇博客 git分支與提交規范一文中
我提到過,代碼提交的粒度要小到接口
隻有粒度足夠小,才便於同事間的協作和維護,回滾等操作

那麼Git Stage怎麼用呢

打開設置,進入Git選項卡,點擊Enable staging area

在這裡插入圖片描述

這時候,我們的commit內容會分為Staged和Unstaged

在這裡插入圖片描述

而不是原來的changeList和Unversioned

在這裡插入圖片描述

想要使用原來的那種方式,隻要再次點擊配置中的Enable staging area就好瞭,具體看第一步操作

不過Git暫存的實際操作想要錄制有點麻煩,CSDN也隻允許上傳5mb的gif動圖,我就不錄頻瞭,會議上再去給大傢講解,操作起來不是很難

Code With Me!!

官方推出的新插件 Code With Me
直接在Plugins的市場搜索就可以下載

在這裡插入圖片描述

支持實時分享當前IDEA中打開的工程,並且協作寫代碼
最騷的是,對方甚至可以不需要安裝IDEA甚至JDK,遠程辦公不再是夢(終於可以把傢裡的臺式機用起來瞭)

有小夥伴可能會問,這不就是遠程協助嗎
確實是,但是這個插件可以設置安全級別,而且不共享桌面
我可以設置你能不能寫,甚至能設置你能寫,但是不能運行
官方出品,必屬精品

其他更新

Lombok現在內置在2020.3中瞭

不會吧不會吧,不會還有人沒用過lombok吧

閱讀器模式 Reader Mode

這個模式默認開啟
現在看文檔,更美觀瞭,不像以前全是反斜杠和星號/****/之類的

在這裡插入圖片描述

導航欄VCS的變化

以前的當行藍中的VCS現在變成瞭Git,或者SVN,項目是用什麼版本管理,導航欄就顯示什麼

這是舊的

在這裡插入圖片描述

這是新的

在這裡插入圖片描述

有一說一,現在誰還用SVN呢

JDK可以直接在內部升級

之前能下載我是知道的,現在可以升級瞭,有新版本會提醒,我們可以選擇跳過或更新

正經人誰沒事升級JDK,你升級嗎,我不升級

在這裡插入圖片描述

支持簡化版的Maven Pom

即將發佈的Maven 3.7.0將具有簡化結構的新POM。 IntelliJ IDEA 2020.3已包含對它們的支持
現在我本地的maven是3.6.3,還無法給大傢測試
對於即將到來的3.7.0,我們拭目以待

其他對於kotlin,javaScript,databaseTool和微服務相關的優化

官方歡迎您

結尾

工欲善其事必先利其器,個人感覺新版本2020.3IDEA的變化還是挺實用的,有許多提高生產力的改動,非常地人性~

文章整理不易,轉載請註明出處,CSDN超人2028
文章中有任何不對的地方,望不吝賜教~

更新建議 (2020.12.9)

強烈推薦:雖然我在寫博客的時候,為瞭演示,發現瞭兩個UI上的bug,就是輸入表達式的窗口無法關閉這些。
但是瑕不掩瑜,整體而言,改動不大,能輕易上手,居傢旅行必備

參考文獻

IDEA官網

IDEA官方2020.3新特性視頻,@Trisha Gee

我的上一篇博客:Show me the code系列之IntelliJ IDEA 2020.2 新特性

到此這篇關於IntelliJ IDEA2020.3 新特性(小結)的文章就介紹到這瞭,更多相關IDEA2020.3新特性 內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: