mirror of
https://github.com/microsoft/vscode.git
synced 2026-07-12 22:08:04 -05:00
Fixes #2792: Render a line highlight decoration when having a current find match
This commit is contained in:
@@ -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',
|
||||
|
||||
Reference in New Issue
Block a user