This survey was created to inform the debate over what unit ranges should use in the Language Server Protocol. The debate is occuring in issue #376. The protocol was updated in version 3.0 to clarify that "character" indexes are in UTF-16, however since UTF-16 is controversial many implementations continue to use other units.
Please send a PR if you know what unit (UTF-8, UTF-16, Codepoints, grapheme clusters) a given implementation uses.
unkown should be replaced with [**unit**](issue/relevant information)
and count should be updated.
- UTF-8: 10
- UTF-16: 11
- Codepoints: 7
- grapheme clusters: 1
- UTF-8: 6
- UTF-16: 8, Several UTF-16 servers would prefer UTF-8
- Codepoints: 4
- grapheme clusters: 0
- UTF-8: 4
- UTF-16: 3
- Codepoints: 3
- grapheme clusters: 1
note: Multiple implementations in the same repo or derived from a shared dependency are counted once.
List Dervied from langserver.org. If a implementation of the language server protocol is missing from this list please submit a PR here and github.com/langserver/langserver.github.io.
- unknown ActionScript3 Josh Tynjala BowlerHatLLC/vscode-nextgenas/tree/master/language-server
- unknown Apache Camel Camel Tooling camel-tooling/camel-language-server
- UTF-8 Ballerina ballerina.io ballerina-platform/ballerina-lang/tree/master/language-server
- unknown Bash Mads Hartmann mads-hartmann/bash-language-server
- UTF-16 C# OmniSharp OmniSharp/omnisharp-node-client/blob/master/languageserver
- unknown C# CXuesong CXuesong/LanguageServer.NET
- UTF-16, UTF-8 C / C++ LLVM Team clangd/clangd
- [UTF-8] C / C++ Jacob Dufault cquery-project/cquery
- UTF-8 C / C++ MaskRay MaskRay/ccls
- UTF-16 Clojure snoe snoe/clojure-lsp
- UTF-16 CSS/LESS/SASS Microsoft Microsoft/vscode/tree/master/extensions/css
- unknown CSS/LESS/SASS DeltaEvo vscode-langservers/vscode-css-languageserver-bin
- UTF-16 D WebFreak001 Pure-D/serve-d
- UTF-16 D Laurent Tréguier d-language-server/dls
- unknown Dart Nate Bosch natebosch/dart_language_server
- unknown Dockerfile Remy Suen rcjsuen/dockerfile-language-server-nodejs
- unknown DreamMaker SpaceManiac SpaceManiac/SpacemanDMM/tree/master/src/langserver
- unknown No arbitrary code execution2
- unknown Erlang Erlang/OTPand Vlad Dumitrescu erlang/sourcer
- unknown Elixir Jake Becker JakeBecker/elixir-ls
- unknown Fortran Chris Hansen hansec/fortran-language-server
- UTF-8 Gauge Gauge getgauge/gauge
- unknown GLSL Sven-Hendrik Haase svenstaro/glsl-language-server
- Codepoints Go Sourcegraph sourcegraph/go-langserver
- unknown No arbitrary code execution2
- unknown Files extension3
- unknown SymbolDescriptor extension4
- unknown GraphQL Facebook GraphQL graphql/graphql-language-service
- unknown Groovy Palantir palantir/groovy-language-server
- Codepoints, soon UTF-16 Haskell Alan Zimmerman haskell/haskell-ide-engine
- unknown Haxe Haxe Foundation vshaxe/haxe-language-server
- UTF-16 HTML Microsoft Microsoft/vscode/tree/master/extensions/html
- unknown Imandra Protocol Language Aesthetic Integration https://AestheticIntegration/ipl-vscode
- UTF-16 Java Eclipse Foundation, Red Hat, Microsoft eclipse/eclipse.jdt.ls
- unknown Java georgewfraser georgewfraser/vscode-javac
- unknown JavaScript Sourcegraph sourcegraph/javascript-typescript-langserver
- unknown No arbitrary code execution2
- unknown Files extension3
- unknown SymbolDescriptor extension4
- unknown JavaScript (Flow) Flowtype flowtype/flow-for-vscode
- UTF-16 JSON Microsoft Microsoft/vscode/tree/master/extensions/json
- unknown JS + PHP + Python SonarSource SonarSource/sonarlint-core
- Codepoints Julia David Anthoff JuliaEditorSupport/LanguageServer.jl
- unknown Kotlin fwcd fwcd/KotlinLanguageServer
- unknown LaTeX Eric Förster efoerster/texlab
- unknown Lua Alloyed Alloyed/lua-lsp
- unknown Lua tangzx EmmyLua/EmmyLua-LanguageServer
- unknown OCaml + ReasonML Darin Morrison freebroccolo/ocaml-language-server
- unknown PHP Felix Becker felixfbecker/php-language-server
- unknown No arbitrary code execution2
- unknown Files extension3
- unknown SymbolDescriptor extension4
- unknown PHP Tom Gerrits gitlab.com/Serenata/Serenata
- unknown No arbitrary code execution2
- unknown Has custom extensions
- unknown PHP Hvy Industries HvyIndustries/crane/blob/master/server
- unknown PureScript Nicholas Wolverson nwolverson/purescript-language-server
- unknown Python Microsoft Microsoft/python-language-server
- unknown Python Sourcegraph https://sourcegraph/python-langserver
- unknown Automatic dependency management1
- unknown No arbitrary code execution2
- unknown Files extension3
- unknown SymbolDescriptor extension4
- unknown Python Palantir palantir/python-language-server
- unknown R REditorSupport REditorSupport/languageserver
- unknown Ruby Fred Snyder castwide/solargraph
- Codepoints Rust Nick Cameron and the Rust community rust-lang-nursery/rls
- UTF-16 Aleksey Kladov rust-analyzer
- unknown Automatic dependency management1
- unknown Scala Iulian Dragos dragos/dragos-vscode-scala
- unknown Scala Scalameta scalameta/metals
- unknown SPARQL Stardog Union stardog-union/stardog-language-servers/tree/master/packages/sparql-language-server
- unknown No arbitrary code execution2
- UTF-16 Swift & C-family Apple Inc apple/sourcekit-lsp
- unknown Turtle Stardog Union stardog-union/stardog-language-servers/tree/master/packages/turtle-language-server
- unknown No arbitrary code execution2
- unknown TypeScript Sourcegraph sourcegraph/javascript-typescript-langserver
- unknown Automatic dependency management1
- unknown No arbitrary code execution2
- unknown Files extension3
- unknown SymbolDescriptor extension4
- unknown XML IBM microclimate-devops/xml-language-server
- unknown XML Red Hat and Angelo ZERR angelozerr/lsp4xml XML Schema validation/completion, Foldings, Rename element, Formatting, Document Link, Extensible to add custom completion, hover, etc
- unknown YAML Red Hat redhat-developer/yaml-language-server
- unknown YANG TypeFox yang-tools/yang-lsp
- unknown Xtext (Any Language) TypeFox eclipse/xtext-core
- UTF-8 Crystal Ryan L. Bell and contributors crystal-lang-tools/scry
- unknown Elm Elm Tooling elm-tooling/elm-language-server
- unknown reStructuredText Lex Li https://lextm/restructuredtext-antlr
- unknown Ruby Fumiaki MATSUSHIMA mtsmfm/language_server-ruby
- unknown TypeCobol TypeCobol Team TypeCobol Language Server
- unknown Eclipse LSP4E Eclipse git.eclipse.org/c/lsp4e/lsp4e.git
- unknown Eclipse Che Eclipse, Codenvy eclipse/che/
- UTF-8 Emacs Vibhav Pant emacs-lsp/lsp-mode
- Codepoints, UTF-16 disabled by default Emacs João Távora joaotavora/eglot
- unknown IntelliJ / JetBrains IDEs IntelliJ LSP Community intellij-lsp/intellij-lsp-plugin
- Codepoints Kakoune Ruslan Prokopchuk ul/kak-lsp
- unknown Moonshine IDE Prominic prominic/Moonshine-IDE
- UTF-16 VSCode Microsoft Microsoft/VSCode
- Codepoints vim/neovim Nate Bosch natebosch/vim-lsc
- UTF-8; soon maybe UTF-16 vim/neovim Prabir Shrestha prabirshrestha/vim-lsp
- UTF-8 vim/neovim Junfeng Li autozimu/LanguageClient-neovim
- UTF-8 vim/neovim w0rp w0rp/ale
- UTF-16 vim/neovim Qiming zhao neoclide/coc.nvim
- Codepoints Sublime Text 3 Tom van Ommeren tomv564/LSP
- UTF-16 MS Monaco Editor TypeFox TypeFox/monaco-languageclient
- UTF-16 ycmd ycmd authors Valloric/ycmd
- unknown Acme Fazlul Shahriar https://fhs/acme-lsp
- unknown Atom GitHub atom/atom-languageclient
- unknown CodeMirror Wylie Conlon wylieconlon/lsp-editor-adapter
- grapheme clusters Emacs Corey Richardson sourcegraph/emacs-lsp
- UTF-16; vscode dependency Theia Theia IDE theia-ide/theia
- unknown neovim TJ DeVries tjdevries/nvim-langserver-shim
- unknown Spyder IDE Spyder IDE Dev Team spyder-ide/spyder
- unknown Oni Oni onivim/oni
- unknown Qt Creator Qt Project code.qt.io/cgit/qt-creator