提交 b9ad9c96 编写于 作者: J Jackson Kearl

Restore search editor configurations on reload

上级 59213a4c
......@@ -57,9 +57,10 @@ import { EditorContextKeys } from 'vs/editor/common/editorContextKeys';
import { assertType } from 'vs/base/common/types';
import { SearchViewPaneContainer } from 'vs/workbench/contrib/search/browser/searchViewlet';
import { EditorDescriptor, Extensions as EditorExtensions, IEditorRegistry } from 'vs/workbench/browser/editor';
import { SearchEditorInput } from 'vs/workbench/contrib/search/browser/searchEditorCommands';
import { SearchEditorInput, SearchEditorInputFactory } from 'vs/workbench/contrib/search/browser/searchEditorCommands';
import { SearchEditor } from 'vs/workbench/contrib/search/browser/searchEditor';
import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors';
import { Extensions as EditorInputExtensions, IEditorInputFactoryRegistry } from 'vs/workbench/common/editor';
registerSingleton(ISearchWorkbenchService, SearchWorkbenchService, true);
registerSingleton(ISearchHistoryService, SearchHistoryService, true);
......@@ -904,3 +905,7 @@ Registry.as<IEditorRegistry>(EditorExtensions.Editors).registerEditor(
new SyncDescriptor(SearchEditorInput)
]
);
Registry.as<IEditorInputFactoryRegistry>(EditorInputExtensions.EditorInputFactories).registerEditorInputFactory(
SearchEditorInput.ID,
SearchEditorInputFactory);
......@@ -25,7 +25,7 @@ import { getOutOfWorkspaceEditorResources } from 'vs/workbench/contrib/search/co
import { FileMatch, Match, searchMatchComparer, SearchModel, SearchResult } from 'vs/workbench/contrib/search/common/searchModel';
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
import { IPatternInfo, ISearchConfigurationProperties, ITextQuery } from 'vs/workbench/services/search/common/search';
import { EditorInput } from 'vs/workbench/common/editor';
import { EditorInput, IEditorInputFactory } from 'vs/workbench/common/editor';
import { IModelService } from 'vs/editor/common/services/modelService';
import { IModeService } from 'vs/editor/common/services/modeService';
import { SearchEditor } from 'vs/workbench/contrib/search/browser/searchEditor';
......@@ -43,6 +43,19 @@ export type SearchConfiguration = {
showIncludesExcludes: boolean,
};
export class SearchEditorInputFactory implements IEditorInputFactory {
canSerialize() { return true; }
serialize(input: SearchEditorInput) {
return JSON.stringify(input.config);
}
deserialize(instantiationService: IInstantiationService, serializedEditorInput: string): SearchEditorInput | undefined {
return instantiationService.createInstance(SearchEditorInput, JSON.parse(serializedEditorInput));
}
}
let searchEditorInputInstances = 0;
export class SearchEditorInput extends EditorInput {
static readonly ID: string = 'workbench.editorinputs.searchEditorInput';
......@@ -72,7 +85,7 @@ export class SearchEditorInput extends EditorInput {
}
getResource(): URI {
return URI.from({ scheme: 'code-search', fragment: `${this.instanceNumber}` });
return URI.from({ scheme: 'untitled', authority: 'search-editor', path: this.config.query, fragment: `${this.instanceNumber}` });
}
getName(): string {
......
......@@ -452,8 +452,8 @@ export class SearchWidget extends Widget {
}
setValue(value: string, skipSearchOnChange: boolean) {
this.searchInput.setValue(value);
this.temporarilySkipSearchOnChange = skipSearchOnChange || this.temporarilySkipSearchOnChange;
this.searchInput.setValue(value);
}
setReplaceAllActionState(enabled: boolean): void {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册