@codingame/monaco-vscode-api
Advanced tools
Comparing version 1.68.3 to 1.68.4
{ | ||
"name": "@codingame/monaco-vscode-api", | ||
"version": "1.68.3", | ||
"version": "1.68.4", | ||
"private": false, | ||
@@ -5,0 +5,0 @@ "description": "VSCode public API plugged on the monaco editor", |
@@ -45,1 +45,24 @@ # @codingame/monaco-vscode-api · [![monthly downloads](https://img.shields.io/npm/dm/@codingame/monaco-vscode-api)](https://www.npmjs.com/package/@codingame/monaco-vscode-api) [![npm version](https://img.shields.io/npm/v/@codingame/monaco-vscode-api.svg?style=flat)](https://www.npmjs.com/package/@codingame/monaco-vscode-api) [![PRs welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/codingame/monaco-vscode-api/pulls) | ||
``` | ||
### History | ||
This project was mainly created to make the implementation of [monaco-languageclient](https://github.com/TypeFox/monaco-languageclient) more robust and maintainable. | ||
monaco-languageclient uses [vscode-languageclient](https://www.npmjs.com/package/vscode-languageclient) which was built to run inside a VSCode extension. VSCode extensions communicate with the editor via an [API](https://www.npmjs.com/package/@types/vscode) they can import into their code. | ||
[The VSCode api](https://code.visualstudio.com/api/references/vscode-api) exports: | ||
- Some functions to interact with the IDE ([language feature registrations](https://code.visualstudio.com/api/references/vscode-api#languages), [command execution](https://code.visualstudio.com/api/references/vscode-api#commands)...) | ||
- A lot of utility classes (Range, Position...) | ||
The first implementations of [monaco-languageclient](https://github.com/TypeFox/monaco-languageclient) were using a fake VSCode api implementation. The vscode-languageclient was hacked so the VSCode<->protocol object converters were mainly bypassed, so the fake VSCode api was receiving [Language Server Protocol](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/) objects. Then the objects were transformed using custom transformers into [Monaco](https://www.npmjs.com/package/monaco-editor) objects to communicate with the monaco api. | ||
This approach has some disadvantages: | ||
- There is a lot of code to transform LSP objects into Monaco objects | ||
- It's hard to follow the updates of VSCode and the language server protocol | ||
- It doesn't behave exactly the same as in VSCode | ||
With this library, it would be possible to plug vscode-languageclient directly on top of monaco, monaco-languageclient still helps to do so by: | ||
- Adding some tweaks to the VSCode LanguageClient (Removing unsupported features...) | ||
- Providing a default implementations of the required fallback services (`vscode/services`) | ||
- Providing some examples on how to build an app using it | ||
- Adding some tools (DisposableCollection) |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1305255
33441
67