{"id":235572,"date":"2021-12-01T11:00:48","date_gmt":"2021-12-01T19:00:48","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/visualstudio\/?p=235572"},"modified":"2021-12-02T08:00:33","modified_gmt":"2021-12-02T16:00:33","slug":"introducing-the-new-razor-editor-in-visual-studio-2022","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/visualstudio\/introducing-the-new-razor-editor-in-visual-studio-2022\/","title":{"rendered":"Introducing the new Razor editor in Visual Studio 2022"},"content":{"rendered":"<p><span class=\"TextRun SCXW258353525 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun CommentStart SCXW258353525 BCX0\" data-ccp-parastyle=\"Body Text\">With the release of Visual Studio 2022\u00a0<\/span><span class=\"NormalTextRun CommentStart SCXW258353525 BCX0\" data-ccp-parastyle=\"Body Text\">you can now use the new Razor editor for local ASP.NET Core development with MVC, Razor Pages, and Blazor.<\/span><\/span><\/p>\n<p><a href=\"https:\/\/visualstudio.microsoft.com\/launch\/\">Download Visual Studio 2022<\/a> and make sure to update to <strong>17.0.2<\/strong> to get the latest Razor updates.<\/p>\n<h3><span class=\"TextRun SCXW164523477 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW164523477 BCX0\" data-ccp-parastyle=\"Body Text\">Benefits of moving to a Razor Language Server Protocol<\/span><\/span><\/h3>\n<p><span class=\"TextRun SCXW106725829 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW106725829 BCX0\" data-ccp-parastyle=\"Body Text\">We have been working for some time on a new Razor editor for ASP.NET Core projects based on\u00a0<\/span><\/span><span class=\"TrackChangeTextDeletion TrackedChange SCXW106725829 BCX0\"><span class=\"TextRun SCXW106725829 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW106725829 BCX0\" data-ccp-parastyle=\"Body Text\">a <a href=\"https:\/\/microsoft.github.io\/language-server-protocol\/\">Language Server Protocol (LSP)<\/a>. <\/span><\/span><\/span><span class=\"TextRun SCXW106725829 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW106725829 BCX0\" data-ccp-parastyle=\"Body Text\">The <\/span><span class=\"NormalTextRun CommentStart SCXW106725829 BCX0\" data-ccp-parastyle=\"Body Text\">Language Server Protocol (LSP), <\/span><\/span><span class=\"TextRun SCXW106725829 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW106725829 BCX0\" data-ccp-parastyle=\"Body Text\">is an open-source protocol that defines a standard way for an editor or IDE to enable features. The LSP model has enabled<\/span><\/span><span class=\"EOP SCXW106725829 BCX0\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\"><span class=\"TextRun SCXW106725829 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW106725829 BCX0\" data-ccp-parastyle=\"Body Text\">\u00a0us to add significant new functionality, bringing many more of the C# editing features to Razor and enabling other new Razor specific productivity improvements at an accelerated pace.<\/span><\/span><\/span><\/p>\n<h3><span class=\"TextRun SCXW30315361 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW30315361 BCX0\" data-ccp-parastyle=\"Body Text\">What\u2019s available in the new Razor editor?<\/span><\/span><span class=\"EOP SCXW30315361 BCX0\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">\u00a0<\/span><\/h3>\n<p><span class=\"TextRun SCXW64832247 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW64832247 BCX0\" data-ccp-parastyle=\"Body Text\">The new model opens<\/span><span class=\"NormalTextRun SCXW64832247 BCX0\" data-ccp-parastyle=\"Body Text\">\u00a0the doors to add new code fixes and\u00a0<\/span><span class=\"NormalTextRun SpellingErrorV2 SCXW64832247 BCX0\" data-ccp-parastyle=\"Body Text\">refactorings<\/span><span class=\"NormalTextRun SCXW64832247 BCX0\" data-ccp-parastyle=\"Body Text\"> more easily. The most used refactoring, <strong>Add missing <\/strong><\/span><strong><span class=\"NormalTextRun SpellingErrorV2 SCXW64832247 BCX0\" data-ccp-parastyle=\"Body Text\">usings <\/span><\/strong><span class=\"NormalTextRun SCXW64832247 BCX0\" data-ccp-parastyle=\"Body Text\">is now supported in the <\/span><span class=\"NormalTextRun SCXW64832247 BCX0\" data-ccp-parastyle=\"Body Text\">R<\/span><span class=\"NormalTextRun SCXW64832247 BCX0\" data-ccp-parastyle=\"Body Text\">azor editor as well as many more!<\/span><\/span><span class=\"EOP SCXW64832247 BCX0\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/11\/add-missing-usings-razor-new.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-235573\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/11\/add-missing-usings-razor-new.png\" alt=\"Add missing usings refactoring\" width=\"936\" height=\"242\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/11\/add-missing-usings-razor-new.png 936w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/11\/add-missing-usings-razor-new-300x78.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/11\/add-missing-usings-razor-new-768x199.png 768w\" sizes=\"(max-width: 936px) 100vw, 936px\" \/><\/a><\/p>\n<p><span class=\"TextRun SCXW211478639 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW211478639 BCX0\" data-ccp-parastyle=\"Body Text\">There are also a few\u00a0<\/span><span class=\"NormalTextRun SpellingErrorV2 SCXW211478639 BCX0\" data-ccp-parastyle=\"Body Text\">refactorings<\/span><span class=\"NormalTextRun SCXW211478639 BCX0\" data-ccp-parastyle=\"Body Text\">\u00a0added that are specific to Razor development<\/span><span class=\"NormalTextRun SCXW211478639 BCX0\" data-ccp-parastyle=\"Body Text\">.\u00a0<\/span><span class=\"NormalTextRun SCXW211478639 BCX0\" data-ccp-parastyle=\"Body Text\">These are crucial for picking up the everyday syntax and common elements of\u00a0<\/span><span class=\"NormalTextRun SCXW211478639 BCX0\" data-ccp-parastyle=\"Body Text\">R<\/span><span class=\"NormalTextRun SCXW211478639 BCX0\" data-ccp-parastyle=\"Body Text\">azor.\u00a0<\/span><\/span><span class=\"TrackChangeTextInsertion TrackedChange SCXW211478639 BCX0\"><span class=\"TextRun SCXW211478639 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW211478639 BCX0\" data-ccp-parastyle=\"Body Text\">For example, <strong>E<\/strong><\/span><\/span><\/span><strong><span class=\"TrackChangeTextInsertion TrackedChange SCXW211478639 BCX0\"><span class=\"TextRun SCXW211478639 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW211478639 BCX0\" data-ccp-parastyle=\"Body Text\">xtract\u00a0<\/span><\/span><\/span><span class=\"TrackChangeTextInsertion TrackedChange SCXW211478639 BCX0\"><span class=\"TextRun SCXW211478639 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW211478639 BCX0\" data-ccp-parastyle=\"Body Text\">block\u00a0<\/span><\/span><\/span><span class=\"TrackChangeTextInsertion TrackedChange SCXW211478639 BCX0\"><span class=\"TextRun SCXW211478639 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW211478639 BCX0\" data-ccp-parastyle=\"Body Text\">to code behind<\/span><\/span><\/span><\/strong><span class=\"TrackChangeTextInsertion TrackedChange SCXW211478639 BCX0\"><span class=\"TextRun SCXW211478639 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW211478639 BCX0\" data-ccp-parastyle=\"Body Text\"> allows you to extract an entire code block to a code behind file <\/span><\/span><\/span><span class=\"TrackChangeTextInsertion TrackedChange SCXW211478639 BCX0\"><span class=\"TextRun SCXW211478639 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW211478639 BCX0\" data-ccp-parastyle=\"Body Text\">if you\u00a0<\/span><\/span><\/span><span class=\"TrackChangeTextInsertion TrackedChange SCXW211478639 BCX0\"><span class=\"TextRun SCXW211478639 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW211478639 BCX0\" data-ccp-parastyle=\"Body Text\">prefer the code behind pattern.<\/span><\/span><\/span><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/11\/razor-extract-to-code-behind.png\"><img decoding=\"async\" class=\"alignnone wp-image-235574 size-full\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/11\/razor-extract-to-code-behind.png\" alt=\"Extract to code behind refactoring\" width=\"1449\" height=\"840\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/11\/razor-extract-to-code-behind.png 1449w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/11\/razor-extract-to-code-behind-300x174.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/11\/razor-extract-to-code-behind-1024x594.png 1024w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/11\/razor-extract-to-code-behind-768x445.png 768w\" sizes=\"(max-width: 1449px) 100vw, 1449px\" \/><\/a><\/p>\n<p><span data-contrast=\"auto\">Additional new Razor refactorings include: <\/span><span data-contrast=\"auto\"><strong>Add usings for component<\/strong>, <\/span><span data-contrast=\"auto\"><strong>Fully qualify component<\/strong>, and <\/span><span data-contrast=\"auto\"><strong>Create component<\/strong>. Many more are planned in the future as Razor evolves.\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">There is also more navigation support.\u00a0One of the most used navigation features throughout Visual Studio is <strong>Go to Definition<\/strong>.\u00a0Go to Definition on components helps you quickly navigate throughout files to better understand your code.\u00a0For example, pressing <strong>F12<\/strong> on a component tag will now navigate you right to the component code.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/12\/razor-go-to-def2.png\"><img decoding=\"async\" class=\"alignnone wp-image-235602 size-full\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/12\/razor-go-to-def2.png\" alt=\"Go to Definition\" width=\"785\" height=\"209\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/12\/razor-go-to-def2.png 785w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/12\/razor-go-to-def2-300x80.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/12\/razor-go-to-def2-768x204.png 768w\" sizes=\"(max-width: 785px) 100vw, 785px\" \/><\/a><\/p>\n<p><span class=\"NormalTextRun BCX0 SCXW63392337\" data-ccp-parastyle=\"Body Text\">A cutting-edge<\/span><span class=\"NormalTextRun BCX0 SCXW63392337\" data-ccp-parastyle=\"Body Text\"> feature like <a href=\"https:\/\/docs.microsoft.com\/visualstudio\/debugger\/hot-reload?view=vs-2022\">Hot Reload<\/a> i<\/span><span class=\"NormalTextRun SpellingErrorV2 BCX0 DefaultHighlightTransition SCXW63392337\" data-ccp-parastyle=\"Body Text\">s <\/span><span class=\"NormalTextRun BCX0 SCXW63392337\" data-ccp-parastyle=\"Body Text\">best when the <strong>F5<\/strong> experience has useful diagnostics. This support\u00a0<\/span><span class=\"NormalTextRun BCX0 SCXW63392337\" data-ccp-parastyle=\"Body Text\">would not have been possible without the new\u00a0<\/span><span class=\"NormalTextRun BCX0 SCXW63392337\" data-ccp-parastyle=\"Body Text\">R<\/span><span class=\"NormalTextRun BCX0 SCXW63392337\" data-ccp-parastyle=\"Body Text\">azor editor\u2019s LSP model.<\/span><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/12\/Razor-Hot-Reload-VS2022.gif\"><img decoding=\"async\" class=\"alignnone wp-image-235591 size-full\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/12\/Razor-Hot-Reload-VS2022.gif\" alt=\"Hot Reload\" width=\"1920\" height=\"1008\" \/><\/a><\/p>\n<p><span class=\"TextRun SCXW177905922 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW177905922 BCX0\" data-ccp-parastyle=\"Body Text\">Default colors have been updated in the new Razor editor.\u00a0<\/span><span class=\"NormalTextRun SCXW177905922 BCX0\" data-ccp-parastyle=\"Body Text\">A major difference in this area is the removal of the code background highlight that was present in previous versions. This highlight made selections difficult to distinguish and added visual clutter for many developers.<\/span><\/span><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/11\/razor-colors-old-new.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-235577\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/11\/razor-colors-old-new.png\" alt=\"New default colors\" width=\"1185\" height=\"392\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/11\/razor-colors-old-new.png 1185w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/11\/razor-colors-old-new-300x99.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/11\/razor-colors-old-new-1024x339.png 1024w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2021\/11\/razor-colors-old-new-768x254.png 768w\" sizes=\"(max-width: 1185px) 100vw, 1185px\" \/><\/a><\/p>\n<p><span data-contrast=\"auto\">Formatting is an active area as more code styles, refactoring, and completion capabilities are added regularly. The new editor provides improved formatting that is better able to keep up with these changes helping code stay visually consistent.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">The new Razor editor supports the latest compiler features and polishes existing syntax interactions. Smarter Razor syntax completions, such as &lt;text&gt; completion and auto complete are now supported. The new editor also changes how diagnostics flow to ensure only the most important diagnostics are shown and diagnostics generated by the compiler are shown in their intended fidelity.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">\u00a0<\/span><\/p>\n<p><span class=\"TextRun SCXW107861852 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun CommentStart SCXW107861852 BCX0\" data-ccp-parastyle=\"Body Text\">Razor now\u00a0<\/span><span class=\"NormalTextRun SCXW107861852 BCX0\" data-ccp-parastyle=\"Body Text\">fully\u00a0<\/span><span class=\"NormalTextRun SCXW107861852 BCX0\" data-ccp-parastyle=\"Body Text\">supports\u00a0<\/span><\/span><a class=\"Hyperlink SCXW107861852 BCX0\" href=\"https:\/\/visualstudio.microsoft.com\/services\/live-share\/\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"TextRun Underlined SCXW107861852 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW107861852 BCX0\" data-ccp-charstyle=\"Hyperlink\">Visual Studio\u00a0<\/span><span class=\"NormalTextRun SCXW107861852 BCX0\" data-ccp-charstyle=\"Hyperlink\">Live<\/span><span class=\"NormalTextRun SCXW107861852 BCX0\" data-ccp-charstyle=\"Hyperlink\">\u00a0<\/span><span class=\"NormalTextRun SCXW107861852 BCX0\" data-ccp-charstyle=\"Hyperlink\">Share<\/span><\/span><\/a><span class=\"TextRun SCXW107861852 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun CommentStart SCXW107861852 BCX0\" data-ccp-parastyle=\"Body Text\">. Live<\/span><span class=\"NormalTextRun SCXW107861852 BCX0\" data-ccp-parastyle=\"Body Text\">\u00a0<\/span><span class=\"NormalTextRun SCXW107861852 BCX0\" data-ccp-parastyle=\"Body Text\">Share is a useful tool for collaborating remotely with other developers which enables code sharing from within the IDE. That shared context is an important part of the daily cycle of co-programming for many developers.<\/span><span class=\"NormalTextRun SCXW107861852 BCX0\" data-ccp-parastyle=\"Body Text\">\u00a0<\/span><\/span><span class=\"EOP SCXW107861852 BCX0\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">\u00a0<\/span><\/p>\n<h3><span data-contrast=\"auto\">Known Issues &amp; Roadmap<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">Razor\u00a0has accumulated a large backlog<\/span><span data-contrast=\"auto\">\u00a0<\/span><span data-contrast=\"auto\">of feature\u00a0request<\/span><span data-contrast=\"auto\">s<\/span><span data-contrast=\"auto\">\u00a0<\/span><span data-contrast=\"auto\">and bugs\u00a0since it was introduced over a decade ago<\/span><span data-contrast=\"auto\">. Addressing these issues in the legacy Razor editor was difficult and costly. The new Razor editor sets the team up for success in order to deliver bug fixes and features faster. We\u2019ve been monitoring the feedback on the new editor (thank you all for your help!) and understand we have a long way to go. Our focus has been bringing the new Razor editor to functional parity with the previous Razor editor and improving quality and performance. There are still a handful of functional gaps to address, and we expect to fill these gaps in upcoming releases. Below is a list of known limitations that we are working to address:<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">\u00a0<\/span><\/p>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">Snippets\u00a0support\u00a0(expansion with Tab)<\/span><span data-ccp-props=\"{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" aria-setsize=\"-1\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span data-contrast=\"auto\">Wrap div shortcut Shift+Alt+W<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" aria-setsize=\"-1\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span data-contrast=\"auto\">Ctrl+Click Go to Definition<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" aria-setsize=\"-1\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span data-contrast=\"auto\">#region code folding<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" aria-setsize=\"-1\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span data-contrast=\"auto\">Embedded JavaScript formatting<\/span><span data-ccp-props=\"{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" aria-setsize=\"-1\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span data-contrast=\"auto\">Drag &amp; Drop support for HTML, CSS, and JavaScript files<\/span><span data-ccp-props=\"{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" aria-setsize=\"-1\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span data-contrast=\"auto\">Performance and reliability improvements<\/span><span data-ccp-props=\"{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" aria-setsize=\"-1\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span data-contrast=\"auto\">Hot Reload support for Blazor Web<\/span><span data-contrast=\"auto\">\u00a0<\/span><span data-contrast=\"auto\">Assembly projects\u00a0when debugging<\/span><span data-ccp-props=\"{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<\/ul>\n<p><span class=\"TextRun SCXW72844070 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW72844070 BCX0\">You can learn more about\u00a0<\/span><span class=\"NormalTextRun SCXW72844070 BCX0\">our<\/span><span class=\"NormalTextRun SCXW72844070 BCX0\">\u00a0<\/span><span class=\"NormalTextRun SCXW72844070 BCX0\">r<\/span><span class=\"NormalTextRun SCXW72844070 BCX0\">oadmap and when we plan to address these issues on\u00a0<\/span><\/span><a class=\"Hyperlink SCXW72844070 BCX0\" href=\"https:\/\/github.com\/dotnet\/razor-tooling\/issues\/5687\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"TextRun Underlined SCXW72844070 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW72844070 BCX0\" data-ccp-charstyle=\"Hyperlink\">GitHub<\/span><\/span><\/a><span class=\"TextRun SCXW72844070 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW72844070 BCX0\">.<\/span><span class=\"NormalTextRun SCXW72844070 BCX0\">\u00a0<\/span><span class=\"NormalTextRun SCXW72844070 BCX0\">If you<\/span><span class=\"NormalTextRun SCXW72844070 BCX0\">\u00a0find<\/span><span class=\"NormalTextRun SCXW72844070 BCX0\">\u00a0that\u00a0<\/span><span class=\"NormalTextRun SCXW72844070 BCX0\">your<\/span><span class=\"NormalTextRun SCXW72844070 BCX0\">\u00a0developer productivity is limited in the new editor, y<\/span><span class=\"NormalTextRun SCXW72844070 BCX0\">ou can <\/span><span class=\"NormalTextRun AdvancedProofingIssueV2 CritiqueIndicatorHighlight SCXW72844070 BCX0\">revert back<\/span><span class=\"NormalTextRun SCXW72844070 BCX0\">\u00a0to the\u00a0<\/span><span class=\"NormalTextRun SCXW72844070 BCX0\">legacy<\/span><span class=\"NormalTextRun SCXW72844070 BCX0\">\u00a0editor\u00a0<\/span><span class=\"NormalTextRun SCXW72844070 BCX0\">by going to\u00a0<\/span><span class=\"NormalTextRun SCXW72844070 BCX0\">Tools &gt; Options &gt; Text Editor &gt; HTML &gt;\u00a0<\/span><span class=\"NormalTextRun SCXW72844070 BCX0\">Advanced and se<\/span><span class=\"NormalTextRun SCXW72844070 BCX0\">lect Tru<\/span><span class=\"NormalTextRun SCXW72844070 BCX0\">e<\/span><span class=\"NormalTextRun SCXW72844070 BCX0\">\u00a0from the dropdown<\/span><span class=\"NormalTextRun SCXW72844070 BCX0\">\u00a0next to Use legacy Razor editor for ASP.NET\u00a0<\/span><span class=\"NormalTextRun SCXW72844070 BCX0\">Core.<\/span><span class=\"NormalTextRun CommentStart SCXW72844070 BCX0\">\u00a0<\/span><span class=\"NormalTextRun SCXW72844070 BCX0\">Keep in mind that the legacy Razor editor will\u00a0<\/span><span class=\"NormalTextRun SCXW72844070 BCX0\">have limited functionality and not include the produ<\/span><span class=\"NormalTextRun SCXW72844070 BCX0\">ctivity improvements<\/span><span class=\"NormalTextRun SCXW72844070 BCX0\">\u00a0mentioned in this post<\/span><span class=\"NormalTextRun SCXW72844070 BCX0\">\u00a0that\u00a0<\/span><span class=\"NormalTextRun SCXW72844070 BCX0\">w<\/span><span class=\"NormalTextRun SCXW72844070 BCX0\">e added in the<\/span><span class=\"NormalTextRun SCXW72844070 BCX0\">\u00a0new\u00a0<\/span><span class=\"NormalTextRun SCXW72844070 BCX0\">Razor\u00a0<\/span><span class=\"NormalTextRun SCXW72844070 BCX0\">editor.<\/span><\/span><\/p>\n<h3><span class=\"TextRun SCXW199303299 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW199303299 BCX0\">Give us your feedback!<\/span><\/span><span class=\"EOP SCXW199303299 BCX0\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h3>\n<p><span class=\"TextRun SCXW206342804 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW206342804 BCX0\">We would love to get your feedback on the new Razor editor so\u00a0<\/span><span class=\"NormalTextRun SCXW206342804 BCX0\">please give it a try\u00a0<\/span><span class=\"NormalTextRun SCXW206342804 BCX0\">and let us know what you think<\/span><\/span><span class=\"TextRun SCXW206342804 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW206342804 BCX0\">!<\/span><\/span><span class=\"TextRun SCXW206342804 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW206342804 BCX0\"> You can share your feedback with us by creating an issue on <\/span><\/span><a class=\"Hyperlink SCXW206342804 BCX0\" href=\"https:\/\/github.com\/dotnet\/razor-tooling\/issues\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"TextRun Underlined SCXW206342804 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW206342804 BCX0\" data-ccp-charstyle=\"Hyperlink\">GitHub<\/span><\/span><\/a><span class=\"TextRun SCXW206342804 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW206342804 BCX0\">.\u00a0<\/span><\/span><span class=\"TextRun SCXW206342804 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW206342804 BCX0\">We appreciate your feedback!<\/span><\/span><span class=\"EOP SCXW206342804 BCX0\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>With the release of Visual Studio 2022\u00a0you can now use the new Razor editor for local ASP.NET Core development with MVC, Razor Pages, and Blazor. Download Visual Studio 2022 and make sure to update to 17.0.2 to get the latest Razor updates. Benefits of moving to a Razor Language Server Protocol We have been working [&hellip;]<\/p>\n","protected":false},"author":5818,"featured_media":228872,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[155],"tags":[],"class_list":["post-235572","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-visual-studio"],"acf":[],"blog_post_summary":"<p>With the release of Visual Studio 2022\u00a0you can now use the new Razor editor for local ASP.NET Core development with MVC, Razor Pages, and Blazor. Download Visual Studio 2022 and make sure to update to 17.0.2 to get the latest Razor updates. Benefits of moving to a Razor Language Server Protocol We have been working [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/235572","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/users\/5818"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/comments?post=235572"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/235572\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media\/228872"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media?parent=235572"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/categories?post=235572"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/tags?post=235572"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}