qualified / lsps

Use Language Servers with in-browser editors. Monorepo of editor agnostic packages and CodeMirror client.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LSPs

Monorepo of packages related to LSP.

Project Status: WIP – Initial development is in progress, but there has not yet been a stable, usable release suitable for the public. CI License MIT code style: prettier

Packages

Demo

Example with Rust Analyzer:

demo-rust-analyzer

The styling definitely needs work, but the above shows:

  • Realtime diagnostics
  • Completion with items from the server
  • Fuzzy matching (e.g., prl to println!)
  • Completion items with Markdown docs
  • Completion items with icons for each kind
  • Hover information with Markdown docs

Simple snippets are supported as well:

demo-snippet-completion

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.

Tools

  • lsp-ws-proxy: WebSocketify any Language Server. lsp-ws-proxy -- langserver --stdio

Capabilities

Text Document

  • synchronization
    • didOpen ok
    • didChange ok
      • Full text change ok
      • Incremental text change ok
    • willSave meh
    • willSaveWaitUntil meh
    • didSave meh
    • didClose ok
  • completion
    • insertText ok
    • additionalTextEdits ok
    • textEdit ok
    • InsertTextFormat.Snippet meh
    • documentation meh
    • command no
    • tags no
  • hover meh
  • signatureHelp meh
  • Goto
    • declaration meh
    • definition meh
    • typeDefinition meh
    • implementation meh
  • references meh
  • documentHighlight ok
  • documentSymbol ok
  • codeAction no
  • codeLens no
  • documentLink no
  • colorProvider no
  • Formatting
    • formatting no
    • rangeFormatting no
    • onTypeFormatting no
  • rename no
  • foldingRange no
  • selectionRange no
  • publishDiagnostics meh
  • callHierarchy no

Workspace

  • applyEdit no
  • workspaceEdit no
  • didChangeConfiguration no
  • didChangeWatchedFiles meh
  • symbol no
  • executeCommand no

Window

  • workDoneProgress no

License

MIT

About

Use Language Servers with in-browser editors. Monorepo of editor agnostic packages and CodeMirror client.

License:MIT License


Languages

Language:TypeScript 96.0%Language:CSS 3.7%Language:JavaScript 0.3%