public void TestInsertTabLine ()
		{
			TextEditorData data = new Mono.TextEditor.TextEditorData  ();
			data.Document.Text = 
@"123456789
123[456789
123d456789
123]456789
123456789
123456789";
			SetSelection (data, false);
			
			MiscActions.InsertTab (data);
/*			ISegment currentSelection = GetSelection (data, false);
			
			Assert.AreEqual (currentSelection.Offset, data.SelectionRange.Offset);
			Assert.AreEqual (currentSelection.EndOffset, data.SelectionRange.EndOffset);
			Assert.AreEqual (currentSelection.EndOffset, data.Caret.Offset);*/
			
			Assert.IsTrue (data.Document.GetLine(1).Length > data.Document.GetLine(0).Length);
			Assert.IsTrue (data.Document.GetLine(2).Length > data.Document.GetLine(0).Length);
			Assert.IsTrue (data.Document.GetLine(3).Length > data.Document.GetLine(0).Length);
			Assert.AreEqual (data.Document.GetLine(0).Length, data.Document.GetLine(4).Length);
			Assert.AreEqual (data.Document.GetLine(1).Length, data.Document.GetLine(2).Length);
			Assert.AreEqual (data.Document.GetLine(1).Length, data.Document.GetLine(3).Length);
		}
Esempio n. 2
0
        public ParameterDataProvider(int startOffset, Document document, ProjectInformation info, string functionName) : base(startOffset)
        {
            this.editor = document.Editor;

            foreach (Function f in info.Functions)
            {
                if (f.Name == functionName)
                {
                    functions.Add(f);
                }
            }

            string currentFile = document.FileName;

            if (info.IncludedFiles.ContainsKey(currentFile))
            {
                foreach (CBinding.Parser.FileInformation fi in info.IncludedFiles[currentFile])
                {
                    foreach (Function f in fi.Functions)
                    {
                        if (f.Name == functionName)
                        {
                            functions.Add(f);
                        }
                    }
                }
            }
        }
Esempio n. 3
0
        public void TestInsertTabLine()
        {
            TextEditorData data = new Mono.TextEditor.TextEditorData();

            data.Document.Text =
                @"123456789
123[456789
123d456789
123]456789
123456789
123456789";
            SetSelection(data, false);

            MiscActions.InsertTab(data);

/*			ISegment currentSelection = GetSelection (data, false);
 *
 *                      Assert.AreEqual (currentSelection.Offset, data.SelectionRange.Offset);
 *                      Assert.AreEqual (currentSelection.EndOffset, data.SelectionRange.EndOffset);
 *                      Assert.AreEqual (currentSelection.EndOffset, data.Caret.Offset);*/

            Assert.IsTrue(data.Document.GetLine(1).Length > data.Document.GetLine(0).Length);
            Assert.IsTrue(data.Document.GetLine(2).Length > data.Document.GetLine(0).Length);
            Assert.IsTrue(data.Document.GetLine(3).Length > data.Document.GetLine(0).Length);
            Assert.AreEqual(data.Document.GetLine(0).Length, data.Document.GetLine(4).Length);
            Assert.AreEqual(data.Document.GetLine(1).Length, data.Document.GetLine(2).Length);
            Assert.AreEqual(data.Document.GetLine(1).Length, data.Document.GetLine(3).Length);
        }
Esempio n. 4
0
        public void TestRemoveTabReverse()
        {
            TextEditorData data = new Mono.TextEditor.TextEditorData();

            data.Document.Text =
                @"\t123456789
\t123[456789
\t123d456789
\t123]456789
\t123456789
\t123456789";
            InsertTabTests.SetSelection(data, true);

            MiscActions.RemoveTab(data);

/*			ISegment currentSelection = InsertTabTests.GetSelection (data, true);
 *
 *                      Assert.AreEqual (currentSelection.Offset, data.SelectionRange.Offset);
 *                      Assert.AreEqual (currentSelection.EndOffset, data.SelectionRange.EndOffset);
 *                      Assert.AreEqual (currentSelection.Offset, data.Caret.Offset);
 *                      Assert.AreEqual (currentSelection.EndOffset, data.SelectionAnchor);*/

            Assert.IsTrue(data.Document.GetLine(0).Length < data.Document.GetLine(1).Length);
            Assert.IsTrue(data.Document.GetLine(0).Length < data.Document.GetLine(2).Length);
            Assert.IsTrue(data.Document.GetLine(0).Length < data.Document.GetLine(3).Length);

            Assert.AreEqual(data.Document.GetLine(0).Length, data.Document.GetLine(4).Length);

            Assert.AreEqual(data.Document.GetLine(1).Length, data.Document.GetLine(2).Length);
            Assert.AreEqual(data.Document.GetLine(1).Length, data.Document.GetLine(3).Length);
        }
