public IEnumerable <IMappingTagSpan <T> > GetTags(SnapshotSpan span) { foreach (var tagSpan in _tagger.GetTags(new NormalizedSnapshotSpanCollection(span.Snapshot, new Span[] { span }))) { var mappingSpan = VsxStubObjects.CreateObject <IMappingSpan>("Microsoft.VisualStudio.Text.Utilities.MappingSpanSnapshot, Microsoft.VisualStudio.Platform.VSEditor", span.Snapshot, tagSpan.Span, SpanTrackingMode.EdgeExclusive, _bufferGraph); yield return(new MappingTagSpan <T>(mappingSpan, tagSpan.Tag)); } }
public static ITextBuffer CreateTextBuffer(string content) { VsxStubObjects.Initialize(); var stringRebuilder = CallStaticMethod("Microsoft.VisualStudio.Text.Implementation.StringRebuilder, Microsoft.VisualStudio.Platform.VSEditor", "Create", content); var contentTypeImpl = CreateInstance( "Microsoft.VisualStudio.Utilities.Implementation.ContentTypeImpl, Microsoft.VisualStudio.Platform.VSEditor", "deveroom", null, null); var defaultTextDifferencingService = CreateInstance( "Microsoft.VisualStudio.Text.Differencing.Implementation.DefaultTextDifferencingService, Microsoft.VisualStudio.Platform.VSEditor"); var textBuffer = CreateInstance( "Microsoft.VisualStudio.Text.Implementation.TextBuffer, Microsoft.VisualStudio.Platform.VSEditor", contentTypeImpl, stringRebuilder, defaultTextDifferencingService, GuardedOperations); return((ITextBuffer)textBuffer); }
public static StubWpfTextView CreateTextView(StubIdeScope ideScope, TestText inputText, string newLine = null, IProjectScope projectScope = null, string contentType = "deveroom", string filePath = null) { var textBuffer = VsxStubObjects.CreateTextBuffer(inputText.ToString(newLine)); textBuffer.Properties.AddProperty(typeof(IProjectScope), projectScope); if (filePath != null) { textBuffer.Properties.AddProperty(typeof(IVsTextBuffer), new FilePathProvider(filePath)); } var textView = new StubWpfTextView(textBuffer); if (contentType == "deveroom") { var tagAggregator = new StubBufferTagAggregatorFactoryService(ideScope).CreateTagAggregator <DeveroomTag>(textView.TextBuffer); tagAggregator.GetTags(new SnapshotSpan(textView.TextSnapshot, 0, textView.TextSnapshot.Length)).ToArray(); } inputText.SetSelection(textView); inputText.SetCaret(textView); return(textView); }