diff --git a/src/language/safe-ds-module.ts b/src/language/safe-ds-module.ts index 17c493b74..31912ff63 100644 --- a/src/language/safe-ds-module.ts +++ b/src/language/safe-ds-module.ts @@ -28,6 +28,7 @@ import { SafeDsTypeChecker } from './typing/safe-ds-type-checker.js'; import { SafeDsCoreTypes } from './typing/safe-ds-core-types.js'; import { SafeDsNodeKindProvider } from './lsp/safe-ds-node-kind-provider.js'; import { SafeDsDocumentSymbolProvider } from './lsp/safe-ds-document-symbol-provider.js'; +import { SafeDsDocumentBuilder } from './workspace/safe-ds-document-builder.js'; /** * Declaration of custom services - add your own service classes here. @@ -106,6 +107,7 @@ export const SafeDsSharedModule: Module new SafeDsNodeKindProvider(), }, workspace: { + DocumentBuilder: (services) => new SafeDsDocumentBuilder(services), WorkspaceManager: (services) => new SafeDsWorkspaceManager(services), }, }; diff --git a/src/language/workspace/safe-ds-document-builder.ts b/src/language/workspace/safe-ds-document-builder.ts new file mode 100644 index 000000000..ddef9fb9e --- /dev/null +++ b/src/language/workspace/safe-ds-document-builder.ts @@ -0,0 +1,11 @@ +import { BuildOptions, DefaultDocumentBuilder } from 'langium'; + +export class SafeDsDocumentBuilder extends DefaultDocumentBuilder { + override updateBuildOptions: BuildOptions = { + validation: { + categories: ['built-in', 'fast'], + stopAfterLexingErrors: true, + stopAfterParsingErrors: true, + }, + }; +}