主頁(yè) > 知識(shí)庫(kù) > IntelliJ IDEA2020.3 新特性(小結(jié))

IntelliJ IDEA2020.3 新特性(小結(jié))

熱門標(biāo)簽:地圖標(biāo)注項(xiàng)目幾個(gè)月 鶴壁高頻外呼系統(tǒng)多少錢一個(gè)月 蘇州呼叫中心外呼系統(tǒng)哪家強(qiáng) 谷歌地圖標(biāo)注日期 宿遷怎么辦理400電話 聯(lián)通外呼系統(tǒng)電腦app軟件 400電話申請(qǐng)到底哪家好 400電話辦理費(fèi)用低 外呼系統(tǒng)怎么群發(fā)短信

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

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在調(diào)試器中添加了交互式提示和嵌入式監(jiān)視器
2.改進(jìn)了對(duì)Java 15的支持
3.并引入了對(duì)Git暫存的支持
4.其他各種功能
繼續(xù)閱讀以了解所有內(nèi)容!

這四點(diǎn)是官網(wǎng)歡迎頁(yè)面的簡(jiǎn)單描述,我本人觀看了111遍官網(wǎng)介紹視頻后感覺(jué)總結(jié)得還算到位。
沒(méi)寫上去的功能基本就是錦上添花,提及的部分是真的非常提高生產(chǎn)力,尤其是debug中的嵌入式監(jiān)視Git暫存,那簡(jiǎn)直是Nice中的Nice。
其余一些表情包功能,閱讀器模式,主題和系統(tǒng)一致,相較于2020.2更強(qiáng)的search功能,還有一個(gè)重磅,那就是可以遠(yuǎn)程協(xié)助寫代碼了?。∫院蟛粫?huì)寫的代碼,可以找個(gè)大佬給我們解決了,棒棒棒??!

本篇博客中的更新要點(diǎn)全部來(lái)自官網(wǎng)首頁(yè)的介紹視頻,下面就按照視頻中的順序給大家一一實(shí)際展示一下

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

新的改變

新的啟動(dòng)頁(yè)

新的首頁(yè)


全新的UI設(shè)計(jì),將平時(shí)我們不太會(huì)操作的New Project ,OpenGet From VCS按鈕放在了右上角的位置,突出新的重點(diǎn):原有項(xiàng)目(畢竟我們的主要操作就是打開(kāi)舊項(xiàng)目)。

同時(shí),logo被移動(dòng)到了左上角,更靈動(dòng)了,下方排布了四個(gè)新的導(dǎo)航欄

  • Projects 項(xiàng)目(這個(gè)沒(méi)啥好說(shuō)的)
  • Customize 自定義界面樣式

現(xiàn)在可以直接在初始界面就設(shè)置IDEA主題,字體大小
同時(shí)新增了跟系統(tǒng)主題保持一致的配置選項(xiàng)Sync with OS

  • Plugins 插件(就是將配置里的插件設(shè)置弄到了初始頁(yè)面)
  • Learn Intellij IDEA 了解,學(xué)習(xí)IDEA

好家伙,我隨手點(diǎn)了一下圖中的Start Learning按鈕,簡(jiǎn)直就是米老鼠進(jìn)了米奇妙妙屋,妙到家了
一個(gè)非常完整的教程
如果退出教程,教程會(huì)在下次打開(kāi)IDEA的時(shí)候展示在Projects
推薦剛上手Idea的小伙伴點(diǎn)進(jìn)去看看,幫助快速上手IDEA

搜索窗口支持?jǐn)?shù)學(xué)計(jì)算

雙擊Shift打開(kāi)搜索全部窗口
輸入簡(jiǎn)單運(yùn)算加減乘除、冪運(yùn)算這些,可以直接得到結(jié)果,按Enter或者鼠標(biāo)點(diǎn)擊,復(fù)制到剪切板,不用像以前打開(kāi)系統(tǒng)的計(jì)算器了

不過(guò)我在測(cè)試的時(shí)候發(fā)現(xiàn)了一個(gè)不知道是bug還是double損失精度的問(wèn)題,有空的小伙伴麻煩留言幫我解答一下~感激不盡!

眼尖的小伙伴可能已經(jīng)看到了,我們的選項(xiàng)卡最后一個(gè)是git,現(xiàn)在的搜索框也支持搜索git的commit內(nèi)容了!

分屏預(yù)覽

現(xiàn)在支持拖動(dòng)tab來(lái)分屏預(yù)覽
其實(shí)!!
IDEA早就支持分屏了,只不過(guò)以前需要設(shè)置分屏快捷鍵,或者直接點(diǎn)擊split
我以前是這樣操作的,雙擊Shift打開(kāi)搜索框,然后輸入split就可以找到啦

