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 +