Esempio n. 5
0
		public void TestRemoveTabReverse ()
		{
			TextEditorData data = new Mono.TextEditor.TextEditorData  ();
			data.Document.Text = 
@"\t123456789
\t123[456789
\t123d456789
\t123]456789
\t123456789
\t123456789";
			InsertTabTests.SetSelection (data, true);
			
			MiscActions.RemoveTab (data);
/*			ISegment currentSelection = InsertTabTests.GetSelection (data, true);
			
			Assert.AreEqual (currentSelection.Offset, data.SelectionRange.Offset);
			Assert.AreEqual (currentSelection.EndOffset, data.SelectionRange.EndOffset);
			Assert.AreEqual (currentSelection.Offset, data.Caret.Offset);
			Assert.AreEqual (currentSelection.EndOffset, data.SelectionAnchor);*/
			
			Assert.IsTrue (data.Document.GetLine (DocumentLocation.MinLine + 0).Length < data.Document.GetLine (DocumentLocation.MinLine + 1).Length);
			Assert.IsTrue (data.Document.GetLine (DocumentLocation.MinLine + 0).Length < data.Document.GetLine (DocumentLocation.MinLine + 2).Length);
			Assert.IsTrue (data.Document.GetLine (DocumentLocation.MinLine + 0).Length < data.Document.GetLine (DocumentLocation.MinLine + 3).Length);
			
			Assert.AreEqual (data.Document.GetLine (DocumentLocation.MinLine + 0).Length, data.Document.GetLine (DocumentLocation.MinLine + 4).Length);
			
			Assert.AreEqual (data.Document.GetLine (DocumentLocation.MinLine + 1).Length, data.Document.GetLine (DocumentLocation.MinLine + 2).Length);
			Assert.AreEqual (data.Document.GetLine (DocumentLocation.MinLine + 1).Length, data.Document.GetLine (DocumentLocation.MinLine + 3).Length);
		}
        public void TestSearchForward()
        {
            TextEditorData data = new Mono.TextEditor.TextEditorData();

            data.Document.Text = @"ababab";
            data.SearchEngine.SearchRequest.SearchPattern = "ab";
            SearchResult result = data.SearchForward(0);

            Assert.AreEqual(0, result.Offset);
            Assert.AreEqual(2, result.EndOffset);
            Assert.IsFalse(result.SearchWrapped);

            result = data.SearchForward(1);
            Assert.AreEqual(2, result.Offset);
            Assert.AreEqual(4, result.EndOffset);
            Assert.IsFalse(result.SearchWrapped);

            result = data.SearchForward(4);
            Assert.AreEqual(4, result.Offset);
            Assert.AreEqual(6, result.EndOffset);
            Assert.IsFalse(result.SearchWrapped);

            result = data.SearchForward(5);
            Assert.AreEqual(0, result.Offset);
            Assert.AreEqual(2, result.EndOffset);
            Assert.IsTrue(result.SearchWrapped);
        }
Esempio n. 7
0
        public void TestInsertTabLineCase3Reverse()
        {
            TextEditorData data = new Mono.TextEditor.TextEditorData();

            data.Document.Text =
                @"123d456789
123[456789
123d456789
]123456789
123456789
123456789";
            SetSelection(data, true);

            MiscActions.InsertTab(data);

/*			ISegment currentSelection = GetSelection (data, true);
 *
 *                      Assert.AreEqual (currentSelection.Offset, data.SelectionRange.Offset);
 *                      Assert.AreEqual (currentSelection.EndOffset, data.SelectionRange.EndOffset);
 *                      Assert.AreEqual (currentSelection.Offset, data.Caret.Offset);*/

            Assert.IsTrue(data.Document.GetLine(DocumentLocation.MinLine + 1).Length > data.Document.GetLine(DocumentLocation.MinLine + 0).Length);
            Assert.IsTrue(data.Document.GetLine(DocumentLocation.MinLine + 2).Length > data.Document.GetLine(DocumentLocation.MinLine + 0).Length);

            Assert.AreEqual(data.Document.GetLine(DocumentLocation.MinLine + 0).Length, data.Document.GetLine(DocumentLocation.MinLine + 3).Length);
            Assert.AreEqual(data.Document.GetLine(DocumentLocation.MinLine + 1).Length, data.Document.GetLine(DocumentLocation.MinLine + 2).Length);
        }
Esempio n. 8
0
        public void TestRemoveTabCase2()
        {
            TextEditorData data = new Mono.TextEditor.TextEditorData();

            data.Document.Text =
                @"\t123456789
[\t123456789
\t123d456789
\t123]456789
\t123456789
\t123456789";
            InsertTabTests.SetSelection(data, false);

            MiscActions.RemoveTab(data);

/*			ISegment currentSelection = InsertTabTests.GetSelection (data, false);
 *
 *                      Assert.AreEqual (currentSelection.Offset, data.SelectionRange.Offset);
 *                      Assert.AreEqual (currentSelection.EndOffset, data.SelectionRange.EndOffset);
 *                      Assert.AreEqual (currentSelection.EndOffset, data.Caret.Offset);
 *                      Assert.AreEqual (currentSelection.Offset, data.SelectionAnchor);
 *                      Assert.AreEqual (currentSelection.Offset, data.Document.GetLine (DocumentLocation.MinLine + 1).Offset);*/

            Assert.IsTrue(data.Document.GetLine(DocumentLocation.MinLine + 0).Length < data.Document.GetLine(DocumentLocation.MinLine + 1).Length);
            Assert.IsTrue(data.Document.GetLine(DocumentLocation.MinLine + 0).Length < data.Document.GetLine(DocumentLocation.MinLine + 2).Length);
            Assert.IsTrue(data.Document.GetLine(DocumentLocation.MinLine + 0).Length < data.Document.GetLine(DocumentLocation.MinLine + 3).Length);

            Assert.AreEqual(data.Document.GetLine(DocumentLocation.MinLine + 0).Length, data.Document.GetLine(DocumentLocation.MinLine + 4).Length);

            Assert.AreEqual(data.Document.GetLine(DocumentLocation.MinLine + 1).Length, data.Document.GetLine(DocumentLocation.MinLine + 2).Length);
            Assert.AreEqual(data.Document.GetLine(DocumentLocation.MinLine + 1).Length, data.Document.GetLine(DocumentLocation.MinLine + 3).Length);
        }
        public void TestFindPrev()
        {
            TextEditorData data = new Mono.TextEditor.TextEditorData();

            data.Document.Text = @"ababab";
            data.SearchEngine.SearchRequest.SearchPattern = "ab";

            data.Caret.Offset = 0;
            SearchResult result = data.FindPrevious(true);

            Assert.AreEqual(4, result.Offset);
            Assert.AreEqual(6, result.EndOffset);
            Assert.IsTrue(result.SearchWrapped);
            Assert.AreEqual(result.Offset, data.SelectionRange.Offset);
            Assert.AreEqual(result.Length, data.SelectionRange.Length);
            Assert.AreEqual(result.EndOffset, data.Caret.Offset);

            result = data.FindPrevious(true);
            Assert.AreEqual(2, result.Offset);
            Assert.AreEqual(4, result.EndOffset);
            Assert.IsFalse(result.SearchWrapped);
            Assert.AreEqual(result.Offset, data.SelectionRange.Offset);
            Assert.AreEqual(result.Length, data.SelectionRange.Length);
            Assert.AreEqual(result.EndOffset, data.Caret.Offset);

            result = data.FindPrevious(true);
            Assert.AreEqual(0, result.Offset);
            Assert.AreEqual(2, result.EndOffset);
            Assert.IsFalse(result.SearchWrapped);
            Assert.AreEqual(result.Offset, data.SelectionRange.Offset);
            Assert.AreEqual(result.Length, data.SelectionRange.Length);
            Assert.AreEqual(result.EndOffset, data.Caret.Offset);
        }
		public void TestSearchForward ()
		{
			TextEditorData data = new Mono.TextEditor.TextEditorData  ();
			data.Document.Text = @"ababab";
			data.SearchEngine.SearchRequest.SearchPattern = "ab";
			SearchResult result = data.SearchForward (0);
			Assert.AreEqual (0, result.Offset);
			Assert.AreEqual (2, result.EndOffset);
			Assert.IsFalse (result.SearchWrapped);
			
			result = data.SearchForward (1);
			Assert.AreEqual (2, result.Offset);
			Assert.AreEqual (4, result.EndOffset);
			Assert.IsFalse (result.SearchWrapped);
			
			result = data.SearchForward (4);
			Assert.AreEqual (4, result.Offset);
			Assert.AreEqual (6, result.EndOffset);
			Assert.IsFalse (result.SearchWrapped);
			
			result = data.SearchForward (5);
			Assert.AreEqual (0, result.Offset);
			Assert.AreEqual (2, result.EndOffset);
			Assert.IsTrue (result.SearchWrapped);
		}
