Use Language Servers with in-browser editors. Monorepo of editor agnostic packages and CodeMirror client.
Monorepo of packages related to LSP.
@qualified/vscode-jsonrpc-ws
MessageConnection
over WebSocket@qualified/vscode-jsonrpc-ww
MessageConnection
to Web Worker@qualified/lsp-connection
MessageConnection
wrapper for LSP messages@qualified/codemirror-workspace
Example with Rust Analyzer:
The styling definitely needs work, but the above shows:
prl
to println!
)Simple snippets are supported as well:
See examples/rust-analyzer to run this locally.
See examples/rust-analyzer-sync to run this locally with an ability to save the changes to disk.
See examples/web-worker for an example with simple JSON Language Server running in Web Worker. A live demo is also available at https://qualified.github.io/lsps/.
See examples/html-css-ts for a simple demo project with TypeScript + CSS + HTML editors.
lsp-ws-proxy
: WebSocketify any Language Server. lsp-ws-proxy -- langserver --stdio
synchronization
didOpen
didChange
willSave
willSaveWaitUntil
didSave
didClose
completion
insertText
additionalTextEdits
textEdit
InsertTextFormat.Snippet
documentation
command
tags
hover
signatureHelp
declaration
definition
typeDefinition
implementation
references
documentHighlight
documentSymbol
codeAction
codeLens
documentLink
colorProvider
formatting
rangeFormatting
onTypeFormatting
rename
foldingRange
selectionRange
publishDiagnostics
callHierarchy
applyEdit
workspaceEdit
didChangeConfiguration
didChangeWatchedFiles
symbol
executeCommand
workDoneProgress