/LSP

Client implementation of the Language Server Protocol for Sublime Text

Primary LanguagePythonMIT LicenseMIT

LSP

License GitHub release Github Action Coverage Status Documentation SublimeHQ Discord

Language Server Protocol support for Sublime Text that gives you IDE features.

diagnostics screen-shot

Installation

Stable Version

Open the command palette and run Package Control: Install Package, then select LSP.

Development Version

Clone this repository into your Packages directory. Open the command palette and run Package Control: Satisfy Dependencies.

Getting started

Follow the installation steps for a language server.

Enable the server by running LSP: Enable Language Server from the command palette.

Open a document supported by the language server. LSP should report the language server starting in the status bar.

Documentation is available at LSP.readthedocs.io.

Available Languages

See Language Server Protocol for more available implementations. Please create issues/pull requests so we can get support for more languages.

Customisation of the popups

LSP uses mdpopups to display the popup. You can override its style by creating a Packages/User/mdpopups.css file. See the mdpopups documentation for more details.

Getting help

If you have any problems, see the troubleshooting guide for tips and known limitations. If the documentation cannot solve your problem, you can look for help in:

Capabilities

Text Document Capabilities

  • ✅ synchronization
    • ✅ didOpen
    • ✅ didChange
      • ✅ Full text sync
      • ✅ Incremental text sync
    • ✅ willSave
    • ✅ willSaveWaitUntil
    • ✅ didSave
      • ✅ Include text
    • ✅ didClose
  • ✅ completion
    • ✅ insertText
    • ✅ textEdit
    • ❌ prefix filter textEdit
    • ✅ documentation (both static and from completionItem/resolve)
    • ✅ Run command after inserting completion
    • ❌ insertReplaceEdit variant
  • ✅ hover
  • ✅ signatureHelp
    • ❌ context
  • ✅ declaration
    • ✅ link support
  • ✅ definition
    • ✅ link support
  • ✅ typeDefinition
    • ✅ link support
  • ✅ implementation
    • ✅ link support
  • ✅ references
  • ✅ documentHighlight
  • ✅ documentSymbol
  • ✅ codeAction
    • ✅ resolve
  • ✅ codeLens (only when backed by a helper package)
  • ❌ documentLink
  • ✅ colorProvider
  • ✅ formatting
  • ✅ rangeFormatting
  • ❌ onTypeFormatting
  • ✅ rename
  • ✅ publishDiagnostics
  • ❌ foldingRange sublimehq/sublime_text#3389
  • ✅ selectionRange
  • ❌ semanticHighlighting #887, sublimehq/sublime_text#817
  • ❌ callHierarchy

Workspace Capabilities

  • ✅ applyEdit
  • ✅ workspaceEdit
    • ✅ documentChanges
    • ❌ resourceOperations
    • ❌ failureHandling
  • ✅ didChangeConfiguration
  • ❌ didChangeWatchedFiles #892, sublimehq/sublime_text#2669
  • ✅ symbol
  • ✅ executeCommand

Window Capabilities

  • ✅ workDoneProgress
    • ✅ create
    • ❌ cancel
  • ✅ showMessage request additionalPropertiesSupport

Dynamic Registration

✅ Fully implemented