static IField GetBackingStoreField(MonoDevelop.Refactoring.RefactoringOptions options, string backingStoreName, out int backinStoreStart, out int backinStoreEnd) { TextEditorData data = options.GetTextEditorData(); MemberResolveResult resolveResult = options.ResolveResult as MemberResolveResult; IProperty property = resolveResult.ResolvedMember as IProperty; List <IMember> members = property.DeclaringType.SearchMember(backingStoreName, true); IMember backingStore = null; backinStoreStart = 0; backinStoreEnd = 0; foreach (IMember member in members) { if (member.MemberType == MemberType.Field) { DocumentLocation location = member.Location.ToDocumentLocation(data.Document); LineSegment line = data.Document.GetLine(location.Line); backinStoreStart = line.Offset; backinStoreEnd = line.Offset + line.EditableLength; backingStore = member; break; } } return(backingStore as IField); }
string RetrieveBackingStore(MonoDevelop.Refactoring.RefactoringOptions options, MonoDevelop.Refactoring.INRefactoryASTProvider astProvider, MonoDevelop.Projects.Dom.IProperty property) { ICSharpCode.NRefactory.Ast.CompilationUnit compilationUnit = astProvider.ParseFile(options.Document.TextEditor.Text); PropertyVisitor visitor = new PropertyVisitor(property); compilationUnit.AcceptVisitor(visitor, null); return(visitor.BackingStoreName); }
ICSharpCode.NRefactory.Ast.INode GetMemberBodyNode(MonoDevelop.Refactoring.RefactoringOptions options) { IMember member = ((LocalVariable)options.SelectedItem).DeclaringMember; if (member == null) { return(null); } int start = options.Document.Editor.Document.LocationToOffset(member.BodyRegion.Start.Line, member.BodyRegion.Start.Column); int end = options.Document.Editor.Document.LocationToOffset(member.BodyRegion.End.Line, member.BodyRegion.End.Column); string memberBody = options.Document.Editor.GetTextBetween(start, end); INRefactoryASTProvider provider = options.GetASTProvider(); if (provider == null) { // Console.WriteLine("!!!Provider not found!"); return(null); } return(provider.ParseText(memberBody)); }
public void Run(MonoDevelop.Refactoring.RefactoringOptions options) { }