aboutsummaryrefslogtreecommitdiff
path: root/tests/test-mousetrap-mode--keymap-cache.el
Commit message (Collapse)AuthorAgeFilesLines
* perf(mousetrap): cache built keymaps per profileCraig Jennings11 days1-0/+84
mouse-trap--build-keymap ran on every major-mode hook and rebuilt the whole keymap (~8 prefixes by ~30 events) from scratch each time, so rapid mode-switching paid that cost over and over. I moved the build into mouse-trap--build-keymap-1 and cache its result in mouse-trap--keymap-cache, keyed on the profile name plus its allowed-categories list. The same profile reuses the cached keymap, and editing a profile's categories changes the key so it rebuilds. Sharing one keymap object across buffers is safe here: the map only binds disallowed events to ignore and is never mutated after it's built. Added mouse-trap--clear-keymap-cache to force a fresh build after editing profiles by hand.