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\
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XamlBinding", "src\AddIns\BackendBindings\XamlBinding\XamlBinding\XamlBinding.csproj", "{7C96B65D-28A5-4F28-A35B-8D83CE831EE8}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XamlBinding", "src\AddIns\BackendBindings\XamlBinding\XamlBinding\XamlBinding.csproj", "{7C96B65D-28A5-4F28-A35B-8D83CE831EE8}"
EndProject 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}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Misc", "Misc", "{F3662720-9EA2-4591-BBC6-97361DCE50A9}"
ProjectSection(SolutionItems) = postProject ProjectSection(SolutionItems) = postProject
EndProjectSection EndProjectSection
@ -605,6 +609,22 @@ Global
DC88D67C-E6B5-4994-9FA9-D4AB0E162FB3.Release|Any CPU.ActiveCfg = Release|Any CPU 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.Build.0 = Release|Any CPU
DC88D67C-E6B5-4994-9FA9-D4AB0E162FB3.Release|x86.ActiveCfg = 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 EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
@ -646,6 +666,8 @@ Global
{70966F84-74C9-4067-A379-0C674A929233} = {E0646C25-36F2-4524-969F-FA621353AB94} {70966F84-74C9-4067-A379-0C674A929233} = {E0646C25-36F2-4524-969F-FA621353AB94}
{52006F3F-3156-45DE-89D8-C4813694FBA4} = {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} {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} {80F76D10-0B44-4D55-B4BD-DAEB5464090C} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
{9196DD8A-B4D4-4780-8742-C5762E547FC2} = {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} {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
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XamlBinding", "src\AddIns\BackendBindings\XamlBinding\XamlBinding\XamlBinding.csproj", "{7C96B65D-28A5-4F28-A35B-8D83CE831EE8}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XamlBinding", "src\AddIns\BackendBindings\XamlBinding\XamlBinding\XamlBinding.csproj", "{7C96B65D-28A5-4F28-A35B-8D83CE831EE8}"
EndProject 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}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Misc", "Misc", "{F3662720-9EA2-4591-BBC6-97361DCE50A9}"
ProjectSection(SolutionItems) = postProject ProjectSection(SolutionItems) = postProject
EndProjectSection EndProjectSection
@ -515,6 +517,14 @@ Global
44FA68C9-DAD1-4C3C-90BB-3435F0D1D128.Release|Any CPU.ActiveCfg = Release|Any CPU 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.Build.0 = Release|Any CPU
44FA68C9-DAD1-4C3C-90BB-3435F0D1D128.Release|x86.ActiveCfg = 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 EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
@ -550,6 +560,7 @@ Global
{E954F3CB-A446-492F-A664-2B376EBC86E8} = {E0646C25-36F2-4524-969F-FA621353AB94} {E954F3CB-A446-492F-A664-2B376EBC86E8} = {E0646C25-36F2-4524-969F-FA621353AB94}
{70966F84-74C9-4067-A379-0C674A929233} = {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} {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} {9196DD8A-B4D4-4780-8742-C5762E547FC2} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
{7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51} = {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} {4B8F0F98-8BE1-402B-AA8B-C8D548577B38} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}

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

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

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

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

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

@ -7,9 +7,10 @@
<OutputType>Library</OutputType> <OutputType>Library</OutputType>
<RootNamespace>ICSharpCode.AspNet.Mvc</RootNamespace> <RootNamespace>ICSharpCode.AspNet.Mvc</RootNamespace>
<AssemblyName>AspNet.Mvc</AssemblyName> <AssemblyName>AspNet.Mvc</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion> <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<AppDesignerFolder>Properties</AppDesignerFolder> <AppDesignerFolder>Properties</AppDesignerFolder>
<OutputPath>..\..\..\..\..\AddIns\BackendBindings\AspNet.Mvc\</OutputPath> <OutputPath>..\..\..\..\..\AddIns\BackendBindings\AspNet.Mvc\</OutputPath>
<TargetFrameworkProfile />
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Platform)' == 'x86' "> <PropertyGroup Condition=" '$(Platform)' == 'x86' ">
<PlatformTarget>x86</PlatformTarget> <PlatformTarget>x86</PlatformTarget>
@ -276,6 +277,11 @@
<Name>ICSharpCode.AvalonEdit</Name> <Name>ICSharpCode.AvalonEdit</Name>
<Private>False</Private> <Private>False</Private>
</ProjectReference> </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"> <ProjectReference Include="..\..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj">
<Project>{2748AD25-9C63-4E12-877B-4DCE96FBED54}</Project> <Project>{2748AD25-9C63-4E12-877B-4DCE96FBED54}</Project>
<Name>ICSharpCode.SharpDevelop</Name> <Name>ICSharpCode.SharpDevelop</Name>
@ -291,11 +297,6 @@
<Name>ICSharpCode.Core.Presentation</Name> <Name>ICSharpCode.Core.Presentation</Name>
<Private>False</Private> <Private>False</Private>
</ProjectReference> </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"> <ProjectReference Include="..\..\..\..\Main\ICSharpCode.SharpDevelop.Widgets\Project\ICSharpCode.SharpDevelop.Widgets.csproj">
<Project>{8035765F-D51F-4A0C-A746-2FD100E19419}</Project> <Project>{8035765F-D51F-4A0C-A746-2FD100E19419}</Project>
<Name>ICSharpCode.SharpDevelop.Widgets</Name> <Name>ICSharpCode.SharpDevelop.Widgets</Name>

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

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

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

