コード例 #1
0
ファイル: ColumnGuide.cs プロジェクト: xgnit/EditorGuidelines
        /// <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;
        }
コード例 #2
0
        void SettingsChanged(object sender, PropertyChangedEventArgs e)
        {
            ITextEditorGuidesSettings settings = sender as ITextEditorGuidesSettings;

            if (settings != null && e.PropertyName == nameof(ITextEditorGuidesSettings.GuideLinePositionsInChars))
            {
                InitializeGuidelines(settings);
                UpdatePositions();
                AddGuidelinesToAdornmentLayer();
            }
        }
コード例 #3
0
        /// <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;
        }
コード例 #4
0
        /// <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;
        }
コード例 #5
0
        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);
        }
コード例 #6
0
 private void InitializeGuidelines(ITextEditorGuidesSettings settings)
 {
     _guidelines = CreateGuidelines(settings);
 }