@webgal/language-service 0.0.2-alpha.3 → 0.0.2-alpha.4

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.
@@ -1,6 +1,205 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_monaco_init = require('../monaco-init-D-ukBToI.cjs');
2
+ const require_chunk = require('../chunk-C0xms8kb.cjs');
3
+ const require_client_handlers = require('../client-handlers-DVUjG46C.cjs');
4
+ const require_syntaxes = require('../syntaxes.cjs');
5
+ const require_themes = require('../themes.cjs');
6
+ let vscode_ws_jsonrpc = require("vscode-ws-jsonrpc");
7
+ let vscode_languageclient_browser_js = require("vscode-languageclient/browser.js");
8
+ let monaco_languageclient = require("monaco-languageclient");
9
+ let _codingame_monaco_vscode_api = require("@codingame/monaco-vscode-api");
10
+ let _codingame_monaco_vscode_api_extensions = require("@codingame/monaco-vscode-api/extensions");
11
+ let _codingame_monaco_vscode_languages_service_override = require("@codingame/monaco-vscode-languages-service-override");
12
+ _codingame_monaco_vscode_languages_service_override = require_chunk.__toESM(_codingame_monaco_vscode_languages_service_override);
13
+ let _codingame_monaco_vscode_theme_service_override = require("@codingame/monaco-vscode-theme-service-override");
14
+ _codingame_monaco_vscode_theme_service_override = require_chunk.__toESM(_codingame_monaco_vscode_theme_service_override);
15
+ let _codingame_monaco_vscode_textmate_service_override = require("@codingame/monaco-vscode-textmate-service-override");
16
+ _codingame_monaco_vscode_textmate_service_override = require_chunk.__toESM(_codingame_monaco_vscode_textmate_service_override);
17
+ require("vscode/localExtensionHost");
3
18
 