2020.3搜索split關(guān)鍵字,出現(xiàn)的提示相較于2020.2版本,變得通俗易懂了
左舊右新
split horizontally 水平分割 ==> split down 向下分割
split vertically 垂直分割 ==> split right 向右分割

不過(guò)拖動(dòng)更加方便嘛

可以拖動(dòng)其他tab到編輯窗口了

比如我們可以拖動(dòng)Terminal Tab到編輯窗口,不過(guò)我個(gè)人認(rèn)為,Terminal還是放下面好看一些

機(jī)器學(xué)習(xí)(排序你的方法)

當(dāng)我?guī)啄昵暗谝淮谓佑|IDEA的時(shí)候,就被它強(qiáng)大的代碼自動(dòng)補(bǔ)全能力深深吸引了,甚至開(kāi)始擔(dān)心自己以后會(huì)不會(huì)因?yàn)橛锰郔DEA變得不會(huì)寫代碼了。。。后面證明我想多了,哈哈

Now,最新的IDEA來(lái)了,他帶來(lái)了更強(qiáng)大的代碼補(bǔ)全以及方法提示

視頻中@Trisha Gee說(shuō)道:

IDEA一直致力于提供代碼編寫早期的相關(guān)建議,2020.3引入了這方面的機(jī)器學(xué)習(xí)能力

那么我們?cè)趺慈ナ褂眠@個(gè)新功能呢?照?qǐng)D上設(shè)置就可以啦。

默認(rèn)是開(kāi)啟對(duì)于Java代碼的機(jī)器學(xué)習(xí)的,
但是我們是沒(méi)有直觀感受的,所以IDEA提供了一個(gè)開(kāi)關(guān),我們可以點(diǎn)擊,開(kāi)啟箭頭提示


下面就是效果:重新排序完成建議,并用箭頭標(biāo)出最近的使用情況


你的編輯器,越用越懂你

更好地支持 Java 15

大部分開(kāi)發(fā)者基本都使用Java8 或者Java11,這里我就不多贅述了,涉及到語(yǔ)言的新特性

內(nèi)聯(lián)方法 Inline Method

當(dāng)開(kāi)發(fā)人員使用多語(yǔ)言開(kāi)發(fā)(圖示Kotlin調(diào)用Java),同時(shí)存在語(yǔ)言之間互相調(diào)用方法的情況
我們可以使用Inline Method 選項(xiàng)來(lái)內(nèi)聯(lián)方法,將Java代碼的方法轉(zhuǎn)換成Kotlin代碼并寫進(jìn)Kotlin文件中

更強(qiáng)大的 Structurally Search

2020.2版本新出的結(jié)構(gòu)化查找,2020.3版本現(xiàn)在查找Kotlin文件了

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

重點(diǎn)?。。?020.3對(duì)于debug的提升

以下幾個(gè)地方,希望小伙伴們好好掌握,非常非常地好用,正確的debug能幫助你飛躍提升生產(chǎn)力

交互式內(nèi)嵌提示 Interactive Inline Hint

現(xiàn)在支持交互式Inlay hints內(nèi)嵌提示,注意是交互式,因?yàn)閮?nèi)嵌提示早就有了
當(dāng)我們?cè)赿ebug的時(shí)候遇到了斷點(diǎn),代碼行內(nèi)會(huì)出現(xiàn)行內(nèi)提示
2020.3以后可以直接點(diǎn)擊這些提示,查看這個(gè)對(duì)象的完整信息

同時(shí)我們可以右鍵去做設(shè)置這個(gè)對(duì)象的屬性,或者復(fù)制等操作


如果是舊版本,只能在底部的Debug的ToolBar去看了,總的來(lái)說(shuō)這個(gè)改變還是人性化的

內(nèi)聯(lián)監(jiān)視器 Inline Watcher

上一個(gè)功能點(diǎn)我們提到交互式內(nèi)嵌提示,接下去講,現(xiàn)在我們可以在行中直接添加監(jiān)視器Add to Watches,也就是Inline Watcher

那,什么是watcher和Inline Watcher呢

我們假設(shè)一個(gè)場(chǎng)景,我們需要遍歷一組數(shù)據(jù),且其中一條數(shù)據(jù)出了問(wèn)題,會(huì)導(dǎo)致不可預(yù)測(cè)的情況發(fā)生
我們現(xiàn)在需要debug把那條數(shù)據(jù)找出來(lái)

首先我們做一下準(zhǔn)備步驟

