目錄
- 新的改變
- 新的啟動頁
- 新的首頁
- 搜索窗口支持?jǐn)?shù)學(xué)計算
- 分屏預(yù)覽
- 機器學(xué)習(xí)(排序你的方法)
- 更好地支持 Java 15
- 內(nèi)聯(lián)方法 Inline Method
- 更強大的 Structurally Search
- 重點?。?!2020.3對于debug的提升
- 交互式內(nèi)嵌提示 Interactive Inline Hint
- 內(nèi)聯(lián)監(jiān)視器 Inline Watcher
- 創(chuàng)建渲染 Create Renderer
- 添加默認(rèn)運行選項
- Git暫存代碼 Git Stage
- Code With Me?。?/li>
- 其他更新
- Lombok現(xiàn)在內(nèi)置在2020.3中了
- 閱讀器模式 Reader Mode
- 導(dǎo)航欄VCS的變化
- JDK可以直接在內(nèi)部升級
- 支持簡化版的Maven Pom
- 其他對于kotlin,javaScript,databaseTool和微服務(wù)相關(guān)的優(yōu)化
- 結(jié)尾
- 參考文獻(xiàn)
北京時間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
新的改變
新的啟動頁
![](/d/20211017/a11147cb22fa88ac1a1b2ca28e35e94f.gif)
新的首頁
![](/d/20211017/c73338c2d54ad898776dfff0daf88ed2.gif)
全新的UI設(shè)計,將平時我們不太會操作的New Project ,Open,Get From VCS按鈕放在了右上角的位置,突出新的重點:原有項目(畢竟我們的主要操作就是打開舊項目)。
同時,logo被移動到了左上角,更靈動了,下方排布了四個新的導(dǎo)航欄
- Projects 項目(這個沒啥好說的)
- Customize 自定義界面樣式
現(xiàn)在可以直接在初始界面就設(shè)置IDEA主題,字體大小
同時新增了跟系統(tǒng)主題保持一致的配置選項Sync with OS
![](/d/20211017/b0192e1dd1697c1a7dc214d8d0abf194.gif)
- Plugins 插件(就是將配置里的插件設(shè)置弄到了初始頁面)
- Learn Intellij IDEA 了解,學(xué)習(xí)IDEA
好家伙,我隨手點了一下圖中的Start Learning按鈕,簡直就是米老鼠進(jìn)了米奇妙妙屋,妙到家了
一個非常完整的教程
如果退出教程,教程會在下次打開IDEA的時候展示在Projects中
推薦剛上手Idea的小伙伴點進(jìn)去看看,幫助快速上手IDEA
![](/d/20211017/35bf2356fc0749418130e1012d14fb6d.gif)
搜索窗口支持?jǐn)?shù)學(xué)計算
雙擊Shift打開搜索全部窗口
輸入簡單運算加減乘除、冪運算這些,可以直接得到結(jié)果,按Enter或者鼠標(biāo)點擊,復(fù)制到剪切板,不用像以前打開系統(tǒng)的計算器了
不過我在測試的時候發(fā)現(xiàn)了一個不知道是bug還是double損失精度的問題,有空的小伙伴麻煩留言幫我解答一下~感激不盡!
![](/d/20211017/374a48b2864d2c47d6448d1e1fd5ffc1.gif)
眼尖的小伙伴可能已經(jīng)看到了,我們的選項卡最后一個是git,現(xiàn)在的搜索框也支持搜索git的commit內(nèi)容了!
分屏預(yù)覽
![](/d/20211017/5ac77a371fac80c6176ce11d70b5933f.gif)
現(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),我們可以點擊,開啟箭頭提示
![](/d/20211017/7c099c0a12c4f503f57387c936cd79d6.gif)
下面就是效果:重新排序完成建議,并用箭頭標(biāo)出最近的使用情況
![](/d/20211017/e6a81997b74a5a35643bb8ee0262bdf0.gif)
你的編輯器,越用越懂你
更好地支持 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文件中
![](/d/20211017/883b4d516a8df739be1810bb351e514b.gif)
更強大的 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以后可以直接點擊這些提示,查看這個對象的完整信息
![](/d/20211017/bfe21dc4415a5791cc4db33fdeae0c7b.gif)
同時我們可以右鍵去做設(shè)置這個對象的屬性,或者復(fù)制等操作
![](/d/20211017/4d3baac55ac6533054920be5ba6b7870.gif)
如果是舊版本,只能在底部的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;
}
}
![](/d/20211017/f086c70fa71c9856c116fe5ee0ef2bad.gif)
現(xiàn)在我們在循環(huán)輸出名字的地方打上一個斷點(上圖step4)
然后debug我們的main方法
![](/d/20211017/17c1e24cffae0d08af1ab0e9db1b0fca.gif)
這個時候我們可以觀察到提示有兩個對象,一個是hero,一個是list
我們平時debug的時候需要看到hero內(nèi)部的參數(shù),會選擇在Debugger的工具欄里點擊當(dāng)前循環(huán)的hero對象,然后打開hero,來查找他的屬性值,我們假設(shè)是name,就像下圖
![](/d/20211017/97ad13e4f1559ffe6b6261bf76615863.gif)
此從有了交互式內(nèi)嵌提示,我們只需要在行內(nèi)點擊提示就可以做到
![](/d/20211017/49ee08c303732e2acec72836570e80ff.gif)
現(xiàn)在我們可以直觀地看到內(nèi)部的屬性值了
那么問題來了,如果這個類的成員變量非常非常地多,我們不僅要點進(jìn)去,還要往下拉很久才能找到這個值,不是很麻煩嘛
這個時候,我們的Inline Watcher就派上用場了
我們假設(shè)我們要找的屬性值是name,我們點擊屬性值name,然后點擊右下角的Add as Inline Watcher
![](/d/20211017/aad00944ad83d697f83035ff5a7423f1.gif)
出現(xiàn)hero.name,先不用管,我們點擊回車(這里其實可以寫代碼比如hero.name+hero.id這樣)
![](/d/20211017/2e3749007b8219ba9d1804c126c5713f.gif)
這個時候我們發(fā)現(xiàn)hero對象前面多了一個東西
小眼鏡和hero.name
![](/d/20211017/7204c201401e649d4609575693f9f642.gif)
這樣就完成了一個Inline Watcher的設(shè)置,當(dāng)進(jìn)入下一個循環(huán)的時候,就會展示下一個hero對象的name屬性
![](/d/20211017/860406b45784297193b7b5c32f0d352f.gif)
這樣我們debug起來是不是就特別容易找到有問題的那條數(shù)據(jù)了~~~~~
創(chuàng)建渲染 Create Renderer
繼續(xù)上面往下講,還是上面那個例子
我們不僅可以創(chuàng)建一個watcher去監(jiān)視某個屬性
我們也可以把hero對象渲染成別的東西
點擊Create Renderer
![](/d/20211017/55c0d4b5129302b3b3d6dcda9b72db14.gif)
點擊User following expression來使用下面的表達(dá)式渲染對象
![](/d/20211017/b7a554f4126893837353bdef839a92ea.gif)
接下來我們會看到
![](/d/20211017/6a6da3ca7221684ea03ef114b04c7b4f.gif)
hero會根據(jù)表達(dá)式被渲染成不同的對象了呢,是不是很神奇??!
這樣是不是也可以一眼就能找出“人”,也就是一組數(shù)據(jù)中出問題的那一條
這個新特性,真心希望每個使用IDEA的小伙伴都能學(xué)會使用!
添加默認(rèn)運行選項
在Run/Debug Configuration 對話框中,我們可以選擇其中一個應(yīng)用入口,來添加默認(rèn)運行選項,就像是用于運行的命令行參數(shù),使其在運行前,會先運行我們的配置,如下動圖
![](/d/20211017/b2c62beb54f1c2c2267642c461b5aa12.gif)
像動圖中那樣操作后,每次我們在運行這個測試類的時候,會先去運行一下mvn clean這個命令
Git暫存代碼 Git Stage
這里的暫存怎么理解呢?
有的小伙伴可能會問,git不是有stash這個東西嘛?
是的沒有錯,但是stash有一個缺陷就是,粒度只能最小到文件
而我們使用IDEA的暫存功能后,粒度可以最小到行
在我的另一篇博客 git分支與提交規(guī)范一文中
我提到過,代碼提交的粒度要小到接口
只有粒度足夠小,才便于同事間的協(xié)作和維護(hù),回滾等操作
那么Git Stage怎么用呢
打開設(shè)置,進(jìn)入Git選項卡,點擊Enable staging area
![](/d/20211017/bcb6ea2bb6c0f723fd88a73d4cc49bbe.gif)
這時候,我們的commit內(nèi)容會分為Staged和Unstaged
![](/d/20211017/58dc9b45a201a810678abb1e0f9a5eed.gif)
而不是原來的changeList和Unversioned
![](/d/20211017/5862361efa91b66c926df369b0c6114e.gif)
想要使用原來的那種方式,只要再次點擊配置中的Enable staging area就好了,具體看第一步操作
不過Git暫存的實際操作想要錄制有點麻煩,CSDN也只允許上傳5mb的gif動圖,我就不錄頻了,會議上再去給大家講解,操作起來不是很難
Code With Me??!
官方推出的新插件 Code With Me
直接在Plugins的市場搜索就可以下載
![](/d/20211017/ba2da11c9ced2a0a379cb43b33969506.gif)
支持實時分享當(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/20211017/4ff705a2da675217ca005040ba2053e9.gif)
導(dǎo)航欄VCS的變化
以前的當(dāng)行藍(lán)中的VCS現(xiàn)在變成了Git,或者SVN,項目是用什么版本管理,導(dǎo)航欄就顯示什么
這是舊的
![](/d/20211017/0cee29a2b124773e2a31d2c79e94dca6.gif)
這是新的
![](/d/20211017/c04eb771ab6965f56eb6a9ea3fcbcd9f.gif)
有一說一,現(xiàn)在誰還用SVN呢
JDK可以直接在內(nèi)部升級
之前能下載我是知道的,現(xiàn)在可以升級了,有新版本會提醒,我們可以選擇跳過或更新
正經(jīng)人誰沒事升級JDK,你升級嗎,我不升級
![](/d/20211017/08b1b6e94ffa977e074be28fbc07a63f.gif)
支持簡化版的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最新永久激活方法)