{"id":221132,"date":"2022-01-27T17:31:36","date_gmt":"2022-01-27T16:31:36","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=go&#038;p=221132"},"modified":"2025-09-19T12:32:14","modified_gmt":"2025-09-19T11:32:14","slug":"goland-2022-1-early-access-program-has-started","status":"publish","type":"go","link":"https:\/\/blog.jetbrains.com\/zh-hans\/go\/2022\/01\/27\/goland-2022-1-early-access-program-has-started","title":{"rendered":"GoLand 2022.1 Early Access Program Has Started!"},"content":{"rendered":"\n<p>Today we are announcing the start of the 2022.1 Early Access Program! Read <a href=\"https:\/\/blog.jetbrains.com\/go\/2021\/12\/13\/goland-2022-1-roadmap\/\">the roadmap blog post<\/a> to learn more about what\u2019s coming in the 2022.1 release.&nbsp;&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1600\" height=\"800\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/01\/GoLand_blog-2x.png\" alt=\"\" class=\"wp-image-221234\"\/><\/figure>\n\n\n\n<p>You can get the first EAP build via the <a href=\"https:\/\/www.jetbrains.com\/toolbox\/app\/\" class=\"ek-link\" target=\"_blank\" rel=\"noopener\">Toolbox App<\/a>, download it from our website, use a snap package (for Ubuntu), or from inside GoLand, select <em>Check IDE updates for Early Access Program<\/em> in <em>Preferences <\/em>\/<em> Settings <\/em>|<em> Appearance &amp; Behavior <\/em>|<em> System Settings <\/em>|<em> Updates<\/em>.<\/p>\n\n\n\n<p class=\"has-text-align-center\"><p align=\"center\">\n    <a class=\"jb-download-button\" href=\"https:\/\/www.jetbrains.com\/go\/nextversion\/\" target=\"_blank\" rel=\"noopener\">      \n        Download GoLand 2022.1 EAP #1\n    <\/a>\n<\/p><\/p>\n\n\n\n<p>If you\u2019re not familiar with our EAPs, here\u2019s a brief overview:&nbsp;<\/p>\n\n\n\n<p>EAP builds let you try out the latest features and enhancements in GoLand while we continue to work on them. These builds are not fully tested and might be unstable, but this is where you can help us. By taking these builds and their new features for a test drive with your real-world projects and scenarios, you can help us polish them. This way, when the final version is released, it will work smoothly for you.<\/p>\n\n\n\n<ul>\n<li>The EAP lets you be the first to try out the newest features.<\/li>\n\n\n\n<li>EAP builds are free to use for 30 days from the build date. You can use this period as an extended trial of GoLand.<\/li>\n\n\n\n<li>We provide a series of EAP builds until a stable release is almost ready. For the upcoming version 2022.1, the EAP period will last until the beginning of March.<\/li>\n\n\n\n<li>In each release cycle, we reward the most active evaluators and people who have helped us make GoLand better by sharing their product experience, feedback, and suggestions with a free 1-year GoLand subscription.<\/li>\n\n\n\n<li>Fresh builds come out almost every day. If you don\u2019t want to wait for the official EAP build announcements, you can download our <a href=\"https:\/\/blog.jetbrains.com\/go\/2021\/04\/02\/new-day-new-features-new-nightly-build-of-goland-ide\/\">nightly builds<\/a>, which are only available via the <a href=\"https:\/\/www.jetbrains.com\/toolbox\/app\/\" target=\"_blank\" rel=\"noopener\">Toolbox App<\/a>. Note that the nightly builds often do not meet the quality standards for official EAP builds, and they don\u2019t come with release notes. Like EAP builds, they expire within 30 days of being released.<\/li>\n<\/ul>\n\n\n\n<p>Now let\u2019s look at the features packed in this build.&nbsp;<\/p>\n\n\n\n<ul>\n<li><meta charset=\"utf-8\"><a href=\"#Code-completion-for-generics\" class=\"ek-link\">Code completion for generics<\/a>&nbsp;<\/li>\n\n\n\n<li><meta charset=\"utf-8\"><a href=\"#Generics-related-improvements-and-bug-fixes\" class=\"ek-link\">Generics-related improvements and bug-fixes<\/a>&nbsp;<\/li>\n\n\n\n<li><meta charset=\"utf-8\"><a href=\"#String-formatting-support-for-testify-functions\" class=\"ek-link\">String formatting support for <em>testify<\/em> functions<\/a>&nbsp;<\/li>\n\n\n\n<li><meta charset=\"utf-8\"><a href=\"#Run-commands-from-Markdown-files\" class=\"ek-link\">Run commands from Markdown files<\/a><\/li>\n\n\n\n<li><meta charset=\"utf-8\"><a href=\"#The-new-Notifications-tool-window\" class=\"ek-link\">The new <em>Notifications<\/em> tool window<\/a><\/li>\n\n\n\n<li><meta charset=\"utf-8\"><a href=\"#VCS-Updated-Commit-Details-pane-in-Git-tool-window\" class=\"ek-link\">VCS: Updated <em>Commit Details<\/em> pane in <em>Git<\/em> tool window<\/a><\/li>\n\n\n\n<li><meta charset=\"utf-8\"><a href=\"#Code-reformatting-in-LightEdit-mode\" class=\"ek-link\">Code reformatting in <em>LightEdit<\/em> mode<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Code-completion-for-generics\"><meta charset=\"utf-8\">Code completion for generics&nbsp;<\/h2>\n\n\n\n<p>Generics are already here, and we have some new features for you.&nbsp;<\/p>\n\n\n\n<p>Starting from this build, the closing bracket is inserted as soon as you type an opening bracket.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1500\" height=\"600\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/01\/insert-bracket.gif\" alt=\"\" class=\"wp-image-221146\"\/><\/figure>\n\n\n\n<p>When you use completion, GoLand shows the type parameters and inserts the brackets for you.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1500\" height=\"600\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/01\/show-types.gif\" alt=\"\" class=\"wp-image-221160\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Generics-related-improvements-and-bug-fixes\">Generics-related improvements and bug-fixes&nbsp;<\/h2>\n\n\n\n<p>We started working on generics support some time ago. We focus on fixing false positive errors first, then false negatives, and finally on implementing new features.&nbsp;<\/p>\n\n\n\n<p>Some of the fixes have been backported to the 2021.3 version (read the <a href=\"https:\/\/youtrack.jetbrains.com\/articles\/GO-A-22\/GoLand-2021.3.1-(213.6461.23-build)-Release-Notes\" target=\"_blank\" rel=\"noopener\">release notes for 2021.3.1<\/a>). To learn about the changes implemented in v2022.1, please see our <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/GO?q=%23Resolved%20%23go-generics%20%232022.1%20\" target=\"_blank\" rel=\"noopener\">issue tracker<\/a>.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"String-formatting-support-for-testify-functions\">String formatting support for <em>testify<\/em> functions&nbsp;<\/h2>\n\n\n\n<p>The work in non-generic areas is ongoing as well. GoLand now reports errors if you use wrong formatting verbs in <em>testify<\/em>\/<em>assert <\/em>functions.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1500\" height=\"600\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/01\/testify-string-format.gif\" alt=\"\" class=\"wp-image-221174\"\/><\/figure>\n\n\n\n<p>Have you already tried our <em>Add format string argument<\/em> intention action? It helpfully inserts the placeholder into a format string and passes the expression as an argument for the placeholder.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1500\" height=\"600\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/01\/add-format-string.gif\" alt=\"\" class=\"wp-image-221188\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Run-commands-from-Markdown-files\">Run commands from Markdown files<\/h2>\n\n\n\n<p>We\u2019ve implemented a couple of improvements for working with Markdown files.&nbsp;<\/p>\n\n\n\n<p>If a Markdown file contains instructions with commands that you need to execute in your terminal, you can run those commands directly from the Markdown file using the <em>Run<\/em> icons in the gutter.<\/p>\n\n\n\n<p>We\u2019ve also added a <em>Copy code<\/em> snippet<em> <\/em>to Markdown blocks to help you easily copy contents to the clipboard.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1500\" height=\"600\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/01\/markdown.gif\" alt=\"\" class=\"wp-image-221202\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"The-new-Notifications-tool-window\">The new <em>Notifications<\/em> tool window<\/h2>\n\n\n\n<p>We\u2019ve replaced the <em>Event Log<\/em> instan\u0441e with a new <em>Notifications<\/em> tool window to highlight important and helpful notifications from the IDE.&nbsp;<\/p>\n\n\n\n<p>With this update, we aim to make notifications more visible and keep them better organized in a dedicated tool window that you can access from the navigation bar.&nbsp;<\/p>\n\n\n\n<p>All notifications that appear in the Notification tool window are sorted into two types:<em> Suggestions<\/em> and <em>Timeline<\/em>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"2800\" height=\"1120\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/01\/notifications-2800x1120.png\" alt=\"\" class=\"wp-image-221217\"\/><\/figure>\n\n\n\n<p>The <em>Suggestions<\/em> section presents notifications that are considered useful or helpful in most use cases.&nbsp;<\/p>\n\n\n\n<p>Notifications can be important or regular. If you get an important one, you\u2019ll see a red circle on the bell icon in the navigation bar. Regular notifications are marked with a blue circle.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"VCS-Updated-Commit-Details-pane-in-Git-tool-window\">VCS: Updated <em>Commit Details<\/em> pane in <em>Git<\/em> tool window<\/h2>\n\n\n\n<p>The <em>Commit details<\/em> pane now includes detailed information about a GPG signature.&nbsp;&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1600\" height=\"640\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/09\/image-22.png\" alt=\"\" class=\"wp-image-635952\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Code-reformatting-in-LightEdit-mode\">Code reformatting in <em>LightEdit<\/em> mode<\/h2>\n\n\n\n<p>We\u2019ve improved <em>LightEdit<\/em> mode, which allows you to edit your files without creating or loading the whole project. You can now reformat your code while in <em>LightEdit<\/em> mode. To do so, go to <em>Code<\/em> | <em>Reformat Code<\/em> in the main menu or press <em>\u2325\u2318L<\/em>\/<em>Ctrl+Alt+L<\/em>. Our <a href=\"https:\/\/www.jetbrains.com\/help\/go\/lightedit-mode.html\" target=\"_blank\" rel=\"noopener\">documentation<\/a> has more information about using the mode.<\/p>\n\n\n\n<p>That\u2019s it for today! Please tell us what you think about these new features and improvements. Get in touch with us on <a href=\"https:\/\/twitter.com\/GoLandIDE\" target=\"_blank\" rel=\"noopener\">Twitter<\/a>, leave your comments here, open an issue in <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/GO?_gl=1*1ryja4i*_ga*MTMzMTM3NzQ1MS4xNjIxOTM2MTky*_ga_0WQ2ZF5VGT*MTYyMjQ3MTM1Ny4zOS4xLjE2MjI0NzE0NDkuMA..&amp;_ga=2.61428393.463726163.1622398163-1331377451.1621936192&amp;_gac=1.49805012.1621529532.Cj0KCQjwkZiFBhD9ARIsAGxFX8CLxXvfJzlAlF42EN3ry-0foEM5GdeLKEOzRSUXC2Dj1LK8EQNhW5UaAoKBEALw_wcB\" target=\"_blank\" rel=\"noopener\">our tracker<\/a>, or drop us a message in the <a href=\"https:\/\/invite.slack.golangbridge.org\/\" target=\"_blank\" rel=\"noopener\">Gophers Slack<\/a> #goland channel. Thanks!&nbsp;<\/p>\n","protected":false},"author":1254,"featured_media":221896,"comment_status":"closed","ping_status":"closed","template":"","categories":[826],"tags":[600,2963,91],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/go\/221132"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/go"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/types\/go"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/users\/1254"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/comments?post=221132"}],"version-history":[{"count":10,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/go\/221132\/revisions"}],"predecessor-version":[{"id":635964,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/go\/221132\/revisions\/635964"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/media\/221896"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/media?parent=221132"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/categories?post=221132"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/tags?post=221132"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/cross-post-tag?post=221132"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}