Crystal-Modeling / tasklist-lang

Langium-based LS for TaskList language implemented in GLSP blueprints. Integrated with GLSP as SourceModel Server for demo purpose
Apache License 2.0
3 stars 1 forks source link

Sometimes LSP is failing with "Creating Calculator before Semantic Domain got initialized" #23

Open hpopov opened 1 year ago

hpopov commented 1 year ago
Debugger attached.
Trying to load SSL files from /workspaces/tasklist-theia-glsp/glsp-client/vsc-extensions/tasklist-lang/out/ssl/key.pem /workspaces/tasklist-theia-glsp/glsp-client/vsc-extensions/tasklist-lang/out/ssl/cert.pem
Initializing semantic domain for file:///workspaces/tasklist-theia-glsp/glsp-client/workspace/synchronized.tasks
====== IDENTITY RECONCILIATION PHASE ======
Loading semantic model for URI file:///workspaces/tasklist-theia-glsp/glsp-client/workspace/synchronized.tasks
Identity path is /workspaces/tasklist-theia-glsp/glsp-client/workspace/semantic/synchronized.json
Loading semantic model for URI file:///workspaces/tasklist-theia-glsp/glsp-client/workspace/source.tasks
Identity path is /workspaces/tasklist-theia-glsp/glsp-client/workspace/semantic/source.json
Error:  Error: Creating Calculator before Semantic Domain got initialized!
    at TaskListSourceUpdateManager.createCalculator (/workspaces/tasklist-theia-glsp/glsp-client/vsc-extensions/tasklist-lang/out/language-server/task-list/source/task-list-source-update-manager.js:13:19)
    at TaskListSourceUpdateManager.getUpdateCalculator (/workspaces/tasklist-theia-glsp/glsp-client/vsc-extensions/tasklist-lang/out/langium-model-server/source/source-update-manager.js:14:36)
    at TaskListSourceUpdateManager.getUpdateCalculator (/workspaces/tasklist-theia-glsp/glsp-client/vsc-extensions/tasklist-lang/out/language-server/task-list/source/task-list-source-update-manager.js:8:22)
    at TaskListIdentityReconciler.reconcileTasks (/workspaces/tasklist-theia-glsp/glsp-client/vsc-extensions/tasklist-lang/out/language-server/task-list/semantic/task-list-identity-reconciler.js:54:59)
    at /workspaces/tasklist-theia-glsp/glsp-client/vsc-extensions/tasklist-lang/out/langium-model-server/workspace/lms-document-builder.js:72:72
    at Map.forEach (<anonymous>)
    at DefaultLmsDocumentBuilder.reconcileIdentity (/workspaces/tasklist-theia-glsp/glsp-client/vsc-extensions/tasklist-lang/out/langium-model-server/workspace/lms-document-builder.js:72:39)
    at runNextTicks (node:internal/process/task_queues:61:5)
    at processImmediate (node:internal/timers:437:9)
    at process.callbackTrampoline (node:internal/async_hooks:130:17)
hpopov commented 11 months ago

After implementing #30, this error cannot be logged (check logging this error is removed in favor of static types checking). It seems, that with rewriting reconciliation into iterations, the issue can be completely eliminated.