diff --git a/demo/package-lock.json b/demo/package-lock.json
index bef6ff8..5d7d39e 100644
--- a/demo/package-lock.json
+++ b/demo/package-lock.json
@@ -30,7 +30,7 @@
}
},
"..": {
- "version": "1.0.29",
+ "version": "1.0.30",
"license": "Apache-2.0",
"dependencies": {
"@leanprover/infoview": "^0.7.3",
diff --git a/demo/src/LeanMonaco.tsx b/demo/src/LeanMonaco.tsx
index b1f90c9..ecb084d 100644
--- a/demo/src/LeanMonaco.tsx
+++ b/demo/src/LeanMonaco.tsx
@@ -10,16 +10,18 @@ function LeanMonacoComponent({options, numberEditors} : {options: LeanMonacoOpti
// You need to start one `LeanMonaco` instance once in your application using a `useEffect`
useEffect(() => {
- const leanMonaco = new LeanMonaco()
- setLeanMonaco(leanMonaco)
- leanMonaco.setInfoviewElement(infoviewRef.current!)
+ var _leanMonaco = new LeanMonaco()
+ setLeanMonaco(_leanMonaco)
+ _leanMonaco.setInfoviewElement(infoviewRef.current!)
+
;(async () => {
- await leanMonaco.start(options)
+ await _leanMonaco.start(options)
+ console.debug('[demo]: leanMonaco started')
})()
return () => {
- leanMonaco.dispose()
+ _leanMonaco.dispose()
}
}, [options])
@@ -34,7 +36,7 @@ function LeanMonacoComponent({options, numberEditors} : {options: LeanMonacoOpti
diff --git a/demo/src/LeanMonacoEditor.tsx b/demo/src/LeanMonacoEditor.tsx
index b21161c..13f1b01 100644
--- a/demo/src/LeanMonacoEditor.tsx
+++ b/demo/src/LeanMonacoEditor.tsx
@@ -13,7 +13,9 @@ function LeanMonacoEditorComponent({fileName, value}: {fileName: string, value:
;(async () => {
await leanMonaco!.whenReady
+ console.debug('[demo]: starting editor')
await leanMonacoEditor.start(codeviewRef.current!, fileName, value)
+ console.debug('[demo]: editor started')
})()
return () => {
diff --git a/package-lock.json b/package-lock.json
index 1885203..8d6e905 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -34,9 +34,9 @@
}
},
"node_modules/@babel/runtime": {
- "version": "7.25.0",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz",
- "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==",
+ "version": "7.25.4",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.4.tgz",
+ "integrity": "sha512-DSgLeL/FNcpXuzav5wfYvHCGvynXkJbn3Zvc3823AEe9nPwW9IK4UoCSS5yGymmQzN0pCPvivtgS6/8U2kkm1w==",
"dependencies": {
"regenerator-runtime": "^0.14.0"
},
@@ -583,26 +583,6 @@
"cypress": "*"
}
},
- "node_modules/@types/eslint": {
- "version": "9.6.0",
- "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.0.tgz",
- "integrity": "sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==",
- "dev": true,
- "dependencies": {
- "@types/estree": "*",
- "@types/json-schema": "*"
- }
- },
- "node_modules/@types/eslint-scope": {
- "version": "3.7.7",
- "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz",
- "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==",
- "dev": true,
- "dependencies": {
- "@types/eslint": "*",
- "@types/estree": "*"
- }
- },
"node_modules/@types/estree": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
@@ -616,9 +596,9 @@
"dev": true
},
"node_modules/@types/node": {
- "version": "22.4.1",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-22.4.1.tgz",
- "integrity": "sha512-1tbpb9325+gPnKK0dMm+/LMriX0vKxf6RnB0SZUqfyVkQ4fMgUSySqhxE/y8Jvs4NyF1yHzTfG9KlnkIODxPKg==",
+ "version": "22.5.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.0.tgz",
+ "integrity": "sha512-DkFrJOe+rfdHTqqMg0bSNlGlQ85hSoh2TPzZyhHsXnMtligRWpxUySiyw8FY14ITt24HVCiQPWxS3KO/QlGmWg==",
"dev": true,
"dependencies": {
"undici-types": "~6.19.2"
@@ -1738,9 +1718,9 @@
}
},
"node_modules/dayjs": {
- "version": "1.11.12",
- "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.12.tgz",
- "integrity": "sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg==",
+ "version": "1.11.13",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz",
+ "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==",
"dev": true
},
"node_modules/debug": {
@@ -1797,9 +1777,9 @@
}
},
"node_modules/electron-to-chromium": {
- "version": "1.5.12",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.12.tgz",
- "integrity": "sha512-tIhPkdlEoCL1Y+PToq3zRNehUaKp3wBX/sr7aclAWdIWjvqAe/Im/H0SiCM4c1Q8BLPHCdoJTol+ZblflydehA==",
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz",
+ "integrity": "sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==",
"dev": true
},
"node_modules/emoji-regex": {
@@ -2544,9 +2524,9 @@
}
},
"node_modules/is-core-module": {
- "version": "2.15.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz",
- "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==",
+ "version": "2.15.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz",
+ "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==",
"dev": true,
"dependencies": {
"hasown": "^2.0.2"
@@ -3063,40 +3043,40 @@
}
},
"node_modules/monaco-editor-wrapper": {
- "version": "5.5.1",
- "resolved": "https://registry.npmjs.org/monaco-editor-wrapper/-/monaco-editor-wrapper-5.5.1.tgz",
- "integrity": "sha512-Urgzu7J1Yd1j3K7+hm2P5vvW45Ryq7Q21RN6f7TyEeC2aKnw080UpiY5G/fOWzjH+OGXdulNp0ut4CQUX1/v2A==",
- "dependencies": {
- "@codingame/monaco-vscode-configuration-service-override": "~8.0.1",
- "@codingame/monaco-vscode-editor-service-override": "~8.0.1",
- "@codingame/monaco-vscode-language-pack-cs": "~8.0.1",
- "@codingame/monaco-vscode-language-pack-de": "~8.0.1",
- "@codingame/monaco-vscode-language-pack-es": "~8.0.1",
- "@codingame/monaco-vscode-language-pack-fr": "~8.0.1",
- "@codingame/monaco-vscode-language-pack-it": "~8.0.1",
- "@codingame/monaco-vscode-language-pack-ja": "~8.0.1",
- "@codingame/monaco-vscode-language-pack-ko": "~8.0.1",
- "@codingame/monaco-vscode-language-pack-pl": "~8.0.1",
- "@codingame/monaco-vscode-language-pack-pt-br": "~8.0.1",
- "@codingame/monaco-vscode-language-pack-qps-ploc": "~8.0.1",
- "@codingame/monaco-vscode-language-pack-ru": "~8.0.1",
- "@codingame/monaco-vscode-language-pack-tr": "~8.0.1",
- "@codingame/monaco-vscode-language-pack-zh-hans": "~8.0.1",
- "@codingame/monaco-vscode-language-pack-zh-hant": "~8.0.1",
- "@codingame/monaco-vscode-monarch-service-override": "~8.0.1",
- "@codingame/monaco-vscode-textmate-service-override": "~8.0.1",
- "@codingame/monaco-vscode-theme-defaults-default-extension": "~8.0.1",
- "@codingame/monaco-vscode-theme-service-override": "~8.0.1",
- "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@~8.0.1",
- "vscode": "npm:@codingame/monaco-vscode-api@~8.0.1",
+ "version": "5.5.2",
+ "resolved": "https://registry.npmjs.org/monaco-editor-wrapper/-/monaco-editor-wrapper-5.5.2.tgz",
+ "integrity": "sha512-YuoIV2hxqGpgYGFshsDNvItLMKeriCbFcroCo/NinrEDzr2PlWuIFbaKBr2r6to2sNq53d6iUpjz6P7PTe/nrw==",
+ "dependencies": {
+ "@codingame/monaco-vscode-configuration-service-override": "~8.0.2",
+ "@codingame/monaco-vscode-editor-service-override": "~8.0.2",
+ "@codingame/monaco-vscode-language-pack-cs": "~8.0.2",
+ "@codingame/monaco-vscode-language-pack-de": "~8.0.2",
+ "@codingame/monaco-vscode-language-pack-es": "~8.0.2",
+ "@codingame/monaco-vscode-language-pack-fr": "~8.0.2",
+ "@codingame/monaco-vscode-language-pack-it": "~8.0.2",
+ "@codingame/monaco-vscode-language-pack-ja": "~8.0.2",
+ "@codingame/monaco-vscode-language-pack-ko": "~8.0.2",
+ "@codingame/monaco-vscode-language-pack-pl": "~8.0.2",
+ "@codingame/monaco-vscode-language-pack-pt-br": "~8.0.2",
+ "@codingame/monaco-vscode-language-pack-qps-ploc": "~8.0.2",
+ "@codingame/monaco-vscode-language-pack-ru": "~8.0.2",
+ "@codingame/monaco-vscode-language-pack-tr": "~8.0.2",
+ "@codingame/monaco-vscode-language-pack-zh-hans": "~8.0.2",
+ "@codingame/monaco-vscode-language-pack-zh-hant": "~8.0.2",
+ "@codingame/monaco-vscode-monarch-service-override": "~8.0.2",
+ "@codingame/monaco-vscode-textmate-service-override": "~8.0.2",
+ "@codingame/monaco-vscode-theme-defaults-default-extension": "~8.0.2",
+ "@codingame/monaco-vscode-theme-service-override": "~8.0.2",
+ "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@~8.0.2",
+ "vscode": "npm:@codingame/monaco-vscode-api@~8.0.2",
"vscode-languageclient": "~9.0.1",
"vscode-languageserver-protocol": "~3.17.5",
"vscode-ws-jsonrpc": "~3.3.2"
},
"peerDependencies": {
- "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@~8.0.1",
- "monaco-languageclient": "~8.8.1",
- "vscode": "npm:@codingame/monaco-vscode-api@~8.0.1"
+ "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@~8.0.2",
+ "monaco-languageclient": "~8.8.2",
+ "vscode": "npm:@codingame/monaco-vscode-api@~8.0.2"
},
"peerDependenciesMeta": {
"monaco-editor": {
@@ -3111,17 +3091,17 @@
}
},
"node_modules/monaco-languageclient": {
- "version": "8.8.1",
- "resolved": "https://registry.npmjs.org/monaco-languageclient/-/monaco-languageclient-8.8.1.tgz",
- "integrity": "sha512-fgI4tFfsZRSB7igkN6vossoprZet3kydCGxh2OtEZNECvkpXBhXi55V4/UyyevhDS3Hwrh8O7ApfzoVX5uJyXg==",
+ "version": "8.8.2",
+ "resolved": "https://registry.npmjs.org/monaco-languageclient/-/monaco-languageclient-8.8.2.tgz",
+ "integrity": "sha512-qE5LaHcTELjGMbq3iwBq1DqBEjzEYsPHaQUeAqNmGAFyMEJ0O+wldXAQgAqfB+oWrh2xmSiFcizmXqRawrx8oQ==",
"peer": true,
"dependencies": {
- "@codingame/monaco-vscode-extensions-service-override": "~8.0.1",
- "@codingame/monaco-vscode-languages-service-override": "~8.0.1",
- "@codingame/monaco-vscode-localization-service-override": "~8.0.1",
- "@codingame/monaco-vscode-model-service-override": "~8.0.1",
- "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@~8.0.1",
- "vscode": "npm:@codingame/monaco-vscode-api@~8.0.1",
+ "@codingame/monaco-vscode-extensions-service-override": "~8.0.2",
+ "@codingame/monaco-vscode-languages-service-override": "~8.0.2",
+ "@codingame/monaco-vscode-localization-service-override": "~8.0.2",
+ "@codingame/monaco-vscode-model-service-override": "~8.0.2",
+ "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@~8.0.2",
+ "vscode": "npm:@codingame/monaco-vscode-api@~8.0.2",
"vscode-languageclient": "~9.0.1"
},
"engines": {
@@ -3129,8 +3109,8 @@
"npm": ">=9.0.0"
},
"peerDependencies": {
- "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@~8.0.1",
- "vscode": "npm:@codingame/monaco-vscode-api@~8.0.1"
+ "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@~8.0.2",
+ "vscode": "npm:@codingame/monaco-vscode-api@~8.0.2"
},
"peerDependenciesMeta": {
"monaco-editor": {
@@ -4493,12 +4473,11 @@
}
},
"node_modules/webpack": {
- "version": "5.93.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.93.0.tgz",
- "integrity": "sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA==",
+ "version": "5.94.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz",
+ "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==",
"dev": true,
"dependencies": {
- "@types/eslint-scope": "^3.7.3",
"@types/estree": "^1.0.5",
"@webassemblyjs/ast": "^1.12.1",
"@webassemblyjs/wasm-edit": "^1.12.1",
@@ -4507,7 +4486,7 @@
"acorn-import-attributes": "^1.9.5",
"browserslist": "^4.21.10",
"chrome-trace-event": "^1.0.2",
- "enhanced-resolve": "^5.17.0",
+ "enhanced-resolve": "^5.17.1",
"es-module-lexer": "^1.2.1",
"eslint-scope": "5.1.1",
"events": "^3.2.0",
diff --git a/src/leanmonaco.ts b/src/leanmonaco.ts
index 235ac75..b4ba2a0 100644
--- a/src/leanmonaco.ts
+++ b/src/leanmonaco.ts
@@ -62,20 +62,27 @@ export type LeanMonacoOptions = {
console.debug('[LeanMonaco]: starting')
if (LeanMonaco.activeInstance == this) {
- console.warn('A LeanMonaco instance cannot be started twice.')
+ console.warn('[LeanMonaco]: A LeanMonaco instance cannot be started twice.')
return
}
if (LeanMonaco.activeInstance) {
- console.warn('There can only be one active LeanMonaco instance at a time. Disposing previous instance.')
+ console.warn('[LeanMonaco]: There can only be one active LeanMonaco instance at a time. Disposing previous instance.')
LeanMonaco.activeInstance?.dispose()
}
LeanMonaco.activeInstance = this
if (! window.MonacoEnvironment) {
+ console.debug('[LeanMonaco]: setting monaco environment')
type WorkerLoader = () => Worker
const workerLoaders: Partial> = {
- editorWorkerService: () => new Worker(new URL('monaco-editor/esm/vs/editor/editor.worker.js', import.meta.url), { type: 'module' }),
- textMateWorker: () => new Worker(new URL('@codingame/monaco-vscode-textmate-service-override/worker', import.meta.url), { type: 'module' }),
+ editorWorkerService: () => new Worker(
+ new URL('monaco-editor/esm/vs/editor/editor.worker.js', import.meta.url),
+ { type: 'module' }
+ ),
+ textMateWorker: () => new Worker(
+ new URL('@codingame/monaco-vscode-textmate-service-override/worker', import.meta.url),
+ { type: 'module' }
+ ),
}
window.MonacoEnvironment = {
getWorker: function (moduleId, label) {
@@ -102,19 +109,22 @@ export type LeanMonacoOptions = {
workspaceProvider: {
trusted: true,
workspace: {
- workspaceUri: Uri.file('/workspace.code-workspace')
+ workspaceUri: Uri.file('/workspace.code-workspace')
},
async open() {
- return false
+ return false
}
}
}
)
-
+ console.debug('[LeanMonaco]: done initializing')
}
await (await import('@codingame/monaco-vscode-theme-defaults-default-extension')).whenReady
- if (this.disposed) return
+ if (this.disposed) {
+ console.debug('[LeanMonaco]: is disposed (A)')
+ return
+ }
this.extensionRegisterResult = registerExtension(this.getExtensionManifest(), ExtensionHostKind.LocalProcess)
@@ -125,12 +135,18 @@ export type LeanMonacoOptions = {
await this.extensionRegisterResult.whenReady()
- if (this.disposed) return
+ if (this.disposed) {
+ console.debug('[LeanMonaco]: is disposed (B)')
+ return
+ }
const themeService = await getService(IThemeService)
const configurationService = await getService(IConfigurationService)
- if (this.disposed) return
+ if (this.disposed) {
+ console.debug('[LeanMonaco]: is disposed (C)')
+ return
+ }
this.updateVSCodeOptions(options.vscode ?? {})
@@ -206,8 +222,12 @@ export type LeanMonacoOptions = {
...options.vscode
})
- if (this.disposed) return
+ if (this.disposed) {
+ console.debug('[LeanMonaco]: is disposed (D)')
+ return
+ }
+ console.info('[LeanMonaco]: is ready!')
this.ready()
}
diff --git a/src/vscode-lean4 b/src/vscode-lean4
index 9b38cf3..0b3cbc2 160000
--- a/src/vscode-lean4
+++ b/src/vscode-lean4
@@ -1 +1 @@
-Subproject commit 9b38cf30b5f1c4c4fdc24ffe0366c60199790643
+Subproject commit 0b3cbc2a3f4a005cab8ada8888b4f1577a2064ba
diff --git a/tsconfig.json b/tsconfig.json
index c28b877..f1b02dc 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -3,7 +3,7 @@
"target": "ESNext",
"useDefineForClassFields": true,
"module": "ESNext",
- "lib": ["ES2020", "DOM", "DOM.Iterable"],
+ "lib": ["ES2021", "ES2021.String", "DOM", "DOM.Iterable"],
"skipLibCheck": true,
/* Bundler mode */