diff --git a/src/vs/editor/common/model/textModel.ts b/src/vs/editor/common/model/textModel.ts index 0c3367ea4bd763543e19ce32ef5b207677b8bb18..3f426ab1881e0ec3f8d66bf1d94b351b65462685 100644 --- a/src/vs/editor/common/model/textModel.ts +++ b/src/vs/editor/common/model/textModel.ts @@ -3267,13 +3267,13 @@ class DecorationsTrees { public getInjectedTextInInterval(host: IDecorationsTreesHost, start: number, end: number, filterOwnerId: number): model.IModelDecoration[] { const versionId = host.getVersionId(); const result = this._injectedTextDecorationsTree.intervalSearch(start, end, filterOwnerId, false, versionId); - return this._ensureNodesHaveRanges(host, result); + return this._ensureNodesHaveRanges(host, result).filter((i) => i.options.showIfCollapsed || !i.range.isEmpty()); } public getAllInjectedText(host: IDecorationsTreesHost, filterOwnerId: number): model.IModelDecoration[] { const versionId = host.getVersionId(); const result = this._injectedTextDecorationsTree.search(filterOwnerId, false, versionId); - return this._ensureNodesHaveRanges(host, result); + return this._ensureNodesHaveRanges(host, result).filter((i) => i.options.showIfCollapsed || !i.range.isEmpty()); } public getAll(host: IDecorationsTreesHost, filterOwnerId: number, filterOutValidation: boolean, overviewRulerOnly: boolean): model.IModelDecoration[] { diff --git a/src/vs/editor/contrib/inlineCompletions/ghostTextWidget.ts b/src/vs/editor/contrib/inlineCompletions/ghostTextWidget.ts index 7c2785e536b5999b88a3b9a6c31ebbc0f83964b9..d58cf6a3650e42cda825dd5ceffa948cd6203570 100644 --- a/src/vs/editor/contrib/inlineCompletions/ghostTextWidget.ts +++ b/src/vs/editor/contrib/inlineCompletions/ghostTextWidget.ts @@ -283,7 +283,8 @@ class DecorationsWidget implements IDisposable { range: Range.fromPositions(new Position(lineNumber, p.column)), options: shouldUseInjectedText ? { description: 'ghost-text', - after: { content: contentText, inlineClassName: p.preview ? 'ghost-text-decoration-preview' : 'ghost-text-decoration' } + after: { content: contentText, inlineClassName: p.preview ? 'ghost-text-decoration-preview' : 'ghost-text-decoration' }, + showIfCollapsed: true, } : { ...decorationType.resolve() } diff --git a/src/vs/editor/test/common/model/modelInjectedText.test.ts b/src/vs/editor/test/common/model/modelInjectedText.test.ts index 9badd3c7e5f8b3a77167326a9e50b20040389fdb..b2c4b915537810602c262e56c0524ccf6cf74c42 100644 --- a/src/vs/editor/test/common/model/modelInjectedText.test.ts +++ b/src/vs/editor/test/common/model/modelInjectedText.test.ts @@ -35,6 +35,7 @@ suite('Editor Model - Injected Text Events', () => { options: { after: { content: 'injected1' }, description: 'test1', + showIfCollapsed: true }, range: new Range(1, 1, 1, 1), }]); @@ -51,12 +52,14 @@ suite('Editor Model - Injected Text Events', () => { options: { after: { content: 'injected1' }, description: 'test1', + showIfCollapsed: true }, range: new Range(2, 1, 2, 1), }, { options: { after: { content: 'injected2' }, description: 'test2', + showIfCollapsed: true }, range: new Range(2, 2, 2, 2), }]); diff --git a/src/vs/editor/test/common/viewModel/splitLinesCollection.test.ts b/src/vs/editor/test/common/viewModel/splitLinesCollection.test.ts index cf2c618c49519cc468982a05a717a65bc3da4ee7..ccf38ad0235fe6ea4da44034312833c73009b8a0 100644 --- a/src/vs/editor/test/common/viewModel/splitLinesCollection.test.ts +++ b/src/vs/editor/test/common/viewModel/splitLinesCollection.test.ts @@ -746,7 +746,8 @@ suite('SplitLinesCollection', () => { description: 'example', after: { content: 'very very long injected text that causes a line break' - } + }, + showIfCollapsed: true, } }]); diff --git a/src/vs/editor/test/common/viewModel/viewModelImpl.test.ts b/src/vs/editor/test/common/viewModel/viewModelImpl.test.ts index ef9866ae107fb3d59cb2419c845206a72026caee..f52485508fd3c47ab17a3493a71fdf1bb4f44fa7 100644 --- a/src/vs/editor/test/common/viewModel/viewModelImpl.test.ts +++ b/src/vs/editor/test/common/viewModel/viewModelImpl.test.ts @@ -310,7 +310,8 @@ suite('ViewModel', () => { description: 'test', before: { content: 'bar' - } + }, + showIfCollapsed: true } }, { @@ -319,7 +320,8 @@ suite('ViewModel', () => { description: 'test', before: { content: 'bz' - } + }, + showIfCollapsed: true } }, ]); diff --git a/src/vs/workbench/contrib/testing/browser/testingDecorations.ts b/src/vs/workbench/contrib/testing/browser/testingDecorations.ts index 8f4b493f939044f01db64db48a74237a244b3e9e..00b1917bc4f09cb216a123ccbfc1ffee32d9741f 100644 --- a/src/vs/workbench/contrib/testing/browser/testingDecorations.ts +++ b/src/vs/workbench/contrib/testing/browser/testingDecorations.ts @@ -754,6 +754,7 @@ class TestMessageDecoration implements ITestDecoration { content: renderStringAsPlaintext(message), inlineClassName: `test-message-inline-content test-message-inline-content-s${severity} ${this.contentIdClass}` }; + options.showIfCollapsed = true; const rulerColor = severity === TestMessageType.Error ? overviewRulerError