提交 ca6ad015 编写于 作者: A Alex Dima

Fixes #2792: Render a line highlight decoration when having a current find match

上级 9f5a8182
......@@ -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',
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册