diff --git a/Razor.sln b/Razor.sln
index 888ddf6935..8e17b83910 100644
--- a/Razor.sln
+++ b/Razor.sln
@@ -178,6 +178,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shims", "Shims", "{6B566FE3
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Microsoft.AspNetCore.Razor.Serialization.Json", "src\Shared\Microsoft.AspNetCore.Razor.Serialization.Json\Microsoft.AspNetCore.Razor.Serialization.Json.shproj", "{CD6913F3-EC47-4470-9C45-F5F898615E9D}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.VisualStudio.LegacyEditor.Razor", "src\Razor\src\Microsoft.VisualStudio.LegacyEditor.Razor\Microsoft.VisualStudio.LegacyEditor.Razor.csproj", "{18E29992-32E3-4801-90EE-C8D8E76F637A}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.VisualStudio.LegacyEditor.Razor.Test", "src\Razor\test\Microsoft.VisualStudio.LegacyEditor.Razor.Test\Microsoft.VisualStudio.LegacyEditor.Razor.Test.csproj", "{094A024C-7DC1-487B-9F52-9D65CDFEE18D}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -714,6 +718,22 @@ Global
{C504C2D7-8313-46D8-A159-7EB79047C09C}.Release|Any CPU.Build.0 = Release|Any CPU
{C504C2D7-8313-46D8-A159-7EB79047C09C}.ReleaseNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
{C504C2D7-8313-46D8-A159-7EB79047C09C}.ReleaseNoVSIX|Any CPU.Build.0 = Debug|Any CPU
+ {18E29992-32E3-4801-90EE-C8D8E76F637A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {18E29992-32E3-4801-90EE-C8D8E76F637A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {18E29992-32E3-4801-90EE-C8D8E76F637A}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
+ {18E29992-32E3-4801-90EE-C8D8E76F637A}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
+ {18E29992-32E3-4801-90EE-C8D8E76F637A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {18E29992-32E3-4801-90EE-C8D8E76F637A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {18E29992-32E3-4801-90EE-C8D8E76F637A}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
+ {18E29992-32E3-4801-90EE-C8D8E76F637A}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
+ {094A024C-7DC1-487B-9F52-9D65CDFEE18D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {094A024C-7DC1-487B-9F52-9D65CDFEE18D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {094A024C-7DC1-487B-9F52-9D65CDFEE18D}.DebugNoVSIX|Any CPU.ActiveCfg = Debug|Any CPU
+ {094A024C-7DC1-487B-9F52-9D65CDFEE18D}.DebugNoVSIX|Any CPU.Build.0 = Debug|Any CPU
+ {094A024C-7DC1-487B-9F52-9D65CDFEE18D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {094A024C-7DC1-487B-9F52-9D65CDFEE18D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {094A024C-7DC1-487B-9F52-9D65CDFEE18D}.ReleaseNoVSIX|Any CPU.ActiveCfg = Release|Any CPU
+ {094A024C-7DC1-487B-9F52-9D65CDFEE18D}.ReleaseNoVSIX|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -794,6 +814,8 @@ Global
{C504C2D7-8313-46D8-A159-7EB79047C09C} = {C2E49955-A0B0-4F4A-B3AC-F120DCF9B13F}
{6B566FE3-31FB-4299-8433-07E09653E811} = {92463391-81BE-462B-AC3C-78C6C760741F}
{CD6913F3-EC47-4470-9C45-F5F898615E9D} = {3AE210D1-C435-4693-BF79-2EF13ED554B9}
+ {18E29992-32E3-4801-90EE-C8D8E76F637A} = {3C0D6505-79B3-49D0-B4C3-176F0F1836ED}
+ {094A024C-7DC1-487B-9F52-9D65CDFEE18D} = {92463391-81BE-462B-AC3C-78C6C760741F}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {0035341D-175A-4D05-95E6-F1C2785A1E26}
diff --git a/src/Razor/src/Microsoft.AspNetCore.Razor.ExternalAccess.LegacyEditor/Microsoft.AspNetCore.Razor.ExternalAccess.LegacyEditor.csproj b/src/Razor/src/Microsoft.AspNetCore.Razor.ExternalAccess.LegacyEditor/Microsoft.AspNetCore.Razor.ExternalAccess.LegacyEditor.csproj
index d54866891b..c0a6db0c78 100644
--- a/src/Razor/src/Microsoft.AspNetCore.Razor.ExternalAccess.LegacyEditor/Microsoft.AspNetCore.Razor.ExternalAccess.LegacyEditor.csproj
+++ b/src/Razor/src/Microsoft.AspNetCore.Razor.ExternalAccess.LegacyEditor/Microsoft.AspNetCore.Razor.ExternalAccess.LegacyEditor.csproj
@@ -14,6 +14,7 @@
+
diff --git a/src/Razor/src/Microsoft.VisualStudio.Editor.Razor/Properties/AssemblyInfo.cs b/src/Razor/src/Microsoft.VisualStudio.Editor.Razor/Properties/AssemblyInfo.cs
index 5afca04b91..6def518b85 100644
--- a/src/Razor/src/Microsoft.VisualStudio.Editor.Razor/Properties/AssemblyInfo.cs
+++ b/src/Razor/src/Microsoft.VisualStudio.Editor.Razor/Properties/AssemblyInfo.cs
@@ -16,6 +16,8 @@ using System.Runtime.CompilerServices;
[assembly: InternalsVisibleTo("Microsoft.VisualStudio.Editor.Razor.Test, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
[assembly: InternalsVisibleTo("Microsoft.VisualStudio.LanguageServices.Razor, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
[assembly: InternalsVisibleTo("Microsoft.VisualStudio.LanguageServices.Razor.Test, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
+[assembly: InternalsVisibleTo("Microsoft.VisualStudio.LegacyEditor.Razor, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
+[assembly: InternalsVisibleTo("Microsoft.VisualStudio.LegacyEditor.Razor.Test, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
[assembly: InternalsVisibleTo("Microsoft.VisualStudio.Razor.IntegrationTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
[assembly: InternalsVisibleTo("Microsoft.VisualStudio.RazorExtension, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
[assembly: InternalsVisibleTo("Microsoft.Ide.Web, PublicKey=0024000004800000940000000602000000240000525341310004000001000100675da410943cdcf89a2bbd3716e451b3c35c0de9278a874e06d143dbc861f7b4d21771131177e413290078b98615421b2bb9ac25c14021c4e2c7b967407b5ea96417317ff8bdb1ef34e0d63f5965bdf92841bdaae505987af712a2e1951b2ff76a16d211e0d5ae2c444f55dbd0a3c0f5bed051af0cf7bae49114c4e0c527c4ed")]
diff --git a/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Microsoft.VisualStudio.LegacyEditor.Razor.csproj b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Microsoft.VisualStudio.LegacyEditor.Razor.csproj
new file mode 100644
index 0000000000..c8f069648d
--- /dev/null
+++ b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Microsoft.VisualStudio.LegacyEditor.Razor.csproj
@@ -0,0 +1,29 @@
+
+
+
+ $(DefaultNetFxTargetFramework)
+ false
+ false
+ true
+ false
+
+
+
+
+ true
+ $(ProjectName).Resources
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/PublicAPI/PublicAPI.Shipped.txt b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/PublicAPI/PublicAPI.Shipped.txt
new file mode 100644
index 0000000000..ab058de62d
--- /dev/null
+++ b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/PublicAPI/PublicAPI.Shipped.txt
@@ -0,0 +1 @@
+#nullable enable
diff --git a/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/PublicAPI/PublicAPI.Unshipped.txt b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/PublicAPI/PublicAPI.Unshipped.txt
new file mode 100644
index 0000000000..91b0e1a43b
--- /dev/null
+++ b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/PublicAPI/PublicAPI.Unshipped.txt
@@ -0,0 +1 @@
+#nullable enable
\ No newline at end of file
diff --git a/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/SR.resx b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/SR.resx
new file mode 100644
index 0000000000..1af7de150c
--- /dev/null
+++ b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/SR.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.cs.xlf b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.cs.xlf
new file mode 100644
index 0000000000..62bacffdb3
--- /dev/null
+++ b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.cs.xlf
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.de.xlf b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.de.xlf
new file mode 100644
index 0000000000..cb90663543
--- /dev/null
+++ b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.de.xlf
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.es.xlf b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.es.xlf
new file mode 100644
index 0000000000..fbd7cc4b27
--- /dev/null
+++ b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.es.xlf
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.fr.xlf b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.fr.xlf
new file mode 100644
index 0000000000..924b0a2297
--- /dev/null
+++ b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.fr.xlf
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.it.xlf b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.it.xlf
new file mode 100644
index 0000000000..083ce34321
--- /dev/null
+++ b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.it.xlf
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.ja.xlf b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.ja.xlf
new file mode 100644
index 0000000000..823828e154
--- /dev/null
+++ b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.ja.xlf
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.ko.xlf b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.ko.xlf
new file mode 100644
index 0000000000..b9807da0e5
--- /dev/null
+++ b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.ko.xlf
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.pl.xlf b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.pl.xlf
new file mode 100644
index 0000000000..0723cb4e7c
--- /dev/null
+++ b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.pl.xlf
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.pt-BR.xlf b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.pt-BR.xlf
new file mode 100644
index 0000000000..b08f23fb62
--- /dev/null
+++ b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.pt-BR.xlf
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.ru.xlf b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.ru.xlf
new file mode 100644
index 0000000000..5b8af3cb54
--- /dev/null
+++ b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.ru.xlf
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.tr.xlf b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.tr.xlf
new file mode 100644
index 0000000000..4292cb05ad
--- /dev/null
+++ b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.tr.xlf
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.zh-Hans.xlf b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.zh-Hans.xlf
new file mode 100644
index 0000000000..006de75a48
--- /dev/null
+++ b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.zh-Hans.xlf
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.zh-Hant.xlf b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.zh-Hant.xlf
new file mode 100644
index 0000000000..6392015e14
--- /dev/null
+++ b/src/Razor/src/Microsoft.VisualStudio.LegacyEditor.Razor/Resources/xlf/SR.zh-Hant.xlf
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Razor/src/Microsoft.VisualStudio.RazorExtension/Microsoft.VisualStudio.RazorExtension.csproj b/src/Razor/src/Microsoft.VisualStudio.RazorExtension/Microsoft.VisualStudio.RazorExtension.csproj
index e09e19726d..2d7f85f4eb 100644
--- a/src/Razor/src/Microsoft.VisualStudio.RazorExtension/Microsoft.VisualStudio.RazorExtension.csproj
+++ b/src/Razor/src/Microsoft.VisualStudio.RazorExtension/Microsoft.VisualStudio.RazorExtension.csproj
@@ -226,6 +226,7 @@
+
diff --git a/src/Razor/src/Microsoft.VisualStudio.RazorExtension/source.extension.vsixmanifest b/src/Razor/src/Microsoft.VisualStudio.RazorExtension/source.extension.vsixmanifest
index bb183cdee0..684295f97d 100644
--- a/src/Razor/src/Microsoft.VisualStudio.RazorExtension/source.extension.vsixmanifest
+++ b/src/Razor/src/Microsoft.VisualStudio.RazorExtension/source.extension.vsixmanifest
@@ -64,6 +64,8 @@
+
+
diff --git a/src/Razor/test/Microsoft.VisualStudio.LegacyEditor.Razor.Test/Microsoft.VisualStudio.LegacyEditor.Razor.Test.csproj b/src/Razor/test/Microsoft.VisualStudio.LegacyEditor.Razor.Test/Microsoft.VisualStudio.LegacyEditor.Razor.Test.csproj
new file mode 100644
index 0000000000..c26bd81a82
--- /dev/null
+++ b/src/Razor/test/Microsoft.VisualStudio.LegacyEditor.Razor.Test/Microsoft.VisualStudio.LegacyEditor.Razor.Test.csproj
@@ -0,0 +1,18 @@
+
+
+
+ $(DefaultNetFxTargetFramework)
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Razor/test/Microsoft.VisualStudio.LegacyEditor.Razor.Test/xunit.runner.json b/src/Razor/test/Microsoft.VisualStudio.LegacyEditor.Razor.Test/xunit.runner.json
new file mode 100644
index 0000000000..fcf172c8fc
--- /dev/null
+++ b/src/Razor/test/Microsoft.VisualStudio.LegacyEditor.Razor.Test/xunit.runner.json
@@ -0,0 +1,4 @@
+{
+ "methodDisplay": "method",
+ "shadowCopy": false
+}
\ No newline at end of file