4
- exports.createWebgalMonacoLanguageClient = require_monaco_init.createWebgalMonacoLanguageClient;
5
- exports.createWebgalMonacoLanguageClientWithWorker = require_monaco_init.createWebgalMonacoLanguageClientWithWorker;
6
- exports.initWebgalMonaco = require_monaco_init.initWebgalMonaco;
19
+ //#region src/monaco/monaco.ts
20
+ function createMemoryFileSystem(options) {
21
+ return require_client_handlers.createVirtualFileSystem(require_client_handlers.createMemoryVolarFileSystem(options));
22
+ }
23
+ const createWebgalMonacoLanguageClient = (options) => {
24
+ const { languageServerUrl, editor } = options;
25
+ const editorInstance = editor;
26
+ const vfs = options.virtualFileSystem || createMemoryFileSystem({ root: "file:///game" });
27
+ if (!options.virtualFileSystem) {
28
+ vfs.writeFile("file:///game/scene/start.txt", "WebGal:Start;");
29
+ vfs.writeFile("file:///game/config.txt", "");
30
+ }
31
+ const webSocket = new WebSocket(languageServerUrl);
32
+ webSocket.onopen = () => {
33
+ const socket = (0, vscode_ws_jsonrpc.toSocket)(webSocket);
34
+ const reader = new vscode_ws_jsonrpc.WebSocketMessageReader(socket);
35
+ const languageClient = createLanguageClient({
36
+ reader,
37
+ writer: new vscode_ws_jsonrpc.WebSocketMessageWriter(socket)
38
+ }, {
39
+ editor: editorInstance,
40
+ vfs
41
+ });
42
+ languageClient.start();
43
+ reader.onClose(() => languageClient.stop());
44
+ };
45
+ return {
46
+ webSocket,
47
+ vfs
48
+ };
49
+ };
50
+ const createWebgalMonacoLanguageClientWithWorker = (options) => {
51
+ const { worker, editor } = options;
52
+ const editorInstance = editor;
53
+ const vfs = options.virtualFileSystem || createMemoryFileSystem({ root: "file:///game" });
54
+ if (!options.virtualFileSystem) {
55
+ vfs.writeFile("file:///game/scene/start.txt", "WebGal:Start;");
56
+ vfs.writeFile("file:///game/config.txt", "");
57
+ }
58
+ const languageClient = createLanguageClient({
59
+ reader: new vscode_languageclient_browser_js.BrowserMessageReader(worker),
60
+ writer: new vscode_languageclient_browser_js.BrowserMessageWriter(worker)
61
+ }, {
62
+ editor: editorInstance,
63
+ vfs
64
+ });
65
+ languageClient.start();
66
+ worker.onerror = () => languageClient.stop();
67
+ worker.onmessageerror = () => languageClient.stop();
68
+ return {
69
+ worker,
70
+ vfs
71
+ };
72
+ };
73
+ const createLanguageClient = (messageTransports, options) => {
74
+ const handlers = require_client_handlers.createWebgalClientHandlers({
75
+ vfs: options.vfs,
76
+ overrides: {
77
+ "client/showTip": function(message) {
78
+ console.log(message);
79
+ },
80
+ "workspace/documentLink/refresh": () => {
81
+ const model = options.editor.getModel();
82
+ if (!model) return null;
83
+ options.editor.setModel(model);
84
+ return null;
85
+ }
86
+ }
87
+ });
88
+ const client = new monaco_languageclient.MonacoLanguageClient({
89
+ name: "WebGAL Language Client",
90
+ clientOptions: {
91
+ documentSelector: [
92
+ {
93
+ scheme: "file",
94
+ language: "webgal"
95
+ },
96
+ {
97
+ scheme: "file",
98
+ language: "webgal-config"
99
+ },
100
+ {
101
+ scheme: "inmemory",
102
+ language: "webgal"
103
+ },
104
+ {
105
+ scheme: "inmemory",
106
+ language: "webgal-config"
107
+ }
108
+ ],
109
+ errorHandler: {
110
+ error: () => ({ action: vscode_languageclient_browser_js.ErrorAction.Continue }),
111
+ closed: () => ({ action: vscode_languageclient_browser_js.CloseAction.DoNotRestart })
112
+ },
113
+ synchronize: { configurationSection: ["webgal", "http"] },
114
+ initializationOptions() {
115
+ const model = options.editor.getModel();
116
+ return {
117
+ processId: Math.random(),
118
+ rootPath: "file:///game",
119
+ rootUri: "file:///game",
120
+ capabilities: {},
121
+ workspaceFolders: [{
122
+ uri: "file:///game",
123
+ name: "example"
124
+ }],
125
+ ...model ? { textDocument: { uri: model.uri.toString() } } : {}
126
+ };
127
+ }
128
+ },
129
+ messageTransports
130
+ });
131
+ require_client_handlers.registerWebgalClientHandlers(client, handlers);
132
+ options.vfs.onDidChange(() => {
133
+ client.sendNotification("webgal/vfsChanged");
134
+ });
135
+ return client;
136
+ };
137
+
138
+ //#endregion
139
+ //#region src/monaco/monaco-init.ts
140
+ let initPromise = null;
141
+ const initResources = {
142
+ "./webgal.tmLanguage.json": require_syntaxes.webgalGrammar,
143
+ "./webgal-config.tmLanguage.json": require_syntaxes.webgalConfigGrammar,
144
+ "./language-configuration.json": require_syntaxes.webgalLanguageConfiguration,
145
+ "./dark.json": require_themes.webgalDarkTheme,
146
+ "./white.json": require_themes.webgalWhiteTheme
147
+ };
148
+ async function initWebgalMonaco() {
149
+ if (initPromise) return initPromise;
150
+ initPromise = (async () => {
151
+ const { registerFileUrl } = (0, _codingame_monaco_vscode_api_extensions.registerExtension)({
152
+ name: "webgal",
153
+ publisher: "openwebgal",
154
+ version: "1.0.0",
155
+ engines: { vscode: "^1.0.0" },
156
+ activationEvents: ["onLanguage:webgal", "onLanguage:webgal-config"],
157
+ contributes: {
158
+ languages: [{
159
+ id: "webgal",
160
+ extensions: [".webgal"],
161
+ aliases: ["WebGAL"],
162
+ configuration: "./language-configuration.json"
163
+ }, {
164
+ id: "webgal-config",
165
+ extensions: [".webgal-config"],
166
+ aliases: ["WebGAL Config"]
167
+ }],
168
+ grammars: [{
169
+ language: "webgal",
170
+ scopeName: "source.webgal",
171
+ path: "./webgal.tmLanguage.json"
172
+ }, {
173
+ language: "webgal-config",
174
+ scopeName: "source.webgal-config",
175
+ path: "./webgal-config.tmLanguage.json"
176
+ }],
177
+ themes: [{
178
+ id: "webgal-dark",
179
+ label: "WebGAL Dark",
180
+ uiTheme: "vs-dark",
181
+ path: "./dark.json"
182
+ }, {
183
+ id: "webgal-white",
184
+ label: "WebGAL White",
185
+ uiTheme: "vs",
186
+ path: "./white.json"
187
+ }]
188
+ }
189
+ }, _codingame_monaco_vscode_api_extensions.ExtensionHostKind.LocalProcess);
190
+ for (const [key, value] of Object.entries(initResources)) registerFileUrl(key, new URL("data:application/json;base64," + btoa(decodeURIComponent(encodeURIComponent(JSON.stringify(value)))), require("url").pathToFileURL(__filename).href).href);
191
+ await (0, _codingame_monaco_vscode_api.initialize)({
192
+ ...(0, _codingame_monaco_vscode_textmate_service_override.default)(),
193
+ ...(0, _codingame_monaco_vscode_theme_service_override.default)(),
194
+ ...(0, _codingame_monaco_vscode_languages_service_override.default)()
195
+ });
196
+ })();
197
+ return initPromise;
198
+ }
199
+
200
+ //#endregion
201
+ exports.createMemoryFileSystem = createMemoryFileSystem;
202
+ exports.createWebgalMonacoLanguageClient = createWebgalMonacoLanguageClient;
203
+ exports.createWebgalMonacoLanguageClientWithWorker = createWebgalMonacoLanguageClientWithWorker;
204
+ exports.initResources = initResources;
205
+ exports.initWebgalMonaco = initWebgalMonaco;