{"id":343295,"date":"2023-04-19T12:39:18","date_gmt":"2023-04-19T11:39:18","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=go&#038;p=343295"},"modified":"2023-04-19T12:43:05","modified_gmt":"2023-04-19T11:43:05","slug":"roadmap-2023-2","status":"publish","type":"go","link":"https:\/\/blog.jetbrains.com\/zh-hans\/go\/2023\/04\/19\/roadmap-2023-2","title":{"rendered":"What\u2019s Next: GoLand Roadmap 2023.2"},"content":{"rendered":"\n<p>At the beginning of April, we released <a href=\"https:\/\/www.jetbrains.com\/go\/whatsnew\/2023-1\/\" target=\"_blank\" rel=\"noopener\">GoLand 2023.1<\/a>.&nbsp;<\/p>\n\n\n\n<p>If you haven\u2019t had a chance to check it out, here\u2019s a brief overview:&nbsp;<\/p>\n\n\n\n<p>GoLand 2023.1 introduces the vulnerability checker, better navigation in gRPC code, and the <em>Rename<\/em> refactoring for generic receivers.<\/p>\n\n\n\n<p>Interface implementations are now shown in the editor with <em>Code Vision<\/em>.<\/p>\n\n\n\n<p>You can now run scratch files with non-standard-library packages, use regular expressions to create your own search and replace inspections, and quickly convert raw string literals to double-quoted ones and vice versa. The <em>Implement interface<\/em> intention action now works for unexported interfaces.<\/p>\n\n\n\n<p>You will also find several improvements to the new UI, updates for Docker and Kubernetes, and additional enhancements for web development.<\/p>\n\n\n\n<p>You can read more about the new features on the <a href=\"https:\/\/www.jetbrains.com\/go\/whatsnew\/\" target=\"_blank\" rel=\"noopener\">What\u2019s New<\/a> page. <\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"What&#039;s New in GoLand 2023.1\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/wGezJJIR5EQ?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>If you prefer an interactive approach to learning about the new functionality, check out the <em>What&#8217;s New in GoLand 2023.1 <\/em>tutorial, which can be accessed from the <em>Welcome<\/em> screen.<\/p>\n\n\n\n<p align=\"center\">\n    <a class=\"jb-download-button\" href=\"https:\/\/www.jetbrains.com\/go\/nextversion\/\" target=\"_blank\" rel=\"noopener\">      \n        Download GoLand 2023.1\n    <\/a>\n<\/p>\n\n\n\n<p>The team really enjoyed working on this release. But we didn\u2019t do it alone. Many users helped us improve GoLand by <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/GO\" target=\"_blank\" rel=\"noopener\">sharing<\/a> their feedback and suggesting improvements, and we\u2019d like to shout out to them here. You rock!<\/p>\n\n\n\n<p>These authors provided the most valuable contributions to the 2023.1 EAP:<\/p>\n\n\n\n<ul>\n<li>Nazar Pysko (nazarpysko)<\/li>\n\n\n\n<li>Notealot Yu (714804968)<\/li>\n\n\n\n<li>Eric Ye (trghoer)<\/li>\n<\/ul>\n\n\n\n<p>Thanks a lot \u2013 your time and effort are greatly appreciated! We will contact you shortly to offer a 1-year GoLand subscription and a branded T-shirt.<\/p>\n\n\n\n<p>As usual, after releasing a major version, we\u2019d like to share our plans for the next one.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">GoLand 2023.2: What\u2019s coming next?<\/h2>\n\n\n\n<p><strong>Please note: We can\u2019t guarantee that all of the features listed below will be included in GoLand 2023.2.<\/strong><\/p>\n\n\n\n<p>We plan to focus on two main areas: user experience and error handling.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">UX<\/h3>\n\n\n\n<p>In the user experience area, we\u2019d like to implement several solutions and fixes. We hope these improvements will make using GoLand more enjoyable for you:<\/p>\n\n\n\n<ul>\n<li><strong>Migration from VS Code<\/strong>. We will bundle the VS Code keymap and add a VS Code migration dialog to the <em>Welcome<\/em> screen.<\/li>\n\n\n\n<li><strong><code>go mod download<\/code>.<\/strong> To download Go modules in a project in GoLand, right now you need to apply a quick-fix. Some users want GoLand to run <code>go mod download<\/code> automatically. The discussion about which approach is better has continued for some time. In v2023.2, we will implement a solution allowing users to turn the automatic download of modules on and off.<\/li>\n\n\n\n<li><strong><code>GOPATH<\/code><\/strong>. The \u201cGOPATH is empty\u201d notification may confuse some users (mostly new ones). As of Go 1.18, you don\u2019t need to set <code>GOPATH<\/code> manually because it is set to <code>~\/go<\/code> by default. But \u201cGOPATH is empty\u201d is still shown in GoLand for users who didn\u2019t configure <code>GOPATH<\/code> explicitly, didn\u2019t set the corresponding environment variable, and don\u2019t have a <code>~\/go<\/code> directory. We will clarify this warning.&nbsp;<\/li>\n\n\n\n<li><strong>Vendoring.<\/strong> Currently, vendoring is enabled in GoLand, depending on the language version. It\u2019s not convenient in some cases \u2013 for instance when you have a monorepo containing the <code>vendor<\/code> folder used by another language, you might want to ignore it. We will allow disabling vendoring for such cases.<\/li>\n\n\n\n<li><strong>The <\/strong><strong><em>Structure<\/em><\/strong><strong> tool window<\/strong>. Sometimes users want the <em>Structure<\/em> tool window to show only the methods inside the file and not in the whole package. This is especially relevant in big projects where a type can have dozens of fields and methods. We will provide an option to show only the symbols in a file.<\/li>\n\n\n\n<li><strong><em>Find Usages<\/em><\/strong>. The <em>Find Usages<\/em> popup will show package names, so that you will be able to tell apart identically named files in different packages.<\/li>\n\n\n\n<li><strong>Debugger<\/strong>. We will implement a solution for showing a long string value in the <em>View<\/em> popup.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Errors<\/h3>\n\n\n\n<p>Error handling remains a challenge for Go developers. The <a href=\"https:\/\/go.dev\/blog\/survey2022-q2-results\" target=\"_blank\" rel=\"noopener\">Go survey<\/a> states, \u201cFollowing the release of generics, respondents\u2019 top challenge when working with Go shifted to error handling.\u201d<\/p>\n\n\n\n<p>In the next version, we will work on some improvements in this area:<\/p>\n\n\n\n<ul>\n<li>We will support multiple errors \u2013 a feature <a href=\"https:\/\/go.dev\/blog\/go1.20\" target=\"_blank\" rel=\"noopener\">introduced<\/a> in Go 1.20.&nbsp;<\/li>\n\n\n\n<li><a href=\"http:\/\/go.dev\/blog\/go1.13-errors\" target=\"_blank\" rel=\"noopener\"><code>errors.As<\/code><\/a> and <a href=\"https:\/\/go.dev\/blog\/go1.13-errors\" target=\"_blank\" rel=\"noopener\"><code>errors.Is<\/code><\/a> will be supported.<\/li>\n\n\n\n<li>We will also implement a solution for hiding error-handling blocks.&nbsp;<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Intention previews<\/h3>\n\n\n\n<p>We\u2019ve enabled the preview of intentions and quick-fixes by default in 2022.3. We\u2019re implementing support for all the cases gradually.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Profiling Go programs<\/h3>\n\n\n\n<p>Go 1.20 supports collecting code coverage profiles for programs, not just <a href=\"https:\/\/www.jetbrains.com\/help\/go\/profiling-tests-and-benchmarks.html\" target=\"_blank\" rel=\"noopener\">tests<\/a>. This will allow us to implement support for profiling Go programs in GoLand.\u00a0<\/p>\n\n\n\n<p>If you\u2019d like to report a bug or suggest a feature, we are always happy to hear from you! Send us your feature requests via our <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>.<\/p>\n","protected":false},"author":1254,"featured_media":343315,"comment_status":"closed","ping_status":"closed","template":"","categories":[89],"tags":[640],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/go\/343295"}],"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=343295"}],"version-history":[{"count":10,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/go\/343295\/revisions"}],"predecessor-version":[{"id":343614,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/go\/343295\/revisions\/343614"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/media\/343315"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/media?parent=343295"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/categories?post=343295"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/tags?post=343295"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/cross-post-tag?post=343295"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}