-創(chuàng)建一個(gè)測(cè)試類-DebugTest
-測(cè)試類里寫一個(gè)Hero內(nèi)部類,擁有id,name和god屬性值
-main方法中創(chuàng)建三個(gè)Hero對(duì)象,添加到list中
-循環(huán)輸出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);
    ArrayListHero> 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;
  }
} 


現(xiàn)在我們?cè)谘h(huán)輸出名字的地方打上一個(gè)斷點(diǎn)(上圖step4)
然后debug我們的main方法


這個(gè)時(shí)候我們可以觀察到提示有兩個(gè)對(duì)象,一個(gè)是hero,一個(gè)是list
我們平時(shí)debug的時(shí)候需要看到hero內(nèi)部的參數(shù),會(huì)選擇在Debugger的工具欄里點(diǎn)擊當(dāng)前循環(huán)的hero對(duì)象,然后打開(kāi)hero,來(lái)查找他的屬性值,我們假設(shè)是name,就像下圖


此從有了交互式內(nèi)嵌提示,我們只需要在行內(nèi)點(diǎn)擊提示就可以做到


現(xiàn)在我們可以直觀地看到內(nèi)部的屬性值了
那么問(wèn)題來(lái)了,如果這個(gè)類的成員變量非常非常地多,我們不僅要點(diǎn)進(jìn)去,還要往下拉很久才能找到這個(gè)值,不是很麻煩嘛

這個(gè)時(shí)候,我們的Inline Watcher就派上用場(chǎng)了
我們假設(shè)我們要找的屬性值是name,我們點(diǎn)擊屬性值name,然后點(diǎn)擊右下角的Add as Inline Watcher


出現(xiàn)hero.name,先不用管,我們點(diǎn)擊回車(這里其實(shí)可以寫代碼比如hero.name+hero.id這樣)


這個(gè)時(shí)候我們發(fā)現(xiàn)hero對(duì)象前面多了一個(gè)東西
小眼鏡和hero.name


這樣就完成了一個(gè)Inline Watcher的設(shè)置,當(dāng)進(jìn)入下一個(gè)循環(huán)的時(shí)候,就會(huì)展示下一個(gè)hero對(duì)象的name屬性

這樣我們debug起來(lái)是不是就特別容易找到有問(wèn)題的那條數(shù)據(jù)了~~~~~

創(chuàng)建渲染 Create Renderer

繼續(xù)上面往下講,還是上面那個(gè)例子
我們不僅可以創(chuàng)建一個(gè)watcher去監(jiān)視某個(gè)屬性
我們也可以把hero對(duì)象渲染成別的東西
點(diǎn)擊Create Renderer


點(diǎn)擊User following expression來(lái)使用下面的表達(dá)式渲染對(duì)象


接下來(lái)我們會(huì)看到


hero會(huì)根據(jù)表達(dá)式被渲染成不同的對(duì)象了呢,是不是很神奇??!
這樣是不是也可以一眼就能找出“人”,也就是一組數(shù)據(jù)中出問(wèn)題的那一條

這個(gè)新特性,真心希望每個(gè)使用IDEA的小伙伴都能學(xué)會(huì)使用!

添加默認(rèn)運(yùn)行選項(xiàng)

在Run/Debug Configuration 對(duì)話框中,我們可以選擇其中一個(gè)應(yīng)用入口,來(lái)添加默認(rèn)運(yùn)行選項(xiàng),就像是用于運(yùn)行的命令行參數(shù),使其在運(yùn)行前,會(huì)先運(yùn)行我們的配置,如下動(dòng)圖


像動(dòng)圖中那樣操作后,每次我們?cè)谶\(yùn)行這個(gè)測(cè)試類的時(shí)候,會(huì)先去運(yùn)行一下mvn clean這個(gè)命令

Git暫存代碼 Git Stage

這里的暫存怎么理解呢?
有的小伙伴可能會(huì)問(wèn),git不是有stash這個(gè)東西嘛?

是的沒(méi)有錯(cuò),但是stash有一個(gè)缺陷就是,粒度只能最小到文件
而我們使用IDEA的暫存功能后,粒度可以最小到行

在我的另一篇博客 git分支與提交規(guī)范一文中
我提到過(guò),代碼提交的粒度要小到接口
只有粒度足夠小,才便于同事間的協(xié)作和維護(hù),回滾等操作

那么Git Stage怎么用呢

打開(kāi)設(shè)置,進(jìn)入Git選項(xiàng)卡,點(diǎn)擊Enable staging area


這時(shí)候,我們的commit內(nèi)容會(huì)分為Staged和Unstaged

而不是原來(lái)的changeList和Unversioned


想要使用原來(lái)的那種方式,只要再次點(diǎn)擊配置中的Enable staging area就好了,具體看第一步操作

