Browse Source

Fixed compilation errors in LineCounter, Mono and NAnt sample addins.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@5616 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Daniel Grunwald 16 years ago
parent
commit
e2a3165c80
  1. 2
      samples/LineCounter/LineCounter.addin
  2. 13
      samples/LineCounter/LineCounter.csproj
  3. 6
      samples/LineCounter/LineCounter.sln
  4. 7
      samples/LineCounter/Src/LineCounterViewContent.cs
  5. 6
      samples/Mono/Mono.AddIn.sln
  6. 5
      samples/Mono/Mono.AddIn/Mono.AddIn.csproj
  7. 2
      samples/Mono/Mono.AddIn/Src/AddMonoReferenceCommand.cs
  8. 2
      samples/Mono/Mono.AddIn/Src/MonoProjectContentRegistry.cs
  9. 24
      samples/NAnt/NAnt.AddIn.Tests/CscNAntOutputTestFixture.cs
  10. 18
      samples/NAnt/NAnt.AddIn.Tests/FatalErrorNAntOutputTestFixture.cs
  11. 4
      samples/NAnt/NAnt.AddIn.Tests/InvalidNAntBuildFileTestFixture.cs
  12. 6
      samples/NAnt/NAnt.AddIn.Tests/InvalidXmlNAntOutputTestFixture.cs
  13. 5
      samples/NAnt/NAnt.AddIn.Tests/NAnt.AddIn.Tests.csproj
  14. 12
      samples/NAnt/NAnt.AddIn.Tests/NAntErrorAndWarningOutputTestFixture.cs
  15. 6
      samples/NAnt/NAnt.AddIn.Tests/NonFatalErrorNAntOutputTestFixture.cs
  16. 12
      samples/NAnt/NAnt.AddIn.Tests/ReadNAntBuildFileTestFixture.cs
  17. 2
      samples/NAnt/NAnt.AddIn.Tests/ReadOnlyPropertyNAntOutputTestFixture.cs
  18. 2
      samples/NAnt/NAnt.AddIn.Tests/TargetDoesNotExistNAntOutputTestFixture.cs
  19. 18
      samples/NAnt/NAnt.AddIn.Tests/VBErrorNAntOutputTestFixture.cs
  20. 6
      samples/NAnt/NAnt.AddIn.sln
  21. 5
      samples/NAnt/NAnt.AddIn/NAnt.AddIn.csproj
  22. 3
      samples/NAnt/NAnt.AddIn/Src/Gui/NAntAddInOptionPanel.cs
  23. 9
      samples/NAnt/NAnt.AddIn/Src/Gui/NAntPadContent.cs
  24. 7
      samples/NAnt/NAnt.AddIn/Src/NAntBuildFile.cs
  25. 44
      samples/NAnt/NAnt.AddIn/Src/NAntOutputParser.cs
  26. 4
      samples/NRefactoryDemo/NRefactoryDemo.csproj
  27. 6
      samples/NRefactoryDemo/NRefactoryDemo.sln
  28. 27
      samples/NRefactoryExample/AssemblyInfo.cs
  29. 181
      samples/NRefactoryExample/MainForm.cs
  30. 184
      samples/NRefactoryExample/MainForm.resx
  31. 46
      samples/NRefactoryExample/NRefactoryExample.csproj
  32. 16
      samples/NRefactoryExample/NRefactoryExample.sln
  33. 144
      samples/NRefactoryExample/WrapperGeneratorVisitor.cs

2
samples/LineCounter/LineCounter.addin

@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
<Manifest>
<Identity name="Grunwald.LineCounter"/>
<Dependency addin="SharpDevelop" version="3.0"/>
<Dependency addin="SharpDevelop" version="4.0"/>
</Manifest>
<Runtime>

13
samples/LineCounter/LineCounter.csproj

@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<OutputType>Library</OutputType>
<RootNamespace>LineCounterAddin</RootNamespace>
@ -16,6 +17,7 @@ @@ -16,6 +17,7 @@
<FileAlignment>4096</FileAlignment>
<WarningLevel>4</WarningLevel>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<IntermediateOutputPath>obj\Debug\</IntermediateOutputPath>
@ -35,7 +37,13 @@ @@ -35,7 +37,13 @@
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Data.DataSetExtensions">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
@ -54,6 +62,9 @@ @@ -54,6 +62,9 @@
<SpecificVersion>False</SpecificVersion>
<Private>False</Private>
</Reference>
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
</ItemGroup>
<ItemGroup>
<None Include="LineCounter.addin">

6
samples/LineCounter/LineCounter.sln

@ -1,5 +1,7 @@ @@ -1,5 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 9.00
# SharpDevelop 2.1.0.1394

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
# SharpDevelop 4.0.0.5571
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LineCounter", "LineCounter.csproj", "{880A7EAF-D0B4-46AC-A9B6-B6156512037A}"
EndProject
Global

7
samples/LineCounter/Src/LineCounterViewContent.cs

