Browse Source

New feature: Removed unused "using" statements.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@1389 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 20 years ago
parent
commit
af70e15281
  1. 16
      AddIns/ICSharpCode.SharpDevelop.addin
  2. 7
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/BooResolver.cs
  3. 8
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/ResolveVisitor.cs
  4. 19
      src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerLoader/NRefactoryDesignerLoader.cs
  5. 12
      src/AddIns/Misc/SubversionAddIn/Project/Src/Commands/AutostartCommands.cs
  6. 7
      src/Libraries/NRefactory/Project/Src/Parser/AST/TypeReference.cs
  7. 9
      src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
  8. 2
      src/Main/Base/Project/Src/Dom/ClassFinder.cs
  9. 2
      src/Main/Base/Project/Src/Dom/Implementations/SearchClassReturnType.cs
  10. 18
      src/Main/Base/Project/Src/Dom/LanguageProperties.cs
  11. 5
      src/Main/Base/Project/Src/Dom/NRefactoryResolver/NRefactoryResolver.cs
  12. 7
      src/Main/Base/Project/Src/Dom/NRefactoryResolver/TypeVisitor.cs
  13. 6
      src/Main/Base/Project/Src/Dom/ResolveResult.cs
  14. 74
      src/Main/Base/Project/Src/Services/ParserService/DefaultProjectContent.cs
  15. 78
      src/Main/Base/Project/Src/Services/ParserService/IProjectContent.cs
  16. 20
      src/Main/Base/Project/Src/Services/ParserService/ParserService.cs
  17. 83
      src/Main/Base/Project/Src/Services/RefactoringService/CodeGenerator.cs
  18. 9
      src/Main/Base/Project/Src/Services/RefactoringService/FindReferencesAndRenameHelper.cs
  19. 1
      src/Main/Base/Project/Src/Services/RefactoringService/LocalVariableRefactoring.cs
  20. 2
      src/Main/Base/Project/Src/Services/RefactoringService/NRefactoryCodeGenerator.cs
  21. 129
      src/Main/Base/Project/Src/Services/RefactoringService/NRefactoryRefactoringProvider.cs
  22. 16
      src/Main/Base/Project/Src/Services/RefactoringService/NamespaceRefactoring.cs
  23. 70
      src/Main/Base/Project/Src/Services/RefactoringService/NamespaceRefactoringService.cs
  24. 87
      src/Main/Base/Project/Src/Services/RefactoringService/RefactorMenu.cs
  25. 34
      src/Main/Base/Project/Src/Services/RefactoringService/RefactoringProvider.cs
  26. 7
      src/Main/Base/Project/Src/Services/RefactoringService/RefactoringService.cs
  27. 1
      src/Main/Base/Project/Src/Services/RefactoringService/Reference.cs
  28. 0
      src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/CodeGeneratorBase.cs
  29. 11
      src/Main/StartUp/Project/SharpDevelopMain.cs

16
AddIns/ICSharpCode.SharpDevelop.addin

@ -1260,6 +1260,16 @@ @@ -1260,6 +1260,16 @@
class = "ICSharpCode.SharpDevelop.Commands.ToggleFullscreenCommand" />
</MenuItem> <!-- end VIEW menu -->
<Condition name="RefactoringProviderSupports" supports="*">
<MenuItem id = "Refactor" label = "${res:XML.MainMenu.RefactorMenu}" type="Menu">
<Condition name="RefactoringProviderSupports" supports="FindUnusedUsingDeclarations">
<MenuItem id = "RemoveUnusedUsings"
label = "Removed unused import statements"
class = "ICSharpCode.SharpDevelop.Refactoring.RemoveUnusedUsingsCommand" />
</Condition>
</MenuItem>
</Condition> <!-- end REFACTOR menu -->
<Condition name = "ProjectActive" activeproject="*">
<MenuItem id = "Project" label = "${res:XML.MainMenu.ProjectMenu}" type="Menu">
<MenuItem id = "ProjectAddMenu" label = "${res:ProjectComponent.ContextMenu.AddMenu}" type = "Menu" >
@ -1339,7 +1349,7 @@ @@ -1339,7 +1349,7 @@
<MenuItem id = "ConfigurationBuilder" type = "Builder" class = "ICSharpCode.SharpDevelop.Project.Commands.SetConfigurationMenuBuilder"/>
</MenuItem>
</ComplexCondition>
</MenuItem> <!-- end RUN menu -->
</MenuItem> <!-- end BUILD menu -->
<MenuItem id = "Debug" label = "${res:XML.MainMenu.DebugMenu}" type="Menu">
<ComplexCondition action="Disable">
@ -2070,12 +2080,12 @@ @@ -2070,12 +2080,12 @@
<Class id = "DefaultBuilder"
class = "ICSharpCode.SharpDevelop.Project.DefaultDotNetNodeBuilder"/>
</Path>
<Path name = "/SharpDevelop/Views/ClassBrowser/ProjectNodeBuilders">
<Class id = "DefaultProjectBuilder"
class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.DefaultProjectNodeBuilder"/>
</Path>
<Path name = "/SharpDevelop/Views/ClassBrowser/ClassNodeBuilders">
<Class id = "DefaultClassBuilder"
class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.DefaultClassNodeBuilder"/>

7
src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/BooResolver.cs

