Merge pull request #60153 from ToothlessGear/feature_allow_disabling_replace_preview_setting

Add setting to allow to disable Replace Preview
This commit is contained in:
Rob Lourens 2018-10-09 08:50:45 -07:00 committed by GitHub
commit def5463cc1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 15 additions and 4 deletions

View file

@ -295,6 +295,7 @@ export interface ISearchConfigurationProperties {
smartCase: boolean;
globalFindClipboard: boolean;
location: 'sidebar' | 'panel';
useReplacePreview: boolean;
}
export interface ISearchConfiguration extends IFilesConfiguration {

View file

@ -18,7 +18,7 @@ import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService
import { ICommandHandler } from 'vs/platform/commands/common/commands';
import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation';
import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding';
import { ISearchHistoryService, VIEW_ID } from 'vs/platform/search/common/search';
import { ISearchHistoryService, VIEW_ID, ISearchConfiguration } from 'vs/platform/search/common/search';
import { SearchView } from 'vs/workbench/parts/search/browser/searchView';
import * as Constants from 'vs/workbench/parts/search/common/constants';
import { IReplaceService } from 'vs/workbench/parts/search/common/replace';
@ -28,6 +28,7 @@ import { IPanelService } from 'vs/workbench/services/panel/common/panelService';
import { IViewletService } from 'vs/workbench/services/viewlet/browser/viewlet';
import { normalize } from 'vs/base/common/paths';
import { IEditorGroupsService } from 'vs/workbench/services/group/common/editorGroupsService';
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
export function isSearchViewFocused(viewletService: IViewletService, panelService: IPanelService): boolean {
let searchView = getSearchView(viewletService, panelService);
@ -561,7 +562,8 @@ export class ReplaceAction extends AbstractSearchAndReplaceAction {
constructor(private viewer: ITree, private element: Match, private viewlet: SearchView,
@IReplaceService private replaceService: IReplaceService,
@IKeybindingService keyBindingService: IKeybindingService,
@IEditorService private editorService: IEditorService) {
@IEditorService private editorService: IEditorService,
@IConfigurationService private configurationService: IConfigurationService) {
super(Constants.ReplaceActionId, appendKeyBindingLabel(ReplaceAction.LABEL, keyBindingService.lookupKeybinding(Constants.ReplaceActionId), keyBindingService), 'action-replace');
}
@ -575,7 +577,9 @@ export class ReplaceAction extends AbstractSearchAndReplaceAction {
}
let elementToShowReplacePreview = this.getElementToShowReplacePreview(elementToFocus);
this.viewer.domFocus();
if (!elementToShowReplacePreview || this.hasToOpenFile()) {
const useReplacePreview = this.configurationService.getValue<ISearchConfiguration>().search.useReplacePreview;
if (!useReplacePreview || !elementToShowReplacePreview || this.hasToOpenFile()) {
this.viewlet.open(this.element, true);
} else {
this.replaceService.openReplacePreview(elementToShowReplacePreview, true);

View file

@ -1402,7 +1402,8 @@ export class SearchView extends Viewlet implements IViewlet, IPanel {
return TPromise.as(true);
}
return (this.viewModel.isReplaceActive() && !!this.viewModel.replaceString) ?
const useReplacePreview = this.configurationService.getValue<ISearchConfiguration>().search.useReplacePreview;
return (useReplacePreview && this.viewModel.isReplaceActive() && !!this.viewModel.replaceString) ?
this.replaceService.openReplacePreview(lineMatch, preserveFocus, sideBySide, pinned) :
this.open(lineMatch, preserveFocus, sideBySide, pinned);
}

View file

@ -643,6 +643,11 @@ configurationRegistry.registerConfiguration({
],
default: 'auto',
description: nls.localize('search.collapseAllResults', "Controls whether the search results will be collapsed or expanded."),
},
'search.useReplacePreview': {
type: 'boolean',
default: true,
description: nls.localize('search.useReplacePreview', "Controls whether to open Replace Preview when selecting or replacing a match."),
}
}
});