* Changelog
** 10.0.0
  * Fix ~lsp-zig--zls-url~ to use the new zigtools.org url (see: [[https://github.com/emacs-lsp/lsp-mode/issues/4445][#4445]])
  * Fix ~lsp--npm-dependency-path~ to return correct executable path and improve error message
  * Add support for [[https://github.com/PlasmaFAIR/fortitude][Fortitude]] (Fortran)
  * Clear diagnostics after workspace edits to prevent stale diagnostics at wrong line numbers after operations like ~lsp-organize-imports~ (see [[https://github.com/emacs-lsp/lsp-mode/issues/3888][#3888]])
  * Add support for ~workspace/willRenameFiles~ and ~workspace/didRenameFiles~ when using ~vc-git-rename-file~.
  * Fix documentation to show unevaluated expressions for file/directory defcustom defaults instead of machine-specific paths (see [[https://github.com/emacs-lsp/lsp-mode/issues/4924][#4924]])
  * Fix invalid regex patterns in ~lsp-file-watch-ignored-directories~ causing crashes (see [[https://github.com/emacs-lsp/lsp-mode/issues/3439][#3439]])
  * Fix documentation website sidebar visibility on tablet landscape screens (see [[https://github.com/emacs-lsp/lsp-mode/issues/4946][#4946]])
  * Add ~lsp-fix-all~ command and ~lsp-fix-all-on-save~ option for ~source.fixAll~ code action support (see [[https://github.com/emacs-lsp/lsp-mode/issues/1842][#1842]])
  * Add notification handlers for Deno language server (~deno/didRefreshDenoConfigurationTree~, ~deno/didChangeDenoConfiguration~, ~deno/didUpgradeCheck~).
  * Fix "Unknown notification: semgrep/rulesRefreshed" warning in lsp-semgrep client.
  * Add ~lsp-install-server~ support for Deno LSP via npm.
  * Add diagnostic and formatter custom settings for [[https://github.com/rcjsuen/dockerfile-language-server-nodejs][Dockerfile language server]].
  * Fix "Eager macro-expansion failure" errors with lsp-interface pcase patterns (see #4723)
  * Add support for [[https://github.com/Myriad-Dreamin/tinymist][Typst (Tinymist)]] language server.
  * Add support for ~just~ files through just-lsp.
  * Add support for RON files through ron-lsp.
  * Add explicit flag to enable (or disable) JSON validation.
  * Fix Accommodate renaming of lsp-postgres binaries
  * Fix =lsp-org= for org >= 9.7 (see #4300)
  * Add format on save support
  * Fix beancount journal file init option
  * Add support for [[https://github.com/glehmann/earthlyls][earthlyls]]
  * Add support for GNAT Project (~gpr-mode~, ~gpr-ts-mode~).
  * Add SQL support
  * Add support for Meson build system. (~meson-mode~).
  * Add support for go to definition for external files (.dll) in CSharp projects for OmniSharp server.
  * Added a new optional ~:action-filter~ argument when defining LSP clients that allows code action requests to be modified before they are sent to the server. This is used by the Haskell language server client to work around an ~lsp-mode~ parsing quirk that incorrectly sends ~null~ values instead of ~false~ in code action requests.
  * Add support for C# via the [[https://github.com/dotnet/roslyn/tree/main/src/LanguageServer][Roslyn language server]].
  * Add basic support for [[https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_pullDiagnostics][pull diagnostics]] requests.
  * Add ~lsp-flush-delayed-changes-before-next-message~ customization point to enforce throttling document change notifications.
  * Add ~lsp-sql-show-tables~ command.
  * Fix bug in ~rust-analyzer.check.features~ configuration via ~lsp-rust-checkonsave-features~ Emacs setting: we were defaulting to ~[]~, but ~rust-analyzer~ defaults to inheriting the value from ~rust-analyzer.cargo.features~. The bug resulted in code hidden behind features not getting type checked when those features were enabled by setting ~rust-analyzer.cargo.features~ via the ~lsp-rust-features~ Emacs setting.
  * Change ~ruff-lsp~ to ~ruff~ for python lsp client. All ~ruff-lsp~ customizable variable change to ~ruff~. Lsp server command now is ~["ruff" "server"]~ instead of ~["ruff-lsp"]~.
  * Add futhark support
  * Optimize overlay creation by checking window visibility first
  * Optimize hook setup by avoiding unnecessary handler creation when ~lsp-enable-on-type-formatting~ or ~lsp-signature-auto-activate~ are disabled
  * Replace the per-interface ~(INTERFACE ...)~ pcase forms with a single,
    unified ~(lsp-interface INTERFACE ...)~ form. The per-interface forms are no
    longer generated. *This is a breaking change.* (See #4430.)
  * If asm-lsp is installed, lsp-asm won't try to download it to cache store
  * Fix lsp-unzip on windows when unzip was found on the PATH
  * Fix zls wrong bin path
  * Add support for buf CLI ([[https://github.com/bufbuild/buf/releases/tag/v1.43.0][beta]])
  * Add fennel support
  * Add support for [[https://github.com/nextflow-io/language-server][Nextflow]]
  * Add TypeSpec support
  * Add Tree-sitter query support
  * Add [[https://github.com/mrjosh/helm-ls][helm-ls]] (YAML Kubernetes Helm) support.
  * Add ~lsp-bash-allowed-shells~ to configure supported ~sh-shell~ values.
  * Add hint about ~activation-fn~ for unsupported buffers.
  * Add Roc support
  * Add support for environment variables in rust analyzer runnables. Allowing the new ~Update Tests (Expect)~ code lens to work as expected.
  * Add support for [[https://github.com/mathworks/MATLAB-language-server][MATLAB language server]] (requires [[https://github.com/MathWorks/Emacs-MATLAB-Mode][matlab-mode]]).
  * Add support for [[https://github.com/c3lang/c3c][c3 language]] (requires [[https://github.com/c3lang/c3-ts-mode][c3-ts-mode]] and [[https://github.com/pherrymason/c3-lsp][c3lsp]]).
  * Drop support for emacs 27.1 and 27.2
  * Add ~lsp-nix-nixd-server-arguments~ to allow passing arguments to the ~nixd~ LSP.
  * Improve the lsp-ocaml client (see [[https://github.com/emacs-lsp/lsp-mode/issues/4731][#4731]] for the follow-up issue. MRs: [[https://github.com/emacs-lsp/lsp-mode/pull/4741][#4741]], [[https://github.com/emacs-lsp/lsp-mode/pull/4732][#4732]])
  * Add support for ~source.removeUnusedImports~ for lsp-javascript
  * Add Python(ty) support
  * Add support for [[https://github.com/tombi-toml/tombi][Tombi language server]] (TOML language).
  * Make lsp-headerline--check-breadcrumb public
  * Added Odin langauge server support [[https://github.com/DanielGavin/ols][ols]]
  * Fix bug in lsp-odin where ~f-join~ collapses double slashes. Using ~format~ instead.
  * Fix missing gopls inlay hints when ~lsp-use-plist~ is true
  * Fix bug where persist was attempted when lsp-session-file is nil
  * Debugging tests in Rust no longer runs all the tests prior to launching debug session.
  * Add [[https://devenv.sh/][devenv]] and [[https://jj-vcs.github.io/jj/latest/][jj]] directories to the list of ignored directories (~lsp-file-watch-ignored-directories~)
  * Fix bug where qmlls failed to load due to qml not being in ~lsp-language-id-configuration~
  * Fix default value for ~lsp-rust-analyzer-cargo-cfgs~
  * Add ~lsp-ruby-lsp-server-command~ variable to allow overriding of the path to ~ruby-lsp~ executable
  * Add support for the ~javascript.preferences.importModuleSpecifierEnding~ and ~typescript.preferences.importModuleSpecifierEnding~ preferences.
  * Fix missing ty (a fast python language server) inlay hints when ~lsp-use-plist~ is true
  * Add wasm-language-tools support
  * Add ~lsp-ruff-multi-root~ variable to allow disabling multi-root option for ruff client
  * Add support for ~~crates-lsp~~
  * Remove outdated Ruff option and add new lint-related options
  * Add new Nextflow client customizations
  * Add support for ~~fish-lsp~~

** 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.
  * Add Postgres langauge server support.

** 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]])
  * Add support for per-project Beancount initialization-options

** 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
  - Fix lsp-xml-bin-download-url to use correct release url as specified at [[https://docs.github.com/en/repositories/releasing-projects-on-github/linking-to-releases][GitHub Docs]]
