public MemberReferenceCollection FindVariableReferences(IProgressMonitor monitor, LocalVariable var) { MemberReferenceCollection refs = new MemberReferenceCollection(); Refactor(monitor, var, new RefactorDelegate(new RefactorFindVariableReferences(var, refs).Refactor)); return(refs); }
public RefactorFindMemberReferences(IType cls, IMember member, MemberReferenceCollection references, bool includeXmlComment) { this.cls = cls; this.references = references; this.member = member; this.includeXmlComment = includeXmlComment; }
public MemberReferenceCollection FindParameterReferences(IProgressMonitor monitor, IParameter param, bool includeXmlComment) { MemberReferenceCollection refs = new MemberReferenceCollection(); Refactor(monitor, param, new RefactorDelegate(new RefactorFindParameterReferences(param, refs, includeXmlComment).Refactor)); return(refs); }
public IType RenameClass(IProgressMonitor monitor, IType cls, string newName, RefactoryScope scope) { try { MemberReferenceCollection refs = new MemberReferenceCollection(); Refactor(monitor, cls, scope, new RefactorDelegate(new RefactorFindClassReferences(cls, refs, false).Refactor)); refs.RenameAll(newName); RefactorerContext gctx = GetGeneratorContext(cls); IRefactorer r = GetGeneratorForClass(cls); foreach (IMethod method in cls.Methods) { if (method.IsConstructor) { r.RenameMember(gctx, cls, (IMember)method, newName); } } cls = r.RenameClass(gctx, cls, newName); gctx.Save(); return(cls); } catch (Exception e) { LoggingService.LogError(GettextCatalog.GetString("Error while renaming {0} to {1}: {2}", cls, newName, e.ToString())); return(null); } }
public MemberReferenceCollection FindMemberReferences(IProgressMonitor monitor, IType cls, IMember member, RefactoryScope scope, bool includeXmlComment) { MemberReferenceCollection refs = new MemberReferenceCollection(); Refactor(monitor, cls, scope, new RefactorDelegate(new RefactorFindMemberReferences(cls, member, refs, includeXmlComment).Refactor)); return(refs); }
public IMember EncapsulateField(IProgressMonitor monitor, IType cls, IField field, string propName, MemberAttributes attr, bool generateSetter, bool updateInternalRefs) { RefactoryScope scope = GetScope(field); MemberReferenceCollection refs = new MemberReferenceCollection(); Refactor(monitor, cls, scope, new RefactorDelegate(new RefactorFindMemberReferences(cls, field, refs, false).Refactor)); if (!updateInternalRefs) { ArrayList list = new ArrayList(); list.AddRange(refs); list.Sort(new MemberReferenceCollection.MemberComparer()); foreach (MemberReference mref in list) { bool rename = true; foreach (IType part in field.DeclaringType.Parts) { if (mref.FileName == part.CompilationUnit.FileName) { DomRegion region = part.BodyRegion; // check if the reference is internal to the class if ((mref.Line > region.Start.Line || (mref.Line == region.Start.Line && mref.Column >= region.Start.Column)) && (mref.Line < region.End.Line || (mref.Line == region.End.Line && mref.Column <= region.End.Column))) { // Internal to the class, don't rename rename = false; break; } } } if (rename) { mref.Rename(propName); } } } else { refs.RenameAll(propName); } RefactorerContext gctx = GetGeneratorContext(cls); IRefactorer r = GetGeneratorForClass(cls); IMember m = r.EncapsulateField(gctx, cls, field, propName, attr, generateSetter); gctx.Save(); return(m); }
public bool RenameVariable(IProgressMonitor monitor, LocalVariable var, string newName) { try { MemberReferenceCollection refs = new MemberReferenceCollection(); Refactor(monitor, var, new RefactorDelegate(new RefactorFindVariableReferences(var, refs).Refactor)); refs.RenameAll(newName); RefactorerContext gctx = GetGeneratorContext(var); IRefactorer r = GetGeneratorForVariable(var); bool rv = r.RenameVariable(gctx, var, newName); gctx.Save(); return(rv); } catch (Exception e) { LoggingService.LogError(GettextCatalog.GetString("Error while renaming {0} to {1}: {2}", var, newName, e.ToString())); return(false); } }
IMember InnerRenameMember(IProgressMonitor monitor, IType cls, IMember member, string newName, RefactoryScope scope) { try { MemberReferenceCollection refs = new MemberReferenceCollection(); Refactor(monitor, cls, scope, new RefactorDelegate(new RefactorFindMemberReferences(cls, member, refs, false).Refactor)); refs.RenameAll(newName); RefactorerContext gctx = GetGeneratorContext(cls); IRefactorer gen = GetGeneratorForClass(cls); IMember m = gen.RenameMember(gctx, cls, member, newName); gctx.Save(); return(m); } catch (Exception e) { LoggingService.LogError(GettextCatalog.GetString("Error while renaming {0} to {1}: {2}", member, newName, e.ToString())); return(null); } }
public bool RenameParameter(IProgressMonitor monitor, IParameter param, string newName) { try { MemberReferenceCollection refs = new MemberReferenceCollection(); Refactor(monitor, param, new RefactorDelegate(new RefactorFindParameterReferences(param, refs, false).Refactor)); refs.RenameAll(newName); IMember member = param.DeclaringMember; RefactorerContext gctx = GetGeneratorContext(member.DeclaringType); IRefactorer r = GetGeneratorForClass(member.DeclaringType); bool rv = r.RenameParameter(gctx, param, newName); gctx.Save(); return(rv); } catch (Exception e) { LoggingService.LogError(GettextCatalog.GetString("Error while renaming {0} to {1}: {2}", param, newName, e.ToString())); return(false); } }
public RefactorFindVariableReferences (LocalVariable var, MemberReferenceCollection references) { this.references = references; this.var = var; }
public RefactorFindMemberReferences (IType cls, IMember member, MemberReferenceCollection references, bool includeXmlComment) { this.cls = cls; this.references = references; this.member = member; this.includeXmlComment = includeXmlComment; }
public MemberReferenceCollection FindMemberReferences (IProgressMonitor monitor, IType cls, IMember member, RefactoryScope scope, bool includeXmlComment) { MemberReferenceCollection refs = new MemberReferenceCollection (); Refactor (monitor, cls, scope, new RefactorDelegate (new RefactorFindMemberReferences (cls, member, refs, includeXmlComment).Refactor)); return refs; }
IMember InnerRenameMember (IProgressMonitor monitor, IType cls, IMember member, string newName, RefactoryScope scope) { try { MemberReferenceCollection refs = new MemberReferenceCollection (); Refactor (monitor, cls, scope, new RefactorDelegate (new RefactorFindMemberReferences (cls, member, refs, false).Refactor)); refs.RenameAll (newName); RefactorerContext gctx = GetGeneratorContext (cls); IRefactorer gen = GetGeneratorForClass (cls); IMember m = gen.RenameMember (gctx, cls, member, newName); gctx.Save (); return m; } catch (Exception e) { LoggingService.LogError (GettextCatalog.GetString ("Error while renaming {0} to {1}: {2}", member, newName, e.ToString ())); return null; } }
public MemberReferenceCollection FindParameterReferences (IProgressMonitor monitor, IParameter param, bool includeXmlComment) { MemberReferenceCollection refs = new MemberReferenceCollection (); Refactor (monitor, param, new RefactorDelegate (new RefactorFindParameterReferences (param, refs, includeXmlComment).Refactor)); return refs; }
public MemberReferenceCollection FindVariableReferences (IProgressMonitor monitor, LocalVariable var) { MemberReferenceCollection refs = new MemberReferenceCollection (); Refactor (monitor, var, new RefactorDelegate (new RefactorFindVariableReferences (var, refs).Refactor)); return refs; }
public IType RenameClass (IProgressMonitor monitor, IType cls, string newName, RefactoryScope scope) { try { MemberReferenceCollection refs = new MemberReferenceCollection (); Refactor (monitor, cls, scope, new RefactorDelegate (new RefactorFindClassReferences (cls, refs, false).Refactor)); refs.RenameAll (newName); RefactorerContext gctx = GetGeneratorContext (cls); IRefactorer r = GetGeneratorForClass (cls); foreach (IMethod method in cls.Methods) { if (method.IsConstructor) r.RenameMember (gctx, cls, (IMember) method, newName); } cls = r.RenameClass (gctx, cls, newName); gctx.Save (); return cls; } catch (Exception e) { LoggingService.LogError (GettextCatalog.GetString ("Error while renaming {0} to {1}: {2}", cls, newName, e.ToString ())); return null; } }
public IMember EncapsulateField (IProgressMonitor monitor, IType cls, IField field, string propName, MemberAttributes attr, bool generateSetter, bool updateInternalRefs) { RefactoryScope scope = GetScope (field); MemberReferenceCollection refs = new MemberReferenceCollection (); Refactor (monitor, cls, scope, new RefactorDelegate (new RefactorFindMemberReferences (cls, field, refs, false).Refactor)); if (!updateInternalRefs) { ArrayList list = new ArrayList (); list.AddRange (refs); list.Sort (new MemberReferenceCollection.MemberComparer ()); foreach (MemberReference mref in list) { bool rename = true; foreach (IType part in field.DeclaringType.Parts) { if (mref.FileName == part.CompilationUnit.FileName) { DomRegion region = part.BodyRegion; // check if the reference is internal to the class if ((mref.Line > region.Start.Line || (mref.Line == region.Start.Line && mref.Column >= region.Start.Column)) && (mref.Line < region.End.Line || (mref.Line == region.End.Line && mref.Column <= region.End.Column))) { // Internal to the class, don't rename rename = false; break; } } } if (rename) mref.Rename (propName); } } else { refs.RenameAll (propName); } RefactorerContext gctx = GetGeneratorContext (cls); IRefactorer r = GetGeneratorForClass (cls); IMember m = r.EncapsulateField (gctx, cls, field, propName, attr, generateSetter); gctx.Save (); return m; }
public bool RenameParameter (IProgressMonitor monitor, IParameter param, string newName) { try { MemberReferenceCollection refs = new MemberReferenceCollection (); Refactor (monitor, param, new RefactorDelegate (new RefactorFindParameterReferences (param, refs, false).Refactor)); refs.RenameAll (newName); IMember member = param.DeclaringMember; RefactorerContext gctx = GetGeneratorContext (member.DeclaringType); IRefactorer r = GetGeneratorForClass (member.DeclaringType); bool rv = r.RenameParameter (gctx, param, newName); gctx.Save (); return rv; } catch (Exception e) { LoggingService.LogError (GettextCatalog.GetString ("Error while renaming {0} to {1}: {2}", param, newName, e.ToString ())); return false; } }
public RefactorFindParameterReferences (IParameter param, MemberReferenceCollection references, bool includeXmlComment) { this.references = references; this.param = param; this.includeXmlComment = includeXmlComment; }
MemberReferenceCollection GetReferences (RefactoringOptions options) { CodeRefactorer refactorer = IdeApp.Workspace.GetCodeRefactorer (IdeApp.ProjectOperations.CurrentSelectedSolution); IProgressMonitor monitor = IdeApp.Workbench.ProgressMonitors.GetBackgroundProgressMonitor (this.Name, null); if (options.SelectedItem is IType) { IType cls = (IType)options.SelectedItem; return refactorer.FindClassReferences (monitor, cls, RefactoryScope.Solution, true); } else if (options.SelectedItem is LocalVariable) { return refactorer.FindVariableReferences (monitor, (LocalVariable)options.SelectedItem); } else if (options.SelectedItem is IParameter) { return refactorer.FindParameterReferences (monitor, (IParameter)options.SelectedItem, true); } else if (options.SelectedItem is IMember) { IMember member = (IMember)options.SelectedItem; Dictionary<string, HashSet<DomLocation>> foundLocations = new Dictionary <string, HashSet<DomLocation>> (); MemberReferenceCollection result = new MemberReferenceCollection (); foreach (IMember m in CollectMembers (member.DeclaringType.SourceProjectDom, member)) { foreach (MemberReference r in refactorer.FindMemberReferences (monitor, m.DeclaringType, m, true)) { DomLocation location = new DomLocation (r.Line, r.Column); if (!foundLocations.ContainsKey (r.FileName)) foundLocations[r.FileName] = new HashSet<DomLocation> (); if (foundLocations[r.FileName].Contains (location)) continue; foundLocations[r.FileName].Add (location); result.Add (r); } } return result; } return null; }
public RefactorFindVariableReferences(LocalVariable var, MemberReferenceCollection references) { this.references = references; this.var = var; }
public RefactorFindParameterReferences(IParameter param, MemberReferenceCollection references, bool includeXmlComment) { this.references = references; this.param = param; this.includeXmlComment = includeXmlComment; }
void FindReferencesThread () { try { CodeRefactorer refactorer = IdeApp.Workspace.GetCodeRefactorer (IdeApp.ProjectOperations.CurrentSelectedSolution); if (item is IType) { references = refactorer.FindClassReferences (monitor, (IType)item, RefactoryScope.Solution, true); } else if (item is LocalVariable) { references = refactorer.FindVariableReferences (monitor, (LocalVariable)item); } else if (item is IParameter) { references = refactorer.FindParameterReferences (monitor, (IParameter)item, true); } else if (item is IMember) { IMember member = (IMember)item; /* references = new MemberReferenceCollection (); foreach (IMember m in MonoDevelop.Refactoring.Rename.RenameRefactoring.CollectMembers (member.DeclaringType.SourceProjectDom, member)) { foreach (MemberReference r in refactorer.FindMemberReferences (monitor, m.DeclaringType, m, true)) { references.Add (r); } }*/ references = refactorer.FindMemberReferences (monitor, member.DeclaringType, member, true); } if (references != null) { foreach (MemberReference mref in references) { monitor.ReportResult (new MonoDevelop.Ide.FindInFiles.SearchResult (new FileProvider (mref.FileName), mref.Position, mref.Name.Length)); } } } catch (Exception ex) { if (monitor != null) monitor.ReportError ("Error finding references", ex); else LoggingService.LogError ("Error finding references", ex); } finally { if (monitor != null) monitor.Dispose (); } }
public bool RenameVariable (IProgressMonitor monitor, LocalVariable var, string newName) { try { MemberReferenceCollection refs = new MemberReferenceCollection (); Refactor (monitor, var, new RefactorDelegate (new RefactorFindVariableReferences (var, refs).Refactor)); refs.RenameAll (newName); RefactorerContext gctx = GetGeneratorContext (var); IRefactorer r = GetGeneratorForVariable (var); bool rv = r.RenameVariable (gctx, var, newName); gctx.Save (); return rv; } catch (Exception e) { LoggingService.LogError (GettextCatalog.GetString ("Error while renaming {0} to {1}: {2}", var, newName, e.ToString ())); return false; } }