未验证 提交 67bc3d78 编写于 作者: I Isidor Nikolic 提交者: GitHub

Merge pull request #96890 from phuein/master

Dont scroll to revealed files option.
......@@ -369,9 +369,15 @@ configurationRegistry.registerConfiguration({
'default': 9
},
'explorer.autoReveal': {
'type': 'boolean',
'description': nls.localize('autoReveal', "Controls whether the explorer should automatically reveal and select files when opening them."),
'default': true
'type': ['boolean', 'string'],
'enum': [true, false, 'highlightNoScroll'],
'default': true,
'enumDescriptions': [
nls.localize('autoReveal.on', 'Files will be revealed and selected.'),
nls.localize('autoReveal.off', 'Files will not be revealed and selected.'),
nls.localize('autoReveal.highlightNoScroll', 'Files will not be scrolled into view, but will still be selected.'),
],
'description': nls.localize('autoReveal', "Controls whether the explorer should automatically reveal and select files when opening them.")
},
'explorer.enableDragAndDrop': {
'type': 'boolean',
......
......@@ -146,7 +146,7 @@ export class ExplorerView extends ViewPane {
// Refresh is needed on the initial explorer open
private shouldRefresh = true;
private dragHandler!: DelayedDragHandler;
private autoReveal = false;
private autoReveal: boolean | string = false;
private actions: IAction[] | undefined;
private decorationsProvider: ExplorerDecorationsProvider | undefined;
......@@ -675,8 +675,9 @@ export class ExplorerView extends ViewPane {
try {
if (reveal) {
// Don't scroll to the item if it's already visible
if (this.tree.getRelativeTop(item) === null) {
// Don't scroll to the item if it's already visible,
// or if set not to.
if (reveal !== 'highlightNoScroll' && this.tree.getRelativeTop(item) === null) {
this.tree.reveal(item, 0.5);
}
}
......
......@@ -150,10 +150,11 @@ export class ExplorerService implements IExplorerService {
return !!this.editable && (this.editable.stat === stat || !stat);
}
async select(resource: URI, reveal?: boolean): Promise<void> {
async select(resource: URI, reveal?: boolean | string): Promise<void> {
if (!this.view) {
return;
}
const fileStat = this.findClosest(resource);
if (fileStat) {
await this.view.selectResource(fileStat.resource, reveal);
......@@ -197,7 +198,7 @@ export class ExplorerService implements IExplorerService {
if (reveal && resource && autoReveal) {
// We did a top level refresh, reveal the active file #67118
this.select(resource, true);
this.select(resource, autoReveal);
}
}
}
......
......@@ -58,7 +58,7 @@ export interface IExplorerService {
* Selects and reveal the file element provided by the given resource if its found in the explorer.
* Will try to resolve the path in case the explorer is not yet expanded to the file yet.
*/
select(resource: URI, reveal?: boolean): Promise<void>;
select(resource: URI, reveal?: boolean | string): Promise<void>;
registerView(contextAndRefreshProvider: IExplorerView): void;
}
......@@ -66,7 +66,7 @@ export interface IExplorerService {
export interface IExplorerView {
getContext(respectMultiSelection: boolean): ExplorerItem[];
refresh(recursive: boolean, item?: ExplorerItem): Promise<void>;
selectResource(resource: URI | undefined, reveal?: boolean): Promise<void>;
selectResource(resource: URI | undefined, reveal?: boolean | string): Promise<void>;
setTreeInput(): Promise<void>;
itemsCopied(tats: ExplorerItem[], cut: boolean, previousCut: ExplorerItem[] | undefined): void;
setEditable(stat: ExplorerItem, isEditing: boolean): Promise<void>;
......@@ -121,7 +121,7 @@ export interface IFilesConfiguration extends PlatformIFilesConfiguration, IWorkb
openEditors: {
visible: number;
};
autoReveal: boolean;
autoReveal: boolean | string;
enableDragAndDrop: boolean;
confirmDelete: boolean;
sortOrder: SortOrder;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册