Skip to content
This repository has been archived by the owner on Mar 22, 2024. It is now read-only.

Commit

Permalink
Merge pull request #59 from TypeFox/init-start
Browse files Browse the repository at this point in the history
Allow to init and start separately.
  • Loading branch information
kaisalmen committed Nov 26, 2023
2 parents 6481122 + 1b3c6cf commit cad55b2
Show file tree
Hide file tree
Showing 25 changed files with 1,231 additions and 922 deletions.
1,595 changes: 895 additions & 700 deletions package-lock.json

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions package.json
Expand Up @@ -10,35 +10,35 @@
"watch": "tsc --build tsconfig.build.json --watch --verbose",
"lint": "eslint {**/src/**/*.ts,**/src/**/*.tsx,**/test/**/*.ts,**/test/**/*.tsx}",
"build": "npm run build --workspaces",
"test": "vitest -c vitest.config.ts",
"test": "node --experimental-import-meta-resolve ./node_modules/vitest/vitest.mjs -c vite.config.ts",
"release:prepare": "npm run reset:repo && npm ci && npm run lint && npm run build",
"reset:repo": "git clean -f -X -d",
"start:example:server:json": "npm run start:server:json --workspace packages/examples",
"start:example:server:python": "npm run start:server:python --workspace packages/examples"
},
"devDependencies": {
"@types/node": "~18.18.9",
"@types/node": "~18.18.13",
"@types/shelljs": "~0.8.15",
"@types/vscode": "~1.83.3",
"@typescript-eslint/eslint-plugin": "~6.10.0",
"@typescript-eslint/parser": "~6.10.0",
"@typescript-eslint/eslint-plugin": "~6.12.0",
"@typescript-eslint/parser": "~6.12.0",
"@vitest/browser": "~0.34.6",
"editorconfig": "~2.0.0",
"eslint": "~8.53.0",
"eslint": "~8.54.0",
"shelljs": "~0.8.5",
"shx": "~0.3.4",
"typescript": "~5.2.2",
"vite": "~4.5.0",
"typescript": "~5.3.2",
"vite": "~5.0.2",
"vitest": "~0.34.6",
"webdriverio": "~8.22.0"
"webdriverio": "~8.24.1"
},
"overrides": {
"monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.5 <1.84.0",
"vscode": "npm:@codingame/monaco-vscode-api@>=1.83.5 <1.84.0"
"monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.7 <1.84.0",
"vscode": "npm:@codingame/monaco-vscode-api@>=1.83.7 <1.84.0"
},
"resolutions": {
"monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.5 <1.84.0",
"vscode": "npm:@codingame/monaco-vscode-api@>=1.83.5 <1.84.0"
"monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.7 <1.84.0",
"vscode": "npm:@codingame/monaco-vscode-api@>=1.83.7 <1.84.0"
},
"volta": {
"node": "18.18.2",
Expand Down
34 changes: 17 additions & 17 deletions packages/examples/package.json
@@ -1,44 +1,44 @@
{
"name": "monaco-editor-wrapper-examples",
"private": true,
"version": "3.4.0-next.0",
"version": "3.4.0-next.7",
"type": "module",
"dependencies": {
"@codingame/monaco-vscode-configuration-service-override": "~1.83.5",
"@codingame/monaco-vscode-editor-service-override": "~1.83.5",
"@codingame/monaco-vscode-json-default-extension": "~1.83.5",
"@codingame/monaco-vscode-keybindings-service-override": "~1.83.5",
"@codingame/monaco-vscode-python-default-extension": "~1.83.5",
"@typefox/monaco-editor-react": "~2.4.0-next.0",
"@codingame/monaco-vscode-configuration-service-override": "~1.83.7",
"@codingame/monaco-vscode-editor-service-override": "~1.83.7",
"@codingame/monaco-vscode-json-default-extension": "~1.83.7",
"@codingame/monaco-vscode-keybindings-service-override": "~1.83.7",
"@codingame/monaco-vscode-python-default-extension": "~1.83.7",
"@typefox/monaco-editor-react": "~2.4.0-next.7",
"http-server": "~14.1.1",
"langium": "~2.1.1",
"langium": "~2.1.3",
"langium-statemachine-dsl": "~2.1.0",
"monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.5 <1.84.0",
"monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.7 <1.84.0",
"monaco-editor-workers": "~0.44.0",
"monaco-editor-wrapper": "~3.4.0-next.0",
"monaco-languageclient": "~7.0.0",
"monaco-languageclient-examples": "~7.0.0",
"monaco-editor-wrapper": "~3.4.0-next.7",
"monaco-languageclient": "~7.0.2",
"monaco-languageclient-examples": "~7.0.2",
"react": "~18.2.0",
"react-dom": "~18.2.0",
"request-light": "~0.7.0",
"vscode": "npm:@codingame/monaco-vscode-api@>=1.83.5 <1.84.0",
"vscode": "npm:@codingame/monaco-vscode-api@>=1.83.7 <1.84.0",
"vscode-uri": "~3.0.8",
"vscode-languageclient": "~9.0.1",
"vscode-languageserver": "~9.0.1",
"vscode-json-languageservice": "~5.3.7"
},
"devDependencies": {
"@types/react": "~18.2.37",
"@types/react-dom": "~18.2.15",
"@types/react": "~18.2.38",
"@types/react-dom": "~18.2.17",
"ts-node": "~10.9.1"
},
"overrides": {
"monaco-editor": "$monaco-editor",
"vscode": "$vscode"
},
"resolutions": {
"monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.5 <1.84.0",
"vscode": "npm:@codingame/monaco-vscode-api@>=1.83.5 <1.84.0"
"monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.7 <1.84.0",
"vscode": "npm:@codingame/monaco-vscode-api@>=1.83.7 <1.84.0"
},
"volta": {
"node": "18.18.2",
Expand Down
3 changes: 2 additions & 1 deletion packages/examples/src/common.ts
Expand Up @@ -38,7 +38,8 @@ export const disposeEditor = async (useDiffEditor: boolean) => {
};

const restartEditor = async (userConfig: UserConfig, htmlElement: HTMLElement | null) => {
await wrapper.start(userConfig, htmlElement);
await wrapper.dispose();
await wrapper.initAndStart(userConfig, htmlElement);
logEditorInfo(userConfig);
};

Expand Down
21 changes: 15 additions & 6 deletions packages/examples/src/langium/wrapperLangium.ts
Expand Up @@ -11,6 +11,7 @@ import { buildWorkerDefinition } from 'monaco-editor-workers';
buildWorkerDefinition('../../../node_modules/monaco-editor-workers/dist/workers/', new URL('', window.location.href).href, false);

let wrapper: MonacoEditorLanguageClientWrapper | undefined;
let extended = false;

const htmlElement = document.getElementById('monaco-editor-root');
export const run = async () => {
Expand All @@ -26,10 +27,12 @@ export const run = async () => {
export const startLangiumClientExtended = async () => {
try {
if (checkStarted()) return;
disableButton('button-start-classic');
extended = true;
disableButton('button-start-classic', true);
disableButton('button-start-extended', true);
const config = await setupLangiumClientExtended();
wrapper = new MonacoEditorLanguageClientWrapper();
wrapper.start(config, htmlElement);
wrapper.initAndStart(config, htmlElement);
} catch (e) {
console.log(e);
}
Expand All @@ -38,10 +41,11 @@ export const startLangiumClientExtended = async () => {
export const startLangiumClientClassic = async () => {
try {
if (checkStarted()) return;
disableButton('button-start-extended');
disableButton('button-start-classic', true);
disableButton('button-start-extended', true);
const config = await setupLangiumClientClassic();
wrapper = new MonacoEditorLanguageClientWrapper();
await wrapper.start(config, htmlElement!);
await wrapper.initAndStart(config, htmlElement!);
} catch (e) {
console.log(e);
}
Expand All @@ -55,10 +59,10 @@ const checkStarted = () => {
return false;
};

const disableButton = (id: string) => {
const disableButton = (id: string, disabled: boolean) => {
const button = document.getElementById(id) as HTMLButtonElement;
if (button !== null) {
button.disabled = true;
button.disabled = disabled;
}
};

Expand All @@ -67,6 +71,11 @@ export const disposeEditor = async () => {
wrapper.reportStatus();
await wrapper.dispose();
wrapper = undefined;
if (extended) {
disableButton('button-start-extended', false);
} else {
disableButton('button-start-classic', false);
}
};

export const loadLangiumWorker = () => {
Expand Down
4 changes: 2 additions & 2 deletions packages/examples/src/langium/wrapperStatemachine.ts
Expand Up @@ -14,9 +14,9 @@ const startEditor = async () => {
return;
}
const langiumGlobalConfig = await createLangiumGlobalConfig();
await wrapper.start(langiumGlobalConfig, document.getElementById('monaco-editor-root'));
await wrapper.initAndStart(langiumGlobalConfig, document.getElementById('monaco-editor-root'));
const langiumGlobalConfig2 = await createLangiumGlobalConfig();
await wrapper2.start(langiumGlobalConfig2, document.getElementById('monaco-editor-root2'));
await wrapper2.initAndStart(langiumGlobalConfig2, document.getElementById('monaco-editor-root2'));

vscode.commands.getCommands().then((x) => {
console.log('Currently registered # of vscode commands: ' + x.length);
Expand Down
17 changes: 10 additions & 7 deletions packages/examples/src/wrapperAdvanced.ts
@@ -1,5 +1,6 @@
import getKeybindingsServiceOverride from '@codingame/monaco-vscode-keybindings-service-override';
import 'monaco-editor/esm/vs/basic-languages/javascript/javascript.contribution.js';
import 'monaco-editor/esm/vs/language/typescript/monaco.contribution.js';
import { EditorAppConfigClassic, LanguageClientError, MonacoEditorLanguageClientWrapper, UserConfig } from 'monaco-editor-wrapper';
import { buildWorkerDefinition } from 'monaco-editor-workers';

Expand Down Expand Up @@ -96,16 +97,16 @@ const wrapper44Config: UserConfig = {
};

const startWrapper42 = async () => {
await wrapper42.start(wrapper42Config, document.getElementById('monaco-editor-root-42'));
await wrapper42.initAndStart(wrapper42Config, document.getElementById('monaco-editor-root-42'));
console.log('wrapper42 was started.');
};

const startWrapper43 = async () => {
await wrapper43.start(wrapper43Config, document.getElementById('monaco-editor-root-43'));
await wrapper43.initAndStart(wrapper43Config, document.getElementById('monaco-editor-root-43'));
console.log('wrapper43 was started.');
};
const startWrapper44 = async () => {
await wrapper44.start(wrapper44Config, document.getElementById('monaco-editor-root-44'));
await wrapper44.initAndStart(wrapper44Config, document.getElementById('monaco-editor-root-44'));
console.log('wrapper44 was started.');

};
Expand All @@ -114,21 +115,23 @@ const sleepOne = (milliseconds: number) => {
setTimeout(async () => {
alert(`Updating editors after ${milliseconds}ms`);

await wrapper42.dispose();
wrapper42Config.languageClientConfig = undefined;
const appConfig42 = wrapper42Config.wrapperConfig.editorAppConfig as EditorAppConfigClassic;
appConfig42.languageId = 'javascript';
appConfig42.useDiffEditor = false;
appConfig42.code = `function logMe() {
console.log('Hello swap editors!');
};`;
const w42Start = wrapper42.start(wrapper42Config, document.getElementById('monaco-editor-root-42'));
const w42Start = wrapper42.initAndStart(wrapper42Config, document.getElementById('monaco-editor-root-42'));

const w43Start = wrapper43.updateDiffModel({
languageId: 'javascript',
code: 'text 5678',
codeOriginal: 'text 1234'
});

await wrapper44.dispose();
const appConfig44 = wrapper44Config.wrapperConfig.editorAppConfig as EditorAppConfigClassic;
appConfig44.languageId = 'text/plain';
appConfig44.useDiffEditor = true;
Expand All @@ -137,7 +140,7 @@ const sleepOne = (milliseconds: number) => {
// This affects all editors globally and is only effective
// if it is not in contrast to one configured later
appConfig44.theme = 'vs-light';
const w44Start = wrapper44.start(wrapper44Config, document.getElementById('monaco-editor-root-44'));
const w44Start = wrapper44.initAndStart(wrapper44Config, document.getElementById('monaco-editor-root-44'));

await w42Start;
console.log('Restarted wrapper42.');
Expand All @@ -152,11 +155,11 @@ const sleepTwo = (milliseconds: number) => {
setTimeout(async () => {
alert(`Updating last editor after ${milliseconds}ms`);

await wrapper44.dispose();
const appConfig44 = wrapper44Config.wrapperConfig.editorAppConfig as EditorAppConfigClassic;
appConfig44.useDiffEditor = false;
appConfig44.theme = 'vs-dark';

await wrapper44.start(wrapper44Config, document.getElementById('monaco-editor-root-44'));
await wrapper44.initAndStart(wrapper44Config, document.getElementById('monaco-editor-root-44'));
console.log('Restarted wrapper44.');
}, milliseconds);
};
Expand Down
2 changes: 1 addition & 1 deletion packages/examples/vite.bundle-mew.ts
Expand Up @@ -16,11 +16,11 @@ const config = defineConfig({
commonjsOptions: {
strictRequires: true
},
sourcemap: true,
rollupOptions: {
output: {
name: 'mew',
exports: 'named',
sourcemap: true,
assetFileNames: (assetInfo) => {
return `assets/${assetInfo.name}`;
}
Expand Down
16 changes: 8 additions & 8 deletions packages/monaco-editor-react/package.json
@@ -1,6 +1,6 @@
{
"name": "@typefox/monaco-editor-react",
"version": "2.4.0-next.0",
"version": "2.4.0-next.7",
"license": "MIT",
"description": "React component for Monaco-Editor and Monaco Languageclient",
"keywords": [
Expand Down Expand Up @@ -50,24 +50,24 @@
"npm": "9.9.0"
},
"dependencies": {
"monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.5 <1.84.0",
"monaco-editor-wrapper": "~3.4.0-next.0",
"monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.7 <1.84.0",
"monaco-editor-wrapper": "~3.4.0-next.7",
"react": "~18.2.0",
"vscode": "npm:@codingame/monaco-vscode-api@>=1.83.5 <1.84.0"
"vscode": "npm:@codingame/monaco-vscode-api@>=1.83.7 <1.84.0"
},
"peerDependencies": {
"monaco-editor-wrapper": "~3.4.0-next.0"
"monaco-editor-wrapper": "~3.4.0-next.7"
},
"devDependencies": {
"@types/react": "~18.2.37"
"@types/react": "~18.2.38"
},
"overrides": {
"monaco-editor": "$monaco-editor",
"vscode": "$vscode"
},
"resolutions": {
"monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.5 <1.84.0",
"vscode": "npm:@codingame/monaco-vscode-api@>=1.83.5 <1.84.0"
"monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.7 <1.84.0",
"vscode": "npm:@codingame/monaco-vscode-api@>=1.83.7 <1.84.0"
},
"repository": {
"type": "git",
Expand Down

0 comments on commit cad55b2

Please sign in to comment.