public override WpfHexView Create(HexBuffer buffer, VSTE.ITextViewRoleSet roles, VSTE.IEditorOptions parentOptions, HexViewCreatorOptions options) { if (buffer == null) throw new ArgumentNullException(nameof(buffer)); if (roles == null) throw new ArgumentNullException(nameof(roles)); if (parentOptions == null) throw new ArgumentNullException(nameof(parentOptions)); var wpfHexView = new WpfHexViewImpl(buffer, roles, parentOptions, hexEditorOptionsFactoryService, commandService, formattedHexSourceFactoryService, hexViewClassifierAggregatorService, hexAndAdornmentSequencerFactoryService, hexBufferLineProviderFactoryService, classificationFormatMapService, editorFormatMapService, adornmentLayerDefinitionService, lineTransformProviderService, spaceReservationStackProvider, wpfHexViewCreationListeners, classificationTypeRegistryService); if (options?.MenuGuid != null) { var guidObjectsProvider = new GuidObjectsProvider(wpfHexView, options?.CreateGuidObjects); menuService.InitializeContextMenu(wpfHexView.VisualElement, options.MenuGuid.Value, guidObjectsProvider, new HexContextMenuInitializer(wpfHexView)); } HexViewCreated?.Invoke(this, new HexViewCreatedEventArgs(wpfHexView)); foreach (var lz in hexEditorFactoryServiceListeners) lz.Value.HexViewCreated(wpfHexView); return wpfHexView; }
IDsWpfTextView CreateTextViewImpl(ITextViewModel textViewModel, ITextViewRoleSet roles, IEditorOptions parentOptions, TextViewCreatorOptions options) { var wpfTextView = new WpfTextView(textViewModel, roles, parentOptions, editorOptionsFactoryService, commandService, smartIndentationService, formattedTextSourceFactoryService, viewClassifierAggregatorService, textAndAdornmentSequencerFactoryService, classificationFormatMapService, editorFormatMapService, adornmentLayerDefinitionService, lineTransformProviderService, spaceReservationStackProvider, wpfTextViewConnectionListenerServiceProvider, bufferGraphFactoryService, wpfTextViewCreationListeners); if (options?.MenuGuid != null) { var guidObjectsProvider = new GuidObjectsProvider(wpfTextView, options?.CreateGuidObjects); menuService.InitializeContextMenu(wpfTextView.VisualElement, options.MenuGuid.Value, guidObjectsProvider, new ContextMenuInitializer(wpfTextView)); } if (options?.EnableUndoHistory != false) textViewUndoManagerProvider.Value.GetTextViewUndoManager(wpfTextView); TextViewCreated?.Invoke(this, new TextViewCreatedEventArgs(wpfTextView)); return wpfTextView; }