diff --git a/src/vs/editor/common/model.ts b/src/vs/editor/common/model.ts index 03c99eb566aeb54305055268766742179c66f71d..ff909869d8ea61be546ca67c7ad21f40739e8f01 100644 --- a/src/vs/editor/common/model.ts +++ b/src/vs/editor/common/model.ts @@ -1152,6 +1152,5 @@ export class ApplyEditsResult { */ export interface IInternalModelContentChange extends IModelContentChange { range: Range; - rangeOffset: number; forceMoveMarkers: boolean; } diff --git a/src/vs/editor/common/model/textModel.ts b/src/vs/editor/common/model/textModel.ts index 2127ebf1a00aaaa2643069cecf2a27e2fd7ad04e..3975b563698985d56a087f8329b9dc887697495a 100644 --- a/src/vs/editor/common/model/textModel.ts +++ b/src/vs/editor/common/model/textModel.ts @@ -386,10 +386,11 @@ export class TextModel extends Disposable implements model.ITextModel { this.setValueFromTextBuffer(textBuffer); } - private _createContentChanged2(startLineNumber: number, startColumn: number, endLineNumber: number, endColumn: number, rangeLength: number, text: string, isUndoing: boolean, isRedoing: boolean, isFlush: boolean): IModelContentChangedEvent { + private _createContentChanged2(range: Range, rangeOffset: number, rangeLength: number, text: string, isUndoing: boolean, isRedoing: boolean, isFlush: boolean): IModelContentChangedEvent { return { changes: [{ - range: new Range(startLineNumber, startColumn, endLineNumber, endColumn), + range: range, + rangeOffset: rangeOffset, rangeLength: rangeLength, text: text, }], @@ -435,7 +436,7 @@ export class TextModel extends Disposable implements model.ITextModel { false, false ), - this._createContentChanged2(1, 1, endLineNumber, endColumn, oldModelValueLength, this.getValue(), false, false, true) + this._createContentChanged2(new Range(1, 1, endLineNumber, endColumn), 0, oldModelValueLength, this.getValue(), false, false, true) ); } @@ -466,7 +467,7 @@ export class TextModel extends Disposable implements model.ITextModel { false, false ), - this._createContentChanged2(1, 1, endLineNumber, endColumn, oldModelValueLength, this.getValue(), false, false, false) + this._createContentChanged2(new Range(1, 1, endLineNumber, endColumn), 0, oldModelValueLength, this.getValue(), false, false, false) ); } diff --git a/src/vs/editor/common/model/textModelEvents.ts b/src/vs/editor/common/model/textModelEvents.ts index f65fdca1ef2ea03b9090d2be4c301df1254bdf2f..d6593abd1cbeaf7396dff0fa6f1a5f63a3fe2c13 100644 --- a/src/vs/editor/common/model/textModelEvents.ts +++ b/src/vs/editor/common/model/textModelEvents.ts @@ -32,6 +32,10 @@ export interface IModelContentChange { * The range that got replaced. */ readonly range: IRange; + /** + * The offset of the range that got replaced. + */ + readonly rangeOffset: number; /** * The length of the range that got replaced. */ diff --git a/src/vs/monaco.d.ts b/src/vs/monaco.d.ts index 715a3ec520dfd2ebea471b15a73e28664d06c274..6c481514777544822935a140424238bf1d2e7718 100644 --- a/src/vs/monaco.d.ts +++ b/src/vs/monaco.d.ts @@ -2196,6 +2196,10 @@ declare namespace monaco.editor { * The range that got replaced. */ readonly range: IRange; + /** + * The offset of the range that got replaced. + */ + readonly rangeOffset: number; /** * The length of the range that got replaced. */ diff --git a/src/vs/vscode.d.ts b/src/vs/vscode.d.ts index c841a93202a9204f7a19cf908489941bec7bd2d7..8142906c5ec527ec02ea99070176a6db42138b46 100644 --- a/src/vs/vscode.d.ts +++ b/src/vs/vscode.d.ts @@ -5511,6 +5511,10 @@ declare module 'vscode' { * The range that got replaced. */ range: Range; + /** + * The offset of the range that got replaced. + */ + rangeOffset: number; /** * The length of the range that got replaced. */ diff --git a/src/vs/workbench/api/node/extHostDocuments.ts b/src/vs/workbench/api/node/extHostDocuments.ts index 05cae8cfcb6bd04200ae8a820b6832cb01eaf612..54e17e42f71c80d42f906c7c7bc0755b4e64c814 100644 --- a/src/vs/workbench/api/node/extHostDocuments.ts +++ b/src/vs/workbench/api/node/extHostDocuments.ts @@ -137,6 +137,7 @@ export class ExtHostDocuments implements ExtHostDocumentsShape { contentChanges: events.changes.map((change) => { return { range: TypeConverters.toRange(change.range), + rangeOffset: change.rangeOffset, rangeLength: change.rangeLength, text: change.text }; 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 f808f44c17f06c726cf7532003708fded21aaf39..daad9c035e9ef751f593b05f85f0ce81a4f9201a 100644 --- a/src/vs/workbench/test/electron-browser/api/extHostDocumentData.test.ts +++ b/src/vs/workbench/test/electron-browser/api/extHostDocumentData.test.ts @@ -101,6 +101,7 @@ suite('ExtHostDocumentData', () => { data.onEvents({ changes: [{ range: { startLineNumber: 1, startColumn: 1, endLineNumber: 1, endColumn: 1 }, + rangeOffset: undefined, rangeLength: undefined, text: '\t ' }], @@ -157,6 +158,7 @@ suite('ExtHostDocumentData', () => { data.onEvents({ changes: [{ range: { startLineNumber: 1, startColumn: 3, endLineNumber: 1, endColumn: 6 }, + rangeOffset: undefined, rangeLength: undefined, text: '' }], @@ -174,6 +176,7 @@ suite('ExtHostDocumentData', () => { data.onEvents({ changes: [{ range: { startLineNumber: 1, startColumn: 3, endLineNumber: 1, endColumn: 6 }, + rangeOffset: undefined, rangeLength: undefined, text: 'is could be' }], @@ -191,6 +194,7 @@ suite('ExtHostDocumentData', () => { data.onEvents({ changes: [{ range: { startLineNumber: 1, startColumn: 3, endLineNumber: 1, endColumn: 6 }, + rangeOffset: undefined, rangeLength: undefined, text: 'is could be\na line with number' }], @@ -211,6 +215,7 @@ suite('ExtHostDocumentData', () => { data.onEvents({ changes: [{ range: { startLineNumber: 1, startColumn: 3, endLineNumber: 2, endColumn: 6 }, + rangeOffset: undefined, rangeLength: undefined, text: '' }], @@ -344,6 +349,7 @@ suite('ExtHostDocumentData updates line mapping', () => { return { changes: [{ range: range, + rangeOffset: undefined, rangeLength: undefined, text: text }], diff --git a/src/vs/workbench/test/electron-browser/api/extHostDocumentSaveParticipant.test.ts b/src/vs/workbench/test/electron-browser/api/extHostDocumentSaveParticipant.test.ts index b44d25fba635b77a2187142c6edac90982aa53f4..a8c6bfbfcdf7eb090c62cafb96317cb2b9a615d9 100644 --- a/src/vs/workbench/test/electron-browser/api/extHostDocumentSaveParticipant.test.ts +++ b/src/vs/workbench/test/electron-browser/api/extHostDocumentSaveParticipant.test.ts @@ -302,6 +302,7 @@ suite('ExtHostDocumentSaveParticipant', () => { documents.$acceptModelChanged(resource, { changes: [{ range: { startLineNumber: 1, startColumn: 1, endLineNumber: 1, endColumn: 1 }, + rangeOffset: undefined, rangeLength: undefined, text: 'bar' }], @@ -337,6 +338,7 @@ suite('ExtHostDocumentSaveParticipant', () => { changes: [{ range, text, + rangeOffset: undefined, rangeLength: undefined, }], eol: undefined,