@ -10,10 +10,7 @@ using System.Collections; @@ -10,10 +10,7 @@ using System.Collections;
using System.Collections.Generic;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Dom;
using Boo.Lang.Compiler;
using AST = Boo.Lang.Compiler.Ast;
using Boo.Lang.Compiler.IO;
using Boo.Lang.Compiler.Steps;
using NRResolver = ICSharpCode.SharpDevelop.Dom.NRefactoryResolver.NRefactoryResolver;
namespace Grunwald.BooBinding.CodeCompletion
@ -217,10 +214,10 @@ namespace Grunwald.BooBinding.CodeCompletion @@ -217,10 +214,10 @@ namespace Grunwald.BooBinding.CodeCompletion
if (mie != null)
expr = mie.Target;
string name = expr.ToCodeString();
IReturnType rt = pc.SearchType(name, 0, callingClass, cu, caretLine, caretColumn);
IReturnType rt = pc.SearchType(new SearchTypeRequest(name, 0, callingClass, cu, caretLine, caretColumn)).Result;
if (rt != null && rt.GetUnderlyingClass() != null)
return new TypeResolveResult(callingClass, callingMember, rt);
rt = pc.SearchType(name + "Attribute", 0, callingClass, cu, caretLine, caretColumn);
rt = pc.SearchType(new SearchTypeRequest(name + "Attribute", 0, callingClass, cu, caretLine, caretColumn)).Result;
if (rt != null && rt.GetUnderlyingClass() != null)
return new TypeResolveResult(callingClass, callingMember, rt);
if (BooProject.BooCompilerPC != null) {

8
src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/ResolveVisitor.cs

@ -9,9 +9,9 @@ using System; @@ -9,9 +9,9 @@ using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using Boo.Lang.Compiler.Ast;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Dom;
using Boo.Lang.Compiler.Ast;
namespace Grunwald.BooBinding.CodeCompletion
{
@ -110,7 +110,7 @@ namespace Grunwald.BooBinding.CodeCompletion @@ -110,7 +110,7 @@ namespace Grunwald.BooBinding.CodeCompletion
ResolveResult oldResult = resolveResult;
ClearResult();
// Try to resolve as type:
IReturnType t = projectContent.SearchType(identifier, 0, callingClass, cu, resolver.CaretLine, resolver.CaretColumn);
IReturnType t = projectContent.SearchType(new SearchTypeRequest(identifier, 0, callingClass, cu, resolver.CaretLine, resolver.CaretColumn)).Result;
if (t != null) {
MakeTypeResult(t);
} else {
@ -253,8 +253,8 @@ namespace Grunwald.BooBinding.CodeCompletion @@ -253,8 +253,8 @@ namespace Grunwald.BooBinding.CodeCompletion
LoggingService.Warn("Unknown expression in GenericReferenceExpression: " + expr);
}
}
IReturnType rt = projectContent.SearchType(name.ToString(), typeArguments.Count, callingClass,
cu, resolver.CaretLine, resolver.CaretColumn);
IReturnType rt = projectContent.SearchType(new SearchTypeRequest(name.ToString(), typeArguments.Count, callingClass,
cu, resolver.CaretLine, resolver.CaretColumn)).Result;
return new ConstructedReturnType(rt, typeArguments);
}
#endregion

19
src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerLoader/NRefactoryDesignerLoader.cs

@ -6,26 +6,21 @@ @@ -6,26 +6,21 @@
// </file>
using System;
using System.CodeDom;
using System.CodeDom.Compiler;
using System.Collections;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.ComponentModel.Design;
using System.CodeDom;
using System.CodeDom.Compiler;
using System.ComponentModel.Design.Serialization;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using System.Windows.Forms.Design;
using ICSharpCode.Core;
using ICSharpCode.TextEditor;
using ICSharpCode.TextEditor.Document;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.FormsDesigner.Services;
using ICSharpCode.NRefactory.Parser;
using ICSharpCode.NRefactory.Parser.AST;
using ICSharpCode.NRefactory.PrettyPrinter;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.TextEditor;
namespace ICSharpCode.FormsDesigner
{
@ -314,7 +309,7 @@ namespace ICSharpCode.FormsDesigner @@ -314,7 +309,7 @@ namespace ICSharpCode.FormsDesigner
FixTypeReference(tref, location, domCu);
}
ICSharpCode.SharpDevelop.Dom.IClass curType = domCu.GetInnermostClass(location.Y, location.X);
ICSharpCode.SharpDevelop.Dom.IReturnType rt = domCu.ProjectContent.SearchType(type.Type, type.GenericTypes.Count, curType, domCu, location.Y, location.X);
ICSharpCode.SharpDevelop.Dom.IReturnType rt = domCu.ProjectContent.SearchType(new SearchTypeRequest(type.Type, type.GenericTypes.Count, curType, domCu, location.Y, location.X)).Result;
if (rt != null) {
type.Type = rt.FullyQualifiedName;
}

12
src/AddIns/Misc/SubversionAddIn/Project/Src/Commands/AutostartCommands.cs

