Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/microsoft/vscode.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/vs/workbench/contrib/mergeEditor/browser/view/mergeEditor.ts')
-rw-r--r--src/vs/workbench/contrib/mergeEditor/browser/view/mergeEditor.ts69
1 files changed, 67 insertions, 2 deletions
diff --git a/src/vs/workbench/contrib/mergeEditor/browser/view/mergeEditor.ts b/src/vs/workbench/contrib/mergeEditor/browser/view/mergeEditor.ts
index abd5efbe468..d98aa657980 100644
--- a/src/vs/workbench/contrib/mergeEditor/browser/view/mergeEditor.ts
+++ b/src/vs/workbench/contrib/mergeEditor/browser/view/mergeEditor.ts
@@ -36,7 +36,7 @@ import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
import { IThemeService } from 'vs/platform/theme/common/themeService';
import { FloatingClickWidget } from 'vs/workbench/browser/codeeditor';
import { AbstractTextEditor } from 'vs/workbench/browser/parts/editor/textEditor';
-import { IEditorOpenContext } from 'vs/workbench/common/editor';
+import { DEFAULT_EDITOR_ASSOCIATION, EditorInputWithOptions, IEditorOpenContext, IResourceMergeEditorInput } from 'vs/workbench/common/editor';
import { EditorInput } from 'vs/workbench/common/editor/editorInput';
import { applyTextEditorOptions } from 'vs/workbench/common/editor/editorOptions';
import { MergeEditorInput } from 'vs/workbench/contrib/mergeEditor/browser/mergeEditorInput';
@@ -47,6 +47,7 @@ import { MergeEditorViewModel } from 'vs/workbench/contrib/mergeEditor/browser/v
import { ctxBaseResourceScheme, ctxIsMergeEditor, ctxMergeEditorLayout, MergeEditorLayoutTypes } from 'vs/workbench/contrib/mergeEditor/common/mergeEditor';
import { settingsSashBorder } from 'vs/workbench/contrib/preferences/common/settingsEditorColorRegistry';
import { IEditorGroup, IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService';
+import { IEditorResolverService, RegisteredEditorPriority } from 'vs/workbench/services/editor/common/editorResolverService';
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
import './colors';
import { InputCodeEditorView } from './editors/inputCodeEditorView';
@@ -452,7 +453,6 @@ export class MergeEditor extends AbstractTextEditor<IMergeEditorViewState> {
protected computeEditorViewState(resource: URI): IMergeEditorViewState | undefined {
if (!isEqual(this.model?.result.uri, resource)) {
- // TODO@bpasero Why not check `input#resource` and don't ask me for "forgein" resources?
return undefined;
}
const result = this.inputResultView.editor.saveViewState();
@@ -502,6 +502,71 @@ export class MergeEditorOpenHandlerContribution extends Disposable {
}
}
+export class MergeEditorResolverContribution extends Disposable {
+
+ constructor(
+ @IEditorResolverService editorResolverService: IEditorResolverService,
+ @IInstantiationService instantiationService: IInstantiationService,
+ ) {
+ super();
+
+ this._register(editorResolverService.registerEditor(
+ `*`,
+ {
+ id: MergeEditorInput.ID,
+ label: localize('editor.mergeEditor.label', "Merge Editor"),
+ detail: DEFAULT_EDITOR_ASSOCIATION.providerDisplayName,
+ priority: RegisteredEditorPriority.option
+ },
+ {},
+ (editor) => {
+ return {
+ editor: instantiationService.createInstance(
+ MergeEditorInput,
+ editor.resource,
+ {
+ uri: editor.resource,
+ title: '',
+ description: '',
+ detail: ''
+ },
+ {
+ uri: editor.resource,
+ title: '',
+ description: '',
+ detail: ''
+ },
+ editor.resource
+ )
+ };
+ },
+ undefined,
+ undefined,
+ (mergeEditor: IResourceMergeEditorInput): EditorInputWithOptions => {
+ return {
+ editor: instantiationService.createInstance(
+ MergeEditorInput,
+ mergeEditor.base.resource,
+ {
+ uri: mergeEditor.input1.resource,
+ title: localize('input1Title', "First Version"),
+ description: '',
+ detail: ''
+ },
+ {
+ uri: mergeEditor.input2.resource,
+ title: localize('input2Title', "Second Version"),
+ description: '',
+ detail: ''
+ },
+ mergeEditor.result.resource
+ )
+ };
+ }
+ ));
+ }
+}
+
type IMergeEditorViewState = ICodeEditorViewState & {
readonly input1State?: ICodeEditorViewState;
readonly input2State?: ICodeEditorViewState;