internal LineNumberVisualStore(ILineFormatTracker formatTracker) { _formatTracker = formatTracker ?? throw new ArgumentNullException(nameof(formatTracker)); _cache = new Dictionary <int, LineNumberVisual>(); }
internal LineNumberDrawer(Canvas canvas, ILineFormatTracker formatTracker) { _canvas = canvas ?? throw new ArgumentNullException(nameof(canvas)); _formatTracker = formatTracker ?? throw new ArgumentNullException(nameof(formatTracker)); _store = new LineNumberVisualStore(formatTracker); }
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(); } }