diff --git a/src/vs/editor/contrib/find/common/findDecorations.ts b/src/vs/editor/contrib/find/common/findDecorations.ts index 1648cb53643..364ea1f3c56 100644 --- a/src/vs/editor/contrib/find/common/findDecorations.ts +++ b/src/vs/editor/contrib/find/common/findDecorations.ts @@ -14,6 +14,7 @@ export class FindDecorations implements IDisposable { private _editor:editorCommon.ICommonCodeEditor; private _decorations:string[]; private _findScopeDecorationId:string; + private _lineHighlightDecorationId:string; private _highlightedDecorationId:string; private _startPosition:Position; @@ -21,6 +22,7 @@ export class FindDecorations implements IDisposable { this._editor = editor; this._decorations = []; this._findScopeDecorationId = null; + this._lineHighlightDecorationId = null; this._highlightedDecorationId = null; this._startPosition = this._editor.getPosition(); } @@ -31,6 +33,7 @@ export class FindDecorations implements IDisposable { this._editor = null; this._decorations = []; this._findScopeDecorationId = null; + this._lineHighlightDecorationId = null; this._highlightedDecorationId = null; this._startPosition = null; } @@ -38,6 +41,7 @@ export class FindDecorations implements IDisposable { public reset(): void { this._decorations = []; this._findScopeDecorationId = null; + this._lineHighlightDecorationId = null; this._highlightedDecorationId = null; } @@ -95,6 +99,14 @@ export class FindDecorations implements IDisposable { this._highlightedDecorationId = newCurrentDecorationId; changeAccessor.changeDecorationOptions(this._highlightedDecorationId, FindDecorations.createFindMatchDecorationOptions(true)); } + if (this._lineHighlightDecorationId !== null) { + changeAccessor.removeDecoration(this._lineHighlightDecorationId); + this._lineHighlightDecorationId = null; + } + if (newCurrentDecorationId !== null) { + let rng = this._editor.getModel().getDecorationRange(newCurrentDecorationId); + this._lineHighlightDecorationId = changeAccessor.addDecoration(rng, FindDecorations.createLineHighlightDecoration()); + } }); } @@ -122,6 +134,7 @@ export class FindDecorations implements IDisposable { this._findScopeDecorationId = null; } this._decorations = tmpDecorations; + this._lineHighlightDecorationId = null; this._highlightedDecorationId = null; } @@ -131,6 +144,9 @@ export class FindDecorations implements IDisposable { if (this._findScopeDecorationId) { result.push(this._findScopeDecorationId); } + if (this._lineHighlightDecorationId) { + result.push(this._lineHighlightDecorationId); + } return result; } @@ -146,6 +162,14 @@ export class FindDecorations implements IDisposable { }; } + private static createLineHighlightDecoration(): editorCommon.IModelDecorationOptions { + return { + stickiness: editorCommon.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges, + className: 'lineHighlight', + isWholeLine: true + }; + } + private static createFindScopeDecorationOptions(): editorCommon.IModelDecorationOptions { return { className: 'findScope',