不過(guò)Git暫存的實(shí)際操作想要錄制有點(diǎn)麻煩,CSDN也只允許上傳5mb的gif動(dòng)圖,我就不錄頻了,會(huì)議上再去給大家講解,操作起來(lái)不是很難

Code With Me??!

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

支持實(shí)時(shí)分享當(dāng)前IDEA中打開(kāi)的工程,并且協(xié)作寫代碼
最騷的是,對(duì)方甚至可以不需要安裝IDEA甚至JDK,遠(yuǎn)程辦公不再是夢(mèng)(終于可以把家里的臺(tái)式機(jī)用起來(lái)了)

有小伙伴可能會(huì)問(wèn),這不就是遠(yuǎn)程協(xié)助嗎
確實(shí)是,但是這個(gè)插件可以設(shè)置安全級(jí)別,而且不共享桌面
我可以設(shè)置你能不能寫,甚至能設(shè)置你能寫,但是不能運(yùn)行
官方出品,必屬精品

其他更新

Lombok現(xiàn)在內(nèi)置在2020.3中了

不會(huì)吧不會(huì)吧,不會(huì)還有人沒(méi)用過(guò)lombok吧

閱讀器模式 Reader Mode

這個(gè)模式默認(rèn)開(kāi)啟
現(xiàn)在看文檔,更美觀了,不像以前全是反斜杠和星號(hào)/****/之類的

導(dǎo)航欄VCS的變化

以前的當(dāng)行藍(lán)中的VCS現(xiàn)在變成了Git,或者SVN,項(xiàng)目是用什么版本管理,導(dǎo)航欄就顯示什么

這是舊的


這是新的


有一說(shuō)一,現(xiàn)在誰(shuí)還用SVN呢

JDK可以直接在內(nèi)部升級(jí)

之前能下載我是知道的,現(xiàn)在可以升級(jí)了,有新版本會(huì)提醒,我們可以選擇跳過(guò)或更新

正經(jīng)人誰(shuí)沒(méi)事升級(jí)JDK,你升級(jí)嗎,我不升級(jí)

支持簡(jiǎn)化版的Maven Pom

即將發(fā)布的Maven 3.7.0將具有簡(jiǎn)化結(jié)構(gòu)的新POM。 IntelliJ IDEA 2020.3已包含對(duì)它們的支持
現(xiàn)在我本地的maven是3.6.3,還無(wú)法給大家測(cè)試
對(duì)于即將到來(lái)的3.7.0,我們拭目以待

其他對(duì)于kotlin,javaScript,databaseTool和微服務(wù)相關(guān)的優(yōu)化

官方歡迎您

結(jié)尾

工欲善其事必先利其器,個(gè)人感覺(jué)新版本2020.3IDEA的變化還是挺實(shí)用的,有許多提高生產(chǎn)力的改動(dòng),非常地人性~

文章整理不易,轉(zhuǎn)載請(qǐng)注明出處,CSDN超人2028
文章中有任何不對(duì)的地方,望不吝賜教~

更新建議 (2020.12.9)

強(qiáng)烈推薦:雖然我在寫博客的時(shí)候,為了演示,發(fā)現(xiàn)了兩個(gè)UI上的bug,就是輸入表達(dá)式的窗口無(wú)法關(guān)閉這些。
但是瑕不掩瑜,整體而言,改動(dòng)不大,能輕易上手,居家旅行必備

參考文獻(xiàn)

IDEA官網(wǎng)

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

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

到此這篇關(guān)于IntelliJ IDEA2020.3 新特性(小結(jié))的文章就介紹到這了,更多相關(guān)IDEA2020.3新特性 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 關(guān)于IDEA 2020.3 多窗口視圖丟失的問(wèn)題
  • IntelliJ IDEA2020.3詳細(xì)安裝教程
  • IDEA 2020.3 更新了機(jī)器學(xué)習(xí)都整上了
  • 解決IDEA 2020.3 lombok失效問(wèn)題
  • 關(guān)于idea2020.3升級(jí)lombok不能使用的問(wèn)題
  • IntelliJ IDEA 2020.3 重大特性(新功能一覽)
  • idea2020.3測(cè)試評(píng)價(jià)及感受
  • IDEA最新激活碼2021(IDEA2020.3.2最新永久激活方法)

標(biāo)簽:鄂爾多斯 哈爾濱 雙鴨山 襄陽(yáng) 錫林郭勒盟 丹東 遵義 莆田

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《IntelliJ IDEA2020.3 新特性(小結(jié))》,本文關(guān)鍵詞  IntelliJ,IDEA2020.3,新特性,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《IntelliJ IDEA2020.3 新特性(小結(jié))》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于IntelliJ IDEA2020.3 新特性(小結(jié))的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章