{"library":"monaco-languageserver-types","title":"Monaco Language Server Types Converter","description":"monaco-languageserver-types provides a utility layer for converting data structures between the Language Server Protocol (LSP) types and the Monaco Editor's native types. This is crucial for integrating language servers, which typically communicate using LSP, with the Monaco Editor frontend. The current stable version is 0.4.0, with a release cadence that appears to be driven by feature additions and bug fixes, often addressing compatibility with newer LSP specifications or Monaco Editor versions. Its key differentiator is providing a comprehensive, idiomatic TypeScript API for bidirectional type mapping, simplifying the development of language features within Monaco by abstracting away manual type transformations and reducing boilerplate code for common LSP operations like diagnostics, completion, and hover information.","language":"javascript","status":"active","last_verified":"Sun Apr 19","install":{"commands":["npm install monaco-languageserver-types"],"cli":null},"imports":["import * as toMonaco from 'monaco-languageserver-types/lib/toMonaco'","import * as fromMonaco from 'monaco-languageserver-types/lib/fromMonaco'","import { toCodeAction } from 'monaco-languageserver-types/lib/toMonaco'"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import * as monaco from 'monaco-editor';\nimport type * as lsp from 'vscode-languageserver-types';\nimport { toMonaco, fromMonaco } from 'monaco-languageserver-types';\n\n// Assume 'monaco' is globally available or correctly imported if using ESM\n// This example simulates converting LSP Diagnostics to Monaco Markers\n\nconst lspDiagnostic: lsp.Diagnostic = {\n  range: {\n    start: { line: 0, character: 7 },\n    end: { line: 0, character: 10 }\n  },\n  message: \"'foo' is undefined\",\n  severity: 1, // lsp.DiagnosticSeverity.Error\n  code: \"TS2304\",\n  source: \"typescript\"\n};\n\nconst monacoMarker: monaco.editor.IMarkerData = toMonaco.toMarkerData(lspDiagnostic, monaco.Uri.parse('file:///main.ts'));\n\nconsole.log('LSP Diagnostic:', lspDiagnostic);\nconsole.log('Monaco Marker:', monacoMarker);\n\n// Example of converting Monaco Position back to LSP Position\nconst monacoPosition: monaco.Position = new monaco.Position(1, 5);\nconst lspPosition: lsp.Position = fromMonaco.fromPosition(monacoPosition);\n\nconsole.log('Monaco Position:', monacoPosition.toString());\nconsole.log('LSP Position:', lspPosition);\n\n/* Output will be similar to:\nLSP Diagnostic: { range: { start: [Object], end: [Object] }, message: \"'foo' is undefined\", severity: 1, code: \"TS2304\", source: \"typescript\" }\nMonaco Marker: { startLineNumber: 1, startColumn: 8, endLineNumber: 1, endColumn: 11, message: \"'foo' is undefined\", severity: 8, code: \"TS2304\", source: \"typescript\" }\nMonaco Position: (1,5)\nLSP Position: { line: 0, character: 4 }\n*/","lang":"typescript","description":"Demonstrates converting an LSP Diagnostic to a Monaco Editor Marker and a Monaco Position back to an LSP Position using the library's utility functions.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}