@ -3,7 +3,7 @@
using System; using System;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Project; using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.AspNet.Mvc namespace ICSharpCode.AspNet.Mvc
@ -20,7 +20,7 @@ namespace ICSharpCode.AspNet.Mvc
protected virtual IAddMvcItemToProjectView CreateView() protected virtual IAddMvcItemToProjectView CreateView()
{ {
return new AddMvcViewToProjectView() { 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 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) //// 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) //// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
//
using System; //using System;
using ICSharpCode.SharpDevelop.Editor; //using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Editor.CodeCompletion; //using ICSharpCode.SharpDevelop.Editor.CodeCompletion;
//
namespace ICSharpCode.AspNet.Mvc.Completion //namespace ICSharpCode.AspNet.Mvc.Completion
{ //{
public class RazorCSharpCompletionBinding : DefaultCodeCompletionBinding // public class RazorCSharpCompletionBinding : DefaultCodeCompletionBinding
{ // {
public RazorCSharpCompletionBinding() // public RazorCSharpCompletionBinding()
{ // {
} // }
//
public override CodeCompletionKeyPressResult HandleKeyPress(ITextEditor editor, char ch) // public override CodeCompletionKeyPressResult HandleKeyPress(ITextEditor editor, char ch)
{ // {
if (ch == '.') { // if (ch == '.') {
new RazorCSharpDotCompletionDataProvider().ShowCompletion(editor); // new RazorCSharpDotCompletionDataProvider().ShowCompletion(editor);
return CodeCompletionKeyPressResult.Completed; // return CodeCompletionKeyPressResult.Completed;
} else if (ch == '(') { // } else if (ch == '(') {
return base.HandleKeyPress(editor, ch); // return base.HandleKeyPress(editor, ch);
} // }
return CodeCompletionKeyPressResult.None; // return CodeCompletionKeyPressResult.None;
} // }
} // }
} //}

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

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

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

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

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

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

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

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

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

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

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

@ -1,34 +1,35 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) //// 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) //// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
//
using System; //using System;
using ICSharpCode.SharpDevelop.Dom; //using ICSharpCode.NRefactory.TypeSystem;
//using ICSharpCode.SharpDevelop.Parser;
namespace ICSharpCode.AspNet.Mvc.Completion //
{ //namespace ICSharpCode.AspNet.Mvc.Completion
public class RazorCompilationUnit : DefaultCompilationUnit //{
{ // public class RazorCompilationUnit : DefaultCompilationUnit
public RazorCompilationUnit(IProjectContent projectContent) // {
: base(projectContent) // public RazorCompilationUnit(IProjectContent projectContent)
{ // : base(projectContent)
} // {
// }
public static RazorCompilationUnit CreateFromParseInfo(ParseInformation parseInformation) //
{ // public static RazorCompilationUnit CreateFromParseInfo(ParseInformation parseInformation)
return new RazorCompilationUnit(parseInformation.CompilationUnit.ProjectContent) { // {
ModelTypeName = GetModelTypeName(parseInformation.CompilationUnit) // return new RazorCompilationUnit(parseInformation.CompilationUnit.ProjectContent) {
}; // ModelTypeName = GetModelTypeName(parseInformation.CompilationUnit)
} // };
// }
static string GetModelTypeName(ICompilationUnit compilationUnit) //
{ // static string GetModelTypeName(ICompilationUnit compilationUnit)
var originalRazorCompilationUnit = compilationUnit as RazorCompilationUnit; // {
if (originalRazorCompilationUnit != null) { // var originalRazorCompilationUnit = compilationUnit as RazorCompilationUnit;
return originalRazorCompilationUnit.ModelTypeName; // if (originalRazorCompilationUnit != null) {
} // return originalRazorCompilationUnit.ModelTypeName;
return String.Empty; // }
} // return String.Empty;
// }
public string ModelTypeName { get; set; } //
} // 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
get { return new DefaultFormattingStrategy(); } get { return new DefaultFormattingStrategy(); }
} }
public override LanguageProperties Properties {
get { return LanguageProperties.None; }
}
public override void Attach(ITextEditor editor) public override void Attach(ITextEditor editor)
{ {
Attach(textEditorFactory.CreateTextEditor(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
} }
} }
// TODO disable parse information folding?
public bool IsParseInformationFoldingEnabled { public bool IsParseInformationFoldingEnabled {
get { get {
if (CodeEditorView != null) { if (CodeEditorView != null) {
return !CodeEditorView.DisableParseInformationFolding; //return !CodeEditorView.DisableParseInformationFolding;
} }
return false; return false;
} }
set { set {
if (CodeEditorView != null) { if (CodeEditorView != null) {
CodeEditorView.DisableParseInformationFolding = !value; //CodeEditorView.DisableParseInformationFolding = !value;
} }
} }
} }

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

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

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

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

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

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

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

