* [core][keybinng] improve minor mode binding This commit added add a new function defun spacemacs/declare-prefix-for-minor-mode and improved spacemacs/set-leader-keys-for-minor-mode. `which-key` package recently introduced a new api which-key-add-keymap-based-replacements which improves perfomance and allows prefix and namings to be stored directly in keymap. This is a great improvement. With this new api we now make change to spacemacs/declare-prefix-for-minor-mode to manage prefix also. For example: (spacemacs/set-leader-keys-for-minor-mode 'lsp-mode "=" "format" "=b" #'lsp-format-buffer) Before we had to use another api to bind prefix spacemacs/declare-prefix-for-mode which only works on major-mode. As lsp-mode is a minor mode this api causes a lot of problems to which-key performance. An example is https://github.com/syl20bnr/spacemacs/issues/12455 which led to my hack in https://github.com/syl20bnr/spacemacs/pull/12474. The improved spacemacs/set-leader-keys-for-minor-mode will take care of both prefix and key naming for the minor mode. This will allows us to have a better set up for dynamic minor modes such as lsp-mode, tide-mode etc. Also another api is created to make prefix for minor mode: spacemacs/declare-prefix-for-minor-mode. Usage: (spacemacs/declare-prefix-for-minor-mode 'tide-mode "E" "errors")" * [tide] improve prefix * [lsp] improve prefix
25 lines
1.2 KiB
EmacsLisp
25 lines
1.2 KiB
EmacsLisp
;;; config.el --- Language Server Protocol Layer config file for Spacemacs
|
|
;;
|
|
;; Copyright (c) 2012-2020 Sylvain Benner & Contributors
|
|
;;
|
|
;; Author: Fangrui Song <i@maskray.me>
|
|
;; URL: https://github.com/syl20bnr/spacemacs
|
|
;;
|
|
;; This file is not part of GNU Emacs.
|
|
;;
|
|
;;; License: GPLv3
|
|
|
|
(defvar lsp-remap-xref-keybindings nil "When non-nil, xref keybindings remapped to lsp-ui-peek-find-*")
|
|
(defvar lsp-navigation 'both
|
|
"If `simple' binds lightweight navigation functions under `SPC m g'.
|
|
If `peek' binds lsp-ui navigation functions under `SPC m g'.
|
|
If `both', binds lightweight navigation functions under `SPC m g' and lsp-ui functions under `SPC m G'")
|
|
|
|
;; These are config variables exposed by the lsp-ui package
|
|
;; They all have toggles bound under 't' in spacemacs/lsp-define-keys-for-mode
|
|
(defvar lsp-ui-doc-enable t "Enable/disable lsp-ui-doc overlay")
|
|
(defvar lsp-ui-doc-include-signature nil "When non-nil, type signature included in the lsp-ui-doc overlay")
|
|
(defvar lsp-ui-sideline-enable t "Enable/disable lsp-ui-sideline overlay")
|
|
(defvar lsp-ui-sideline-show-symbol nil "When non-nil, sideline includes symbol info (largely redundant for c modes)") ; don't show symbol on the right of info
|
|
(defvar lsp-ui-sideline-ignore-duplicate t "Ignore duplicates")
|