@ -6,22 +6,11 @@ @@ -6,22 +6,11 @@
// </file>
using System;
using System.Text;
using System.IO;
using System.Threading;
using System.Drawing;
using System.Drawing.Printing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Diagnostics;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Project;
using ICSharpCode.SharpDevelop.Gui;
using NSvn.Common;
using NSvn.Core;
namespace ICSharpCode.Svn.Commands
@ -104,6 +93,7 @@ namespace ICSharpCode.Svn.Commands @@ -104,6 +93,7 @@ namespace ICSharpCode.Svn.Commands
switch (status.TextStatus) {
case StatusKind.None:
case StatusKind.Unversioned:
case StatusKind.Deleted:
return; // nothing to do
case StatusKind.Normal:
// remove without problem

7
src/Libraries/NRefactory/Project/Src/Parser/AST/TypeReference.cs

@ -6,11 +6,10 @@ @@ -6,11 +6,10 @@
// </file>
using System;
using System.Diagnostics;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
using System.Globalization;
using System.Text;
namespace ICSharpCode.NRefactory.Parser.AST
{
@ -20,7 +19,7 @@ namespace ICSharpCode.NRefactory.Parser.AST @@ -20,7 +19,7 @@ namespace ICSharpCode.NRefactory.Parser.AST
string systemType = "";
int pointerNestingLevel = 0;
int[] rankSpecifier = null;
List<TypeReference> genericTypes = new List<TypeReference>(1);
List<TypeReference> genericTypes = new List<TypeReference>();
bool isGlobal = false;
static Dictionary<string, string> types = new Dictionary<string, string>();

9
src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj

@ -502,7 +502,7 @@ @@ -502,7 +502,7 @@
<Compile Include="Src\TextEditor\Commands\CodeGenerators\AbstractClassImplementorCodeGenerator.cs" />
<Compile Include="Src\TextEditor\Commands\CodeGenerators\AbstractFieldCodeGenerator.cs" />
<Compile Include="Src\TextEditor\Commands\CodeGenerators\AbstractPropertyCodeGenerator.cs" />
<Compile Include="Src\TextEditor\Commands\CodeGenerators\CodeGenerator.cs" />
<Compile Include="Src\TextEditor\Commands\CodeGenerators\CodeGeneratorBase.cs" />
<Compile Include="Src\TextEditor\Commands\CodeGenerators\ConstructorCodeGenerator.cs" />
<Compile Include="Src\TextEditor\Commands\CodeGenerators\EqualsCodeGenerator.cs" />
<Compile Include="Src\TextEditor\Commands\CodeGenerators\GetterAndSetterCodeGenerator.cs" />
@ -765,7 +765,10 @@ @@ -765,7 +765,10 @@
<Compile Include="Src\Gui\Pads\ClassBrowser\NodeBuilder\IClassNodeBuilder.cs" />
<Compile Include="Src\Gui\Pads\ClassBrowser\NodeBuilder\IProjectNodeBuilder.cs" />
<Compile Include="Src\TextEditor\SearchAndReplace\Engine\TextSelection.cs" />
<Compile Include="Src\Services\RefactoringService\NamespaceRefactoring.cs" />
<Compile Include="Src\Services\RefactoringService\RefactoringProvider.cs" />
<Compile Include="Src\Services\RefactoringService\NRefactoryRefactoringProvider.cs" />
<Compile Include="Src\Services\RefactoringService\NamespaceRefactoringService.cs" />
<Compile Include="Src\Services\RefactoringService\RefactorMenu.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\Libraries\DockPanel_Src\WinFormsUI\WinFormsUI.csproj">
@ -794,4 +797,4 @@ @@ -794,4 +797,4 @@
<Folder Include="Src\Gui\Pads\ClassBrowser\NodeBuilder" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />
</Project>
</Project>

2
src/Main/Base/Project/Src/Dom/ClassFinder.cs

@ -87,7 +87,7 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -87,7 +87,7 @@ namespace ICSharpCode.SharpDevelop.Dom
public IReturnType SearchType(string name, int typeParameterCount)
{
return projectContent.SearchType(name, typeParameterCount, callingClass, cu, caretLine, caretColumn);
return projectContent.SearchType(new SearchTypeRequest(name, typeParameterCount, callingClass, cu, caretLine, caretColumn)).Result;
}
public string SearchNamespace(string name)

2
src/Main/Base/Project/Src/Dom/Implementations/SearchClassReturnType.cs

@ -130,7 +130,7 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -130,7 +130,7 @@ namespace ICSharpCode.SharpDevelop.Dom
return type;
try {
isSearching = true;
type = pc.SearchType(name, typeParameterCount, declaringClass, caretLine, caretColumn);
type = pc.SearchType(new SearchTypeRequest(name, typeParameterCount, declaringClass, caretLine, caretColumn)).Result;
cache[this] = type;
return type;
} finally {

18
src/Main/Base/Project/Src/Dom/LanguageProperties.cs

@ -38,6 +38,12 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -38,6 +38,12 @@ namespace ICSharpCode.SharpDevelop.Dom
}
}
public virtual RefactoringProvider RefactoringProvider {
get {
return RefactoringProvider.DummyProvider;
}
}
/// <summary>
/// Gets if the language supports calling C# 3-style extension methods
/// (first parameter = instance parameter)
@ -154,6 +160,12 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -154,6 +160,12 @@ namespace ICSharpCode.SharpDevelop.Dom
{
public CSharpProperties() : base(StringComparer.InvariantCulture, CSharpCodeGenerator.Instance) {}
public override RefactoringProvider RefactoringProvider {
get {
return NRefactoryRefactoringProvider.NRefactoryProviderInstance;
}
}
public override string ToString()
{
return "[LanguageProperties: C#]";
@ -230,6 +242,12 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -230,6 +242,12 @@ namespace ICSharpCode.SharpDevelop.Dom
return u;
}
public override RefactoringProvider RefactoringProvider {
get {
return NRefactoryRefactoringProvider.NRefactoryProviderInstance;
}
}
public override string ToString()
{
return "[LanguageProperties: VB.NET]";

5
src/Main/Base/Project/Src/Dom/NRefactoryResolver/NRefactoryResolver.cs

@ -11,9 +11,8 @@ using System.Collections.Generic; @@ -11,9 +11,8 @@ using System.Collections.Generic;
using System.Drawing;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.NRefactory.Parser.AST;
using ICSharpCode.NRefactory.Parser;
using ICSharpCode.NRefactory.Parser.AST;
namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
{
@ -783,7 +782,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -783,7 +782,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
public IReturnType SearchType(string name)
{
return projectContent.SearchType(name, 0, callingClass, cu, caretLine, caretColumn);
return projectContent.SearchType(new SearchTypeRequest(name, 0, callingClass, cu, caretLine, caretColumn)).Result;
}
#region Helper for TypeVisitor

7
src/Main/Base/Project/Src/Dom/NRefactoryResolver/TypeVisitor.cs

@ -8,15 +8,12 @@ @@ -8,15 +8,12 @@
// created on 22.08.2003 at 19:02
using System;
using System.Collections;
using System.Collections.Generic;
using ICSharpCode.Core;
using ICSharpCode.NRefactory.Parser;
using ICSharpCode.NRefactory.Parser.AST;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.Core;
namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
{
public class TypeVisitor : AbstractAstVisitor
@ -509,7 +506,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -509,7 +506,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
c = projectContent.GetClass(reference.SystemType, typeParameterCount);
t = (c != null) ? c.DefaultReturnType : null;
} else {
t = projectContent.SearchType(reference.SystemType, typeParameterCount, callingClass, caretLine, caretColumn);
t = projectContent.SearchType(new SearchTypeRequest(reference.SystemType, typeParameterCount, callingClass, caretLine, caretColumn)).Result;
}
if (t == null) {
if (reference.GenericTypes.Count == 0 && !reference.IsArrayType) {

6
src/Main/Base/Project/Src/Dom/ResolveResult.cs

@ -10,10 +10,8 @@ using System.Collections; @@ -10,10 +10,8 @@ using System.Collections;
using System.Collections.Generic;
using System.Drawing;
using ICSharpCode.SharpDevelop.Project;
using ICSharpCode.Core;
namespace ICSharpCode.SharpDevelop.Dom
{
#region ResolveResult
@ -32,8 +30,6 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -32,8 +30,6 @@ namespace ICSharpCode.SharpDevelop.Dom
public ResolveResult(IClass callingClass, IMember callingMember, IReturnType resolvedType)
{
// if (callingMember != null && callingMember.DeclaringType != callingClass)
// throw new ArgumentException("callingMember.DeclaringType must be equal to callingClass");
this.callingClass = callingClass;
this.callingMember = callingMember;
this.resolvedType = resolvedType;
@ -498,7 +494,7 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -498,7 +494,7 @@ namespace ICSharpCode.SharpDevelop.Dom
return GetDefinitionPosition(resolvedMember);
}
public static FilePosition GetDefinitionPosition(IMember resolvedMember)
internal static FilePosition GetDefinitionPosition(IMember resolvedMember)
{
IClass declaringType = resolvedMember.DeclaringType;
if (declaringType == null) {

74
src/Main/Base/Project/Src/Services/ParserService/DefaultProjectContent.cs

@ -6,26 +6,15 @@ @@ -6,26 +6,15 @@
// </file>
using System;
using System.IO;
using System.Threading;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters;
using System.Runtime.Serialization.Formatters.Binary;
using System.Security;
using System.Security.Permissions;
using System.Security.Policy;
using System.Xml;
using System.IO;
using System.Text;
using System.Threading;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Project;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.Core
{
@ -723,30 +712,23 @@ namespace ICSharpCode.Core @@ -723,30 +712,23 @@ namespace ICSharpCode.Core
return null;
}
public IReturnType SearchType(string name, int typeParameterCount, IClass curType, int caretLine, int caretColumn)
{
if (curType == null) {
return SearchType(name, typeParameterCount, null, null, caretLine, caretColumn);
}
return SearchType(name, typeParameterCount, curType, curType.CompilationUnit, caretLine, caretColumn);
}
public IReturnType SearchType(string name, int typeParameterCount, IClass curType, ICompilationUnit unit, int caretLine, int caretColumn)
public SearchTypeResult SearchType(SearchTypeRequest request)
{
string name = request.Name;
if (name == null || name.Length == 0) {
return null;
return SearchTypeResult.Empty;
}
// Try if name is already the full type name
IClass c = GetClass(name, typeParameterCount);
IClass c = GetClass(name, request.TypeParameterCount);
if (c != null) {
return c.DefaultReturnType;
return new SearchTypeResult(c.DefaultReturnType);
}
// fallback-class if the one with the right type parameter count is not found.
IReturnType fallbackClass = null;
if (curType != null) {
SearchTypeResult fallbackResult = SearchTypeResult.Empty;
if (request.CurrentType != null) {
// Try parent namespaces of the current class
string fullname = curType.FullyQualifiedName;
string fullname = request.CurrentType.FullyQualifiedName;
string[] namespaces = fullname.Split('.');
StringBuilder curnamespace = new StringBuilder();
for (int i = 0; i < namespaces.Length; ++i) {
@ -754,12 +736,12 @@ namespace ICSharpCode.Core @@ -754,12 +736,12 @@ namespace ICSharpCode.Core
curnamespace.Append('.');
curnamespace.Append(name);
c = GetClass(curnamespace.ToString(), typeParameterCount);
c = GetClass(curnamespace.ToString(), request.TypeParameterCount);
if (c != null) {
if (c.TypeParameters.Count == typeParameterCount)
return c.DefaultReturnType;
if (c.TypeParameters.Count == request.TypeParameterCount)
return new SearchTypeResult(c.DefaultReturnType);
else
fallbackClass = c.DefaultReturnType;
fallbackResult = new SearchTypeResult(c.DefaultReturnType);
}
// remove class name again to try next namespace
curnamespace.Length -= name.Length;
@ -768,42 +750,42 @@ namespace ICSharpCode.Core @@ -768,42 +750,42 @@ namespace ICSharpCode.Core
if (name.IndexOf('.') < 0) {
// Try inner classes (in full inheritance tree)
// Don't use loop with cur = cur.BaseType because of inheritance cycles
foreach (IClass baseClass in curType.ClassInheritanceTree) {
foreach (IClass baseClass in request.CurrentType.ClassInheritanceTree) {
if (baseClass.ClassType == ClassType.Class) {
foreach (IClass innerClass in baseClass.InnerClasses) {
if (language.NameComparer.Equals(innerClass.Name, name))
return innerClass.DefaultReturnType;
return new SearchTypeResult(innerClass.DefaultReturnType);
}
}
}
}
}
if (unit != null) {
if (request.CurrentCompilationUnit != null) {
// Combine name with usings
foreach (IUsing u in unit.Usings) {
foreach (IUsing u in request.CurrentCompilationUnit.Usings) {
if (u != null) {
IReturnType r = u.SearchType(name, typeParameterCount);
IReturnType r = u.SearchType(name, request.TypeParameterCount);
if (r != null) {
if (r.TypeParameterCount == typeParameterCount) {
return r;
if (r.TypeParameterCount == request.TypeParameterCount) {
return new SearchTypeResult(r, u);
} else {
fallbackClass = r;
fallbackResult = new SearchTypeResult(r, u);
}
}
}
}
}
if (defaultImports != null) {
IReturnType r = defaultImports.SearchType(name, typeParameterCount);
IReturnType r = defaultImports.SearchType(name, request.TypeParameterCount);
if (r != null) {
if (r.TypeParameterCount == typeParameterCount) {
return r;
if (r.TypeParameterCount == request.TypeParameterCount) {
return new SearchTypeResult(r, defaultImports);
} else {
fallbackClass = r;
fallbackResult = new SearchTypeResult(r, defaultImports);
}
}
}
return fallbackClass;
return fallbackResult;
}
/// <summary>

78
src/Main/Base/Project/Src/Services/ParserService/IProjectContent.cs

@ -6,26 +6,11 @@ @@ -6,26 +6,11 @@
// </file>
using System;
using System.IO;
using System.Threading;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters;
using System.Runtime.Serialization.Formatters.Binary;
using System.Security;
using System.Security.Permissions;
using System.Security.Policy;
using System.Xml;
using System.Text;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Project;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.Core
{
@ -89,9 +74,66 @@ namespace ICSharpCode.Core @@ -89,9 +74,66 @@ namespace ICSharpCode.Core
void AddNamespaceContents(ArrayList list, string subNameSpace, LanguageProperties language, bool lookInReferences);
string SearchNamespace(string name, IClass curType, ICompilationUnit unit, int caretLine, int caretColumn);
IReturnType SearchType(string name, int typeParameterCount, IClass curType, int caretLine, int caretColumn);
IReturnType SearchType(string name, int typeParameterCount, IClass curType, ICompilationUnit unit, int caretLine, int caretColumn);
SearchTypeResult SearchType(SearchTypeRequest request);
Position GetPosition(string fullMemberName);
}
public struct SearchTypeRequest
{
public string Name;
public int TypeParameterCount;
public ICompilationUnit CurrentCompilationUnit;
public IClass CurrentType;
public int CaretLine;
public int CaretColumn;
public SearchTypeRequest(string name, int typeParameterCount, IClass currentType, int caretLine, int caretColumn)
{
this.Name = name;
this.TypeParameterCount = typeParameterCount;
this.CurrentCompilationUnit = currentType.CompilationUnit;
this.CurrentType = currentType;
this.CaretLine = caretLine;
this.CaretColumn = caretColumn;
}
public SearchTypeRequest(string name, int typeParameterCount, IClass currentType, ICompilationUnit currentCompilationUnit, int caretLine, int caretColumn)
{
this.Name = name;
this.TypeParameterCount = typeParameterCount;
this.CurrentCompilationUnit = currentCompilationUnit;
this.CurrentType = currentType;
this.CaretLine = caretLine;
this.CaretColumn = caretColumn;
}
}
public struct SearchTypeResult
{
public static readonly SearchTypeResult Empty = new SearchTypeResult(null);
IReturnType result;
IUsing usedUsing;
public SearchTypeResult(IReturnType result) : this(result, null) {}
public SearchTypeResult(IReturnType result, IUsing usedUsing)
{
this.result = result;
this.usedUsing = usedUsing;
}
public IReturnType Result {
get {
return result;
}
}
public IUsing UsedUsing {
get {
return usedUsing;
}
}
}
}

20
src/Main/Base/Project/Src/Services/ParserService/ParserService.cs

@ -6,26 +6,16 @@ @@ -6,26 +6,16 @@
// </file>
using System;
using System.IO;
using System.Threading;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters;
using System.Runtime.Serialization.Formatters.Binary;
using System.Security;
using System.Security.Permissions;
using System.Security.Policy;
using System.Xml;
using System.IO;
using System.Text;
using System.Threading;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Project;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.Core
{
@ -464,6 +454,8 @@ namespace ICSharpCode.Core @@ -464,6 +454,8 @@ namespace ICSharpCode.Core
public static ParseInformation ParseFile(IProjectContent fileProjectContent, string fileName, string fileContent, bool updateCommentTags, bool fireUpdate)
{
if (fileName == null) throw new ArgumentNullException("fileName");
IParser parser = GetParser(fileName);
if (parser == null) {
return null;

83
src/Main/Base/Project/Src/Services/RefactoringService/CodeGenerator.cs

@ -6,14 +6,13 @@ @@ -6,14 +6,13 @@
// </file>
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Drawing;
using System.Text;
using ICSharpCode.NRefactory.Parser.AST;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.TextEditor;
using ICSharpCode.TextEditor.Document;
using ICSharpCode.NRefactory.Parser.AST;
namespace ICSharpCode.SharpDevelop.Refactoring
{
@ -89,6 +88,20 @@ namespace ICSharpCode.SharpDevelop.Refactoring @@ -89,6 +88,20 @@ namespace ICSharpCode.SharpDevelop.Refactoring
return (ParamModifier)m;
}
public static UsingDeclaration ConvertUsing(IUsing u)
{
List<Using> usings = new List<Using>();
foreach (string name in u.Usings) {
usings.Add(new Using(name));
}
if (u.HasAliases) {
foreach (KeyValuePair<string, IReturnType> pair in u.Aliases) {
usings.Add(new Using(pair.Key, ConvertType(pair.Value, null)));
}
}
return new UsingDeclaration(usings);
}
public static List<ParameterDeclarationExpression> ConvertParameters(IList<IParameter> parameters, ClassFinder targetContext)
{
List<ParameterDeclarationExpression> l = new List<ParameterDeclarationExpression>(parameters.Count);
@ -515,5 +528,69 @@ namespace ICSharpCode.SharpDevelop.Refactoring @@ -515,5 +528,69 @@ namespace ICSharpCode.SharpDevelop.Refactoring
return ie;
}
#endregion
#region Using statements
public virtual void ReplaceUsings(IDocument document, IList<IUsing> oldUsings, IList<IUsing> newUsings)
{
if (oldUsings.Count == newUsings.Count) {
bool identical = true;
for (int i = 0; i < oldUsings.Count; i++) {
if (oldUsings[i] != newUsings[i]) {
identical = false;
break;
}
}
if (identical) return;
}
int firstLine = int.MaxValue;
List<KeyValuePair<int, int>> regions = new List<KeyValuePair<int, int>>();
foreach (IUsing u in oldUsings) {
if (u.Region.BeginLine < firstLine)
firstLine = u.Region.BeginLine;
int st = document.PositionToOffset(new Point(u.Region.BeginColumn - 1, u.Region.BeginLine - 1));
int en = document.PositionToOffset(new Point(u.Region.EndColumn - 1, u.Region.EndLine - 1));
regions.Add(new KeyValuePair<int, int>(st, en - st));
}
regions.Sort(delegate(KeyValuePair<int, int> a, KeyValuePair<int, int> b) {
return a.Key.CompareTo(b.Key);
});
int insertionOffset = regions.Count == 0 ? 0 : regions[0].Key;
string indentation;
if (firstLine != int.MaxValue) {
indentation = GetIndentation(document, firstLine);
insertionOffset -= indentation.Length;
} else {
indentation = "";
}
for (int i = regions.Count - 1; i >= 0; i--) {
document.Remove(regions[i].Key, regions[i].Value);
}
int actionCount = regions.Count;
int lastNewLine = insertionOffset;
for (int i = insertionOffset; i < document.TextLength; i++) {
char c = document.GetCharAt(i);
if (!char.IsWhiteSpace(c))
break;
if (c == '\n') {
if (i > 0 && document.GetCharAt(i - 1) == '\r')
lastNewLine = i - 1;
else
lastNewLine = i;
}
}
if (lastNewLine != insertionOffset) {
document.Remove(insertionOffset, lastNewLine - insertionOffset); actionCount++;
}
StringBuilder txt = new StringBuilder();
foreach (IUsing us in newUsings) {
txt.Append(GenerateCode(ConvertUsing(us), indentation));
}
document.Insert(insertionOffset, txt.ToString()); actionCount++;
document.UndoStack.UndoLast(actionCount);
}
#endregion
}
}

9
src/Main/Base/Project/Src/Services/RefactoringService/FindReferencesAndRenameHelper.cs

@ -7,18 +7,13 @@ @@ -7,18 +7,13 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.TextEditor;
using ICSharpCode.TextEditor.Document;
using ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Bookmarks;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.TextEditor;
using ICSharpCode.TextEditor.Document;
using SearchAndReplace;
using ICSharpCode.SharpDevelop.DefaultEditor.Commands;
namespace ICSharpCode.SharpDevelop.Refactoring
{

1
src/Main/Base/Project/Src/Services/RefactoringService/LocalVariableRefactoring.cs

@ -8,7 +8,6 @@ @@ -8,7 +8,6 @@
using System;
using System.Collections.Generic;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Dom;
namespace ICSharpCode.SharpDevelop.Refactoring

2
src/Main/Base/Project/Src/Services/RefactoringService/NRefactoryCodeGenerator.cs

@ -6,8 +6,6 @@ @@ -6,8 +6,6 @@
// </file>
using System;
using System.IO;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.NRefactory.Parser.AST;
using ICSharpCode.NRefactory.PrettyPrinter;

129
src/Main/Base/Project/Src/Services/RefactoringService/NRefactoryRefactoringProvider.cs

@ -0,0 +1,129 @@ @@ -0,0 +1,129 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Daniel Grunwald" email="daniel@danielgrunwald.de"/>
// <version>$Revision$</version>
// </file>
using System;
using System.Collections.Generic;
using System.IO;
using ICSharpCode.Core;
using ICSharpCode.NRefactory.Parser.AST;
using ICSharpCode.SharpDevelop.Dom;
using NR = ICSharpCode.NRefactory.Parser;
namespace ICSharpCode.SharpDevelop.Refactoring
{
public class NRefactoryRefactoringProvider : RefactoringProvider
{
public static readonly NRefactoryRefactoringProvider NRefactoryProviderInstance = new NRefactoryRefactoringProvider();
protected class PossibleTypeReference
{
internal string Name;
internal bool Global;
internal int TypeParameterCount;
public PossibleTypeReference(string name)
{
this.Name = name;
}
public PossibleTypeReference(TypeReference tr)
{
this.Name = tr.SystemType;
this.Global = tr.IsGlobal;
this.TypeParameterCount = tr.GenericTypes.Count;
}
public override int GetHashCode()
{
return Name.GetHashCode() ^ Global.GetHashCode() ^ TypeParameterCount.GetHashCode();
}
public override bool Equals(object obj)
{
if (!(obj is PossibleTypeReference)) return false;
if (this == obj) return true;
PossibleTypeReference myPossibleTypeReference = (PossibleTypeReference)obj;
return this.Name == myPossibleTypeReference.Name && this.Global == myPossibleTypeReference.Global && this.TypeParameterCount == myPossibleTypeReference.TypeParameterCount;
}
}
private class FindPossibleTypeReferencesVisitor : NR.AbstractAstVisitor
{
internal Dictionary<PossibleTypeReference, object> list = new Dictionary<PossibleTypeReference, object>();
public override object Visit(IdentifierExpression identifierExpression, object data)
{
list[new PossibleTypeReference(identifierExpression.Identifier)] = data;
return base.Visit(identifierExpression, data);
}
public override object Visit(TypeReference typeReference, object data)
{
list[new PossibleTypeReference(typeReference)] = data;
return base.Visit(typeReference, data);
}
}
protected Dictionary<PossibleTypeReference, object> FindPossibleTypeReferences(string extension, string fileContent)
{
NR.IParser parser;
if (extension.Equals(".cs", StringComparison.InvariantCultureIgnoreCase))
parser = NR.ParserFactory.CreateParser(NR.SupportedLanguage.CSharp, new StringReader(fileContent));
else if (extension.Equals(".vb", StringComparison.InvariantCultureIgnoreCase))
parser = NR.ParserFactory.CreateParser(NR.SupportedLanguage.VBNet, new StringReader(fileContent));
else
return null;
parser.Parse();
if (parser.Errors.count > 0) {
MessageService.ShowMessage("The operation cannot be performed because your sourcecode contains errors:\n" + parser.Errors.ErrorOutput);
return null;
} else {
FindPossibleTypeReferencesVisitor visitor = new FindPossibleTypeReferencesVisitor();
parser.CompilationUnit.AcceptVisitor(visitor, null);
return visitor.list;
}
}
public override bool SupportsFindUnusedUsingDeclarations {
get {
return true;
}
}
public override IList<IUsing> FindUnusedUsingDeclarations(string fileName, string fileContent, ICompilationUnit cu)
{
IClass @class = cu.Classes.Count == 0 ? null : cu.Classes[0];
Dictionary<PossibleTypeReference, object> references = FindPossibleTypeReferences(Path.GetExtension(fileName), fileContent);
if (references == null) return new IUsing[0];
Dictionary<IUsing, object> dict = new Dictionary<IUsing, object>();
foreach (PossibleTypeReference tr in references.Keys) {
SearchTypeRequest request = new SearchTypeRequest(tr.Name, tr.TypeParameterCount, @class, cu, 1, 1);
SearchTypeResult response = cu.ProjectContent.SearchType(request);
if (response.UsedUsing != null) {
dict[response.UsedUsing] = null;
}
}
List<IUsing> list = new List<IUsing>();
foreach (IUsing import in cu.Usings) {
if (!dict.ContainsKey(import)) {
if (import.HasAliases) {
foreach (string key in import.Aliases.Keys) {
if (references.ContainsKey(new PossibleTypeReference(key)))
goto checkNextImport;
}
}
list.Add(import); // this using is unused
}
checkNextImport:;
}
return list;
}
}
}

16
src/Main/Base/Project/Src/Services/RefactoringService/NamespaceRefactoring.cs

@ -1,16 +0,0 @@ @@ -1,16 +0,0 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Daniel Grunwald" email="daniel@danielgrunwald.de"/>
// <version>$Revision$</version>
// </file>
using System;
namespace ICSharpCode.SharpDevelop.Refactoring
{
public static class NamespaceRefactoring
{
}
}

70
src/Main/Base/Project/Src/Services/RefactoringService/NamespaceRefactoringService.cs

@ -0,0 +1,70 @@ @@ -0,0 +1,70 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Daniel Grunwald" email="daniel@danielgrunwald.de"/>
// <version>$Revision$</version>
// </file>
using System;
using System.Collections.Generic;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.TextEditor.Document;
namespace ICSharpCode.SharpDevelop.Refactoring
{
public static class NamespaceRefactoringService
{
static int CompareUsings(IUsing a, IUsing b)
{
if (a.HasAliases != b.HasAliases)
return a.HasAliases ? 1 : -1;
if (a.Usings.Count != 0 && b.Usings.Count != 0) {
string u1 = a.Usings[0];
string u2 = b.Usings[0];
if (u1.StartsWith("System.") || u1 == "System") {
if (!(u2.StartsWith("System.") || u2 == "System"))
return -1;
} else {
if (u2.StartsWith("System.") || u2 == "System")
return 1;
}
return a.Usings[0].CompareTo(b.Usings[0]);
}
if (a.Aliases.Count != 0 && b.Aliases.Count != 0) {
return a.Aliases.Keys[0].CompareTo(b.Aliases.Keys[0]);
}
return 0;
}
public static void ManageUsings(string fileName, IDocument document, bool sort, bool removedUnused)
{
ParseInformation info = ParserService.ParseFile(fileName, document.TextContent);
if (info == null) return;
ICompilationUnit cu = info.MostRecentCompilationUnit;
List<IUsing> newUsings = new List<IUsing>(cu.Usings);
if (sort) {
newUsings.Sort(CompareUsings);
}
if (removedUnused) {
IList<IUsing> decl = cu.ProjectContent.Language.RefactoringProvider.FindUnusedUsingDeclarations(fileName, document.TextContent, cu);
if (decl != null && decl.Count > 0) {
foreach (IUsing u in decl) {
string ns = null;
for (int i = 0; i < u.Usings.Count; i++) {
ns = u.Usings[i];
if (ns == "System") break;
}
if (ns != "System") { // never remove "using System;"
newUsings.Remove(u);
}
}
}
}
cu.ProjectContent.Language.CodeGenerator.ReplaceUsings(document, cu.Usings, newUsings);
}
}
}

87
src/Main/Base/Project/Src/Services/RefactoringService/RefactorMenu.cs

@ -0,0 +1,87 @@ @@ -0,0 +1,87 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Daniel Grunwald" email="daniel@danielgrunwald.de"/>
// <version>$Revision$</version>
// </file>
using System;
using System.Reflection;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.TextEditor;
namespace ICSharpCode.SharpDevelop.Refactoring
{
/// <summary>
/// Tests if the refactoring provider for the current document
/// supports the specified option.
/// </summary>
/// <attribute name="supports">
/// Same of the action that should be supported.
/// "*" to test if refactoring is supported at all.
/// </attribute>
/// <example title="Test if refactoring is supported">
/// &lt;Condition name="RefactoringProviderSupports" supports="*"&gt;
/// </example>
/// <example title="Test if managing imports is supported">
/// &lt;Condition name="RefactoringProviderSupports" supports="FindUnusedUsingDeclarations"&gt;
/// </example>
public class RefactoringProviderSupportsConditionEvaluator : IConditionEvaluator
{
public bool IsValid(object caller, Condition condition)
{
if (WorkbenchSingleton.Workbench == null || WorkbenchSingleton.Workbench.ActiveWorkbenchWindow == null) {
return false;
}
ITextEditorControlProvider provider = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow.ActiveViewContent as ITextEditorControlProvider;
if (provider == null) return false;
LanguageProperties language = ParserService.CurrentProjectContent.Language;
if (language == null) return false;
string supports = condition.Properties["supports"];
if (supports == "*") return true;
RefactoringProvider rp = language.RefactoringProvider;
Type t = rp.GetType();
try {
return (bool)t.InvokeMember("Supports" + supports, BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetProperty, null, rp, null);
} catch (Exception ex) {
LoggingService.Warn(ex.ToString());
return false;
}
}
}
public abstract class AbstractRefactoringCommand : AbstractMenuCommand
{
public override void Run()
{
if (ParserService.LoadSolutionProjectsThreadRunning) {
return;
}
if (WorkbenchSingleton.Workbench == null || WorkbenchSingleton.Workbench.ActiveWorkbenchWindow == null) {
return;
}
ITextEditorControlProvider provider = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow.ActiveViewContent as ITextEditorControlProvider;
if (provider == null) return;
LanguageProperties language = ParserService.CurrentProjectContent.Language;
if (language == null) return;
RefactoringProvider rp = language.RefactoringProvider;
Run(provider.TextEditorControl, rp);
provider.TextEditorControl.Refresh();
}
protected abstract void Run(TextEditorControl textEditor, RefactoringProvider provider);
}
public class RemoveUnusedUsingsCommand : AbstractRefactoringCommand
{
protected override void Run(TextEditorControl textEditor, RefactoringProvider provider)
{
NamespaceRefactoringService.ManageUsings(textEditor.FileName, textEditor.Document, true, true);
}
}
}

34
src/Main/Base/Project/Src/Services/RefactoringService/RefactoringProvider.cs

@ -0,0 +1,34 @@ @@ -0,0 +1,34 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Daniel Grunwald" email="daniel@danielgrunwald.de"/>
// <version>$Revision$</version>
// </file>
using System;
using System.Collections.Generic;
using ICSharpCode.SharpDevelop.Dom;
namespace ICSharpCode.SharpDevelop.Refactoring
{
public class RefactoringProvider
{
/// <summary>
/// A RefactoringProvider instance that supports no refactorings.
/// </summary>
public static readonly RefactoringProvider DummyProvider = new RefactoringProvider();
protected RefactoringProvider() {}
public virtual bool SupportsFindUnusedUsingDeclarations {
get {
return false;
}
}
public virtual IList<IUsing> FindUnusedUsingDeclarations(string fileName, string fileContent, ICompilationUnit compilationUnit)
{
throw new NotSupportedException();
}
}
}

7
src/Main/Base/Project/Src/Services/RefactoringService/RefactoringService.cs

@ -9,7 +9,6 @@ using System; @@ -9,7 +9,6 @@ using System;
using System.Collections.Generic;
using System.Drawing;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Project;
@ -309,7 +308,7 @@ namespace ICSharpCode.SharpDevelop.Refactoring @@ -309,7 +308,7 @@ namespace ICSharpCode.SharpDevelop.Refactoring
return new Point(column, line);
}
public static List<string> GetFileNames(IClass c)
static List<string> GetFileNames(IClass c)
{
List<string> list = new List<string>();
CompoundClass cc = c as CompoundClass;
@ -407,6 +406,7 @@ namespace ICSharpCode.SharpDevelop.Refactoring @@ -407,6 +406,7 @@ namespace ICSharpCode.SharpDevelop.Refactoring
}
#endregion
#region IsReferenceTo...
public static bool IsReferenceToLocalVariable(ResolveResult rr, IMember variable)
{
LocalResolveResult local = rr as LocalResolveResult;
@ -432,7 +432,9 @@ namespace ICSharpCode.SharpDevelop.Refactoring @@ -432,7 +432,9 @@ namespace ICSharpCode.SharpDevelop.Refactoring
return false;
}
}
#endregion
#region IsSimilarMember / FindBaseMember
/// <summary>
/// Gets if member1 is the same as member2 or if member1 overrides member2.
/// </summary>
@ -516,5 +518,6 @@ namespace ICSharpCode.SharpDevelop.Refactoring @@ -516,5 +518,6 @@ namespace ICSharpCode.SharpDevelop.Refactoring
}
return null;
}
#endregion
}
}

1
src/Main/Base/Project/Src/Services/RefactoringService/Reference.cs

@ -6,7 +6,6 @@ @@ -6,7 +6,6 @@
// </file>
using System;
using System.Collections.Generic;
using ICSharpCode.SharpDevelop.Dom;
namespace ICSharpCode.SharpDevelop.Refactoring

0
src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/CodeGenerator.cs → src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/CodeGeneratorBase.cs

11
src/Main/StartUp/Project/SharpDevelopMain.cs

@ -6,18 +6,12 @@ @@ -6,18 +6,12 @@
// </file>
using System;
using System.IO;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Drawing;
using System.Collections;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Resources;
using System.Xml;
using System.Threading;
using System.Runtime.Remoting;
using System.Security.Policy;
using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Commands;
@ -263,6 +257,7 @@ namespace ICSharpCode.SharpDevelop @@ -263,6 +257,7 @@ namespace ICSharpCode.SharpDevelop
AddInTree.ConditionEvaluators.Add("ProjectActive", new ProjectActiveConditionEvaluator());
AddInTree.ConditionEvaluators.Add("TextContent", new ICSharpCode.SharpDevelop.DefaultEditor.Conditions.TextContentConditionEvaluator());
AddInTree.ConditionEvaluators.Add("BrowserLocation", new ICSharpCode.SharpDevelop.BrowserDisplayBinding.BrowserLocationConditionEvaluator());
AddInTree.ConditionEvaluators.Add("RefactoringProviderSupports", new Refactoring.RefactoringProviderSupportsConditionEvaluator());
AddInTree.Doozers.Add("DialogPanel", new DialogPanelDoozer());
AddInTree.Doozers.Add("DisplayBinding", new DisplayBindingDoozer());

Loading…
Cancel
Save