public async Task CanDoTagging(string testFile) { // Arrange. var sourceCode = File.ReadAllText(testFile); var textBuffer = TextBufferUtility.CreateTextBuffer(Container, sourceCode); var backgroundParser = new BackgroundParser(textBuffer); var snapshot = textBuffer.CurrentSnapshot; var syntaxTree = snapshot.GetSyntaxTree(CancellationToken.None); var snapshotSyntaxTree = new SnapshotSyntaxTree(snapshot, syntaxTree); var tagger = CreateTagger(backgroundParser, snapshot); // Act. await tagger.InvalidateTags(snapshotSyntaxTree, CancellationToken.None); var tagSpans = tagger.GetTags(new NormalizedSnapshotSpanCollection(new[] { new SnapshotSpan(snapshot, 0, snapshot.Length) })).ToList(); // Assert. if (MustCreateTagSpans) { Assert.That(tagSpans.Any()); } backgroundParser.Dispose(); }
public void TestUnCommentIndented() { var view = TextViewUtility.CreateTextView(Container, TextBufferUtility.CreateTextBuffer(Container, @"void f(){ //int i; //half h; float f; }")); view.Selection.Select( new SnapshotSpan( view.TextBuffer.CurrentSnapshot.GetLineFromLineNumber(1).Start, view.TextBuffer.CurrentSnapshot.GetLineFromLineNumber(2).End ), false ); view.Selection.IsActive = true; view.CommentOrUncommentBlock(false); Assert.Equal(@"void f(){ int i; half h; float f; }", view.TextBuffer.CurrentSnapshot.GetText()); }
public void TestCommentBlankLine() { var view = TextViewUtility.CreateTextView(Container, TextBufferUtility.CreateTextBuffer(Container, @"int i; float f;")); view.Caret.MoveTo(view.TextBuffer.CurrentSnapshot.GetLineFromLineNumber(1).Start); view.CommentOrUncommentBlock(true); Assert.Equal(@"int i; float f;", view.TextBuffer.CurrentSnapshot.GetText()); }
public void TestComment() { var view = TextViewUtility.CreateTextView(Container, TextBufferUtility.CreateTextBuffer(Container, @"int i; float f;")); view.Selection.Select( new SnapshotSpan(view.TextBuffer.CurrentSnapshot, new Span(0, view.TextBuffer.CurrentSnapshot.Length)), false ); view.Selection.IsActive = true; view.CommentOrUncommentBlock(true); Assert.Equal(@"//int i; //float f;", view.TextBuffer.CurrentSnapshot.GetText()); }
public async Task ParameterTest_ComputeCurrentParameter01() { var textBuffer = new TextBufferMock("aov(", RContentTypeDefinition.ContentType); var editorBuffer = textBuffer.ToEditorBuffer(); var source = new RSignatureHelpSource(textBuffer, Services); var session = new SignatureHelpSessionMock(Services, textBuffer, 0); var textView = session.TextView as TextViewMock; var signatures = new List <ISignature>(); using (var tree = new EditorTree(editorBuffer, Services)) { tree.Build(); using (var document = new EditorDocumentMock(tree)) { session.TrackingPoint = new TrackingPointMock(textBuffer, 4, PointTrackingMode.Positive, TrackingFidelityMode.Forward); await FunctionIndex.GetPackageNameAsync("aov"); tree.TakeThreadOwnerShip(); await source.AugmentSignatureHelpSessionAsync(session, signatures, tree.AstRoot); signatures.Should().ContainSingle(); var index = GetCurrentParameterIndex(signatures[0], signatures[0].CurrentParameter); index.Should().Be(0); textView.Caret = new TextCaretMock(textView, 5); TextBufferUtility.ApplyTextChange(textBuffer, 4, 0, 1, "a"); index = GetCurrentParameterIndex(signatures[0], signatures[0].CurrentParameter); index.Should().Be(0); textView.Caret = new TextCaretMock(textView, 6); TextBufferUtility.ApplyTextChange(textBuffer, 5, 0, 1, ","); tree.EnsureTreeReady(); index = GetCurrentParameterIndex(signatures[0], signatures[0].CurrentParameter); index.Should().Be(1); textView.Caret = new TextCaretMock(textView, 7); TextBufferUtility.ApplyTextChange(textBuffer, 6, 0, 1, ","); tree.EnsureTreeReady(); index = GetCurrentParameterIndex(signatures[0], signatures[0].CurrentParameter); index.Should().Be(2); } } }
public void TestCommentAfterCodeIsNotUncommented() { var view = TextViewUtility.CreateTextView(Container, TextBufferUtility.CreateTextBuffer(Container, @"int i;//comment that should stay a comment; //half h;//another comment that should stay a comment; float f;")); view.Selection.Select( new SnapshotSpan(view.TextBuffer.CurrentSnapshot, new Span(0, view.TextBuffer.CurrentSnapshot.GetText().IndexOf("float f;"))), false ); view.Selection.IsActive = true; view.CommentOrUncommentBlock(false); Assert.Equal(@"int i;//comment that should stay a comment; half h;//another comment that should stay a comment; float f;", view.TextBuffer.CurrentSnapshot.GetText()); }
internal async Task <List <ITagSpan <TTag> > > GetTagSpans <TTagger, TTag>(string sourceCode, CreateTagger <TTagger, TTag> createTagger) where TTagger : AsyncTagger <TTag> where TTag : ITag { var textBuffer = TextBufferUtility.CreateTextBuffer(Container, sourceCode); var backgroundParser = new BackgroundParser(textBuffer); var snapshot = textBuffer.CurrentSnapshot; var tagger = createTagger(backgroundParser, textBuffer); await tagger.InvalidateTags(snapshot, CancellationToken.None); var tags = tagger.GetTags(new NormalizedSnapshotSpanCollection(new[] { new SnapshotSpan(snapshot, 0, snapshot.Length) })).ToList(); backgroundParser.Dispose(); return(tags); }
public async Task ParameterTest_ComputeCurrentParameter01() { ITextBuffer textBuffer = new TextBufferMock("aov(", RContentTypeDefinition.ContentType); SignatureHelpSource source = new SignatureHelpSource(textBuffer); SignatureHelpSessionMock session = new SignatureHelpSessionMock(textBuffer, 0); TextViewMock textView = session.TextView as TextViewMock; List <ISignature> signatures = new List <ISignature>(); EditorTree tree = new EditorTree(textBuffer); tree.Build(); var document = new EditorDocumentMock(tree); session.TrackingPoint = new TrackingPointMock(textBuffer, 4, PointTrackingMode.Positive, TrackingFidelityMode.Forward); await FunctionIndexUtility.GetFunctionInfoAsync("aov"); tree.TakeThreadOwnerShip(); await source.AugmentSignatureHelpSessionAsync(session, signatures, tree.AstRoot); signatures.Should().ContainSingle(); int index = GetCurrentParameterIndex(signatures[0] as SignatureHelp, signatures[0].CurrentParameter); index.Should().Be(0); textView.Caret = new TextCaretMock(textView, 5); TextBufferUtility.ApplyTextChange(textBuffer, 4, 0, 1, "a"); index = GetCurrentParameterIndex(signatures[0] as SignatureHelp, signatures[0].CurrentParameter); index.Should().Be(0); textView.Caret = new TextCaretMock(textView, 6); TextBufferUtility.ApplyTextChange(textBuffer, 5, 0, 1, ","); index = GetCurrentParameterIndex(signatures[0] as SignatureHelp, signatures[0].CurrentParameter); index.Should().Be(1); textView.Caret = new TextCaretMock(textView, 7); TextBufferUtility.ApplyTextChange(textBuffer, 6, 0, 1, ","); index = GetCurrentParameterIndex(signatures[0] as SignatureHelp, signatures[0].CurrentParameter); index.Should().Be(2); }