Commit graph

36 commits

Author SHA1 Message Date
Aaron Zeng
76133f86f7
[csv] Make tsv-mode inherit csv-mode's leader key bindings (#14763) 2021-05-11 20:45:45 -04:00
syl20bnr
97cd83e169 Apply GPLv3 terms explicitly to all elisp files 2021-03-25 22:59:32 -04:00
syl20bnr
d55a9e2e67 Update header for year 2021 2021-03-25 22:59:32 -04:00
JAremko
eccdcbb1db Use keymap based replacement for prefixes. 2020-12-22 14:34:29 +02:00
JAremko
b869a05ebc Store mode based prefixes in keymaps 2020-12-18 17:45:38 +02:00
JAremko
f761d1e389 cleanup 2020-12-06 07:02:04 +02:00
JAremko
97418aaa4f Do not store major mode replacements in keymap [bugged] 2020-12-04 09:26:09 +02:00
JAremko
f31b6f28f0 Store major mode replacements in keymap (when possible).
It should give a good performance boost to which-key since
major mode replacements are stored in a global variable and
we have a lot of them.
2020-12-04 08:15:39 +02:00
thanhvg
e3b6464649
[core][tide][lsp] improve spacemacs/set-leader-keys-for-minor-mode and apply it to tide and lsp layers (#14141)
* [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
2020-11-21 07:34:55 +01:00
Robert O'Connor
82ba73a1c0
update copyright to 2020 2020-09-23 21:25:01 +02:00
syl20bnr
326965d4ce Happy New Year 2018! 2018-01-04 02:00:25 -05:00
duianto
6a84fb3c0e Replace obsolete which-key functions
Problem:
Two which-key functions doc-strings, state that they are obsolete:

(which-key-declare-prefixes KEY-SEQUENCE REPLACEMENT &rest MORE)
This function is obsolete since 2016-10-05;
use ‘which-key-add-key-based-replacements’ instead.

(which-key-declare-prefixes-for-mode MODE KEY-SEQUENCE REPLACEMENT &rest MORE)
This function is obsolete since 2016-10-05;
use ‘which-key-add-major-mode-key-based-replacements’ instead.

Solution:
Replace the obsolete functions.

Searching with `SPC /` through the .emacs.d folder, didn't find any other
occurrences of these functions.
2017-06-15 13:22:13 +02:00
syl20bnr
af6727c617 core: fix indentation rules for declare-prefix functions 2017-02-12 23:44:52 -05:00
syl20bnr
fb27ede558 Bump year in copyright headers
Happy New Year 2017!
2017-01-05 23:08:17 -05:00
syl20bnr
679da2436a core: scope minor-mode specific key bindigns under major-mode leader
Also remove unnecessary bindings for org-edit-src-exit
2016-12-16 08:57:45 -05:00
syl20bnr
046d86800c Clean copyrights and update for year 2016 2016-01-11 21:42:17 -05:00
justbur
1c94c84c09 bind-map: Add evilified state to evil major-mode keys
Fixes problem referred to in #4495
2016-01-08 20:52:53 +01:00
syl20bnr
9e2b18e29a core: replace -non-nil calls by delq
So spacemacs core still not depend on dash
2015-12-21 01:30:48 -05:00
justbur
bcdf346cb9 Fix for #4204: Don't bind if emacs leader is ""
When we try to bind leader + "m" and leader is the empty string, we end
up binding to "m" directly which makes "m" all but unusable.
2015-12-21 00:23:05 -05:00
justbur
394fec28e0 keys: Fix an issue with C-i/tab distinction
Before this <tab> => TAB if there is no binding for <tab>, but then
`spacemacs/translate-C-i` turned this into <C-i>, which we don't want
because that would mean having to always bind <tab> when this option is
enabled. This commit adds a check to make sure we can't possibly be
translating from <tab> originally (we only want to capture the C-i
events in the GUI).

Also, fixes C-m translation but leaves it commented.
2015-12-05 13:17:59 -05:00
justbur
246ebc1a27 core-keys: Enable distinction between C-i and TAB
Added dotfile variable to template and core-dotspacemacs.el

After enabling, if C-i is translated to the "key" <C-i> which allows you
to bind a separate command in the GUI like this

(define-key map [C-i] 'c-i-command)

or this

(define-key map (kbd "<C-i>") 'c-i-command)

This has the side effect of no longer making C-i default to TAB in the
GUI, but will not affect the TAB or <tab> bindings.

Removes spacemacs//handle-terminal-keys
2015-12-04 00:23:10 -05:00
syl20bnr
d822241739 core: use request.el to check elpa archive availability
Add request.el to core/libs
Refactor package.el initialization in configuration-layer.el
Cosmetic improvements to loading messages
Remove redefinition of package-refresh-packages
2015-12-02 23:25:00 -05:00
justbur
f25d9cc8f9 keys: Allow minor mode leader bindings 2015-12-01 01:29:56 -05:00
syl20bnr
a19c0f3d24 core: remove spacemacs/set-key funcs and add a new pre-command-hook
This pre-command-hook translates the special key to the corresponding
emacs function key. This effects only happens in terminal, this hook is
a no-op in GUI.

By doing this we attempt to bring more consistency between the GUI
and the terminal regarding TAB and RET keys.
2015-11-28 23:11:48 -05:00
syl20bnr
d5233a9706 core: new spacemacs function to set keys
spacemacs/set-key
spacemacs/set-key-for-state

These functions find normalized keys which should handle as sanely as
possible the GUI and the terminal.

See docstring of spacemacs//normalize-key for more info.
2015-11-28 00:13:31 -05:00
Eivind Fonn
32f11b8aa3 Indent spacemacs/set-leader-keys as defun 2015-11-21 18:32:53 +01:00
justbur
e1e850f179 core: Assume all which-key funcs available now 2015-11-21 18:22:51 +01:00
justbur
ee6a486d4c core: Add new set-key functions to core-keybindings
Set up to use bind-map instead of evil-leader for leader key
functionality.

Alias evil-leader funcs and remove package
2015-11-21 18:18:01 +01:00
justbur
539ff07890 core-keys: Allow major-mode-leader to be nil
The dotfile says that setting the major-mode leaders to nil will disable
the functionality, but there were a couple of places where that option
was not being respected.
2015-10-07 15:51:39 -04:00
justbur
89ec2d7096 Add back core-keys: Rewrite emacs-leader handling
Brings back the changes made in
dad786bc8d with an additional fix for
evil-org whose config was unbinding important leader keys in org-mode
2015-09-19 01:07:26 -04:00
syl20bnr
220b15a734 Revert "core-keys: Rewrite emacs-leader handling"
This reverts commit dad786bc8d.
2015-09-17 23:41:48 -04:00
justbur
dad786bc8d core-keys: Rewrite emacs-leader handling
This is how evil-leader gets `SPC m` to work for mode specific bindings,
and we need to mirror this step for `M-m`. This is big change, but in
order for `M-m` to work properly we need to remap it to the mode-map
whenever possible.
2015-09-17 22:35:51 -04:00
Markus Bertheau
1054e6e7ce Add which-key prefixes for major-mode leaders
Without this, prefixes configured for `SPC m` bindings don't show up for
the major mode leaders.
2015-09-16 21:24:28 -04:00
Eivind Fonn
018c5c0908 Fix bug with define-prefix-command (2) 2015-09-16 16:40:39 +02:00
Eivind Fonn
ac9c96fb1a Fix bug with define-prefix-command 2015-09-16 16:39:01 +02:00
syl20bnr
8aa4eadc74 core: move prefix funcs to new file core-keybindings.el 2015-09-13 22:53:15 -04:00