主頁 > 前端設計 > IntelliJ IDEA 2020.3 新特性——Show me the code系列

IntelliJ IDEA 2020.3 新特性——Show me the code系列

2020-12-20 21:36:42 前端設計

IntelliJ IDEA 2020.3 新特性

  • 新的改變
      • 新的啟動頁
      • 新的首頁
      • 搜索視窗支持數學計算
      • 分屏預覽
      • 機器學習(排序你的方法)
      • 更好地支持 Java 15
      • 行內方法 Inline Method
      • 更強大的 Structurally Search
    • 重點!!!2020.3對于debug的提升
      • 互動式內嵌提示 Interactive Inline Hint
      • 行內監視器 Inline Watcher
      • 創建渲染 Create Renderer
      • 添加默認運行選項
      • Git暫存代碼 Git Stage
      • Code With Me!!
    • 其他更新
      • Lombok現在內置在2020.3中了
      • 閱讀器模式 Reader Mode
      • Git被欽定了
      • JDK可以直接在內部升級
      • 支持簡化版的Maven Pom
      • 其他對于kotlin,javaScript,databaseTool和微服務相關的優化
  • 結尾
  • 更新建議
        • (2020.12.9)
  • 參考文獻

北京時間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

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

在這里插入圖片描述

Git被欽定了

IDEA頂部的導航欄中,VCS被改成了Git

這是舊的
在這里插入圖片描述
這是新的

在這里插入圖片描述
JetBrain:你問我茲辭不茲辭,那我肯定是茲辭的拉
有一說一,現在誰還用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官網https://www.jetbrains.com/idea/whatsnew/
  • IDEA官方2020.3新特性視頻,@Trisha Gee https://www.youtube.com/watch?v=KffXqIZ0tYg&ab_channel=IntelliJIDEAbyJetBrains
  • 我的上一篇博客:Show me the code系列之IntelliJ IDEA 2020.2 新特性

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/237736.html

標籤:其他

上一篇:Show me the code系列之IntelliJ IDEA 2020.3 新特性