@ -17,7 +17,7 @@ namespace ICSharpCode.AspNet.Mvc
foreach (CompilerError error in errors) { foreach (CompilerError error in errors) {
TaskService.Add(new CompilerErrorTask(error)); 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 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System; using System;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Dom;
namespace ICSharpCode.AspNet.Mvc namespace ICSharpCode.AspNet.Mvc
{ {
@ -11,13 +11,13 @@ namespace ICSharpCode.AspNet.Mvc
{ {
public IMvcProjectContent GetProjectContent(IMvcProject project) public IMvcProjectContent GetProjectContent(IMvcProject project)
{ {
IProjectContent projectContent = GetProjectContentFromParser(project); ICompilation compilation = GetProjectContentFromParser(project);
return new MvcProjectContent(projectContent, 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 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using ICSharpCode.SharpDevelop.Dom; using ICSharpCode.NRefactory.TypeSystem;
namespace ICSharpCode.AspNet.Mvc namespace ICSharpCode.AspNet.Mvc
{ {
public class MvcProjectContent : IMvcProjectContent public class MvcProjectContent : IMvcProjectContent
{ {
IProjectContent projectContent; ICompilation compilation;
IMvcProject project; IMvcProject project;
public MvcProjectContent(IProjectContent projectContent, IMvcProject project) public MvcProjectContent(ICompilation compilation, IMvcProject project)
{ {
this.projectContent = projectContent; this.compilation = compilation;
this.project = project; this.project = project;
} }
public IEnumerable<IMvcClass> GetClasses() public IEnumerable<IMvcClass> GetClasses()
{ {
foreach (IClass c in projectContent.Classes) { foreach (ITypeDefinition type in compilation.MainAssembly.TopLevelTypeDefinitions) {
yield return new MvcClass(c, project); yield return new MvcClass(type, project);
} }
} }
} }

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

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

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

@ -5,8 +5,8 @@ using System;
using System.EnterpriseServices.Internal; using System.EnterpriseServices.Internal;
using System.IO; using System.IO;
using System.Reflection; using System.Reflection;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Dom; using ICSharpCode.SharpDevelop.Dom;
using Microsoft.Win32; using Microsoft.Win32;
@ -151,30 +151,51 @@ namespace ICSharpCode.AspNet.Mvc
{ {
string location = FRAMEWORK_LOCATION + (Environment.Is64BitOperatingSystem ? FRAMEWORK64 : FRAMEWORK32); string location = FRAMEWORK_LOCATION + (Environment.Is64BitOperatingSystem ? FRAMEWORK64 : FRAMEWORK32);
string frameworkString = ""; string frameworkString = GetRegistryStringValue(ASPNET_REG_PATH, ASPNET_ROOT_VER);
RegistryService.GetRegistryValue<string>(
RegistryHive.LocalMachine,
ASPNET_REG_PATH,
ASPNET_ROOT_VER,
RegistryValueKind.String,
out frameworkString);
int ind = frameworkString.LastIndexOf('.'); int ind = frameworkString.LastIndexOf('.');
location += "v" + frameworkString.Substring(0, ind) + "\\"; location += "v" + frameworkString.Substring(0, ind) + "\\";
return location; 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() public static string GetDefaultIISWorkerProcessLocation()
{ {
string regValue = ""; return GetRegistryValue(IIS_LOCATION, IIS_INSTALL_PATH) + @"\";
RegistryService.GetRegistryValue<string>(
RegistryHive.LocalMachine,
IIS_LOCATION,
IIS_INSTALL_PATH,
RegistryValueKind.String,
out regValue);
return regValue + "\\";
} }
/// <summary> /// <summary>
@ -198,15 +219,7 @@ namespace ICSharpCode.AspNet.Mvc
public static IISVersion IISVersion public static IISVersion IISVersion
{ {
get { get {
int regValue = 0; int regValue = GetRegistryIntegerValue(IIS_LOCATION, IIS_MAJOR_VERSION);
RegistryService.GetRegistryValue<int>(
RegistryHive.LocalMachine,
IIS_LOCATION,
IIS_MAJOR_VERSION,
RegistryValueKind.DWord,
out regValue);
if (regValue > 4) if (regValue > 4)
return (IISVersion)regValue; return (IISVersion)regValue;

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

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

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

@ -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
public void SetIsNotModelClass() public void SetIsNotModelClass()
{ {
isModelClass = false; isModelClass = false;
} }
public bool IsModelClass() public bool IsModelClass()

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

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

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

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

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

@ -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;
using AspNet.Mvc.Tests.Helpers; using AspNet.Mvc.Tests.Helpers;
using ICSharpCode.AspNet.Mvc; using ICSharpCode.AspNet.Mvc;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Project; using ICSharpCode.SharpDevelop.Project;
using NUnit.Framework; using NUnit.Framework;
namespace AspNet.Mvc.Tests namespace AspNet.Mvc.Tests
{ {
[TestFixture] [TestFixture]
public class AddMvcControllerToProjectControllerModelTests public class AddMvcControllerToProjectControllerModelTests : MvcTestsBase
{ {
AddMvcControllerToProjectViewModel viewModel; AddMvcControllerToProjectViewModel viewModel;
FakeMvcControllerFileGenerator fakeControllerGenerator; FakeMvcControllerFileGenerator fakeControllerGenerator;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -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;
namespace AspNet.Mvc.Tests namespace AspNet.Mvc.Tests
{ {
[TestFixture] [TestFixture]
public class MvcViewFileGeneratorTests public class MvcViewFileGeneratorTests : MvcTestsBase
{ {
MvcViewFileGenerator generator; MvcViewFileGenerator generator;
FakeMvcProject projectUsedByGenerator; FakeMvcProject projectUsedByGenerator;

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

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

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

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

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

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

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

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

2
src/Setup/Files.wxs

@ -1127,7 +1127,6 @@
</Component> </Component>
</Directory> </Directory>
</Directory> </Directory>
<!--
<Directory Id="AspNet.Mvc" Name="AspNet.Mvc"> <Directory Id="AspNet.Mvc" Name="AspNet.Mvc">
<Component Id="AspNetMvcAddin" Guid="2ADAB116-3E40-4A12-B6CD-EE41C482807A" DiskId="1"> <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" /> <File Id="AspNet.Mvc.addin" Name="AspNet.Mvc.addin" Source="..\..\AddIns\BackendBindings\AspNet.Mvc\AspNet.Mvc.addin" KeyPath="yes" />
@ -1249,6 +1248,7 @@
</Directory> </Directory>
</Directory> </Directory>
</Directory> </Directory>
<!--
<Directory Id="JavaScriptBinding" Name="JavaScriptBinding"> <Directory Id="JavaScriptBinding" Name="JavaScriptBinding">
<Component Id="Antlr3RuntimeDll" Guid="CD73166D-0ACB-4A3D-8023-06DAC6CB903A" DiskId="1"> <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" /> <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 @@
<ComponentRef Id="MspecExe"/> <ComponentRef Id="MspecExe"/>
--> -->
<!--<ComponentRef Id="AspNetMvcAddin"/> <ComponentRef Id="AspNetMvcAddin"/>
<ComponentRef Id="AspNetMvcDll"/> <ComponentRef Id="AspNetMvcDll"/>
<ComponentRef Id="AspNetMvcMonoTextTemplatingDll"/> <ComponentRef Id="AspNetMvcMonoTextTemplatingDll"/>
<ComponentRef Id="SystemWebRazorDll"/> <ComponentRef Id="SystemWebRazorDll"/>
@ -514,7 +514,7 @@
<ComponentRef Id="AspNetMvcRazorVisualBasicDetailsTemplate"/> <ComponentRef Id="AspNetMvcRazorVisualBasicDetailsTemplate"/>
<ComponentRef Id="AspNetMvcRazorVisualBasicEditTemplate"/> <ComponentRef Id="AspNetMvcRazorVisualBasicEditTemplate"/>
<ComponentRef Id="AspNetMvcRazorVisualBasicEmptyTemplate"/> <ComponentRef Id="AspNetMvcRazorVisualBasicEmptyTemplate"/>
<ComponentRef Id="AspNetMvcRazorVisualBasicListTemplate"/>--> <ComponentRef Id="AspNetMvcRazorVisualBasicListTemplate"/>
<ComponentRef Id="CSharpMvcRazorLayoutPageFileTemplate"/> <ComponentRef Id="CSharpMvcRazorLayoutPageFileTemplate"/>
<ComponentRef Id="CSharpMvcRazorPartialPageFileTemplate"/> <ComponentRef Id="CSharpMvcRazorPartialPageFileTemplate"/>
<ComponentRef Id="CSharpMvcRazorViewPageFileTemplate"/> <ComponentRef Id="CSharpMvcRazorViewPageFileTemplate"/>

Loading…
Cancel
Save