Esempio n. 11
0
        public override List <Change> PerformChanges(RefactoringOptions options, object properties)
        {
            List <Change> result = new List <Change> ();

            ICSharpCode.NRefactory.CSharp.CompilationUnit unit = options.GetASTProvider().ParseFile(options.Document.Editor.Text);
            FindTypeReferencesVisitor visitor = new FindTypeReferencesVisitor(options.GetTextEditorData(), options.GetResolver());

            visitor.VisitCompilationUnit(unit, null);

            ProjectDom dom = options.Dom;

            ICompilationUnit compilationUnit = options.ParseDocument().CompilationUnit;
            HashSet <string> usedUsings      = new HashSet <string> ();

            foreach (var r in visitor.PossibleTypeReferences)
            {
                if (r is PrimitiveType)
                {
                    continue;
                }
                IType type = dom.SearchType(compilationUnit, options.ResolveResult != null ? options.ResolveResult.CallingType : null, new DomLocation(options.Document.Editor.Caret.Line, options.Document.Editor.Caret.Column), r.ConvertToReturnType());
                if (type != null)
                {
                    usedUsings.Add(type.Namespace);
                }
            }

            Mono.TextEditor.TextEditorData textEditorData = options.GetTextEditorData();
            HashSet <string> currentUsings = new HashSet <string> ();

            foreach (IUsing u in compilationUnit.Usings)
            {
                if (u.IsFromNamespace)
                {
                    continue;
                }
                if (!u.Aliases.Any() && u.Namespaces.All(name => currentUsings.Contains(name) || !usedUsings.Contains(name)))
                {
                    TextReplaceChange change = new TextReplaceChange();
                    change.FileName     = options.Document.FileName;
                    change.Offset       = textEditorData.Document.LocationToOffset(u.Region.Start.Line, u.Region.Start.Column);
                    change.RemovedChars = textEditorData.Document.LocationToOffset(u.Region.End.Line, u.Region.End.Column) - change.Offset;
                    Mono.TextEditor.LineSegment line = textEditorData.Document.GetLineByOffset(change.Offset);
                    if (line != null && line.EditableLength == change.RemovedChars)
                    {
                        change.RemovedChars += line.DelimiterLength;
                    }
                    result.Add(change);
                }
                foreach (string nspace in u.Namespaces)
                {
                    currentUsings.Add(nspace);
                }
            }

            return(result);
        }
Esempio n. 12
0
		public void TestBug1700 ()
		{
			TextEditorData data = new Mono.TextEditor.TextEditorData ();
			data.Document.Text = "123\n123\n123";
			data.MainSelection = new Selection (1, 2, 3, 2, SelectionMode.Block);
			MiscActions.InsertTab (data);
			
			Assert.AreEqual ("1\t23\n1\t23\n1\t23", data.Document.Text);
		}
Esempio n. 13
0
        void OnClosed(object s, EventArgs a)
        {
            isClosed = true;
//			TypeSystemService.DomRegistered -= UpdateRegisteredDom;
            CancelParseTimeout();
            ClearTasks();

            lock (TypeSystemService.FilesSkippedInParseThread) {
                TypeSystemService.FilesSkippedInParseThread.Remove(FileName);
            }
            if (window is SdiWorkspaceWindow)
            {
                ((SdiWorkspaceWindow)window).DetachFromPathedDocument();
            }
            window.Closed -= OnClosed;
            window.ActiveViewContentChanged -= OnActiveViewContentChanged;
            if (IdeApp.Workspace != null)
            {
                IdeApp.Workspace.ItemRemovedFromSolution -= OnEntryRemoved;
            }

            try {
                OnClosed(a);
            } catch (Exception ex) {
                LoggingService.LogError("Exception while calling OnClosed.", ex);
            }

            while (editorExtension != null)
            {
                try {
                    editorExtension.Dispose();
                } catch (Exception ex) {
                    LoggingService.LogError("Exception while disposing extension:" + editorExtension, ex);
                }
                editorExtension = editorExtension.Next as TextEditorExtension;
            }
            editorExtension = null;

            // Parse the file when the document is closed. In this way if the document
            // is closed without saving the changes, the saved compilation unit
            // information will be restored

/*			if (currentParseFile != null) {
 *                              TypeSystemService.QueueParseJob (dom, delegate (string name, IProgressMonitor monitor) {
 *                                      TypeSystemService.Parse (curentParseProject, currentParseFile);
 *                              }, FileName);
 *                      }
 *                      if (isFileDom) {
 *                              TypeSystemService.RemoveFileDom (FileName);
 *                              dom = null;
 *                      }*/

            parsedDocument = null;
            data           = null;
            Counters.OpenDocuments--;
        }
