UI integrations for lsp-mode
1,116
stars
623
commits
Emacs Lisp
primary language
Jun 19, 2026
updated
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

Customization:
lsp-ui-sideline-show-diagnostics show diagnostics messages in sidelinelsp-ui-sideline-show-hover show hover messages in sidelinelsp-ui-sideline-show-code-actions show code actions in sidelinelsp-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 pointlsp-ui-sideline-delay seconds to wait before showing sidelinelsp-ui-sideline-diagnostic-max-lines default to showing only the
first line of diagnostic messages, increase for more verbose
messages, decrease if flickering occursAdd peek feature

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:
(lsp-ui-peek-jump-backward)
(lsp-ui-peek-jump-forward)
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")
Customization:
lsp-ui-peek-enable enable ‘lsp-ui-peek’lsp-ui-peek-show-directory show the directory of filesShow object documentation at point in a child frame.

Show documentation in a WebKit widget

Focus into lsp-ui-doc-frame

Customization:
lsp-ui-doc-enable Enable lsp-ui-doclsp-ui-doc-position Where to display the doc (top, bottom or at-point)lsp-ui-doc-side Where to display the doc (left or right)lsp-ui-doc-delay Number of seconds before showing the doclsp-ui-doc-show-with-cursor When non-nil, move the cursor over a symbol to show the doclsp-ui-doc-show-with-mouse When non-nil, move the mouse pointer over a symbol to show the docShow imenu entries.

Customization:
lsp-ui-imenu-kind-position place to show entries kindlsp-ui-imenu-buffer-position place to show the buffer windowlsp-ui-imenu-window-width set window widthlsp-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 formatlsp-ui-imenu-auto-refresh auto refresh when necessarylsp-ui-imenu-refresh-delay delay to refresh imenuAny kind of help is appreciated. If you want to help us maintaining this package, leave a note.
(top 30 of 89)
Emacs Lisp
98.5%
HTML
1.0%
UI integrations for lsp-mode
1,116
stars
623
commits
Emacs Lisp
primary language
Jun 19, 2026
updated
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

Customization:
lsp-ui-sideline-show-diagnostics show diagnostics messages in sidelinelsp-ui-sideline-show-hover show hover messages in sidelinelsp-ui-sideline-show-code-actions show code actions in sidelinelsp-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 pointlsp-ui-sideline-delay seconds to wait before showing sidelinelsp-ui-sideline-diagnostic-max-lines default to showing only the
first line of diagnostic messages, increase for more verbose
messages, decrease if flickering occursAdd peek feature

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:
(lsp-ui-peek-jump-backward)
(lsp-ui-peek-jump-forward)
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")
Customization:
lsp-ui-peek-enable enable ‘lsp-ui-peek’lsp-ui-peek-show-directory show the directory of filesShow object documentation at point in a child frame.

Show documentation in a WebKit widget

Focus into lsp-ui-doc-frame

Customization:
lsp-ui-doc-enable Enable lsp-ui-doclsp-ui-doc-position Where to display the doc (top, bottom or at-point)lsp-ui-doc-side Where to display the doc (left or right)lsp-ui-doc-delay Number of seconds before showing the doclsp-ui-doc-show-with-cursor When non-nil, move the cursor over a symbol to show the doclsp-ui-doc-show-with-mouse When non-nil, move the mouse pointer over a symbol to show the docShow imenu entries.

Customization:
lsp-ui-imenu-kind-position place to show entries kindlsp-ui-imenu-buffer-position place to show the buffer windowlsp-ui-imenu-window-width set window widthlsp-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 formatlsp-ui-imenu-auto-refresh auto refresh when necessarylsp-ui-imenu-refresh-delay delay to refresh imenuAny kind of help is appreciated. If you want to help us maintaining this package, leave a note.
(top 30 of 89)
Emacs Lisp
98.5%
HTML
1.0%