GoLand 2020.3 正式釋出有不少新功能(支援泛型)
這是 2020 年第 3 個版本,也是最後一個版本。在 GoLand 2020.3 中,您可以探索 goroutines dumps,執行並導航到單個表測試(table tests),並從對 Testify 測試框架的擴充套件支援中獲得更多資訊。你還將發現許多新的程式碼編輯功能,包括對 time 包的支援,更智慧的處理包方法,UI 改進,用於 Web 開發和使用資料庫的各種新功能以及用於協作開發和結對程式設計的新服務。具體看看有哪些新特性。
01 偵錯程式改進 Dump Goroutines
偵錯程式中新的轉儲 Goroutines(Dump Goroutines) 圖示使您可以在除錯會話期間輕鬆地在堆疊中查詢包含指定字串的 goroutine。只需單擊該圖示即可在單獨的視窗中開啟轉儲。
為了幫助您始終關注重要資訊,可以選擇隱藏單個goroutine或具有相同堆疊的goroutine。右鍵單擊goroutine,然後選擇所需的操作,或按Delete鍵將其移至轉儲視窗中的特殊“隱藏”部分,這樣不會分散您的注意力。
Go Remote configuration
如果不需要重新連線,GoLand 2020.3可以通過 Go Remote 配置停止程序。
在配置設定中,您可以指定斷開連線時偵錯程式的預設行為,可以選擇 “Stop remote Delve processes”,“使其保持執行狀態”或讓 GoLand 每次詢問您如何繼續。
02 測試增強
支援 table tests
您可以從 “Run” 工具視窗執行並導航到表測試。
有一些限制:
- 測試資料變數必須是切片,陣列或 map。它必須在與呼叫相同的函式中定義,並且在初始化後不得修改(for 迴圈中的 range 子句除外)。
- 各個測試資料條目必須是結構體字面值。呼叫前不得使用子測試名稱表示式中使用的迴圈變數。
- 子測試名稱表示式可以是測試資料中的字串欄位,測試資料字串欄位的連線以及帶有 %s 和 %d 動詞的fmt.Sprintf() 呼叫。
擴充套件了對 Testify 的支援
現在,IDE 可以識別啟動測試套件的測試功能,並提供一種啟動單個 suite.Run 和 suite.T().Run,只要子測試名稱是字串常量即可。另外,可以從“Run”工具視窗重新執行子測試,以避免重新執行整個頂級測試。
此外,GoLand 現在可以在一個測試用例中使用相同的方法名稱分別執行 Testify 套件。
最後但並非最不重要的一點是,當您準備寫測試函式時(testing.T 作為第一個引數),GoLand 會在可能的情況下自動傳遞該引數。這適用於 testify/assert,testify/require,testify/mock 和 testify/suite 包。
03 程式碼檢查
不正確使用類似 Println/Printf 的函式,GoLand 會有警告,之前只對標準庫起作用,現在支援 github.com/pkg/errors,github.com/sirupsen/logrus 和 go.uber.org/zap 包。
最重要的是,我們添加了佔位符突出顯示和摺疊,以及新增格式字串引數的意圖。
context.CancelFunc(不稱為程式碼檢查)報告了 context 取消的潛在不安全使用。當 context 返回的 “cancel” 函式未在所有執行路徑上呼叫時,此功能特別有用。
更多細節可以檢視標準庫文件:https://docs.studygolang.com/pkg/context。
04 程式碼編輯
time 包的支援
Go 語言中文網注:Go 中的時間格式化和其他語言不一樣,其他語言都是使用 YYYY、MM、dd 等,而 Go 使用魔法數字:2006-01-02 15:04:05 這樣的固定時間。有些人可能記不住或習慣其他語言的格式。GoLand 2020.3 做了這樣的轉換,見下圖。
我們增加了對 time 包的支援,因此您可以更輕鬆地使用 time 和 duration。GoLand 將通過程式碼補全(⌃Space)建議使用 ISO-8601 中 YYYY,MM,DD 佔位符的預定義 Layout。
在某個 token 上按 ⌘P,IDE 將顯示其含義。Layout 標記也有語法突出顯示。程式碼完成還建議在字串文字之外的標準時間 Layout。
更智慧的包處理
現在,IDE 可以更聰明地為您經常使用的包的提示項配置優先順序,這些包是在專案的 go.mod 檔案中明確宣告的。
我們還添加了一個選項,可將包從專案匯入路徑和完成建議中完全排除。您可以通過 Alt + Enter 或在排除視窗中執行此操作。
支援變數 shadowing
GoLang 可以更輕鬆地發現變數 shadowing。
IDE 顯示的變數現在可以用不同的顏色區分 shadowing 變數。
導航到 shadowing 宣告意圖操作,使您可以立即切換到 shadowing 宣告。
型別引數中的方括號
我們跟蹤了 Go 小組對 泛型 [1] 的更新,並增加了對泛型語法方括號的支援。
請注意,Settings | Go 中的 “ Enable generics (experimental support for type parameters) ” 預設情況下處於關閉狀態。您需要明確選擇該複選框才能開始使用該功能。
更多關於該功能的資訊可以 檢視該文章 [2] 。
05 其他改進
在測試檔案中鍵入 func 時,預設情況下,GoLand 會提示出 bench 和 test 函式模板。
當您在基準測試中輸入 for 時,IDE 建議使用 b.N 的 for 迴圈來完成它。
改進了拼寫和語法檢查器
現在,當您按 Alt + Enter 時,建議會立即顯示在對話方塊中。此外,新版本的 LanguageTool 語法檢查引擎還改進了英語檢查功能,並增加了對 10 種其他語言的支援。
06 和我編碼(結對程式設計)
GoLand 2020.3 支援 Code With Me(EAP),這是 JetBrains 的一項新服務,用於協作開發和結對程式設計。與我一起編寫程式碼使您可以與他人共享您當前在 IDE中 開啟的專案,並實時進行協作。
關於該功能的更多資訊請檢視 這篇文章 [3] 。
07 其他
其他的改進有:
UI 改進;
VSC 更新;
Web 開發增強;
對資料庫支援增強;
關於這塊的詳細資訊可以到 這裡檢視 [4] 。
08 總結
GoLand 是一個收費軟體,可以試用 30 天。如果覺得不錯,歡迎支援!當然免費的 VSCode 也香,對吧!
參考資料 [1]
泛型: https://groups.google.com/g/golang-nuts/c/iAD0NBz3DYw?pli=1
[2]
檢視該文章: https://blog.jetbrains.com/go/2020/11/24/experimenting-with-go-type-parameters-generics-in-goland/
[3]
這篇文章: https://blog.jetbrains.com/tag/codewithme/
[4]
這裡檢視: https://www.jetbrains.com/go/promo/whatsnew/
到此這篇關於GoLand 2020.3 正式釋出有不少新功能(支援泛型)的文章就介紹到這了,更多相關GoLand 2020.3支援泛型內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!