Browse Source

add support for renaming local variables and parameters

pull/80/head
Siegfried Pammer 12 years ago
parent
commit
7aa85871f8
  1. 2
      src/AddIns/Analysis/UnitTesting/Commands/TestableCondition.cs
  2. 7
      src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlSymbolSearch.cs
  3. 2
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/FindBaseClasses.cs
  4. 2
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/FindDerivedClassesOrOverrides.cs
  5. 3
      src/AddIns/DisplayBindings/ILSpyAddIn/LaunchILSpy/OpenInILSpyCommand.cs
  6. 36
      src/Main/Base/Project/Src/Editor/Commands/FindReferencesCommand.cs
  7. 2
      src/Main/Base/Project/Src/Editor/Commands/GoToDefinition.cs
  8. 9
      src/Main/Base/Project/Src/Editor/Commands/SymbolUnderCaretMenuCommand.cs
  9. 3
      src/Main/SharpDevelop/Dom/ClassBrowser/Commands.cs

2
src/AddIns/Analysis/UnitTesting/Commands/TestableCondition.cs

@ -41,7 +41,7 @@ namespace ICSharpCode.UnitTesting @@ -41,7 +41,7 @@ namespace ICSharpCode.UnitTesting
return testTreeView.SelectedTests;
}
if (testSolution != null) {
IEntity entity = ResolveResultMenuCommand.GetEntity(caller);
IEntity entity = ResolveResultMenuCommand.GetSymbol(caller) as IEntity;
return testSolution.GetTestsForEntity(entity);
}
return Enumerable.Empty<ITest>();

7
src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlSymbolSearch.cs

