提交 1c3d756b 编写于 作者: A Alex Dima

Align CoordinatesConverter methods

上级 487f4dbe
......@@ -243,7 +243,7 @@ export class ViewController implements IViewController {
// ----------------------
private convertViewToModelPosition(viewPosition: Position): Position {
return this.viewModel.coordinatesConverter.convertViewPositionToModelPosition(viewPosition.lineNumber, viewPosition.column);
return this.viewModel.coordinatesConverter.convertViewPositionToModelPosition(viewPosition);
}
public emitKeyDown(e: IKeyboardEvent): void {
......
......@@ -588,7 +588,7 @@ export class View extends ViewEventHandler implements editorBrowser.IView, IDisp
lineNumber: modelLineNumber,
column: modelColumn
});
let viewPosition = this._context.model.coordinatesConverter.convertModelPositionToViewPosition(modelPosition.lineNumber, modelPosition.column);
let viewPosition = this._context.model.coordinatesConverter.convertModelPositionToViewPosition(modelPosition);
return this.layoutProvider.getVerticalOffsetForLineNumber(viewPosition.lineNumber);
},
delegateVerticalScrollbarMouseDown: (browserEvent: MouseEvent) => {
......@@ -605,7 +605,7 @@ export class View extends ViewEventHandler implements editorBrowser.IView, IDisp
lineNumber: modelLineNumber,
column: modelColumn
});
let viewPosition = this._context.model.coordinatesConverter.convertModelPositionToViewPosition(modelPosition.lineNumber, modelPosition.column);
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), 0);
if (!visibleRanges) {
......
......@@ -99,7 +99,7 @@ export class ViewOutgoingEvents extends Disposable {
}
private _convertViewToModelPosition(viewPosition: Position): Position {
return this._viewModel.coordinatesConverter.convertViewPositionToModelPosition(viewPosition.lineNumber, viewPosition.column);
return this._viewModel.coordinatesConverter.convertViewPositionToModelPosition(viewPosition);
}
private _convertViewToModelRange(viewRange: Range): Range {
......
......@@ -333,7 +333,7 @@ export class ViewContentWidgets extends ViewPart {
return null;
}
let position = this._context.model.coordinatesConverter.convertModelPositionToViewPosition(validModelPosition.lineNumber, validModelPosition.column);
let position = this._context.model.coordinatesConverter.convertModelPositionToViewPosition(validModelPosition);
let placement: IBoxLayoutResult = null;
let fetchPlacement = () => {
......
......@@ -300,7 +300,7 @@ export class ViewLines extends ViewLayer<ViewLine> implements IViewLines {
let nextLineModelLineNumber: number;
if (includeNewLines) {
nextLineModelLineNumber = this._context.model.coordinatesConverter.convertViewPositionToModelPosition(range.startLineNumber, 1).lineNumber;
nextLineModelLineNumber = this._context.model.coordinatesConverter.convertViewPositionToModelPosition(new Position(range.startLineNumber, 1)).lineNumber;
}
let rendStartLineNumber = this._linesCollection.getStartLineNumber();
......@@ -321,7 +321,7 @@ export class ViewLines extends ViewLayer<ViewLine> implements IViewLines {
if (includeNewLines && lineNumber < originalEndLineNumber) {
let currentLineModelLineNumber = nextLineModelLineNumber;
nextLineModelLineNumber = this._context.model.coordinatesConverter.convertViewPositionToModelPosition(lineNumber + 1, 1).lineNumber;
nextLineModelLineNumber = this._context.model.coordinatesConverter.convertViewPositionToModelPosition(new Position(lineNumber + 1, 1)).lineNumber;
if (currentLineModelLineNumber !== nextLineModelLineNumber) {
visibleRangesForLine[visibleRangesForLine.length - 1].width += ViewLines.LINE_FEED_WIDTH;
......
......@@ -178,7 +178,7 @@ export class ViewZones extends ViewPart {
});
}
let viewPosition = this._context.model.coordinatesConverter.convertModelPositionToViewPosition(zoneAfterModelPosition.lineNumber, zoneAfterModelPosition.column);
let viewPosition = this._context.model.coordinatesConverter.convertModelPositionToViewPosition(zoneAfterModelPosition);
let isVisible = this._context.model.coordinatesConverter.modelPositionIsVisible(zoneBeforeModelPosition);
return {
afterViewLineNumber: viewPosition.lineNumber,
......
......@@ -814,30 +814,13 @@ export abstract class CommonCodeEditor extends EventEmitter implements editorCom
let viewModelHelper: IViewModelHelper = {
viewModel: this.viewModel,
coordinatesConverter: this.viewModel.coordinatesConverter,
getCurrentCompletelyVisibleViewLinesRangeInViewport: () => {
return this.viewModel.coordinatesConverter.convertModelRangeToViewRange(this.getCompletelyVisibleLinesRangeInViewport());
},
getCurrentCompletelyVisibleModelLinesRangeInViewport: () => {
return this.getCompletelyVisibleLinesRangeInViewport();
},
convertModelPositionToViewPosition: (lineNumber: number, column: number) => {
return this.viewModel.coordinatesConverter.convertModelPositionToViewPosition(lineNumber, column);
},
convertModelRangeToViewRange: (modelRange: Range) => {
return this.viewModel.coordinatesConverter.convertModelRangeToViewRange(modelRange);
},
convertViewToModelPosition: (lineNumber: number, column: number) => {
return this.viewModel.coordinatesConverter.convertViewPositionToModelPosition(lineNumber, column);
},
convertViewSelectionToModelSelection: (viewSelection: Selection) => {
return this.viewModel.coordinatesConverter.convertViewSelectionToModelSelection(viewSelection);
},
validateViewPosition: (viewPosition: Position, modelPosition: Position): Position => {
return this.viewModel.coordinatesConverter.validateViewPosition(viewPosition.lineNumber, viewPosition.column, modelPosition);
},
validateViewRange: (viewRange: Range, modelRange: Range): Range => {
return this.viewModel.coordinatesConverter.validateViewRange(viewRange.startLineNumber, viewRange.startColumn, viewRange.endLineNumber, viewRange.endColumn, modelRange);
}
};
this.cursor = new Cursor(
......
......@@ -13,6 +13,7 @@ import * as editorCommon from 'vs/editor/common/editorCommon';
import { IDisposable } from 'vs/base/common/lifecycle';
import { MoveOperations, SingleMoveOperationResult } from 'vs/editor/common/controller/cursorMoveOperations';
import { WordOperations, WordNavigationType } from 'vs/editor/common/controller/cursorWordOperations';
import { ICoordinatesConverter } from 'vs/editor/common/viewModel/viewModel';
export interface IOneCursorOperationContext {
cursorPositionChangeReason: editorCommon.CursorChangeReason;
......@@ -51,19 +52,13 @@ export interface CursorMoveArguments extends editorCommon.CursorMoveArguments {
export interface IViewModelHelper {
coordinatesConverter: ICoordinatesConverter;
viewModel: ICursorSimpleModel;
getCurrentCompletelyVisibleViewLinesRangeInViewport(): Range;
getCurrentCompletelyVisibleModelLinesRangeInViewport(): Range;
convertModelPositionToViewPosition(lineNumber: number, column: number): Position;
convertModelRangeToViewRange(modelRange: Range): Range;
convertViewToModelPosition(lineNumber: number, column: number): Position;
convertViewSelectionToModelSelection(viewSelection: Selection): Selection;
validateViewPosition(viewPosition: Position, modelPosition: Position): Position;
validateViewRange(viewRange: Range, modelRange: Range): Range;
}
export interface IOneCursorState {
......@@ -111,6 +106,7 @@ export class OneCursor implements IOneCursor {
public readonly viewModel: ICursorSimpleModel;
private readonly configuration: editorCommon.IConfiguration;
private readonly viewModelHelper: IViewModelHelper;
private readonly coordinatesConverter: ICoordinatesConverter;
private readonly _modelOptionsListener: IDisposable;
private readonly _configChangeListener: IDisposable;
......@@ -135,6 +131,7 @@ export class OneCursor implements IOneCursor {
this.configuration = configuration;
this.modeConfiguration = modeConfiguration;
this.viewModelHelper = viewModelHelper;
this.coordinatesConverter = viewModelHelper.coordinatesConverter;
this.viewModel = this.viewModelHelper.viewModel;
this._recreateCursorConfig();
......@@ -195,8 +192,8 @@ export class OneCursor implements IOneCursor {
modelState = new SingleCursorState(selectionStart, selectionStartLeftoverVisibleColumns, position, leftoverVisibleColumns);
// Validate new view state
let viewSelectionStart = this.viewModelHelper.validateViewRange(viewState.selectionStart, modelState.selectionStart);
let viewPosition = this.viewModelHelper.validateViewPosition(viewState.position, modelState.position);
let viewSelectionStart = this.coordinatesConverter.validateViewRange(viewState.selectionStart, modelState.selectionStart);
let viewPosition = this.coordinatesConverter.validateViewPosition(viewState.position, modelState.position);
viewState = new SingleCursorState(viewSelectionStart, selectionStartLeftoverVisibleColumns, viewPosition, leftoverVisibleColumns);
if (this.modelState && this.viewState && this.modelState.equals(modelState) && this.viewState.equals(viewState)) {
......@@ -241,12 +238,12 @@ export class OneCursor implements IOneCursor {
selectionStart = new Range(position.lineNumber, position.column, position.lineNumber, position.column);
}
let viewPosition = this.viewModelHelper.validateViewPosition(new Position(state.viewPosition.lineNumber, state.viewPosition.column), position);
let viewPosition = this.coordinatesConverter.validateViewPosition(new Position(state.viewPosition.lineNumber, state.viewPosition.column), position);
let viewSelectionStart: Range;
if (state.viewSelectionStart) {
viewSelectionStart = this.viewModelHelper.validateViewRange(new Range(state.viewSelectionStart.startLineNumber, state.viewSelectionStart.startColumn, state.viewSelectionStart.endLineNumber, state.viewSelectionStart.endColumn), selectionStart);
viewSelectionStart = this.coordinatesConverter.validateViewRange(new Range(state.viewSelectionStart.startLineNumber, state.viewSelectionStart.startColumn, state.viewSelectionStart.endLineNumber, state.viewSelectionStart.endColumn), selectionStart);
} else {
viewSelectionStart = this.viewModelHelper.convertModelRangeToViewRange(selectionStart);
viewSelectionStart = this.coordinatesConverter.convertModelRangeToViewRange(selectionStart);
}
this._setState(
......@@ -292,11 +289,11 @@ export class OneCursor implements IOneCursor {
let viewSelectionStart: Position;
if (viewSelection) {
viewPosition = this.viewModelHelper.validateViewPosition(new Position(viewSelection.positionLineNumber, viewSelection.positionColumn), position);
viewSelectionStart = this.viewModelHelper.validateViewPosition(new Position(viewSelection.selectionStartLineNumber, viewSelection.selectionStartColumn), selectionStart);
viewPosition = this.coordinatesConverter.validateViewPosition(new Position(viewSelection.positionLineNumber, viewSelection.positionColumn), position);
viewSelectionStart = this.coordinatesConverter.validateViewPosition(new Position(viewSelection.selectionStartLineNumber, viewSelection.selectionStartColumn), selectionStart);
} else {
viewPosition = this.viewModelHelper.convertModelPositionToViewPosition(position.lineNumber, position.column);
viewSelectionStart = this.viewModelHelper.convertModelPositionToViewPosition(selectionStart.lineNumber, selectionStart.column);
viewPosition = this.coordinatesConverter.convertModelPositionToViewPosition(position);
viewSelectionStart = this.coordinatesConverter.convertModelPositionToViewPosition(selectionStart);
}
this._setState(
......@@ -311,7 +308,7 @@ export class OneCursor implements IOneCursor {
public setSelectionStart(range: Range): void {
this._setState(
this.modelState.withSelectionStart(range),
this.viewState.withSelectionStart(this.viewModelHelper.convertModelRangeToViewRange(range)),
this.viewState.withSelectionStart(this.coordinatesConverter.convertModelRangeToViewRange(range)),
false
);
}
......@@ -325,12 +322,12 @@ export class OneCursor implements IOneCursor {
}
public moveModelPosition(inSelectionMode: boolean, lineNumber: number, column: number, leftoverVisibleColumns: number, ensureInEditableRange: boolean): void {
let viewPosition = this.viewModelHelper.convertModelPositionToViewPosition(lineNumber, column);
let viewPosition = this.coordinatesConverter.convertModelPositionToViewPosition(new Position(lineNumber, column));
this._move(inSelectionMode, lineNumber, column, viewPosition.lineNumber, viewPosition.column, leftoverVisibleColumns, ensureInEditableRange);
}
public moveViewPosition(inSelectionMode: boolean, viewLineNumber: number, viewColumn: number, leftoverVisibleColumns: number, ensureInEditableRange: boolean): void {
let modelPosition = this.viewModelHelper.convertViewToModelPosition(viewLineNumber, viewColumn);
let modelPosition = this.coordinatesConverter.convertViewPositionToModelPosition(new Position(viewLineNumber, viewColumn));
this._move(inSelectionMode, modelPosition.lineNumber, modelPosition.column, viewLineNumber, viewColumn, leftoverVisibleColumns, ensureInEditableRange);
}
......@@ -367,8 +364,8 @@ export class OneCursor implements IOneCursor {
let selectionStart = new Range(recoveredSelection.selectionStartLineNumber, recoveredSelection.selectionStartColumn, recoveredSelection.selectionStartLineNumber, recoveredSelection.selectionStartColumn);
let position = new Position(recoveredSelection.positionLineNumber, recoveredSelection.positionColumn);
let viewSelectionStart = this.viewModelHelper.convertModelRangeToViewRange(selectionStart);
let viewPosition = this.viewModelHelper.convertViewToModelPosition(position.lineNumber, position.column);
let viewSelectionStart = this.coordinatesConverter.convertModelRangeToViewRange(selectionStart);
let viewPosition = this.coordinatesConverter.convertViewPositionToModelPosition(position);
this._setState(
new SingleCursorState(selectionStart, 0, position, 0),
......@@ -396,17 +393,17 @@ export class OneCursor implements IOneCursor {
return this.model.validatePosition(position);
}
public validateViewPosition(viewLineNumber: number, viewColumn: number, modelPosition: Position): Position {
return this.viewModelHelper.validateViewPosition(new Position(viewLineNumber, viewColumn), modelPosition);
return this.coordinatesConverter.validateViewPosition(new Position(viewLineNumber, viewColumn), modelPosition);
}
public convertViewSelectionToModelSelection(viewSelection: Selection): Selection {
return this.viewModelHelper.convertViewSelectionToModelSelection(viewSelection);
return this.coordinatesConverter.convertViewSelectionToModelSelection(viewSelection);
}
public convertViewToModelPosition(lineNumber: number, column: number): Position {
return this.viewModelHelper.convertViewToModelPosition(lineNumber, column);
return this.coordinatesConverter.convertViewPositionToModelPosition(new Position(lineNumber, column));
}
public convertModelPositionToViewPosition(lineNumber: number, column: number): Position {
return this.viewModelHelper.convertModelPositionToViewPosition(lineNumber, column);
return this.coordinatesConverter.convertModelPositionToViewPosition(new Position(lineNumber, column));
}
// -- model
......
......@@ -11,6 +11,7 @@ import { KeyCode } from 'vs/base/common/keyCodes';
import { Disposable } from 'vs/base/common/lifecycle';
import { IClipboardEvent, ICompositionEvent, IKeyboardEventWrapper, ISimpleModel, ITextAreaWrapper, ITypeData, TextAreaState, TextAreaStrategy, createTextAreaState } from 'vs/editor/common/controller/textAreaState';
import { Range } from 'vs/editor/common/core/range';
import { Position } from 'vs/editor/common/core/position';
import { EndOfLinePreference } from 'vs/editor/common/editorCommon';
const enum ReadFromTextArea {
......@@ -352,7 +353,7 @@ export class TextAreaHandler extends Disposable {
let range: Range = selections[0];
if (range.isEmpty()) {
if (this.Browser.enableEmptySelectionClipboard) {
let modelLineNumber = this.model.coordinatesConverter.convertViewPositionToModelPosition(range.startLineNumber, 1).lineNumber;
let modelLineNumber = this.model.coordinatesConverter.convertViewPositionToModelPosition(new Position(range.startLineNumber, 1)).lineNumber;
return this.model.getModelLineContent(modelLineNumber) + newLineCharacter;
} else {
return '';
......
......@@ -58,7 +58,7 @@ export interface ISimpleModel {
getLineCount(): number;
coordinatesConverter: {
convertViewPositionToModelPosition(viewLineNumber: number, viewColumn: number): Position;
convertViewPositionToModelPosition(viewPosition: Position): Position;
};
}
......
......@@ -13,17 +13,16 @@ import { Selection } from 'vs/editor/common/core/selection';
export interface ICoordinatesConverter {
// View -> Model conversion and related methods
convertViewPositionToModelPosition(viewLineNumber: number, viewColumn: number): Position;
convertViewPositionToModelPosition(viewPosition: Position): Position;
convertViewRangeToModelRange(viewRange: Range): Range;
convertViewSelectionToModelSelection(viewSelection: Selection): Selection;
validateViewPosition(viewLineNumber: number, viewColumn: number, expectedModelPosition: Position): Position;
validateViewRange(viewStartLineNumber: number, viewStartColumn: number, viewEndLineNumber: number, viewEndColumn: number, modelRange: Range): Range;
validateViewPosition(viewPosition: Position, expectedModelPosition: Position): Position;
validateViewRange(viewRange: Range, modelRange: Range): Range;
// Model -> View conversion and related methods
convertModelPositionToViewPosition(modelLineNumber: number, modelColumn: number): Position;
convertModelPositionToViewPosition(modelPosition: Position): Position;
convertModelRangeToViewRange(modelRange: Range): Range;
convertWholeLineModelRangeToViewRange(modelRange: Range): Range;
modelPositionIsVisible(position: Position): boolean;
modelPositionIsVisible(modelPosition: Position): boolean;
}
export interface IViewModel extends IEventEmitter {
......
......@@ -6,6 +6,7 @@
import { IDisposable } from 'vs/base/common/lifecycle';
import { Range } from 'vs/editor/common/core/range';
import { Position } from 'vs/editor/common/core/position';
import * as editorCommon from 'vs/editor/common/editorCommon';
import { InlineDecoration, ViewModelDecoration, ICoordinatesConverter } from 'vs/editor/common/viewModel/viewModel';
......@@ -94,10 +95,13 @@ export class ViewModelDecorations implements IDisposable {
this._decorationsCache[id] = r;
}
if (r.range === null) {
const modelRange = modelDecoration.range;
if (modelDecoration.options.isWholeLine) {
r.range = this._coordinatesConverter.convertWholeLineModelRangeToViewRange(modelDecoration.range);
let start = this._coordinatesConverter.convertModelPositionToViewPosition(new Position(modelRange.startLineNumber, 1));
let end = this._coordinatesConverter.convertModelPositionToViewPosition(new Position(modelRange.endLineNumber, this.model.getLineMaxColumn(modelRange.endLineNumber)));
r.range = new Range(start.lineNumber, start.column, end.lineNumber, end.column);
} else {
r.range = this._coordinatesConverter.convertModelRangeToViewRange(modelDecoration.range);
r.range = this._coordinatesConverter.convertModelRangeToViewRange(modelRange);
}
}
return r;
......
......@@ -18,18 +18,16 @@ import { SplitLinesCollection } from 'vs/editor/common/viewModel/splitLinesColle
export class CoordinatesConverter implements ICoordinatesConverter {
private readonly _model: editorCommon.IModel;
private readonly _lines: SplitLinesCollection;
constructor(model: editorCommon.IModel, lines: SplitLinesCollection) {
this._model = model;
constructor(lines: SplitLinesCollection) {
this._lines = lines;
}
// View -> Model conversion and related methods
public convertViewPositionToModelPosition(viewLineNumber: number, viewColumn: number): Position {
return this._lines.convertViewPositionToModelPosition(viewLineNumber, viewColumn);
public convertViewPositionToModelPosition(viewPosition: Position): Position {
return this._lines.convertViewPositionToModelPosition(viewPosition.lineNumber, viewPosition.column);
}
public convertViewRangeToModelRange(viewRange: Range): Range {
......@@ -44,20 +42,20 @@ export class CoordinatesConverter implements ICoordinatesConverter {
return new Selection(selectionStart.lineNumber, selectionStart.column, position.lineNumber, position.column);
}
public validateViewPosition(viewLineNumber: number, viewColumn: number, expectedModelPosition: Position): Position {
return this._lines.validateViewPosition(viewLineNumber, viewColumn, expectedModelPosition);
public validateViewPosition(viewPosition: Position, expectedModelPosition: Position): Position {
return this._lines.validateViewPosition(viewPosition.lineNumber, viewPosition.column, expectedModelPosition);
}
public validateViewRange(viewStartLineNumber: number, viewStartColumn: number, viewEndLineNumber: number, viewEndColumn: number, modelRange: Range): Range {
var validViewStart = this.validateViewPosition(viewStartLineNumber, viewStartColumn, modelRange.getStartPosition());
var validViewEnd = this.validateViewPosition(viewEndLineNumber, viewEndColumn, modelRange.getEndPosition());
public validateViewRange(viewRange: Range, modelRange: Range): Range {
var validViewStart = this._lines.validateViewPosition(viewRange.startLineNumber, viewRange.startColumn, modelRange.getStartPosition());
var validViewEnd = this._lines.validateViewPosition(viewRange.endLineNumber, viewRange.endColumn, modelRange.getEndPosition());
return new Range(validViewStart.lineNumber, validViewStart.column, validViewEnd.lineNumber, validViewEnd.column);
}
// Model -> View conversion and related methods
public convertModelPositionToViewPosition(modelLineNumber: number, modelColumn: number): Position {
return this._lines.convertModelPositionToViewPosition(modelLineNumber, modelColumn);
public convertModelPositionToViewPosition(modelPosition: Position): Position {
return this._lines.convertModelPositionToViewPosition(modelPosition.lineNumber, modelPosition.column);
}
public convertModelRangeToViewRange(modelRange: Range): Range {
......@@ -66,14 +64,8 @@ export class CoordinatesConverter implements ICoordinatesConverter {
return new Range(start.lineNumber, start.column, end.lineNumber, end.column);
}
public convertWholeLineModelRangeToViewRange(modelRange: Range): Range {
let start = this._lines.convertModelPositionToViewPosition(modelRange.startLineNumber, 1);
let end = this._lines.convertModelPositionToViewPosition(modelRange.endLineNumber, this._model.getLineMaxColumn(modelRange.endLineNumber));
return new Range(start.lineNumber, start.column, end.lineNumber, end.column);
}
public modelPositionIsVisible(position: Position): boolean {
return this._lines.modelPositionIsVisible(position.lineNumber, position.column);
public modelPositionIsVisible(modelPosition: Position): boolean {
return this._lines.modelPositionIsVisible(modelPosition.lineNumber, modelPosition.column);
}
}
......@@ -105,7 +97,7 @@ export class ViewModel extends EventEmitter implements IViewModel {
this.configuration = configuration;
this.model = model;
this.coordinatesConverter = new CoordinatesConverter(this.model, this.lines);
this.coordinatesConverter = new CoordinatesConverter(this.lines);
this._lastCursorPosition = new Position(1, 1);
this._renderCustomLineNumbers = this.configuration.editor.viewInfo.renderCustomLineNumbers;
......@@ -397,8 +389,8 @@ export class ViewModel extends EventEmitter implements IViewModel {
for (let i = 0, len = e.ranges.length; i < len; i++) {
let modelRange = e.ranges[i];
let viewStartLineNumber = this.coordinatesConverter.convertModelPositionToViewPosition(modelRange.fromLineNumber, 1).lineNumber;
let viewEndLineNumber = this.coordinatesConverter.convertModelPositionToViewPosition(modelRange.toLineNumber, this.model.getLineMaxColumn(modelRange.toLineNumber)).lineNumber;
let viewStartLineNumber = this.coordinatesConverter.convertModelPositionToViewPosition(new Position(modelRange.fromLineNumber, 1)).lineNumber;
let viewEndLineNumber = this.coordinatesConverter.convertModelPositionToViewPosition(new Position(modelRange.toLineNumber, this.model.getLineMaxColumn(modelRange.toLineNumber))).lineNumber;
viewRanges[i] = {
fromLineNumber: viewStartLineNumber,
toLineNumber: viewEndLineNumber
......@@ -491,7 +483,7 @@ export class ViewModel extends EventEmitter implements IViewModel {
}
public getLineRenderLineNumber(viewLineNumber: number): string {
let modelPosition = this.coordinatesConverter.convertViewPositionToModelPosition(viewLineNumber, 1);
let modelPosition = this.coordinatesConverter.convertViewPositionToModelPosition(new Position(viewLineNumber, 1));
if (modelPosition.column !== 1) {
return '';
}
......
......@@ -20,8 +20,8 @@ class SingleLineTestModel implements ISimpleModel {
private _eol: string;
public coordinatesConverter = {
convertViewPositionToModelPosition: (viewLineNumber: number, viewColumn: number): Position => {
return new Position(viewLineNumber, viewColumn);
convertViewPositionToModelPosition: (viewPosition: Position): Position => {
return viewPosition;
}
};
......
......@@ -412,8 +412,8 @@ class SimpleModel implements ISimpleModel {
private _eol: string;
public coordinatesConverter = {
convertViewPositionToModelPosition: (viewLineNumber: number, viewColumn: number): Position => {
return new Position(viewLineNumber, viewColumn);
convertViewPositionToModelPosition: (viewPosition: Position): Position => {
return viewPosition;
}
};
......
......@@ -19,25 +19,33 @@ export function withEditorModel(text: string[], callback: (model: Model) => void
export function viewModelHelper(model): IViewModelHelper {
return {
viewModel: model,
coordinatesConverter: {
convertViewPositionToModelPosition: (viewPosition: Position): Position => {
return viewPosition;
},
convertViewRangeToModelRange: (viewRange: Range): Range => {
return viewRange;
},
convertViewSelectionToModelSelection: (viewSelection: Selection): Selection => {
return viewSelection;
},
validateViewPosition: (viewPosition: Position, expectedModelPosition: Position): Position => {
return expectedModelPosition;
},
validateViewRange: (viewRange: Range, modelRange: Range): Range => {
return modelRange;
},
convertModelPositionToViewPosition: (modelPosition: Position): Position => {
return modelPosition;
},
convertModelRangeToViewRange: (modelRange: Range): Range => {
return modelRange;
},
modelPositionIsVisible: (modelPosition: Position): boolean => {
return true;
},
},
getCurrentCompletelyVisibleViewLinesRangeInViewport: () => { return null; },
getCurrentCompletelyVisibleModelLinesRangeInViewport: () => { return null; },
convertModelPositionToViewPosition: (lineNumber: number, column: number) => {
return new Position(lineNumber, column);
},
convertModelRangeToViewRange: (modelRange: Range) => {
return modelRange;
},
convertViewToModelPosition: (lineNumber: number, column: number) => {
return new Position(lineNumber, column);
},
convertViewSelectionToModelSelection: (viewSelection: Selection) => {
return viewSelection;
},
validateViewPosition: (viewPosition: Position, modelPosition: Position): Position => {
return modelPosition;
},
validateViewRange: (viewRange: Range, modelRange: Range): Range => {
return modelRange;
}
};
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册