You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Remove monaco-editor-wrapper. Create EditorApp in client
- Move languageclient management from wrapper to client
- move all tests from wrapper to client
- client: proper separation of sub-exports, rename tools to common
- monaco-vscode-api independent config and init
- clean up and restructure src and test
- Update vitest and other dependencies
- Update examples
- Unify json, eclipse.jdt and groovy example
- react component: fix re-render and global init
- expand react tests
- LanguageClient handling with react component
- Updated versions to next.1 and updated dependencies. Removed references to monaco-editor-wrapper where applicable
- Updated test timeout and vite optimizeDeps
- Implemented review comments
- GHA: Properly dispose editor app in tests (saves lots of memory in Playwright/Chromium)
This repository now host multiple npm packages under one roof:
18
16
19
17
-[monaco-languageclient](https://www.npmjs.com/package/monaco-languageclient) to connect [Monaco editor](https://microsoft.github.io/monaco-editor/) with [language servers](https://microsoft.github.io/language-server-protocol/).
20
18
-[vscode-ws-jsonrpc](https://www.npmjs.com/package/vscode-ws-jsonrpc) which implements communication between a jsonrpc client and server over WebSocket.
21
-
-[monaco-editor-wrapper](https://www.npmjs.com/package/monaco-editor-wrapper) for building monaco editor application driven by configuration
22
-
-[monaco-editor-react](https://www.npmjs.com/package/@typefox/monaco-editor-react) puts a react cloack over `monaco-editor-wrapper`
19
+
-[monaco-editor-react](https://www.npmjs.com/package/@typefox/monaco-editor-react) makes editor and languageclient available within a react component.
23
20
-[monaco-languageclient-examples](https://www.npmjs.com/package/monaco-languageclient-examples) provides the examples which allows to use them externally.
24
21
25
22
The examples not requiring a backend are now available [via GitHub Pages](https://typefox.github.io/monaco-languageclient).<br>
26
23
27
-
-[Monaco Language Client, VSCode WebSocket Json RPC, Monaco-Editor-Wrapper, Monaco-Editor-React and examples](#monaco-language-client-vscode-websocket-json-rpc-monaco-editor-wrapper-monaco-editor-react-and-examples)
24
+
-[Monaco Language Client, VSCode WebSocket Json RPC, MonacoEditorReact and examples](#monaco-language-client-vscode-websocket-json-rpc-monaco-editor-react-and-examples)
28
25
-[Changelogs, project history and compatibility](#changelogs-project-history-and-compatibility)
29
26
-[Getting started](#getting-started)
30
27
-[Vite dev server](#vite-dev-server)
@@ -71,7 +68,6 @@ CHANGELOGs for each project are available from the linked location:
71
68
72
69
- CHANGELOG for `monaco-languageclient` is found [here](https://github.com/TypeFox/monaco-languageclient/blob/main/packages/client/CHANGELOG.md)
73
70
- CHANGELOG for `vscode-ws-jsonrpc` is found [here](https://github.com/TypeFox/monaco-languageclient/blob/main/packages/vscode-ws-jsonrpc/CHANGELOG.md)
74
-
- CHANGELOG for `monaco-editor-wrapper` is found [here](https://github.com/TypeFox/monaco-languageclient/blob/main/packages/wrapper/CHANGELOG.md)
75
71
- CHANGELOG for `@typefox/monaco-editor-react` is found [here](https://github.com/TypeFox/monaco-languageclient/blob/main/packages/wrapper-react/CHANGELOG.md)
76
72
- CHANGELOG for `monaco-languageclient-examples` is found [here](https://github.com/TypeFox/monaco-languageclient/blob/main/packages/examples/CHANGELOG.md)
77
73
@@ -80,7 +76,6 @@ Important Project changes and notes about the project's history are found [here]
80
76
These are the current versions of packages from this repository and their alignment with **@codingame/monaco-vscode-api****monaco-editor** and **vscode**:
@@ -129,7 +124,6 @@ Please look at the respective section in the packages:
129
124
130
125
- Usage for `monaco-languageclient` is found [here](https://github.com/TypeFox/monaco-languageclient/blob/main/packages/client/README.md#usage)
131
126
- Usage for `vscode-ws-jsonrpc` is found [here](https://github.com/TypeFox/monaco-languageclient/blob/main/packages/vscode-ws-jsonrpc/README.md#usage)
132
-
- Usage for `monaco-editor-wrapper` is found [here](https://github.com/TypeFox/monaco-languageclient/blob/main/packages/wrapper/README.md#usage)
133
127
- Usage for `@typefox/monaco-editor-react` is found [here](https://github.com/TypeFox/monaco-languageclient/blob/main/packages/wrapper-react/README.md#usage)
134
128
135
129
## Examples Overview
@@ -144,23 +138,23 @@ The examples demonstrate mutliple things:
144
138
#### JSON Language client and language server example ([Location](./packages/examples/src/json))
145
139
146
140
The **json-server** runs an external Node.js [Express app](./packages/examples/src/json/server/main.ts) where web sockets are used to enable communication between the language server process and the client web application (see [JSON Language Server](#json-language-server)).
147
-
The **json-client** contains the [monaco-editor-wrapper app](./packages/examples/src/json/client/wrapperWs.ts) which connects to the language server and therefore requires the node server app to be run in parallel.
141
+
The **json-client** contains the [editor app](./packages/examples/src/json/client/wrapperWs.ts) which connects to the language server and therefore requires the node server app to be run in parallel.
148
142
149
143
#### Python Language client and pyright language server example ([Location](./packages/examples/src/python))
150
144
151
145
The **python-server** runs an external Node.js [Express app](./packages/examples/src/python/server/main.ts) where web sockets are used to enable communication between the language server process and the client web application (see [Pyright Language Server](#pyright-language-server)).
152
-
The **python-client** contains the [monaco-editor-wrapper app](./packages/examples/src/python/client/main.ts) which connects to the language server and therefore requires the node server app to be run in parallel.
146
+
The **python-client** contains the [editor app](./packages/examples/src/python/client/main.ts) which connects to the language server and therefore requires the node server app to be run in parallel.
153
147
It is also possible to use a [@typefox/monaco-editor-react app](./packages/examples/src/python/client/reactPython.tsx) to connect to the server. Both versions now feature a debugger, see [here](#graalpy-debugger).
154
148
155
149
#### Groovy Language client and language server example ([Location](./packages/examples/src/groovy))
156
150
157
151
The **groovy-server** runs an external [Java app](./packages/examples/src/groovy/server/main.ts) where web sockets are used to enable communication between the language server process and the client web application ([Groovy Language Server](#groovy-language-server)).
158
-
The **groovy-client** contains the [monaco-editor-wrapper app](./packages/examples/src/groovy/client/main.ts) which connects to the language server and therefore requires the node server app to be run in parallel.
152
+
The **groovy-client** contains the [editor app](./packages/examples/src/groovy/client/main.ts) which connects to the language server and therefore requires the node server app to be run in parallel.
159
153
160
154
#### Java Language client and language server example ([Location](./packages/examples/src/eclipse.jdt.ls))
161
155
162
156
The **java-server** runs an external [Java app](./packages/examples/src/eclipse.jdt.ls/server/main.ts) where web sockets are used to enable communication between the language server process and the client web application ([Java Language Server](#java-language-server)).
163
-
The **java-client** contains the [monaco-editor-wrapper app](./packages/examples/src/eclipse.jdt.ls/client/main.ts) which connects to the language server and therefore requires the node server app to be run in parallel.
157
+
The **java-client** contains the [editor app](./packages/examples/src/eclipse.jdt.ls/client/main.ts) which connects to the language server and therefore requires the node server app to be run in parallel.
164
158
165
159
Langium examples (here client and server communicate via `vscode-languageserver-protocol/browser` instead of a web socket used in the three examples above
166
160
@@ -183,11 +177,11 @@ It is also possible to use a [@typefox/monaco-editor-react app](./packages/examp
183
177
184
178
#### bare monaco-languageclient ([Location](./packages/examples/src/bare))
185
179
186
-
It demostrate how the `JSON Language client and language server example` can be realised without `monaco-editor-wrapper`. You find the implementation [here](./packages/examples/src/bare/client.ts).
180
+
This demonstrates how the `JSON Language client and language server example` can be realized with just the pure monaco api and no abstraction via the `editor app`. You find the implementation [here](./packages/examples/src/bare/client.ts).
187
181
188
182
#### Browser example ([Location](./packages/examples/src/browser))
189
183
190
-
It demonstrates how a [monaco-editor-wrapper can be combined with a language service written in JavaScript](./packages/examples/src/browser/main.ts). This example can now be considered legacy as the web worker option eases client side language server implementation and separation, but it still shows a valid way to achieve the desired outcome.
184
+
This demonstrates how an [editor app can be combined with a language service written in JavaScript](./packages/examples/src/browser/main.ts). This example can now be considered legacy as the web worker option eases client side language server implementation and separation, but it still shows a valid way to achieve the desired outcome.
191
185
192
186
#### Purely monaco-editor related examples
193
187
@@ -251,7 +245,7 @@ You can as well run [vscode tasks](./.vscode/launch.json) to start and debug the
251
245
252
246
### General
253
247
254
-
Whenever you used `monaco-editor`/`@codingame/monaco-vscode-editor-api``vscode`/`@codingame/monaco-vscode-extension-api`, `monaco-languageclient`, `monaco-editor-wrapper` or `@typefox/monaco-editor-react` ensure they are imported before you do any `monaco-editor` or `vscode` api related intialization work or start using it.
248
+
Whenever you used `monaco-editor`/`@codingame/monaco-vscode-editor-api``vscode`/`@codingame/monaco-vscode-extension-api`, `monaco-languageclient` or `@typefox/monaco-editor-react` ensure they are imported before you do any `monaco-editor` or `vscode` api related intialization work or start using it.
255
249
256
250
If you use pnpm or yarn, you have to add `vscode` / `@codingame/monaco-vscode-api` as direct dependency, otherwise the installation will fail:
257
251
@@ -390,6 +384,5 @@ When webpack is used as bundler there are issues with utilizing the undbundled w
@@ -82,6 +82,11 @@ The following table describes which version of **monaco-languageclient** and **@
82
82
83
83
## Important Project Changes
84
84
85
+
### July 2025 (v10.0.0)
86
+
87
+
- Dropped `monaco-editor-wrapper`. All required funcitonality was moved back to `monaco-languageclient` and made available as sub exports.
88
+
-`@typefox/monaco-editor-react` lifecycle and robustness improvements.
89
+
85
90
### March 2024 (v8.0.0)
86
91
87
92
`@codingame/monaco-editor-treemended` is replaced by self-standing `@codingame/monaco-vscode-editor-api`. `monaco-editor-wrapper` and `@typefox/monaco-editor-react` have been moved into this repository.
<ahref="./packages/examples/statemachine.html">Langium Statemachine Client & Language Server (Worker)</a>
39
+
<ahref="./packages/examples/statemachine.html">Langium Statemachine Client & Language Server (Worker)</a> (<ahref="./packages/examples/react_statemachine.html">React Version</a>)<br>
<ahref="./packages/examples/python.html">Python Language Client & Pyright Language Server (Web Socket)</a><br>
61
+
<ahref="./packages/examples/python.html">Python Language Client & Pyright Language Server (Web Socket)</a> (<ahref="./packages/examples/react_python.html">React Version</a>)<br>
0 commit comments