diff --git a/src/vs/editor/common/model/mirrorModel2.ts b/src/vs/editor/common/model/mirrorModel.ts similarity index 98% rename from src/vs/editor/common/model/mirrorModel2.ts rename to src/vs/editor/common/model/mirrorModel.ts index b3737a1f505..69929dd1e86 100644 --- a/src/vs/editor/common/model/mirrorModel2.ts +++ b/src/vs/editor/common/model/mirrorModel.ts @@ -11,6 +11,9 @@ import { IModelContentChange } from 'vs/editor/common/model/textModelEvents'; import { IPosition } from "vs/editor/common/core/position"; export interface IModelChangedEvent { + /** + * The actual changes. + */ readonly changes: IModelContentChange[]; /** * The (new) end-of-line character. @@ -22,7 +25,7 @@ export interface IModelChangedEvent { readonly versionId: number; } -export class MirrorModel2 { +export class MirrorModel { protected _uri: URI; protected _lines: string[]; diff --git a/src/vs/editor/common/services/editorSimpleWorker.ts b/src/vs/editor/common/services/editorSimpleWorker.ts index 5958c72b573..9ad33f8ff90 100644 --- a/src/vs/editor/common/services/editorSimpleWorker.ts +++ b/src/vs/editor/common/services/editorSimpleWorker.ts @@ -14,7 +14,7 @@ import { DiffComputer } from 'vs/editor/common/diff/diffComputer'; import { stringDiff } from 'vs/base/common/diff/diff'; import * as editorCommon from 'vs/editor/common/editorCommon'; import { Position, IPosition } from 'vs/editor/common/core/position'; -import { MirrorModel2, IModelChangedEvent } from 'vs/editor/common/model/mirrorModel2'; +import { MirrorModel as BaseMirrorModel, IModelChangedEvent } from 'vs/editor/common/model/mirrorModel'; import { IInplaceReplaceSupportResult, ILink, ISuggestResult, ISuggestion, TextEdit } from 'vs/editor/common/modes'; import { computeLinks } from 'vs/editor/common/modes/linkComputer'; import { BasicInplaceReplace } from 'vs/editor/common/modes/supports/inplaceReplaceSupport'; @@ -67,7 +67,7 @@ export interface ICommonModel { /** * @internal */ -class MirrorModel extends MirrorModel2 implements ICommonModel { +class MirrorModel extends BaseMirrorModel implements ICommonModel { public get uri(): URI { return this._uri; diff --git a/src/vs/editor/contrib/gotoError/browser/gotoError.ts b/src/vs/editor/contrib/gotoError/browser/gotoError.ts index 4502bc535ad..313c535ad98 100644 --- a/src/vs/editor/contrib/gotoError/browser/gotoError.ts +++ b/src/vs/editor/contrib/gotoError/browser/gotoError.ts @@ -17,7 +17,7 @@ import { ICommandService } from 'vs/platform/commands/common/commands'; import { RawContextKey, IContextKey, IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; import { IMarker, IMarkerService } from 'vs/platform/markers/common/markers'; import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; -import { Position, IPosition } from 'vs/editor/common/core/position'; +import { Position } from 'vs/editor/common/core/position'; import { Range } from 'vs/editor/common/core/range'; import * as editorCommon from 'vs/editor/common/editorCommon'; import { editorAction, ServicesAccessor, IActionOptions, EditorAction, EditorCommand, CommonEditorRegistry } from 'vs/editor/common/editorCommonExtensions'; @@ -142,7 +142,7 @@ class MarkerModel { this.move(false); } - public findMarkerAtPosition(pos: IPosition): IMarker { + public findMarkerAtPosition(pos: Position): IMarker { for (const marker of this._markers) { if (Range.containsPosition(marker, pos)) { return marker; @@ -267,7 +267,7 @@ class MarkerNavigationWidget extends ZoneWidget { this.editor.applyFontInfo(this._message.domNode); } - public show(where: IPosition, heightInLines: number): void { + public show(where: Position, heightInLines: number): void { super.show(where, heightInLines); this.focus(); } @@ -296,10 +296,7 @@ class MarkerNavigationWidget extends ZoneWidget { this._severity = marker.severity; this._applyTheme(this._themeService.getTheme()); - this.show({ - lineNumber: marker.startLineNumber, - column: marker.startColumn - }, this.computeRequiredHeight()); + this.show(new Position(marker.startLineNumber, marker.startColumn), this.computeRequiredHeight()); }); } diff --git a/src/vs/editor/contrib/hover/browser/hoverWidgets.ts b/src/vs/editor/contrib/hover/browser/hoverWidgets.ts index d809d94db32..94170cf47d1 100644 --- a/src/vs/editor/contrib/hover/browser/hoverWidgets.ts +++ b/src/vs/editor/contrib/hover/browser/hoverWidgets.ts @@ -7,7 +7,7 @@ import { KeyCode } from 'vs/base/common/keyCodes'; import { IKeyboardEvent } from 'vs/base/browser/keyboardEvent'; import { toggleClass } from 'vs/base/browser/dom'; -import { IPosition, Position } from 'vs/editor/common/core/position'; +import { Position } from 'vs/editor/common/core/position'; import * as editorBrowser from 'vs/editor/browser/editorBrowser'; import { Widget } from 'vs/base/browser/ui/widget'; import { DomScrollableElement } from 'vs/base/browser/ui/scrollbar/scrollableElement'; @@ -82,7 +82,7 @@ export class ContentHoverWidget extends Widget implements editorBrowser.IContent return this._containerDomNode; } - public showAt(position: IPosition, focus: boolean): void { + public showAt(position: Position, focus: boolean): void { // Position has changed this._showAtPosition = new Position(position.lineNumber, position.column); this.isVisible = true; diff --git a/src/vs/editor/contrib/hover/browser/modesContentHover.ts b/src/vs/editor/contrib/hover/browser/modesContentHover.ts index 862ecc2c981..6c9d4105c27 100644 --- a/src/vs/editor/contrib/hover/browser/modesContentHover.ts +++ b/src/vs/editor/contrib/hover/browser/modesContentHover.ts @@ -267,10 +267,7 @@ export class ModesContentHoverWidget extends ContentHoverWidget { }); // show - this.showAt({ - lineNumber: renderRange.startLineNumber, - column: renderColumn - }, this._shouldFocus); + this.showAt(new Position(renderRange.startLineNumber, renderColumn), this._shouldFocus); this.updateContents(fragment); diff --git a/src/vs/editor/contrib/links/browser/links.ts b/src/vs/editor/contrib/links/browser/links.ts index 0db7703338b..848c95b9f96 100644 --- a/src/vs/editor/contrib/links/browser/links.ts +++ b/src/vs/editor/contrib/links/browser/links.ts @@ -25,7 +25,7 @@ import { IDisposable, dispose } from 'vs/base/common/lifecycle'; import { editorContribution } from 'vs/editor/browser/editorBrowserExtensions'; import { registerThemingParticipant } from 'vs/platform/theme/common/themeService'; import { editorLinkForeground, editorActiveLinkForeground } from 'vs/platform/theme/common/colorRegistry'; -import { IPosition } from "vs/editor/common/core/position"; +import { Position } from "vs/editor/common/core/position"; class LinkOccurence { @@ -279,7 +279,7 @@ class LinkDetector implements editorCommon.IEditorContribution { }).done(null, onUnexpectedError); } - public getLinkOccurence(position: IPosition): LinkOccurence { + public getLinkOccurence(position: Position): LinkOccurence { var decorations = this.editor.getModel().getDecorationsInRange({ startLineNumber: position.lineNumber, startColumn: position.column, diff --git a/src/vs/editor/contrib/quickFix/browser/quickFixModel.ts b/src/vs/editor/contrib/quickFix/browser/quickFixModel.ts index 9b18e7a87b7..d5f6529ff9e 100644 --- a/src/vs/editor/contrib/quickFix/browser/quickFixModel.ts +++ b/src/vs/editor/contrib/quickFix/browser/quickFixModel.ts @@ -14,7 +14,7 @@ import { Range } from 'vs/editor/common/core/range'; import { ICommonCodeEditor } from 'vs/editor/common/editorCommon'; import { CodeActionProviderRegistry, CodeAction } from 'vs/editor/common/modes'; import { getCodeActions } from './quickFix'; -import { IPosition } from "vs/editor/common/core/position"; +import { Position } from "vs/editor/common/core/position"; export class QuickFixOracle { @@ -125,7 +125,7 @@ export class QuickFixOracle { export interface QuickFixComputeEvent { type: 'auto' | 'manual'; range: Range; - position: IPosition; + position: Position; fixes: TPromise; } diff --git a/src/vs/editor/contrib/quickFix/browser/quickFixWidget.ts b/src/vs/editor/contrib/quickFix/browser/quickFixWidget.ts index 59effc38df9..8c3b5cff522 100644 --- a/src/vs/editor/contrib/quickFix/browser/quickFixWidget.ts +++ b/src/vs/editor/contrib/quickFix/browser/quickFixWidget.ts @@ -8,7 +8,7 @@ import { TPromise } from 'vs/base/common/winjs.base'; import { always } from 'vs/base/common/async'; import { getDomNodePagePosition } from 'vs/base/browser/dom'; -import { IPosition, Position } from 'vs/editor/common/core/position'; +import { Position } from 'vs/editor/common/core/position'; import { ICodeEditor } from 'vs/editor/browser/editorBrowser'; import { CodeAction } from 'vs/editor/common/modes'; import { IContextMenuService } from 'vs/platform/contextview/browser/contextView'; @@ -32,7 +32,7 @@ export class QuickFixContextMenu { this._commandService = commandService; } - show(fixes: TPromise, at: { x: number; y: number } | IPosition) { + show(fixes: TPromise, at: { x: number; y: number } | Position) { const actions = fixes.then(value => { return value.map(({ command }) => { @@ -61,7 +61,7 @@ export class QuickFixContextMenu { return this._visible; } - private _toCoords(position: IPosition): { x: number, y: number } { + private _toCoords(position: Position): { x: number, y: number } { this._editor.revealPosition(position); this._editor.render(); diff --git a/src/vs/editor/contrib/quickOpen/browser/gotoLine.ts b/src/vs/editor/contrib/quickOpen/browser/gotoLine.ts index 8904674e2a1..8f8d15024a0 100644 --- a/src/vs/editor/contrib/quickOpen/browser/gotoLine.ts +++ b/src/vs/editor/contrib/quickOpen/browser/gotoLine.ts @@ -15,11 +15,11 @@ import { ICodeEditor, IDiffEditor } from 'vs/editor/browser/editorBrowser'; import { BaseEditorQuickOpenAction, IDecorator } from './editorQuickOpen'; import { editorAction, ServicesAccessor } from 'vs/editor/common/editorCommonExtensions'; import { KeyCode, KeyMod } from 'vs/base/common/keyCodes'; -import { IPosition } from "vs/editor/common/core/position"; +import { Position } from "vs/editor/common/core/position"; import { Range } from "vs/editor/common/core/range"; interface ParseResult { - position: IPosition; + position: Position; isValid: boolean; label: string; } @@ -42,14 +42,14 @@ export class GotoLineEntry extends QuickOpenEntry { private _parseInput(line: string): ParseResult { let numbers = line.split(',').map(part => parseInt(part, 10)).filter(part => !isNaN(part)), - position: IPosition; + position: Position; if (numbers.length === 0) { - position = { lineNumber: -1, column: -1 }; + position = new Position(-1, -1); } else if (numbers.length === 1) { - position = { lineNumber: numbers[0], column: 1 }; + position = new Position(numbers[0], 1); } else { - position = { lineNumber: numbers[0], column: numbers[1] }; + position = new Position(numbers[0], numbers[1]); } let model: editorCommon.IModel; diff --git a/src/vs/editor/contrib/referenceSearch/browser/referencesController.ts b/src/vs/editor/contrib/referenceSearch/browser/referencesController.ts index 28f83e8edef..b326ef16c12 100644 --- a/src/vs/editor/contrib/referenceSearch/browser/referencesController.ts +++ b/src/vs/editor/contrib/referenceSearch/browser/referencesController.ts @@ -27,7 +27,7 @@ import { ReferenceWidget, LayoutData } from './referencesWidget'; import { Range } from 'vs/editor/common/core/range'; import { ITextModelResolverService } from 'vs/editor/common/services/resolverService'; import { IThemeService } from "vs/platform/theme/common/themeService"; -import { IPosition } from "vs/editor/common/core/position"; +import { Position } from "vs/editor/common/core/position"; export const ctxReferenceSearchVisible = new RawContextKey('referenceSearchVisible', false); @@ -87,7 +87,7 @@ export class ReferencesController implements editorCommon.IEditorContribution { public toggleWidget(range: Range, modelPromise: TPromise, options: RequestOptions): void { // close current widget and return early is position didn't change - let widgetPosition: IPosition; + let widgetPosition: Position; if (this._widget) { widgetPosition = this._widget.position; } @@ -176,7 +176,7 @@ export class ReferencesController implements editorCommon.IEditorContribution { // set 'best' selection let uri = this._editor.getModel().uri; - let pos = { lineNumber: range.startLineNumber, column: range.startColumn }; + let pos = new Position(range.startLineNumber, range.startColumn); let selection = this._model.nearestReference(uri, pos); if (selection) { return this._widget.setSelection(selection); diff --git a/src/vs/editor/contrib/referenceSearch/browser/referencesModel.ts b/src/vs/editor/contrib/referenceSearch/browser/referencesModel.ts index ae38386ab7a..c47f62871cc 100644 --- a/src/vs/editor/contrib/referenceSearch/browser/referencesModel.ts +++ b/src/vs/editor/contrib/referenceSearch/browser/referencesModel.ts @@ -15,7 +15,7 @@ import { TPromise } from 'vs/base/common/winjs.base'; import { Range, IRange } from 'vs/editor/common/core/range'; import { Location } from 'vs/editor/common/modes'; import { ITextModelResolverService, ITextEditorModel } from 'vs/editor/common/services/resolverService'; -import { IPosition } from "vs/editor/common/core/position"; +import { Position } from "vs/editor/common/core/position"; export class OneReference { @@ -238,7 +238,7 @@ export class ReferencesModel implements IDisposable { return reference.parent.parent.groups[idx].children[0]; } - public nearestReference(resource: URI, position: IPosition): OneReference { + public nearestReference(resource: URI, position: Position): OneReference { const nearest = this._references.map((ref, idx) => { return { diff --git a/src/vs/editor/contrib/rename/browser/renameInputField.ts b/src/vs/editor/contrib/rename/browser/renameInputField.ts index 68ccf9728b0..fcf97a40ac8 100644 --- a/src/vs/editor/contrib/rename/browser/renameInputField.ts +++ b/src/vs/editor/contrib/rename/browser/renameInputField.ts @@ -14,12 +14,12 @@ import { Range } from 'vs/editor/common/core/range'; import { ContentWidgetPositionPreference, ICodeEditor, IContentWidget, IContentWidgetPosition } from 'vs/editor/browser/editorBrowser'; import { IThemeService, ITheme } from "vs/platform/theme/common/themeService"; import { inputBackground, inputBorder, inputForeground, editorWidgetShadow, focus } from "vs/platform/theme/common/colorRegistry"; -import { IPosition } from "vs/editor/common/core/position"; +import { Position } from "vs/editor/common/core/position"; export default class RenameInputField implements IContentWidget, IDisposable { private _editor: ICodeEditor; - private _position: IPosition; + private _position: Position; private _domNode: HTMLElement; private _inputField: HTMLInputElement; private _visible: boolean; @@ -125,7 +125,7 @@ export default class RenameInputField implements IContentWidget, IDisposable { public getInput(where: Range, value: string, selectionStart: number, selectionEnd: number): TPromise { - this._position = { lineNumber: where.startLineNumber, column: where.startColumn }; + this._position = new Position(where.startLineNumber, where.startColumn); this._inputField.value = value; this._inputField.setAttribute('selectionStart', selectionStart.toString()); this._inputField.setAttribute('selectionEnd', selectionEnd.toString()); diff --git a/src/vs/editor/contrib/smartSelect/common/tokenSelectionSupport.ts b/src/vs/editor/contrib/smartSelect/common/tokenSelectionSupport.ts index d9a0d75e535..219901f7937 100644 --- a/src/vs/editor/contrib/smartSelect/common/tokenSelectionSupport.ts +++ b/src/vs/editor/contrib/smartSelect/common/tokenSelectionSupport.ts @@ -10,7 +10,7 @@ import { Range } from 'vs/editor/common/core/range'; import { IModel } from 'vs/editor/common/editorCommon'; import { IModelService } from 'vs/editor/common/services/modelService'; import { Node, build, find } from './tokenTree'; -import { IPosition } from "vs/editor/common/core/position"; +import { Position } from "vs/editor/common/core/position"; /** * Interface used to compute a hierachry of logical ranges. @@ -28,11 +28,11 @@ export class TokenSelectionSupport { this._modelService = modelService; } - public getRangesToPosition(resource: URI, position: IPosition): TPromise { + public getRangesToPosition(resource: URI, position: Position): TPromise { return TPromise.as(this.getRangesToPositionSync(resource, position)); } - public getRangesToPositionSync(resource: URI, position: IPosition): ILogicalSelectionEntry[] { + public getRangesToPositionSync(resource: URI, position: Position): ILogicalSelectionEntry[] { var model = this._modelService.getModel(resource), entries: ILogicalSelectionEntry[] = []; @@ -48,7 +48,7 @@ export class TokenSelectionSupport { return entries; } - private _doGetRangesToPosition(model: IModel, position: IPosition): Range[] { + private _doGetRangesToPosition(model: IModel, position: Position): Range[] { var tree = build(model), node: Node, diff --git a/src/vs/editor/contrib/smartSelect/common/tokenTree.ts b/src/vs/editor/contrib/smartSelect/common/tokenTree.ts index daa1c8fb450..2f59884b34c 100644 --- a/src/vs/editor/contrib/smartSelect/common/tokenTree.ts +++ b/src/vs/editor/contrib/smartSelect/common/tokenTree.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; -import { Position, IPosition } from 'vs/editor/common/core/position'; +import { Position } from 'vs/editor/common/core/position'; import { Range } from 'vs/editor/common/core/range'; import { IModel } from 'vs/editor/common/editorCommon'; import { LineToken } from 'vs/editor/common/core/lineTokens'; @@ -399,7 +399,7 @@ export function build(model: IModel): Node { return node; } -export function find(node: Node, position: IPosition): Node { +export function find(node: Node, position: Position): Node { if (node instanceof NodeList && node.isEmpty) { return null; } diff --git a/src/vs/editor/contrib/smartSelect/test/common/tokenSelectionSupport.test.ts b/src/vs/editor/contrib/smartSelect/test/common/tokenSelectionSupport.test.ts index f0b02563de4..1daf34354e3 100644 --- a/src/vs/editor/contrib/smartSelect/test/common/tokenSelectionSupport.test.ts +++ b/src/vs/editor/contrib/smartSelect/test/common/tokenSelectionSupport.test.ts @@ -7,6 +7,7 @@ import * as assert from 'assert'; import URI from 'vs/base/common/uri'; import { Range } from 'vs/editor/common/core/range'; +import { Position } from 'vs/editor/common/core/position'; import { LanguageIdentifier } from 'vs/editor/common/modes'; import { IndentAction } from 'vs/editor/common/modes/languageConfiguration'; import { TokenSelectionSupport } from 'vs/editor/contrib/smartSelect/common/tokenSelectionSupport'; @@ -82,10 +83,7 @@ suite('TokenSelectionSupport', () => { let uri = URI.file('test.js'); modelService.createModel(text.join('\n'), mode, uri); - let actual = tokenSelectionSupport.getRangesToPositionSync(uri, { - lineNumber: lineNumber, - column: column - }); + let actual = tokenSelectionSupport.getRangesToPositionSync(uri, new Position(lineNumber, column)); let actualStr = actual.map(r => new Range(r.range.startLineNumber, r.range.startColumn, r.range.endLineNumber, r.range.endColumn).toString()); let desiredStr = ranges.map(r => String(r)); diff --git a/src/vs/editor/contrib/snippet/common/snippetController.ts b/src/vs/editor/contrib/snippet/common/snippetController.ts index d6b364ae1f4..943cc7de62c 100644 --- a/src/vs/editor/contrib/snippet/common/snippetController.ts +++ b/src/vs/editor/contrib/snippet/common/snippetController.ts @@ -17,7 +17,7 @@ import { IDisposable, dispose } from 'vs/base/common/lifecycle'; import { ISnippetVariableResolver, ICodeSnippet, CodeSnippet } from './snippet'; import { SnippetVariablesResolver } from './snippetVariables'; import EditorContextKeys = editorCommon.EditorContextKeys; -import { IPosition } from "vs/editor/common/core/position"; +import { Position } from "vs/editor/common/core/position"; export class InsertSnippetController { @@ -667,7 +667,7 @@ export class SnippetController { return snippet.bind(model.getLineContent(typeRange.startLineNumber), typeRange.startLineNumber - 1, typeRange.startColumn - 1, model); } - private static _getSnippetCursorOnly(snippet: ICodeSnippet): IPosition { + private static _getSnippetCursorOnly(snippet: ICodeSnippet): Position { if (snippet.placeHolders.length !== 1) { return null; @@ -683,10 +683,10 @@ export class SnippetController { return null; } - return { - lineNumber: placeHolderRange.startLineNumber, - column: placeHolderRange.startColumn - }; + return new Position( + placeHolderRange.startLineNumber, + placeHolderRange.startColumn + ); } public jumpToNextPlaceholder(): void { diff --git a/src/vs/editor/contrib/suggest/browser/suggestModel.ts b/src/vs/editor/contrib/suggest/browser/suggestModel.ts index dd987f125a8..36d279d017b 100644 --- a/src/vs/editor/contrib/suggest/browser/suggestModel.ts +++ b/src/vs/editor/contrib/suggest/browser/suggestModel.ts @@ -12,7 +12,7 @@ import { IDisposable, dispose } from 'vs/base/common/lifecycle'; import { TPromise } from 'vs/base/common/winjs.base'; import { ICommonCodeEditor, ICursorSelectionChangedEvent, CursorChangeReason, IModel, IWordAtPosition } from 'vs/editor/common/editorCommon'; import { ISuggestSupport, SuggestRegistry, StandardTokenType } from 'vs/editor/common/modes'; -import { Position, IPosition } from 'vs/editor/common/core/position'; +import { Position } from 'vs/editor/common/core/position'; import { provideSuggestionItems, getSuggestionComparator, ISuggestionItem } from './suggest'; import { CompletionModel } from './completionModel'; @@ -69,7 +69,7 @@ export class LineContext { readonly leadingWord: IWordAtPosition; readonly auto; - constructor(model: IModel, position: IPosition, auto: boolean) { + constructor(model: IModel, position: Position, auto: boolean) { this.leadingLineContent = model.getLineContent(position.lineNumber).substr(0, position.column - 1); this.leadingWord = model.getWordUntilPosition(position); this.lineNumber = position.lineNumber; diff --git a/src/vs/editor/contrib/zoneWidget/browser/zoneWidget.ts b/src/vs/editor/contrib/zoneWidget/browser/zoneWidget.ts index 9eebcb40b44..4fe0f4c9249 100644 --- a/src/vs/editor/contrib/zoneWidget/browser/zoneWidget.ts +++ b/src/vs/editor/contrib/zoneWidget/browser/zoneWidget.ts @@ -15,7 +15,7 @@ import { Range, IRange } from 'vs/editor/common/core/range'; import { ICodeEditor, IOverlayWidget, IOverlayWidgetPosition, IViewZone, IViewZoneChangeAccessor } from 'vs/editor/browser/editorBrowser'; import { Color, RGBA } from "vs/base/common/color"; import { EditorLayoutInfo } from "vs/editor/common/config/editorOptions"; -import { IPosition } from "vs/editor/common/core/position"; +import { Position, IPosition } from "vs/editor/common/core/position"; export interface IOptions { showFrame?: boolean; @@ -210,7 +210,7 @@ export abstract class ZoneWidget extends Widget implements IHorizontalSashLayout this._resizeSash.layout(); } - public get position(): IPosition { + public get position(): Position { const [id] = this._positionMarkerId; if (id) { return this.editor.getModel().getDecorationRange(id).getStartPosition(); diff --git a/src/vs/editor/test/common/model/editableTextModel.test.ts b/src/vs/editor/test/common/model/editableTextModel.test.ts index b5d394e9863..f2903f035ba 100644 --- a/src/vs/editor/test/common/model/editableTextModel.test.ts +++ b/src/vs/editor/test/common/model/editableTextModel.test.ts @@ -9,7 +9,7 @@ import * as assert from 'assert'; import { Range } from 'vs/editor/common/core/range'; import { EndOfLinePreference, EndOfLineSequence, IIdentifiedSingleEditOperation } from 'vs/editor/common/editorCommon'; import { EditableTextModel, IValidatedEditOperation } from 'vs/editor/common/model/editableTextModel'; -import { MirrorModel2 } from 'vs/editor/common/model/mirrorModel2'; +import { MirrorModel } from 'vs/editor/common/model/mirrorModel'; import { assertSyncedModels, testApplyEditsWithSyncedModels } from 'vs/editor/test/common/model/editableTextModelTestUtils'; import { IModelContentChangedEvent } from "vs/editor/common/model/textModelEvents"; @@ -1554,7 +1554,7 @@ suite('EditorModel - EditableTextModel.applyEdits', () => { let model = EditableTextModel.createFromString('Hello\nWorld!'); assert.equal(model.getEOL(), '\n'); - let mirrorModel2 = new MirrorModel2(null, model.getLinesContent(), model.getEOL(), model.getVersionId()); + let mirrorModel2 = new MirrorModel(null, model.getLinesContent(), model.getEOL(), model.getVersionId()); let mirrorModel2PrevVersionId = model.getVersionId(); model.onDidChangeContent((e: IModelContentChangedEvent) => { diff --git a/src/vs/editor/test/common/model/editableTextModelTestUtils.ts b/src/vs/editor/test/common/model/editableTextModelTestUtils.ts index 6c330bae2c3..cd0fa126363 100644 --- a/src/vs/editor/test/common/model/editableTextModelTestUtils.ts +++ b/src/vs/editor/test/common/model/editableTextModelTestUtils.ts @@ -7,7 +7,7 @@ import * as assert from 'assert'; import * as editorCommon from 'vs/editor/common/editorCommon'; import { EditableTextModel } from 'vs/editor/common/model/editableTextModel'; -import { MirrorModel2 } from 'vs/editor/common/model/mirrorModel2'; +import { MirrorModel } from 'vs/editor/common/model/mirrorModel'; import { TextModel } from 'vs/editor/common/model/textModel'; import { Position } from 'vs/editor/common/core/position'; import { RawTextSource } from 'vs/editor/common/model/textSource'; @@ -91,7 +91,7 @@ export function assertSyncedModels(text: string, callback: (model: EditableTextM assertLineMapping(model, 'model'); } - var mirrorModel2 = new MirrorModel2(null, model.getLinesContent(), model.getEOL(), model.getVersionId()); + var mirrorModel2 = new MirrorModel(null, model.getLinesContent(), model.getEOL(), model.getVersionId()); var mirrorModel2PrevVersionId = model.getVersionId(); model.onDidChangeContent((e: IModelContentChangedEvent) => { diff --git a/src/vs/workbench/api/node/extHost.protocol.ts b/src/vs/workbench/api/node/extHost.protocol.ts index 5b0e1dba42e..9fe2a7715d7 100644 --- a/src/vs/workbench/api/node/extHost.protocol.ts +++ b/src/vs/workbench/api/node/extHost.protocol.ts @@ -38,7 +38,7 @@ import { IApplyEditsOptions, IUndoStopOptions, TextEditorRevealType, ITextEditor import { InternalTreeExplorerNodeContent } from 'vs/workbench/parts/explorers/common/treeExplorerViewModel'; import { TaskSet } from 'vs/workbench/parts/tasks/common/tasks'; -import { IModelChangedEvent } from 'vs/editor/common/model/mirrorModel2'; +import { IModelChangedEvent } from 'vs/editor/common/model/mirrorModel'; import { IPosition } from "vs/editor/common/core/position"; import { IRange } from "vs/editor/common/core/range"; import { ISelection } from "vs/editor/common/core/selection"; diff --git a/src/vs/workbench/api/node/extHostDocumentData.ts b/src/vs/workbench/api/node/extHostDocumentData.ts index cdfb255d6e5..96cb2aec92d 100644 --- a/src/vs/workbench/api/node/extHostDocumentData.ts +++ b/src/vs/workbench/api/node/extHostDocumentData.ts @@ -6,7 +6,7 @@ import { ok } from 'vs/base/common/assert'; import { regExpLeadsToEndlessLoop } from 'vs/base/common/strings'; -import { MirrorModel2 } from 'vs/editor/common/model/mirrorModel2'; +import { MirrorModel } from 'vs/editor/common/model/mirrorModel'; import URI from 'vs/base/common/uri'; import { Range, Position, EndOfLine } from 'vs/workbench/api/node/extHostTypes'; import * as vscode from 'vscode'; @@ -23,7 +23,7 @@ export function getWordDefinitionFor(modeId: string): RegExp { return _modeId2WordDefinition.get(modeId); } -export class ExtHostDocumentData extends MirrorModel2 { +export class ExtHostDocumentData extends MirrorModel { private _proxy: MainThreadDocumentsShape; private _languageId: string; diff --git a/src/vs/workbench/api/node/extHostDocuments.ts b/src/vs/workbench/api/node/extHostDocuments.ts index 180e2ada0af..81b16769f40 100644 --- a/src/vs/workbench/api/node/extHostDocuments.ts +++ b/src/vs/workbench/api/node/extHostDocuments.ts @@ -19,7 +19,7 @@ import { TextSource } from 'vs/editor/common/model/textSource'; import { MainContext, MainThreadDocumentsShape, ExtHostDocumentsShape } from './extHost.protocol'; import { ExtHostDocumentData, setWordDefinitionFor } from './extHostDocumentData'; import { ExtHostDocumentsAndEditors } from './extHostDocumentsAndEditors'; -import { IModelChangedEvent } from 'vs/editor/common/model/mirrorModel2'; +import { IModelChangedEvent } from 'vs/editor/common/model/mirrorModel'; export class ExtHostDocuments extends ExtHostDocumentsShape { diff --git a/src/vs/workbench/parts/debug/electron-browser/debugEditorContribution.ts b/src/vs/workbench/parts/debug/electron-browser/debugEditorContribution.ts index 8803c24d270..b7e31898178 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugEditorContribution.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugEditorContribution.ts @@ -36,7 +36,7 @@ import { ExceptionWidget } from 'vs/workbench/parts/debug/browser/exceptionWidge import { FloatingClickWidget } from 'vs/workbench/parts/preferences/browser/preferencesWidgets'; import { IListService } from 'vs/platform/list/browser/listService'; import { IThemeService } from "vs/platform/theme/common/themeService"; -import { IPosition } from "vs/editor/common/core/position"; +import { Position } from "vs/editor/common/core/position"; const HOVER_DELAY = 300; const LAUNCH_JSON_REGEX = /launch\.json$/; @@ -59,7 +59,7 @@ export class DebugEditorContribution implements IDebugEditorContribution { private breakpointHintDecoration: string[]; private breakpointWidget: BreakpointWidget; private breakpointWidgetVisible: IContextKey; - private wordToLineNumbersMap: Map; + private wordToLineNumbersMap: Map; private exceptionWidget: ExceptionWidget; @@ -405,7 +405,7 @@ export class DebugEditorContribution implements IDebugEditorContribution { public addLaunchConfiguration(): TPromise { this.telemetryService.publicLog('debug/addLaunchConfiguration'); - let configurationsArrayPosition: IPosition; + let configurationsArrayPosition: Position; const model = this.editor.getModel(); let depthInArray = 0; let lastProperty: string; @@ -430,7 +430,7 @@ export class DebugEditorContribution implements IDebugEditorContribution { return this.commandService.executeCommand('editor.action.triggerSuggest'); } - const insertLine = (position: IPosition): TPromise => { + const insertLine = (position: Position): TPromise => { // Check if there are more characters on a line after a "configurations": [, if yes enter a newline if (this.editor.getModel().getLineLastNonWhitespaceColumn(position.lineNumber) > position.column) { this.editor.setPosition(position); @@ -559,9 +559,9 @@ export class DebugEditorContribution implements IDebugEditorContribution { }; } - private getWordToPositionsMap(): Map { + private getWordToPositionsMap(): Map { if (!this.wordToLineNumbersMap) { - this.wordToLineNumbersMap = new Map(); + this.wordToLineNumbersMap = new Map(); const model = this.editor.getModel(); // For every word in every line, map its ranges for fast lookup for (let lineNumber = 1, len = model.getLineCount(); lineNumber <= len; ++lineNumber) { @@ -588,7 +588,7 @@ export class DebugEditorContribution implements IDebugEditorContribution { this.wordToLineNumbersMap.set(word, []); } - this.wordToLineNumbersMap.get(word).push({ lineNumber, column: token.startOffset }); + this.wordToLineNumbersMap.get(word).push(new Position(lineNumber, token.startOffset)); } } } diff --git a/src/vs/workbench/parts/emmet/node/editorAccessor.ts b/src/vs/workbench/parts/emmet/node/editorAccessor.ts index 17e84b6ffb1..f7ea969e989 100644 --- a/src/vs/workbench/parts/emmet/node/editorAccessor.ts +++ b/src/vs/workbench/parts/emmet/node/editorAccessor.ts @@ -11,10 +11,9 @@ import snippets = require('vs/editor/contrib/snippet/common/snippet'); import { Range } from 'vs/editor/common/core/range'; import { SnippetController } from 'vs/editor/contrib/snippet/common/snippetController'; import { LanguageId, LanguageIdentifier } from 'vs/editor/common/modes'; - +import { Position } from "vs/editor/common/core/position"; import emmet = require('emmet'); -import { IPosition } from "vs/editor/common/core/position"; export interface IGrammarContributions { getGrammar(mode: string): string; @@ -61,8 +60,8 @@ export class EditorAccessor implements emmet.Editor { public getCurrentLineRange(): emmet.Range { let currentLine = this._editor.getSelection().startLineNumber; return { - start: this.getOffsetFromPosition({ lineNumber: currentLine, column: 1 }), - end: this.getOffsetFromPosition({ lineNumber: currentLine + 1, column: 1 }) + start: this.getOffsetFromPosition(new Position(currentLine, 1)), + end: this.getOffsetFromPosition(new Position(currentLine + 1, 1)) }; } @@ -94,7 +93,7 @@ export class EditorAccessor implements emmet.Editor { var match = currentLine.match(/<[/]?$/); if (match) { if (strings.startsWith(value, match[0])) { - startPosition = { lineNumber: startPosition.lineNumber, column: startPosition.column - match[0].length }; + startPosition = new Position(startPosition.lineNumber, startPosition.column - match[0].length); } else { return; // ignore } @@ -103,7 +102,7 @@ export class EditorAccessor implements emmet.Editor { // test if > is located after the replace range. Either replace these too, or block the expansion if (this._editor.getModel().getLineContent(endPosition.lineNumber).substr(endPosition.column - 1, endPosition.column) === '>') { if (strings.endsWith(value, '>')) { - endPosition = { lineNumber: endPosition.lineNumber, column: endPosition.column + 1 }; + endPosition = new Position(endPosition.lineNumber, endPosition.column + 1); } else { return; // ignore } @@ -236,11 +235,11 @@ export class EditorAccessor implements emmet.Editor { return this._editor.getModel().uri.fsPath; } - private getPositionFromOffset(offset: number): IPosition { + private getPositionFromOffset(offset: number): Position { return this._editor.getModel().getPositionAt(offset); } - private getOffsetFromPosition(position: IPosition): number { + private getOffsetFromPosition(position: Position): number { return this._editor.getModel().getOffsetAt(position); } } diff --git a/src/vs/workbench/parts/preferences/browser/preferencesWidgets.ts b/src/vs/workbench/parts/preferences/browser/preferencesWidgets.ts index cdc244e8fa9..60904d9a163 100644 --- a/src/vs/workbench/parts/preferences/browser/preferencesWidgets.ts +++ b/src/vs/workbench/parts/preferences/browser/preferencesWidgets.ts @@ -25,7 +25,7 @@ import { ActionsOrientation, ActionBar } from 'vs/base/browser/ui/actionbar/acti import { Action } from 'vs/base/common/actions'; import { attachInputBoxStyler } from 'vs/platform/theme/common/styler'; import { IThemeService } from 'vs/platform/theme/common/themeService'; -import { IPosition } from "vs/editor/common/core/position"; +import { Position } from "vs/editor/common/core/position"; export class SettingsGroupTitleWidget extends Widget implements IViewZone { @@ -40,7 +40,7 @@ export class SettingsGroupTitleWidget extends Widget implements IViewZone { private _onToggled = this._register(new Emitter()); public onToggled: Event = this._onToggled.event; - private previousPosition: IPosition; + private previousPosition: Position; constructor(private editor: ICodeEditor, public settingsGroup: ISettingsGroup) { super(); @@ -160,7 +160,7 @@ export class SettingsGroupTitleWidget extends Widget implements IViewZone { } } - private focusTitle(currentPosition: IPosition): boolean { + private focusTitle(currentPosition: Position): boolean { const previousPosition = this.previousPosition; this.previousPosition = currentPosition; if (!previousPosition) { diff --git a/src/vs/workbench/parts/snippets/electron-browser/snippetsService.ts b/src/vs/workbench/parts/snippets/electron-browser/snippetsService.ts index e59e7ca5a45..7e09223592c 100644 --- a/src/vs/workbench/parts/snippets/electron-browser/snippetsService.ts +++ b/src/vs/workbench/parts/snippets/electron-browser/snippetsService.ts @@ -12,7 +12,7 @@ import { createDecorator } from 'vs/platform/instantiation/common/instantiation' import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; import { setSnippetSuggestSupport } from 'vs/editor/contrib/suggest/browser/suggest'; import { IModeService } from 'vs/editor/common/services/modeService'; -import { IPosition } from "vs/editor/common/core/position"; +import { Position } from "vs/editor/common/core/position"; export const ISnippetsService = createDecorator('snippetService'); @@ -75,7 +75,7 @@ class SnippetsService implements ISnippetsService { } } - private _getLanguageIdAtPosition(model: IModel, position: IPosition): LanguageId { + private _getLanguageIdAtPosition(model: IModel, position: Position): LanguageId { // validate the `languageId` to ensure this is a user // facing language with a name and the chance to have // snippets, else fall back to the outer language @@ -88,7 +88,7 @@ class SnippetsService implements ISnippetsService { return languageId; } - private _getSnippetCompletions(model: IModel, position: IPosition): ISuggestion[] { + private _getSnippetCompletions(model: IModel, position: Position): ISuggestion[] { const languageId = this._getLanguageIdAtPosition(model, position); if (!this._snippets.has(languageId)) { return undefined; @@ -159,7 +159,7 @@ export interface ISimpleModel { getLineContent(lineNumber): string; } -export function getNonWhitespacePrefix(model: ISimpleModel, position: IPosition): string { +export function getNonWhitespacePrefix(model: ISimpleModel, position: Position): string { /** * Do not analyze more characters */ diff --git a/src/vs/workbench/parts/snippets/test/electron-browser/snippetsRegistry.test.ts b/src/vs/workbench/parts/snippets/test/electron-browser/snippetsRegistry.test.ts index 6c67fdb6acc..ff5d19ba069 100644 --- a/src/vs/workbench/parts/snippets/test/electron-browser/snippetsRegistry.test.ts +++ b/src/vs/workbench/parts/snippets/test/electron-browser/snippetsRegistry.test.ts @@ -7,7 +7,7 @@ import * as assert from 'assert'; import { getNonWhitespacePrefix } from 'vs/workbench/parts/snippets/electron-browser/snippetsService'; - +import { Position } from 'vs/editor/common/core/position'; suite('getNonWhitespacePrefix', () => { @@ -15,7 +15,7 @@ suite('getNonWhitespacePrefix', () => { let model = { getLineContent: (lineNumber: number) => line }; - let actual = getNonWhitespacePrefix(model, { lineNumber: 1, column: column }); + let actual = getNonWhitespacePrefix(model, new Position(1, column)); assert.equal(actual, expected); } diff --git a/src/vs/workbench/test/electron-browser/api/extHostDocumentData.test.ts b/src/vs/workbench/test/electron-browser/api/extHostDocumentData.test.ts index ed10c28ba9a..12e8380dfc3 100644 --- a/src/vs/workbench/test/electron-browser/api/extHostDocumentData.test.ts +++ b/src/vs/workbench/test/electron-browser/api/extHostDocumentData.test.ts @@ -12,7 +12,7 @@ import { Position } from 'vs/workbench/api/node/extHostTypes'; import { Range } from 'vs/editor/common/core/range'; import { MainThreadDocumentsShape } from 'vs/workbench/api/node/extHost.protocol'; import { TPromise } from 'vs/base/common/winjs.base'; -import { IModelChangedEvent } from 'vs/editor/common/model/mirrorModel2'; +import { IModelChangedEvent } from 'vs/editor/common/model/mirrorModel'; suite('ExtHostDocumentData', () => {