Exemplo n.º 1
0
        internal LineNumberVisualStore(ILineFormatTracker formatTracker)
        {
            _formatTracker = formatTracker
                             ?? throw new ArgumentNullException(nameof(formatTracker));

            _cache = new Dictionary <int, LineNumberVisual>();
        }
Exemplo n.º 2
0
        internal LineNumberDrawer(Canvas canvas, ILineFormatTracker formatTracker)
        {
            _canvas = canvas
                      ?? throw new ArgumentNullException(nameof(canvas));

            _formatTracker = formatTracker
                             ?? throw new ArgumentNullException(nameof(formatTracker));

            _store = new LineNumberVisualStore(formatTracker);
        }
Exemplo n.º 3
0
        internal RelativeLineNumbersMargin(
            IWpfTextView textView,
            ILineFormatTracker formatTracker,
            IVimLocalSettings localSettings,
            IWpfTextViewMargin marginContainer,
            IProtectedOperations protectedOperations)
            : base(VimWpfConstants.LineNumbersMarginName)
        {
            _textView = textView
                        ?? throw new ArgumentNullException(nameof(textView));

            _formatTracker = formatTracker
                             ?? throw new ArgumentNullException(nameof(formatTracker));

            _localSettings = localSettings
                             ?? throw new ArgumentNullException(nameof(localSettings));

            _marginContainer = marginContainer
                               ?? throw new ArgumentNullException(nameof(marginContainer));

            _protectedOperations = protectedOperations
                                   ?? throw new ArgumentNullException(nameof(protectedOperations));

            _lineNumbersCalculator = new LineNumbersCalculator(_textView, _localSettings);

            _lineNumberDrawer = new LineNumberDrawer(Canvas, _formatTracker);

            _linesTracker = new LineNumbersTracker(_textView);

            _linesTracker.LineNumbersChanged += (x, y) => RedrawLines();
            _localSettings.SettingChanged    += (s, e) => UpdateVimNumberSettings(e);
            _textView.Options.OptionChanged  += (s, e) => OnEditorOptionsChanged(e);

            SetVisualStudioMarginVisibility(Visibility.Hidden);
            if (_textView.VisualElement.IsLoaded)
            {
                RedrawLines();
            }
        }