Refactor out map.el usage
After some profiling, it turns out map-put and map-delete are 5-7x slower (more on Emacs 25) than delq, setf/alist-get and add-to-list for small lists (under 250 items), which is exactly how I've been using them. The only caveat is alist-get's signature is different on Emacs 25, thus a polyfill is necessary in core-lib.
This commit is contained in:
parent
f602a1f607
commit
f6dc6ac74e
29 changed files with 177 additions and 146 deletions
|
@ -231,12 +231,12 @@ variable for an explanation of the defaults (in comments). See
|
|||
(cons (format "(%s " (or (read-string "(") "")) ")"))
|
||||
|
||||
;; Add escaped-sequence support to embrace
|
||||
(map-put (default-value 'embrace--pairs-list)
|
||||
?\\ (make-embrace-pair-struct
|
||||
:key ?\\
|
||||
:read-function #'+evil--embrace-escaped
|
||||
:left-regexp "\\[[{(]"
|
||||
:right-regexp "\\[]})]")))
|
||||
(setf (alist-get ?\\ (default-value 'embrace--pairs-list))
|
||||
(make-embrace-pair-struct
|
||||
:key ?\\
|
||||
:read-function #'+evil--embrace-escaped
|
||||
:left-regexp "\\[[{(]"
|
||||
:right-regexp "\\[]})]")))
|
||||
|
||||
|
||||
(def-package! evil-escape
|
||||
|
@ -332,8 +332,7 @@ the new algorithm is confusing, like in python or ruby."
|
|||
;; Add custom commands to whitelisted commands
|
||||
(dolist (fn '(doom/backward-to-bol-or-indent doom/forward-to-last-non-comment-or-eol
|
||||
doom/backward-kill-to-bol-and-indent))
|
||||
(map-put evil-mc-custom-known-commands
|
||||
fn '((:default . evil-mc-execute-default-call))))
|
||||
(add-to-list 'evil-mc-custom-known-commands `(,fn (:default . evil-mc-execute-default-call))))
|
||||
|
||||
;; Activate evil-mc cursors upon switching to insert mode
|
||||
(defun +evil-mc|resume-cursors () (setq evil-mc-frozen nil))
|
||||
|
|
|
@ -2,7 +2,9 @@
|
|||
|
||||
(defun +file-templates--set (pred plist)
|
||||
(if (null (car-safe plist))
|
||||
(setq +file-templates-alist (map-delete +file-templates-alist pred))
|
||||
(setq +file-templates-alist
|
||||
(delq (assoc pred +file-templates-alist)
|
||||
+file-templates-alist))
|
||||
(push `(,pred ,@plist) +file-templates-alist)))
|
||||
|
||||
;;;###autodef
|
||||
|
|
|
@ -9,7 +9,7 @@ DOCSET (a string).
|
|||
See `devdocs-alist' for the defaults. "
|
||||
(after! (:when (boundp 'devdocs-alist))
|
||||
(dolist (mode (doom-enlist modes))
|
||||
(map-put devdocs-alist mode docset))))
|
||||
(setf (alist-get mode devdocs-alist) docset))))
|
||||
|
||||
;;;###autoload
|
||||
(def-setting! :devdocs (modes docset)
|
||||
|
|
|
@ -72,7 +72,7 @@ properties:
|
|||
"Search on: "
|
||||
(mapcar #'car +lookup-provider-url-alist)
|
||||
nil t)))
|
||||
(map-put +lookup--last-provider key provider)
|
||||
(setf (alist-get +lookup--last-provider key) provider)
|
||||
provider))))
|
||||
|
||||
(defun +lookup--symbol-or-region (&optional initial)
|
||||
|
@ -318,7 +318,9 @@ for the provider."
|
|||
(user-error "The search query is empty"))
|
||||
(funcall +lookup-open-url-fn (format url (url-encode-url search))))
|
||||
(error
|
||||
(map-delete +lookup--last-provider major-mode)
|
||||
(setq +lookup--last-provider
|
||||
(delq (assq major-mode +lookup--last-provider)
|
||||
+lookup--last-provider))
|
||||
(signal (car e) (cdr e)))))
|
||||
|
||||
;;;###autoload
|
||||
|
|
|
@ -30,7 +30,8 @@ stored in `persp-save-dir'.")
|
|||
;; particularly useful for the `+workspace/restart-emacs-then-restore' command.
|
||||
(defun +workspaces-restore-last-session (&rest _)
|
||||
(add-hook 'emacs-startup-hook #'+workspace/load-session 'append))
|
||||
(map-put command-switch-alist "--restore" #'+workspaces-restore-last-session)
|
||||
(add-to-list 'command-switch-alist (cons "--restore" #'+workspaces-restore-last-session))
|
||||
|
||||
|
||||
;;
|
||||
;; Plugins
|
||||
|
@ -41,7 +42,9 @@ stored in `persp-save-dir'.")
|
|||
:init
|
||||
(defun +workspaces|init ()
|
||||
;; Remove default buffer predicate so persp-mode can put in its own
|
||||
(setq default-frame-alist (map-delete default-frame-alist 'buffer-predicate))
|
||||
(setq default-frame-alist
|
||||
(delq (assq 'buffer-predicate default-frame-alist)
|
||||
default-frame-alist))
|
||||
(add-hook 'after-make-frame-functions #'+workspaces|init-frame)
|
||||
(require 'persp-mode)
|
||||
(unless (daemonp)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue