public IWpfTextViewHost CreateEditor(string filePath, int start = 0, int end = 0, bool createProjectedEditor = false) { //IVsInvisibleEditors are in-memory represenations of typical Visual Studio editors. //Language services, highlighting and error squiggles are hooked up to these editors //for us once we convert them to WpfTextViews. var invisibleEditor = GetInvisibleEditor(filePath); var docDataPointer = IntPtr.Zero; Guid guidIVsTextLines = typeof(IVsTextLines).GUID; ErrorHandler.ThrowOnFailure(invisibleEditor.GetDocData( fEnsureWritable: 1 , riid: ref guidIVsTextLines , ppDocData: out docDataPointer)); IVsTextLines docData = (IVsTextLines)Marshal.GetObjectForIUnknown(docDataPointer); // This will actually be defined as _codewindowbehaviorflags2.CWB_DISABLEDIFF once the latest version of // Microsoft.VisualStudio.TextManager.Interop.16.0.DesignTime is published. Setting the flag will have no effect // on releases prior to d16.0. const _codewindowbehaviorflags CWB_DISABLEDIFF = (_codewindowbehaviorflags)0x04; //Create a code window adapter var codeWindow = _editorAdapter.CreateVsCodeWindowAdapter(VisualStudioServices.OLEServiceProvider); // You need to disable the dropdown, splitter and -- for d16.0 -- diff since you are extracting the code window's TextViewHost and using it. ((IVsCodeWindowEx)codeWindow).Initialize((uint)_codewindowbehaviorflags.CWB_DISABLESPLITTER | (uint)_codewindowbehaviorflags.CWB_DISABLEDROPDOWNBAR | (uint)CWB_DISABLEDIFF, VSUSERCONTEXTATTRIBUTEUSAGE.VSUC_Usage_Filter, string.Empty, string.Empty, 0, new INITVIEW[1]); ErrorHandler.ThrowOnFailure(codeWindow.SetBuffer(docData)); //Get a text view for our editor which we will then use to get the WPF control for that editor. IVsTextView textView; ErrorHandler.ThrowOnFailure(codeWindow.GetPrimaryView(out textView)); if (createProjectedEditor) { //We add our own role to this text view. Later this will allow us to selectively modify //this editor without getting in the way of Visual Studio's normal editors. var roles = _editorFactoryService.DefaultRoles.Concat(new string[] { "CustomProjectionRole" }); var vsTextBuffer = docData as IVsTextBuffer; var textBuffer = _editorAdapter.GetDataBuffer(vsTextBuffer); textBuffer.Properties.AddProperty("StartPosition", start); textBuffer.Properties.AddProperty("EndPosition", end); var guid = VSConstants.VsTextBufferUserDataGuid.VsTextViewRoles_guid; ((IVsUserData)codeWindow).SetData(ref guid, _editorFactoryService.CreateTextViewRoleSet(roles).ToString()); } _currentlyFocusedTextView = textView; var textViewHost = _editorAdapter.GetWpfTextViewHost(textView); return(textViewHost); }
public PreviewFactoryService( IThreadingContext threadingContext, ITextBufferFactoryService textBufferFactoryService, IContentTypeRegistryService contentTypeRegistryService, IProjectionBufferFactoryService projectionBufferFactoryService, ITextEditorFactoryService textEditorFactoryService, IEditorOptionsFactoryService editorOptionsFactoryService, ITextDifferencingSelectorService differenceSelectorService, IDifferenceBufferFactoryService differenceBufferService, IWpfDifferenceViewerFactoryService differenceViewerService) : base(threadingContext) { Contract.ThrowIfFalse(ThreadingContext.HasMainThread); _textBufferFactoryService = textBufferFactoryService; _contentTypeRegistryService = contentTypeRegistryService; _projectionBufferFactoryService = projectionBufferFactoryService; _editorOptionsFactoryService = editorOptionsFactoryService; _differenceSelectorService = differenceSelectorService; _differenceBufferService = differenceBufferService; _differenceViewerService = differenceViewerService; _previewRoleSet = textEditorFactoryService.CreateTextViewRoleSet( TextViewRoles.PreviewRole, PredefinedTextViewRoles.Analyzable); }
public static DisposableTextView CreateDisposableTextView( this ITextEditorFactoryService textEditorFactory, ITextBuffer buffer, ImmutableArray <string> roles = default ) { // Every default role but outlining. Starting in 15.2, the editor // OutliningManager imports JoinableTaskContext in a way that's // difficult to satisfy in our unit tests. Since we don't directly // depend on it, just disable it if (roles.IsDefault) { roles = ImmutableArray.Create( PredefinedTextViewRoles.Analyzable, PredefinedTextViewRoles.Document, PredefinedTextViewRoles.Editable, PredefinedTextViewRoles.Interactive, PredefinedTextViewRoles.Zoomable ); } var roleSet = textEditorFactory.CreateTextViewRoleSet(roles); return(new DisposableTextView(textEditorFactory.CreateTextView(buffer, roleSet))); }
public void UpdatePreview(string text) { const string start = "//["; const string end = "//]"; var sourceText = SourceText.From(text); var syntaxTree = SyntaxFactory.ParseSyntaxTree(sourceText); var edits = Formatter.GetEdits(syntaxTree, new TextSpan(sourceText, 0, text.Length), _optionsService.FormattingOptions); var formatted = Formatter.ApplyEdits(text, edits); var textBuffer = _textBufferFactoryService.CreateTextBuffer(formatted, _contentType); var bufferText = textBuffer.CurrentSnapshot.GetText().ToString(); var startIndex = bufferText.IndexOf(start, StringComparison.Ordinal); var endIndex = bufferText.IndexOf(end, StringComparison.Ordinal); var startLine = textBuffer.CurrentSnapshot.GetLineNumberFromPosition(startIndex) + 1; var endLine = textBuffer.CurrentSnapshot.GetLineNumberFromPosition(endIndex); var projection = _projectionBufferFactory.CreateProjectionBufferWithoutIndentation(_contentTypeRegistryService, _editorOptions.CreateOptions(), textBuffer.CurrentSnapshot, "", LineSpan.FromBounds(startLine, endLine)); var textView = _textEditorFactoryService.CreateTextView(projection, _textEditorFactoryService.CreateTextViewRoleSet(PredefinedTextViewRoles.Analyzable)); this.TextViewHost = _textEditorFactoryService.CreateTextViewHost(textView, setFocus: false); }
public IEditValue Create(string text, EditValueFlags flags) { var buffer = textBufferFactoryService.CreateTextBuffer(text, contentType); var rolesHash = new HashSet <string>(textEditorFactoryService.DefaultRoles, StringComparer.OrdinalIgnoreCase) { EditValueConstants.EditValueTextViewRole, }; // This also disables: line compressor, current line highlighter rolesHash.Remove(PredefinedTextViewRoles.Document); rolesHash.Remove(PredefinedTextViewRoles.Zoomable); foreach (var s in extraTextViewRoles) { rolesHash.Add(s); } var roles = textEditorFactoryService.CreateTextViewRoleSet(rolesHash); var textView = textEditorFactoryService.CreateTextView(buffer, roles); try { return(new EditValueImpl(textView, flags)); } catch { textView.Close(); throw; } }
public PreviewFactoryService( IThreadingContext threadingContext, ITextBufferFactoryService textBufferFactoryService, IContentTypeRegistryService contentTypeRegistryService, IProjectionBufferFactoryService projectionBufferFactoryService, ITextEditorFactoryService textEditorFactoryService, IEditorOptionsFactoryService editorOptionsFactoryService, ITextDifferencingSelectorService differenceSelectorService, IDifferenceBufferFactoryService differenceBufferService, IWpfDifferenceViewerFactoryService differenceViewerService ) : base( threadingContext, textBufferFactoryService, contentTypeRegistryService, projectionBufferFactoryService, editorOptionsFactoryService, differenceSelectorService, differenceBufferService, textEditorFactoryService.CreateTextViewRoleSet( TextViewRoles.PreviewRole, PredefinedTextViewRoles.Analyzable ) ) { _differenceViewerService = differenceViewerService; }
public ViewHostingControl CreateViewHostingControl(ITextBuffer textBuffer, Span contentSpan) { var snapshotSpan = textBuffer.CurrentSnapshot.GetSpan(contentSpan); var contentType = _contentTypeRegistryService.GetContentType( IProjectionBufferFactoryServiceExtensions.RoslynPreviewContentType ); var roleSet = _textEditorFactoryService.CreateTextViewRoleSet( TextViewRoles.PreviewRole, PredefinedTextViewRoles.Analyzable, PredefinedTextViewRoles.Document, PredefinedTextViewRoles.Editable ); var contentControl = ProjectionBufferContent.Create( _threadingContext, ImmutableArray.Create(snapshotSpan), _projectionBufferFactoryService, _editorOptionsFactoryService, _textEditorFactoryService, contentType, roleSet ); return(contentControl); }
public void UpdatePreview(string text) { const string start = "//["; const string end = "//]"; var service = MefV1HostServices.Create(_componentModel.DefaultExportProvider); var workspace = new PreviewWorkspace(service); var fileName = string.Format("project.{0}", Language == "C#" ? "csproj" : "vbproj"); var project = workspace.CurrentSolution.AddProject(fileName, "assembly.dll", Language); // use the mscorlib, system, and system.core that are loaded in the current process. string[] references = { "mscorlib", "System", "System.Core" }; var metadataService = workspace.Services.GetService <IMetadataService>(); var referenceAssemblies = Thread.GetDomain().GetAssemblies() .Where(x => references.Contains(x.GetName(true).Name, StringComparer.OrdinalIgnoreCase)) .Select(a => metadataService.GetReference(a.Location, MetadataReferenceProperties.Assembly)); project = project.WithMetadataReferences(referenceAssemblies); var document = project.AddDocument("document", SourceText.From(text, Encoding.UTF8)); var formatted = Formatter.FormatAsync(document, this.Options).WaitAndGetResult(CancellationToken.None); var textBuffer = _textBufferFactoryService.CreateTextBuffer(formatted.GetTextAsync().Result.ToString(), _contentType); var container = textBuffer.AsTextContainer(); var documentBackedByTextBuffer = document.WithText(container.CurrentText); var bufferText = textBuffer.CurrentSnapshot.GetText().ToString(); var startIndex = bufferText.IndexOf(start, StringComparison.Ordinal); var endIndex = bufferText.IndexOf(end, StringComparison.Ordinal); var startLine = textBuffer.CurrentSnapshot.GetLineNumberFromPosition(startIndex) + 1; var endLine = textBuffer.CurrentSnapshot.GetLineNumberFromPosition(endIndex); var projection = _projectionBufferFactory.CreateProjectionBufferWithoutIndentation(_contentTypeRegistryService, _editorOptions.CreateOptions(), textBuffer.CurrentSnapshot, "", LineSpan.FromBounds(startLine, endLine)); var textView = _textEditorFactoryService.CreateTextView(projection, _textEditorFactoryService.CreateTextViewRoleSet(PredefinedTextViewRoles.Analyzable)); this.TextViewHost = _textEditorFactoryService.CreateTextViewHost(textView, setFocus: false); workspace.TryApplyChanges(documentBackedByTextBuffer.Project.Solution); workspace.OpenDocument(document.Id); this.TextViewHost.Closed += (s, a) => { workspace.Dispose(); workspace = null; }; }
public PreviewChangesService(IWpfDifferenceViewerFactoryService diffFactory, IDifferenceBufferFactoryService diffBufferFactory, ITextBufferFactoryService bufferFactory, ITextEditorFactoryService textEditorFactoryService) { _diffFactory = diffFactory; _diffBufferFactory = diffBufferFactory; _bufferFactory = bufferFactory; _previewRoleSet = textEditorFactoryService.CreateTextViewRoleSet(PredefinedTextViewRoles.Analyzable); }
private IVsTextView CreateVsTextView(IVsTextBuffer vsTextBuffer, params string[] textViewRoles) { var textViewRoleSet = _textEditorFactoryService.CreateTextViewRoleSet(textViewRoles); var vsTextView = _vsEditorAdaptersFactoryService.CreateVsTextViewAdapter(_oleServiceProvider, textViewRoleSet); var hr = vsTextView.Initialize((IVsTextLines)vsTextBuffer, IntPtr.Zero, 0, null); ErrorHandler.ThrowOnFailure(hr); return(vsTextView); }
public void UpdatePreview(string text) { var service = VisualStudioMefHostServices.Create(_componentModel.GetService <ExportProvider>()); var workspace = new PreviewWorkspace(service); var fileName = "project." + (Language == "C#" ? "csproj" : "vbproj"); var project = workspace.CurrentSolution.AddProject(fileName, "assembly.dll", Language); // use the mscorlib, system, and system.core that are loaded in the current process. string[] references = { "mscorlib", "System", "System.Core" }; var metadataService = workspace.Services.GetService <IMetadataService>(); var referenceAssemblies = Thread.GetDomain().GetAssemblies() .Where(x => references.Contains(x.GetName(true).Name, StringComparer.OrdinalIgnoreCase)) .Select(a => metadataService.GetReference(a.Location, MetadataReferenceProperties.Assembly)); project = project.WithMetadataReferences(referenceAssemblies); var document = project.AddDocument("document", SourceText.From(text, Encoding.UTF8)); var fallbackFormattingOptions = _globalOptions.GetSyntaxFormattingOptions(document.Project.LanguageServices); var optionService = workspace.Services.GetRequiredService <IOptionService>(); var configOptions = OptionStore.GetOptions().AsAnalyzerConfigOptions(optionService, document.Project.Language); var formattingService = document.GetRequiredLanguageService <ISyntaxFormattingService>(); var formattingOptions = formattingService.GetFormattingOptions(configOptions, fallbackFormattingOptions); var formatted = Formatter.FormatAsync(document, formattingOptions, CancellationToken.None).WaitAndGetResult(CancellationToken.None); var textBuffer = _textBufferFactoryService.CreateTextBuffer(formatted.GetTextSynchronously(CancellationToken.None).ToString(), _contentType); var container = textBuffer.AsTextContainer(); var projection = _projectionBufferFactory.CreateProjectionBufferWithoutIndentation(_contentTypeRegistryService, _editorOptions.CreateOptions(), textBuffer.CurrentSnapshot, separator: "", exposedLineSpans: GetExposedLineSpans(textBuffer.CurrentSnapshot).ToArray()); var textView = _textEditorFactoryService.CreateTextView(projection, _textEditorFactoryService.CreateTextViewRoleSet(PredefinedTextViewRoles.Interactive)); this.TextViewHost = _textEditorFactoryService.CreateTextViewHost(textView, setFocus: false); workspace.TryApplyChanges(document.Project.Solution); workspace.OpenDocument(document.Id, container); this.TextViewHost.Closed += (s, a) => { workspace.Dispose(); workspace = null; }; }
internal static IWpfTextView CreateShrunkenTextView( ITextEditorFactoryService textEditorFactoryService, ITextBuffer finalBuffer) { ITextViewRoleSet roles = textEditorFactoryService.CreateTextViewRoleSet(OutliningRegionTextViewRole); IWpfTextView view = textEditorFactoryService.CreateTextView(finalBuffer, roles); view.Background = Brushes.Transparent; view = SizeToFit(view); view.ZoomLevel *= PreviewWindowZoomFactor; return(view); }
private IWpfTextView CreateElisionBufferView(ITextBuffer finalBuffer) { var roles = _textEditorFactoryService.CreateTextViewRoleSet(OutliningRegionTextViewRole); var view = _textEditorFactoryService.CreateTextView(finalBuffer, roles); view.Background = Brushes.Transparent; view.SizeToFit(); // Zoom out a bit to shrink the text. view.ZoomLevel *= 0.75; return(view); }
public IWpfTextViewHost CreateEditor(string filePath, int start = 0, int end = 0, bool createProjectedEditor = false) { //IVsInvisibleEditors are in-memory represenations of typical Visual Studio editors. //Language services, highlighting and error squiggles are hooked up to these editors //for us once we convert them to WpfTextViews. var invisibleEditor = GetInvisibleEditor(filePath); var docDataPointer = IntPtr.Zero; Guid guidIVsTextLines = typeof(IVsTextLines).GUID; ErrorHandler.ThrowOnFailure(invisibleEditor.GetDocData( fEnsureWritable: 1 , riid: ref guidIVsTextLines , ppDocData: out docDataPointer)); IVsTextLines docData = (IVsTextLines)Marshal.GetObjectForIUnknown(docDataPointer); //Create a code window adapter var codeWindow = _editorAdapter.CreateVsCodeWindowAdapter(VisualStudioServices.OLEServiceProvider); ErrorHandler.ThrowOnFailure(codeWindow.SetBuffer(docData)); //Get a text view for our editor which we will then use to get the WPF control for that editor. IVsTextView textView; ErrorHandler.ThrowOnFailure(codeWindow.GetPrimaryView(out textView)); if (createProjectedEditor) { //We add our own role to this text view. Later this will allow us to selectively modify //this editor without getting in the way of Visual Studio's normal editors. var roles = _editorFactoryService.DefaultRoles.Concat(new string[] { "CustomProjectionRole" }); var vsTextBuffer = docData as IVsTextBuffer; var textBuffer = _editorAdapter.GetDataBuffer(vsTextBuffer); textBuffer.Properties.AddProperty("StartPosition", start); textBuffer.Properties.AddProperty("EndPosition", end); var guid = VSConstants.VsTextBufferUserDataGuid.VsTextViewRoles_guid; ((IVsUserData)codeWindow).SetData(ref guid, _editorFactoryService.CreateTextViewRoleSet(roles).ToString()); } _currentlyFocusedTextView = textView; var textViewHost = _editorAdapter.GetWpfTextViewHost(textView); return(textViewHost); }
internal static IWpfTextView CreateShrunkenTextView( ITextEditorFactoryService textEditorFactoryService, ITextBuffer finalBuffer) { var roles = textEditorFactoryService.CreateTextViewRoleSet(OutliningRegionTextViewRole); var view = textEditorFactoryService.CreateTextView(finalBuffer, roles); view.Background = Brushes.Transparent; view.SizeToFit(); // Zoom out a bit to shrink the text. view.ZoomLevel *= 0.75; return view; }
private static IWpfTextView CreateTextView(ITextBuffer historyTextBuffer, ITextEditorFactoryService textEditorFactory) { var textView = textEditorFactory.CreateTextView(historyTextBuffer, textEditorFactory.DefaultRoles.UnionWith(textEditorFactory.CreateTextViewRoleSet(TextViewRole))); textView.Options.SetOptionValue(DefaultTextViewHostOptions.VerticalScrollBarId, true); textView.Options.SetOptionValue(DefaultTextViewHostOptions.HorizontalScrollBarId, true); textView.Options.SetOptionValue(DefaultTextViewHostOptions.SelectionMarginId, false); textView.Options.SetOptionValue(DefaultTextViewHostOptions.GlyphMarginId, false); textView.Options.SetOptionValue(DefaultTextViewHostOptions.ZoomControlId, false); textView.Options.SetOptionValue(DefaultWpfViewOptions.EnableMouseWheelZoomId, false); textView.Options.SetOptionValue(DefaultWpfViewOptions.EnableHighlightCurrentLineId, false); textView.Options.SetOptionValue(DefaultTextViewOptions.AutoScrollId, true); textView.Options.SetOptionValue(DefaultTextViewOptions.BraceCompletionEnabledOptionId, false); textView.Options.SetOptionValue(DefaultTextViewOptions.DragDropEditingId, false); textView.Options.SetOptionValue(DefaultTextViewOptions.UseVirtualSpaceId, false); textView.Caret.IsHidden = true; return textView; }
internal static IWpfTextView CreateShrunkenTextView( IThreadingContext threadingContext, ITextEditorFactoryService textEditorFactoryService, ITextBuffer finalBuffer) { var roles = textEditorFactoryService.CreateTextViewRoleSet(OutliningRegionTextViewRole); var view = textEditorFactoryService.CreateTextView(finalBuffer, roles); view.Background = Brushes.Transparent; view.SizeToFit(threadingContext); // Zoom out a bit to shrink the text. view.ZoomLevel *= 0.75; return(view); }
public EditActionPreviewProvider( ITextBufferFactoryService textBufferFactoryService, ITextDocumentFactoryService textDocumentFactoryService, ITextDifferencingSelectorService textDifferencingSelectorService, IProjectionBufferFactoryService projectionBufferFactoryService, IEditorOptionsFactoryService editorOptionsFactoryService, IDifferenceBufferFactoryService differenceBufferFactoryService, IWpfDifferenceViewerFactoryService wpfDifferenceViewerFactoryService, ITextEditorFactoryService textEditorFactoryService) { this.textBufferFactoryService = textBufferFactoryService; this.textDocumentFactoryService = textDocumentFactoryService; this.textDifferencingSelectorService = textDifferencingSelectorService; this.projectionBufferFactoryService = projectionBufferFactoryService; this.editorOptionsFactoryService = editorOptionsFactoryService; this.differenceBufferFactoryService = differenceBufferFactoryService; this.wpfDifferenceViewerFactoryService = wpfDifferenceViewerFactoryService; this.previewRoleSet = textEditorFactoryService.CreateTextViewRoleSet(PredefinedTextViewRoles.Analyzable); }
public PreviewFactoryService( ITextBufferFactoryService textBufferFactoryService, IContentTypeRegistryService contentTypeRegistryService, IProjectionBufferFactoryService projectionBufferFactoryService, ITextEditorFactoryService textEditorFactoryService, IEditorOptionsFactoryService editorOptionsFactoryService, ITextDifferencingSelectorService differenceSelectorService, IDifferenceBufferFactoryService differenceBufferService, IWpfDifferenceViewerFactoryService differenceViewerService) { _textBufferFactoryService = textBufferFactoryService; _contentTypeRegistryService = contentTypeRegistryService; _projectionBufferFactoryService = projectionBufferFactoryService; _editorOptionsFactoryService = editorOptionsFactoryService; _differenceSelectorService = differenceSelectorService; _differenceBufferService = differenceBufferService; _differenceViewerService = differenceViewerService; _previewRoleSet = textEditorFactoryService.CreateTextViewRoleSet( TextViewRoles.PreviewRole, PredefinedTextViewRoles.Analyzable); }
public PreviewFactoryService( ITextBufferFactoryService textBufferFactoryService, IContentTypeRegistryService contentTypeRegistryService, IProjectionBufferFactoryService projectionBufferFactoryService, ITextEditorFactoryService textEditorFactoryService, IEditorOptionsFactoryService editorOptionsFactoryService, ITextDifferencingSelectorService differenceSelectorService, IDifferenceBufferFactoryService differenceBufferService, IWpfDifferenceViewerFactoryService differenceViewerService) { Contract.ThrowIfTrue(this.ForegroundKind == ForegroundThreadDataKind.Unknown); _textBufferFactoryService = textBufferFactoryService; _contentTypeRegistryService = contentTypeRegistryService; _projectionBufferFactoryService = projectionBufferFactoryService; _editorOptionsFactoryService = editorOptionsFactoryService; _differenceSelectorService = differenceSelectorService; _differenceBufferService = differenceBufferService; _differenceViewerService = differenceViewerService; _previewRoleSet = textEditorFactoryService.CreateTextViewRoleSet( TextViewRoles.PreviewRole, PredefinedTextViewRoles.Analyzable); }
public void UpdatePreview(string text) { const string start = "//["; const string end = "//]"; var service = MefV1HostServices.Create(_componentModel.DefaultExportProvider); var workspace = new PreviewWorkspace(service); var document = workspace.OpenDocument(DocumentId.CreateNewId("document"), SourceText.From(text), Language); var formatted = Formatter.FormatAsync(document, this.Options).WaitAndGetResult(CancellationToken.None); var textBuffer = _textBufferFactoryService.CreateTextBuffer(formatted.SourceText.ToString(), _contentType); var container = textBuffer.AsTextContainer(); var documentBackedByTextBuffer = document.WithText(container.CurrentText); var bufferText = textBuffer.CurrentSnapshot.GetText().ToString(); var startIndex = bufferText.IndexOf(start, StringComparison.Ordinal); var endIndex = bufferText.IndexOf(end, StringComparison.Ordinal); var startLine = textBuffer.CurrentSnapshot.GetLineNumberFromPosition(startIndex) + 1; var endLine = textBuffer.CurrentSnapshot.GetLineNumberFromPosition(endIndex); var projection = _projectionBufferFactory.CreateProjectionBufferWithoutIndentation(_contentTypeRegistryService, _editorOptions.CreateOptions(), textBuffer.CurrentSnapshot, "", LineSpan.FromBounds(startLine, endLine)); var textView = _textEditorFactoryService.CreateTextView(projection, _textEditorFactoryService.CreateTextViewRoleSet()); this.TextViewHost = _textEditorFactoryService.CreateTextViewHost(textView, setFocus: false); workspace.CloseDocument(document.Id); workspace.OpenDocument(document.Id, documentBackedByTextBuffer.SourceText, Language); //workspace.UpdateDocument(documentBackedByTextBuffer.Id, documentBackedByTextBuffer.SourceText); }
public InteractiveWindow( IInteractiveWindowEditorFactoryService host, IContentTypeRegistryService contentTypeRegistry, ITextBufferFactoryService bufferFactory, IProjectionBufferFactoryService projectionBufferFactory, IEditorOperationsFactoryService editorOperationsFactory, ITextEditorFactoryService editorFactory, IRtfBuilderService rtfBuilderService, IIntellisenseSessionStackMapService intellisenseSessionStackMap, ISmartIndentationService smartIndenterService, IInteractiveEvaluator evaluator) { if (evaluator == null) { throw new ArgumentNullException(nameof(evaluator)); } _dangerous_uiOnly = new UIThreadOnly(this, host); this.Properties = new PropertyCollection(); _history = new History(); _intellisenseSessionStackMap = intellisenseSessionStackMap; _smartIndenterService = smartIndenterService; var replContentType = contentTypeRegistry.GetContentType(PredefinedInteractiveContentTypes.InteractiveContentTypeName); var replOutputContentType = contentTypeRegistry.GetContentType(PredefinedInteractiveContentTypes.InteractiveOutputContentTypeName); _outputBuffer = bufferFactory.CreateTextBuffer(replOutputContentType); _standardInputBuffer = bufferFactory.CreateTextBuffer(); _promptBuffer = bufferFactory.CreateTextBuffer(); _secondaryPromptBuffer = bufferFactory.CreateTextBuffer(); _standardInputPromptBuffer = bufferFactory.CreateTextBuffer(); _outputLineBreakBuffer = bufferFactory.CreateTextBuffer(); var projBuffer = projectionBufferFactory.CreateProjectionBuffer( new EditResolver(this), Array.Empty <object>(), ProjectionBufferOptions.None, replContentType); projBuffer.Properties.AddProperty(typeof(InteractiveWindow), this); _projectionBuffer = projBuffer; _dangerous_uiOnly.AppendNewOutputProjectionBuffer(); // Constructor runs on UI thread. projBuffer.Changed += new EventHandler <TextContentChangedEventArgs>(ProjectionBufferChanged); var roleSet = editorFactory.CreateTextViewRoleSet( PredefinedTextViewRoles.Analyzable, PredefinedTextViewRoles.Editable, PredefinedTextViewRoles.Interactive, PredefinedTextViewRoles.Zoomable, PredefinedInteractiveTextViewRoles.InteractiveTextViewRole); _textView = host.CreateTextView(this, projBuffer, roleSet); _textView.Caret.PositionChanged += CaretPositionChanged; _textView.Options.SetOptionValue(DefaultTextViewHostOptions.HorizontalScrollBarId, false); _textView.Options.SetOptionValue(DefaultTextViewHostOptions.LineNumberMarginId, false); _textView.Options.SetOptionValue(DefaultTextViewHostOptions.OutliningMarginId, false); _textView.Options.SetOptionValue(DefaultTextViewHostOptions.GlyphMarginId, false); _textView.Options.SetOptionValue(DefaultTextViewOptions.WordWrapStyleId, WordWrapStyles.WordWrap); _lineBreakString = _textView.Options.GetNewLineCharacter(); _dangerous_uiOnly.EditorOperations = editorOperationsFactory.GetEditorOperations(_textView); // Constructor runs on UI thread. _buffer = new OutputBuffer(this); _outputWriter = new InteractiveWindowWriter(this, spans: null); SortedSpans errorSpans = new SortedSpans(); _errorOutputWriter = new InteractiveWindowWriter(this, errorSpans); OutputClassifierProvider.AttachToBuffer(_outputBuffer, errorSpans); _rtfBuilderService = rtfBuilderService; RequiresUIThread(); evaluator.CurrentWindow = this; _evaluator = evaluator; }
public UIThreadOnly( InteractiveWindow window, IInteractiveWindowEditorFactoryService factory, IContentTypeRegistryService contentTypeRegistry, ITextBufferFactoryService bufferFactory, IProjectionBufferFactoryService projectionBufferFactory, IEditorOperationsFactoryService editorOperationsFactory, ITextEditorFactoryService editorFactory, IRtfBuilderService rtfBuilderService, IIntellisenseSessionStackMapService intellisenseSessionStackMap, ISmartIndentationService smartIndenterService, IInteractiveEvaluator evaluator, IWaitIndicator waitIndicator) { _window = window; _factory = factory; _rtfBuilderService = (IRtfBuilderService2)rtfBuilderService; _intellisenseSessionStackMap = intellisenseSessionStackMap; _smartIndenterService = smartIndenterService; _waitIndicator = waitIndicator; Evaluator = evaluator; var replContentType = contentTypeRegistry.GetContentType(PredefinedInteractiveContentTypes.InteractiveContentTypeName); var replOutputContentType = contentTypeRegistry.GetContentType(PredefinedInteractiveContentTypes.InteractiveOutputContentTypeName); OutputBuffer = bufferFactory.CreateTextBuffer(replOutputContentType); StandardInputBuffer = bufferFactory.CreateTextBuffer(); _inertType = bufferFactory.InertContentType; _projectionBuffer = projectionBufferFactory.CreateProjectionBuffer( new EditResolver(window), Array.Empty<object>(), ProjectionBufferOptions.None, replContentType); _projectionBuffer.Properties.AddProperty(typeof(InteractiveWindow), window); AppendNewOutputProjectionBuffer(); _projectionBuffer.Changed += new EventHandler<TextContentChangedEventArgs>(ProjectionBufferChanged); var roleSet = editorFactory.CreateTextViewRoleSet( PredefinedTextViewRoles.Analyzable, PredefinedTextViewRoles.Editable, PredefinedTextViewRoles.Interactive, PredefinedTextViewRoles.Zoomable, PredefinedInteractiveTextViewRoles.InteractiveTextViewRole); TextView = factory.CreateTextView(window, _projectionBuffer, roleSet); TextView.Caret.PositionChanged += CaretPositionChanged; var options = TextView.Options; options.SetOptionValue(DefaultTextViewHostOptions.HorizontalScrollBarId, true); options.SetOptionValue(DefaultTextViewHostOptions.LineNumberMarginId, false); options.SetOptionValue(DefaultTextViewHostOptions.OutliningMarginId, false); options.SetOptionValue(DefaultTextViewHostOptions.GlyphMarginId, false); options.SetOptionValue(DefaultTextViewOptions.WordWrapStyleId, WordWrapStyles.None); _lineBreakString = options.GetNewLineCharacter(); EditorOperations = editorOperationsFactory.GetEditorOperations(TextView); _buffer = new OutputBuffer(window); OutputWriter = new InteractiveWindowWriter(window, spans: null); SortedSpans errorSpans = new SortedSpans(); ErrorOutputWriter = new InteractiveWindowWriter(window, errorSpans); OutputClassifierProvider.AttachToBuffer(OutputBuffer, errorSpans); }
private static IWpfTextView CreateTextView(ITextBuffer historyTextBuffer, ITextEditorFactoryService textEditorFactory) { var textView = textEditorFactory.CreateTextView(historyTextBuffer, textEditorFactory.DefaultRoles.UnionWith(textEditorFactory.CreateTextViewRoleSet(TextViewRole))); textView.Options.SetOptionValue(DefaultTextViewHostOptions.VerticalScrollBarId, true); textView.Options.SetOptionValue(DefaultTextViewHostOptions.HorizontalScrollBarId, true); textView.Options.SetOptionValue(DefaultTextViewHostOptions.SelectionMarginId, false); textView.Options.SetOptionValue(DefaultTextViewHostOptions.GlyphMarginId, false); textView.Options.SetOptionValue(DefaultTextViewHostOptions.ZoomControlId, false); textView.Options.SetOptionValue(DefaultWpfViewOptions.EnableMouseWheelZoomId, false); textView.Options.SetOptionValue(DefaultWpfViewOptions.EnableHighlightCurrentLineId, false); textView.Options.SetOptionValue(DefaultTextViewOptions.AutoScrollId, true); textView.Options.SetOptionValue(DefaultTextViewOptions.BraceCompletionEnabledOptionId, false); textView.Options.SetOptionValue(DefaultTextViewOptions.DragDropEditingId, false); textView.Options.SetOptionValue(DefaultTextViewOptions.UseVirtualSpaceId, false); textView.Caret.IsHidden = true; return(textView); }
public InteractiveWindow( IInteractiveWindowEditorFactoryService host, IContentTypeRegistryService contentTypeRegistry, ITextBufferFactoryService bufferFactory, IProjectionBufferFactoryService projectionBufferFactory, IEditorOperationsFactoryService editorOperationsFactory, ITextEditorFactoryService editorFactory, IIntellisenseSessionStackMapService intellisenseSessionStackMap, ISmartIndentationService smartIndenterService, IInteractiveEvaluator evaluator) { if (evaluator == null) { throw new ArgumentNullException(nameof(evaluator)); } _dangerous_uiOnly = new UIThreadOnly(this, host); this.Properties = new PropertyCollection(); _history = new History(); _intellisenseSessionStackMap = intellisenseSessionStackMap; _smartIndenterService = smartIndenterService; var textContentType = contentTypeRegistry.GetContentType("text"); var replContentType = contentTypeRegistry.GetContentType(PredefinedInteractiveContentTypes.InteractiveContentTypeName); var replOutputContentType = contentTypeRegistry.GetContentType(PredefinedInteractiveContentTypes.InteractiveOutputContentTypeName); _outputBuffer = bufferFactory.CreateTextBuffer(replOutputContentType); _standardInputBuffer = bufferFactory.CreateTextBuffer(); var projBuffer = projectionBufferFactory.CreateProjectionBuffer( new EditResolver(this), Array.Empty<object>(), ProjectionBufferOptions.None, replContentType); // we need to set IReplPromptProvider property before TextViewHost is instantiated so that ReplPromptTaggerProvider can bind to it projBuffer.Properties.AddProperty(typeof(InteractiveWindow), this); _projectionBuffer = projBuffer; _dangerous_uiOnly.AppendNewOutputProjectionBuffer(); // Constructor runs on UI thread. projBuffer.Changed += new EventHandler<TextContentChangedEventArgs>(ProjectionBufferChanged); var roleSet = editorFactory.CreateTextViewRoleSet( PredefinedTextViewRoles.Analyzable, PredefinedTextViewRoles.Editable, PredefinedTextViewRoles.Interactive, PredefinedTextViewRoles.Zoomable, PredefinedInteractiveTextViewRoles.InteractiveTextViewRole); _textView = host.CreateTextView(this, projBuffer, roleSet); _textView.Caret.PositionChanged += CaretPositionChanged; _textView.Options.SetOptionValue(DefaultTextViewHostOptions.HorizontalScrollBarId, false); _textView.Options.SetOptionValue(DefaultTextViewHostOptions.LineNumberMarginId, false); _textView.Options.SetOptionValue(DefaultTextViewHostOptions.OutliningMarginId, false); _textView.Options.SetOptionValue(DefaultTextViewHostOptions.GlyphMarginId, false); _textView.Options.SetOptionValue(DefaultTextViewOptions.WordWrapStyleId, WordWrapStyles.WordWrap); _lineBreakString = _textView.Options.GetNewLineCharacter(); _dangerous_uiOnly.EditorOperations = editorOperationsFactory.GetEditorOperations(_textView); // Constructor runs on UI thread. _buffer = new OutputBuffer(this); _outputWriter = new InteractiveWindowWriter(this, spans: null); SortedSpans errorSpans = new SortedSpans(); _errorOutputWriter = new InteractiveWindowWriter(this, errorSpans); OutputClassifierProvider.AttachToBuffer(_outputBuffer, errorSpans); RequiresUIThread(); evaluator.CurrentWindow = this; _evaluator = evaluator; }
public WpfDifferenceViewElementFactory(IWpfDifferenceViewerFactoryService diffFactory, ITextEditorFactoryService textEditorFactoryService) { _diffFactory = diffFactory; _previewRoleSet = textEditorFactoryService.CreateTextViewRoleSet(PredefinedTextViewRoles.Analyzable); }