下一篇:為什么obj.timer不需要宣告就可以運行不報錯?

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • vue移動端上拉加載

    可能做得過于簡單或者比較low,請各位大佬留情,一起探討技術 ......

    uj5u.com 2020-09-10 04:38:07 more
  • 優美網站首頁,頂部多層導航

    一個個人用的瀏覽器首頁,可以把一下常用的網站放在這里,平常打開會比較方便。 第一步,HTML代碼 <script src=https://www.cnblogs.com/szharf/p/"js/jquery-3.4.1.min.js"></script> <div id="navigate"> <ul> <li class="labels labels_1"> ......

    uj5u.com 2020-09-10 04:38:47 more
  • 頁面為要加<!DOCTYPE html>

    最近因為寫一個js函式,需要用到$(window).height(); 由于手寫demo的時候,過于自信,其實對前端方面的認識也不夠體系,用文本檔案直接敲出來的html代碼,第一行沒有加上<!DOCTYPE html> 導致了$(window).height();的結果直接是整個document的高 ......

    uj5u.com 2020-09-10 04:38:52 more
  • WordPress網站程式手動升級要做好資料備份

    WordPress博客網站程式在進行升級前,必須要做好網站資料的備份,這個問題良家佐言是遇見過的;在剛開始接觸WordPress博客程式的時候,因為升級問題和博客網站的修改的一些嘗試,良家佐言是吃盡了苦頭。因為購買的是西部數碼的空間和域名,每當佐言把自己的WordPress博客網站搞到一塌糊涂的時候 ......

    uj5u.com 2020-09-10 04:39:30 more
  • WordPress程式不能升級為5.4.2版本的原因

    WordPress是一款個人博客系統,受到英文博客愛好者和中文博客愛好者的追捧,并逐步演化成一款內容管理系統軟體;它是使用PHP語言和MySQL資料庫開發的,用戶可以在支持PHP和MySQL資料庫的服務器上使用自己的博客。每一次WordPress程式的更新,就會牽動無數WordPress愛好者的心, ......

    uj5u.com 2020-09-10 04:39:49 more
  • 使用CSS3的偽元素進行首字母下沉和首行改變樣式

    網頁中常見的一種效果,首字改變樣式或者首行改變樣式,效果如下圖。 代碼: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, ......

    uj5u.com 2020-09-10 04:40:09 more
  • 關于a標簽的講解

    什么是a標簽? <a> 標簽定義超鏈接,用于從一個頁面鏈接到另一個頁面。 <a> 元素最重要的屬性是 href 屬性,它指定鏈接的目標。 a標簽的語法格式:<a href=https://www.cnblogs.com/summerxbc/p/"指定要跳轉的目標界面的鏈接">需要展示給用戶看見的內容</a> a標簽 在所有瀏覽器中,鏈接的默認外觀如下: 未被訪問的鏈接帶 ......

    uj5u.com 2020-09-10 04:40:11 more
  • 前端輪播圖

    在需要輪播的頁面是引入swiper.min.js和swiper.min.css swiper.min.js地址: 鏈接:https://pan.baidu.com/s/15Uh516YHa4CV3X-RyjEIWw 提取碼:4aks swiper.min.css地址 鏈接:https://pan.b ......

    uj5u.com 2020-09-10 04:40:13 more
  • 如何設定html中的背景圖片(全屏顯示,且不拉伸)

    1 <style>2 body{background-image:url(https://uploadbeta.com/api/pictures/random/?key=BingEverydayWallpaperPicture); 3 background-size:cover;background ......

    uj5u.com 2020-09-10 04:40:16 more
  • Java學習——HTML詳解(上)

    HTML詳解 初識HTML Hyper Text Markup Language(超文本標記語言) 1 <!--DOCTYPE:告訴瀏覽器我們要使用什么規范--> 2 <!DOCTYPE html> 3 <html lang="en"> 4 <head> 5 <!--meta 描述性的標簽,描述一些 ......

    uj5u.com 2020-09-10 04:40:33 more
最新发布
  • 我的第一個NPM包:panghu-planebattle-esm(胖虎飛機大戰)使用說明

    好家伙,我的包終于開發完啦 歡迎使用胖虎的飛機大戰包!! 為你的主頁添加色彩 這是一個有趣的網頁小游戲包,使用canvas和js開發 使用ES6模塊化開發 效果圖如下: (覺得圖片太sb的可以自己改) 代碼已開源!! Git: https://gitee.com/tang-and-han-dynas ......

    uj5u.com 2023-04-20 07:59:23 more
  • 生產事故-走近科學之消失的JWT

    入職多年,面對生產環境,盡管都是小心翼翼,慎之又慎,還是難免捅出簍子。輕則滿頭大汗,面紅耳赤。重則系統停擺,損失資金。每一個生產事故的背后,都是寶貴的經驗和教訓,都是專案成員的血淚史。為了更好地防范和遏制今后的各類事故,特開此專題,長期更新和記錄大大小小的各類事故。有些是親身經歷,有些是經人耳傳口授 ......

    uj5u.com 2023-04-18 07:55:04 more
  • 記錄--Canvas實作打飛字游戲

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 打開游戲界面,看到一個畫面簡潔、卻又富有挑戰性的游戲。螢屏上,有一個白色的矩形框,里面不斷下落著各種單詞,而我需要迅速地輸入這些單詞。如果我輸入的單詞與螢屏上的單詞匹配,那么我就可以獲得得分;如果我輸入的單詞錯誤或者時間過長,那么我就會輸 ......

    uj5u.com 2023-04-04 08:35:30 more
  • 了解 HTTP 看這一篇就夠

    在學習網路之前,了解它的歷史能夠幫助我們明白為何它會發展為如今這個樣子,引發探究網路的興趣。下面的這張圖片就展示了“互聯網”誕生至今的發展歷程。 ......

    uj5u.com 2023-03-16 11:00:15 more
  • 藍牙-低功耗中心設備

    //11.開啟藍牙配接器 openBluetoothAdapter //21.開始搜索藍牙設備 startBluetoothDevicesDiscovery //31.開啟監聽搜索藍牙設備 onBluetoothDeviceFound //30.停止監聽搜索藍牙設備 offBluetoothDevi ......

    uj5u.com 2023-03-15 09:06:45 more
  • canvas畫板(滑鼠和觸摸)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>canves</title> <style> #canvas { cursor:url(../images/pen.png),crosshair; } #canvasdiv{ bo ......

    uj5u.com 2023-02-15 08:56:31 more
  • 手機端H5 實作自定義拍照界面

    手機端 H5 實作自定義拍照界面也可以使用 MediaDevices API 和 <video> 標簽來實作,和在桌面端做法基本一致。 首先,使用 MediaDevices.getUserMedia() 方法獲取攝像頭媒體流,并將其傳遞給 <video> 標簽進行渲染。 接著,使用 HTML 的 < ......

    uj5u.com 2023-01-12 07:58:22 more
  • 記錄--短視頻滑動播放在 H5 下的實作

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 短視頻已經無數不在了,但是主體還是使用 app 來承載的。本文講述 H5 如何實作 app 的視頻滑動體驗。 無聲勝有聲,一圖頂百辯,且看下圖: 網址鏈接(需在微信或者手Q中瀏覽) 從上圖可以看到,我們主要實作的功能也是本文要講解的有: ......

    uj5u.com 2023-01-04 07:29:05 more
  • 一文讀懂 HTTP/1 HTTP/2 HTTP/3

    從 1989 年萬維網(www)誕生,HTTP(HyperText Transfer Protocol)經歷了眾多版本迭代,WebSocket 也在期間萌芽。1991 年 HTTP0.9 被發明。1996 年出現了 HTTP1.0。2015 年 HTTP2 正式發布。2020 年 HTTP3 或能正... ......

    uj5u.com 2022-12-24 06:56:02 more
  • 【HTML基礎篇002】HTML之form表單超詳解

    ??一、form表單是什么

    ??二、form表單的屬性

    ??三、input中的各種Type屬性值

    ??四、標簽 ......

    uj5u.com 2022-12-18 07:17:06 more