monaco-languageclient-examples 6.4.5 → 6.4.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/README.md +2 -2
  3. package/dist/browser/main.js +1 -1
  4. package/dist/browser/main.js.map +1 -1
  5. package/dist/common.d.ts.map +1 -1
  6. package/dist/common.js +5 -3
  7. package/dist/common.js.map +1 -1
  8. package/dist/index.d.ts +0 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +0 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/json/client/main.js +1 -1
  13. package/dist/json/client/main.js.map +1 -1
  14. package/dist/langium/statemachineClient.js +3 -3
  15. package/dist/langium/statemachineClient.js.map +1 -1
  16. package/dist/python/client/main.js +1 -1
  17. package/dist/python/client/main.js.map +1 -1
  18. package/dist/python/server/direct.js +1 -1
  19. package/dist/python/server/direct.js.map +1 -1
  20. package/dist/react/app.js +1 -1
  21. package/dist/react/app.js.map +1 -1
  22. package/dist/worker/statemachineServerWorker.js +1 -1
  23. package/package.json +6 -11
  24. package/src/browser/main.ts +1 -1
  25. package/src/common.ts +5 -3
  26. package/src/index.ts +0 -1
  27. package/src/json/client/main.ts +1 -1
  28. package/src/langium/statemachineClient.ts +3 -3
  29. package/src/python/client/main.ts +1 -1
  30. package/src/python/server/direct.ts +1 -1
  31. package/src/react/app.tsx +1 -1
  32. package/vite.statemachine-worker.ts +1 -1
  33. package/dist/langium/langiumClient.d.ts +0 -4
  34. package/dist/langium/langiumClient.d.ts.map +0 -1
  35. package/dist/langium/langiumClient.js +0 -129
  36. package/dist/langium/langiumClient.js.map +0 -1
  37. package/dist/langium/langiumServerWorker.d.ts +0 -2
  38. package/dist/langium/langiumServerWorker.d.ts.map +0 -1
  39. package/dist/langium/langiumServerWorker.js +0 -18
  40. package/dist/langium/langiumServerWorker.js.map +0 -1
  41. package/dist/worker/langiumServerWorker.js +0 -210
  42. package/langium_client.html +0 -20
  43. package/src/langium/example.langium +0 -215
  44. package/src/langium/langium.configuration.json +0 -164
  45. package/src/langium/langium.tmLanguage.json +0 -290
  46. package/src/langium/langiumClient.ts +0 -145
  47. package/src/langium/langiumServerWorker.ts +0 -21
@@ -1,145 +0,0 @@
1
- /* --------------------------------------------------------------------------------------------
2
- * Copyright (c) 2018-2022 TypeFox GmbH (http://www.typefox.io). All rights reserved.
3
- * Licensed under the MIT License. See License.txt in the project root for license information.
4
- * ------------------------------------------------------------------------------------------ */
5
-
6
- import { Uri } from 'monaco-editor';
7
-
8
- import { MonacoLanguageClient, initServices } from 'monaco-languageclient';
9
- import { BrowserMessageReader, BrowserMessageWriter } from 'vscode-languageserver-protocol/browser.js';
10
- import { CloseAction, ErrorAction } from 'vscode-languageclient';
11
-
12
- import { createConfiguredEditor, createModelReference, IReference, ITextFileEditorModel } from 'vscode/monaco';
13
- import { ExtensionHostKind, registerExtension } from 'vscode/extensions';
14
- import { updateUserConfiguration } from 'vscode/service-override/configuration';
15
- import { RegisteredFileSystemProvider, registerFileSystemOverlay, RegisteredMemoryFile } from 'vscode/service-override/files';
16
- import 'vscode/default-extensions/theme-defaults';
17
-
18
- import { buildWorkerDefinition } from 'monaco-editor-workers';
19
- buildWorkerDefinition('../../../node_modules/monaco-editor-workers/dist/workers/', new URL('', window.location.href).href, false);
20
-
21
- const languageId = 'langium';
22
- let textModelRef: IReference<ITextFileEditorModel>;
23
-
24
- export const setupLangiumClient = async () => {
25
- await initServices({
26
- // required for default themes
27
- enableThemeService: true,
28
- // required for textmate grammars
29
- enableTextmateService: true,
30
- // required for text model handling (here: /workspace/example.langium)
31
- enableModelService: true,
32
- // use editor mode
33
- configureEditorOrViewsService: {
34
- },
35
- // enable configuration services
36
- configureConfigurationService: {
37
- defaultWorkspaceUri: '/workspace'
38
- },
39
- // enable platform specific keybindings
40
- enableKeybindingsService: true,
41
- // enable language support
42
- enableLanguagesService: true,
43
- debugLogging: true
44
- });
45
-
46
- console.log('Setting up Langium client configuration ...');
47
- // define this client as vscode extension, required for textmate grammars
48
- const extension = {
49
- name: 'langium-client',
50
- publisher: 'monaco-languageclient-project',
51
- version: '1.0.0',
52
- engines: {
53
- vscode: '*'
54
- },
55
- contributes: {
56
- languages: [{
57
- id: languageId,
58
- extensions: [
59
- `.${languageId}`
60
- ],
61
- aliases: [
62
- languageId
63
- ],
64
- // files are loaded below and bind below
65
- configuration: './langium-configuration.json'
66
- }],
67
- grammars: [{
68
- language: languageId,
69
- scopeName: 'source.langium',
70
- // files are loaded below and bind below
71
- path: './langium-grammar.json'
72
- }]
73
- }
74
- };
75
- const { registerFileUrl } = registerExtension(extension, ExtensionHostKind.LocalProcess);
76
-
77
- // these two files are taken from the langium-vscode
78
- // regiser the language configuration file url
79
- registerFileUrl('/langium-configuration.json', new URL('./src/langium/langium.configuration.json', window.location.href).href);
80
- // regiser the textmate grammar file url
81
- // using a textmate grammar requires the textmate and theme service to be enabled
82
- registerFileUrl('/langium-grammar.json', new URL('./src/langium/langium.tmLanguage.json', window.location.href).href);
83
-
84
- // set vscode configuration parameters
85
- updateUserConfiguration(`{
86
- "workbench.colorTheme": "Default Dark Modern"
87
- }`);
88
-
89
- const exampleLangiumUrl = new URL('./src/langium/example.langium', window.location.href).href;
90
- const editorText = await (await fetch(exampleLangiumUrl)).text();
91
-
92
- // create and register a new file system provider
93
- const fileSystemProvider = new RegisteredFileSystemProvider(false);
94
- // register a file with content from the example.langium file loaded from src above
95
- fileSystemProvider.registerFile(new RegisteredMemoryFile(Uri.file('/workspace/example.langium'), editorText));
96
- registerFileSystemOverlay(1, fileSystemProvider);
97
-
98
- textModelRef = await createModelReference(Uri.file('/workspace/example.langium'));
99
-
100
- createConfiguredEditor(document.getElementById('container')!, {
101
- model: textModelRef.object.textEditorModel
102
- });
103
-
104
- // works only if browser supports module workers
105
- const langiumWorkerUrl = new URL('./src/langium/langiumServerWorker.ts', window.location.href).href;
106
- // use this if module workers aren't supported
107
- // const langiumWorkerUrl = new URL('./dist/worker/langiumServerWorker.js', window.location.href).href;
108
- const worker = new Worker(langiumWorkerUrl, {
109
- type: 'module',
110
- name: 'Langium LS'
111
- });
112
- const reader = new BrowserMessageReader(worker);
113
- const writer = new BrowserMessageWriter(worker);
114
- reader.onClose(() => languageClient.stop());
115
-
116
- const languageClient = new MonacoLanguageClient({
117
- name: 'Langium Client',
118
- clientOptions: {
119
- // use a language id as a document selector
120
- documentSelector: [{ language: languageId }],
121
- // disable the default error handler
122
- errorHandler: {
123
- error: () => ({ action: ErrorAction.Continue }),
124
- closed: () => ({ action: CloseAction.DoNotRestart })
125
- }
126
- },
127
- // create a language client connection to the server running in the web worker
128
- connectionProvider: {
129
- get: () => {
130
- return Promise.resolve({ reader, writer });
131
- }
132
- }
133
- });
134
- languageClient.start();
135
-
136
- // any further language client / server interaction can't be defined as needed
137
- };
138
-
139
- export const startLangiumClient = async () => {
140
- try {
141
- await setupLangiumClient();
142
- } catch (e) {
143
- console.log(e);
144
- }
145
- };
@@ -1,21 +0,0 @@
1
- /* --------------------------------------------------------------------------------------------
2
- * Copyright (c) 2018-2022 TypeFox GmbH (http://www.typefox.io). All rights reserved.
3
- * Licensed under the MIT License. See License.txt in the project root for license information.
4
- * ------------------------------------------------------------------------------------------ */
5
-
6
- import { createLangiumGrammarServices, startLanguageServer, EmptyFileSystem, DefaultSharedModuleContext } from 'langium';
7
- import { BrowserMessageReader, BrowserMessageWriter, createConnection } from 'vscode-languageserver/browser.js';
8
-
9
- /* browser specific setup code */
10
- const messageReader = new BrowserMessageReader(self as DedicatedWorkerGlobalScope);
11
- const messageWriter = new BrowserMessageWriter(self as DedicatedWorkerGlobalScope);
12
-
13
- // Inject the shared services and language-specific services
14
- const context = {
15
- connection: createConnection(messageReader, messageWriter),
16
- ...EmptyFileSystem
17
- } as unknown as DefaultSharedModuleContext;
18
- const { shared } = createLangiumGrammarServices(context);
19
-
20
- // Start the language server with the shared services
21
- startLanguageServer(shared);