提交 556eb1ee 编写于 作者: R Rob Lourens

Fix "replace all" breaking after opening search editor

Fix #92443
上级 57436a5e
......@@ -27,7 +27,7 @@ import { ISearchConfigurationProperties } from 'vs/workbench/services/search/com
import { attachFindReplaceInputBoxStyler, attachInputBoxStyler } from 'vs/platform/theme/common/styler';
import { IThemeService } from 'vs/platform/theme/common/themeService';
import { ContextScopedFindInput, ContextScopedReplaceInput } from 'vs/platform/browser/contextScopedHistoryWidget';
import { appendKeyBindingLabel, isSearchViewFocused } from 'vs/workbench/contrib/search/browser/searchActions';
import { appendKeyBindingLabel, isSearchViewFocused, getSearchView } from 'vs/workbench/contrib/search/browser/searchActions';
import * as Constants from 'vs/workbench/contrib/search/common/constants';
import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility';
import { isMacintosh } from 'vs/base/common/platform';
......@@ -52,19 +52,9 @@ export interface ISearchWidgetOptions {
class ReplaceAllAction extends Action {
private static fgInstance: ReplaceAllAction | null = null;
static readonly ID: string = 'search.action.replaceAll';
static get INSTANCE(): ReplaceAllAction {
if (ReplaceAllAction.fgInstance === null) {
ReplaceAllAction.fgInstance = new ReplaceAllAction();
}
return ReplaceAllAction.fgInstance;
}
private _searchWidget: SearchWidget | null = null;
constructor() {
constructor(private _searchWidget: SearchWidget) {
super(ReplaceAllAction.ID, '', 'codicon-replace-all', false);
}
......@@ -417,8 +407,7 @@ export class SearchWidget extends Widget {
this._register(this.replaceInput.inputBox.onDidChange(() => this._onReplaceValueChanged.fire()));
this._register(this.replaceInput.inputBox.onDidHeightChange(() => this._onDidHeightChange.fire()));
this.replaceAllAction = ReplaceAllAction.INSTANCE;
this.replaceAllAction.searchWidget = this;
this.replaceAllAction = new ReplaceAllAction(this);
this.replaceAllAction.label = SearchWidget.REPLACE_ALL_DISABLED_LABEL;
this.replaceActionBar = this._register(new ActionBar(this.replaceContainer));
this.replaceActionBar.push([this.replaceAllAction], { icon: true, label: false });
......@@ -667,8 +656,12 @@ export function registerContributions() {
when: ContextKeyExpr.and(Constants.SearchViewVisibleKey, Constants.ReplaceActiveKey, CONTEXT_FIND_WIDGET_NOT_VISIBLE),
primary: KeyMod.Alt | KeyMod.CtrlCmd | KeyCode.Enter,
handler: accessor => {
if (isSearchViewFocused(accessor.get(IViewsService))) {
ReplaceAllAction.INSTANCE.run();
const viewsService = accessor.get(IViewsService);
if (isSearchViewFocused(viewsService)) {
const searchView = getSearchView(viewsService);
if (searchView) {
new ReplaceAllAction(searchView.searchAndReplaceWidget).run();
}
}
}
});
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册