Esempio n. 14
0
        public void TestBug1700()
        {
            TextEditorData data = new Mono.TextEditor.TextEditorData();

            data.Document.Text = "123\n123\n123";
            data.MainSelection = new Selection(1, 2, 3, 2, SelectionMode.Block);
            MiscActions.InsertTab(data);

            Assert.AreEqual("1\t23\n1\t23\n1\t23", data.Document.Text);
        }
Esempio n. 15
0
        public void TestVSTS801783()
        {
            TextEditorData data = new Mono.TextEditor.TextEditorData();

            data.IndentationTracker = new SmartIndentModeTests.TestIndentTracker("   ");
            data.Document.Text      = "HelloWorld!";
            data.Caret.Location     = new DocumentLocation(1, "Hello".Length);
            MiscActions.InsertNewLine(data);
            Assert.AreEqual(4, data.Caret.Column);
        }
Esempio n. 16
0
		public void TestBug613770 ()
		{
			TextEditorData data = new Mono.TextEditor.TextEditorData  ();
			data.Document.Text = "\n\n\n";
			data.Caret.Offset = 1; // 2nd.Line
			data.Caret.AllowCaretBehindLineEnd = true;
			data.Caret.Column = DocumentLocation.MinColumn + 4;
			DeleteActions.Backspace (data);
			
			Assert.AreEqual ("\n\n\n", data.Document.Text);
		}
		public override void Initialize ()
		{
			base.Initialize ();
			dom = Document.Dom;
			textEditorData = Document.TextEditorData;
			
			InitTracker ();
			IEnumerable<string> types = MonoDevelop.Ide.DesktopService.GetMimeTypeInheritanceChain (CSharpFormatter.MimeType);
			if (dom != null && dom.Project != null)
				policy = base.Document.Project.Policies.Get<CSharpFormattingPolicy> (types);
		}
Esempio n. 18
0
		public void TestBug615196_UnIndentCase ()
		{
			TextEditorData data = new Mono.TextEditor.TextEditorData  ();
			data.Document.Text = "\n\t\t\n\t\t\n\t\t\n\n";
			data.Caret.Offset = data.Document.GetLine (2).Offset; // 2nd.Line
			data.MainSelection = new Selection (2, 1, 4, 1);
			MiscActions.RemoveTab (data);
			MiscActions.RemoveTab (data);
			
			Assert.AreEqual ("\n\n\n\t\t\n\n", data.Document.Text);
		}
        public void TestSelectAllBug362983()
        {
            TextEditorData data = new Mono.TextEditor.TextEditorData();

            data.Document.Text = "Test";
            Assert.IsFalse(data.IsSomethingSelected);
            SelectionActions.SelectAll(data);
            Assert.IsTrue(data.IsSomethingSelected);
            data.Caret.Offset++;
            Assert.IsFalse(data.IsSomethingSelected);
        }
Esempio n. 20
0
		public void TestInsertNewLine ()
		{
			TextEditorData data = new Mono.TextEditor.TextEditorData  ();
			data.Document.Text = "Hello World!";
			data.Caret.Location = new DocumentLocation (1, "Hello".Length + 1);
			MiscActions.InsertNewLine (data);
			Assert.AreEqual (2, data.Document.LineCount);
			Assert.AreEqual (2, data.Caret.Line);
			Assert.AreEqual (1, data.Caret.Column);
			Assert.AreEqual ("Hello" + Environment.NewLine + " World!", data.Document.Text);
		}
Esempio n. 21
0
        public void TestBug613770()
        {
            TextEditorData data = new Mono.TextEditor.TextEditorData();

            data.Document.Text = "\n\n\n";
            data.Caret.Offset  = 1;            // 2nd.Line
            data.Caret.AllowCaretBehindLineEnd = true;
            data.Caret.Column = DocumentLocation.MinColumn + 4;
            DeleteActions.Backspace(data);

            Assert.AreEqual("\n\n\n", data.Document.Text);
        }
Esempio n. 22
0
        public void TestBug615196_UnIndentCase()
        {
            TextEditorData data = new Mono.TextEditor.TextEditorData();

            data.Document.Text = "\n\t\t\n\t\t\n\t\t\n\n";
            data.Caret.Offset  = data.Document.GetLine(2).Offset;             // 2nd.Line
            data.MainSelection = new Selection(2, 1, 4, 1);
            MiscActions.RemoveTab(data);
            MiscActions.RemoveTab(data);

            Assert.AreEqual("\n\n\n\t\t\n\n", data.Document.Text);
        }
Esempio n. 23
0
		public void TestReturnKeyBehavior ()
		{
			TextEditorData data = new Mono.TextEditor.TextEditorData  ();
			data.Document.Text = "\n\n\n";
			data.Caret.Offset = 1; // 2nd.Line
			data.Caret.AllowCaretBehindLineEnd = true;
			data.Caret.Column = DocumentLocation.MinColumn + 4;
			data.Options.RemoveTrailingWhitespaces = false;
			MiscActions.InsertNewLine (data);
			
			Assert.AreEqual ("\n    \n    \n\n", data.Document.Text);
		}
Esempio n. 24
0
        public void TestInsertNewLine()
        {
            TextEditorData data = new Mono.TextEditor.TextEditorData();

            data.Document.Text  = "Hello World!";
            data.Caret.Location = new DocumentLocation(1, "Hello".Length + 1);
            MiscActions.InsertNewLine(data);
            Assert.AreEqual(2, data.Document.LineCount);
            Assert.AreEqual(2, data.Caret.Line);
            Assert.AreEqual(1, data.Caret.Column);
            Assert.AreEqual("Hello" + Environment.NewLine + " World!", data.Document.Text);
        }
Esempio n. 25
0
        public void TestBug615624()
        {
            TextEditorData data = new Mono.TextEditor.TextEditorData();

            data.Document.Text = "\n \n\n";
            data.Caret.AllowCaretBehindLineEnd = true;
            data.Caret.Offset = 2;             // 2nd.Line
            Assert.AreEqual(DocumentLocation.MinColumn + 1, data.Caret.Column);
            Document.RemoveTrailingWhitespaces(data, data.Document.GetLine(2));
            Assert.AreEqual("\n\n\n", data.Document.Text);
            Assert.AreEqual(DocumentLocation.MinColumn + 1, data.Caret.Column);
        }