@ -24,7 +24,7 @@ namespace ICSharpCode.XamlBinding @@ -24,7 +24,7 @@ namespace ICSharpCode.XamlBinding
public class XamlSymbolSearch : ISymbolSearch
{
ICompilation compilation;
IEntity entity;
ISymbol entity;
List<FileName> interestingFileNames;
int workAmount;
double workAmountInverse;
@ -32,7 +32,8 @@ namespace ICSharpCode.XamlBinding @@ -32,7 +32,8 @@ namespace ICSharpCode.XamlBinding
public XamlSymbolSearch(IProject project, ISymbol entity)
{
compilation = SD.ParserService.GetCompilation(project);
this.entity = compilation.Import((IEntity)entity);
if (entity is IEntity)
this.entity = compilation.Import((IEntity)entity);
interestingFileNames = new List<FileName>();
if (this.entity == null)
return;
@ -69,7 +70,7 @@ namespace ICSharpCode.XamlBinding @@ -69,7 +70,7 @@ namespace ICSharpCode.XamlBinding
);
}
void FindReferencesInFile(SymbolSearchArgs searchArguments, IEntity entity, FileName fileName, Action<SearchedFile> callback, CancellationToken cancellationToken)
void FindReferencesInFile(SymbolSearchArgs searchArguments, ISymbol entity, FileName fileName, Action<SearchedFile> callback, CancellationToken cancellationToken)
{
ITextSource textSource = searchArguments.ParseableFileContentFinder.Create(fileName);
if (textSource == null)

2
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/FindBaseClasses.cs

@ -20,7 +20,7 @@ namespace ICSharpCode.AvalonEdit.AddIn.ContextActions @@ -20,7 +20,7 @@ namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
{
public override void Run(ResolveResult symbol)
{
IEntity entityUnderCaret = GetEntity(symbol);
IEntity entityUnderCaret = GetSymbol(symbol) as IEntity;
if (entityUnderCaret is ITypeDefinition) {
MakePopupWithBaseClasses((ITypeDefinition)entityUnderCaret).OpenAtCaretAndFocus();
} else {

2
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/FindDerivedClassesOrOverrides.cs

@ -20,7 +20,7 @@ namespace ICSharpCode.AvalonEdit.AddIn.ContextActions @@ -20,7 +20,7 @@ namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
{
public override void Run(ResolveResult symbol)
{
IEntity entityUnderCaret = GetEntity(symbol);
IEntity entityUnderCaret = GetSymbol(symbol) as IEntity;
if (entityUnderCaret is ITypeDefinition && !entityUnderCaret.IsSealed) {
MakePopupWithDerivedClasses((ITypeDefinition)entityUnderCaret).OpenAtCaretAndFocus();
return;

3
src/AddIns/DisplayBindings/ILSpyAddIn/LaunchILSpy/OpenInILSpyCommand.cs

@ -3,6 +3,7 @@ @@ -3,6 +3,7 @@
using System;
using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.SharpDevelop.Editor.Commands;
namespace ICSharpCode.ILSpyAddIn
@ -15,7 +16,7 @@ namespace ICSharpCode.ILSpyAddIn @@ -15,7 +16,7 @@ namespace ICSharpCode.ILSpyAddIn
{
public override void Run(ResolveResult symbol)
{
var entity = GetEntity(symbol);
var entity = GetSymbol(symbol) as IEntity;
if (entity != null) {
ILSpyController.OpenInILSpy(entity);
}

36
src/Main/Base/Project/Src/Editor/Commands/FindReferencesCommand.cs

@ -4,6 +4,7 @@ @@ -4,6 +4,7 @@
using System;
using ICSharpCode.Core;
using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Editor.Dialogs;
using ICSharpCode.SharpDevelop.Gui;
@ -18,7 +19,7 @@ namespace ICSharpCode.SharpDevelop.Editor.Commands @@ -18,7 +19,7 @@ namespace ICSharpCode.SharpDevelop.Editor.Commands
{
public override void Run(ResolveResult symbol)
{
var entity = GetEntity(symbol);
var entity = GetSymbol(symbol) as IEntity;
if (entity != null) {
FindReferencesAndRenameHelper.RunFindReferences(entity);
return;
@ -36,9 +37,9 @@ namespace ICSharpCode.SharpDevelop.Editor.Commands @@ -36,9 +37,9 @@ namespace ICSharpCode.SharpDevelop.Editor.Commands
{
public override void Run(ResolveResult symbol)
{
var entity = GetEntity(symbol);
var entity = GetSymbol(symbol);
if (entity != null) {
var project = entity.ParentAssembly.GetProject();
var project = GetProjectFromSymbol(entity);
if (project != null) {
var languageBinding = project.LanguageBinding;
@ -58,6 +59,35 @@ namespace ICSharpCode.SharpDevelop.Editor.Commands @@ -58,6 +59,35 @@ namespace ICSharpCode.SharpDevelop.Editor.Commands
}
}
ICSharpCode.SharpDevelop.Project.IProject GetProjectFromSymbol(ISymbol symbol)
{
switch (symbol.SymbolKind) {
case SymbolKind.None:
return null;
case SymbolKind.TypeDefinition:
case SymbolKind.Field:
case SymbolKind.Property:
case SymbolKind.Indexer:
case SymbolKind.Event:
case SymbolKind.Method:
case SymbolKind.Operator:
case SymbolKind.Constructor:
case SymbolKind.Destructor:
case SymbolKind.Accessor:
return ((IEntity)symbol).ParentAssembly.GetProject();
case SymbolKind.Namespace:
return null; // TODO : extend rename on namespaces
case SymbolKind.Variable:
return SD.ProjectService.FindProjectContainingFile(new FileName(((IVariable)symbol).Region.FileName));
case SymbolKind.Parameter:
return ((IParameter)symbol).Owner.ParentAssembly.GetProject();
case SymbolKind.TypeParameter:
return null; // TODO : extend rename on type parameters
default:
throw new ArgumentOutOfRangeException();
}
}
bool CheckName(string name, ILanguageBinding language)
{
if (string.IsNullOrEmpty(name))

2
src/Main/Base/Project/Src/Editor/Commands/GoToDefinition.cs

@ -31,7 +31,7 @@ namespace ICSharpCode.SharpDevelop.Editor.Commands @@ -31,7 +31,7 @@ namespace ICSharpCode.SharpDevelop.Editor.Commands
DomRegion pos = symbol.GetDefinitionRegion();
if (string.IsNullOrEmpty(pos.FileName)) {
IEntity entity = GetEntity(symbol);
IEntity entity = GetSymbol(symbol) as IEntity;
if (entity != null) {
NavigationService.NavigateTo(entity);
}

9
src/Main/Base/Project/Src/Editor/Commands/SymbolUnderCaretMenuCommand.cs

@ -52,9 +52,9 @@ namespace ICSharpCode.SharpDevelop.Editor.Commands @@ -52,9 +52,9 @@ namespace ICSharpCode.SharpDevelop.Editor.Commands
return GetResolveResult(null, owner);
}
public static IEntity GetEntity(object owner)
public static ISymbol GetSymbol(object owner)
{
return GetEntity(GetResolveResult(null, owner));
return GetSymbol(GetResolveResult(null, owner));
}
static ResolveResult GetResolveResult(ITextEditor currentEditor, object owner)
@ -80,7 +80,7 @@ namespace ICSharpCode.SharpDevelop.Editor.Commands @@ -80,7 +80,7 @@ namespace ICSharpCode.SharpDevelop.Editor.Commands
return ErrorResolveResult.UnknownError;
}
protected static IEntity GetEntity(ResolveResult symbol)
protected static ISymbol GetSymbol(ResolveResult symbol)
{
TypeResolveResult trr = symbol as TypeResolveResult;
if (trr != null)
@ -88,6 +88,9 @@ namespace ICSharpCode.SharpDevelop.Editor.Commands @@ -88,6 +88,9 @@ namespace ICSharpCode.SharpDevelop.Editor.Commands
MemberResolveResult mrr = symbol as MemberResolveResult;
if (mrr != null)
return mrr.Member.MemberDefinition;
LocalResolveResult lrr = symbol as LocalResolveResult;
if (lrr != null)
return lrr.Variable;
return null;
}
}

3
src/Main/SharpDevelop/Dom/ClassBrowser/Commands.cs

@ -6,6 +6,7 @@ using System.Diagnostics; @@ -6,6 +6,7 @@ using System.Diagnostics;
using System.IO;
using System.Linq;
using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.SharpDevelop.Debugging;
using ICSharpCode.SharpDevelop.Editor.Commands;
using Microsoft.Win32;
@ -141,7 +142,7 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser @@ -141,7 +142,7 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
public override void Run(ResolveResult symbol)
{
var classBrowser = SD.GetService<IClassBrowser>();
var entity = GetEntity(symbol);
var entity = GetSymbol(symbol) as IEntity;
if ((classBrowser != null) && (entity != null)) {
classBrowser.GoToEntity(entity);
}

Loading…
Cancel
Save