提交 45fa807a 编写于 作者: J Jackson Kearl

Add command to open search editor to side

Closes #92025
上级 c9e1f43c
......@@ -7,6 +7,7 @@ import { RawContextKey } from 'vs/platform/contextkey/common/contextkey';
export const OpenInEditorCommandId = 'search.action.openInEditor';
export const OpenNewEditorCommandId = 'search.action.openNewEditor';
export const OpenNewEditorToSideCommandId = 'search.action.openNewEditorToSide';
export const ToggleSearchEditorCaseSensitiveCommandId = 'toggleSearchEditorCaseSensitive';
export const ToggleSearchEditorWholeWordCommandId = 'toggleSearchEditorWholeWord';
......
......@@ -24,7 +24,7 @@ import { Extensions as EditorInputExtensions, IEditorInputFactory, IEditorInputF
import * as SearchConstants from 'vs/workbench/contrib/search/common/constants';
import * as SearchEditorConstants from 'vs/workbench/contrib/searchEditor/browser/constants';
import { SearchEditor } from 'vs/workbench/contrib/searchEditor/browser/searchEditor';
import { OpenResultsInEditorAction, OpenSearchEditorAction, toggleSearchEditorCaseSensitiveCommand, toggleSearchEditorContextLinesCommand, toggleSearchEditorRegexCommand, toggleSearchEditorWholeWordCommand, selectAllSearchEditorMatchesCommand, RerunSearchEditorSearchAction } from 'vs/workbench/contrib/searchEditor/browser/searchEditorActions';
import { OpenResultsInEditorAction, OpenSearchEditorAction, toggleSearchEditorCaseSensitiveCommand, toggleSearchEditorContextLinesCommand, toggleSearchEditorRegexCommand, toggleSearchEditorWholeWordCommand, selectAllSearchEditorMatchesCommand, RerunSearchEditorSearchAction, OpenSearchEditorToSideAction } from 'vs/workbench/contrib/searchEditor/browser/searchEditorActions';
import { getOrMakeSearchEditorInput, SearchEditorInput } from 'vs/workbench/contrib/searchEditor/browser/searchEditorInput';
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
import { CommandsRegistry } from 'vs/platform/commands/common/commands';
......@@ -183,6 +183,10 @@ registry.registerWorkbenchAction(
SyncActionDescriptor.create(OpenSearchEditorAction, OpenSearchEditorAction.ID, OpenSearchEditorAction.LABEL),
'Search Editor: Open New Search Editor', category);
registry.registerWorkbenchAction(
SyncActionDescriptor.create(OpenSearchEditorToSideAction, OpenSearchEditorToSideAction.ID, OpenSearchEditorToSideAction.LABEL),
'Search Editor: Open New Search Editor to Side', category);
registry.registerWorkbenchAction(SyncActionDescriptor.create(RerunSearchEditorSearchAction, RerunSearchEditorSearchAction.ID, RerunSearchEditorSearchAction.LABEL,
{ mac: { primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_R } }, ContextKeyExpr.and(SearchEditorConstants.InSearchEditor)),
'Search Editor: Rerun', category);
......
......@@ -19,7 +19,7 @@ import * as Constants from 'vs/workbench/contrib/searchEditor/browser/constants'
import { SearchEditor } from 'vs/workbench/contrib/searchEditor/browser/searchEditor';
import { getOrMakeSearchEditorInput, SearchEditorInput } from 'vs/workbench/contrib/searchEditor/browser/searchEditorInput';
import { serializeSearchResultForEditor } from 'vs/workbench/contrib/searchEditor/browser/searchEditorSerialization';
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
import { IEditorService, SIDE_GROUP, ACTIVE_GROUP } from 'vs/workbench/services/editor/common/editorService';
import { ISearchConfigurationProperties } from 'vs/workbench/services/search/common/search';
export const toggleSearchEditorCaseSensitiveCommand = (accessor: ServicesAccessor) => {
......@@ -87,6 +87,22 @@ export class OpenSearchEditorAction extends Action {
}
}
export class OpenSearchEditorToSideAction extends Action {
static readonly ID: string = Constants.OpenNewEditorToSideCommandId;
static readonly LABEL = localize('search.openNewEditorToSide', "Open New Search Editor to Side");
constructor(id: string, label: string,
@IInstantiationService private readonly instantiationService: IInstantiationService,
) {
super(id, label, 'codicon-new-file');
}
async run() {
await this.instantiationService.invokeFunction(openNewSearchEditor, true);
}
}
export class OpenResultsInEditorAction extends Action {
static readonly ID: string = Constants.OpenInEditorCommandId;
......@@ -135,7 +151,7 @@ export class RerunSearchEditorSearchAction extends Action {
}
const openNewSearchEditor =
async (accessor: ServicesAccessor) => {
async (accessor: ServicesAccessor, toSide = false) => {
const editorService = accessor.get(IEditorService);
const telemetryService = accessor.get(ITelemetryService);
const instantiationService = accessor.get(IInstantiationService);
......@@ -166,7 +182,7 @@ const openNewSearchEditor =
telemetryService.publicLog2('searchEditor/openNewSearchEditor');
const input = instantiationService.invokeFunction(getOrMakeSearchEditorInput, { config: { query: selected } });
const editor = await editorService.openEditor(input, { pinned: true }) as SearchEditor;
const editor = await editorService.openEditor(input, { pinned: true }, toSide ? SIDE_GROUP : ACTIVE_GROUP) as SearchEditor;
if (selected && configurationService.getValue<ISearchConfigurationProperties>('search').searchOnType) {
editor.triggerSearch();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册