/// <summary> /// Creates editor column guidelines /// </summary> /// <param name="view">The <see cref="IWpfTextView"/> upon which the adornment will be drawn</param> /// <param name="settings">The guideline settings.</param> /// <param name="guidelineBrush">The guideline brush.</param> /// <param name="codingConventionsManager">The coding conventions manager for handling .editorconfig settings.</param> /// <param name="telemetry">Telemetry interface.</param> public ColumnGuide(IWpfTextView view, ITextEditorGuidesSettings settings, GuidelineBrush guidelineBrush, ICodingConventionsManager codingConventionsManager, ITelemetry telemetry) { _view = view; _telemetry = telemetry; _guidelineBrush = guidelineBrush; _guidelineBrush.BrushChanged += GuidelineBrushChanged; _strokeParameters = StrokeParameters.FromBrush(_guidelineBrush.Brush); if (codingConventionsManager != null && view.TryGetTextDocument(out var textDocument)) { _codingConventionsCancellationTokenSource = new CancellationTokenSource(); var fireAndForgetTask = LoadGuidelinesFromEditorConfigAsync(codingConventionsManager, textDocument.FilePath); } InitializeGuidelines(settings.GuideLinePositionsInChars); _view.LayoutChanged += OnViewLayoutChanged; _settingsChanged = settings as INotifyPropertyChanged; if (_settingsChanged != null) { _settingsChanged.PropertyChanged += SettingsChanged; } _view.Closed += ViewClosed; }
void SettingsChanged(object sender, PropertyChangedEventArgs e) { ITextEditorGuidesSettings settings = sender as ITextEditorGuidesSettings; if (settings != null && e.PropertyName == nameof(ITextEditorGuidesSettings.GuideLinePositionsInChars)) { InitializeGuidelines(settings); UpdatePositions(); AddGuidelinesToAdornmentLayer(); } }
/// <summary> /// Creates editor column guidelines /// </summary> /// <param name="view">The <see cref="IWpfTextView"/> upon which the adornment will be drawn</param> /// <param name="settings">The guideline settings.</param> /// <param name="editorFormatMap">The editor format map used to discover formatting options (guideline color).</param> public ColumnGuide(IWpfTextView view, ITextEditorGuidesSettings settings, IEditorFormatMap editorFormatMap) { _view = view; _formatMap = editorFormatMap; InitializeGuidelines(settings); _view.LayoutChanged += OnViewLayoutChanged; _settingsChanged = settings as INotifyPropertyChanged; if (_settingsChanged != null) { _settingsChanged.PropertyChanged += SettingsChanged; } _formatMap.FormatMappingChanged += FormatMappingChanged; _view.Closed += ViewClosed; }
/// <summary> /// Creates editor column guidelines /// </summary> /// <param name="view">The <see cref="IWpfTextView"/> upon which the adornment will be drawn</param> /// <param name="settings">The guideline settings.</param> /// <param name="guidelineBrush">The guideline brush.</param> /// <param name="telemetry">Telemetry interface.</param> public ColumnGuide(IWpfTextView view, ITextEditorGuidesSettings settings, GuidelineBrush guidelineBrush, ITelemetry telemetry) { _view = view; _telemetry = telemetry; _guidelineBrush = guidelineBrush; _guidelineBrush.BrushChanged += GuidelineBrushChanged; InitializeGuidelines(settings); _view.LayoutChanged += OnViewLayoutChanged; _settingsChanged = settings as INotifyPropertyChanged; if (_settingsChanged != null) { _settingsChanged.PropertyChanged += SettingsChanged; } _view.Closed += ViewClosed; }
private IList <Line> CreateGuidelines(ITextEditorGuidesSettings settings) { var lineBrush = _guidelineBrush.Brush; var dashArray = new DoubleCollection(new double[] { 1.0, 3.0 }); var result = new List <Line>(); foreach (int column in settings.GuideLinePositionsInChars) { var line = new Line() { DataContext = column, Stroke = lineBrush, StrokeThickness = _lineThickness, StrokeDashArray = dashArray }; result.Add(line); } return(result); }
private void InitializeGuidelines(ITextEditorGuidesSettings settings) { _guidelines = CreateGuidelines(settings); }