{"id":212749,"date":"2021-12-13T17:18:46","date_gmt":"2021-12-13T16:18:46","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=go&#038;p=212749"},"modified":"2022-08-09T16:52:44","modified_gmt":"2022-08-09T15:52:44","slug":"goland-2022-1-roadmap","status":"publish","type":"go","link":"https:\/\/blog.jetbrains.com\/zh-hans\/go\/2021\/12\/13\/goland-2022-1-roadmap","title":{"rendered":"What\u2019s Next: GoLand 2022.1 Roadmap"},"content":{"rendered":"\n<p>A week ago we released GoLand 2021.3, the last major update of this year. In case you haven\u2019t had a chance&nbsp; to check it out, here are some of the new features in this version:&nbsp;<\/p>\n\n\n\n<ul><li>Native support for Go projects in WSL.<\/li><li><em>Inline Function<\/em> refactoring.<\/li><li>Support for remote development, in the beta stage.<\/li><li>Improvements to the debugger.<\/li><li>Two new postfix templates for converting strings to numbers.<\/li><li>Support for gRPC requests and completion for them.<\/li><li>New features for front-end web development and working with databases.<\/li><\/ul>\n\n\n\n<p>Would you prefer a more interactive approach to learning about these new GoLand features? Complete the <em>What\u2019s New in GoLand 2021.3<\/em> tutorial on the Welcome screen.<\/p>\n\n\n\n<p>Please take a moment to help us make GoLand better by <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/GO\" target=\"_blank\" rel=\"noopener\">sharing<\/a> your experience, feedback, and suggestions with us. And remember that your input helps hundreds of thousands of Gophers worldwide!<\/p>\n\n\n\n<p>We have a tradition of rewarding those who help. This time around, the most active contributors will receive a free 1-year GoLand subscription and a special branded t-shirt!<\/p>\n\n\n\n<p>Here\u2019s a list of those wonderful people:<\/p>\n\n\n\n<ul><li>Vasily Kirichenko (<em>YouTrack username: <\/em><em>kot2008<\/em>)<\/li><li>Denis Cheremisov (<em>YouTrack username: sirkon<\/em>)<\/li><li>Chris Cunningham<\/li><\/ul>\n\n\n\n<p>We love hearing from you, and every <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/GO\" target=\"_blank\" rel=\"noopener\">issue<\/a> you submit is very much appreciated.<\/p>\n\n\n\n<p>Now let\u2019s take a look at our plans going forward.&nbsp;<\/p>\n\n\n\n<p><strong>Please note that we can\u2019t guarantee that all of the features listed below will be included in GoLand 2022.1.<\/strong><\/p>\n\n\n\n<p>Generics has been the most discussed feature in the community for many years. The upcoming Go 1.18 release at the beginning of next year will give us the generics support &nbsp;that many users have been eagerly awaiting. Of course, we couldn\u2019t let this development go unnoticed, and we have lots of plans to make your work with generics in GoLand a pure pleasure with fully equipped support. We can definitely say that this release is going to be dedicated to Go 1.18 and generics.&nbsp;&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Generics&nbsp;<\/strong><\/h2>\n\n\n\n<p>Let\u2019s take a look at what we\u2019re adding for you!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Compilation error warnings right in the editor&nbsp;<\/h3>\n\n\n\n<p>GoLand will catch up to the compiler by providing compilation error warnings for generics right in the editor. For example, GoLand 2022.1 will notify you when a type parameter is used in a composite literal, report an incompatible type passed to a generic function or an invalid use of ~ in type constraints, and much more.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Code completion<\/h3>\n\n\n\n<p>GoLand will show type parameters in the dropdown menu, automatically insert brackets in generic types, provide Smart Code Completion for type constraints, and more.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Refactorings&nbsp;<\/h3>\n\n\n\n<p><em>Change Signature<\/em> and <em>Inline Method<\/em> will be updated to support generics too!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Debugger&nbsp;&amp; Profiler<\/h3>\n\n\n\n<p>GoLand will properly display generics\u2019 types and functions and let you navigate to their definition.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Formatter&nbsp;<\/h3>\n\n\n\n<p>Code formatting for generics will be aligned with gofmt.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Go 1.18<\/strong>&nbsp;<\/h2>\n\n\n\n<p>We\u2019ll be adding support for a new Go feature called <em>workspace <\/em>mode, which is going to make working on multiple modules at the same time easier. <em>Workspace <\/em>mode uses a file named <em>go.work, <\/em>where local modules<em> <\/em>that include a workspace will be specified. If you invoke a go command in <em>workspace<\/em> mode, the command will select the modules specified in <em>go.work<\/em> and a consistent set of dependencies. This will help you make changes across multiple modules and allow you to stop using the <em>replace <\/em>directive inside <em>go.mod<\/em>. To learn more about workspaces, please follow this <a href=\"https:\/\/github.com\/golang\/go\/issues\/45713\" target=\"_blank\" rel=\"noopener\">issue on GitHub<\/a>.<\/p>\n\n\n\n<p>GoLand already has <em>Code Completion<\/em> for fuzzing that\u2019s similar to one for test functions. In the next release, it will be possible to run fuzzing right inside the IDE. If you are curious about what fuzzing is, check out <a href=\"https:\/\/go.dev\/blog\/fuzz-beta\" target=\"_blank\" rel=\"noopener\">this blog post<\/a> by the Go team.&nbsp;<\/p>\n\n\n\n<p>In case you have any doubt about reporting a bug or suggesting a feature, please know that we are always happy to hear from you. Don\u2019t be shy!&nbsp; Send us your feature requests via the <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/GO\" target=\"_blank\" rel=\"noopener\">bug tracker<\/a> or tweet us <a href=\"https:\/\/twitter.com\/golandide\" target=\"_blank\" rel=\"noopener\">@GoLandIDE<\/a>.&nbsp;<\/p>\n\n\n\n<p>That\u2019s all for today. Thank you!<\/p>\n","protected":false},"author":754,"featured_media":0,"comment_status":"closed","ping_status":"closed","template":"","categories":[934],"tags":[2963,6840,91],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/go\/212749"}],"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\/754"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/comments?post=212749"}],"version-history":[{"count":4,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/go\/212749\/revisions"}],"predecessor-version":[{"id":212808,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/go\/212749\/revisions\/212808"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/media?parent=212749"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/categories?post=212749"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/tags?post=212749"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/cross-post-tag?post=212749"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}