提交 2b9e9c83 编写于 作者: A Alex Dima

Use directly the RenderingContext

上级 6a663ab9
......@@ -6,13 +6,13 @@
'use strict';
import { ViewEventHandler } from 'vs/editor/common/viewModel/viewEventHandler';
import { IRenderingContext } from 'vs/editor/common/view/renderingContext';
import { RenderingContext } from 'vs/editor/common/view/renderingContext';
export abstract class DynamicViewOverlay extends ViewEventHandler {
public abstract dispose(): void;
public abstract prepareRender(ctx: IRenderingContext): void;
public abstract prepareRender(ctx: RenderingContext): void;
public abstract render(startLineNumber: number, lineNumber: number): string;
......
......@@ -906,7 +906,7 @@ export class View extends ViewEventHandler implements editorBrowser.IView, IDisp
this.keyboardHandler.writeToTextArea();
}
let renderingContext = new RenderingContext(this.viewLines, this.layoutProvider, viewportData);
let renderingContext = new RenderingContext(this.layoutProvider, viewportData, this.viewLines);
// Render the rest of the parts
for (let i = 0, len = viewPartsToRender.length; i < len; i++) {
......
......@@ -11,7 +11,7 @@ import { IVisibleLine, ViewLayer } from 'vs/editor/browser/view/viewLayer';
import { DynamicViewOverlay } from 'vs/editor/browser/view/dynamicViewOverlay';
import { Configuration } from 'vs/editor/browser/config/configuration';
import { ViewContext } from 'vs/editor/common/view/viewContext';
import { IRenderingContext, IRestrictedRenderingContext } from 'vs/editor/common/view/renderingContext';
import { RenderingContext, RestrictedRenderingContext } from 'vs/editor/common/view/renderingContext';
import { ViewportData } from 'vs/editor/common/viewLayout/viewLinesViewportData';
import * as viewEvents from 'vs/editor/common/view/viewEvents';
......@@ -87,7 +87,7 @@ export class ViewOverlays extends ViewLayer<ViewOverlayLine> {
}
public prepareRender(ctx: IRenderingContext): void {
public prepareRender(ctx: RenderingContext): void {
let toRender = this._dynamicOverlays.filter(overlay => overlay.shouldRender());
for (let i = 0, len = toRender.length; i < len; i++) {
......@@ -99,14 +99,14 @@ export class ViewOverlays extends ViewLayer<ViewOverlayLine> {
return null;
}
public render(ctx: IRestrictedRenderingContext): void {
public render(ctx: RestrictedRenderingContext): void {
// Overwriting to bypass `shouldRender` flag
this._viewOverlaysRender(ctx);
this.domNode.toggleClassName('focused', this._isFocused);
}
_viewOverlaysRender(ctx: IRestrictedRenderingContext): void {
_viewOverlaysRender(ctx: RestrictedRenderingContext): void {
super._renderLines(ctx.viewportData);
}
}
......@@ -201,7 +201,7 @@ export class ContentViewOverlays extends ViewOverlays {
// --- end event handlers
_viewOverlaysRender(ctx: IRestrictedRenderingContext): void {
_viewOverlaysRender(ctx: RestrictedRenderingContext): void {
super._viewOverlaysRender(ctx);
this.domNode.setWidth(Math.max(ctx.scrollWidth, this._contentWidth));
......@@ -246,7 +246,7 @@ export class MarginViewOverlays extends ViewOverlays {
return super.onScrollChanged(e) || e.scrollHeightChanged;
}
_viewOverlaysRender(ctx: IRestrictedRenderingContext): void {
_viewOverlaysRender(ctx: RestrictedRenderingContext): void {
super._viewOverlaysRender(ctx);
let height = Math.min(ctx.scrollHeight, 1000000);
this.domNode.setHeight(height);
......
......@@ -6,7 +6,7 @@
import { ViewEventHandler } from 'vs/editor/common/viewModel/viewEventHandler';
import { ViewContext } from 'vs/editor/common/view/viewContext';
import { IRenderingContext, IRestrictedRenderingContext } from 'vs/editor/common/view/renderingContext';
import { RenderingContext, RestrictedRenderingContext } from 'vs/editor/common/view/renderingContext';
export abstract class ViewPart extends ViewEventHandler {
......@@ -23,8 +23,8 @@ export abstract class ViewPart extends ViewEventHandler {
this._context = null;
}
public abstract prepareRender(ctx: IRenderingContext): void;
public abstract render(ctx: IRestrictedRenderingContext): void;
public abstract prepareRender(ctx: RenderingContext): void;
public abstract render(ctx: RestrictedRenderingContext): void;
}
export const enum PartFingerprint {
......
......@@ -11,7 +11,7 @@ import * as editorCommon from 'vs/editor/common/editorCommon';
import { ClassNames, ContentWidgetPositionPreference, IContentWidget } from 'vs/editor/browser/editorBrowser';
import { ViewPart, PartFingerprint, PartFingerprints } from 'vs/editor/browser/view/viewPart';
import { ViewContext } from 'vs/editor/common/view/viewContext';
import { IRenderingContext, IRestrictedRenderingContext } from 'vs/editor/common/view/renderingContext';
import { RenderingContext, RestrictedRenderingContext } from 'vs/editor/common/view/renderingContext';
import { Position } from 'vs/editor/common/core/position';
import * as viewEvents from 'vs/editor/common/view/viewEvents';
......@@ -215,7 +215,7 @@ export class ViewContentWidgets extends ViewPart {
return false;
}
private _layoutBoxInViewport(topLeft: Coordinate, width: number, height: number, ctx: IRenderingContext): IBoxLayoutResult {
private _layoutBoxInViewport(topLeft: Coordinate, width: number, height: number, ctx: RenderingContext): IBoxLayoutResult {
// Our visible box is split horizontally by the current line => 2 boxes
// a) the box above the line
......@@ -249,7 +249,7 @@ export class ViewContentWidgets extends ViewPart {
};
}
private _layoutBoxInPage(topLeft: Coordinate, width: number, height: number, ctx: IRenderingContext): IBoxLayoutResult {
private _layoutBoxInPage(topLeft: Coordinate, width: number, height: number, ctx: RenderingContext): IBoxLayoutResult {
let left0 = topLeft.left - ctx.viewportLeft;
if (left0 + width < 0 || left0 > this._contentWidth) {
......@@ -308,7 +308,7 @@ export class ViewContentWidgets extends ViewPart {
return r;
}
private _getTopLeft(ctx: IRenderingContext, position: Position): Coordinate {
private _getTopLeft(ctx: RenderingContext, position: Position): Coordinate {
const visibleRange = ctx.visibleRangeForPosition(position);
if (!visibleRange) {
return null;
......@@ -318,7 +318,7 @@ export class ViewContentWidgets extends ViewPart {
return new Coordinate(top, visibleRange.left);
}
private _prepareRenderWidget(widgetData: IWidgetData, ctx: IRenderingContext): IMyWidgetRenderData {
private _prepareRenderWidget(widgetData: IWidgetData, ctx: RenderingContext): IMyWidgetRenderData {
if (!widgetData.position || !widgetData.preference) {
return null;
}
......@@ -400,7 +400,7 @@ export class ViewContentWidgets extends ViewPart {
return null;
}
public prepareRender(ctx: IRenderingContext): void {
public prepareRender(ctx: RenderingContext): void {
let data: IMyRenderData = {};
let keys = Object.keys(this._widgets);
......@@ -415,7 +415,7 @@ export class ViewContentWidgets extends ViewPart {
this._renderData = data;
}
public render(ctx: IRestrictedRenderingContext): void {
public render(ctx: RestrictedRenderingContext): void {
let data = this._renderData;
let keys = Object.keys(this._widgets);
......
......@@ -8,7 +8,7 @@
import 'vs/css!./currentLineHighlight';
import { DynamicViewOverlay } from 'vs/editor/browser/view/dynamicViewOverlay';
import { ViewContext } from 'vs/editor/common/view/viewContext';
import { IRenderingContext } from 'vs/editor/common/view/renderingContext';
import { RenderingContext } from 'vs/editor/common/view/renderingContext';
import * as viewEvents from 'vs/editor/common/view/viewEvents';
export class CurrentLineHighlightOverlay extends DynamicViewOverlay {
......@@ -100,7 +100,7 @@ export class CurrentLineHighlightOverlay extends DynamicViewOverlay {
}
// --- end event handlers
public prepareRender(ctx: IRenderingContext): void {
public prepareRender(ctx: RenderingContext): void {
this._scrollWidth = ctx.scrollWidth;
}
......
......@@ -8,7 +8,7 @@
import 'vs/css!./currentLineMarginHighlight';
import { DynamicViewOverlay } from 'vs/editor/browser/view/dynamicViewOverlay';
import { ViewContext } from 'vs/editor/common/view/viewContext';
import { IRenderingContext } from 'vs/editor/common/view/renderingContext';
import { RenderingContext } from 'vs/editor/common/view/renderingContext';
import * as viewEvents from 'vs/editor/common/view/viewEvents';
export class CurrentLineMarginHighlightOverlay extends DynamicViewOverlay {
......@@ -79,7 +79,7 @@ export class CurrentLineMarginHighlightOverlay extends DynamicViewOverlay {
}
// --- end event handlers
public prepareRender(ctx: IRenderingContext): void {
public prepareRender(ctx: RenderingContext): void {
}
public render(startLineNumber: number, lineNumber: number): string {
......
......@@ -9,7 +9,7 @@ import 'vs/css!./decorations';
import { DynamicViewOverlay } from 'vs/editor/browser/view/dynamicViewOverlay';
import { Range } from 'vs/editor/common/core/range';
import { ViewContext } from 'vs/editor/common/view/viewContext';
import { IRenderingContext } from 'vs/editor/common/view/renderingContext';
import { RenderingContext } from 'vs/editor/common/view/renderingContext';
import { ViewModelDecoration } from 'vs/editor/common/viewModel/viewModel';
import * as viewEvents from 'vs/editor/common/view/viewEvents';
......@@ -74,7 +74,7 @@ export class DecorationsOverlay extends DynamicViewOverlay {
}
// --- end event handlers
public prepareRender(ctx: IRenderingContext): void {
public prepareRender(ctx: RenderingContext): void {
let _decorations = ctx.getDecorationsInViewport();
// Keep only decorations with `className`
......@@ -115,7 +115,7 @@ export class DecorationsOverlay extends DynamicViewOverlay {
this._renderResult = output;
}
private _renderWholeLineDecorations(ctx: IRenderingContext, decorations: ViewModelDecoration[], output: string[]): void {
private _renderWholeLineDecorations(ctx: RenderingContext, decorations: ViewModelDecoration[], output: string[]): void {
let lineHeight = String(this._lineHeight);
let visibleStartLineNumber = ctx.visibleRange.startLineNumber;
let visibleEndLineNumber = ctx.visibleRange.endLineNumber;
......@@ -144,7 +144,7 @@ export class DecorationsOverlay extends DynamicViewOverlay {
}
}
private _renderNormalDecorations(ctx: IRenderingContext, decorations: ViewModelDecoration[], output: string[]): void {
private _renderNormalDecorations(ctx: RenderingContext, decorations: ViewModelDecoration[], output: string[]): void {
let lineHeight = String(this._lineHeight);
let visibleStartLineNumber = ctx.visibleRange.startLineNumber;
......
......@@ -14,7 +14,7 @@ import { ViewPart, PartFingerprint, PartFingerprints } from 'vs/editor/browser/v
import { Scrollable } from 'vs/base/common/scrollable';
import { ViewContext } from 'vs/editor/common/view/viewContext';
import * as viewEvents from 'vs/editor/common/view/viewEvents';
import { IRenderingContext, IRestrictedRenderingContext } from 'vs/editor/common/view/renderingContext';
import { RenderingContext, RestrictedRenderingContext } from 'vs/editor/common/view/renderingContext';
import { FastDomNode, createFastDomNode } from 'vs/base/browser/fastDomNode';
export class EditorScrollbar extends ViewPart {
......@@ -193,11 +193,11 @@ export class EditorScrollbar extends ViewPart {
// --- end event handlers
public prepareRender(ctx: IRenderingContext): void {
public prepareRender(ctx: RenderingContext): void {
// Nothing to do
}
public render(ctx: IRestrictedRenderingContext): void {
public render(ctx: RestrictedRenderingContext): void {
this.scrollbar.renderNow();
}
}
......@@ -8,7 +8,7 @@
import 'vs/css!./glyphMargin';
import { DynamicViewOverlay } from 'vs/editor/browser/view/dynamicViewOverlay';
import { ViewContext } from 'vs/editor/common/view/viewContext';
import { IRenderingContext } from 'vs/editor/common/view/renderingContext';
import { RenderingContext } from 'vs/editor/common/view/renderingContext';
import * as viewEvents from 'vs/editor/common/view/viewEvents';
export class DecorationToRender {
......@@ -148,7 +148,7 @@ export class GlyphMarginOverlay extends DedupOverlay {
// --- end event handlers
protected _getDecorations(ctx: IRenderingContext): DecorationToRender[] {
protected _getDecorations(ctx: RenderingContext): DecorationToRender[] {
let decorations = ctx.getDecorationsInViewport();
let r: DecorationToRender[] = [];
for (let i = 0, len = decorations.length; i < len; i++) {
......@@ -161,7 +161,7 @@ export class GlyphMarginOverlay extends DedupOverlay {
return r;
}
public prepareRender(ctx: IRenderingContext): void {
public prepareRender(ctx: RenderingContext): void {
if (!this._glyphMargin) {
this._renderResult = null;
return;
......
......@@ -8,7 +8,7 @@
import 'vs/css!./indentGuides';
import { DynamicViewOverlay } from 'vs/editor/browser/view/dynamicViewOverlay';
import { ViewContext } from 'vs/editor/common/view/viewContext';
import { IRenderingContext } from 'vs/editor/common/view/renderingContext';
import { RenderingContext } from 'vs/editor/common/view/renderingContext';
import * as viewEvents from 'vs/editor/common/view/viewEvents';
export class IndentGuidesOverlay extends DynamicViewOverlay {
......@@ -71,7 +71,7 @@ export class IndentGuidesOverlay extends DynamicViewOverlay {
// --- end event handlers
public prepareRender(ctx: IRenderingContext): void {
public prepareRender(ctx: RenderingContext): void {
if (!this._enabled) {
this._renderResult = null;
return;
......
......@@ -10,7 +10,7 @@ import * as platform from 'vs/base/common/platform';
import { DynamicViewOverlay } from 'vs/editor/browser/view/dynamicViewOverlay';
import { ClassNames } from 'vs/editor/browser/editorBrowser';
import { ViewContext } from 'vs/editor/common/view/viewContext';
import { IRenderingContext } from 'vs/editor/common/view/renderingContext';
import { RenderingContext } from 'vs/editor/common/view/renderingContext';
import * as viewEvents from 'vs/editor/common/view/viewEvents';
export class LineNumbersOverlay extends DynamicViewOverlay {
......@@ -95,7 +95,7 @@ export class LineNumbersOverlay extends DynamicViewOverlay {
// --- end event handlers
public prepareRender(ctx: IRenderingContext): void {
public prepareRender(ctx: RenderingContext): void {
if (!this._renderLineNumbers) {
this._renderResult = null;
return;
......
......@@ -8,7 +8,7 @@
import 'vs/css!./linesDecorations';
import { DecorationToRender, DedupOverlay } from 'vs/editor/browser/viewParts/glyphMargin/glyphMargin';
import { ViewContext } from 'vs/editor/common/view/viewContext';
import { IRenderingContext } from 'vs/editor/common/view/renderingContext';
import { RenderingContext } from 'vs/editor/common/view/renderingContext';
import * as viewEvents from 'vs/editor/common/view/viewEvents';
export class LinesDecorationsOverlay extends DedupOverlay {
......@@ -76,7 +76,7 @@ export class LinesDecorationsOverlay extends DedupOverlay {
// --- end event handlers
protected _getDecorations(ctx: IRenderingContext): DecorationToRender[] {
protected _getDecorations(ctx: RenderingContext): DecorationToRender[] {
let decorations = ctx.getDecorationsInViewport();
let r: DecorationToRender[] = [];
for (let i = 0, len = decorations.length; i < len; i++) {
......@@ -89,7 +89,7 @@ export class LinesDecorationsOverlay extends DedupOverlay {
return r;
}
public prepareRender(ctx: IRenderingContext): void {
public prepareRender(ctx: RenderingContext): void {
let visibleStartLineNumber = ctx.visibleRange.startLineNumber;
let visibleEndLineNumber = ctx.visibleRange.endLineNumber;
let toRender = this._render(visibleStartLineNumber, visibleEndLineNumber, this._getDecorations(ctx));
......
......@@ -9,7 +9,7 @@ import { FastDomNode, createFastDomNode } from 'vs/base/browser/fastDomNode';
import { ClassNames } from 'vs/editor/browser/editorBrowser';
import { ViewPart } from 'vs/editor/browser/view/viewPart';
import { ViewContext } from 'vs/editor/common/view/viewContext';
import { IRenderingContext, IRestrictedRenderingContext } from 'vs/editor/common/view/renderingContext';
import { RenderingContext, RestrictedRenderingContext } from 'vs/editor/common/view/renderingContext';
import * as viewEvents from 'vs/editor/common/view/viewEvents';
export class Margin extends ViewPart {
......@@ -73,11 +73,11 @@ export class Margin extends ViewPart {
// --- end event handlers
public prepareRender(ctx: IRenderingContext): void {
public prepareRender(ctx: RenderingContext): void {
// Nothing to read
}
public render(ctx: IRestrictedRenderingContext): void {
public render(ctx: RestrictedRenderingContext): void {
const adjustedScrollTop = ctx.viewportTop - ctx.bigNumbersDelta;
if (this._canUseTranslate3d) {
let transform = 'translate3d(0px, ' + -adjustedScrollTop + 'px, 0px)';
......
......@@ -8,7 +8,7 @@
import 'vs/css!./marginDecorations';
import { DecorationToRender, DedupOverlay } from 'vs/editor/browser/viewParts/glyphMargin/glyphMargin';
import { ViewContext } from 'vs/editor/common/view/viewContext';
import { IRenderingContext } from 'vs/editor/common/view/renderingContext';
import { RenderingContext } from 'vs/editor/common/view/renderingContext';
import * as viewEvents from 'vs/editor/common/view/viewEvents';
export class MarginViewLineDecorationsOverlay extends DedupOverlay {
......@@ -66,7 +66,7 @@ export class MarginViewLineDecorationsOverlay extends DedupOverlay {
// --- end event handlers
protected _getDecorations(ctx: IRenderingContext): DecorationToRender[] {
protected _getDecorations(ctx: RenderingContext): DecorationToRender[] {
let decorations = ctx.getDecorationsInViewport();
let r: DecorationToRender[] = [];
for (let i = 0, len = decorations.length; i < len; i++) {
......@@ -79,7 +79,7 @@ export class MarginViewLineDecorationsOverlay extends DedupOverlay {
return r;
}
public prepareRender(ctx: IRenderingContext): void {
public prepareRender(ctx: RenderingContext): void {
let visibleStartLineNumber = ctx.visibleRange.startLineNumber;
let visibleEndLineNumber = ctx.visibleRange.endLineNumber;
let toRender = this._render(visibleStartLineNumber, visibleEndLineNumber, this._getDecorations(ctx));
......
......@@ -8,7 +8,7 @@
import 'vs/css!./minimap';
import { ViewPart } from 'vs/editor/browser/view/viewPart';
import { ViewContext } from 'vs/editor/common/view/viewContext';
import { IRenderingContext, IRestrictedRenderingContext } from 'vs/editor/common/view/renderingContext';
import { RenderingContext, RestrictedRenderingContext } from 'vs/editor/common/view/renderingContext';
import { getOrCreateMinimapCharRenderer } from 'vs/editor/common/view/runtimeMinimapCharRenderer';
import * as browser from 'vs/base/browser/browser';
import * as dom from 'vs/base/browser/dom';
......@@ -635,11 +635,11 @@ export class Minimap extends ViewPart {
// --- end event handlers
public prepareRender(ctx: IRenderingContext): void {
public prepareRender(ctx: RenderingContext): void {
// Nothing to read
}
public render(renderingCtx: IRestrictedRenderingContext): void {
public render(renderingCtx: RestrictedRenderingContext): void {
const renderMinimap = this._options.renderMinimap;
if (renderMinimap === RenderMinimap.None) {
this._shadow.setClassName('minimap-shadow-hidden');
......
......@@ -10,7 +10,7 @@ import { FastDomNode, createFastDomNode } from 'vs/base/browser/fastDomNode';
import { ClassNames, IOverlayWidget, OverlayWidgetPositionPreference } from 'vs/editor/browser/editorBrowser';
import { ViewPart, PartFingerprint, PartFingerprints } from 'vs/editor/browser/view/viewPart';
import { ViewContext } from 'vs/editor/common/view/viewContext';
import { IRenderingContext, IRestrictedRenderingContext } from 'vs/editor/common/view/renderingContext';
import { RenderingContext, RestrictedRenderingContext } from 'vs/editor/common/view/renderingContext';
import * as viewEvents from 'vs/editor/common/view/viewEvents';
interface IWidgetData {
......@@ -136,11 +136,11 @@ export class ViewOverlayWidgets extends ViewPart {
}
}
public prepareRender(ctx: IRenderingContext): void {
public prepareRender(ctx: RenderingContext): void {
// Nothing to read
}
public render(ctx: IRestrictedRenderingContext): void {
public render(ctx: RestrictedRenderingContext): void {
this._domNode.setWidth(this._editorWidth);
let keys = Object.keys(this._widgets);
......
......@@ -9,7 +9,7 @@ import * as editorCommon from 'vs/editor/common/editorCommon';
import { ViewPart } from 'vs/editor/browser/view/viewPart';
import { OverviewRulerImpl } from 'vs/editor/browser/viewParts/overviewRuler/overviewRulerImpl';
import { ViewContext } from 'vs/editor/common/view/viewContext';
import { IRenderingContext, IRestrictedRenderingContext } from 'vs/editor/common/view/renderingContext';
import { RenderingContext, RestrictedRenderingContext } from 'vs/editor/common/view/renderingContext';
import { Position } from 'vs/editor/common/core/position';
import { TokenizationRegistry } from 'vs/editor/common/modes';
import { IDisposable } from 'vs/base/common/lifecycle';
......@@ -201,11 +201,11 @@ export class DecorationsOverviewRuler extends ViewPart {
return zones;
}
public prepareRender(ctx: IRenderingContext): void {
public prepareRender(ctx: RenderingContext): void {
// Nothing to read
}
public render(ctx: IRestrictedRenderingContext): void {
public render(ctx: RestrictedRenderingContext): void {
if (this._shouldUpdateDecorations || this._shouldUpdateCursorPosition) {
if (this._shouldUpdateDecorations) {
......
......@@ -9,7 +9,7 @@ import 'vs/css!./rulers';
import { FastDomNode, createFastDomNode } from 'vs/base/browser/fastDomNode';
import { ViewPart } from 'vs/editor/browser/view/viewPart';
import { ViewContext } from 'vs/editor/common/view/viewContext';
import { IRenderingContext, IRestrictedRenderingContext } from 'vs/editor/common/view/renderingContext';
import { RenderingContext, RestrictedRenderingContext } from 'vs/editor/common/view/renderingContext';
import * as viewEvents from 'vs/editor/common/view/viewEvents';
export class Rulers extends ViewPart {
......@@ -51,7 +51,7 @@ export class Rulers extends ViewPart {
// --- end event handlers
public prepareRender(ctx: IRenderingContext): void {
public prepareRender(ctx: RenderingContext): void {
// Nothing to read
}
......@@ -85,7 +85,7 @@ export class Rulers extends ViewPart {
}
}
public render(ctx: IRestrictedRenderingContext): void {
public render(ctx: RestrictedRenderingContext): void {
this._ensureRulersCount();
......
......@@ -10,7 +10,7 @@ import { FastDomNode, createFastDomNode } from 'vs/base/browser/fastDomNode';
import { ClassNames } from 'vs/editor/browser/editorBrowser';
import { ViewPart } from 'vs/editor/browser/view/viewPart';
import { ViewContext } from 'vs/editor/common/view/viewContext';
import { IRenderingContext, IRestrictedRenderingContext } from 'vs/editor/common/view/renderingContext';
import { RenderingContext, RestrictedRenderingContext } from 'vs/editor/common/view/renderingContext';
import * as viewEvents from 'vs/editor/common/view/viewEvents';
export class ScrollDecorationViewPart extends ViewPart {
......@@ -74,11 +74,11 @@ export class ScrollDecorationViewPart extends ViewPart {
// --- end event handlers
public prepareRender(ctx: IRenderingContext): void {
public prepareRender(ctx: RenderingContext): void {
// Nothing to read
}
public render(ctx: IRestrictedRenderingContext): void {
public render(ctx: RestrictedRenderingContext): void {
this._domNode.setWidth(this._width);
this._domNode.setClassName(this._shouldShow ? ClassNames.SCROLL_DECORATION : '');
}
......
......@@ -8,7 +8,7 @@
import 'vs/css!./selections';
import { DynamicViewOverlay } from 'vs/editor/browser/view/dynamicViewOverlay';
import { ViewContext } from 'vs/editor/common/view/viewContext';
import { HorizontalRange, LineVisibleRanges, IRenderingContext } from 'vs/editor/common/view/renderingContext';
import { HorizontalRange, LineVisibleRanges, RenderingContext } from 'vs/editor/common/view/renderingContext';
import { Range } from 'vs/editor/common/core/range';
import * as browser from 'vs/base/browser/browser';
import * as viewEvents from 'vs/editor/common/view/viewEvents';
......@@ -250,7 +250,7 @@ export class SelectionsOverlay extends DynamicViewOverlay {
}
}
private _getVisibleRangesWithStyle(selection: Range, ctx: IRenderingContext, previousFrame: LineVisibleRangesWithStyle[]): LineVisibleRangesWithStyle[] {
private _getVisibleRangesWithStyle(selection: Range, ctx: RenderingContext, previousFrame: LineVisibleRangesWithStyle[]): LineVisibleRangesWithStyle[] {
let _linesVisibleRanges = ctx.linesVisibleRangesForRange(selection, true) || [];
let linesVisibleRanges = _linesVisibleRanges.map(toStyled);
let visibleRangesHaveGaps = this._visibleRangesHaveGaps(linesVisibleRanges);
......@@ -358,7 +358,7 @@ export class SelectionsOverlay extends DynamicViewOverlay {
}
private _previousFrameVisibleRangesWithStyle: LineVisibleRangesWithStyle[][] = [];
public prepareRender(ctx: IRenderingContext): void {
public prepareRender(ctx: RenderingContext): void {
let output: string[] = [];
let visibleStartLineNumber = ctx.visibleRange.startLineNumber;
......
......@@ -10,7 +10,7 @@ import { Range } from 'vs/editor/common/core/range';
import { TextEditorCursorStyle } from 'vs/editor/common/editorCommon';
import { Configuration } from 'vs/editor/browser/config/configuration';
import { ViewContext } from 'vs/editor/common/view/viewContext';
import { IRenderingContext, IRestrictedRenderingContext } from 'vs/editor/common/view/renderingContext';
import { RenderingContext, RestrictedRenderingContext } from 'vs/editor/common/view/renderingContext';
import * as viewEvents from 'vs/editor/common/view/viewEvents';
export interface IViewCursorRenderData {
......@@ -136,7 +136,7 @@ export class ViewCursor {
return true;
}
private _prepareRender(ctx: IRenderingContext): ViewCursorRenderData {
private _prepareRender(ctx: RenderingContext): ViewCursorRenderData {
if (this._cursorStyle === TextEditorCursorStyle.Line || this._cursorStyle === TextEditorCursorStyle.LineThin) {
const visibleRange = ctx.visibleRangeForPosition(this._position);
if (!visibleRange) {
......@@ -173,11 +173,11 @@ export class ViewCursor {
return new ViewCursorRenderData(top, range.left, width, textContent);
}
public prepareRender(ctx: IRenderingContext): void {
public prepareRender(ctx: RenderingContext): void {
this._renderData = this._prepareRender(ctx);
}
public render(ctx: IRestrictedRenderingContext): IViewCursorRenderData {
public render(ctx: RestrictedRenderingContext): IViewCursorRenderData {
if (!this._renderData) {
this._domNode.setDisplay('none');
return null;
......
......@@ -12,7 +12,7 @@ import { ViewPart } from 'vs/editor/browser/view/viewPart';
import { Position } from 'vs/editor/common/core/position';
import { IViewCursorRenderData, ViewCursor } from 'vs/editor/browser/viewParts/viewCursors/viewCursor';
import { ViewContext } from 'vs/editor/common/view/viewContext';
import { IRenderingContext, IRestrictedRenderingContext } from 'vs/editor/common/view/renderingContext';
import { RenderingContext, RestrictedRenderingContext } from 'vs/editor/common/view/renderingContext';
import { FastDomNode, createFastDomNode } from 'vs/base/browser/fastDomNode';
import { TimeoutTimer } from 'vs/base/common/async';
import * as viewEvents from 'vs/editor/common/view/viewEvents';
......@@ -304,14 +304,14 @@ export class ViewCursors extends ViewPart {
// ---- IViewPart implementation
public prepareRender(ctx: IRenderingContext): void {
public prepareRender(ctx: RenderingContext): void {
this._primaryCursor.prepareRender(ctx);
for (let i = 0, len = this._secondaryCursors.length; i < len; i++) {
this._secondaryCursors[i].prepareRender(ctx);
}
}
public render(ctx: IRestrictedRenderingContext): void {
public render(ctx: RestrictedRenderingContext): void {
this._renderData = [];
this._renderData.push(this._primaryCursor.render(ctx));
for (let i = 0, len = this._secondaryCursors.length; i < len; i++) {
......
......@@ -11,7 +11,7 @@ import { ClassNames, IViewZone } from 'vs/editor/browser/editorBrowser';
import { ViewPart } from 'vs/editor/browser/view/viewPart';
import { ViewContext } from 'vs/editor/common/view/viewContext';
import { Position } from 'vs/editor/common/core/position';
import { IRenderingContext, IRestrictedRenderingContext } from 'vs/editor/common/view/renderingContext';
import { RenderingContext, RestrictedRenderingContext } from 'vs/editor/common/view/renderingContext';
import { IViewLayout } from 'vs/editor/common/viewModel/viewModel';
import * as viewEvents from 'vs/editor/common/view/viewEvents';
......@@ -299,11 +299,11 @@ export class ViewZones extends ViewPart {
}
}
public prepareRender(ctx: IRenderingContext): void {
public prepareRender(ctx: RenderingContext): void {
// Nothing to read
}
public render(ctx: IRestrictedRenderingContext): void {
public render(ctx: RestrictedRenderingContext): void {
let visibleWhitespaces = this._viewLayout.getWhitespaceViewportData();
let visibleZones: { [id: string]: editorCommon.IViewWhitespaceViewportData; } = {};
......
......@@ -14,9 +14,8 @@ export interface IViewLines {
visibleRangesForRange2(range: Range): HorizontalRange[];
}
export class RenderingContext implements IRenderingContext {
_renderingContextBrand: void;
export abstract class RestrictedRenderingContext {
_restrictedRenderingContextBrand: void;
public readonly viewportData: ViewportData;
......@@ -32,10 +31,8 @@ export class RenderingContext implements IRenderingContext {
public readonly viewportLeft: number;
private readonly _viewLayout: IViewLayout;
private readonly _viewLines: IViewLines;
constructor(viewLines: IViewLines, viewLayout: IViewLayout, viewportData: ViewportData) {
this._viewLines = viewLines;
constructor(viewLayout: IViewLayout, viewportData: ViewportData) {
this._viewLayout = viewLayout;
this.viewportData = viewportData;
......@@ -71,6 +68,18 @@ export class RenderingContext implements IRenderingContext {
return this.viewportData.getDecorationsInViewport();
}
}
export class RenderingContext extends RestrictedRenderingContext {
_renderingContextBrand: void;
private readonly _viewLines: IViewLines;
constructor(viewLayout: IViewLayout, viewportData: ViewportData, viewLines: IViewLines) {
super(viewLayout, viewportData);
this._viewLines = viewLines;
}
public linesVisibleRangesForRange(range: Range, includeNewLines: boolean): LineVisibleRanges[] {
return this._viewLines.linesVisibleRangesForRange(range, includeNewLines);
}
......@@ -86,34 +95,6 @@ export class RenderingContext implements IRenderingContext {
}
}
export interface IRestrictedRenderingContext {
readonly viewportData: ViewportData;
readonly scrollWidth: number;
readonly scrollHeight: number;
readonly visibleRange: Range;
readonly bigNumbersDelta: number;
readonly viewportTop: number;
readonly viewportWidth: number;
readonly viewportHeight: number;
readonly viewportLeft: number;
getScrolledTopFromAbsoluteTop(absoluteTop: number): number;
getVerticalOffsetForLineNumber(lineNumber: number): number;
lineIsVisible(lineNumber: number): boolean;
getDecorationsInViewport(): ViewModelDecoration[];
}
export interface IRenderingContext extends IRestrictedRenderingContext {
linesVisibleRangesForRange(range: Range, includeNewLines: boolean): LineVisibleRanges[];
visibleRangeForPosition(position: Position): HorizontalRange;
}
export class LineVisibleRanges {
_lineVisibleRangesBrand: void;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册