Skip to content

Commit 0c98b26

Browse files
authored
feat: upgrade to opensumi v3 (#79)
1 parent ac05d9b commit 0c98b26

43 files changed

Lines changed: 1034 additions & 914 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,4 +113,6 @@ generated-parser
113113
.devcontainer.*
114114

115115
#husky
116-
.husky
116+
.husky
117+
118+
scripts/utils/_upload.js

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"description": "codeblitzjs",
99
"main": "index.js",
1010
"engines": {
11-
"opensumi": "2.27.1"
11+
"opensumi": "3.0.4-next-1716974737.0"
1212
},
1313
"scripts": {
1414
"prepare": "husky install",

packages/cli/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@
1010
"opensumi codeblitzjs"
1111
],
1212
"engines": {
13-
"opensumi": "2.16.1",
13+
"opensumi": "3.0.4-next-1716974737.0",
1414
"node": ">=10.0.0"
1515
},
1616
"dependencies": {
1717
"@codeblitzjs/ide-common": "1.0.4",
18-
"@opensumi/ide-extension": "2.27.1",
18+
"@opensumi/ide-extension": "3.0.4-next-1716974737.0",
1919
"async-retry": "^1.3.1",
2020
"await-event": "^2.1.0",
2121
"commander": "^7.2.0",

packages/code-service/src/line-decoration.contribution.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import * as monaco from '@opensumi/monaco-editor-core/esm/vs/editor/editor.api';
1+
import * as monaco from '@opensumi/ide-monaco';
2+
23
import { Autowired } from '@opensumi/di';
34
import {
45
Domain,
@@ -17,6 +18,7 @@ import debounce from 'lodash.debounce';
1718
import { CodeModelService } from './code-model.service';
1819
import styles from './style.module.less';
1920
import { RuntimeConfig } from '@codeblitzjs/ide-sumi-core';
21+
import { monacoBrowser } from '@opensumi/ide-monaco/lib/browser';
2022

2123
@Domain(BrowserEditorContribution, CommandContribution)
2224
export class LineDecorationContribution implements BrowserEditorContribution, CommandContribution {
@@ -54,8 +56,8 @@ export class LineDecorationContribution implements BrowserEditorContribution, Co
5456

5557
const type = event?.target?.type;
5658
if (
57-
type === monaco.editor.MouseTargetType.GUTTER_LINE_NUMBERS ||
58-
type === monaco.editor.MouseTargetType.GUTTER_GLYPH_MARGIN
59+
type === monacoBrowser.editor.MouseTargetType.GUTTER_LINE_NUMBERS ||
60+
type === monacoBrowser.editor.MouseTargetType.GUTTER_GLYPH_MARGIN
5961
) {
6062
const lineNumber = event.target.position!.lineNumber;
6163
oldHoverDecorations = editor.monacoEditor.deltaDecorations(oldHoverDecorations, [
@@ -85,8 +87,8 @@ export class LineDecorationContribution implements BrowserEditorContribution, Co
8587

8688
const type = event?.target?.type;
8789
if (
88-
type === monaco.editor.MouseTargetType.GUTTER_LINE_NUMBERS ||
89-
type === monaco.editor.MouseTargetType.GUTTER_GLYPH_MARGIN
90+
type === monacoBrowser.editor.MouseTargetType.GUTTER_LINE_NUMBERS ||
91+
type === monacoBrowser.editor.MouseTargetType.GUTTER_GLYPH_MARGIN
9092
) {
9193
const clickedLineNumber = event.target.position!.lineNumber;
9294
const lastLineNumber = this.lineNumbers;

packages/code-service/src/static-resource.contribution.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { Domain, URI } from '@opensumi/ide-core-browser';
33
import {
44
StaticResourceContribution,
55
StaticResourceService,
6-
} from '@opensumi/ide-static-resource/lib/browser/static.definition';
6+
} from '@opensumi/ide-core-browser/lib/static-resource/static.definition';
77
import { AppConfig, RuntimeConfig } from '@codeblitzjs/ide-sumi-core';
88
import * as paths from 'path';
99
import { ICodeAPIProvider, CODE_PLATFORM_CONFIG, CodePlatform } from '@codeblitzjs/ide-code-api';

packages/core/package.json

Lines changed: 46 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -33,56 +33,57 @@
3333
"@codeblitzjs/ide-plugin": "1.0.4",
3434
"@codeblitzjs/ide-registry": "1.0.4",
3535
"@codeblitzjs/ide-sumi-core": "1.0.4",
36-
"@opensumi/ide-addons": "2.27.1",
37-
"@opensumi/ide-comments": "2.27.1",
38-
"@opensumi/ide-core-browser": "2.27.1",
39-
"@opensumi/ide-core-common": "2.27.1",
40-
"@opensumi/ide-debug": "2.27.1",
41-
"@opensumi/ide-decoration": "2.27.1",
42-
"@opensumi/ide-editor": "2.27.1",
43-
"@opensumi/ide-explorer": "2.27.1",
44-
"@opensumi/ide-express-file-server": "2.27.1",
45-
"@opensumi/ide-extension": "2.27.1",
46-
"@opensumi/ide-extension-storage": "2.27.1",
47-
"@opensumi/ide-file-scheme": "2.27.1",
48-
"@opensumi/ide-file-service": "2.27.1",
49-
"@opensumi/ide-file-tree-next": "2.27.1",
50-
"@opensumi/ide-i18n": "2.27.1",
51-
"@opensumi/ide-keymaps": "2.27.1",
52-
"@opensumi/ide-logs": "2.27.1",
53-
"@opensumi/ide-main-layout": "2.27.1",
54-
"@opensumi/ide-markdown": "2.27.1",
55-
"@opensumi/ide-markers": "2.27.1",
56-
"@opensumi/ide-menu-bar": "2.27.1",
57-
"@opensumi/ide-monaco": "2.27.1",
58-
"@opensumi/ide-monaco-enhance": "2.27.1",
59-
"@opensumi/ide-opened-editor": "2.27.1",
60-
"@opensumi/ide-outline": "2.27.1",
61-
"@opensumi/ide-output": "2.27.1",
62-
"@opensumi/ide-overlay": "2.27.1",
63-
"@opensumi/ide-preferences": "2.27.1",
64-
"@opensumi/ide-quick-open": "2.27.1",
65-
"@opensumi/ide-scm": "2.27.1",
66-
"@opensumi/ide-search": "2.27.1",
67-
"@opensumi/ide-static-resource": "2.27.1",
68-
"@opensumi/ide-status-bar": "2.27.1",
69-
"@opensumi/ide-storage": "2.27.1",
70-
"@opensumi/ide-testing": "2.27.1",
71-
"@opensumi/ide-theme": "2.27.1",
72-
"@opensumi/ide-toolbar": "2.27.1",
73-
"@opensumi/ide-variable": "2.27.1",
74-
"@opensumi/ide-webview": "2.27.1",
75-
"@opensumi/ide-workspace": "2.27.1",
76-
"@opensumi/ide-workspace-edit": "2.27.1",
36+
"@opensumi/ide-addons": "3.0.4-next-1716974737.0",
37+
"@opensumi/ide-ai-native": "3.0.4-next-1716974737.0",
38+
"@opensumi/ide-comments": "3.0.4-next-1716974737.0",
39+
"@opensumi/ide-core-browser": "3.0.4-next-1716974737.0",
40+
"@opensumi/ide-core-common": "3.0.4-next-1716974737.0",
41+
"@opensumi/ide-debug": "3.0.4-next-1716974737.0",
42+
"@opensumi/ide-decoration": "3.0.4-next-1716974737.0",
43+
"@opensumi/ide-design": "3.0.4-next-1716974737.0",
44+
"@opensumi/ide-editor": "3.0.4-next-1716974737.0",
45+
"@opensumi/ide-explorer": "3.0.4-next-1716974737.0",
46+
"@opensumi/ide-express-file-server": "3.0.4-next-1716974737.0",
47+
"@opensumi/ide-extension": "3.0.4-next-1716974737.0",
48+
"@opensumi/ide-extension-storage": "3.0.4-next-1716974737.0",
49+
"@opensumi/ide-file-scheme": "3.0.4-next-1716974737.0",
50+
"@opensumi/ide-file-service": "3.0.4-next-1716974737.0",
51+
"@opensumi/ide-file-tree-next": "3.0.4-next-1716974737.0",
52+
"@opensumi/ide-i18n": "3.0.4-next-1716974737.0",
53+
"@opensumi/ide-keymaps": "3.0.4-next-1716974737.0",
54+
"@opensumi/ide-logs": "3.0.4-next-1716974737.0",
55+
"@opensumi/ide-main-layout": "3.0.4-next-1716974737.0",
56+
"@opensumi/ide-markdown": "3.0.4-next-1716974737.0",
57+
"@opensumi/ide-markers": "3.0.4-next-1716974737.0",
58+
"@opensumi/ide-menu-bar": "3.0.4-next-1716974737.0",
59+
"@opensumi/ide-monaco": "3.0.4-next-1716974737.0",
60+
"@opensumi/ide-monaco-enhance": "3.0.4-next-1716974737.0",
61+
"@opensumi/ide-opened-editor": "3.0.4-next-1716974737.0",
62+
"@opensumi/ide-outline": "3.0.4-next-1716974737.0",
63+
"@opensumi/ide-output": "3.0.4-next-1716974737.0",
64+
"@opensumi/ide-overlay": "3.0.4-next-1716974737.0",
65+
"@opensumi/ide-preferences": "3.0.4-next-1716974737.0",
66+
"@opensumi/ide-quick-open": "3.0.4-next-1716974737.0",
67+
"@opensumi/ide-scm": "3.0.4-next-1716974737.0",
68+
"@opensumi/ide-search": "3.0.4-next-1716974737.0",
69+
"@opensumi/ide-status-bar": "3.0.4-next-1716974737.0",
70+
"@opensumi/ide-storage": "3.0.4-next-1716974737.0",
71+
"@opensumi/ide-testing": "3.0.4-next-1716974737.0",
72+
"@opensumi/ide-theme": "3.0.4-next-1716974737.0",
73+
"@opensumi/ide-toolbar": "3.0.4-next-1716974737.0",
74+
"@opensumi/ide-variable": "3.0.4-next-1716974737.0",
75+
"@opensumi/ide-webview": "3.0.4-next-1716974737.0",
76+
"@opensumi/ide-workspace": "3.0.4-next-1716974737.0",
77+
"@opensumi/ide-workspace-edit": "3.0.4-next-1716974737.0",
7778
"@opensumi/textmate-languages": "^2.7.0",
7879
"tslib": "^2.2.0"
7980
},
8081
"devDependencies": {
81-
"@types/react": "^18.0.0",
82-
"@types/react-dom": "^18.0.0"
82+
"@types/react": "^18.2.0",
83+
"@types/react-dom": "^18.2.0"
8384
},
8485
"peerDependencies": {
85-
"react": "^18.0.0",
86-
"react-dom": "^18.0.0"
86+
"react": "^18.2.0",
87+
"react-dom": "^18.2.0"
8788
}
8889
}

packages/core/src/api/createApp.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ export const getDefaultAppConfig = (): IAppOpts => ({
8080
brandName: 'Codeblitz',
8181
productName: 'Codeblitz',
8282
icon: 'https://mdn.alipayobjects.com/huamei_hwfivk/afts/img/A*lZQ5S4UoGoQAAAAAAAAAAAAADlyoAQ/original',
83-
}
83+
},
8484
});
8585

8686
export const DEFAULT_APP_CONFIG = getDefaultAppConfig();
@@ -95,7 +95,6 @@ export function createApp({ appConfig, runtimeConfig }: IConfig): IAppInstance {
9595
}
9696
opts.workspaceDir = makeWorkspaceDir(opts.workspaceDir);
9797

98-
9998
const app = new ClientApp(opts) as IAppInstance;
10099

101100
Object.defineProperty(app, 'currentThemeType', {
@@ -142,4 +141,3 @@ export function createApp({ appConfig, runtimeConfig }: IConfig): IAppInstance {
142141

143142
return app;
144143
}
145-

packages/core/src/api/renderApp.tsx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import {
1616
} from '../core/hooks';
1717
import { IConfig, IAppInstance } from './types';
1818
import styles from '../core/style.module.less';
19+
import { IAppRenderer } from '@opensumi/ide-core-browser';
1920

2021
export interface IAppRendererProps extends IConfig {
2122
onLoad?(app: IAppInstance): void;
@@ -32,11 +33,11 @@ export const renderApp = (domElement: HTMLElement, props: IAppRendererProps) =>
3233
root.render(<Root status="loading" theme={themeType} Landing={Landing} className={className} />);
3334

3435
app
35-
.start((appElement) => {
36+
.start((Children) => {
3637
return new Promise((resolve) => {
3738
root.render(
3839
<Root status="success" theme={themeType} className={className}>
39-
{appElement}
40+
<Children />
4041
</Root>
4142
);
4243
});
@@ -68,7 +69,7 @@ export const renderApp = (domElement: HTMLElement, props: IAppRendererProps) =>
6869
export const AppRenderer: React.FC<IAppRendererProps> = ({ onLoad, Landing, ...opts }) => {
6970
const app = useConstant(() => createApp(opts));
7071
const themeType = useConstant(() => app.currentThemeType);
71-
const appElementRef = useRef<React.ReactElement | null>(null);
72+
const appElementRef = useRef<React.FC | null>(null);
7273

7374
// 确保回调始终为最新
7475
// TODO: 用 PropsService
@@ -118,7 +119,7 @@ export const AppRenderer: React.FC<IAppRendererProps> = ({ onLoad, Landing, ...o
118119

119120
return (
120121
<Root {...state} theme={themeType} Landing={Landing} className={rootClassName}>
121-
{appElementRef.current}
122+
{appElementRef.current ? <appElementRef.current /> : null}
122123
</Root>
123124
);
124125
};

packages/core/src/api/renderEditor.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@ export const renderEditor = (domElement: HTMLElement, props: IEditorRendererProp
2828
root.render(<Root status="loading" Landing={Landing} className={className} />);
2929

3030
app
31-
.start((appElement) => {
31+
.start((IDEApp) => {
3232
return new Promise((resolve) => {
3333
root.render(
3434
<Root status="success" className={className}>
35-
{appElement}
35+
<IDEApp />
3636
</Root>
3737
);
3838
});
@@ -67,7 +67,7 @@ export const renderEditor = (domElement: HTMLElement, props: IEditorRendererProp
6767

6868
export const EditorRenderer: React.FC<IEditorRendererProps> = ({ onLoad, Landing, ...opts }) => {
6969
const app = useConstant(() => createEditor(opts));
70-
const appElementRef = useRef<React.ReactElement | null>(null);
70+
const ideAppRef = useRef<React.FC | null>(null);
7171
const propsService = useConstant(() => new PropsServiceImpl<EditorProps>());
7272

7373
propsService.props = { documentModel: opts.documentModel, editorConfig: opts.editorConfig };
@@ -84,8 +84,8 @@ export const EditorRenderer: React.FC<IEditorRendererProps> = ({ onLoad, Landing
8484
});
8585

8686
app
87-
.start((appElement) => {
88-
appElementRef.current = appElement;
87+
.start((IDEApp) => {
88+
ideAppRef.current = IDEApp;
8989
setState({ status: 'success' });
9090
return Promise.resolve();
9191
})
@@ -120,7 +120,7 @@ export const EditorRenderer: React.FC<IEditorRendererProps> = ({ onLoad, Landing
120120

121121
return (
122122
<Root {...state} Landing={Landing} className={`alex-editor ${rootClassName}`}>
123-
{appElementRef.current}
123+
{ideAppRef.current ? <ideAppRef.current /> : null}
124124
</Root>
125125
);
126126
};

packages/core/src/api/require.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ import * as Preferences from '../modules/opensumi__ide-preferences';
3434
import * as QuickOpen from '../modules/opensumi__ide-quick-open';
3535
import * as Scm from '../modules/opensumi__ide-scm';
3636
import * as Search from '../modules/opensumi__ide-search';
37-
import * as StaticResource from '../modules/opensumi__ide-static-resource';
3837
import * as StatusBar from '../modules/opensumi__ide-status-bar';
3938
import * as Storage from '../modules/opensumi__ide-storage';
4039
import * as Theme from '../modules/opensumi__ide-theme';
@@ -88,7 +87,6 @@ export function requireModule(module: '@opensumi/ide-preferences'): typeof Prefe
8887
export function requireModule(module: '@opensumi/ide-quick-open'): typeof QuickOpen;
8988
export function requireModule(module: '@opensumi/ide-scm'): typeof Scm;
9089
export function requireModule(module: '@opensumi/ide-search'): typeof Search;
91-
export function requireModule(module: '@opensumi/ide-static-resource'): typeof StaticResource;
9290
export function requireModule(module: '@opensumi/ide-status-bar'): typeof StatusBar;
9391
export function requireModule(module: '@opensumi/ide-storage'): typeof Storage;
9492
export function requireModule(module: '@opensumi/ide-theme'): typeof Theme;
@@ -176,8 +174,6 @@ export function requireModule(module: string): any {
176174
return Scm;
177175
case '@opensumi/ide-search':
178176
return Search;
179-
case '@opensumi/ide-static-resource':
180-
return StaticResource;
181177
case '@opensumi/ide-status-bar':
182178
return StatusBar;
183179
case '@opensumi/ide-storage':

0 commit comments

Comments
 (0)