LSP
Language Server Protocol support for Sublime Text that gives you IDE features.
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
- Bash
- C/C++
- C#
- CSS/LESS/SASS (SCSS only)
- D
- Dart
- Dockerfile
- Elixir
- Elm
- Erlang
- Flow (JavaScript)
- Fortran
- Go
- Haskell
- HTML
- Java
- JavaScript/TypeScript
- JSON
- Julia
- Kotlin
- LaTeX
- Lisp
- Lua
- PHP
- Polymer
- PowerShell
- Python
- R
- Reason
- Ruby
- Rust
- Scala
- Swift
- Terraform
- Vue (JavaScript)
- XML
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:
- The #lsp channel (join the SublimeHQ Discord first!)
- By searching or creating a new issue
- Search the old Gitter chat (for live chat join Discord instead)
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
- ❌ color picker #1291
- ✅ 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