{"id":236850,"date":"2022-04-27T14:13:39","date_gmt":"2022-04-27T13:13:39","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=objc&#038;p=236850"},"modified":"2022-08-09T16:42:51","modified_gmt":"2022-08-09T15:42:51","slug":"appcode-2022-1","status":"publish","type":"appcode","link":"https:\/\/blog.jetbrains.com\/zh-hans\/appcode\/2022\/04\/appcode-2022-1","title":{"rendered":"AppCode 2022.1: Swift Support Improvements, Xcode 13.3 Support, and More"},"content":{"rendered":"<p>Please welcome our first major update this year \u2013 AppCode 2022.1!<\/p>\n<p><a href=\"https:\/\/www.jetbrains.com\/objc\/download\/?utm_source=twitter&amp;utm_medium=blog_post&amp;utm_campaign=appcode_release_2022_1\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/03\/Release_Preview_image_1280x600_AppCode-2x.png\" alt=\"AppCode 2022.1 released\" width=\"600\"><\/a><\/p>\n<h2 id=\"swift\">Swift<\/h2>\n<h3 id=\"language_support\">Language support<\/h3>\n<p>AppCode 2022.1 includes support for the following Swift features:<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/apple\/swift-evolution\/blob\/main\/proposals\/0298-asyncsequence.md\" target=\"_blank\" rel=\"noopener\">SE-0298<\/a>: async sequences<\/li>\n<li>First part of <a href=\"https:\/\/github.com\/apple\/swift-evolution\/blob\/main\/proposals\/0313-actor-isolation-control.md\" target=\"_blank\" rel=\"noopener\">SE-0313<\/a>: support for isolation control specifiers in Swift parser<\/li>\n<li><a href=\"https:\/\/github.com\/apple\/swift-evolution\/blob\/main\/proposals\/0308-postfix-if-config-expressions.md\" target=\"_blank\" rel=\"noopener\">SE-0308<\/a>: <code>#if<\/code> for postfix member expressions<\/li>\n<\/ul>\n<h3 id=\"swift_package_manager\">Swift Package Manager<\/h3>\n<p>We\u2019ve added an ability to update Swift Package Manager dependencies to the latest version (<em>Tools | Swift Package Manager | Update Dependencies<\/em>):<\/p>\n<p><img decoding=\"async\" alt=\"Update dependencies\" width=\"600\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/03\/spm-2x.png\"><\/p>\n<p>In addition to this, AppCode now automatically excludes <code>.swiftpm<\/code> directory contents from full-text search.<\/p>\n<h3 id=\"code_formatting\">Code formatting<\/h3>\n<p>We\u2019ve implemented the <strong>Incorrect formatting<\/strong> inspection, which notifies you when the current formatting of a file does not match the code style settings:<\/p>\n<p><img decoding=\"async\" alt=\"Incorrect formatting inspection\" width=\"600\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/03\/incorrect_formatting-2x.png\"><\/p>\n<p>Two new options are available for reformatting documentation comments in <em>Preferences | Editor | Code Style | Swift | Comment Code<\/em> \u2013 they allow to automatically add a space after <code>\/\/<\/code> for line comments:<\/p>\n<p><img decoding=\"async\" alt=\"Space for line comments\" width=\"600\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/03\/comments-2x.png\"><\/p>\n<h2 id=\"notifications\">Notifications<\/h2>\n<p>The new <strong>Notifications <\/strong>tool window makes notifications more visible and keeps them better organized:<\/p>\n<p><img decoding=\"async\" alt=\"Notifications\" width=\"600\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/03\/notifications-2x.png\"><\/p>\n<h2 id=\"accessibility\">Accessibility<\/h2>\n<p>VoiceOver support was significantly improved in AppCode 2022.1. The screen reader now reads the names and descriptions of Git branches in the <strong>Log<\/strong> tab and provides a voice prompt to use <code>\u2318L<\/code> to navigate through log filters.<\/p>\n<h2 id=\"version_control\">Version control<\/h2>\n<p>Thanks to IntelliJ Platform team, a lot of improvements are implemented for VCS:<\/p>\n<ul>\n<li>Line diff right in the editor window when hovering over the annotation when using the <strong>Annotate with Git Blame <\/strong>action:<img decoding=\"async\" alt=\"Annotate with Git Blame\" width=\"600\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/03\/annotate-2x.png\"><\/li>\n<li>Actions for applying suggested changes right from the comments for a particular pull request:<img decoding=\"async\" alt=\"Suggested changes\" width=\"600\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/03\/suggested-2x.png\"><\/li>\n<li><strong>Git File History<\/strong> window now works independently from the indexing process<\/li>\n<\/ul>\n<p>And last but not least: <strong>AppCode 2022.1 supports Xcode 13.3<\/strong>.<\/p>\n<p>Explore all the new features in detail on <a href=\"https:\/\/www.jetbrains.com\/objc\/whatsnew\/\" target=\"_blank\" rel=\"noopener\">our website<\/a>.<\/p>\n<p>We encourage you to give AppCode 2022.1 a try. If you have an active subscription, you can update today. Otherwise, we invite you to <a href=\"https:\/\/www.jetbrains.com\/objc\/download\/?utm_source=twitter&amp;utm_medium=blog_post&amp;utm_campaign=appcode_release_2022_1\" target=\"_blank\" rel=\"noopener\">start your free 30-day trial<\/a> to check out the new features and see what you think!<\/p>\n<p align=\"center\"><a class=\"jb-download-button\" href=\"https:\/\/www.jetbrains.com\/objc\/download\/?utm_source=twitter&amp;utm_medium=blog_post&amp;utm_campaign=appcode_release_2022_1\" target=\"_blank\" rel=\"noopener\"><i class=\"download-icon\"><\/i>DOWNLOAD<\/a><\/p>\n<p><em>Your AppCode team<\/em><br \/>\n<em>JetBrains<\/em><br \/>\n<em>The Drive to Develop<\/em><\/p>\n","protected":false},"author":437,"featured_media":243170,"comment_status":"closed","ping_status":"closed","template":"","categories":[4244,89,907],"tags":[6852,2923,1642,477,671,721,1199],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/appcode\/236850"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/appcode"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/types\/appcode"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/users\/437"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/comments?post=236850"}],"version-history":[{"count":10,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/appcode\/236850\/revisions"}],"predecessor-version":[{"id":243306,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/appcode\/236850\/revisions\/243306"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/media\/243170"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/media?parent=236850"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/categories?post=236850"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/tags?post=236850"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/cross-post-tag?post=236850"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}