提交 44ab7993 编写于 作者: J Johannes Rieken

outline - prefer active group when revealing outline element

上级 3ff43d06
......@@ -342,14 +342,28 @@ export class OutlineModel extends TreeElement {
return topMatch;
}
getItemEnclosingPosition(position: IPosition): OutlineElement {
getItemEnclosingPosition(position: IPosition, context?: OutlineElement): OutlineElement {
let preferredGroup: OutlineGroup;
if (context) {
let candidate = context.parent;
while (candidate && !preferredGroup) {
if (candidate instanceof OutlineGroup) {
preferredGroup = candidate;
}
candidate = candidate.parent;
}
}
let result: OutlineElement = undefined;
for (const key in this._groups) {
let result = this._groups[key].getItemEnclosingPosition(position);
if (result) {
return result;
const group = this._groups[key];
result = group.getItemEnclosingPosition(position);
if (result && (!preferredGroup || preferredGroup === group)) {
break;
}
}
return undefined;
return result;
}
getItemById(id: string): TreeElement {
......
......@@ -638,10 +638,11 @@ export class OutlinePanel extends ViewletPanel {
if (!this._outlineViewState.followCursor || !this._tree.getInput()) {
return;
}
let [first] = this._tree.getSelection();
let item = model.getItemEnclosingPosition({
lineNumber: selection.selectionStartLineNumber,
column: selection.selectionStartColumn
});
}, first instanceof OutlineElement ? first : undefined);
if (item) {
await this._tree.reveal(item, .5);
this._tree.setFocus(item, this);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册