Esempio n. 26
0
		public void TestInsertTabBug615196_IndentCase ()
		{
			TextEditorData data = new Mono.TextEditor.TextEditorData ();
			data.Options = new TextEditorOptions () { IndentStyle = IndentStyle.Smart };
			data.Document.Text = "\n\n\n\n\n";
			data.Caret.Offset = data.Document.GetLine (2).Offset; // 2nd.Line
			data.MainSelection = new Selection (2, 1, 4, 1);
			MiscActions.InsertTab (data);
			MiscActions.InsertTab (data);
			
			Assert.AreEqual ("\n\t\t\n\t\t\n\n\n", data.Document.Text);
		}
		public void TestSimpleUndo ()
		{
			TextEditorData data = new Mono.TextEditor.TextEditorData ();
			data.Document.Text = "Hello";
			Assert.IsFalse (data.Document.CanUndo);
			data.Caret.Offset = data.Document.TextLength;
			data.InsertAtCaret ("World");
			Assert.IsTrue (data.Document.CanUndo);
			data.Document.Undo ();
			Assert.IsFalse (data.Document.CanUndo);
			Assert.AreEqual (data.Document.Text, "Hello");
			Assert.AreEqual (data.Document.TextLength, data.Caret.Offset);
		}
        public void TestReturnKeyBehavior()
        {
            TextEditorData data = new Mono.TextEditor.TextEditorData();

            data.Document.Text = "\n\n\n";
            data.Caret.Offset  = 1;            // 2nd.Line
            data.Caret.AllowCaretBehindLineEnd = true;
            data.Caret.Column = 4;
            data.Options.RemoveTrailingWhitespaces = false;
            MiscActions.InsertNewLine(data);

            Assert.AreEqual("\n    \n    \n\n", data.Document.Text);
        }
		public void TestReturnKeyBehavior ()
		{
			TextEditorData data = new Mono.TextEditor.TextEditorData ();
			data.IndentationTracker = null;
			data.Options.IndentStyle = IndentStyle.Auto;
			data.Document.Text = "\n\n\n";
			data.Caret.Offset = 1; // 2nd.Line
			data.Caret.AllowCaretBehindLineEnd = true;
			data.Caret.Column = DocumentLocation.MinColumn + 4;
			MiscActions.InsertNewLine (data);
			
			Assert.AreEqual ("\n    \n    \n\n", data.Document.Text);
		}
Esempio n. 30
0
        public void TestReturnKeyBehavior()
        {
            TextEditorData data = new Mono.TextEditor.TextEditorData();

            data.Options.IndentStyle           = IndentStyle.Auto;
            data.Document.Text                 = "\n\n\n";
            data.Caret.Offset                  = 1; // 2nd.Line
            data.Caret.AllowCaretBehindLineEnd = true;
            data.Caret.Column                  = DocumentLocation.MinColumn + 4;
            MiscActions.InsertNewLine(data);

            Assert.AreEqual("\n    \n    \n\n", data.Document.Text);
        }
        public override void AddGlobalNamespaceImport(RefactorerContext ctx, string fileName, string nsName)
        {
            IEditableTextFile file        = ctx.GetFile(fileName);
            int            pos            = 0;
            ParsedDocument parsedDocument = parser.Parse(ctx.ParserContext, fileName, file.Text);
            StringBuilder  text           = new StringBuilder();

            if (parsedDocument.CompilationUnit != null)
            {
                IUsing lastUsing = null;
                foreach (IUsing u in parsedDocument.CompilationUnit.Usings)
                {
                    if (u.IsFromNamespace)
                    {
                        break;
                    }
                    lastUsing = u;
                }

                if (lastUsing != null)
                {
                    pos = file.GetPositionFromLineColumn(lastUsing.Region.End.Line, lastUsing.Region.End.Column);
                }
            }

            if (pos != 0)
            {
                text.AppendLine();
            }
            text.Append("using ");
            text.Append(nsName);
            text.Append(";");
            if (pos == 0)
            {
                text.AppendLine();
            }
            if (file is Mono.TextEditor.ITextEditorDataProvider)
            {
                Mono.TextEditor.TextEditorData data = ((Mono.TextEditor.ITextEditorDataProvider)file).GetTextEditorData();
                int caretOffset   = data.Caret.Offset;
                int insertedChars = data.Insert(pos, text.ToString());
                if (pos < caretOffset)
                {
                    data.Caret.Offset = caretOffset + insertedChars;
                }
            }
            else
            {
                file.InsertText(pos, text.ToString());
            }
        }
Esempio n. 32
0
        public void TestCaretRightBehavior()
        {
            TextEditorData data = new Mono.TextEditor.TextEditorData();

            data.Options.IndentStyle           = IndentStyle.Auto;
            data.Document.Text                 = "\n\n\n";
            data.Caret.AllowCaretBehindLineEnd = true;

            CaretMoveActions.Right(data);
            Assert.AreEqual(2, data.Caret.Column);
            CaretMoveActions.Right(data);
            Assert.AreEqual(3, data.Caret.Column);
            Assert.AreEqual("\n\n\n", data.Document.Text);
        }
Esempio n. 33
0
        public void TestSimpleUndo()
        {
            TextEditorData data = new Mono.TextEditor.TextEditorData();

            data.Document.Text = "Hello";
            Assert.IsFalse(data.Document.CanUndo);
            data.Caret.Offset = data.Document.TextLength;
            data.InsertAtCaret("World");
            Assert.IsTrue(data.Document.CanUndo);
            data.Document.Undo();
            Assert.IsFalse(data.Document.CanUndo);
            Assert.AreEqual(data.Document.Text, "Hello");
            Assert.AreEqual(data.Document.TextLength, data.Caret.Offset);
        }
