1.0.0 (2023-01-04)
Features
- add <C-w>_ to misc (#296) (03b8c1d)
- add preset key to mappings for API usage (ed7d6c5)
- added a winblend option for the floating window (#161) (d3032b6)
- added duplicate mapping checks to checkhealth #34 (710c5f8)
- added healthcheck to check for conflicting keymaps (44d3c3f)
- added ignore_missing option to hide any keymap for which no label exists #60 (1ccba9d)
- added operators plugin (c7f8496)
- added option to configure scroll bindings inside the popup (#175) (a54ef5f)
- added options to align columns left, center or right #82 (2467fb1)
- added settings to disable the WhichKey popup for certain buftypes and filetyes (fb276a0)
- added support for expr mappings (9d2785c)
- added triggers_blacklist to blacklist certain whichkey hooks #73 (ec1474b)
- added WhichKeyBorder highlight group (9c190ea)
- allow functions to be passed to create keybindings. Implements #31 (cf644cd)
- allow manual setup of triggers #30 (423a50c)
- allow mapping to have multiple modes as a table (0d559fa)
- allow mode to be set on a single mapping (2a08d58)
- allow overriding key labels #77 (2be929e)
- allow to close popup with <c-c> #33 (410523a)
- better logging (c39df95)
- better support for plugin actions with custom lua function (222a8ee)
- builtin key mappings (0063ceb)
- check for rogue existsing WhichKey mappings and show error. WK handles triggers automatically, no need to define them (db97a30)
- easily reset WK with plenary for development of WK (55b4dab)
- expose registers to customize order (2b83fe7)
- for nvim 0.7.0 or higher, use native keymap callbacks instead of which key functions (5e96cf9)
- group symbol (5e02b66)
- handle [count] with motion. Implements #11 (d93ef0f)
- hide mapping boilerplate (#6) (b3357de)
- honor timeoutlen when typing an operator followed by i or a instead of showing immediately (54d1b3a)
- initial commit (970e79f)
- keyamp functions (801cc81)
- make custom operators configurable (fixes #9) (81875d8)
- make help message configurable (7b1c6aa)
- Make keypress message configuratble (#351) (fd2422f)
- motions plugin (f989fcf)
- new keymap dsl (#352) Docs to come (fbf0381)
- option to make some triggers show immediately, regardless of timeoutlen (3a52dc0)
- plugin for registers (5415832)
- plugin support + first builtin marks plugin (9d5e631)
- prefer
desc
tocmd
as the fallback label (#253) (bd4411a) - preset with misc keybindings (e610338)
- set keymap desc when creating new mappings based on the WhichKey labels (f4518ca)
- set popup filetype to WhichKey and buftype to nofile #86 (20682f1)
- show a warning if <leader> is already mapped, even if it's (ac56f45)
- show breadcrumb and help on command line (c27535c)
- show keys and help in float when cmdheight == 0 (f645017)
- show/hide a fake cursor when WK is open (0f53f40)
- spelling suggestion plugin (4b74f21)
- support for custom text object completion. Fixes #10 (394ff5a)
- support opts.remap for keymap (#339) (6885b66)
- support using lua function for expr (#110) (e0dce15)
- text objects (d255b71)
- WhichKey vim command to show arbitrary keymaps (df615d4)
Bug Fixes
- :norm .. commands keep feeding <esc> at the end of the command #58 (d66ffdd)
- add delay option to macro key (#152) (#156) (bd226c4)
- add remaining <esc> to pending in case there's no other characters (29a82b5)
- add triggers for other modes in marks and register plugin (#116) (bbfc640)
- added @ trigger for showing registers (01b6676)
- added builtin plugins to config (6e461ca)
- added hidden option to disable the popup on motion counts (motions.count) (ea975ef)
- added support for operator pending keymaps (1f6b510)
- added z= for spelling correction (59603de)
- always escape <leader> when it's a backslash (41636a3)
- always execute keys with remap, but unhook / hook WK triggers (Fixes #8) (bf329df)
- always map <leader>, even without register (512631c)
- always unhook and ignore errors (01a60cd)
- always use noremap=false for <plug> commands (9b9cece)
- always use word under the cursor for spelling suggestions (c5b19ec)
- better handling of weird norm and getchar endless <esc> bug #68 (bfd37e9)
- better sorting (99e8940)
- center alignemnt should be an integer (db85198)
- check for FloatBorder before setting winhighlight (af6b91d)
- check is hook exists before unhooking (f6cf3a2)
- cmd can be nil (060a574)
- colors: Separator links to DiffAdd (#302) (a2749c5)
- Compatibility with Visual Multi plug (#278) (92916b6)
- convert trings with strtrans to properly render non printable characters (d85ce36)
- correct floating window position in Neovim 0.6 nightly (#176) (a35a910)
- correctly handle counts before commands #17 (4feb319)
- correctly unhook buffer local mappings before executing keys (4f98b47)
- disable folding on whichkey popup. Fixes #99 (78821de)
- disable operator pending maps for now (#2) (0cd66a8)
- do feedkeys in correct mode when dealing with operator pending commands. Fixes #8 (cf30788)
- don't show <esc> mappings since closes the popup (09db756)
- don't show spelling when the command was started with a count #80 (20a85bd)
- dont do feedkeys when user uses WhichKey command with non existing prefix (f9537ce)
- dont pass zero counts (0c3cfb0)
- dont show errors about loading order of setup and register (2adbc17)
- explicitely check if we try to execute an auto which-key mapping. shouldn't happen, but still safer to check (30fdd46)
- expose presets so one can change them if needed #70 (46ea686)
- feed CTRL-O again if called from CTRL-O (#145) (833b5ea)
- feed the keys as typed (#333) (33b4e72)
- fix flickering on tmux (f112602)
- fix issue when cmdheight=0 #301 (#305) (9cd09ca)
- fixed 0 after an operator. Wrongly assumed any number to be a count for following op mode, but not the case for 0 #59 #61 (36616ca)
- fixed possible nil error when showing marks (b44fc09)
- for sporadic loss of lua function for mapping (#216) (312c386)
- formatting of text-objects plugin (442d2d3)
- get value of register '=' with getreg('=',1) (#114) (6224ea8)
- handle backslash as localleader #47 (cd23fdc)
- handle baskslashes when leader or localleader isn't set (d155ab3)
- handle keymaps with a <nop> rhs as non existing and possibly overwrite them with WK hooks #35 (402be18)
- handle nvim_{buf_}get_keymap return no rhs due to 'callback' mapping (#223) (28d2bd1)
- handle possible errors when getting last expression register #64 (7a1be6f)
- highlighting of line number in marks (9997d93)
- immediately show registers and marks. Fixes #144 (653ce71)
- link default WhichKeyBorder to FloatBorder. Fixes #331 (1698d6d)
- make register selection work in INSERT mode (d4315f8)
- make spelling suggestions also work for correctly spelled words (d02dc34)
- make sure we never accidentally show WK triggers (197b4d3)
- make which-key's lazy loading work when it is also lazy-loaded (7d929b9)
- manual command now uses proper escaping for prefix (334fcca)
- mapleader=\ (b5c8985)
- mapping when right-hand side is
nil
(#323) (1d449d4) - never hook in SELECT mode and properly handle v, x, s #45 #46 (2844e1c)
- never hook j and k in INSERT mode automatcally to prevent jk kj <ESC> mappings to work as intended (9a2faed)
- never hook numbers. locks up due to v:count. Fixes #118 (2d2954a)
- never hook on <esc> (fd08322)
- never hook q #63 (95ae9d2)
- never hook to operators in visual mode #61 (43d799a)
- nil in health check (5c018ae)
- nvim_win_close force = true (ca73a0e)
- nvim-0.7.0 check (#338) (1491c35)
- only create mappings for builtin operators. plugings will always have their own mappings (1b2ec76)
- only enable plugins that are specified in the configuration (b8ed0e8)
- only show message about existing <leader> mapping in NORMAL mode #75 (bcc8297)
- only show up/down when scrolling is posible (fixes #4) (9e7986d)
- override <leader> if it's mapped to (928288b)
- pass + and * regsiters to feedkeys #36 (ce37f41)
- pass 0 instead of nil for current buffer (#227) (387fd67)
- passing registers in INSERT mode, is not by pasting them 😅 #62 (342c8cd)
- place popup correctly respecting cmdheight #28 (490e4d5)
- possible nil value in health check (b1627ca)
- possible recursion (f7fef32)
- prevent double escaping of key codes (1676611)
- properly escape sequence (2473329)
- properly escape terminal chars to see if we already hooked a trigger (1bee8a1)
- properly format unicode text in columns (fixes #66) (e3066fa)
- properly handle < chatracters (should be <lt>) (e618f84)
- properly handle < when loading WK #16 (6cf68b4)
- properly handle <lt> when executing keys (fixes #16 again) (8500ebf)
- properly handle buffer=0 as the current buffer. Fixes #91 (9ea98e5)
- properly handle selected regsiters when executing keys #36 (5248a2d)
- properly parse internal key codes and key notation (535703c)
- redraw after nvim_echo to fix issue with cmdheight=0 (abcc2c6)
- registers plugin for visual mode (86a58ea)
- remove unnecessary replacement of backslash (#284) (7afe584)
- removed debug code (2f823b8)
- removed feedkeys as typed, since some normal mappings stop working (e6a63ec)
- removed triggers_nowait from README since this really only makes sense for plugins (69fcfff)
- Reset
+
and*
to default register when clipboard is set (#233) (8154e65) - reset op_count when it's 0 (e3ad7c9)
- set noautocmd on the WhichKey window, so it works properly for other floats like Telescope (36fdfe8)
- set scheduled instantly (dc9c3be)
- show correct level and sort on keys / group (a372c63)
- show error when setup was not run (194f788)
- sort keys case insensitive #25 (e26be8c)
- special handling needed when <leader> = #40 (c4a59d7)
- start of visual selection mark should be <lt> instead of < #69 (840311c)
- typo (4bacbfd)
- use buffer instead of bufnr + added warning (df49a59)
- use Comment as fallback color for the Separator (7ee35a7)
- use config.key_labels for cmdline trail as well (Fixes #108) (1872dd8)
- use mode instead of redraw when cmdheight=0. (Fixes #327) (c966279)
- use secret nop bindings to make sure timeoutlen is always respected (eccd5f8)
- use strwidth instead of strdisplaywidth (386591e)
Performance Improvements
- as long as we didnt finish loading, queue registers (1bac978)
- defer loading to VimEnter and only process hooks once when ready (84ddcdc)
- no need to create triggers for all levels. first level that is not a cmd is enough (3cc0424)
- no need to hook buffer-local if we have a global hook for a certain prefix (bb5e0d9)
- only load modules when needed (6f8ae23)