public void TestProjectionCompletion() { var editor = TextEditorFactory.CreateNewEditor(); var options = new CustomEditorOptions(editor.Options); options.EditorTheme = "Tango"; editor.Options = options; editor.Text = "12345678901234567890"; var projectedDocument = TextEditorFactory.CreateNewDocument( new StringTextSource("__12__34__56__78__90"), "a" ); var segments = new List <ProjectedSegment> (); for (int i = 0; i < 5; i++) { segments.Add(new ProjectedSegment(i * 2, 2 + i * 4, 2)); } var projection = new Projection.Projection(projectedDocument, segments); var tww = new TestWorkbenchWindow(); var content = new TestViewContent(); tww.ViewContent = content; var originalContext = new Document(tww); var projectedEditor = projection.CreateProjectedEditor(originalContext); TestCompletionExtension orignalExtension; editor.SetExtensionChain(originalContext, new [] { orignalExtension = new TestCompletionExtension(editor) { CompletionWidget = new EmptyCompletionWidget(editor) } }); TestCompletionExtension projectedExtension; projectedEditor.SetExtensionChain(originalContext, new [] { projectedExtension = new TestCompletionExtension(editor) { CompletionWidget = new EmptyCompletionWidget(projectedEditor) } }); editor.SetOrUpdateProjections(originalContext, new [] { projection }, TypeSystem.DisabledProjectionFeatures.None); editor.CaretOffset = 1; var service = new CommandManager(); service.LoadCommands("/MonoDevelop/Ide/Commands"); service.DispatchCommand(TextEditorCommands.ShowCompletionWindow, null, editor.CommandRouter); Assert.IsFalse(orignalExtension.CompletionRun); Assert.IsTrue(projectedExtension.CompletionRun); editor.CaretOffset = 15; CompletionWindowManager.HideWindow(); service.DispatchCommand(TextEditorCommands.ShowCompletionWindow, null, editor.CommandRouter); Assert.IsTrue(orignalExtension.CompletionRun); }
public void TestProjectionCompletion () { var editor = TextEditorFactory.CreateNewEditor (); var options = new CustomEditorOptions (editor.Options); options.ColorScheme = "Tango"; editor.Options = options; editor.Text = "12345678901234567890"; var projectedDocument = TextEditorFactory.CreateNewDocument ( new StringTextSource ("__12__34__56__78__90"), "a" ); var segments = new List<ProjectedSegment> (); for (int i = 0; i < 5; i++) { segments.Add (new ProjectedSegment (i * 2, 2 + i * 4, 2)); } var projection = new Projection.Projection (projectedDocument, segments); var tww = new TestWorkbenchWindow (); var content = new TestViewContent (); tww.ViewContent = content; var originalContext = new Document (tww); var projectedEditor = projection.CreateProjectedEditor (originalContext); TestCompletionExtension orignalExtension; editor.SetExtensionChain (originalContext, new [] { orignalExtension = new TestCompletionExtension (editor) }); TestCompletionExtension projectedExtension; projectedEditor.SetExtensionChain (originalContext, new [] { projectedExtension = new TestCompletionExtension (editor) }); orignalExtension.CompletionWidget = new EmptyCompletionWidget (editor); projectedExtension.CompletionWidget = new EmptyCompletionWidget (projectedEditor); editor.SetOrUpdateProjections (originalContext, new [] { projection }, TypeSystem.DisabledProjectionFeatures.None); editor.CaretOffset = 1; var service = new CommandManager (); service.LoadCommands ("/MonoDevelop/Ide/Commands"); service.DispatchCommand (TextEditorCommands.ShowCompletionWindow, null, editor.CommandRouter); Assert.IsFalse (orignalExtension.CompletionRun); Assert.IsTrue (projectedExtension.CompletionRun); editor.CaretOffset = 15; service.DispatchCommand (TextEditorCommands.ShowCompletionWindow, null, editor.CommandRouter); Assert.IsTrue (orignalExtension.CompletionRun); }