public CodeViewUserControl(Window window, ColumnDefinition column = null, IWpfTextView textView = null, IOutliningManager outliningManager = null, VisualStudioWorkspace workspace = null, CodeNavMargin margin = null, DTE dte = null) { InitializeComponent(); // Setup viewmodel as datacontext CodeDocumentViewModel = new CodeDocumentViewModel(); DataContext = CodeDocumentViewModel; // Setup backgroundworker to update datacontext _backgroundWorker = new BackgroundWorker { WorkerSupportsCancellation = true }; _backgroundWorker.DoWork += BackgroundWorker_DoWork; _backgroundWorker.RunWorkerCompleted += BackgroundWorker_RunWorkerCompleted; _window = window; _column = column; TextView = textView; OutliningManager = outliningManager; _workspace = workspace; _margin = margin; Dte = dte; VSColorTheme.ThemeChanged += VSColorTheme_ThemeChanged; }
/// <summary> /// Creates an <see cref="IWpfTextViewMargin"/> for the given <see cref="IWpfTextViewHost"/>. /// </summary> /// <param name="wpfTextViewHost">The <see cref="IWpfTextViewHost"/> for which to create the <see cref="IWpfTextViewMargin"/>.</param> /// <param name="marginContainer">The margin that will contain the newly-created margin.</param> /// <returns>The <see cref="IWpfTextViewMargin"/>. /// The value may be null if this <see cref="IWpfTextViewMarginProvider"/> does not participate for this context. /// </returns> public IWpfTextViewMargin CreateMargin(IWpfTextViewHost wpfTextViewHost, IWpfTextViewMargin marginContainer) { if (Settings.Default.MarginSide != MarginSideEnum.Right) { return(null); } var dte = (DTE)_serviceProvider.GetService(typeof(DTE)); var outliningManager = OutliningHelper.GetManager(_serviceProvider, wpfTextViewHost.TextView); Logger.Initialize(_serviceProvider, "CodeNav"); var codeNav = new CodeNavMargin(wpfTextViewHost, dte, outliningManager, Workspace, MarginSideEnum.Right); return(codeNav); }
public static IWpfTextViewMargin CreateMargin(IWpfTextViewHost wpfTextViewHost, VisualStudioWorkspace visualStudioWorkspace, IServiceProvider serviceProvider, MarginSideEnum side) { if (Settings.Default.MarginSide != side) { return(null); } System.Windows.Threading.Dispatcher.CurrentDispatcher.VerifyAccess(); var dte = (DTE)serviceProvider.GetService(typeof(DTE)); var outliningManagerService = OutliningHelper.GetOutliningManagerService(serviceProvider); var codeNav = new CodeNavMargin(wpfTextViewHost, dte, outliningManagerService, visualStudioWorkspace, side); return(codeNav); }
public CodeViewUserControlTop(Window window, RowDefinition row = null, IWpfTextView textView = null, IOutliningManagerService outliningManagerService = null, VisualStudioWorkspace workspace = null, CodeNavMargin margin = null, DTE dte = null) { InitializeComponent(); // Setup viewmodel as datacontext CodeDocumentViewModel = new CodeDocumentViewModel(); DataContext = CodeDocumentViewModel; _window = window; _row = row; TextView = textView; OutliningManagerService = outliningManagerService; _workspace = workspace; _margin = margin; Dte = dte; LogHelper.Dte = dte; VSColorTheme.ThemeChanged += VSColorTheme_ThemeChanged; }