Esempio n. 34
0
		public void TestBug615196 ()
		{
			TextEditorData data = new Mono.TextEditor.TextEditorData  ();
			data.Document.Text = "\n\nHello World\n";
			data.Caret.Offset = 1; // 2nd.Line
			data.Caret.AllowCaretBehindLineEnd = true;
			data.Caret.Column = DocumentLocation.MinColumn + 4;
			Clipboard clipboard = Clipboard.Get (Mono.TextEditor.ClipboardActions.CopyOperation.CLIPBOARD_ATOM);
			clipboard.Text = "Test";
			
			ClipboardActions.Paste (data);
			
			Assert.AreEqual ("\n    Test\nHello World\n", data.Document.Text);
		}
		public override void Initialize ()
		{
			base.Initialize ();
			dom = Document.Dom;
			textEditorData = Document.Editor;
			
			IEnumerable<string > types = MonoDevelop.Ide.DesktopService.GetMimeTypeInheritanceChain (CSharpFormatter.MimeType);
			if (dom != null && dom.Project != null)
				policy = dom.Project.Policies.Get<CSharpFormattingPolicy> (types);
			InitTracker ();
			UpdatePath (null, null);
			textEditorData.Caret.PositionChanged += UpdatePath;
			Document.DocumentParsed += HandleDocumentDocumentParsed;
		}
Esempio n. 36
0
        public void TestSetSelectedLines()
        {
            TextEditorData data = new Mono.TextEditor.TextEditorData();

            data.Document.Text =
                @"1
2
3
";
            data.SetSelectLines(1, 4);
            Assert.AreEqual(0, data.SelectionAnchor);
            Assert.AreEqual(0, data.SelectionRange.Offset);
            Assert.AreEqual(data.Document.TextLength, data.SelectionRange.EndOffset);
        }
Esempio n. 37
0
        public void TestSelectedLinesCase3Reverse()
        {
            TextEditorData data = new Mono.TextEditor.TextEditorData();

            data.Document.Text =
                @"123456789
[123456789
123456789
123]456789
123456789
123456789";
            SetSelection(data, true);
            Assert.AreEqual(3, data.SelectedLines.Count());
        }
Esempio n. 38
0
        public void TestSelectedLinesCase2()
        {
            TextEditorData data = new Mono.TextEditor.TextEditorData();

            data.Document.Text =
                @"123456789
123[456789
123456789
123456789
]123456789
123456789";
            SetSelection(data, false);
            Assert.AreEqual(3, data.SelectedLines.Count());
        }
Esempio n. 39
0
        public void TestBug615196()
        {
            TextEditorData data = new Mono.TextEditor.TextEditorData();

            data.Document.Text = "\n\nHello World\n";
            data.Caret.Offset  = 1;            // 2nd.Line
            data.Caret.AllowCaretBehindLineEnd = true;
            data.Caret.Column = DocumentLocation.MinColumn + 4;
            Clipboard clipboard = Clipboard.Get(Mono.TextEditor.ClipboardActions.CopyOperation.CLIPBOARD_ATOM);

            clipboard.Text = "Test";

            ClipboardActions.Paste(data);

            Assert.AreEqual("\n    Test\nHello World\n", data.Document.Text);
        }
Esempio n. 40
0
        public void TestInsertTabBug615196_IndentCase()
        {
            TextEditorData data = new Mono.TextEditor.TextEditorData();

            data.Options = new TextEditorOptions()
            {
                IndentStyle = IndentStyle.Smart
            };
            data.Document.Text = "\n\n\n\n\n";
            data.Caret.Offset  = data.Document.GetLine(2).Offset;             // 2nd.Line
            data.MainSelection = new Selection(2, 1, 4, 1);
            MiscActions.InsertTab(data);
            MiscActions.InsertTab(data);

            Assert.AreEqual("\n\t\t\n\t\t\n\n\n", data.Document.Text);
        }
Esempio n. 41
0
        public void OnRemoveTrailingWhiteSpaces()
        {
            Mono.TextEditor.TextEditorData data = doc.Editor;
            if (data == null)
            {
                return;
            }

            System.Collections.Generic.List <RemoveInfo> removeList = new System.Collections.Generic.List <RemoveInfo> ();
            int        pos        = data.Document.Length - 1;
            RemoveInfo removeInfo = RemoveInfo.GetRemoveInfo(data.Document, ref pos);

            if (!removeInfo.IsEmpty)
            {
                removeList.Add(removeInfo);
            }

            while (pos >= 0)
            {
                char ch = data.Document.GetCharAt(pos);
                if (ch == '\n' || ch == '\r')
                {
                    if (RemoveInfo.IsWhiteSpace(data.Document.GetCharAt(pos - 1)))
                    {
                        --pos;
                        removeInfo = RemoveInfo.GetRemoveInfo(data.Document, ref pos);
                        if (!removeInfo.IsEmpty)
                        {
                            removeList.Add(removeInfo);
                        }
                    }
                }
                --pos;
            }

            data.Document.BeginAtomicUndo();
            foreach (var info in removeList)
            {
                ((Mono.TextEditor.IBuffer)data.Document).Remove(info.Position, info.Length);
                data.Document.CommitLineUpdate(data.Document.OffsetToLineNumber(info.Position));
            }
            data.Caret.Offset = Math.Min(data.Caret.Offset, data.Document.Length - 1);
            data.Document.EndAtomicUndo();
        }
        public void TestSelectAll()
        {
            TextEditorData data = new Mono.TextEditor.TextEditorData();

            data.Document.Text =
                @"123456789
123456789
123456789
123456789
123456789
123456789";

            Assert.IsFalse(data.IsSomethingSelected);
            SelectionActions.SelectAll(data);
            Assert.IsTrue(data.IsSomethingSelected);

            Assert.AreEqual(data.SelectionRange.Offset, 0);
            Assert.AreEqual(data.SelectionRange.EndOffset, data.Document.TextLength);
        }
