Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit

When `lsp-use-plists` is t, `lsp-request` returns a single plist
(of form (:key val ...) or a list of plists.

Previously, when `lsp-use-plists` was t and a single plist was returned,
the plist wasn't wrapped into a list, causing the subsequent code to

Git stats


Failed to load latest commit information.


MELPA MELPA Stable Build Status

Table of Contents


This package contains all the higher level UI modules of lsp-mode, like flycheck support and code lenses.

By default, lsp-mode automatically activates lsp-ui unless lsp-auto-configure is set to nil.

You only have to put (use-package lsp-ui) in your config and the package will work out of the box. (use-package)

Or use the builtin package manager.

M-x package-install [RET] lsp-ui [RET]


Show informations of the symbols on the current line. It also show flycheck diagnostics and LSP code actions lsp-line


  • lsp-ui-sideline-show-diagnostics show diagnostics messages in sideline
  • lsp-ui-sideline-show-hover show hover messages in sideline
  • lsp-ui-sideline-show-code-actions show code actions in sideline
  • lsp-ui-sideline-update-mode When set to 'line' the information will be updated when user changes current line otherwise the information will be updated when user changes current point
  • lsp-ui-sideline-delay seconds to wait before showing sideline


Add peek feature lsp-xref

You may remap xref-find-{definitions,references} (bound to M-. M-? by default):

(define-key lsp-ui-mode-map [remap xref-find-definitions] #'lsp-ui-peek-find-definitions)
(define-key lsp-ui-mode-map [remap xref-find-references] #'lsp-ui-peek-find-references)

There is a window-local jump list dedicated to cross references:


Other cross references:

(lsp-ui-peek-find-workspace-symbol "pattern 0")
;; If the server supports custom cross references
(lsp-ui-peek-find-custom 'base "$cquery/base")


  • lsp-ui-peek-enable enable ‘lsp-ui-peek’
  • lsp-ui-peek-show-directory show the directory of files


Show object documentation at point in a child frame. lsp-ui-doc

Show documentation in a WebKit widget lsp-ui-doc-webkit

Focus into lsp-ui-doc-frame lsp-ui-doc-focus-frame


  • lsp-ui-doc-enable enable lsp-ui-doc
  • lsp-ui-doc-position Where to display the doc
  • lsp-ui-doc-delay Number of seconds before showing the doc
  • lsp-ui-doc-show-with-cursor When non-nil, move the cursor over a symbol to show the doc
  • lsp-ui-doc-show-with-mouse When non-nil, move the mouse pointer over a symbol to show the doc


Show imenu entries.



  • lsp-ui-imenu-kind-position place to show entries kind
  • lsp-ui-imenu-buffer-position place to show the buffer window
  • lsp-ui-imenu-window-width set window width
  • lsp-ui-imenu-window-fix-width when non-nil, the window will not be resizable (eg. unaffected by balance-windows)
  • lsp-ui-imenu--custom-mode-line-format mode line format
  • lsp-ui-imenu-auto-refresh auto refresh when necessary
  • lsp-ui-imenu-refresh-delay delay to refresh imenu


Any kind of help is appreciated. If you want to help us maintaining this package, leave a note.