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); }
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); } } } } }
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); }
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); }
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); }
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 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); }
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); }
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); }
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--; }
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); }
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); }
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); }
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); }
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); }
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 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 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); }
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); }
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 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); }
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()); } }
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); }
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 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; }
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); }
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()); }
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()); }
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 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 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); }
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)); } } }
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; }
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); }
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; }
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); }
public override void Initialize() { base.Initialize (); textEditorData = Document.Editor; UpdatePath (null, null); textEditorData.Caret.PositionChanged += UpdatePath; Document.DocumentParsed += delegate { UpdatePath (null, null); }; }
public override void Initialize() { base.Initialize(); documentEditor = Document.Editor; }
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); }