Browse Source

Add Asp.NET MVC addin.

Code completion and folding currently disabled for
Razor and Web Forms (.aspx) files.
newNRvisualizers
Matt Ward 13 years ago
parent
commit
f21be253f2
  1. 22
      SharpDevelop.Tests.sln
  2. 11
      SharpDevelop.sln
  3. 42
      src/AddIns/BackendBindings/AspNet.Mvc/AspNet.Mvc.sln
  4. 4
      src/AddIns/BackendBindings/AspNet.Mvc/Project/AspNet.Mvc.addin
  5. 13
      src/AddIns/BackendBindings/AspNet.Mvc/Project/AspNet.Mvc.csproj
  6. 3
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcControllerToProjectCommand.cs
  7. 4
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcViewToProjectCommand.cs
  8. 54
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/Completion/RazorCSharpCompletionBinding.cs
  9. 28
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/Completion/RazorCSharpDotCompletionDataProvider.cs
  10. 86
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/Completion/RazorCSharpExpressionFinder.cs
  11. 68
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/Completion/RazorCSharpModelTypeLocater.cs
  12. 106
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/Completion/RazorCSharpParser.cs
  13. 209
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/Completion/RazorCSharpResolver.cs
  14. 69
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/Completion/RazorCompilationUnit.cs
  15. 4
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/Folding/HtmlLanguageBinding.cs
  16. 5
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/Folding/TextEditorWithParseInformationFolding.cs
  17. 5
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/IISAdministrator.cs
  18. 2
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/IISExpressAdministrator.cs
  19. 32
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/MvcClass.cs
  20. 2
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/MvcFileGenerationErrorReporter.cs
  21. 10
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/MvcParserService.cs
  22. 12
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/MvcProjectContent.cs
  23. 8
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/WebBehavior.cs
  24. 67
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/WebProjectService.cs
  25. 14
      src/AddIns/BackendBindings/AspNet.Mvc/Test/AspNet.Mvc.Tests.csproj
  26. 33
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Helpers/FakeClass.cs
  27. 2
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Helpers/FakeMvcClass.cs
  28. 3
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Helpers/MSBuildProjectHelper.cs
  29. 11
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Helpers/TestableProject.cs
  30. 17
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Helpers/TestableProjectContent.cs
  31. 3
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/AddMvcControllerToProjectViewModelTests.cs
  32. 2
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/AddMvcViewToProjectViewModelTests.cs
  33. 296
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/Completion/RazorCSharpParserTests.cs
  34. 2
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/IISExpressProcessStartInfoTests.cs
  35. 2
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/IsMvcControllerFolderSelectedConditionEvaluatorTests.cs
  36. 2
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/IsMvcViewFolderSelectedConditionEvaluatorTests.cs
  37. 30
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/MvcClassTests.cs
  38. 2
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/MvcControllerFileGeneratorTests.cs
  39. 2
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/MvcModelClassLocatorTests.cs
  40. 2
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/MvcProjectFileTests.cs
  41. 2
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/MvcProjectTests.cs
  42. 33
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/MvcTestsBase.cs
  43. 2
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/MvcViewFileGeneratorTests.cs
  44. 2
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/SelectedFolderNodeInProjectsViewTests.cs
  45. 2
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/SelectedMvcViewFolderTests.cs
  46. 2
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/VisualStudioProjectExtensionTests.cs
  47. 6
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/WebProjectTests.cs
  48. 2
      src/Setup/Files.wxs
  49. 4
      src/Setup/Setup.wxs

22
SharpDevelop.Tests.sln

