Skip to content

Commit 9c53d0b

Browse files
AaaaashRicbet
authored andcommitted
refactor: merge editor cyrcle deps (#1992)
* refactor: merge editor cyrcle deps * fix: model
1 parent 3130bd5 commit 9c53d0b

File tree

12 files changed

+48
-49
lines changed

12 files changed

+48
-49
lines changed

packages/core-browser/src/monaco/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { IJSONSchema, Event, IDisposable, BasicEvent } from '@opensumi/ide-core-common';
2-
import type { IMergeEditorEditor } from '@opensumi/ide-monaco/lib/browser/contrib/merge-editor/merge-editor-widget';
32
import type { ICodeEditor, IDiffEditor } from '@opensumi/monaco-editor-core/esm/vs/editor/browser/editorBrowser';
43
import type { IDiffEditorConstructionOptions } from '@opensumi/monaco-editor-core/esm/vs/editor/browser/editorBrowser';
54
import type { IEditorContribution } from '@opensumi/monaco-editor-core/esm/vs/editor/common/editorCommon';
@@ -16,6 +15,8 @@ import type {
1615
import type { IStandaloneEditorConstructionOptions } from '@opensumi/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneCodeEditor';
1716
import type { BrandedService } from '@opensumi/monaco-editor-core/esm/vs/platform/instantiation/common/instantiation';
1817

18+
import { IMergeEditorEditor } from './merge-editor-widget';
19+
1920
export enum ServiceNames {
2021
CODE_EDITOR_SERVICE = 'codeEditorService',
2122
TEXT_MODEL_SERVICE = 'textModelService',
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import type { ICodeEditor } from '@opensumi/monaco-editor-core/esm/vs/editor/browser/editorBrowser';
2+
import type { IEditor } from '@opensumi/monaco-editor-core/esm/vs/editor/common/editorCommon';
3+
import type { IEditorModel } from '@opensumi/monaco-editor-core/esm/vs/editor/common/editorCommon';
4+
5+
export interface IMergeEditorEditor extends IEditor {
6+
getOursEditor(): ICodeEditor;
7+
getResultEditor(): ICodeEditor;
8+
getTheirsEditor(): ICodeEditor;
9+
open(oursTextModel: IEditorModel, resultTextModel: IEditorModel, theirsTextModel: IEditorModel): Promise<void>;
10+
compare(): Promise<void>;
11+
}

packages/editor/src/browser/workbench-editor.service.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ import {
4040
Disposable,
4141
makeRandomHexString,
4242
} from '@opensumi/ide-core-common';
43-
import { IMergeEditorEditor } from '@opensumi/ide-monaco/lib/browser/contrib/merge-editor/merge-editor-widget';
4443
import { IDialogService, IMessageService } from '@opensumi/ide-overlay';
4544
import * as monaco from '@opensumi/monaco-editor-core/esm/vs/editor/editor.api';
4645

@@ -91,6 +90,7 @@ import {
9190
RegisterEditorComponentEvent,
9291
AskSaveResult,
9392
IMergeEditorResource,
93+
IMergeEditorEditor,
9494
} from './types';
9595
import { UntitledDocumentIdCounter } from './untitled-resource';
9696

@@ -1644,7 +1644,13 @@ export class EditorGroup extends WithEventBus implements IGridEditorGroup {
16441644
]);
16451645

16461646
await this.mergeEditorReady.onceReady(async () => {
1647-
await this.mergeEditor.open(current, result, incoming);
1647+
// FIXME: 类型不对
1648+
// @ts-ignore
1649+
await this.mergeEditor.open(
1650+
current.instance.getMonacoModel(),
1651+
result.instance.getMonacoModel(),
1652+
incoming.instance.getMonacoModel(),
1653+
);
16481654
});
16491655
} else {
16501656
return; // other type not handled

packages/monaco-enhance/src/browser/peek-view.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { getExternalIcon } from '@opensumi/ide-core-browser';
2-
import { IMenu } from '@opensumi/ide-core-browser/lib/menu/next';
32
import { Emitter, Disposable } from '@opensumi/ide-core-common';
43
import type { ICodeEditor } from '@opensumi/ide-monaco/lib/browser/monaco-api/types';
54

packages/monaco/src/browser/contrib/merge-editor/merge-editor-widget.tsx

Lines changed: 16 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,13 @@ import React from 'react';
22
import ReactDOM from 'react-dom';
33

44
import { Injectable, Autowired, Injector, INJECTOR_TOKEN } from '@opensumi/di';
5-
import { AppConfig, ConfigProvider, MonacoService } from '@opensumi/ide-core-browser';
6-
import { Disposable, Event, IRange, ISelection } from '@opensumi/ide-core-common';
7-
import { EditorType } from '@opensumi/ide-editor';
8-
import { IEditorDocumentModelRef } from '@opensumi/ide-editor/lib/browser';
5+
import { AppConfig, ConfigProvider } from '@opensumi/ide-core-browser';
6+
import { IMergeEditorEditor } from '@opensumi/ide-core-browser/lib/monaco/merge-editor-widget';
7+
import { Disposable, IRange, ISelection } from '@opensumi/ide-core-common';
98
import { Selection } from '@opensumi/monaco-editor-core';
109
import { IDisposable } from '@opensumi/monaco-editor-core/esm/vs/base/common/lifecycle';
1110
import { IDimension } from '@opensumi/monaco-editor-core/esm/vs/editor/common/core/dimension';
1211
import {
13-
IEditor,
1412
IEditorAction,
1513
IEditorDecorationsCollection,
1614
IEditorModel,
@@ -26,26 +24,14 @@ import { MergeEditorService } from './merge-editor.service';
2624
import { Grid } from './view/grid';
2725

2826
export interface IMergeEditorModel {
29-
current: ITextModel;
27+
ours: ITextModel;
3028
result: ITextModel;
31-
incoming: ITextModel;
29+
theirs: ITextModel;
3230
}
3331

3432
// eslint-disable-next-line @typescript-eslint/no-empty-interface
3533
export interface IMergeEditorEditorConstructionOptions {}
3634

37-
export interface IMergeEditorEditor extends IEditor {
38-
getCurrentEditor(): ICodeEditor;
39-
getResultEditor(): ICodeEditor;
40-
getIncomingEditor(): ICodeEditor;
41-
open(
42-
currentModelRef: IEditorDocumentModelRef,
43-
resultModelRef: IEditorDocumentModelRef,
44-
incomingModelRef: IEditorDocumentModelRef,
45-
): Promise<void>;
46-
compare(): Promise<void>;
47-
}
48-
4935
let MERGE_EDITOR_ID = 0;
5036

5137
@Injectable({ multiple: true })
@@ -73,15 +59,11 @@ export class MergeEditorWidget extends Disposable implements IMergeEditorEditor
7359
this.layout();
7460
}
7561

76-
open(
77-
currentModelRef: IEditorDocumentModelRef,
78-
resultModelRef: IEditorDocumentModelRef,
79-
incomingModelRef: IEditorDocumentModelRef,
80-
): Promise<void> {
62+
open(oursTextModel: ITextModel, resultTextModel: ITextModel, theirsTextModel: ITextModel): Promise<void> {
8163
this.setModel({
82-
current: currentModelRef.instance.getMonacoModel(),
83-
result: resultModelRef.instance.getMonacoModel(),
84-
incoming: incomingModelRef.instance.getMonacoModel(),
64+
ours: oursTextModel,
65+
result: resultTextModel,
66+
theirs: theirsTextModel,
8567
});
8668

8769
this.compare();
@@ -93,15 +75,15 @@ export class MergeEditorWidget extends Disposable implements IMergeEditorEditor
9375
return this.mergeEditorService.compare();
9476
}
9577

96-
getCurrentEditor(): ICodeEditor {
78+
getOursEditor(): ICodeEditor {
9779
return this.mergeEditorService.getCurrentEditor()!;
9880
}
9981

10082
getResultEditor(): ICodeEditor {
10183
return this.mergeEditorService.getResultEditor()!;
10284
}
10385

104-
getIncomingEditor(): ICodeEditor {
86+
getTheirsEditor(): ICodeEditor {
10587
return this.mergeEditorService.getIncomingEditor()!;
10688
}
10789

@@ -118,7 +100,7 @@ export class MergeEditorWidget extends Disposable implements IMergeEditorEditor
118100
}
119101

120102
getEditorType(): string {
121-
return EditorType.MERGE_EDITOR_DIFF;
103+
return 'MERGE_EDITOR_DIFF';
122104
}
123105

124106
updateOptions(newOptions: IEditorOptions): void {}
@@ -222,10 +204,10 @@ export class MergeEditorWidget extends Disposable implements IMergeEditorEditor
222204
}
223205

224206
setModel(model: IEditorModel | IMergeEditorModel | null): void {
225-
const _model = model as IMergeEditorModel;
226-
this.getCurrentEditor().setModel(_model.current);
227-
this.getResultEditor().setModel(_model.result);
228-
this.getIncomingEditor().setModel(_model.incoming);
207+
const mergeModel = model as IMergeEditorModel;
208+
this.getOursEditor().setModel(mergeModel.ours);
209+
this.getResultEditor().setModel(mergeModel.result);
210+
this.getTheirsEditor().setModel(mergeModel.theirs);
229211
}
230212

231213
createDecorationsCollection(decorations?: IModelDeltaDecoration[]): IEditorDecorationsCollection {

packages/monaco/src/browser/contrib/merge-editor/model/decorations.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import { IModelDecorationsChangedEvent } from '@opensumi/monaco-editor-core/esm/
66

77
import { ICodeEditor, IModelDeltaDecoration } from '../../../monaco-api/editor';
88
import { LineRangeType } from '../types';
9+
import { GuidelineWidget } from '../view/guideline-widget';
910

10-
import { GuidelineWidget } from './line';
1111
import { LineRange } from './line-range';
1212

1313
export interface IRenderChangesInput {
@@ -92,7 +92,7 @@ export class MergeEditorDecorations extends Disposable {
9292
this.editor.changeDecorations((accessor) => {
9393
const newDecorations: IDiffDecoration[] = this.retainDecoration;
9494
this.retainLineWidgetSet.forEach((widget) => {
95-
widget.showByLine(widget.currentRange.startLineNumber);
95+
widget.showByLine(widget.position?.lineNumber!);
9696
this.lineWidgetSet.add(widget);
9797
});
9898

packages/monaco/src/browser/contrib/merge-editor/view/editors/baseCodeEditor.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ import {
1414
IRenderInnerChangesInput,
1515
MergeEditorDecorations,
1616
} from '../../model/decorations';
17-
import { GuidelineWidget } from '../../model/line';
1817
import { LineRange } from '../../model/line-range';
1918
import { flatModified, flatOriginal } from '../../utils';
19+
import { GuidelineWidget } from '../guideline-widget';
2020

2121
export abstract class BaseCodeEditor extends Disposable {
2222
protected decorations: MergeEditorDecorations;

packages/monaco/src/browser/contrib/merge-editor/view/editors/currentCodeEditor.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ import { LineRangeMapping } from '@opensumi/monaco-editor-core/esm/vs/editor/com
44
import { IStandaloneEditorConstructionOptions } from '@opensumi/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneCodeEditor';
55

66
import { IDiffDecoration, IRenderChangesInput, IRenderInnerChangesInput } from '../../model/decorations';
7-
import { GuidelineWidget } from '../../model/line';
87
import { LineRange } from '../../model/line-range';
98
import { flatInnerOriginal, flatModified, flatOriginal } from '../../utils';
9+
import { GuidelineWidget } from '../guideline-widget';
1010

1111
import { BaseCodeEditor } from './baseCodeEditor';
1212

packages/monaco/src/browser/contrib/merge-editor/view/editors/incomingCodeEditor.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ import {
99
IRenderInnerChangesInput,
1010
MergeEditorDecorations,
1111
} from '../../model/decorations';
12-
import { GuidelineWidget } from '../../model/line';
1312
import { LineRange } from '../../model/line-range';
1413
import { flatInnerModified, flatModified, flatOriginal, flatInnerOriginal } from '../../utils';
14+
import { GuidelineWidget } from '../guideline-widget';
1515

1616
import { BaseCodeEditor } from './baseCodeEditor';
1717

packages/monaco/src/browser/contrib/merge-editor/view/editors/resultCodeEditor.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ import {
99
IRenderInnerChangesInput,
1010
MergeEditorDecorations,
1111
} from '../../model/decorations';
12-
import { GuidelineWidget } from '../../model/line';
1312
import { LineRange } from '../../model/line-range';
1413
import { flatInnerModified, flatModified, flatOriginal, flatInnerOriginal } from '../../utils';
14+
import { GuidelineWidget } from '../guideline-widget';
1515

1616
import { BaseCodeEditor } from './baseCodeEditor';
1717

0 commit comments

Comments
 (0)