本文整理汇总了TypeScript中vs/editor/browser/viewParts/lines/viewLines.ViewLines类的典型用法代码示例。如果您正苦于以下问题:TypeScript ViewLines类的具体用法?TypeScript ViewLines怎么用?TypeScript ViewLines使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ViewLines类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: _actualRender
private _actualRender(): void {
if (!dom.isInDOM(this.domNode.domNode)) {
return;
}
let viewPartsToRender = this._getViewPartsToRender();
if (!this.viewLines.shouldRender() && viewPartsToRender.length === 0) {
// Nothing to render
return;
}
const partialViewportData = this._context.viewLayout.getLinesViewportData();
this._context.model.setViewport(partialViewportData.startLineNumber, partialViewportData.endLineNumber, partialViewportData.centeredLineNumber);
let viewportData = new ViewportData(
this._cursor.getViewSelections(),
partialViewportData,
this._context.viewLayout.getWhitespaceViewportData(),
this._context.model
);
if (this.contentWidgets.shouldRender()) {
// Give the content widgets a chance to set their max width before a possible synchronous layout
this.contentWidgets.onBeforeRender(viewportData);
}
if (this.viewLines.shouldRender()) {
this.viewLines.renderText(viewportData);
this.viewLines.onDidRender();
// Rendering of viewLines might cause scroll events to occur, so collect view parts to render again
viewPartsToRender = this._getViewPartsToRender();
}
let renderingContext = new RenderingContext(this._context.viewLayout, viewportData, this.viewLines);
// Render the rest of the parts
for (let i = 0, len = viewPartsToRender.length; i < len; i++) {
let viewPart = viewPartsToRender[i];
viewPart.prepareRender(renderingContext);
}
for (let i = 0, len = viewPartsToRender.length; i < len; i++) {
let viewPart = viewPartsToRender[i];
viewPart.render(renderingContext);
viewPart.onDidRender();
}
}
示例2: dispose
public dispose(): void {
this._isDisposed = true;
if (this.handleAccumulatedModelEventsTimeout !== -1) {
clearTimeout(this.handleAccumulatedModelEventsTimeout);
this.handleAccumulatedModelEventsTimeout = -1;
}
if (this._renderAnimationFrame !== null) {
this._renderAnimationFrame.dispose();
this._renderAnimationFrame = null;
}
this.accumulatedModelEvents = [];
this.eventDispatcher.removeEventHandler(this);
this.outgoingEvents.dispose();
this.listenersToRemove = dispose(this.listenersToRemove);
this.listenersToDispose = dispose(this.listenersToDispose);
this.keyboardHandler.dispose();
this.pointerHandler.dispose();
this.viewLines.dispose();
// Destroy view parts
for (let i = 0, len = this.viewParts.length; i < len; i++) {
this.viewParts[i].dispose();
}
this.viewParts = [];
this.layoutProvider.dispose();
}
示例3: Error
getLineWidth: (lineNumber: number) => {
if (this._isDisposed) {
throw new Error('ViewImpl.pointerHandler.getLineWidth: View is disposed');
}
this._flushAccumulatedAndRenderNow();
return this.viewLines.getLineWidth(lineNumber);
}
示例4: restoreState
public restoreState(scrollPosition: { scrollLeft: number; scrollTop: number; }): void {
this._context.viewLayout.setScrollPositionNow({ scrollTop: scrollPosition.scrollTop });
this._context.model.tokenizeViewport();
this._renderNow();
this.viewLines.updateLineWidths();
this._context.viewLayout.setScrollPositionNow({ scrollLeft: scrollPosition.scrollLeft });
}
示例5: Range
visibleRangeForPositionRelativeToEditor: (lineNumber: number, column: number) => {
this._flushAccumulatedAndRenderNow();
let visibleRanges = this.viewLines.visibleRangesForRange2(new Range(lineNumber, column, lineNumber, column));
if (!visibleRanges) {
return null;
}
return visibleRanges[0];
}
示例6: _actualRender
private _actualRender(): void {
if (!dom.isInDOM(this.domNode.domNode)) {
return;
}
let viewPartsToRender = this._getViewPartsToRender();
if (!this.viewLines.shouldRender() && viewPartsToRender.length === 0) {
// Nothing to render
this._textAreaHandler.writeToTextArea();
return;
}
let partialViewportData = this.layoutProvider.getLinesViewportData();
this._context.model.setViewport(partialViewportData.startLineNumber, partialViewportData.endLineNumber, partialViewportData.centeredLineNumber);
let viewportData = new ViewportData(partialViewportData, this._context.model);
if (this.viewLines.shouldRender()) {
this.viewLines.renderText(viewportData, () => {
this._textAreaHandler.writeToTextArea();
});
this.viewLines.onDidRender();
// Rendering of viewLines might cause scroll events to occur, so collect view parts to render again
viewPartsToRender = this._getViewPartsToRender();
} else {
this._textAreaHandler.writeToTextArea();
}
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++) {
let viewPart = viewPartsToRender[i];
viewPart.prepareRender(renderingContext);
}
for (let i = 0, len = viewPartsToRender.length; i < len; i++) {
let viewPart = viewPartsToRender[i];
viewPart.render(renderingContext);
viewPart.onDidRender();
}
}
示例7: getOffsetForColumn
public getOffsetForColumn(modelLineNumber: number, modelColumn: number): number {
let modelPosition = this._context.model.validateModelPosition({
lineNumber: modelLineNumber,
column: modelColumn
});
let viewPosition = this._context.model.coordinatesConverter.convertModelPositionToViewPosition(modelPosition);
this._flushAccumulatedAndRenderNow();
let visibleRanges = this.viewLines.visibleRangesForRange2(new Range(viewPosition.lineNumber, viewPosition.column, viewPosition.lineNumber, viewPosition.column));
if (!visibleRanges) {
return -1;
}
return visibleRanges[0].left;
}