Esempio n. 43
0
        public void OnRemoveTrailingWhiteSpaces()
        {
            Mono.TextEditor.TextEditorData data = doc.Editor;
            if (data == null)
            {
                return;
            }

            System.Collections.Generic.List <RemoveInfo> removeList = new System.Collections.Generic.List <RemoveInfo> ();
            int        pos        = data.Document.TextLength - 1;
            RemoveInfo removeInfo = RemoveInfo.GetRemoveInfo(data.Document, ref pos);

            if (!removeInfo.IsEmpty)
            {
                removeList.Add(removeInfo);
            }

            while (pos >= 0)
            {
                char ch = data.Document.GetCharAt(pos);
                if (ch == '\n' || ch == '\r')
                {
                    if (RemoveInfo.IsWhiteSpace(data.Document.GetCharAt(pos - 1)))
                    {
                        --pos;
                        removeInfo = RemoveInfo.GetRemoveInfo(data.Document, ref pos);
                        if (!removeInfo.IsEmpty)
                        {
                            removeList.Add(removeInfo);
                        }
                    }
                }
                --pos;
            }
            using (var undo = data.OpenUndoGroup())
            {
                foreach (var info in removeList)
                {
                    data.Document.Remove(info.Position, info.Length);
                    data.Document.CommitLineUpdate(data.Document.OffsetToLineNumber(info.Position));
                }
            }
        }
Esempio n. 44
0
		public static TextEditorData Create (string input, bool reverse)
		{
			TextEditorData data = new Mono.TextEditor.TextEditorData ();
			
			int offset1 = input.IndexOf ('[');
			int offset2 = input.IndexOf (']');
			var selection = new TextSegment (offset1, offset2 - offset1 - 1);

			data.Text = input.Substring (0, offset1) + input.Substring (offset1 + 1, (offset2 - offset1) - 1) + input.Substring (offset2 + 1);
			if (reverse) {
				data.Caret.Offset = selection.Offset;
				data.SelectionAnchor = selection.EndOffset;
				data.ExtendSelectionTo (selection.Offset);
			} else {
				data.Caret.Offset = selection.EndOffset;
				data.SelectionAnchor = selection.Offset;
				data.ExtendSelectionTo (selection.EndOffset);
			}
			return data;
		}
Esempio n. 45
0
		public ParameterDataProvider (Document document, ProjectInformation info, string functionName)
		{
			this.editor = document.Editor;
			
			foreach (Function f in info.Functions) {
				if (f.Name == functionName) {
					functions.Add (f);
				}
			}
			
			string currentFile = document.FileName;
			
			if (info.IncludedFiles.ContainsKey (currentFile)) {
				foreach (CBinding.Parser.FileInformation fi in info.IncludedFiles[currentFile]) {
					foreach (Function f in fi.Functions) {
						if (f.Name == functionName) {
							functions.Add (f);
						}
					}
				}
			}
		}
		public void TestExtendSelectionTo ()
		{
			TextEditorData data = new Mono.TextEditor.TextEditorData  ();
data.Document.Text = 
@"123456789
123456789
123456789
123456789
123456789
123456789";
			
			data.SelectionAnchor = 3;
			DocumentLine line = data.Document.GetLine (3);
			
			Assert.IsFalse (data.IsSomethingSelected);
			data.ExtendSelectionTo (line.Offset + 3);
			
			Assert.IsTrue (data.IsSomethingSelected);
			
			Assert.AreEqual (3, data.SelectionRange.Offset);
			Assert.AreEqual (line.Offset + 3, data.SelectionRange.EndOffset);
		}
Esempio n. 47
0
        protected override void Run()
        {
            _isRunning = true;
            try {
                _document = IdeApp.Workbench.ActiveDocument;
                _editor   = _document.Editor;
                _project  = _document.Project as DotNetProject;

                if (_project != null)
                {
                    _newNamespace = _project.GetDefaultNamespace(_document.FileName.ToString());

                    var namespaceLine    = _editor.GetLine(_editor.Caret.Line);
                    var oldNamespacetext = _editor.GetLineText(_editor.Caret.Line);
                    _originalNamespace = GetNameSpaceAtCaret();
                    var newNamespaceText = oldNamespacetext.Replace(_originalNamespace, _newNamespace);

                    //TODO ask for confirmation
                    var isRefactoring = ShowMessageBox("Do you wish to refactor?\nThe refactoring functionality is experimental, you should ensure you have committed/backed up first.");
                    if (isRefactoring)
                    {
                        RefactorNamespaceChanges();
                    }
                    var modifiedText          = GetUpdatedSourceText(_editor.Text);
                    var oldNamespaceStatement = string.Format("namespace {0}", _originalNamespace);
                    var newNameSpaceStatement = string.Format("namespace {0}", _newNamespace);

                    modifiedText         = modifiedText.Replace(oldNamespaceStatement, newNameSpaceStatement);
                    _editor.Text         = modifiedText;
                    _editor.Caret.Line   = namespaceLine.LineNumber;
                    _editor.Caret.Column = "namespace ".Length + 1;
                    _document.IsDirty    = true;
//					_editor.Replace (namespaceLine.Offset, namespaceLine.Length, newNamespaceText);
                }
            } catch (Exception ex) {
            }
            _isRunning = false;
        }
		public void TestSelectedLines ()
		{
			TextEditorData data = new Mono.TextEditor.TextEditorData  ();
data.Document.Text = 
@"123456789
123[456789
123456789
1234]56789
123456789
123456789";
			SetSelection (data, false);
			int lines = data.SelectedLines.Count ();
			Assert.AreEqual (3, lines);
		}
		public TextPasteHandlerWrapper (Mono.TextEditor.TextEditorData data, MonoDevelop.Ide.Editor.Extension.TextPasteHandler textPasteHandler)
		{
			this.data = data;
			this.textPasteHandler = textPasteHandler;
			data.Paste += HandlePaste;
		}
