b11d445abea31c6a63f180369c35835d3b5d64018adc51e12c3365caf167f0d9191c29d19a847b63ecd5f29aae0726ba73b41c60a45565c563d7e3e2cdc0ea 1.4 KB

1234567891011121314151617181920212223242526
  1. /*---------------------------------------------------------------------------------------------
  2. * Copyright (c) Microsoft Corporation. All rights reserved.
  3. * Licensed under the MIT License. See License.txt in the project root for license information.
  4. *--------------------------------------------------------------------------------------------*/
  5. import { Range } from '../core/range.js';
  6. /**
  7. * Contains all data needed to render at a specific viewport.
  8. */
  9. export class ViewportData {
  10. constructor(selections, partialData, whitespaceViewportData, model) {
  11. this.selections = selections;
  12. this.startLineNumber = partialData.startLineNumber | 0;
  13. this.endLineNumber = partialData.endLineNumber | 0;
  14. this.relativeVerticalOffset = partialData.relativeVerticalOffset;
  15. this.bigNumbersDelta = partialData.bigNumbersDelta | 0;
  16. this.whitespaceViewportData = whitespaceViewportData;
  17. this._model = model;
  18. this.visibleRange = new Range(partialData.startLineNumber, this._model.getLineMinColumn(partialData.startLineNumber), partialData.endLineNumber, this._model.getLineMaxColumn(partialData.endLineNumber));
  19. }
  20. getViewLineRenderingData(lineNumber) {
  21. return this._model.getViewportViewLineRenderingData(this.visibleRange, lineNumber);
  22. }
  23. getDecorationsInViewport() {
  24. return this._model.getDecorationsInViewport(this.visibleRange);
  25. }
  26. }