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));
        }
Пример #4
0
 public void Run(MonoDevelop.Refactoring.RefactoringOptions options)
 {
 }