diff --git a/verify/angular/package.json b/verify/angular/package.json
index 6f81001e..5211b390 100644
--- a/verify/angular/package.json
+++ b/verify/angular/package.json
@@ -20,7 +20,26 @@
"monaco-editor-wrapper": "~6.3.0",
"monaco-languageclient-examples": "~2025.2.5",
"rxjs": "~7.8.1",
- "zone.js": "~0.14.10"
+ "zone.js": "~0.14.10",
+ "@codingame/monaco-vscode-configuration-service-override": "~10.1.1",
+ "@codingame/monaco-vscode-cpp-default-extension": "~10.1.1",
+ "@codingame/monaco-vscode-files-service-override": "~10.1.1",
+ "@codingame/monaco-vscode-groovy-default-extension": "~10.1.1",
+ "@codingame/monaco-vscode-keybindings-service-override": "~10.1.1",
+ "@codingame/monaco-vscode-lifecycle-service-override": "~10.1.1",
+ "@codingame/monaco-vscode-localization-service-override": "~10.1.1",
+ "@codingame/monaco-vscode-java-default-extension": "~10.1.1",
+ "@codingame/monaco-vscode-javascript-default-extension": "~10.1.1",
+ "@codingame/monaco-vscode-json-default-extension": "~10.1.1",
+ "@codingame/monaco-vscode-python-default-extension": "~10.1.1",
+ "@codingame/monaco-vscode-standalone-languages": "~10.1.1",
+ "@codingame/monaco-vscode-standalone-typescript-language-features": "~10.1.1",
+ "@codingame/monaco-vscode-standalone-json-language-features": "~10.1.1",
+ "@codingame/monaco-vscode-textmate-service-override": "~10.1.1",
+ "@codingame/monaco-vscode-theme-defaults-default-extension": "~10.1.1",
+ "@codingame/monaco-vscode-theme-service-override": "~10.1.1",
+ "@codingame/monaco-vscode-typescript-basics-default-extension": "~10.1.1",
+ "@codingame/monaco-vscode-typescript-language-features-default-extension": "~10.1.1"
},
"devDependencies": {
"@angular-builders/custom-esbuild": "~18.0.0",
diff --git a/verify/angular/src/app/app.component.html b/verify/angular/src/app/app.component.html
index c5c54137..bf0ec103 100644
--- a/verify/angular/src/app/app.component.html
+++ b/verify/angular/src/app/app.component.html
@@ -1,11 +1,20 @@
-
Angular Monaco Editor demo with saving code to a mock HTTP server
-
-
-
-
+
Angular Monaco Editor Demo
+
+
+
+
+
+
+
Groovy Editor
+
+
+
+
diff --git a/verify/angular/src/app/app.component.ts b/verify/angular/src/app/app.component.ts
index 1ce534f4..e581c999 100644
--- a/verify/angular/src/app/app.component.ts
+++ b/verify/angular/src/app/app.component.ts
@@ -6,7 +6,6 @@
import { AfterViewInit, Component, inject, signal } from '@angular/core';
import { WrapperConfig } from 'monaco-editor-wrapper';
import { MonacoAngularWrapperComponent } from '../monaco-angular-wrapper/monaco-angular-wrapper.component';
-import { buildJsonClientUserConfig } from 'monaco-languageclient-examples/json-client';
import { SaveCodeService } from '../save-code.service';
import { firstValueFrom } from 'rxjs';
@Component({
@@ -19,9 +18,10 @@ import { firstValueFrom } from 'rxjs';
export class AppComponent implements AfterViewInit {
private saveCodeService = inject(SaveCodeService);
wrapperConfig = signal
(undefined); // this can be updated at runtime
-
+ groovyWrapperConfig = signal(undefined); // this can be updated at runtime
title = 'angular demo for saving code';
editorId = 'monaco-editor-root'; // this can be parameterized or it can be in a loop to support multiple editors
+ groovyEditorId = 'monaco-editor-groovy'; // this can be parameterized or it can be in a loop to support multiple editors
editorInlineStyle = signal('height: 50vh;');
readonly codeText = signal('');
diff --git a/verify/angular/src/config/groovy.config.ts b/verify/angular/src/config/groovy.config.ts
new file mode 100644
index 00000000..b10e8f95
--- /dev/null
+++ b/verify/angular/src/config/groovy.config.ts
@@ -0,0 +1,51 @@
+/* --------------------------------------------------------------------------------------------
+ * Copyright (c) 2024 TypeFox and others.
+ * Licensed under the MIT License. See LICENSE in the package root for license information.
+ * ------------------------------------------------------------------------------------------ */
+
+import { LogLevel } from 'vscode';
+import getKeybindingsServiceOverride from '@codingame/monaco-vscode-keybindings-service-override';
+import { WrapperConfig } from 'monaco-editor-wrapper';
+import { configureMonacoWorkers } from 'monaco-languageclient-examples';
+export function getGroovyClientConfig(htmlContainerId: string) {
+ const userConfig: WrapperConfig = {
+ logLevel: LogLevel.Debug,
+ vscodeApiConfig: {
+ userServices: {
+ ...getKeybindingsServiceOverride(),
+ },
+ userConfiguration: {
+ json: JSON.stringify({
+ 'workbench.colorTheme': 'Default Dark Modern',
+ 'editor.guides.bracketPairsHorizontal': 'active',
+ 'editor.wordBasedSuggestions': 'off',
+ 'editor.experimental.asyncTokenization': true,
+ }),
+ },
+ },
+ editorAppConfig: {
+ $type: 'extended',
+ codeResources: {
+ main: {
+ text: '',
+ fileExt: 'groovy',
+ },
+ },
+ useDiffEditor: false,
+ monacoWorkerFactory: configureMonacoWorkers,
+ htmlContainer: document.getElementById(htmlContainerId)!,
+ },
+ languageClientConfigs: {
+ groovy: {
+ languageId: 'groovy',
+ connection: {
+ options: {
+ $type: 'WebSocketUrl',
+ url: 'ws://localhost:30002/groovy',
+ },
+ },
+ },
+ },
+ };
+ return userConfig;
+}
diff --git a/verify/angular/src/index.html b/verify/angular/src/index.html
index c2db5b0d..09175661 100644
--- a/verify/angular/src/index.html
+++ b/verify/angular/src/index.html
@@ -2,9 +2,10 @@
- HelloWorld
+ Angular Wrapper Demo
+