@ -31,17 +31,14 @@ using ICSharpCode.SharpDevelop.Gui; @@ -31,17 +31,14 @@ using ICSharpCode.SharpDevelop.Gui;
namespace LineCounterAddin
{
/// <summary>
/// Description of the view content
/// </summary>
public class LineCounterViewContent : AbstractViewContent
{
LineCounterBrowser browser = new LineCounterBrowser();
/// <summary>
/// The <see cref="System.Windows.Forms.Control"/> representing the view.
/// The Control representing the view. Both WPF and WinForms controls are supported.
/// </summary>
public override Control Control {
public override object Control {
get {
return browser;
}

6
samples/Mono/Mono.AddIn.sln

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

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
# SharpDevelop 3.0.0.3507
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
# SharpDevelop 4.0.0.5571
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mono.AddIn", "Mono.AddIn\Mono.AddIn.csproj", "{082DCD64-EE32-4151-A50F-E139CF754CC0}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mono.Build.Tasks", "Mono.Build.Tasks\Mono.Build.Tasks.csproj", "{BF6F814C-B89F-475E-ADC4-AEE81D10CB94}"

5
samples/Mono/Mono.AddIn/Mono.AddIn.csproj

@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<OutputType>Library</OutputType>
<RootNamespace>Mono.AddIn</RootNamespace>
@ -15,7 +16,7 @@ @@ -15,7 +16,7 @@
<FileAlignment>4096</FileAlignment>
<WarningLevel>4</WarningLevel>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<OutputPath>..\..\..\AddIns\Samples\Mono.AddIn</OutputPath>

2
samples/Mono/Mono.AddIn/Src/AddMonoReferenceCommand.cs

@ -46,7 +46,7 @@ namespace Mono.AddIn @@ -46,7 +46,7 @@ namespace Mono.AddIn
return;
}
using (SelectMonoReferenceDialog selDialog = new SelectMonoReferenceDialog(project)) {
if (selDialog.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainForm) == DialogResult.OK) {
if (selDialog.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainWin32Window) == DialogResult.OK) {
foreach (ReferenceProjectItem reference in selDialog.ReferenceInformations) {
ProjectService.AddProjectItem(project, reference);
}

2
samples/Mono/Mono.AddIn/Src/MonoProjectContentRegistry.cs

@ -38,7 +38,7 @@ namespace Mono.AddIn @@ -38,7 +38,7 @@ namespace Mono.AddIn
protected override IProjectContent LoadProjectContent(string itemInclude, string itemFileName)
{
if (File.Exists(itemFileName)) {
return ParserService.DefaultProjectContentRegistry.GetProjectContentForReference(itemInclude, itemFileName);
return AssemblyParserService.DefaultProjectContentRegistry.GetProjectContentForReference(itemInclude, itemFileName);
}
MonoAssemblyName assemblyName = MonoGlobalAssemblyCache.FindAssemblyName(itemInclude);
if (assemblyName != null && assemblyName.FileName != null) {

24
samples/NAnt/NAnt.AddIn.Tests/CscNAntOutputTestFixture.cs

@ -20,9 +20,9 @@ namespace ICSharpCode.NAnt.Tests @@ -20,9 +20,9 @@ namespace ICSharpCode.NAnt.Tests
// First task.
Task task = tasks[0];
Assert.AreEqual("c:\\Projects\\dotnet\\Test\\corsavytest\\Foo.cs", task.FileName, "Task filename is incorrect.");
Assert.AreEqual(33, task.Line, "Task line is incorrect.");
Assert.AreEqual(3, task.Column, "Task column is incorrect.");
Assert.AreEqual("c:\\Projects\\dotnet\\Test\\corsavytest\\Foo.cs", task.FileName.ToString(), "Task filename is incorrect.");
Assert.AreEqual(34, task.Line, "Task line is incorrect.");
Assert.AreEqual(4, task.Column, "Task column is incorrect.");
Assert.AreEqual(TaskType.Error, task.TaskType, "Should be error task.");
Assert.AreEqual(@"Invalid expression term '/' (CS1525)",
task.Description,
@ -30,9 +30,9 @@ namespace ICSharpCode.NAnt.Tests @@ -30,9 +30,9 @@ namespace ICSharpCode.NAnt.Tests
// Second task.
task = tasks[1];
Assert.AreEqual("c:\\Projects\\dotnet\\Test\\corsavytest\\Foo.cs", task.FileName, "Task filename is incorrect.");
Assert.AreEqual(33, task.Line, "Task line is incorrect.");
Assert.AreEqual(4, task.Column, "Task column is incorrect.");
Assert.AreEqual("c:\\Projects\\dotnet\\Test\\corsavytest\\Foo.cs", task.FileName.ToString(), "Task filename is incorrect.");
Assert.AreEqual(34, task.Line, "Task line is incorrect.");
Assert.AreEqual(5, task.Column, "Task column is incorrect.");
Assert.AreEqual(TaskType.Error, task.TaskType, "Should be error task.");
Assert.AreEqual(@"; expected (CS1002)",
task.Description,
@ -40,9 +40,9 @@ namespace ICSharpCode.NAnt.Tests @@ -40,9 +40,9 @@ namespace ICSharpCode.NAnt.Tests
// Last task task.
task = tasks[2];
Assert.AreEqual(@"C:\Projects\dotnet\Test\corsavytest\corsavytest.build", task.FileName, "Task filename is incorrect.");
Assert.AreEqual(47, task.Line, "Task line is incorrect.");
Assert.AreEqual(5, task.Column, "Task column is incorrect.");
Assert.AreEqual(@"C:\Projects\dotnet\Test\corsavytest\corsavytest.build", task.FileName.ToString(), "Task filename is incorrect.");
Assert.AreEqual(48, task.Line, "Task line is incorrect.");
Assert.AreEqual(6, task.Column, "Task column is incorrect.");
Assert.AreEqual(TaskType.Error, task.TaskType, "Should be error task.");
Assert.AreEqual(@"External Program Failed: C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\csc.exe (return code was 1)",
task.Description,
@ -58,9 +58,9 @@ namespace ICSharpCode.NAnt.Tests @@ -58,9 +58,9 @@ namespace ICSharpCode.NAnt.Tests
// First task.
Task task = tasks[0];
Assert.AreEqual("c:\\Projects\\dotnet\\Test\\corsavytest\\Foo.cs", task.FileName, "Task filename is incorrect.");
Assert.AreEqual(38, task.Line, "Task line is incorrect.");
Assert.AreEqual(11, task.Column, "Task column is incorrect.");
Assert.AreEqual("c:\\Projects\\dotnet\\Test\\corsavytest\\Foo.cs", task.FileName.ToString(), "Task filename is incorrect.");
Assert.AreEqual(39, task.Line, "Task line is incorrect.");
Assert.AreEqual(12, task.Column, "Task column is incorrect.");
Assert.AreEqual(TaskType.Warning, task.TaskType, "Should be error task.");
Assert.AreEqual(@"The variable 'Test' is assigned but its value is never used (CS0219)",
task.Description,

18
samples/NAnt/NAnt.AddIn.Tests/FatalErrorNAntOutputTestFixture.cs

@ -21,7 +21,7 @@ namespace ICSharpCode.NAnt.Tests @@ -21,7 +21,7 @@ namespace ICSharpCode.NAnt.Tests
Task task = tasks[0];
Assert.AreEqual(String.Empty, task.FileName, "Task filename should be blank.");
Assert.IsNull(task.FileName, "Task filename should be blank.");
Assert.AreEqual(TaskType.Error, task.TaskType, "Should be an error task.");
Assert.AreEqual(0, task.Line, "Should be line number 0.");
Assert.AreEqual(0, task.Column, "Should be col number 0");
@ -30,10 +30,10 @@ namespace ICSharpCode.NAnt.Tests @@ -30,10 +30,10 @@ namespace ICSharpCode.NAnt.Tests
"Task description is wrong.");
task = tasks[1];
Assert.AreEqual("C:\\Projects\\dotnet\\Test\\corsavytest\\corsavytest.build", task.FileName, "Task filename is incorrect.");
Assert.AreEqual("C:\\Projects\\dotnet\\Test\\corsavytest\\corsavytest.build", task.FileName.ToString(), "Task filename is incorrect.");
Assert.AreEqual(TaskType.Error, task.TaskType, "Should be an error task.");
Assert.AreEqual(47, task.Line, "Incorrect line number.");
Assert.AreEqual(5, task.Column, "Incorrect col number.");
Assert.AreEqual(48, task.Line, "Incorrect line number.");
Assert.AreEqual(6, task.Column, "Incorrect col number.");
Assert.AreEqual("External Program Failed: C:\\WINDOWS\\Microsoft.NET\\Framework\\v1.1.4322\\csc.exe (return code was 1)",
task.Description,
"Task description is wrong.");
@ -48,7 +48,7 @@ namespace ICSharpCode.NAnt.Tests @@ -48,7 +48,7 @@ namespace ICSharpCode.NAnt.Tests
Task task = tasks[0];
Assert.AreEqual(String.Empty, task.FileName, "Task filename should be blank.");
Assert.IsNull(task.FileName, "Task filename should be blank.");
Assert.AreEqual(TaskType.Error, task.TaskType, "Should be an error task.");
Assert.AreEqual(0, task.Line, "Should be line number 0.");
Assert.AreEqual(0, task.Column, "Should be col number 0");
@ -57,7 +57,7 @@ namespace ICSharpCode.NAnt.Tests @@ -57,7 +57,7 @@ namespace ICSharpCode.NAnt.Tests
"Task description is wrong.");
task = tasks[1];
Assert.AreEqual(String.Empty, task.FileName, "Task filename should be blank.");
Assert.IsNull(task.FileName, "Task filename should be blank.");
Assert.AreEqual(TaskType.Error, task.TaskType, "Should be an error task.");
Assert.AreEqual(0, task.Line, "Should be line number 0.");
Assert.AreEqual(0, task.Column, "Should be col number 0");
@ -66,10 +66,10 @@ namespace ICSharpCode.NAnt.Tests @@ -66,10 +66,10 @@ namespace ICSharpCode.NAnt.Tests
"Task description is wrong.");
task = tasks[2];
Assert.AreEqual("C:\\Projects\\dotnet\\test\\corsavyvbtest\\corsavyvbtest.build", task.FileName, "Task filename is incorrect.");
Assert.AreEqual("C:\\Projects\\dotnet\\test\\corsavyvbtest\\corsavyvbtest.build", task.FileName.ToString(), "Task filename is incorrect.");
Assert.AreEqual(TaskType.Error, task.TaskType, "Should be an error task.");
Assert.AreEqual(47, task.Line, "Incorrect line number.");
Assert.AreEqual(5, task.Column, "Incorrect col number.");
Assert.AreEqual(48, task.Line, "Incorrect line number.");
Assert.AreEqual(6, task.Column, "Incorrect col number.");
Assert.AreEqual("External Program Failed: C:\\WINDOWS\\Microsoft.NET\\Framework\\v1.1.4322\\vbc.exe (return code was 1)",
task.Description,
"Task description is wrong.");

4
samples/NAnt/NAnt.AddIn.Tests/InvalidNAntBuildFileTestFixture.cs

@ -28,8 +28,8 @@ namespace ICSharpCode.NAnt.Tests @@ -28,8 +28,8 @@ namespace ICSharpCode.NAnt.Tests
error.Message,
"Error message is incorrect.");
Assert.AreEqual(0, error.Line, "Error's line number is incorrect.");
Assert.AreEqual(9, error.Column, "Error's column number is incorrect.");
Assert.AreEqual(1, error.Line, "Error's line number is incorrect.");
Assert.AreEqual(10, error.Column, "Error's column number is incorrect.");
}
}
}

6
samples/NAnt/NAnt.AddIn.Tests/InvalidXmlNAntOutputTestFixture.cs

@ -18,9 +18,9 @@ namespace ICSharpCode.NAnt.Tests @@ -18,9 +18,9 @@ namespace ICSharpCode.NAnt.Tests
Assert.AreEqual(1, tasks.Count, "Should be one task.");
Task task = tasks[0];
Assert.AreEqual(@"C:\Projects\foo\foo.build", task.FileName, "Task filename is incorrect.");
Assert.AreEqual(6, task.Line, "Task line is incorrect.");
Assert.AreEqual(4, task.Column, "Task column is incorrect.");
Assert.AreEqual(@"C:\Projects\foo\foo.build", task.FileName.ToString(), "Task filename is incorrect.");
Assert.AreEqual(7, task.Line, "Task line is incorrect.");
Assert.AreEqual(5, task.Column, "Task column is incorrect.");
Assert.AreEqual(TaskType.Error, task.TaskType, "Should be error task.");
string description = "Error loading buildfile.\r\n The 'ifnot1' start tag on line '5' doesn't match the end tag of 'ifnot' in file 'file:///C:/Projects/foo/foo.build'. Line 7, position 5.";

5
samples/NAnt/NAnt.AddIn.Tests/NAnt.AddIn.Tests.csproj

@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@ -20,7 +21,7 @@ @@ -20,7 +21,7 @@
<OutputPath>bin\</OutputPath>
<DebugSymbols>true</DebugSymbols>
<Optimize>False</Optimize>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<AllowUnsafeBlocks>False</AllowUnsafeBlocks>

12
samples/NAnt/NAnt.AddIn.Tests/NAntErrorAndWarningOutputTestFixture.cs

@ -18,19 +18,19 @@ namespace ICSharpCode.NAnt.Tests @@ -18,19 +18,19 @@ namespace ICSharpCode.NAnt.Tests
Assert.AreEqual(2, tasks.Count, "Should be two tasks.");
Task task = tasks[0];
Assert.AreEqual("C:\\Projects\\dotnet\\Test\\corsavytest\\corsavytest.build", task.FileName, "Task filename is incorrect.");
Assert.AreEqual("C:\\Projects\\dotnet\\Test\\corsavytest\\corsavytest.build", task.FileName.ToString(), "Task filename is incorrect.");
Assert.AreEqual(TaskType.Warning, task.TaskType, "Should be a warning task.");
Assert.AreEqual(4, task.Line, "Incorrect line number.");
Assert.AreEqual(3, task.Column, "Incorrect col number.");
Assert.AreEqual(5, task.Line, "Incorrect line number.");
Assert.AreEqual(4, task.Column, "Incorrect col number.");
Assert.AreEqual("Attribute 'propertyexists' for <ifnot ... /> is deprecated. Use <if test=\"${property::exists('propertyname')}\"> instead.",
task.Description,
"Task description is wrong.");
task = tasks[1];
Assert.AreEqual("C:\\Projects\\dotnet\\Test\\corsavytest\\corsavytest.build", task.FileName, "Task filename is incorrect.");
Assert.AreEqual("C:\\Projects\\dotnet\\Test\\corsavytest\\corsavytest.build", task.FileName.ToString(), "Task filename is incorrect.");
Assert.AreEqual(TaskType.Error, task.TaskType, "Should be an error task.");
Assert.AreEqual(47, task.Line, "Incorrect line number.");
Assert.AreEqual(5, task.Column, "Incorrect col number.");
Assert.AreEqual(48, task.Line, "Incorrect line number.");
Assert.AreEqual(6, task.Column, "Incorrect col number.");
Assert.AreEqual("An empty string is not a valid value for attribute 'win32icon' of <csc ... />.",
task.Description,
"Task description is wrong.");

6
samples/NAnt/NAnt.AddIn.Tests/NonFatalErrorNAntOutputTestFixture.cs

@ -18,10 +18,10 @@ namespace ICSharpCode.NAnt.Tests @@ -18,10 +18,10 @@ namespace ICSharpCode.NAnt.Tests
Task task = tasks[0];
Assert.AreEqual("C:\\Projects\\dotnet\\Corsavy\\SharpDevelop\\src\\StandardAddIn.include", task.FileName, "Task filename is incorrect.");
Assert.AreEqual("C:\\Projects\\dotnet\\Corsavy\\SharpDevelop\\src\\StandardAddIn.include", task.FileName.ToString(), "Task filename is incorrect.");
Assert.AreEqual(TaskType.Error, task.TaskType, "Should be a warning task.");
Assert.AreEqual(93, task.Line, "Incorrect line number.");
Assert.AreEqual(4, task.Column, "Incorrect col number.");
Assert.AreEqual(94, task.Line, "Incorrect line number.");
Assert.AreEqual(5, task.Column, "Incorrect col number.");
Assert.AreEqual("Cannot delete directory 'C:\\Projects\\dotnet\\Corsavy\\SharpDevelop\\AddIns\\AddIns\\Misc\\Debugger.AddIn'. The directory does not exist.",
task.Description,
"Task description is wrong.");

12
samples/NAnt/NAnt.AddIn.Tests/ReadNAntBuildFileTestFixture.cs

@ -42,20 +42,20 @@ namespace ICSharpCode.NAnt.Tests @@ -42,20 +42,20 @@ namespace ICSharpCode.NAnt.Tests
NAntBuildTarget target = buildFile.Targets[0];
Assert.AreEqual("clean", target.Name, "Target name should be 'clean'.");
Assert.IsFalse(target.IsDefault, "Clean target should not have default target flag set.");
Assert.AreEqual(4, target.Line, "Clean target line number is incorrect.");
Assert.AreEqual(5, target.Column, "Clean target column number is incorrect.");
Assert.AreEqual(5, target.Line, "Clean target line number is incorrect.");
Assert.AreEqual(6, target.Column, "Clean target column number is incorrect.");
target = buildFile.Targets[1];
Assert.IsFalse(target.IsDefault, "Build target should not have default target flag set.");
Assert.AreEqual("build", target.Name, "Target name should be 'build'.");
Assert.AreEqual(13, target.Line, "Build target line number is incorrect.");
Assert.AreEqual(5, target.Column, "Build target column number is incorrect.");
Assert.AreEqual(14, target.Line, "Build target line number is incorrect.");
Assert.AreEqual(6, target.Column, "Build target column number is incorrect.");
target = buildFile.Targets[2];
Assert.AreEqual("test", target.Name, "Target name should be 'test'.");
Assert.IsTrue(target.IsDefault, "Test target should have default target flag set.");
Assert.AreEqual(31, target.Line, "Test target line number is incorrect.");
Assert.AreEqual(5, target.Column, "Test target column number is incorrect.");
Assert.AreEqual(32, target.Line, "Test target line number is incorrect.");
Assert.AreEqual(6, target.Column, "Test target column number is incorrect.");
}
/// <summary>

2
samples/NAnt/NAnt.AddIn.Tests/ReadOnlyPropertyNAntOutputTestFixture.cs

@ -16,7 +16,7 @@ namespace ICSharpCode.NAnt.Tests @@ -16,7 +16,7 @@ namespace ICSharpCode.NAnt.Tests
Task task = tasks[0];
Assert.AreEqual(String.Empty, task.FileName, "Task filename is incorrect.");
Assert.IsNull(task.FileName, "Task filename is incorrect.");
Assert.AreEqual(TaskType.Warning, task.TaskType, "Should be a warning task.");
Assert.AreEqual(0, task.Line, "Incorrect line number.");
Assert.AreEqual(0, task.Column, "Incorrect col number.");

2
samples/NAnt/NAnt.AddIn.Tests/TargetDoesNotExistNAntOutputTestFixture.cs

@ -18,7 +18,7 @@ namespace ICSharpCode.NAnt.Tests @@ -18,7 +18,7 @@ namespace ICSharpCode.NAnt.Tests
Assert.AreEqual(1, tasks.Count, "Should be one task.");
Task task = tasks[0];
Assert.AreEqual(String.Empty, task.FileName, "Should not have any filename information.");
Assert.IsNull(task.FileName, "Should not have any filename information.");
Assert.AreEqual(TaskType.Error, task.TaskType, "Should be an error task.");
Assert.AreEqual(0, task.Line, "Should be line number 0");
Assert.AreEqual(0, task.Column, "Should be col number 0");

18
samples/NAnt/NAnt.AddIn.Tests/VBErrorNAntOutputTestFixture.cs

@ -21,28 +21,28 @@ namespace ICSharpCode.NAnt.Tests @@ -21,28 +21,28 @@ namespace ICSharpCode.NAnt.Tests
Task task = tasks[0];
Assert.AreEqual("C:\\Projects\\dotnet\\test\\corsavyvbtest\\corsavyvbtest.build", task.FileName, "Task filename is incorrect.");
Assert.AreEqual("C:\\Projects\\dotnet\\test\\corsavyvbtest\\corsavyvbtest.build", task.FileName.ToString(), "Task filename is incorrect.");
Assert.AreEqual(TaskType.Warning, task.TaskType, "Should be a warning task.");
Assert.AreEqual(47, task.Line, "Incorrect line number.");
Assert.AreEqual(5, task.Column, "Incorrect col number.");
Assert.AreEqual(48, task.Line, "Incorrect line number.");
Assert.AreEqual(6, task.Column, "Incorrect col number.");
Assert.AreEqual("Attribute 'imports' for <vbc ... /> is deprecated. Use the <imports> element instead.",
task.Description,
"Task description is wrong.");
task = tasks[1];
Assert.AreEqual("C:\\Projects\\dotnet\\test\\corsavyvbtest\\MainForm.vb", task.FileName, "Task filename is incorrect.");
Assert.AreEqual("C:\\Projects\\dotnet\\test\\corsavyvbtest\\MainForm.vb", task.FileName.ToString(), "Task filename is incorrect.");
Assert.AreEqual(TaskType.Error, task.TaskType, "Should be an error task.");
Assert.AreEqual(13, task.Line, "Incorrect line number.");
Assert.AreEqual(0, task.Column, "Should be col number 0");
Assert.AreEqual(14, task.Line, "Incorrect line number.");
Assert.AreEqual(1, task.Column, "Should be col number 1");
Assert.AreEqual("Syntax error. (BC30035)",
task.Description,
"Task description is wrong.");
task = tasks[2];
Assert.AreEqual("C:\\Projects\\dotnet\\test\\corsavyvbtest\\corsavyvbtest.build", task.FileName, "Task filename is incorrect.");
Assert.AreEqual("C:\\Projects\\dotnet\\test\\corsavyvbtest\\corsavyvbtest.build", task.FileName.ToString(), "Task filename is incorrect.");
Assert.AreEqual(TaskType.Error, task.TaskType, "Should be an error task.");
Assert.AreEqual(47, task.Line, "Incorrect line number.");
Assert.AreEqual(5, task.Column, "Incorrect col number.");
Assert.AreEqual(48, task.Line, "Incorrect line number.");
Assert.AreEqual(6, task.Column, "Incorrect col number.");
Assert.AreEqual("External Program Failed: C:\\WINDOWS\\Microsoft.NET\\Framework\\v1.1.4322\\vbc.exe (return code was 1)",
task.Description,
"Task description is wrong.");

6
samples/NAnt/NAnt.AddIn.sln

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

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
# SharpDevelop 3.0.0.2745
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
# SharpDevelop 4.0.0.5571
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NAnt.AddIn", "NAnt.AddIn\NAnt.AddIn.csproj", "{1DB3CAD2-38E8-4C5E-8E1B-0E37B1A5C006}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NAnt.AddIn.Tests", "NAnt.AddIn.Tests\NAnt.AddIn.Tests.csproj", "{13AB8351-39E5-4F9D-A59C-B30D60CF6B8C}"

5
samples/NAnt/NAnt.AddIn/NAnt.AddIn.csproj

@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@ -17,7 +18,7 @@ @@ -17,7 +18,7 @@
<PlatformTarget>AnyCPU</PlatformTarget>
<FileAlignment>4096</FileAlignment>
<DebugSymbols>true</DebugSymbols>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<Optimize>False</Optimize>

3
samples/NAnt/NAnt.AddIn/Src/Gui/NAntAddInOptionPanel.cs

@ -29,13 +29,14 @@ using System; @@ -29,13 +29,14 @@ using System;
using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Gui.OptionPanels;
namespace ICSharpCode.NAnt.Gui
{
/// <summary>
/// Options panel for the NAnt add-in.
/// </summary>
public class NAntAddInOptionPanel : AbstractOptionPanel
public class NAntAddInOptionPanel : XmlFormsOptionPanel
{
static readonly string commandTextBoxName = "nantCommandTextBox";
static readonly string argumentsTextBoxName = "argumentsTextBox";

9
samples/NAnt/NAnt.AddIn/Src/Gui/NAntPadContent.cs

@ -151,19 +151,12 @@ namespace ICSharpCode.NAnt.Gui @@ -151,19 +151,12 @@ namespace ICSharpCode.NAnt.Gui
/// <summary>
/// The <see cref="System.Windows.Forms.Control"/> representing the pad
/// </summary>
public override Control Control {
public override object Control {
get {
return contentPanel;
}
}
/// <summary>
/// Refreshes the pad
/// </summary>
public override void RedrawContent()
{
}
/// <summary>
/// Cleans up all used resources
/// </summary>

7
samples/NAnt/NAnt.AddIn/Src/NAntBuildFile.cs

@ -275,7 +275,7 @@ namespace ICSharpCode.NAnt @@ -275,7 +275,7 @@ namespace ICSharpCode.NAnt
}
}
} catch(XmlException ex) {
buildFileError = new NAntBuildFileError(ex.Message, ex.LineNumber - 1, ex.LinePosition - 1);
buildFileError = new NAntBuildFileError(ex.Message, ex.LineNumber, ex.LinePosition);
} finally {
xmlReader.Close();
}
@ -340,9 +340,8 @@ namespace ICSharpCode.NAnt @@ -340,9 +340,8 @@ namespace ICSharpCode.NAnt
/// </summary>
void ParseTargetElement(XmlTextReader xmlReader)
{
// Take off one for line/col since SharpDevelop is zero based.
int line = xmlReader.LineNumber - 1;
int col = xmlReader.LinePosition - 1;
int line = xmlReader.LineNumber;
int col = xmlReader.LinePosition;
string targetName = GetAttribute(xmlReader, NameAttributeName);

44
samples/NAnt/NAnt.AddIn/Src/NAntOutputParser.cs

@ -29,6 +29,7 @@ using System; @@ -29,6 +29,7 @@ using System;
using System.IO;
using System.Text.RegularExpressions;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
namespace ICSharpCode.NAnt
@ -133,16 +134,15 @@ namespace ICSharpCode.NAnt @@ -133,16 +134,15 @@ namespace ICSharpCode.NAnt
Match match = Regex.Match(textLine, @"^.*?(\w+:[/\\].*?)\(([\d]*),([\d]*)\): (.*?) (.*?): (.*?)$");
if (match.Success) {
try {
// Take off 1 for line/col since SharpDevelop is zero index based.
int line = Convert.ToInt32(match.Groups[2].Value) - 1;
int col = Convert.ToInt32(match.Groups[3].Value) - 1;
int line = Convert.ToInt32(match.Groups[2].Value);
int col = Convert.ToInt32(match.Groups[3].Value);
string description = String.Concat(match.Groups[6].Value, " (", match.Groups[5], ")");
TaskType taskType = TaskType.Error;
if (String.Compare(match.Groups[4].Value, "warning", true) == 0) {
taskType = TaskType.Warning;
}
task = new Task(match.Groups[1].Value, description, col, line, taskType);
task = new Task(FileName.Create(match.Groups[1].Value), description, col, line, taskType);
} catch (Exception) {
// Ignore.
}
@ -165,11 +165,10 @@ namespace ICSharpCode.NAnt @@ -165,11 +165,10 @@ namespace ICSharpCode.NAnt
Match match = Regex.Match(textLine, @"^.*?(\w+:[/\\].*?)\(([\d]*),([\d]*)\): (.*?)$");
if (match.Success) {
try {
// Take off 1 for line/col since SharpDevelop is zero index based.
int line = Convert.ToInt32(match.Groups[2].Value) - 1;
int col = Convert.ToInt32(match.Groups[3].Value) - 1;
int line = Convert.ToInt32(match.Groups[2].Value);
int col = Convert.ToInt32(match.Groups[3].Value);
task = new Task(match.Groups[1].Value, match.Groups[4].Value, col, line, TaskType.Warning);
task = new Task(FileName.Create(match.Groups[1].Value), match.Groups[4].Value, col, line, TaskType.Warning);
} catch (Exception) {
// Ignore.
}
@ -193,15 +192,14 @@ namespace ICSharpCode.NAnt @@ -193,15 +192,14 @@ namespace ICSharpCode.NAnt
Match match = Regex.Match(textLine, @"^.*?(\w+:[/\\].*?)\(([\d]*)\) : (.*?) (.*?): (.*?)$");
if (match.Success) {
try {
// Take off 1 for line/col since SharpDevelop is zero index based.
int line = Convert.ToInt32(match.Groups[2].Value) - 1;
int line = Convert.ToInt32(match.Groups[2].Value);
string description = String.Concat(match.Groups[5].Value, " (", match.Groups[4], ")");
TaskType taskType = TaskType.Error;
if (String.Compare(match.Groups[3].Value, "warning", true) == 0) {
taskType = TaskType.Warning;
}
task = new Task(match.Groups[1].Value, description, 0, line, taskType);
task = new Task(FileName.Create(match.Groups[1].Value), description, 0, line, taskType);
} catch (Exception) {
// Ignore.
}
@ -223,7 +221,7 @@ namespace ICSharpCode.NAnt @@ -223,7 +221,7 @@ namespace ICSharpCode.NAnt
Match match = Regex.Match(textLine, @"^.*?(fatal error .*?: .*?)$");
if (match.Success) {
try {
task = new Task(String.Empty, match.Groups[1].Value, 0, 0, TaskType.Error);
task = new Task(null, match.Groups[1].Value, 0, 0, TaskType.Error);
} catch (Exception) {
// Ignore.
}
@ -246,7 +244,7 @@ namespace ICSharpCode.NAnt @@ -246,7 +244,7 @@ namespace ICSharpCode.NAnt
if (match.Success) {
try {
string description = String.Concat(match.Groups[2].Value, " (", match.Groups[1].Value, ")");
task = new Task(String.Empty, description, 0, 0, TaskType.Error);
task = new Task(null, description, 0, 0, TaskType.Error);
} catch (Exception) {
// Ignore.
}
@ -268,7 +266,7 @@ namespace ICSharpCode.NAnt @@ -268,7 +266,7 @@ namespace ICSharpCode.NAnt
Match match = Regex.Match(textLine, @"^.*?(Read-only property .*? cannot be overwritten.)$");
if (match.Success) {
try {
task = new Task(String.Empty, match.Groups[1].Value, 0, 0, TaskType.Warning);
task = new Task(null, match.Groups[1].Value, 0, 0, TaskType.Warning);
} catch (Exception) {
// Ignore.
}
@ -295,18 +293,17 @@ namespace ICSharpCode.NAnt @@ -295,18 +293,17 @@ namespace ICSharpCode.NAnt
if (match.Success) {
try {
// Take off 1 for line/col since SharpDevelop is zero index based.
int line = Convert.ToInt32(match.Groups[2].Value) - 1;
int col = Convert.ToInt32(match.Groups[3].Value) - 1;
int line = Convert.ToInt32(match.Groups[2].Value);
int col = Convert.ToInt32(match.Groups[3].Value);
string description = String.Concat(match.Groups[4], Environment.NewLine, match.Groups[5]);
task = new Task(match.Groups[1].Value, description, col, line, TaskType.Error);
task = new Task(FileName.Create(match.Groups[1].Value), description, col, line, TaskType.Error);
} catch(Exception) { };
} else {
match = Regex.Match(output, @"^BUILD FAILED$\n^$\n^(.*?)$", RegexOptions.Multiline);
if (match.Success) {
task = new Task(String.Empty, match.Groups[1].Value, 0, 0, TaskType.Error);
task = new Task(null, match.Groups[1].Value, 0, 0, TaskType.Error);
}
}
@ -330,15 +327,14 @@ namespace ICSharpCode.NAnt @@ -330,15 +327,14 @@ namespace ICSharpCode.NAnt
if (match.Success) {
try {
// Take off 1 for line/col since SharpDevelop is zero index based.
int line = Convert.ToInt32(match.Groups[2].Value) - 1;
int col = Convert.ToInt32(match.Groups[3].Value) - 1;
int line = Convert.ToInt32(match.Groups[2].Value);
int col = Convert.ToInt32(match.Groups[3].Value);
string description = String.Concat(match.Groups[4]);
task = new Task(match.Groups[1].Value, description, col, line, TaskType.Error);
task = new Task(FileName.Create(match.Groups[1].Value), description, col, line, TaskType.Error);
} catch(Exception) { };
}
return task;
}
}
}
}

4
samples/NRefactoryDemo/NRefactoryDemo.csproj

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<RootNamespace>NRefactoryDemo</RootNamespace>
@ -8,7 +8,7 @@ @@ -8,7 +8,7 @@
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{63199047-9D5D-474C-B3CC-62ABBB071B67}</ProjectGuid>
<SourceAnalysisOverrideSettingsFile>C:\Users\Siegfried\AppData\Roaming\ICSharpCode/SharpDevelop3.0\Settings.SourceAnalysis</SourceAnalysisOverrideSettingsFile>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<BaseIntermediateOutputPath>obj\</BaseIntermediateOutputPath>

6
samples/NRefactoryDemo/NRefactoryDemo.sln

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

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
# SharpDevelop 3.1.0.4545
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
# SharpDevelop 4.0.0.5571
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactoryDemo", "NRefactoryDemo.csproj", "{63199047-9D5D-474C-B3CC-62ABBB071B67}"
EndProject
Global

27
samples/NRefactoryExample/AssemblyInfo.cs

@ -1,27 +0,0 @@ @@ -1,27 +0,0 @@
using System.Reflection;
using System.Runtime.CompilerServices;
// Information about this assembly is defined by the following
// attributes.
//
// change them to the information which is associated with the assembly
// you compile.
[assembly: AssemblyTitle("")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// The assembly version has following format :
//
// Major.Minor.Build.Revision
//
// You can specify all values by your own or you can build default build and revision
// numbers with the '*' character (the default):
[assembly: AssemblyVersion("1.0.*")]

181
samples/NRefactoryExample/MainForm.cs

@ -1,181 +0,0 @@ @@ -1,181 +0,0 @@
// SharpDevelop samples
// Copyright (c) 2006, AlphaSierraPapa
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification, are
// permitted provided that the following conditions are met:
//
// - Redistributions of source code must retain the above copyright notice, this list
// of conditions and the following disclaimer.
//
// - Redistributions in binary form must reproduce the above copyright notice, this list
// of conditions and the following disclaimer in the documentation and/or other materials
// provided with the distribution.
//
// - Neither the name of the SharpDevelop team nor the names of its contributors may be used to
// endorse or promote products derived from this software without specific prior written
// permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &AS IS& AND ANY EXPRESS
// OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
// AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
// IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using ICSharpCode.NRefactory;
using ICSharpCode.NRefactory.Ast;
using ICSharpCode.NRefactory.PrettyPrinter;
namespace NRefactoryExample
{
public class MainForm : System.Windows.Forms.Form
{
public MainForm()
{
// The InitializeComponent() call is required for Windows Forms designer support.
InitializeComponent();
}
[STAThread]
public static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.Run(new MainForm());
}
#region Windows Forms Designer generated code
/// <summary>
/// This method is required for Windows Forms designer support.
/// Do not change the method contents inside the source code editor. The Forms designer might
/// not be able to load this method if it was changed manually.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.inputTextBox = new System.Windows.Forms.TextBox();
this.panel1 = new System.Windows.Forms.Panel();
this.runButton = new System.Windows.Forms.Button();
this.outputTextBox = new System.Windows.Forms.TextBox();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
this.splitContainer1.SuspendLayout();
this.panel1.SuspendLayout();
this.SuspendLayout();
//
// splitContainer1
//
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitContainer1.Location = new System.Drawing.Point(0, 0);
this.splitContainer1.Name = "splitContainer1";
//
// splitContainer1.Panel1
//
this.splitContainer1.Panel1.Controls.Add(this.inputTextBox);
this.splitContainer1.Panel1.Controls.Add(this.panel1);
//
// splitContainer1.Panel2
//
this.splitContainer1.Panel2.Controls.Add(this.outputTextBox);
this.splitContainer1.Size = new System.Drawing.Size(804, 422);
this.splitContainer1.SplitterDistance = 394;
this.splitContainer1.TabIndex = 0;
//
// inputTextBox
//
this.inputTextBox.AcceptsReturn = true;
this.inputTextBox.AcceptsTab = true;
this.inputTextBox.Dock = System.Windows.Forms.DockStyle.Fill;
this.inputTextBox.Location = new System.Drawing.Point(0, 0);
this.inputTextBox.Multiline = true;
this.inputTextBox.Name = "inputTextBox";
this.inputTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Both;
this.inputTextBox.Size = new System.Drawing.Size(394, 372);
this.inputTextBox.TabIndex = 1;
this.inputTextBox.Text = resources.GetString("inputTextBox.Text");
//
// panel1
//
this.panel1.Controls.Add(this.runButton);
this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom;
this.panel1.Location = new System.Drawing.Point(0, 372);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(394, 50);
this.panel1.TabIndex = 0;
//
// runButton
//
this.runButton.Anchor = System.Windows.Forms.AnchorStyles.None;
this.runButton.Location = new System.Drawing.Point(128, 15);
this.runButton.Name = "runButton";
this.runButton.Size = new System.Drawing.Size(131, 23);
this.runButton.TabIndex = 0;
this.runButton.Text = "Run";
this.runButton.UseCompatibleTextRendering = true;
this.runButton.UseVisualStyleBackColor = true;
this.runButton.Click += new System.EventHandler(this.RunButtonClick);
//
// outputTextBox
//
this.outputTextBox.Dock = System.Windows.Forms.DockStyle.Fill;
this.outputTextBox.Location = new System.Drawing.Point(0, 0);
this.outputTextBox.Multiline = true;
this.outputTextBox.Name = "outputTextBox";
this.outputTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Both;
this.outputTextBox.Size = new System.Drawing.Size(406, 422);
this.outputTextBox.TabIndex = 0;
//
// MainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(804, 422);
this.Controls.Add(this.splitContainer1);
this.Name = "MainForm";
this.Text = "NRefactory Example";
this.splitContainer1.Panel1.ResumeLayout(false);
this.splitContainer1.Panel1.PerformLayout();
this.splitContainer1.Panel2.ResumeLayout(false);
this.splitContainer1.Panel2.PerformLayout();
this.splitContainer1.ResumeLayout(false);
this.panel1.ResumeLayout(false);
this.ResumeLayout(false);
}
private System.Windows.Forms.Button runButton;
private System.Windows.Forms.TextBox outputTextBox;
private System.Windows.Forms.TextBox inputTextBox;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.SplitContainer splitContainer1;
#endregion
void RunButtonClick(object sender, EventArgs e)
{
StringReader input = new StringReader(inputTextBox.Text);
IParser parser = ParserFactory.CreateParser(SupportedLanguage.CSharp, input);
parser.Parse();
if (parser.Errors.Count > 0) {
outputTextBox.Text = parser.Errors.ErrorOutput;
return;
}
CompilationUnit cu = parser.CompilationUnit;
cu.AcceptVisitor(new WrapperGeneratorVisitor(), null);
IOutputAstVisitor output = new CSharpOutputVisitor(); //new VBNetOutputVisitor();
// SpecialNodesInserter will re-insert the comments into the generated code
using (SpecialNodesInserter.Install(parser.Lexer.SpecialTracker.RetrieveSpecials(), output)) {
cu.AcceptVisitor(output, null);
}
outputTextBox.Text = output.Text;
}
}
}

184
samples/NRefactoryExample/MainForm.resx

@ -1,184 +0,0 @@ @@ -1,184 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="inputTextBox.Text" xml:space="preserve">
<value>// &lt;file&gt;
// &lt;copyright see="prj:///doc/copyright.txt"/&gt;
// &lt;license see="prj:///doc/license.txt"/&gt;
// &lt;owner name="David Srbecký" email="dsrbecky@gmail.com"/&gt;
// &lt;version&gt;$Revision: 698 $&lt;/version&gt;
// &lt;/file&gt;
namespace Debugger.Interop.CorDebug
{
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
[ComImport, Guid("3D6F5F63-7538-11D3-8D5B-00104B35E7EF"), ComConversionLoss, InterfaceType((short) 1)]
public interface ICorDebugAppDomain : ICorDebugController
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
void Stop([In] uint dwTimeoutIgnored);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
void Continue([In] int fIsOutOfBand);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
void IsRunning(out int pbRunning);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
void HasQueuedCallbacks([In, MarshalAs(UnmanagedType.Interface)] ICorDebugThread pThread, out int pbQueued);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
void EnumerateThreads([MarshalAs(UnmanagedType.Interface)] out ICorDebugThreadEnum ppThreads);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
void SetAllThreadsDebugState([In] CorDebugThreadState state, [In, MarshalAs(UnmanagedType.Interface)] ICorDebugThread pExceptThisThread);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
void Detach();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
void Terminate([In] uint exitCode);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
void CanCommitChanges([In] uint cSnapshots, [In, MarshalAs(UnmanagedType.Interface)] ref ICorDebugEditAndContinueSnapshot pSnapshots, [MarshalAs(UnmanagedType.Interface)] out ICorDebugErrorInfoEnum pError);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
void CommitChanges([In] uint cSnapshots, [In, MarshalAs(UnmanagedType.Interface)] ref ICorDebugEditAndContinueSnapshot pSnapshots, [MarshalAs(UnmanagedType.Interface)] out ICorDebugErrorInfoEnum pError);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
void GetProcess([MarshalAs(UnmanagedType.Interface)] out ICorDebugProcess ppProcess);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
void EnumerateAssemblies([MarshalAs(UnmanagedType.Interface)] out ICorDebugAssemblyEnum ppAssemblies);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
void GetModuleFromMetaDataInterface([In, MarshalAs(UnmanagedType.IUnknown)] object pIMetaData, [MarshalAs(UnmanagedType.Interface)] out ICorDebugModule ppModule);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
void EnumerateBreakpoints([MarshalAs(UnmanagedType.Interface)] out ICorDebugBreakpointEnum ppBreakpoints);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
void EnumerateSteppers([MarshalAs(UnmanagedType.Interface)] out ICorDebugStepperEnum ppSteppers);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
void IsAttached(out int pbAttached);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
void GetName([In] uint cchName, out uint pcchName, [Out] IntPtr szName);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
void GetObject([MarshalAs(UnmanagedType.Interface)] out ICorDebugValue ppObject);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
void Attach();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
void GetID(out uint pId);
}
}
</value>
</data>
<metadata name="outputTextBox.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>

46
samples/NRefactoryExample/NRefactoryExample.csproj

@ -1,46 +0,0 @@ @@ -1,46 +0,0 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<RootNamespace>NRefactoryExample</RootNamespace>
<AssemblyName>NRefactoryExample</AssemblyName>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{5C8AF075-BB4A-4D24-BE69-46057C1B0107}</ProjectGuid>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<OutputPath>bin\Debug\</OutputPath>
<Optimize>False</Optimize>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugSymbols>True</DebugSymbols>
<DebugType>Full</DebugType>
<CheckForOverflowUnderflow>True</CheckForOverflowUnderflow>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<OutputPath>bin\Release\</OutputPath>
<Optimize>True</Optimize>
<DefineConstants>TRACE</DefineConstants>
<DebugSymbols>False</DebugSymbols>
<DebugType>None</DebugType>
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="ICSharpCode.NRefactory">
<HintPath>..\..\bin\ICSharpCode.NRefactory.dll</HintPath>
<SpecificVersion>False</SpecificVersion>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="MainForm.cs" />
<Compile Include="AssemblyInfo.cs" />
<EmbeddedResource Include="MainForm.resx">
<DependentUpon>MainForm.cs</DependentUpon>
</EmbeddedResource>
<Compile Include="WrapperGeneratorVisitor.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
</Project>

16
samples/NRefactoryExample/NRefactoryExample.sln

@ -1,16 +0,0 @@ @@ -1,16 +0,0 @@
Microsoft Visual Studio Solution File, Format Version 9.00
# SharpDevelop 2.0.0.704
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactoryExample", "NRefactoryExample.csproj", "{5C8AF075-BB4A-4D24-BE69-46057C1B0107}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{5C8AF075-BB4A-4D24-BE69-46057C1B0107}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5C8AF075-BB4A-4D24-BE69-46057C1B0107}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5C8AF075-BB4A-4D24-BE69-46057C1B0107}.Release|Any CPU.Build.0 = Release|Any CPU
{5C8AF075-BB4A-4D24-BE69-46057C1B0107}.Release|Any CPU.ActiveCfg = Release|Any CPU
EndGlobalSection
EndGlobal

144
samples/NRefactoryExample/WrapperGeneratorVisitor.cs

@ -1,144 +0,0 @@ @@ -1,144 +0,0 @@
// SharpDevelop samples
// Copyright (c) 2006, AlphaSierraPapa
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification, are
// permitted provided that the following conditions are met:
//
// - Redistributions of source code must retain the above copyright notice, this list
// of conditions and the following disclaimer.
//
// - Redistributions in binary form must reproduce the above copyright notice, this list
// of conditions and the following disclaimer in the documentation and/or other materials
// provided with the distribution.
//
// - Neither the name of the SharpDevelop team nor the names of its contributors may be used to
// endorse or promote products derived from this software without specific prior written
// permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &AS IS& AND ANY EXPRESS
// OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
// AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
// IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
using System;
using System.Collections.Generic;
using ICSharpCode.NRefactory;
using ICSharpCode.NRefactory.Ast;
namespace NRefactoryExample
{
public class WrapperGeneratorVisitor : ICSharpCode.NRefactory.Visitors.AbstractAstVisitor
{
public override object VisitTypeDeclaration(TypeDeclaration typeDeclaration, object data)
{
base.VisitTypeDeclaration(typeDeclaration, data); // visit methods
typeDeclaration.Attributes.Clear();
typeDeclaration.BaseTypes.Clear();
// add constructor accepting the wrapped object and the field holding the object
FieldDeclaration fd = new FieldDeclaration(null, // no attributes
new TypeReference(typeDeclaration.Name),
Modifiers.Private);
fd.Fields.Add(new VariableDeclaration("wrappedObject"));
typeDeclaration.AddChild(fd);
typeDeclaration.Name += "Wrapper";
if (typeDeclaration.Type == ClassType.Interface) {
typeDeclaration.Type = ClassType.Class;
typeDeclaration.Name = typeDeclaration.Name.Substring(1);
}
ConstructorDeclaration cd = new ConstructorDeclaration(typeDeclaration.Name,
Modifiers.Public,
new List<ParameterDeclarationExpression>(),
null);
cd.Parameters.Add(new ParameterDeclarationExpression(fd.TypeReference,
"wrappedObject"));
// this.wrappedObject = wrappedObject;
Expression fieldReference = new MemberReferenceExpression(new ThisReferenceExpression(),
"wrappedObject");
Expression assignment = new AssignmentExpression(fieldReference,
AssignmentOperatorType.Assign,
new IdentifierExpression("wrappedObject"));
cd.Body = new BlockStatement();
cd.Body.AddChild(new ExpressionStatement(assignment));
typeDeclaration.AddChild(cd);
for (int i = 0; i < typeDeclaration.Children.Count; i++) {
object child = typeDeclaration.Children[i];
if (child is MethodDeclaration) {
MethodDeclaration method = (MethodDeclaration)child;
if (method.Parameters.Count == 0 &&
(method.Name.StartsWith("Is") || method.Name.StartsWith("Get")))
{
// replace the method with a property
PropertyDeclaration prop = new PropertyDeclaration(method.Modifier,
method.Attributes,
method.Name,
null);
prop.TypeReference = method.TypeReference;
prop.GetRegion = new PropertyGetRegion(method.Body, null);
typeDeclaration.Children[i] = prop;
}
}
}
return null;
}
public override object VisitMethodDeclaration(MethodDeclaration methodDeclaration, object data)
{
base.VisitMethodDeclaration(methodDeclaration, data); // visit parameters
methodDeclaration.Attributes.Clear();
methodDeclaration.Body = new BlockStatement();
methodDeclaration.Modifier = Modifiers.Public;
if (methodDeclaration.Parameters.Count > 0) {
ParameterDeclarationExpression lastParameter = methodDeclaration.Parameters[methodDeclaration.Parameters.Count - 1];
if (lastParameter.ParamModifier == ParameterModifiers.Out) {
methodDeclaration.TypeReference = lastParameter.TypeReference;
methodDeclaration.Parameters.RemoveAt(methodDeclaration.Parameters.Count - 1);
VariableDeclaration tmpVarDecl = new VariableDeclaration("tmp");
tmpVarDecl.TypeReference = methodDeclaration.TypeReference;
methodDeclaration.Body.AddChild(new LocalVariableDeclaration(tmpVarDecl));
IdentifierExpression tmpIdent = new IdentifierExpression("tmp");
InvocationExpression ie = CreateMethodCall(methodDeclaration);
ie.Arguments.Add(new DirectionExpression(FieldDirection.Out, tmpIdent));
methodDeclaration.Body.AddChild(new ExpressionStatement(ie));
methodDeclaration.Body.AddChild(new ReturnStatement(tmpIdent));
return null;
}
}
methodDeclaration.Body.AddChild(new ExpressionStatement(CreateMethodCall(methodDeclaration)));
return null;
}
static InvocationExpression CreateMethodCall(MethodDeclaration method)
{
IdentifierExpression wrappedObject = new IdentifierExpression("wrappedObject");
MemberReferenceExpression methodName = new MemberReferenceExpression(wrappedObject, method.Name);
InvocationExpression ie = new InvocationExpression(methodName, null);
foreach (ParameterDeclarationExpression param in method.Parameters) {
Expression expr = new IdentifierExpression(param.ParameterName);
if (param.ParamModifier == ParameterModifiers.Ref) {
expr = new DirectionExpression(FieldDirection.Ref, expr);
}
ie.Arguments.Add(expr);
}
return ie;
}
public override object VisitParameterDeclarationExpression(ParameterDeclarationExpression parameterDeclarationExpression, object data)
{
parameterDeclarationExpression.Attributes.Clear();
return null;
}
}
}
Loading…
Cancel
Save