濮阳杆衣贸易有限公司

主頁 > 知識庫 > IntelliJ IDEA2020.3 新特性(小結(jié))

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

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

北京時間2020年12月1日,JetBrain公司推出了二十周年第三個穩(wěn)定版的IntelliJ IDEA 2020.3 。
距離上一個穩(wěn)定版IDEA,過去了小五個月,這次的更新來得比較晚,我的博客也是。如果不是同事提醒,我也差點忘記了自己其實是打算把IDEA編輯器這個系列給一直更新下去的哈哈哈,話不多說,讓我們先進(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)了對Java 15的支持
3.并引入了對Git暫存的支持
4.其他各種功能
繼續(xù)閱讀以了解所有內(nèi)容!

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

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

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

新的改變

新的啟動頁

新的首頁


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

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

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

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

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

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

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

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

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

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

分屏預(yù)覽

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

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

不過拖動更加方便嘛

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

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

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

當(dāng)我?guī)啄昵暗谝淮谓佑|IDEA的時候,就被它強大的代碼自動補全能力深深吸引了,甚至開始擔(dān)心自己以后會不會因為用太多IDEA變得不會寫代碼了。。。后面證明我想多了,哈哈

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

視頻中@Trisha Gee說道:

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

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

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


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


你的編輯器,越用越懂你

更好地支持 Java 15

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

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

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

更強大的 Structurally Search

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

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

重點?。。?020.3對于debug的提升

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

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

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

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


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

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

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

那,什么是watcher和Inline Watcher呢

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

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

-創(chuàng)建一個測試類-DebugTest
-測試類里寫一個Hero內(nèi)部類,擁有id,name和god屬性值
-main方法中創(chuàng)建三個Hero對象,添加到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)在我們在循環(huán)輸出名字的地方打上一個斷點(上圖step4)
然后debug我們的main方法


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


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


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

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


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


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


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

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

創(chuàng)建渲染 Create Renderer

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


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


接下來我們會看到


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

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

添加默認(rèn)運行選項

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


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

Git暫存代碼 Git Stage

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

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

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

那么Git Stage怎么用呢

打開設(shè)置,進(jìn)入Git選項卡,點擊Enable staging area


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

而不是原來的changeList和Unversioned


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

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

Code With Me??!

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

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

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

其他更新

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

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

閱讀器模式 Reader Mode

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

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

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

這是舊的


這是新的


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

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

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

正經(jīng)人誰沒事升級JDK,你升級嗎,我不升級

支持簡化版的Maven Pom

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

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

官方歡迎您

結(jié)尾

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

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

更新建議 (2020.12.9)

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

參考文獻(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

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

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

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《IntelliJ IDEA2020.3 新特性(小結(jié))》,本文關(guān)鍵詞  IntelliJ,IDEA2020.3,新特性,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《IntelliJ IDEA2020.3 新特性(小結(jié))》相關(guān)的同類信息!
  • 本頁收集關(guān)于IntelliJ IDEA2020.3 新特性(小結(jié))的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    深泽县| 长汀县| 长沙市| 菏泽市| 和田县| 光山县| 综艺| 平昌县| 宜兴市| 石林| 瓮安县| 九台市| 孙吴县| 金华市| 文山县| 青海省| 沅江市| 桂林市| 德钦县| 河西区| 彭泽县| 任丘市| 社会| 卢湾区| 古浪县| 呼伦贝尔市| 柘城县| 虞城县| 丰宁| 德州市| 牙克石市| 武鸣县| 北安市| 肥东县| 玉屏| 邯郸县| 新丰县| 江达县| 宁海县| 绥宁县| 邵东县|