* Changelog
** 9.0.0
  * Add language server config for QML (Qt Modeling Language) using qmlls.
  * Add new configuration options for lsp-html. Now able to toggle documentation hovers. Custom data is no longer experimental, and is now a vector.
  * Add support for RPM spec files
  * Add support for installing lsp dependencies via Cargo.
  * Fix tramp support issues (see [[https://github.com/emacs-lsp/lsp-mode/pull/4204][#4204]])
  * Add Cypher support.
  * Add Mojo 🔥 support
  * Add lsp-solidity, using the implementation from NomicFoundation
  * Change rust-analyzer base URL to be github.com/rust-lang/rust-analyzer, rather than rust-analyzer/rust-analyzer.
  * Add support for wgsl using [[https://github.com/wgsl-analyzer/wgsl-analyzer][wgsl-analyzer]]
  * Add [[https://github.com/wader/jq-lsp][jq-lsp]]
  * Add architecture triples for [[https://github.com/WhatsApp/erlang-language-platform][erlang-language-platform]] file downloads, to support macos on ARM and X86.
  * Add semantic token support for [[https://github.com/WhatsApp/erlang-language-platform][erlang-language-platform]] in lsp-erlang client.
  * Update [[https://github.com/WhatsApp/erlang-language-platform][erlang-language-platform]] download file names to match new upstream names.
  * Add [[https://github.com/WhatsApp/erlang-language-platform][erlang-language-platform]] support in lsp-erlang client.
  * Add [[https://github.com/elixir-tools/credo-language-server][credo-language-server]]
  * Add support for clojure-ts-mode in clojure-lsp client
  * terraform-ls now supports prefill required fields and the ability to validate on save.
  * Ignore =.terraform= and =.terragrunt-cache= directories
  * ~lsp-bash~ now supports ~bash-ts-mode~, ~ebuild-mode~ and ~envrc-file-mode~
  * ~lsp-ruby-syntax-tree~, ~lsp-solargraph~, ~lsp-sorbet~, ~lsp-steep~, and ~lsp-typeprof~ now support ~ruby-ts-mode~
  * Drop support for emacs 26.1 and 26.2
  * Added support for ~textDocument/linkedEditingRange~ via
    ~lsp-iedit-linked-ranges~ and ~lsp-evil-multiedit-ranges~ (see [[https://github.com/emacs-lsp/lsp-mode/pull/3166][#3166]])
  * Add [[https://github.com/graphql/graphiql/tree/main/packages/graphql-language-service-cli#readme][GraphQL Language Server]] for autocomplete graphql query
  * Added ~lsp-auto-touch-files~. When it is non-nil it will auto-create the
    file on the disk before sending ~textDocument/didOpen~.
  * Add ~lsp-log-io-allowlist-methods~ for debugging purposes.
  * Enable `lsp-lens-enable` by default.
  * Add TOML support.
  * Add Nginx support.
  * Disable noisy features from ~lsp-ui~: ~lsp-ui-sideline-show-code-actions~ and ~lsp-ui-doc-show-with-cursor~.
  * Fix org mode support. #3258
  * Add [[https://github.com/remarkjs/remark-language-server][remark-language-server]]
  * Deprecate unified-languge-server in favor of remark-language-server
  * Made it possible to disable ~lsp-response-timeout~ entirely.
  * Fix csharp-ls startup on emacs@master (and emacs@emacs-28 on macOS) due to a switch posix_spawn and not setting proper sigmask on child processes.
  * Fix incorrect ~lsp-fsharp~ defcustom types.
  * Add ~lsp-fsharp-generate-binlog~.
  * Update installation mechanism for fsautocomplete (lsp-fsharp) to use ~dotnet tool install -g~.
  * Fix fsautocomplete (lsp-fsharp) startup on emacs@master (and emacs@emacs-28 on macOS) due to
    a switch ~posix_spawn~ and not setting proper sigmask on child processes.
  * Add TypeProf support.
  * Add Ansible support.
  * Disable ~lsp-steep-use-bundler~ by default.
  * Add [[https://github.com/idris-community/idris2-lsp][idris2-lsp]]
  * Add [[https://github.com/aca/emmet-ls][emmet-ls]]
  * Support all ~initializationOptions~ in ~typescript-language-server~
  * Update rust-analyzer's inlay hint protocol support.
  * Add support for ~typescript-language-server~’s inlay hints.
  * Add support for ~workspace/willRenameFiles~ and ~workspace/didRenameFiles~.
  * Improve project root import to read specific keys instead of any events.
  * Support ~labelDetails~ of LSP Specification 3.17
  * Add Gleam support
  * Drop deprecated rust-analyzer variable lsp-rust-analyzer-import-merge-behaviour
  * Added run and debug code lenses to ~lsp-kotlin~
  * Add setting UPDATE_EXPECT=1 when running `expect!` tests ~lsp-rust~
  * Add ~lsp-use-workspace-root-for-server-default-directory~.
  * Add [[https://github.com/artempyanykh/marksman][marksman]] support.
  * ~lsp-find-references~ to include declaration by default (configurable with ~lsp-references-exclude-definition~)
  * Add [[https://github.com/ruby-syntax-tree/syntax_tree][syntax_tree]] support for Ruby code.
  * ~lsp-organize-imports~ no longer prompts for an action, even if ~lsp-auto-execute-action~ is nil.
  * Add [[https://github.com/mint-lang/mint][mint-lang]] support.
  * Add ~lsp-sorbet-as-add-on~ variable to allow running the Sorbet server as an add-on alongside Solargraph or others
  * Add [[https://github.com/nikeee/dot-language-server][dot-language-server]] (/a.k.a./ Graphviz) support.
  * Add [[https://github.com/FractalBoy/perl-language-server][PLS]] support (additional sever for Perl).
  * Fix ~lsp-avy-lens~ when ~avy-style~ is ~'de-bruijn~ or ~'words~ #3554
  * Fix ~lsp-avy-lens~ when ~lsp-lens-place-position~ position is ~end-of-line~
  * Add ~lsp-clojure-trace-enable~ variable.
  * Add some support for rust-analyzer semantic token modifiers.  Highlights mutable and reference variables.
  * Update version for ~lsp-xml~ to 0.21.0, adding custom variables
    for new formatting options.
  * Changes variable ~lsp-xml-validation-schema~ to be an alist rather
    than a boolean.
  * Adds ~lsp-xml-preferences-quote-style~ as a replacement for
    obsolete ~lsp-xml-format-quotes~.
  * Add [[https://github.com/oxalica/nil][nil]] support (additional server for Nix)
  * Add [[https://github.com/johnsoncodehk/volar/pull/1916][Volar 1.0]] support, refactor vue-language-server ~initializationOptions~, and remove multi server that is no longer needed.
  * Ensure that incomplete completions only trigger when retriggering from the same completion session #3028
  * ~lsp-kotlin~ now supports ~kotlin-ts-mode~
  * ~lsp-elixir~ now supports ~elixir-ts-mode~ and ~heex-ts-mode~
  * Update Magik
  * Add ~lsp-clients-typescript-prefer-use-project-ts-server~ custom
    variable to try to use the project's tsserver.js instead of the
    one installed by lsp-mode.
  * Add [[https://github.com/charliermarsh/ruff-lsp][ruff-lsp]] support (additional server for Python).
  * Update documentation of Vue3 install server
  * Add GLSL support.
  * Move inlay hint support in core from ~lsp-rust~ and ~lsp-javascript~. Use
    ~lsp-inlay-hint-enable~ instead of ~lsp-rust-analyzer-server-display-inlay-hints~ and
    ~lsp-javascript-server-display-inlay-hints~
  * Add ShaderLab support.
  * Remove custom variable ~lsp-inlay-hint-enum-format~ since LSP Specification 3.17 only has ~type~ and
    ~parameter~ hint kinds.
  * Add [[https://semgrep.dev][Semgrep]] support
  * Add AWK language server support.
  * Add support for ~scala-ts-mode~.
  * Drop support for emacs 26.3
  * Add [https://github.com/rubocop/rubocop][RuboCop built-in language server]] for linting and formatting Ruby code.
  * Add Move language server support.
  * Add mdx support using [[https://github.com/mdx-js/mdx-analyzer/tree/main/packages/language-server][mdx-language-server]]
  * Add golangci-lint add-on client using [[https://github.com/nametake/golangci-lint-langserver][golangci-lint-langserver]]
  * Add buf/protobuf support via [[https://github.com/bufbuild/buf-language-server][bufls]]
  * Add Assembly Language support.
  * Add Autotools support
  * Add Jsonnet support
  * Add support for ~ada-ts-mode~.
  * Allow customizing Ada semantic token and token modifier faces.
  * Add Hylang support.
  * Add support for clojure-ts derived modes.
  * Add support for installing Ada Language Server.
  * Add Nushell support
  * Add [[https://docs.trunk.io][Trunk]] support
  * Add Cucumber support.
  * Add COBOL support.
  * Add Common Lisp support.
  * Add YANG support using TypeFox/yang-lsp Server.

** Release 8.0.0
  * Add ~lsp-clients-angular-node-get-prefix-command~ to get the Angular server from another location which is still has ~/lib/node_modules~ in it.
  * Set ~lsp-clients-angular-language-server-command~ after the first connection to speed up subsequent connections.
  * Add ~lsp-sql-execute-paragraph~ to execute the current paragraph (like ~sql-send-paragraph~).
  * Breaking change: bindings for commands under ~s~ (like ~lsp-workspace-shutdown~) were moved under ~w~ for better compatibility with =Spacemacs=
  * removed ~lsp-print-performance~
  * Add support for insert/replace when performing completion. When using
    ~company~ pressing ~C-u RET~ will perform the alternative action (the
    default is replace, but can be changed).
  * Add ~lsp-after-apply-edits-hook~ that run after every workspace edit is applied.
  * Safe renamed ~lsp-diagnose~ to ~lsp-doctor~.
  * Add ~lsp-modeline-code-actions-segments~ for a better customization.
  * Add [[https://github.com/sumneko/lua-language-server][Lua Language Server]], [[https://github.com/Alloyed/lua-lsp][Lua-LSP]] and improve EmmyLua.
  * Add configuration settings for elixir-ls.
  * Add Nix support.
  * Add Racket support.
  * Provided automatic installers for `lsp-clojure` (`clojure-lsp`).
  * Provided automatic installers for clangd.
  * Added ~lsp-modeline-workspace-status-mode~ and option to disable it via ~lsp-modeline-workspace-status-enable~.
  * Automatically download [[https://github.com/eclipse/lemminx][XML language server Lemminx]]
  * Add Vala support.
  * Add [[https://github.com/sorbet/sorbet][Sorbet Language Server]] for typechecking Ruby code.
  * Add Elixir test lenses support.
  * Enable headerline breadcrumb by default
  * Add [[https://github.com/soutaro/steep][Steep Language Server]] for typechecking Ruby code.
  * Rename semantic highlighting -> semantic tokens.
  * Add [[https://github.com/phpactor/phpactor][Phpactor Language server]]
  * Add ~lsp-headerline-breadcrumb-icons-enable~ to disable breadcrumb icons.
  * Add ActionScript support.
  * Add ~iedit~ integration (=documentHighlights=)
  * Add an interactive =lsp-clangd-find-other-file= method that uses the clangd extension to return the corresponding header/cpp file from cpp/header file respectively.
  * Add support for [[https://deno.land/][Deno language server]].
  * Add ~lsp-dired-mode~ - integration between [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Dired.html][dired]] and ~lsp-mode~
  * Add Grammarly support.
  * Add D support.
  * Add Zig support.
  * Add an interactive ~lsp-rust-analyzer-reload-workspace~ function that reloads the Rust-Analyzer workspace from Cargo.toml
  * Rename ~lsp-rust-analyzer-cargo-load-out-dirs-from-check~ to ~lsp-rust-analyzer-cargo-run-build-scripts~ to align with upstream.
  * Allow customization of ~lsp-file-watch-ignored-directories~ and ~lsp-file-watch-ignored-files~ at the root of an lsp workspace.
  * Add client for markdown language server (called [[https://github.com/unifiedjs/unified-language-server][unified-language-server]])
  * Add client for SystemVerilog language server (called [[https://github.com/imc-trading/svlangserver]])
  * Add client for python-lsp-server, pylsp (https://github.com/python-lsp/python-lsp-server)
  * Deprecate the Palantir Python language server, pyls.
  * Add 2 rust-analyzer LSP extension function ~lsp-rust-analyzer-related-tests~ and
    ~lsp-rust-analyzer-open-cargo-toml~
  * Work around bug in NPM versions 7.0.0 through 7.4.1 that prevented ~lsp-install-server~ from working for NPM-based language servers.
  * Add ~lsp-lens-place-position~ with option to place code lens at end of line as default.
  * Add LanguageTool support.
  * Add Beancount support.
  * Add Nix language server support.
  * Update the ESLint server to 2.1.23
  * Add ~lsp-eslint-warn-on-ignored-files~ and ~lsp-eslint-rules-customizations~
    options to the ESLint client
  * Change interface for configuring ESLint code actions - see documentation of
    ~lsp-eslint-code-action-disable-rule-comment~ and
    ~lsp-eslint-code-action-show-documentation~ for details
  * Add interactive ~lsp-rust-analyzer-move-item-up~ and ~lsp-rust-analyzer-move-item-down~ functions to move Rust items / statements
  * Fix memory leak when handling server response. #3062
  * Improve support for SemanticTokens adding support for delta and range semantic tokens.
  * Allow override specific semantic tokens faces per client.
  * Mention new lsp-mode integration package ~consult-lsp~.
  * Reorganized lsp-mode code moving features and clients to separated files. #2067
  * Add support for signatureHelp using ~posframe~. #1999
  * Add ~iedit~ integration. #2478
  * Add client for Verible SystemVerilog language Server ([[https://github.com/chipsalliance/verible]])

** Release 7.0.1
  * Introduced ~lsp-diagnostics-mode~.
  * Safe renamed ~lsp-flycheck-default-level~ -> ~lsp-diagnostics-flycheck-default-level~
  * Safe renamed ~lsp-diagnostic-package~ -> ~lsp-diagnostics-provider~
  * Dropped support for ~company-lsp~, the suggested provider is ~company-capf~.
  * Moved completion features to ~lsp-completion.el~
  * Safe renamed ~lsp-prefer-capf~ -> ~lsp-completion-provider~
  * Safe renamed ~lsp-enable-completion-at-point~ -> ~lsp-completion-enable~
** Release 7.0
  * Support for new language server - Shttps://github.com/lighttiger2505/sqls (thanks to @v2okimochi)
  * Provided automatic installers for elp/css/bash/purescript(thanks to @kiennq)
  * Configurable Rust Analyzer inlay face via ~lsp-rust-analyzer-inlay-face~.
  * Add ~lsp-headerline-breadcrumb-mode~ which shows a breadcrumb with the document symbols on headerline when enabled.
  * Add ~lsp-modeline-code-actions-mode~ which shows code actions on modeline when enabled.
  * Support for Theia-based semantic highlighting has been removed in favor of the semanticTokens protocol specified by LSP 3.16. To enable it, set ~lsp-enable-semantic-highlighting~ to ~t~.
  * ~lsp-metals~ moved into a separate repo https://github.com/emacs-lsp/lsp-metals
  * Breaking change: use alist instead of hast-tables for =lsp-gopls-env= and =lsp-yaml-schemas=.
  * Add =lsp-gopls-codelens= defcustom to configure codelenses used for golang.
  * Added =lsp-diagnose= to help users verify their performance related settings
  * Created new website https://emacs-lsp.github.io/lsp-mode/ (thanks to @ericdallo)
  * Implemented special handling of Clangd echo area.
  * Added setting to disable additional text edits (=lsp-completion-enable-additional-text-edit=).
  * Added setting to disable text detail (=lsplsp-completion-show-detail=).
  * Add serenata language server support (thanks to @Sasanidas)
  * Various capf improments - better handling of partial results, support for try-completions, improved responsibility, optimized filtering/sorting, etc.
  * Remove Elixir JakeBecker support (no longer supported)
  * Support semantic tokens protocol (thanks to @sebastiansturm)
  * Improved flycheck integration for better performance.
  * Implemented client side bindings for the protocol.
  * =Fixup= Ignore timeouts from =willSaveWaitUntil=
  * Implemented org-mode support (see https://github.com/emacs-lsp/lsp-mode/blob/master/docs/page/lsp-org.md)
  * Removed support for Theia semantic highlighting protocol
  * Performed several fixes to make sure lsp-mode is working fine with Emacs 28 native compilation.
  * Add modeline code actions support (thanks to @ericdallo). Enabled by
    default, use =lsp-modeline-code-actions-enable= to disable it.
  * Migrated to github actions from travis.
  * Add breadcrumb on headerline (thanks to @ericdallo). Disabled by default,
    can be enabled via =lsp-headerline-breadcrumb-enable=
  * Migrated lsp-mode to use plists(thanks to @yyoncho, @kiennq and @ericdallo).
  * lsp-diagnostics-modeline: perf improvement (thanks to @kiennq)
** Release 6.3
  * Implemented ~company-capf~ integration. ~company-lsp~ is no longer supported.
  * Dropped support for dart language server in favour of dart SDK(breaking)
  * Added verilog support for LSP using hdl-checker
  * Implemented call hierarchy support (available in ~lsp-treemacs~)
  * Implemented support for ESLint language server.
  * ocmalmerlin-lsp moved to ocaml-lsp-server(breaking)
  * Added New VHDL language server https://github.com/kraigher/rust_hdl#configuration
  * Add Nim language server integration
  * Implement automatic downloading facilities and implemented auto-download for ~typescript-language-server~, ~javascript-typescript-stdio~ and ~json-language-server~.
  * Implement metals decoration protocol
  * Send metals/didFocusTextDocument notification on buffer change
  * Add default keybindings and ~which-key~ integration
  * Add support for Dhall language server
  * Implemented debug adapter protocol support for metals
  * Add CMake language server integration
  * Add rust-analyzer runnables support
  * Implemented rust-analyzer inlay hints
  * Support pyenv for pyls
  * Add clang-tidy specific Flycheck error explainer for the lsp checker
  * Improve lsp-mode completion performance by suppressing non completion related features when completion is active.
  * lsp-json: Enable formatter provider
  * Accommodate the new :end-column and :end-column from flycheck
  * Implement status bar for diagnostics ~lsp-diagnostics-modeline-mode~
  * Auto install of the ~html-language-server~
  * Flycheck support for diagnostic tags (3.15 spec).
  * Adding support for GDScript language server
  * used view mode for metals doctor buffer
  * add texlab as tex LSP server
  * Started new set of integration tests without using ecukes
  * Support "only" param when requesting code actions
  * Add Perl-LanguageServer support
  * add support robot-framework language server.
  * Implement deferred semantic highlighting
  * Change default transport for erlang_ls to stdio
  * dart language server moved into separate repo https://github.com/emacs-lsp/lsp-dart
  * Activate flow language server if there is flow tag in file or .flowconfig in project
  * Add purescript-language-server (#1596)
  * Process the $/progress messages from LSP 3.15
  * Display the first line of MarkupContent in eldoc (#1607)
  * Perform willSaveWaitUntil synchronously and with shorter timeout
  * Display images when rendering markdown(useful for latex language servers).
  * Increase ~lsp-idle-delay~ to 0.5
  * Support bash language server glob pattern option (#1594)
  * Use pagebreaks for ~lsp-describe-thing-at-point~
  * lsp-mode: Eliminate quadratic-time index-building for imenu. (#1616)
** Release 6.2
  * Support dynamic rename registration
  * Add basic support for style semantic highlighting
  * Added Haxe language server integration
  * Add C#-support via Roslyn.
  * Add emmy lua support
  * Enable plugins in typescript language server.
  * 1079 Provide support for Ada Language server
  * Implement right click support in =lsp-mode= buffers.
  * Added built-in support for =Rust Analyzer=.
  * Added support for HDL Checker server to lsp-vhdl
  * Added support for Terraform language server.
  * Added support for R language server (#1182)
  * Added support for passing environment variables to language servers (#1184)
  * Speedup lsp-mode's JSONRPC processing (~2 times)
  * Add cancel-token to lsp-request-async
  * Implement unified way to handle recurring lsp features
  * Added support for powershell language server.
  * Implemented inlay hints for =Rust Analyzer= (thanks to =brotzeit=).
  * Implemented automatic installation for C# language server.
  * Reimplemented =textDocument/signatureHelp= - now the signature is displayed in =lv= buffer.
  * Cancel sync requests when presssing =C-g= during the request.
  * Use =c-basic-offset= when in =cc-mode=.
  * Add support for Crystal via scry (#1218).
  * Implement =textDocument/documentColor= support.
** Release 6.1
*** Support for new languages/language servers:
   * [[https://github.com/fwcd/KotlinLanguageServer][Kotlin Language Server]] (Thanks to Jon Carr)
   * [[https://github.com/golang/go/wiki/gopls][gopls]] Language Server for Go
   * [[https://github.com/angelozerr/lsp4xml][XML Language Server (lsp4xml)]]
   * Hack (using [[https://docs.hhvm.com/hhvm/][HHVM]])
   * [[http://intelephense.net/][Intelephense]] for PHP
   * [[https://github.com/snoe/clojure-lsp][clojure-lsp]] for Clojure/ClojureScipt (Thanks to Dario Benedek Fazekas)
   * [[https://github.com/elm-tooling/elm-language-server][elmLS]] for Elm (Thanks to Daniel-V)
   * [[https://github.com/fsharp/FsAutoComplete][FsAutoComplete]] for F# (Thanks to Reed Mullanix)
   * Added =Erlang= support via [[https://github.com/erlang-ls/erlang_ls][erlang_ls]]
   * Added =Dockerfile= support via [[https://github.com/rcjsuen/dockerfile-language-server-nodejs][dockerfile-language-server-nodejs]]
*** New logging options
   - =lsp-mode= now logs to buffer =*lsp-log*=, instead of =*Messages*=. This
     can be controlled with the variable =lsp-log-max= (Thanks to Thomas Fini Hansen).
   - If =lsp-print-performance= is non-nil, =lsp-mode= will log a corresponding
     performance trace to =*lsp-log*= for every message to and from the server.
   - The variable =lsp-print-io=, when non-nil will cause =lsp-mode= to log
     all messages to and from the server to a unique =*lsp-io*= buffer for every
     project root. These logs can be saved to a file and viewed using the
     [[https://microsoft.github.io/language-server-protocol/inspector/][LSP Inspector]].

*** LSP Methods
   - Add support for [[https://microsoft.github.io/language-server-protocol/specification#textDocument_prepareRename][textDocument/prepareRename]]. If supported by the language
     server, all renaming operations will be tested for validity.
   - Add support for [[https://microsoft.github.io/language-server-protocol/specification#workspace_didChangeWatchedFiles][file watches]].
   - Add support for [[https://microsoft.github.io/language-server-protocol/specification#textDocument_codeAction][CodeAction literals]].
   - Add API level support for [[https://microsoft.github.io/language-server-protocol/specification#textDocument_foldingRange][folding ranges]]. Folding support for [[https://github.com/gregsexton/origami.el][origami.el]]
     support is implemented by package [[https://github.com/emacs-lsp/lsp-origami][lsp-origami]].
   - Support [[https://microsoft.github.io/language-server-protocol/specification#textDocument_documentLink][document links]]. This can be controlled using the variable
     =lsp-enable-links=.
   - Support resource operations (edits sent from the language server can now
     create/modify/remove files and directories).
   - Add support for [[https://microsoft.github.io/language-server-protocol/specification#workspace_configuration][workspace/configuration]].
   - Add new function =lsp-disconnect=.
   - Added =lsp-find-definition-mouse= and bound to =C-<down-mouse-1>=
   - Added =lsp-extend-selection= as a frontend of new LSP method =textDocument/extendSelection=

*** Other changes
  - Add project logo (thanks to Jon Carr).
  - Created an integration test suite for =lsp-mode= (See directory =features=).
  - If available, using the native JSON API introduced in Emacs 27.1.
  - Tramp implementation now uses TRAMP process instead of TCP sockets (Thanks to
    Karsten Patzwaldt).
  - LSP autoconfiguration adds =company-lsp= to the list of company backends
    instead of overriding it.
  - Add =lsp-mode-map=.
  - Add menu bar entries for =lsp-mode=.
  - Perform _before save_ operations ([[https://microsoft.github.io/language-server-protocol/specification#textDocument_willSaveWaitUntil][textDocument/willSaveWaitUntil]]) asynchronously.
  - =imenu= support is now handled asynchronously (Thanks to Dario Gjorgjevski).
  - Added option =:none= for =lsp-prefer-flymake=, which disabled both Flymake and
    Flycheck support.
  - Changed =flymake= to report the errors immediately after they arrive instead
    of waiting =flymake= to call =lsp-mode=.
  - Add debounce when server does not support incremental updates.
  - Add hook =lsp-after-uninitialized-hook=, which stores the list of functions
    called after a language server has been uninitialized.
  - Add variable =lsp-symbol-highlighting-skip-current=, which lets the user skip
    the current symbol when a given symbol is being highlighted.
  - Add variable =lsp-enabled-clients=, which lets users set which defined clients
    are allowed to be used.
  - Support multiple signatures while displaying eldoc text. Add variable
    =lsp-signature-render-all=, which when non-nil forces =lsp-mode= to only show
    the current active signature.
  - Expose configuration settings for various language servers.
  - Language servers can now be disabled with the variable =lsp-disabled-clients=.
  - Improved applying changes speed.
  - Fixed =xref= support for emacs 27+
  - Implemented automatic installation for F# language server.
  - Added Emacs 26.x to CI
  - Fixed handling of stderr when running over =TRAMP=.
  - Implemented support for running the language server in =Docker= container over local files.
** Release 6.0
  - ~lsp-mode~ now have single entry point ~lsp~ for all language and based on the major mode starts the corresponding language servers.
  - Added ~flymake~ integration.
  - ~lsp~ automatically enables and configures ~company-lsp~, ~lsp-ui~, ~yasnippet~, or ~flymake~ if they are present so no additional configuration is needed except installing the packages. That behavior could be disabled by setting ~lsp-auto-configure~ to ~nil~.
  - ~lsp-mode~ ships with several predefined servers located in ~lsp-clients.el~ which does not require additional package. For the more complex Language Servers like ~Eclipse JDT~, ~ccls~, ~cquery~ and ~haskell~ we still require separate package due to relatively high code base.
  - ~lsp-mode~ handles automatically server failures by asking the user whether he/she wants to restart the server.
  - introduced new command ~lsp-describe-session~ which replaces the existing one ~lsp-capabilities~. The command lists the folders that are part of the workspace and the servers that are associated with the corresponding folder.
  - ~lsp-mode~ displays information about the running server and it's status in the modeline.
  - ~lsp-define-stdio-client~ and ~lsp-define-tcp-client~ are replaced with ~lsp-register-client~
  - ~lsp~ rely on ~projectile~ or ~project.el~ now only for suggesting project root. Once you open new file in a project and start ~lsp~ it will provide several options(import project, blocklist project, select other directory root). Once you select a root it will be persisted and used for the next sessions.
  - support for multiple language servers per single file and workspace.
  - changed ~lsp-mode~ settings to more sensible defaults.
  - Removed all synchronous calls from the server startup.
  - Improved multi-folder support.
  - added backends for: Bash, C++, CSS, Dart, Elixir, Fortran, Go, Groovy, HTML, Javascript/Typescript, Javascript/Typescript, Ocaml, PHP, Python, Ruby, Rust, Vue, Flow