Esempio n. 50
0
		public void TestInsertTabLineCase3Reverse ()
		{
			TextEditorData data = new Mono.TextEditor.TextEditorData  ();
			data.Document.Text = 
@"123d456789
123[456789
123d456789
]123456789
123456789
123456789";
			SetSelection (data, true);
			
			MiscActions.InsertTab (data);
/*			ISegment currentSelection = GetSelection (data, true);
			
			Assert.AreEqual (currentSelection.Offset, data.SelectionRange.Offset);
			Assert.AreEqual (currentSelection.EndOffset, data.SelectionRange.EndOffset);
			Assert.AreEqual (currentSelection.Offset, data.Caret.Offset);*/
			
			Assert.IsTrue (data.Document.GetLine (DocumentLocation.MinLine + 1).Length > data.Document.GetLine (DocumentLocation.MinLine + 0).Length);
			Assert.IsTrue (data.Document.GetLine (DocumentLocation.MinLine + 2).Length > data.Document.GetLine (DocumentLocation.MinLine + 0).Length);
			
			Assert.AreEqual (data.Document.GetLine (DocumentLocation.MinLine + 0).Length, data.Document.GetLine (DocumentLocation.MinLine + 3).Length);
			Assert.AreEqual (data.Document.GetLine (DocumentLocation.MinLine + 1).Length, data.Document.GetLine (DocumentLocation.MinLine + 2).Length);
		}
			public TestCompletionWidget (Mono.TextEditor.TextEditorData data)
			{
				this.data = data;
			}
		public void TestCaretLeftBehavior ()
		{
			TextEditorData data = new Mono.TextEditor.TextEditorData ();
			data.Options.IndentStyle = IndentStyle.Auto;
			data.Document.Text = "\n\n\n";
			data.Caret.AllowCaretBehindLineEnd = true;
			data.Caret.Column = 4;

			CaretMoveActions.Left (data);
			Assert.AreEqual (3, data.Caret.Column);
			CaretMoveActions.Left (data);
			Assert.AreEqual (2, data.Caret.Column);
			Assert.AreEqual ("\n\n\n", data.Document.Text);
		}
Esempio n. 53
0
 public override void Initialize()
 {
     base.Initialize ();
     textEditorData = Document.Editor;
     UpdatePath (null, null);
     textEditorData.Caret.PositionChanged += UpdatePath;
     Document.DocumentParsed += delegate { UpdatePath (null, null); };
 }
Esempio n. 54
0
        public override void Initialize()
        {
            base.Initialize();

            documentEditor = Document.Editor;
        }
Esempio n. 55
0
		public void TestBug615624 ()
		{
			TextEditorData data = new Mono.TextEditor.TextEditorData  ();
			data.Document.Text = "\n \n\n";
			data.Caret.AllowCaretBehindLineEnd = true;
			data.Caret.Offset = 2; // 2nd.Line
			Assert.AreEqual (DocumentLocation.MinColumn + 1, data.Caret.Column);
			Document.RemoveTrailingWhitespaces (data, data.Document.GetLine (2));
			Assert.AreEqual ("\n\n\n", data.Document.Text);
			Assert.AreEqual (DocumentLocation.MinColumn + 1, data.Caret.Column);
		}
		public HiddenTextEditorViewContent ()
		{
			document = new Mono.TextEditor.Document ();
			data = new Mono.TextEditor.TextEditorData (document);
			Name = "";
		}
		public void TestFindNext ()
		{
			TextEditorData data = new Mono.TextEditor.TextEditorData  ();
			data.Document.Text = @"ababab";
			data.SearchEngine.SearchRequest.SearchPattern = "ab";
			
			data.Caret.Offset = 0;
			SearchResult result = data.FindNext (true);
			Assert.AreEqual (0, result.Offset);
			Assert.AreEqual (2, result.EndOffset);
			Assert.IsFalse (result.SearchWrapped);
			Assert.AreEqual (result.Offset, data.SelectionRange.Offset);
			Assert.AreEqual (result.Length, data.SelectionRange.Length);
			Assert.AreEqual (result.EndOffset, data.Caret.Offset);
			
			result = data.FindNext (true);
			Assert.AreEqual (2, result.Offset);
			Assert.AreEqual (4, result.EndOffset);
			Assert.IsFalse (result.SearchWrapped);
			Assert.AreEqual (result.Offset, data.SelectionRange.Offset);
			Assert.AreEqual (result.Length, data.SelectionRange.Length);
			Assert.AreEqual (result.EndOffset, data.Caret.Offset);
			
			result = data.FindNext (true);
			Assert.AreEqual (4, result.Offset);
			Assert.AreEqual (6, result.EndOffset);
			Assert.IsFalse (result.SearchWrapped);
			Assert.AreEqual (result.Offset, data.SelectionRange.Offset);
			Assert.AreEqual (result.Length, data.SelectionRange.Length);
			Assert.AreEqual (result.EndOffset, data.Caret.Offset);
			
			result = data.FindNext (true);
			Assert.AreEqual (0, result.Offset);
			Assert.AreEqual (2, result.EndOffset);
			Assert.IsTrue (result.SearchWrapped);
			Assert.AreEqual (result.Offset, data.SelectionRange.Offset);
			Assert.AreEqual (result.Length, data.SelectionRange.Length);
			Assert.AreEqual (result.EndOffset, data.Caret.Offset);
		}
		public void TestSelectAllCaretMovement ()
		{
			TextEditorData data = new Mono.TextEditor.TextEditorData  ();
			data.Document.Text = 
				@"123456789
123456789
123456789
123456789
123456789
123456789";
			
			Assert.IsFalse (data.IsSomethingSelected);
			var loc = new DocumentLocation (3, 3);
			data.Caret.Location = loc;
			SelectionActions.SelectAll (data);
			Assert.IsTrue (data.IsSomethingSelected);
			
			Assert.AreEqual (data.SelectionRange.Offset, 0);
			Assert.AreEqual (data.SelectionRange.EndOffset, data.Document.TextLength);
			Assert.AreEqual (loc, data.Caret.Location);
		}
		public void TestSelectAllBug362983 ()
		{
			TextEditorData data = new Mono.TextEditor.TextEditorData ();
			data.Document.Text = "Test";
			Assert.IsFalse (data.IsSomethingSelected);
			SelectionActions.SelectAll (data);
			Assert.IsTrue (data.IsSomethingSelected);
			data.Caret.Offset++;
			Assert.IsFalse (data.IsSomethingSelected);
		}
		public void TestSelectAll ()
		{
			TextEditorData data = new Mono.TextEditor.TextEditorData  ();
			data.Document.Text = 
@"123456789
123456789
123456789
123456789
123456789
123456789";
			
			Assert.IsFalse (data.IsSomethingSelected);
			SelectionActions.SelectAll (data);
			Assert.IsTrue (data.IsSomethingSelected);
			
			Assert.AreEqual (data.SelectionRange.Offset, 0);
			Assert.AreEqual (data.SelectionRange.EndOffset, data.Document.TextLength);
		}