@ -83,6 +83,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharpBinding.Tests", "src\ @@ -83,6 +83,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharpBinding.Tests", "src\
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XamlBinding", "src\AddIns\BackendBindings\XamlBinding\XamlBinding\XamlBinding.csproj", "{7C96B65D-28A5-4F28-A35B-8D83CE831EE8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AspNet.Mvc.Tests", "src\AddIns\BackendBindings\AspNet.Mvc\Test\AspNet.Mvc.Tests.csproj", "{0B12A079-B2DB-42B9-8A8E-AA5CBC2B3225}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AspNet.Mvc", "src\AddIns\BackendBindings\AspNet.Mvc\Project\AspNet.Mvc.csproj", "{D781721F-C2A7-4E95-B76F-247170AC3B13}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Misc", "Misc", "{F3662720-9EA2-4591-BBC6-97361DCE50A9}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
@ -605,6 +609,22 @@ Global @@ -605,6 +609,22 @@ Global
DC88D67C-E6B5-4994-9FA9-D4AB0E162FB3.Release|Any CPU.ActiveCfg = Release|Any CPU
DC88D67C-E6B5-4994-9FA9-D4AB0E162FB3.Release|x86.Build.0 = Release|Any CPU
DC88D67C-E6B5-4994-9FA9-D4AB0E162FB3.Release|x86.ActiveCfg = Release|Any CPU
{0B12A079-B2DB-42B9-8A8E-AA5CBC2B3225}.Debug|Any CPU.Build.0 = Debug|x86
{0B12A079-B2DB-42B9-8A8E-AA5CBC2B3225}.Debug|Any CPU.ActiveCfg = Debug|x86
{0B12A079-B2DB-42B9-8A8E-AA5CBC2B3225}.Debug|x86.Build.0 = Debug|x86
{0B12A079-B2DB-42B9-8A8E-AA5CBC2B3225}.Debug|x86.ActiveCfg = Debug|x86
{0B12A079-B2DB-42B9-8A8E-AA5CBC2B3225}.Release|Any CPU.Build.0 = Release|x86
{0B12A079-B2DB-42B9-8A8E-AA5CBC2B3225}.Release|Any CPU.ActiveCfg = Release|x86
{0B12A079-B2DB-42B9-8A8E-AA5CBC2B3225}.Release|x86.Build.0 = Release|x86
{0B12A079-B2DB-42B9-8A8E-AA5CBC2B3225}.Release|x86.ActiveCfg = Release|x86
{D781721F-C2A7-4E95-B76F-247170AC3B13}.Debug|Any CPU.Build.0 = Debug|x86
{D781721F-C2A7-4E95-B76F-247170AC3B13}.Debug|Any CPU.ActiveCfg = Debug|x86
{D781721F-C2A7-4E95-B76F-247170AC3B13}.Debug|x86.Build.0 = Debug|x86
{D781721F-C2A7-4E95-B76F-247170AC3B13}.Debug|x86.ActiveCfg = Debug|x86
{D781721F-C2A7-4E95-B76F-247170AC3B13}.Release|Any CPU.Build.0 = Release|x86
{D781721F-C2A7-4E95-B76F-247170AC3B13}.Release|Any CPU.ActiveCfg = Release|x86
{D781721F-C2A7-4E95-B76F-247170AC3B13}.Release|x86.Build.0 = Release|x86
{D781721F-C2A7-4E95-B76F-247170AC3B13}.Release|x86.ActiveCfg = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -646,6 +666,8 @@ Global @@ -646,6 +666,8 @@ Global
{70966F84-74C9-4067-A379-0C674A929233} = {E0646C25-36F2-4524-969F-FA621353AB94}
{52006F3F-3156-45DE-89D8-C4813694FBA4} = {E0646C25-36F2-4524-969F-FA621353AB94}
{7C96B65D-28A5-4F28-A35B-8D83CE831EE8} = {E0646C25-36F2-4524-969F-FA621353AB94}
{0B12A079-B2DB-42B9-8A8E-AA5CBC2B3225} = {E0646C25-36F2-4524-969F-FA621353AB94}
{D781721F-C2A7-4E95-B76F-247170AC3B13} = {E0646C25-36F2-4524-969F-FA621353AB94}
{80F76D10-0B44-4D55-B4BD-DAEB5464090C} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
{9196DD8A-B4D4-4780-8742-C5762E547FC2} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
{7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}

11
SharpDevelop.sln

@ -73,6 +73,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CppBinding", "src\AddIns\Ba @@ -73,6 +73,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CppBinding", "src\AddIns\Ba
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XamlBinding", "src\AddIns\BackendBindings\XamlBinding\XamlBinding\XamlBinding.csproj", "{7C96B65D-28A5-4F28-A35B-8D83CE831EE8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AspNet.Mvc", "src\AddIns\BackendBindings\AspNet.Mvc\Project\AspNet.Mvc.csproj", "{D781721F-C2A7-4E95-B76F-247170AC3B13}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Misc", "Misc", "{F3662720-9EA2-4591-BBC6-97361DCE50A9}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
@ -515,6 +517,14 @@ Global @@ -515,6 +517,14 @@ Global
44FA68C9-DAD1-4C3C-90BB-3435F0D1D128.Release|Any CPU.ActiveCfg = Release|Any CPU
44FA68C9-DAD1-4C3C-90BB-3435F0D1D128.Release|x86.Build.0 = Release|Any CPU
44FA68C9-DAD1-4C3C-90BB-3435F0D1D128.Release|x86.ActiveCfg = Release|Any CPU
{D781721F-C2A7-4E95-B76F-247170AC3B13}.Debug|Any CPU.Build.0 = Debug|x86
{D781721F-C2A7-4E95-B76F-247170AC3B13}.Debug|Any CPU.ActiveCfg = Debug|x86
{D781721F-C2A7-4E95-B76F-247170AC3B13}.Debug|x86.Build.0 = Debug|x86
{D781721F-C2A7-4E95-B76F-247170AC3B13}.Debug|x86.ActiveCfg = Debug|x86
{D781721F-C2A7-4E95-B76F-247170AC3B13}.Release|Any CPU.Build.0 = Release|x86
{D781721F-C2A7-4E95-B76F-247170AC3B13}.Release|Any CPU.ActiveCfg = Release|x86
{D781721F-C2A7-4E95-B76F-247170AC3B13}.Release|x86.Build.0 = Release|x86
{D781721F-C2A7-4E95-B76F-247170AC3B13}.Release|x86.ActiveCfg = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -550,6 +560,7 @@ Global @@ -550,6 +560,7 @@ Global
{E954F3CB-A446-492F-A664-2B376EBC86E8} = {E0646C25-36F2-4524-969F-FA621353AB94}
{70966F84-74C9-4067-A379-0C674A929233} = {E0646C25-36F2-4524-969F-FA621353AB94}
{7C96B65D-28A5-4F28-A35B-8D83CE831EE8} = {E0646C25-36F2-4524-969F-FA621353AB94}
{D781721F-C2A7-4E95-B76F-247170AC3B13} = {E0646C25-36F2-4524-969F-FA621353AB94}
{9196DD8A-B4D4-4780-8742-C5762E547FC2} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
{7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
{4B8F0F98-8BE1-402B-AA8B-C8D548577B38} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}

42
src/AddIns/BackendBindings/AspNet.Mvc/AspNet.Mvc.sln

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
# SharpDevelop 4.3.0.8820-alpha
# SharpDevelop 4.3
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AspNet.Mvc", "Project\AspNet.Mvc.csproj", "{D781721F-C2A7-4E95-B76F-247170AC3B13}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AspNet.Mvc.Tests", "Test\AspNet.Mvc.Tests.csproj", "{0B12A079-B2DB-42B9-8A8E-AA5CBC2B3225}"
@ -10,24 +10,20 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop", @@ -10,24 +10,20 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop",
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core", "..\..\..\Main\Core\Project\ICSharpCode.Core.csproj", "{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactory", "..\..\..\Libraries\NRefactory\Project\NRefactory.csproj", "{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AvalonDock", "..\..\..\Libraries\AvalonDock\AvalonDock\AvalonDock.csproj", "{87E61430-4243-45F2-B74E-0A4C096CEBF3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.AvalonEdit", "..\..\..\Libraries\AvalonEdit\ICSharpCode.AvalonEdit\ICSharpCode.AvalonEdit.csproj", "{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core.Presentation", "..\..\..\Main\ICSharpCode.Core.Presentation\ICSharpCode.Core.Presentation.csproj", "{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core.WinForms", "..\..\..\Main\ICSharpCode.Core.WinForms\ICSharpCode.Core.WinForms.csproj", "{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Dom", "..\..\..\Main\ICSharpCode.SharpDevelop.Dom\Project\ICSharpCode.SharpDevelop.Dom.csproj", "{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Widgets", "..\..\..\Main\ICSharpCode.SharpDevelop.Widgets\Project\ICSharpCode.SharpDevelop.Widgets.csproj", "{8035765F-D51F-4A0C-A746-2FD100E19419}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TextTemplating", "..\..\Misc\TextTemplating\Project\TextTemplating.csproj", "{B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AvalonEdit.AddIn", "..\..\DisplayBindings\AvalonEdit.AddIn\AvalonEdit.AddIn.csproj", "{0162E499-42D0-409B-AA25-EED21F75336B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.NRefactory", "..\..\..\Libraries\NRefactory\ICSharpCode.NRefactory\ICSharpCode.NRefactory.csproj", "{3B2A5653-EC97-4001-BB9B-D90F1AF2C371}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x86 = Debug|x86
@ -64,22 +60,6 @@ Global @@ -64,22 +60,6 @@ Global
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Release|x86.ActiveCfg = Release|Any CPU
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Release|Any CPU.Build.0 = Release|Any CPU
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}.Debug|x86.Build.0 = Debug|Any CPU
{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}.Debug|x86.ActiveCfg = Debug|Any CPU
{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}.Release|x86.Build.0 = Release|Any CPU
{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}.Release|x86.ActiveCfg = Release|Any CPU
{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}.Release|Any CPU.Build.0 = Release|Any CPU
{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}.Release|Any CPU.ActiveCfg = Release|Any CPU
{87E61430-4243-45F2-B74E-0A4C096CEBF3}.Debug|x86.Build.0 = Debug|Any CPU
{87E61430-4243-45F2-B74E-0A4C096CEBF3}.Debug|x86.ActiveCfg = Debug|Any CPU
{87E61430-4243-45F2-B74E-0A4C096CEBF3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{87E61430-4243-45F2-B74E-0A4C096CEBF3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{87E61430-4243-45F2-B74E-0A4C096CEBF3}.Release|x86.Build.0 = Release|Any CPU
{87E61430-4243-45F2-B74E-0A4C096CEBF3}.Release|x86.ActiveCfg = Release|Any CPU
{87E61430-4243-45F2-B74E-0A4C096CEBF3}.Release|Any CPU.Build.0 = Release|Any CPU
{87E61430-4243-45F2-B74E-0A4C096CEBF3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|x86.Build.0 = Debug|Any CPU
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|x86.ActiveCfg = Debug|Any CPU
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
@ -104,14 +84,6 @@ Global @@ -104,14 +84,6 @@ Global
{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Release|x86.ActiveCfg = Release|Any CPU
{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Release|Any CPU.Build.0 = Release|Any CPU
{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Release|Any CPU.ActiveCfg = Release|Any CPU
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Debug|x86.Build.0 = Debug|Any CPU
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Debug|x86.ActiveCfg = Debug|Any CPU
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Release|x86.Build.0 = Release|Any CPU
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Release|x86.ActiveCfg = Release|Any CPU
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Release|Any CPU.Build.0 = Release|Any CPU
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8035765F-D51F-4A0C-A746-2FD100E19419}.Debug|x86.Build.0 = Debug|Any CPU
{8035765F-D51F-4A0C-A746-2FD100E19419}.Debug|x86.ActiveCfg = Debug|Any CPU
{8035765F-D51F-4A0C-A746-2FD100E19419}.Debug|Any CPU.Build.0 = Debug|Any CPU
@ -140,5 +112,13 @@ Global @@ -140,5 +112,13 @@ Global
{D781721F-C2A7-4E95-B76F-247170AC3B13}.Debug|Any CPU.ActiveCfg = Debug|x86
{D781721F-C2A7-4E95-B76F-247170AC3B13}.Release|Any CPU.Build.0 = Release|x86
{D781721F-C2A7-4E95-B76F-247170AC3B13}.Release|Any CPU.ActiveCfg = Release|x86
{3B2A5653-EC97-4001-BB9B-D90F1AF2C371}.Debug|x86.Build.0 = Debug|Any CPU
{3B2A5653-EC97-4001-BB9B-D90F1AF2C371}.Debug|x86.ActiveCfg = Debug|Any CPU
{3B2A5653-EC97-4001-BB9B-D90F1AF2C371}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3B2A5653-EC97-4001-BB9B-D90F1AF2C371}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3B2A5653-EC97-4001-BB9B-D90F1AF2C371}.Release|x86.Build.0 = Release|Any CPU
{3B2A5653-EC97-4001-BB9B-D90F1AF2C371}.Release|x86.ActiveCfg = Release|Any CPU
{3B2A5653-EC97-4001-BB9B-D90F1AF2C371}.Release|Any CPU.Build.0 = Release|Any CPU
{3B2A5653-EC97-4001-BB9B-D90F1AF2C371}.Release|Any CPU.ActiveCfg = Release|Any CPU
EndGlobalSection
EndGlobal

4
src/AddIns/BackendBindings/AspNet.Mvc/Project/AspNet.Mvc.addin

@ -86,7 +86,7 @@ @@ -86,7 +86,7 @@
extensions="*.vbhtml"/>
</Path>
<Path name="/SharpDevelop/Workbench/LanguageBindings">
<!--<Path name="/SharpDevelop/Workbench/LanguageBindings">
<LanguageBinding
id="WebForms"
class="ICSharpCode.AspNet.Mvc.Folding.WebFormsLanguageBinding"
@ -99,7 +99,7 @@ @@ -99,7 +99,7 @@
id="VisualBasic.Razor"
class="ICSharpCode.AspNet.Mvc.Folding.VisualBasicRazorLanguageBinding"
extensions=".vbhtml" />
</Path>
</Path>-->
<Path name="/SharpDevelop/Workbench/ProjectBehaviors">
<ComplexCondition>

13
src/AddIns/BackendBindings/AspNet.Mvc/Project/AspNet.Mvc.csproj

@ -7,9 +7,10 @@ @@ -7,9 +7,10 @@
<OutputType>Library</OutputType>
<RootNamespace>ICSharpCode.AspNet.Mvc</RootNamespace>
<AssemblyName>AspNet.Mvc</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<AppDesignerFolder>Properties</AppDesignerFolder>
<OutputPath>..\..\..\..\..\AddIns\BackendBindings\AspNet.Mvc\</OutputPath>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Platform)' == 'x86' ">
<PlatformTarget>x86</PlatformTarget>
@ -276,6 +277,11 @@ @@ -276,6 +277,11 @@
<Name>ICSharpCode.AvalonEdit</Name>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Libraries\NRefactory\ICSharpCode.NRefactory\ICSharpCode.NRefactory.csproj">
<Project>{3B2A5653-EC97-4001-BB9B-D90F1AF2C371}</Project>
<Name>ICSharpCode.NRefactory</Name>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj">
<Project>{2748AD25-9C63-4E12-877B-4DCE96FBED54}</Project>
<Name>ICSharpCode.SharpDevelop</Name>
@ -291,11 +297,6 @@ @@ -291,11 +297,6 @@
<Name>ICSharpCode.Core.Presentation</Name>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Main\ICSharpCode.SharpDevelop.Dom\Project\ICSharpCode.SharpDevelop.Dom.csproj">
<Project>{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}</Project>
<Name>ICSharpCode.SharpDevelop.Dom</Name>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Main\ICSharpCode.SharpDevelop.Widgets\Project\ICSharpCode.SharpDevelop.Widgets.csproj">
<Project>{8035765F-D51F-4A0C-A746-2FD100E19419}</Project>
<Name>ICSharpCode.SharpDevelop.Widgets</Name>

3
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcControllerToProjectCommand.cs

@ -3,6 +3,7 @@ @@ -3,6 +3,7 @@
using System;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Project;
@ -20,7 +21,7 @@ namespace ICSharpCode.AspNet.Mvc @@ -20,7 +21,7 @@ namespace ICSharpCode.AspNet.Mvc
protected virtual IAddMvcItemToProjectView CreateView()
{
return new AddMvcControllerToProjectView() {
Owner = WorkbenchSingleton.MainWindow
Owner = SD.Workbench.MainWindow
};
}

4
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcViewToProjectCommand.cs

@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
using System;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.AspNet.Mvc
@ -20,7 +20,7 @@ namespace ICSharpCode.AspNet.Mvc @@ -20,7 +20,7 @@ namespace ICSharpCode.AspNet.Mvc
protected virtual IAddMvcItemToProjectView CreateView()
{
return new AddMvcViewToProjectView() {
Owner = WorkbenchSingleton.MainWindow
Owner = SD.Workbench.MainWindow
};
}

54
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/Completion/RazorCSharpCompletionBinding.cs

@ -1,27 +1,27 @@ @@ -1,27 +1,27 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Editor.CodeCompletion;
namespace ICSharpCode.AspNet.Mvc.Completion
{
public class RazorCSharpCompletionBinding : DefaultCodeCompletionBinding
{
public RazorCSharpCompletionBinding()
{
}
public override CodeCompletionKeyPressResult HandleKeyPress(ITextEditor editor, char ch)
{
if (ch == '.') {
new RazorCSharpDotCompletionDataProvider().ShowCompletion(editor);
return CodeCompletionKeyPressResult.Completed;
} else if (ch == '(') {
return base.HandleKeyPress(editor, ch);
}
return CodeCompletionKeyPressResult.None;
}
}
}
//// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
//// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
//
//using System;
//using ICSharpCode.SharpDevelop.Editor;
//using ICSharpCode.SharpDevelop.Editor.CodeCompletion;
//
//namespace ICSharpCode.AspNet.Mvc.Completion
//{
// public class RazorCSharpCompletionBinding : DefaultCodeCompletionBinding
// {
// public RazorCSharpCompletionBinding()
// {
// }
//
// public override CodeCompletionKeyPressResult HandleKeyPress(ITextEditor editor, char ch)
// {
// if (ch == '.') {
// new RazorCSharpDotCompletionDataProvider().ShowCompletion(editor);
// return CodeCompletionKeyPressResult.Completed;
// } else if (ch == '(') {
// return base.HandleKeyPress(editor, ch);
// }
// return CodeCompletionKeyPressResult.None;
// }
// }
//}

28
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/Completion/RazorCSharpDotCompletionDataProvider.cs

@ -1,17 +1,11 @@ @@ -1,17 +1,11 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Dom.NRefactoryResolver;
using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Editor.CodeCompletion;
namespace ICSharpCode.AspNet.Mvc.Completion
{
public class RazorCSharpDotCompletionDataProvider : DotCodeCompletionItemProvider
{
}
}
//// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
//// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
//
//using System;
//
//namespace ICSharpCode.AspNet.Mvc.Completion
//{
// public class RazorCSharpDotCompletionDataProvider : DotCodeCompletionItemProvider
// {
// }
//}

86
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/Completion/RazorCSharpExpressionFinder.cs

@ -1,43 +1,43 @@ @@ -1,43 +1,43 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using ICSharpCode.SharpDevelop.Dom;
namespace ICSharpCode.AspNet.Mvc.Completion
{
public class RazorCSharpExpressionFinder : IExpressionFinder
{
public RazorCSharpExpressionFinder()
{
}
public ExpressionResult FindExpression(string text, int offset)
{
int position = offset - 1;
while (position > 0 && IsValidCharacter(text[position])) {
position--;
}
position++;
string expression = text.Substring(position, offset - position);
return new ExpressionResult(expression);
}
bool IsValidCharacter(char ch)
{
return Char.IsLetterOrDigit(ch) ||
(ch == '.') ||
(ch == '_');
}
public ExpressionResult FindFullExpression(string text, int offset)
{
return ExpressionResult.Empty;
}
public string RemoveLastPart(string expression)
{
return expression;
}
}
}
//// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
//// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
//
//using System;
//using ICSharpCode.SharpDevelop.Dom;
//
//namespace ICSharpCode.AspNet.Mvc.Completion
//{
// public class RazorCSharpExpressionFinder : IExpressionFinder
// {
// public RazorCSharpExpressionFinder()
// {
// }
//
// public ExpressionResult FindExpression(string text, int offset)
// {
// int position = offset - 1;
// while (position > 0 && IsValidCharacter(text[position])) {
// position--;
// }
// position++;
// string expression = text.Substring(position, offset - position);
// return new ExpressionResult(expression);
// }
//
// bool IsValidCharacter(char ch)
// {
// return Char.IsLetterOrDigit(ch) ||
// (ch == '.') ||
// (ch == '_');
// }
//
// public ExpressionResult FindFullExpression(string text, int offset)
// {
// return ExpressionResult.Empty;
// }
//
// public string RemoveLastPart(string expression)
// {
// return expression;
// }
// }
//}

68
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/Completion/RazorCSharpModelTypeLocater.cs

@ -1,34 +1,34 @@ @@ -1,34 +1,34 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Web.Razor;
using ICSharpCode.SharpDevelop;
namespace ICSharpCode.AspNet.Mvc.Completion
{
public class RazorCSharpModelTypeLocater
{
public RazorCSharpModelTypeLocater(ITextBuffer textBuffer)
{
ParserResults results = ParseTemplate(textBuffer);
ModelTypeName = GetModelTypeName(results);
}
ParserResults ParseTemplate(ITextBuffer textBuffer)
{
var host = new RazorEngineHost(new CSharpRazorCodeLanguage());
var engine = new RazorTemplateEngine(host);
return engine.ParseTemplate(textBuffer.CreateReader());
}
string GetModelTypeName(ParserResults results)
{
var visitor = new RazorCSharpParserModelTypeVisitor();
results.Document.Accept(visitor);
return visitor.ModelTypeName;
}
public string ModelTypeName { get; private set; }
}
}
//// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
//// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
//
//using System;
//using System.Web.Razor;
//using ICSharpCode.SharpDevelop;
//
//namespace ICSharpCode.AspNet.Mvc.Completion
//{
// public class RazorCSharpModelTypeLocater
// {
// public RazorCSharpModelTypeLocater(ITextBuffer textBuffer)
// {
// ParserResults results = ParseTemplate(textBuffer);
// ModelTypeName = GetModelTypeName(results);
// }
//
// ParserResults ParseTemplate(ITextBuffer textBuffer)
// {
// var host = new RazorEngineHost(new CSharpRazorCodeLanguage());
// var engine = new RazorTemplateEngine(host);
// return engine.ParseTemplate(textBuffer.CreateReader());
// }
//
// string GetModelTypeName(ParserResults results)
// {
// var visitor = new RazorCSharpParserModelTypeVisitor();
// results.Document.Accept(visitor);
// return visitor.ModelTypeName;
// }
//
// public string ModelTypeName { get; private set; }
// }
//}

106
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/Completion/RazorCSharpParser.cs

@ -1,53 +1,53 @@ @@ -1,53 +1,53 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.IO;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Dom.CSharp;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.AspNet.Mvc.Completion
{
public class RazorCSharpParser : IParser
{
public RazorCSharpParser()
{
}
public string[] LexerTags { get; set; }
public LanguageProperties Language {
get { return LanguageProperties.CSharp; }
}
public IExpressionFinder CreateExpressionFinder(string fileName)
{
return new RazorCSharpExpressionFinder();
}
public bool CanParse(string fileName)
{
return Path.GetExtension(fileName).Equals(".cshtml", StringComparison.OrdinalIgnoreCase);
}
public bool CanParse(IProject project)
{
return project.Language == "C#";
}
public ICompilationUnit Parse(IProjectContent projectContent, string fileName, ITextBuffer fileContent)
{
var modelTypeLocater = new RazorCSharpModelTypeLocater(fileContent);
return new RazorCompilationUnit(projectContent) {
ModelTypeName = modelTypeLocater.ModelTypeName
};
}
public IResolver CreateResolver()
{
return new RazorCSharpResolver();
}
}
}
//// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
//// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
//
//using System;
//using System.IO;
//using ICSharpCode.SharpDevelop;
//using ICSharpCode.SharpDevelop.Dom;
//using ICSharpCode.SharpDevelop.Dom.CSharp;
//using ICSharpCode.SharpDevelop.Project;
//
//namespace ICSharpCode.AspNet.Mvc.Completion
//{
// public class RazorCSharpParser : IParser
// {
// public RazorCSharpParser()
// {
// }
//
// public string[] LexerTags { get; set; }
//
// public LanguageProperties Language {
// get { return LanguageProperties.CSharp; }
// }
//
// public IExpressionFinder CreateExpressionFinder(string fileName)
// {
// return new RazorCSharpExpressionFinder();
// }
//
// public bool CanParse(string fileName)
// {
// return Path.GetExtension(fileName).Equals(".cshtml", StringComparison.OrdinalIgnoreCase);
// }
//
// public bool CanParse(IProject project)
// {
// return project.Language == "C#";
// }
//
// public ICompilationUnit Parse(IProjectContent projectContent, string fileName, ITextBuffer fileContent)
// {
// var modelTypeLocater = new RazorCSharpModelTypeLocater(fileContent);
// return new RazorCompilationUnit(projectContent) {
// ModelTypeName = modelTypeLocater.ModelTypeName
// };
// }
//
// public IResolver CreateResolver()
// {
// return new RazorCSharpResolver();
// }
// }
//}

209
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/Completion/RazorCSharpResolver.cs

@ -1,105 +1,104 @@ @@ -1,105 +1,104 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Dom.NRefactoryResolver;
namespace ICSharpCode.AspNet.Mvc.Completion
{
public class RazorCSharpResolver : IResolver
{
NRefactoryResolver resolver = new NRefactoryResolver(LanguageProperties.CSharp);
public ResolveResult Resolve(ExpressionResult expressionResult, ParseInformation parseInfo, string fileContent)
{
ParseInformation parseInfoWithWebViewPageClass = CreateParseInformationWithWebViewPageClass(parseInfo);
expressionResult.Region = GetRegionInMiddleOfWebViewPageClass();
return resolver.Resolve(expressionResult, parseInfoWithWebViewPageClass, fileContent);
}
ParseInformation CreateParseInformationWithWebViewPageClass(ParseInformation parseInfo)
{
RazorCompilationUnit compilationUnit = RazorCompilationUnit.CreateFromParseInfo(parseInfo);
AddDefaultUsings(compilationUnit);
AddWebViewPageClass(compilationUnit);
return new ParseInformation(compilationUnit);
}
void AddDefaultUsings(ICompilationUnit compilationUnit)
{
AddUsing("System.Web.Mvc", compilationUnit);
AddUsing("System.Web.Mvc.Ajax", compilationUnit);
AddUsing("System.Web.Mvc.Html", compilationUnit);
AddUsing("System.Web.Routing", compilationUnit);
}
void AddUsing(string name, ICompilationUnit compilationUnit)
{
DefaultUsing defaultUsing = CreateUsing(name, compilationUnit.ProjectContent);
compilationUnit.UsingScope.Usings.Add(defaultUsing);
}
DefaultUsing CreateUsing(string namespaceName, IProjectContent projectContent)
{
var defaultUsing = new DefaultUsing(projectContent);
defaultUsing.Usings.Add(namespaceName);
return defaultUsing;
}
void AddWebViewPageClass(RazorCompilationUnit compilationUnit)
{
DefaultClass webViewPageClass = CreateWebViewPageClass(compilationUnit);
compilationUnit.Classes.Add(webViewPageClass);
}
DefaultClass CreateWebViewPageClass(RazorCompilationUnit compilationUnit)
{
var webViewPageClass = new DefaultClass(compilationUnit, "RazorWebViewPage") {
Region = new DomRegion(1, 0, 3, 0)
};
IReturnType modelType = GetModelReturnType(compilationUnit);
AddWebViewPageBaseClass(webViewPageClass, modelType);
return webViewPageClass;
}
IReturnType GetModelReturnType(RazorCompilationUnit compilationUnit)
{
IClass modelType = GetClassIfTypeNameIsNotEmpty(compilationUnit.ProjectContent, compilationUnit.ModelTypeName);
if (modelType != null) {
return modelType.DefaultReturnType;
}
return new DynamicReturnType(compilationUnit.ProjectContent);
}
IClass GetClassIfTypeNameIsNotEmpty(IProjectContent projectContent, string modelTypeName)
{
if (!String.IsNullOrEmpty(modelTypeName)) {
return projectContent.GetClass(modelTypeName, 0);
}
return null;
}
void AddWebViewPageBaseClass(DefaultClass webViewPageClass, IReturnType modelType)
{
IClass webViewPageBaseClass = webViewPageClass.ProjectContent.GetClass("System.Web.Mvc.WebViewPage", 1);
if (webViewPageBaseClass != null) {
IReturnType returnType = GetWebViewPageBaseClassReturnType(webViewPageBaseClass, modelType);
webViewPageClass.BaseTypes.Add(returnType);
}
}
IReturnType GetWebViewPageBaseClassReturnType(IClass webViewPageBaseClass, IReturnType modelType)
{
var typeArguments = new List<IReturnType>();
typeArguments.Add(modelType);
return new ConstructedReturnType(webViewPageBaseClass.DefaultReturnType, typeArguments);
}
DomRegion GetRegionInMiddleOfWebViewPageClass()
{
return new DomRegion(2, 0, 2, 0);
}
}
}
//// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
//// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
//
//using System;
//using System.Collections.Generic;
//using ICSharpCode.NRefactory.TypeSystem;
//
//namespace ICSharpCode.AspNet.Mvc.Completion
//{
// public class RazorCSharpResolver : IResolver
// {
// NRefactoryResolver resolver = new NRefactoryResolver(LanguageProperties.CSharp);
//
// public ResolveResult Resolve(ExpressionResult expressionResult, ParseInformation parseInfo, string fileContent)
// {
// ParseInformation parseInfoWithWebViewPageClass = CreateParseInformationWithWebViewPageClass(parseInfo);
// expressionResult.Region = GetRegionInMiddleOfWebViewPageClass();
// return resolver.Resolve(expressionResult, parseInfoWithWebViewPageClass, fileContent);
// }
//
// ParseInformation CreateParseInformationWithWebViewPageClass(ParseInformation parseInfo)
// {
// RazorCompilationUnit compilationUnit = RazorCompilationUnit.CreateFromParseInfo(parseInfo);
// AddDefaultUsings(compilationUnit);
// AddWebViewPageClass(compilationUnit);
// return new ParseInformation(compilationUnit);
// }
//
// void AddDefaultUsings(ICompilationUnit compilationUnit)
// {
// AddUsing("System.Web.Mvc", compilationUnit);
// AddUsing("System.Web.Mvc.Ajax", compilationUnit);
// AddUsing("System.Web.Mvc.Html", compilationUnit);
// AddUsing("System.Web.Routing", compilationUnit);
// }
//
// void AddUsing(string name, ICompilationUnit compilationUnit)
// {
// DefaultUsing defaultUsing = CreateUsing(name, compilationUnit.ProjectContent);
// compilationUnit.UsingScope.Usings.Add(defaultUsing);
// }
//
// DefaultUsing CreateUsing(string namespaceName, IProjectContent projectContent)
// {
// var defaultUsing = new DefaultUsing(projectContent);
// defaultUsing.Usings.Add(namespaceName);
// return defaultUsing;
// }
//
// void AddWebViewPageClass(RazorCompilationUnit compilationUnit)
// {
// DefaultClass webViewPageClass = CreateWebViewPageClass(compilationUnit);
// compilationUnit.Classes.Add(webViewPageClass);
// }
//
// DefaultClass CreateWebViewPageClass(RazorCompilationUnit compilationUnit)
// {
// var webViewPageClass = new DefaultClass(compilationUnit, "RazorWebViewPage") {
// Region = new DomRegion(1, 0, 3, 0)
// };
// IReturnType modelType = GetModelReturnType(compilationUnit);
// AddWebViewPageBaseClass(webViewPageClass, modelType);
// return webViewPageClass;
// }
//
// IReturnType GetModelReturnType(RazorCompilationUnit compilationUnit)
// {
// IClass modelType = GetClassIfTypeNameIsNotEmpty(compilationUnit.ProjectContent, compilationUnit.ModelTypeName);
// if (modelType != null) {
// return modelType.DefaultReturnType;
// }
// return new DynamicReturnType(compilationUnit.ProjectContent);
// }
//
// IClass GetClassIfTypeNameIsNotEmpty(IProjectContent projectContent, string modelTypeName)
// {
// if (!String.IsNullOrEmpty(modelTypeName)) {
// return projectContent.GetClass(modelTypeName, 0);
// }
// return null;
// }
//
// void AddWebViewPageBaseClass(DefaultClass webViewPageClass, IReturnType modelType)
// {
// IClass webViewPageBaseClass = webViewPageClass.ProjectContent.GetClass("System.Web.Mvc.WebViewPage", 1);
// if (webViewPageBaseClass != null) {
// IReturnType returnType = GetWebViewPageBaseClassReturnType(webViewPageBaseClass, modelType);
// webViewPageClass.BaseTypes.Add(returnType);
// }
// }
//
// IReturnType GetWebViewPageBaseClassReturnType(IClass webViewPageBaseClass, IReturnType modelType)
// {
// var typeArguments = new List<IReturnType>();
// typeArguments.Add(modelType);
// return new ConstructedReturnType(webViewPageBaseClass.DefaultReturnType, typeArguments);
// }
//
// DomRegion GetRegionInMiddleOfWebViewPageClass()
// {
// return new DomRegion(2, 0, 2, 0);
// }
// }
//}

69
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/Completion/RazorCompilationUnit.cs

@ -1,34 +1,35 @@ @@ -1,34 +1,35 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using ICSharpCode.SharpDevelop.Dom;
namespace ICSharpCode.AspNet.Mvc.Completion
{
public class RazorCompilationUnit : DefaultCompilationUnit
{
public RazorCompilationUnit(IProjectContent projectContent)
: base(projectContent)
{
}
public static RazorCompilationUnit CreateFromParseInfo(ParseInformation parseInformation)
{
return new RazorCompilationUnit(parseInformation.CompilationUnit.ProjectContent) {
ModelTypeName = GetModelTypeName(parseInformation.CompilationUnit)
};
}
static string GetModelTypeName(ICompilationUnit compilationUnit)
{
var originalRazorCompilationUnit = compilationUnit as RazorCompilationUnit;
if (originalRazorCompilationUnit != null) {
return originalRazorCompilationUnit.ModelTypeName;
}
return String.Empty;
}
public string ModelTypeName { get; set; }
}
}
//// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
//// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
//
//using System;
//using ICSharpCode.NRefactory.TypeSystem;
//using ICSharpCode.SharpDevelop.Parser;
//
//namespace ICSharpCode.AspNet.Mvc.Completion
//{
// public class RazorCompilationUnit : DefaultCompilationUnit
// {
// public RazorCompilationUnit(IProjectContent projectContent)
// : base(projectContent)
// {
// }
//
// public static RazorCompilationUnit CreateFromParseInfo(ParseInformation parseInformation)
// {
// return new RazorCompilationUnit(parseInformation.CompilationUnit.ProjectContent) {
// ModelTypeName = GetModelTypeName(parseInformation.CompilationUnit)
// };
// }
//
// static string GetModelTypeName(ICompilationUnit compilationUnit)
// {
// var originalRazorCompilationUnit = compilationUnit as RazorCompilationUnit;
// if (originalRazorCompilationUnit != null) {
// return originalRazorCompilationUnit.ModelTypeName;
// }
// return String.Empty;
// }
//
// public string ModelTypeName { get; set; }
// }
//}

4
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/Folding/HtmlLanguageBinding.cs

@ -26,10 +26,6 @@ namespace ICSharpCode.AspNet.Mvc.Folding @@ -26,10 +26,6 @@ namespace ICSharpCode.AspNet.Mvc.Folding
get { return new DefaultFormattingStrategy(); }
}
public override LanguageProperties Properties {
get { return LanguageProperties.None; }
}
public override void Attach(ITextEditor editor)
{
Attach(textEditorFactory.CreateTextEditor(editor));

5
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/Folding/TextEditorWithParseInformationFolding.cs

@ -31,16 +31,17 @@ namespace ICSharpCode.AspNet.Mvc.Folding @@ -31,16 +31,17 @@ namespace ICSharpCode.AspNet.Mvc.Folding
}
}
// TODO disable parse information folding?
public bool IsParseInformationFoldingEnabled {
get {
if (CodeEditorView != null) {
return !CodeEditorView.DisableParseInformationFolding;
//return !CodeEditorView.DisableParseInformationFolding;
}
return false;
}
set {
if (CodeEditorView != null) {
CodeEditorView.DisableParseInformationFolding = !value;
//CodeEditorView.DisableParseInformationFolding = !value;
}
}
}

5
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/IISAdministrator.cs

@ -4,7 +4,8 @@ @@ -4,7 +4,8 @@
using System;
using System.Reflection;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Parser;
namespace ICSharpCode.AspNet.Mvc
{
@ -51,7 +52,7 @@ namespace ICSharpCode.AspNet.Mvc @@ -51,7 +52,7 @@ namespace ICSharpCode.AspNet.Mvc
protected Assembly GetWebAdminstrationAssembly()
{
foreach(DomAssemblyName assembly in GacInterop.GetAssemblyList()) {
foreach (DomAssemblyName assembly in SD.GlobalAssemblyCache.Assemblies) {
if (assembly.FullName.Contains("Microsoft.Web.Administration")) {
if (IsServerManagementVersionRequired(assembly)) {
return Assembly.Load(assembly.FullName);

2
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/IISExpressAdministrator.cs

@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Parser;
namespace ICSharpCode.AspNet.Mvc
{

32
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/MvcClass.cs

@ -2,32 +2,33 @@ @@ -2,32 +2,33 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using ICSharpCode.SharpDevelop.Dom;
using System.Linq;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.AspNet.Mvc
{
public class MvcClass : IMvcClass
{
IClass c;
ITypeDefinition type;
IMvcProject project;
public MvcClass(IClass c, IMvcProject project)
public MvcClass(ITypeDefinition type, IMvcProject project)
{
this.c = c;
this.type = type;
this.project = project;
}
public string FullName {
get { return c.FullyQualifiedName; }
get { return type.FullName; }
}
public string Name {
get { return c.Name; }
get { return type.Name; }
}
public string Namespace {
get { return c.Namespace; }
get { return type.Namespace; }
}
public string BaseClassFullName {
@ -36,26 +37,15 @@ namespace ICSharpCode.AspNet.Mvc @@ -36,26 +37,15 @@ namespace ICSharpCode.AspNet.Mvc
string GetBaseClassFullName()
{
IClass baseClass = c.BaseClass;
IType baseClass = type.DirectBaseTypes.Where(t => t.Kind == TypeKind.Class).FirstOrDefault();
if (baseClass != null) {
return baseClass.FullyQualifiedName;
return baseClass.FullName;
}
return String.Empty;
}
public string AssemblyLocation {
get { return GetAssemblyLocation(); }
}
string GetAssemblyLocation()
{
IProject project = GetProject();
return project.OutputAssemblyFullPath;
}
IProject GetProject()
{
return c.ProjectContent.Project as IProject;
get { return this.project.OutputAssemblyFullPath; }
}
public bool IsModelClass()

2
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/MvcFileGenerationErrorReporter.cs

@ -17,7 +17,7 @@ namespace ICSharpCode.AspNet.Mvc @@ -17,7 +17,7 @@ namespace ICSharpCode.AspNet.Mvc
foreach (CompilerError error in errors) {
TaskService.Add(new CompilerErrorTask(error));
}
WorkbenchSingleton.Workbench.GetPad(typeof(ErrorListPad)).BringPadToFront();
SD.Workbench.GetPad(typeof(ErrorListPad)).BringPadToFront();
}
}
}

10
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/MvcParserService.cs

@ -2,8 +2,8 @@ @@ -2,8 +2,8 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Dom;
namespace ICSharpCode.AspNet.Mvc
{
@ -11,13 +11,13 @@ namespace ICSharpCode.AspNet.Mvc @@ -11,13 +11,13 @@ namespace ICSharpCode.AspNet.Mvc
{
public IMvcProjectContent GetProjectContent(IMvcProject project)
{
IProjectContent projectContent = GetProjectContentFromParser(project);
return new MvcProjectContent(projectContent, project);
ICompilation compilation = GetProjectContentFromParser(project);
return new MvcProjectContent(compilation, project);
}
IProjectContent GetProjectContentFromParser(IMvcProject mvcProject)
ICompilation GetProjectContentFromParser(IMvcProject mvcProject)
{
return ParserService.GetProjectContent(mvcProject.Project);
return SD.ParserService.GetCompilation(mvcProject.Project);
}
}
}

12
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/MvcProjectContent.cs

@ -3,25 +3,25 @@ @@ -3,25 +3,25 @@
using System;
using System.Collections.Generic;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.NRefactory.TypeSystem;
namespace ICSharpCode.AspNet.Mvc
{
public class MvcProjectContent : IMvcProjectContent
{
IProjectContent projectContent;
ICompilation compilation;
IMvcProject project;
public MvcProjectContent(IProjectContent projectContent, IMvcProject project)
public MvcProjectContent(ICompilation compilation, IMvcProject project)
{
this.projectContent = projectContent;
this.compilation = compilation;
this.project = project;
}
public IEnumerable<IMvcClass> GetClasses()
{
foreach (IClass c in projectContent.Classes) {
yield return new MvcClass(c, project);
foreach (ITypeDefinition type in compilation.MainAssembly.TopLevelTypeDefinitions) {
yield return new MvcClass(type, project);
}
}
}

8
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/WebBehavior.cs

@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Debugging;
@ -76,7 +76,7 @@ namespace ICSharpCode.AspNet.Mvc @@ -76,7 +76,7 @@ namespace ICSharpCode.AspNet.Mvc
string processName = WebProjectService.GetWorkerProcessName(properties);
// try find the worker process directly or using the process monitor callback
Process[] processes = System.Diagnostics.Process.GetProcesses();
List<Process> processes = System.Diagnostics.Process.GetProcesses().ToList();
int index = processes.FindIndex(p => p.ProcessName.Equals(processName, StringComparison.OrdinalIgnoreCase));
if (index > -1) {
if (withDebugging)
@ -96,7 +96,7 @@ namespace ICSharpCode.AspNet.Mvc @@ -96,7 +96,7 @@ namespace ICSharpCode.AspNet.Mvc
DisposeProcessMonitor();
this.monitor = new ProcessMonitor(processName);
this.monitor.ProcessCreated += delegate {
WorkbenchSingleton.SafeThreadCall((Action)(() => OnProcessCreated(properties, withDebugging)));
SD.MainThread.InvokeIfRequired((Action)(() => OnProcessCreated(properties, withDebugging)));
};
this.monitor.Start();
}
@ -151,7 +151,7 @@ namespace ICSharpCode.AspNet.Mvc @@ -151,7 +151,7 @@ namespace ICSharpCode.AspNet.Mvc
void OnProcessCreated(WebProjectProperties properties, bool withDebugging)
{
string processName = WebProjectService.GetWorkerProcessName(properties);
Process[] processes = Process.GetProcesses();
List<Process> processes = Process.GetProcesses().ToList();
int index = processes.FindIndex(p => p.ProcessName.Equals(processName, StringComparison.OrdinalIgnoreCase));
if (index == -1)
return;

67
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/WebProjectService.cs

@ -5,8 +5,8 @@ using System; @@ -5,8 +5,8 @@ using System;
using System.EnterpriseServices.Internal;
using System.IO;
using System.Reflection;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Dom;
using Microsoft.Win32;
@ -151,30 +151,51 @@ namespace ICSharpCode.AspNet.Mvc @@ -151,30 +151,51 @@ namespace ICSharpCode.AspNet.Mvc
{
string location = FRAMEWORK_LOCATION + (Environment.Is64BitOperatingSystem ? FRAMEWORK64 : FRAMEWORK32);
string frameworkString = "";
RegistryService.GetRegistryValue<string>(
RegistryHive.LocalMachine,
ASPNET_REG_PATH,
ASPNET_ROOT_VER,
RegistryValueKind.String,
out frameworkString);
string frameworkString = GetRegistryStringValue(ASPNET_REG_PATH, ASPNET_ROOT_VER);
int ind = frameworkString.LastIndexOf('.');
location += "v" + frameworkString.Substring(0, ind) + "\\";
return location;
}
static string GetRegistryStringValue(string keyName, string valueName)
{
object value = GetRegistryValue(keyName, valueName);
if (value != null) {
return value.ToString();
}
return String.Empty;
}
static object GetRegistryValue(string keyName, string valueName)
{
try {
using (RegistryKey registryKey = Registry.LocalMachine.OpenSubKey(keyName)) {
if (registryKey != null) {
return registryKey.GetValue(valueName);
}
}
} catch {
// Do nothing.
}
return null;
}
static int GetRegistryIntegerValue(string keyName, string valueName)
{
object value = GetRegistryValue(keyName, valueName);
if (value != null) {
try {
return Convert.ToInt32(value);
} catch {
// Do nothing.
}
}
return 0;
}
public static string GetDefaultIISWorkerProcessLocation()
{
string regValue = "";
RegistryService.GetRegistryValue<string>(
RegistryHive.LocalMachine,
IIS_LOCATION,
IIS_INSTALL_PATH,
RegistryValueKind.String,
out regValue);
return regValue + "\\";
return GetRegistryValue(IIS_LOCATION, IIS_INSTALL_PATH) + @"\";
}
/// <summary>
@ -198,15 +219,7 @@ namespace ICSharpCode.AspNet.Mvc @@ -198,15 +219,7 @@ namespace ICSharpCode.AspNet.Mvc
public static IISVersion IISVersion
{
get {
int regValue = 0;
RegistryService.GetRegistryValue<int>(
RegistryHive.LocalMachine,
IIS_LOCATION,
IIS_MAJOR_VERSION,
RegistryValueKind.DWord,
out regValue);
int regValue = GetRegistryIntegerValue(IIS_LOCATION, IIS_MAJOR_VERSION);
if (regValue > 4)
return (IISVersion)regValue;

14
src/AddIns/BackendBindings/AspNet.Mvc/Test/AspNet.Mvc.Tests.csproj

@ -7,9 +7,10 @@ @@ -7,9 +7,10 @@
<OutputType>Library</OutputType>
<RootNamespace>AspNet.Mvc.Tests</RootNamespace>
<AssemblyName>AspNet.Mvc.Tests</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<AppDesignerFolder>Properties</AppDesignerFolder>
<OutputPath>..\..\..\..\..\bin\UnitTests\</OutputPath>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Platform)' == 'x86' ">
<PlatformTarget>x86</PlatformTarget>
@ -66,7 +67,6 @@ @@ -66,7 +67,6 @@
<Link>Configuration\GlobalAssemblyInfo.cs</Link>
</Compile>
<Compile Include="Helpers\FakeAddMvcItemToProjectView.cs" />
<Compile Include="Helpers\FakeClass.cs" />
<Compile Include="Helpers\FakeFileSystem.cs" />
<Compile Include="Helpers\FakeMvcModelClassLocator.cs" />
<Compile Include="Helpers\FakeMvcClass.cs" />
@ -92,7 +92,6 @@ @@ -92,7 +92,6 @@
<Compile Include="Helpers\TestableAddMvcViewToProjectCommand.cs" />
<Compile Include="Helpers\TestableMvcTextTemplateHost.cs" />
<Compile Include="Helpers\TestableProject.cs" />
<Compile Include="Helpers\TestableProjectContent.cs" />
<Compile Include="Helpers\TestableSelectedMvcViewFolder.cs" />
<Compile Include="Src\AddMvcControllerToProjectCommandTests.cs" />
<Compile Include="Src\AddMvcControllerToProjectViewModelTests.cs" />
@ -144,6 +143,7 @@ @@ -144,6 +143,7 @@
<Compile Include="Src\MvcModelClassViewModelTests.cs" />
<Compile Include="Src\MvcProjectRazorFileTests.cs" />
<Compile Include="Src\MvcProjectTests.cs" />
<Compile Include="Src\MvcTestsBase.cs" />
<Compile Include="Src\MvcTextTemplateAssemblyResolverTests.cs" />
<Compile Include="Src\MvcTextTemplateHostTests.cs" />
<Compile Include="Src\MvcTextTemplateRepositoryTests.cs" />
@ -160,6 +160,10 @@ @@ -160,6 +160,10 @@
<Project>{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}</Project>
<Name>ICSharpCode.AvalonEdit</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Libraries\NRefactory\ICSharpCode.NRefactory\ICSharpCode.NRefactory.csproj">
<Project>{3B2A5653-EC97-4001-BB9B-D90F1AF2C371}</Project>
<Name>ICSharpCode.NRefactory</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj">
<Project>{2748AD25-9C63-4E12-877B-4DCE96FBED54}</Project>
<Name>ICSharpCode.SharpDevelop</Name>
@ -168,10 +172,6 @@ @@ -168,10 +172,6 @@
<Project>{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}</Project>
<Name>ICSharpCode.Core</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Main\ICSharpCode.SharpDevelop.Dom\Project\ICSharpCode.SharpDevelop.Dom.csproj">
<Project>{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}</Project>
<Name>ICSharpCode.SharpDevelop.Dom</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\DisplayBindings\AvalonEdit.AddIn\AvalonEdit.AddIn.csproj">
<Project>{0162E499-42D0-409B-AA25-EED21F75336B}</Project>
<Name>AvalonEdit.AddIn</Name>

33
src/AddIns/BackendBindings/AspNet.Mvc/Test/Helpers/FakeClass.cs

@ -1,33 +0,0 @@ @@ -1,33 +0,0 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using ICSharpCode.SharpDevelop.Dom;
namespace AspNet.Mvc.Tests.Helpers
{
public class FakeClass : DefaultClass
{
public TestableProject TestableProject;
public FakeClass(string name)
: this(name, new TestableProjectContent())
{
}
public FakeClass(string name, TestableProjectContent projectContent)
: base(new DefaultCompilationUnit(projectContent), name)
{
this.TestableProject = projectContent.TestableProject;
}
public FakeClass AddBaseClass(string name)
{
var baseClass = new FakeClass(name);
var returnType = new DefaultReturnType(baseClass);
BaseTypes.Add(returnType);
return baseClass;
}
}
}

2
src/AddIns/BackendBindings/AspNet.Mvc/Test/Helpers/FakeMvcClass.cs

@ -29,7 +29,7 @@ namespace AspNet.Mvc.Tests.Helpers @@ -29,7 +29,7 @@ namespace AspNet.Mvc.Tests.Helpers
public void SetIsNotModelClass()
{
isModelClass = false;
isModelClass = false;
}
public bool IsModelClass()

3
src/AddIns/BackendBindings/AspNet.Mvc/Test/Helpers/MSBuildProjectHelper.cs

@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Internal.Templates;
using ICSharpCode.SharpDevelop.Project;
using Rhino.Mocks;
@ -14,7 +15,7 @@ namespace AspNet.Mvc.Tests.Helpers @@ -14,7 +15,7 @@ namespace AspNet.Mvc.Tests.Helpers
{
var createInfo = new ProjectCreateInformation();
createInfo.Solution = new Solution(MockRepository.GenerateStub<IProjectChangeWatcher>());
createInfo.OutputProjectFileName = @"d:\projects\MyProject\MyProject.csproj";
createInfo.OutputProjectFileName = new FileName(@"d:\projects\MyProject\MyProject.csproj");
return new MSBuildBasedProject(createInfo);
}
}

11
src/AddIns/BackendBindings/AspNet.Mvc/Test/Helpers/TestableProject.cs

@ -2,10 +2,11 @@ @@ -2,10 +2,11 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using ICSharpCode.SharpDevelop.Internal.Templates;
using Dom = ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Internal.Templates;
using ICSharpCode.SharpDevelop.Project;
using Dom = ICSharpCode.SharpDevelop.Dom;
namespace AspNet.Mvc.Tests.Helpers
{
@ -29,14 +30,10 @@ namespace AspNet.Mvc.Tests.Helpers @@ -29,14 +30,10 @@ namespace AspNet.Mvc.Tests.Helpers
var createInfo = new ProjectCreateInformation();
createInfo.Solution = new Solution(null);
createInfo.ProjectName = projectName;
createInfo.OutputProjectFileName = fileName;
createInfo.OutputProjectFileName = new FileName(fileName);
return new TestableProject(createInfo);
}
public override LanguageProperties LanguageProperties {
get { return Dom.LanguageProperties.CSharp; }
}
public override string Language {
get { return language; }
}

17
src/AddIns/BackendBindings/AspNet.Mvc/Test/Helpers/TestableProjectContent.cs

@ -1,17 +0,0 @@ @@ -1,17 +0,0 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using ICSharpCode.SharpDevelop.Dom;
namespace AspNet.Mvc.Tests.Helpers
{
public class TestableProjectContent : DefaultProjectContent
{
public TestableProject TestableProject = TestableProject.CreateProject();
public override object Project {
get { return TestableProject; }
}
}
}

3
src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/AddMvcControllerToProjectViewModelTests.cs

@ -7,13 +7,14 @@ using System.Linq; @@ -7,13 +7,14 @@ using System.Linq;
using AspNet.Mvc.Tests.Helpers;
using ICSharpCode.AspNet.Mvc;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Project;
using NUnit.Framework;
namespace AspNet.Mvc.Tests
{
[TestFixture]
public class AddMvcControllerToProjectControllerModelTests
public class AddMvcControllerToProjectControllerModelTests : MvcTestsBase
{
AddMvcControllerToProjectViewModel viewModel;
FakeMvcControllerFileGenerator fakeControllerGenerator;

2
src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/AddMvcViewToProjectViewModelTests.cs

@ -13,7 +13,7 @@ using NUnit.Framework; @@ -13,7 +13,7 @@ using NUnit.Framework;
namespace AspNet.Mvc.Tests
{
[TestFixture]
public class AddMvcViewToProjectViewModelTests
public class AddMvcViewToProjectViewModelTests : MvcTestsBase
{
AddMvcViewToProjectViewModel viewModel;
FakeMvcViewFileGenerator fakeViewGenerator;

296
src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/Completion/RazorCSharpParserTests.cs

@ -1,148 +1,148 @@ @@ -1,148 +1,148 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using ICSharpCode.AspNet.Mvc.Completion;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Dom;
using NUnit.Framework;
namespace AspNet.Mvc.Tests.Completion
{
[TestFixture]
public class RazorCSharpParserTests
{
RazorCSharpParser parser;
void CreateParser()
{
parser = new RazorCSharpParser();
}
ICompilationUnit Parse(string code)
{
var projectContent = new DefaultProjectContent();
var textBuffer = new StringTextBuffer(code);
return parser.Parse(projectContent, @"d:\MyProject\Views\Index.cshtml", textBuffer);
}
[Test]
public void Parse_ModelDirectiveWithTypeName_ModelTypeNameFound()
{
CreateParser();
string code = "@model MvcApplication.MyModel\r\n";
var compilationUnit = Parse(code) as RazorCompilationUnit;
Assert.AreEqual("MvcApplication.MyModel", compilationUnit.ModelTypeName);
}
[Test]
public void Parse_ModelDirectiveWithTypeNameFollowedByHtmlMarkup_ModelTypeNameFound()
{
CreateParser();
string code =
"@model MvcApplication.LogonModel\r\n" +
"<h2>Index</h2>\r\n";
var compilationUnit = Parse(code) as RazorCompilationUnit;
Assert.AreEqual("MvcApplication.LogonModel", compilationUnit.ModelTypeName);
}
[Test]
public void Parse_SingleLineFileWithModelDirectiveAndTypeNameButNoNewLineAtEnd_ModelTypeNameFound()
{
CreateParser();
string code = "@model MvcApplication.MyModel";
var compilationUnit = Parse(code) as RazorCompilationUnit;
Assert.AreEqual("MvcApplication.MyModel", compilationUnit.ModelTypeName);
}
[Test]
public void Parse_ModelTypeDirectiveWithTypeNameFollowedByRazorBlock_ModelTypeNameFound()
{
CreateParser();
string code =
"@model IEnumerable<MvcApplication1.Models.MyClass>\r\n" +
"\r\n" +
"@{\r\n" +
" ViewBag.Title = \"Title1\";\r\n" +
"}\r\n" +
"\r\n";
var compilationUnit = Parse(code) as RazorCompilationUnit;
Assert.AreEqual("IEnumerable<MvcApplication1.Models.MyClass>", compilationUnit.ModelTypeName);
}
[Test]
public void Parse_UsingDirective_ModelTypeNameIsEmptyString()
{
CreateParser();
string code = "@using System.Xml\r\n";
var compilationUnit = Parse(code) as RazorCompilationUnit;
Assert.AreEqual(String.Empty, compilationUnit.ModelTypeName);
}
[Test]
public void Parse_HelperDirective_ModelTypeNameIsEmptyString()
{
CreateParser();
string code = "@helper MyHelper\r\n";
var compilationUnit = Parse(code) as RazorCompilationUnit;
Assert.AreEqual(String.Empty, compilationUnit.ModelTypeName);
}
[Test]
public void Parse_HtmlMarkupOnly_ModelTypeNameIsEmptyString()
{
CreateParser();
string code = "<h1>heading</h1>\r\n";
var compilationUnit = Parse(code) as RazorCompilationUnit;
Assert.AreEqual(String.Empty, compilationUnit.ModelTypeName);
}
[Test]
public void Parse_ModelDirectiveOnly_ModelTypeNameIsEmptyString()
{
CreateParser();
string code = "@model";
var compilationUnit = Parse(code) as RazorCompilationUnit;
Assert.AreEqual(String.Empty, compilationUnit.ModelTypeName);
}
[Test]
public void Parse_ModelStringInsideParagraphTags_ModelTypeNameIsEmptyString()
{
CreateParser();
string code = "<p>model</p>";
var compilationUnit = Parse(code) as RazorCompilationUnit;
Assert.AreEqual(String.Empty, compilationUnit.ModelTypeName);
}
[Test]
public void Parse_ModelStringOnlyWithoutRazorTransition_ModelTypeNameIsEmptyString()
{
CreateParser();
string code = "model";
var compilationUnit = Parse(code) as RazorCompilationUnit;
Assert.AreEqual(String.Empty, compilationUnit.ModelTypeName);
}
}
}
//// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
//// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
//
//using System;
//using ICSharpCode.AspNet.Mvc.Completion;
//using ICSharpCode.SharpDevelop;
//using ICSharpCode.SharpDevelop.Dom;
//using NUnit.Framework;
//
//namespace AspNet.Mvc.Tests.Completion
//{
// [TestFixture]
// public class RazorCSharpParserTests
// {
// RazorCSharpParser parser;
//
// void CreateParser()
// {
// parser = new RazorCSharpParser();
// }
//
// ICompilationUnit Parse(string code)
// {
// var projectContent = new DefaultProjectContent();
// var textBuffer = new StringTextBuffer(code);
// return parser.Parse(projectContent, @"d:\MyProject\Views\Index.cshtml", textBuffer);
// }
//
// [Test]
// public void Parse_ModelDirectiveWithTypeName_ModelTypeNameFound()
// {
// CreateParser();
// string code = "@model MvcApplication.MyModel\r\n";
//
// var compilationUnit = Parse(code) as RazorCompilationUnit;
//
// Assert.AreEqual("MvcApplication.MyModel", compilationUnit.ModelTypeName);
// }
//
// [Test]
// public void Parse_ModelDirectiveWithTypeNameFollowedByHtmlMarkup_ModelTypeNameFound()
// {
// CreateParser();
// string code =
// "@model MvcApplication.LogonModel\r\n" +
// "<h2>Index</h2>\r\n";
//
// var compilationUnit = Parse(code) as RazorCompilationUnit;
//
// Assert.AreEqual("MvcApplication.LogonModel", compilationUnit.ModelTypeName);
// }
//
// [Test]
// public void Parse_SingleLineFileWithModelDirectiveAndTypeNameButNoNewLineAtEnd_ModelTypeNameFound()
// {
// CreateParser();
// string code = "@model MvcApplication.MyModel";
//
// var compilationUnit = Parse(code) as RazorCompilationUnit;
//
// Assert.AreEqual("MvcApplication.MyModel", compilationUnit.ModelTypeName);
// }
//
// [Test]
// public void Parse_ModelTypeDirectiveWithTypeNameFollowedByRazorBlock_ModelTypeNameFound()
// {
// CreateParser();
//
// string code =
// "@model IEnumerable<MvcApplication1.Models.MyClass>\r\n" +
// "\r\n" +
// "@{\r\n" +
// " ViewBag.Title = \"Title1\";\r\n" +
// "}\r\n" +
// "\r\n";
//
// var compilationUnit = Parse(code) as RazorCompilationUnit;
//
// Assert.AreEqual("IEnumerable<MvcApplication1.Models.MyClass>", compilationUnit.ModelTypeName);
// }
//
// [Test]
// public void Parse_UsingDirective_ModelTypeNameIsEmptyString()
// {
// CreateParser();
// string code = "@using System.Xml\r\n";
//
// var compilationUnit = Parse(code) as RazorCompilationUnit;
//
// Assert.AreEqual(String.Empty, compilationUnit.ModelTypeName);
// }
//
// [Test]
// public void Parse_HelperDirective_ModelTypeNameIsEmptyString()
// {
// CreateParser();
// string code = "@helper MyHelper\r\n";
//
// var compilationUnit = Parse(code) as RazorCompilationUnit;
//
// Assert.AreEqual(String.Empty, compilationUnit.ModelTypeName);
// }
//
// [Test]
// public void Parse_HtmlMarkupOnly_ModelTypeNameIsEmptyString()
// {
// CreateParser();
// string code = "<h1>heading</h1>\r\n";
//
// var compilationUnit = Parse(code) as RazorCompilationUnit;
//
// Assert.AreEqual(String.Empty, compilationUnit.ModelTypeName);
// }
//
// [Test]
// public void Parse_ModelDirectiveOnly_ModelTypeNameIsEmptyString()
// {
// CreateParser();
// string code = "@model";
//
// var compilationUnit = Parse(code) as RazorCompilationUnit;
//
// Assert.AreEqual(String.Empty, compilationUnit.ModelTypeName);
// }
//
// [Test]
// public void Parse_ModelStringInsideParagraphTags_ModelTypeNameIsEmptyString()
// {
// CreateParser();
// string code = "<p>model</p>";
//
// var compilationUnit = Parse(code) as RazorCompilationUnit;
//
// Assert.AreEqual(String.Empty, compilationUnit.ModelTypeName);
// }
//
// [Test]
// public void Parse_ModelStringOnlyWithoutRazorTransition_ModelTypeNameIsEmptyString()
// {
// CreateParser();
// string code = "model";
//
// var compilationUnit = Parse(code) as RazorCompilationUnit;
//
// Assert.AreEqual(String.Empty, compilationUnit.ModelTypeName);
// }
// }
//}

2
src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/IISExpressProcessStartInfoTests.cs

@ -10,7 +10,7 @@ using NUnit.Framework; @@ -10,7 +10,7 @@ using NUnit.Framework;
namespace AspNet.Mvc.Tests
{
[TestFixture]
public class IISExpressProcessStartInfoTests
public class IISExpressProcessStartInfoTests : MvcTestsBase
{
WebProject project;
TestableProject testableProject;

2
src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/IsMvcControllerFolderSelectedConditionEvaluatorTests.cs

@ -10,7 +10,7 @@ using NUnit.Framework; @@ -10,7 +10,7 @@ using NUnit.Framework;
namespace AspNet.Mvc.Tests
{
[TestFixture]
public class IsMvcControllerFolderSelectedConditionEvaluatorTests
public class IsMvcControllerFolderSelectedConditionEvaluatorTests : MvcTestsBase
{
IsMvcControllerFolderSelectedConditionEvaluator conditionEvaluator;

2
src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/IsMvcViewFolderSelectedConditionEvaluatorTests.cs

@ -11,7 +11,7 @@ using NUnit.Framework; @@ -11,7 +11,7 @@ using NUnit.Framework;
namespace AspNet.Mvc.Tests
{
[TestFixture]
public class IsMvcViewFolderSelectedConditionEvaluatorTests
public class IsMvcViewFolderSelectedConditionEvaluatorTests : MvcTestsBase
{
IsMvcViewFolderSelectedConditionEvaluator conditionEvaluator;

30
src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/MvcClassTests.cs

@ -2,19 +2,23 @@ @@ -2,19 +2,23 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using AspNet.Mvc.Tests.Helpers;
using ICSharpCode.AspNet.Mvc;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.SharpDevelop.Dom;
using NUnit.Framework;
using Rhino.Mocks;
namespace AspNet.Mvc.Tests
{
[TestFixture]
public class MvcClassTests
public class MvcClassTests : MvcTestsBase
{
MvcClass mvcClass;
FakeMvcProject fakeProject;
FakeClass fakeClass;
ITypeDefinition fakeTypeDefinition;
List<IType> baseTypes;
void CreateCSharpProject()
{
@ -41,8 +45,17 @@ namespace AspNet.Mvc.Tests @@ -41,8 +45,17 @@ namespace AspNet.Mvc.Tests
void CreateClass(string name, FakeMvcProject fakeProject)
{
fakeClass = new FakeClass(name);
mvcClass = new MvcClass(fakeClass, fakeProject);
fakeTypeDefinition = CreateFakeTypeDefinition(name);
mvcClass = new MvcClass(fakeTypeDefinition, fakeProject);
}
ITypeDefinition CreateFakeTypeDefinition(string name)
{
var typeDefinition = MockRepository.GenerateStub<ITypeDefinition>();
typeDefinition.Stub(t => t.FullName).Return(name);
baseTypes = new List<IType>();
typeDefinition.Stub(t => t.DirectBaseTypes).Return(baseTypes);
return typeDefinition;
}
void CreateClassWithVisualBasicProject(string name)
@ -53,7 +66,10 @@ namespace AspNet.Mvc.Tests @@ -53,7 +66,10 @@ namespace AspNet.Mvc.Tests
void AddBaseClass(string name)
{
fakeClass.AddBaseClass(name);
IType type = MockRepository.GenerateStub<IType>();
type.Stub(t => t.FullName).Return(name);
type.Stub(t => t.Kind).Return(TypeKind.Class);
baseTypes.Add(type);
}
[Test]
@ -69,6 +85,7 @@ namespace AspNet.Mvc.Tests @@ -69,6 +85,7 @@ namespace AspNet.Mvc.Tests
public void Namespace_ClassIsICSharpCodeTestClass_ReturnsICSharpCode()
{
CreateClass("ICSharpCode.TestClass");
fakeTypeDefinition.Stub(t => t.Namespace).Return("ICSharpCode");
string @namespace = mvcClass.Namespace;
Assert.AreEqual("ICSharpCode", @namespace);
@ -78,6 +95,7 @@ namespace AspNet.Mvc.Tests @@ -78,6 +95,7 @@ namespace AspNet.Mvc.Tests
public void Name_ClassIsICSharpCodeTestClass_ReturnsTestClass()
{
CreateClass("ICSharpCode.TestClass");
fakeTypeDefinition.Stub(t => t.Name).Return("TestClass");
string name = mvcClass.Name;
Assert.AreEqual("TestClass", name);
@ -107,7 +125,7 @@ namespace AspNet.Mvc.Tests @@ -107,7 +125,7 @@ namespace AspNet.Mvc.Tests
{
CreateClass("ICSharpCode.TestClass");
string expectedOutputAssemblyLocation = @"d:\test\bin\debug\test.dll";
fakeClass.TestableProject.SetOutputAssemblyFullPath(expectedOutputAssemblyLocation);
fakeProject.OutputAssemblyFullPath = expectedOutputAssemblyLocation;
string assemblyLocation = mvcClass.AssemblyLocation;

2
src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/MvcControllerFileGeneratorTests.cs

@ -12,7 +12,7 @@ using Rhino.Mocks; @@ -12,7 +12,7 @@ using Rhino.Mocks;
namespace AspNet.Mvc.Tests
{
[TestFixture]
public class MvcControllerFileGeneratorTests
public class MvcControllerFileGeneratorTests : MvcTestsBase
{
MvcControllerFileGenerator generator;
FakeMvcProject projectUsedByGenerator;

2
src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/MvcModelClassLocatorTests.cs

@ -11,7 +11,7 @@ using NUnit.Framework; @@ -11,7 +11,7 @@ using NUnit.Framework;
namespace AspNet.Mvc.Tests
{
[TestFixture]
public class MvcModelClassLocatorTests
public class MvcModelClassLocatorTests : MvcTestsBase
{
MvcModelClassLocator locator;
FakeMvcProject fakeProject;

2
src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/MvcProjectFileTests.cs

@ -9,7 +9,7 @@ using NUnit.Framework; @@ -9,7 +9,7 @@ using NUnit.Framework;
namespace AspNet.Mvc.Tests
{
public class MvcProjectFileTests
public class MvcProjectFileTests : MvcTestsBase
{
TestableProject project;
MvcProjectFile file;

2
src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/MvcProjectTests.cs

@ -12,7 +12,7 @@ using NUnit.Framework; @@ -12,7 +12,7 @@ using NUnit.Framework;
namespace AspNet.Mvc.Tests
{
[TestFixture]
public class MvcProjectTests
public class MvcProjectTests : MvcTestsBase
{
MvcProject project;
TestableProject testableProject;

33
src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/MvcTestsBase.cs

@ -0,0 +1,33 @@ @@ -0,0 +1,33 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using ICSharpCode.SharpDevelop;
using NUnit.Framework;
using Rhino.Mocks;
namespace AspNet.Mvc.Tests
{
public abstract class MvcTestsBase
{
[SetUp]
public void Init()
{
SD.InitializeForUnitTests();
InitializeMessageLoop();
}
void InitializeMessageLoop()
{
IMessageLoop messageLoop = MockRepository.GenerateStub<IMessageLoop>();
SD.Services.RemoveService(typeof(IMessageLoop));
SD.Services.AddService(typeof(IMessageLoop), messageLoop);
}
[TearDown]
public void TearDown()
{
SD.TearDownForUnitTests();
}
}
}

2
src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/MvcViewFileGeneratorTests.cs

@ -12,7 +12,7 @@ using Rhino.Mocks; @@ -12,7 +12,7 @@ using Rhino.Mocks;
namespace AspNet.Mvc.Tests
{
[TestFixture]
public class MvcViewFileGeneratorTests
public class MvcViewFileGeneratorTests : MvcTestsBase
{
MvcViewFileGenerator generator;
FakeMvcProject projectUsedByGenerator;

2
src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/SelectedFolderNodeInProjectsViewTests.cs

@ -10,7 +10,7 @@ using NUnit.Framework; @@ -10,7 +10,7 @@ using NUnit.Framework;
namespace AspNet.Mvc.Tests
{
[TestFixture]
public class SelectedFolderNodeInProjectsViewTests
public class SelectedFolderNodeInProjectsViewTests : MvcTestsBase
{
SelectedFolderNodeInProjectsView selectedFolderNode;
TestableProject projectForSelectedFolder;

2
src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/SelectedMvcViewFolderTests.cs

@ -11,7 +11,7 @@ using NUnit.Framework; @@ -11,7 +11,7 @@ using NUnit.Framework;
namespace AspNet.Mvc.Tests
{
[TestFixture]
public class SelectedMvcViewFolderTests
public class SelectedMvcViewFolderTests : MvcTestsBase
{
TestableSelectedMvcViewFolder selectedFolder;
FakeMvcProject projectForSelectedFolder;

2
src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/VisualStudioProjectExtensionTests.cs

@ -11,7 +11,7 @@ using NUnit.Framework; @@ -11,7 +11,7 @@ using NUnit.Framework;
namespace AspNet.Mvc.Tests
{
[TestFixture]
public class VisualStudioProjectExtensionTests
public class VisualStudioProjectExtensionTests : MvcTestsBase
{
VisualStudioProjectExtension extension;
MSBuildBasedProject msbuildProject;

6
src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/WebProjectTests.cs

@ -7,9 +7,9 @@ using System.Text; @@ -7,9 +7,9 @@ using System.Text;
using System.Text.RegularExpressions;
using System.Xml;
using System.Xml.Linq;
using AspNet.Mvc.Tests.Helpers;
using ICSharpCode.AspNet.Mvc;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Internal.Templates;
using ICSharpCode.SharpDevelop.Project;
using NUnit.Framework;
@ -18,7 +18,7 @@ using Rhino.Mocks; @@ -18,7 +18,7 @@ using Rhino.Mocks;
namespace AspNet.Mvc.Tests
{
[TestFixture]
public class WebProjectTests
public class WebProjectTests : MvcTestsBase
{
MSBuildBasedProject msbuildProject;
WebProject webProject;
@ -289,7 +289,7 @@ namespace AspNet.Mvc.Tests @@ -289,7 +289,7 @@ namespace AspNet.Mvc.Tests
public void Directory_MSBuildProjectDirectoryIsSet_ReturnsMSBuildProjectDirectory()
{
CreateMSBuildProject();
msbuildProject.FileName = @"c:\projects\Test\test.csproj";
msbuildProject.FileName = new FileName(@"c:\projects\Test\test.csproj");
CreateWebProject(msbuildProject);
string directory = webProject.Directory;

2
src/Setup/Files.wxs

@ -1127,7 +1127,6 @@ @@ -1127,7 +1127,6 @@
</Component>
</Directory>
</Directory>
<!--
<Directory Id="AspNet.Mvc" Name="AspNet.Mvc">
<Component Id="AspNetMvcAddin" Guid="2ADAB116-3E40-4A12-B6CD-EE41C482807A" DiskId="1">
<File Id="AspNet.Mvc.addin" Name="AspNet.Mvc.addin" Source="..\..\AddIns\BackendBindings\AspNet.Mvc\AspNet.Mvc.addin" KeyPath="yes" />
@ -1249,6 +1248,7 @@ @@ -1249,6 +1248,7 @@
</Directory>
</Directory>
</Directory>
<!--
<Directory Id="JavaScriptBinding" Name="JavaScriptBinding">
<Component Id="Antlr3RuntimeDll" Guid="CD73166D-0ACB-4A3D-8023-06DAC6CB903A" DiskId="1">
<File Id="Antlr3.Runtime.dll" Name="Antlr3.Runtime.dll" Source="..\..\AddIns\BackendBindings\JavaScriptBinding\Antlr3.Runtime.dll" KeyPath="yes" Assembly=".net" AssemblyApplication="Antlr3.Runtime.dll" AssemblyManifest="Antlr3.Runtime.dll" />

4
src/Setup/Setup.wxs

@ -484,7 +484,7 @@ @@ -484,7 +484,7 @@
<ComponentRef Id="MspecExe"/>
-->
<!--<ComponentRef Id="AspNetMvcAddin"/>
<ComponentRef Id="AspNetMvcAddin"/>
<ComponentRef Id="AspNetMvcDll"/>
<ComponentRef Id="AspNetMvcMonoTextTemplatingDll"/>
<ComponentRef Id="SystemWebRazorDll"/>
@ -514,7 +514,7 @@ @@ -514,7 +514,7 @@
<ComponentRef Id="AspNetMvcRazorVisualBasicDetailsTemplate"/>
<ComponentRef Id="AspNetMvcRazorVisualBasicEditTemplate"/>
<ComponentRef Id="AspNetMvcRazorVisualBasicEmptyTemplate"/>
<ComponentRef Id="AspNetMvcRazorVisualBasicListTemplate"/>-->
<ComponentRef Id="AspNetMvcRazorVisualBasicListTemplate"/>
<ComponentRef Id="CSharpMvcRazorLayoutPageFileTemplate"/>
<ComponentRef Id="CSharpMvcRazorPartialPageFileTemplate"/>
<ComponentRef Id="CSharpMvcRazorViewPageFileTemplate"/>

Loading…
Cancel
Save