diff --git a/core/core-configuration-layer.el b/core/core-configuration-layer.el index 55e893eee..2bfdb0323 100644 --- a/core/core-configuration-layer.el +++ b/core/core-configuration-layer.el @@ -1428,7 +1428,7 @@ discovery." sub))) (spacemacs-buffer/message "-> Discovered category: %S" category) - (push category configuration-layer-categories) + (add-to-list 'configuration-layer-categories category) (setq search-paths (cons sub search-paths)))) ((eq 'layer type) (let* ((layer-name-str (file-name-nondirectory sub)) diff --git a/core/core-toggle.el b/core/core-toggle.el index f69bbb3e1..8a970dca5 100644 --- a/core/core-toggle.el +++ b/core/core-toggle.el @@ -95,10 +95,12 @@ used." ,condition) t))) `(progn - (push (append '(,name) - '(:function ,wrapper-func :predicate ,wrapper-func-status) - ',props) - spacemacs-toggles) + (let ((properties (append '(:function ,wrapper-func :predicate ,wrapper-func-status) + ',props)) + (cell (assq ',name spacemacs-toggles))) + (if cell + (setcdr cell properties) + (push (cons ',name properties) spacemacs-toggles))) ;; toggle function (defun ,wrapper-func ,(if prefix-arg-var (list prefix-arg-var) ()) ,(format "Toggle %s on and off." (symbol-name name)) diff --git a/doc/LAYERS.org b/doc/LAYERS.org index 8e5199790..69528fb7b 100644 --- a/doc/LAYERS.org +++ b/doc/LAYERS.org @@ -119,10 +119,10 @@ loaded before their code runs. When loaded using =require=, Emacs looks for files in its /load path/. This is nothing more than a list of paths where elisp files can be found, and you can inspect it through ~SPC h d v load-path~ in Spacemacs. To add to the load path, -simply push to this list, e.g. +simply add to this list, e.g. #+begin_src emacs-lisp -(push "/some/path/" load-path) +(add-to-list 'load-path "/some/path/") #+end_src ** Auto-loading diff --git a/layers/+chat/erc/packages.el b/layers/+chat/erc/packages.el index 39fa11a39..637ff8299 100644 --- a/layers/+chat/erc/packages.el +++ b/layers/+chat/erc/packages.el @@ -9,30 +9,28 @@ ;; ;;; License: GPLv3 -(setq erc-packages - '( - company - company-emoji - emoji-cheat-sheet-plus - erc - (erc-gitter :location (recipe - :fetcher github - :repo "jleechpe/erc-gitter") - :excluded t) - erc-hl-nicks - erc-image - (erc-sasl :location local) - erc-social-graph - (erc-tex :location local) - erc-view-log - (erc-yank :location local :excluded t) - erc-yt - linum - persp-mode - )) - -(when (spacemacs/system-is-mac) - (push 'erc-terminal-notifier erc-packages)) +(defconst erc-packages + '( + company + company-emoji + emoji-cheat-sheet-plus + erc + (erc-gitter :location (recipe + :fetcher github + :repo "jleechpe/erc-gitter") + :excluded t) + erc-hl-nicks + erc-image + (erc-sasl :location local) + erc-social-graph + (erc-terminal-notifier :toggle (spacemacs/system-is-mac)) + (erc-tex :location local) + erc-view-log + (erc-yank :location local :excluded t) + erc-yt + linum + persp-mode + )) (defun erc/post-init-company () (spacemacs|add-company-backends :backends company-capf :modes erc-mode)) diff --git a/layers/+distributions/spacemacs-bootstrap/packages.el b/layers/+distributions/spacemacs-bootstrap/packages.el index 350c0b06d..6100b8cb7 100644 --- a/layers/+distributions/spacemacs-bootstrap/packages.el +++ b/layers/+distributions/spacemacs-bootstrap/packages.el @@ -67,7 +67,7 @@ (evil-mode 1) ;; Use evil as a default jump handler - (push 'evil-goto-definition spacemacs-default-jump-handlers) + (add-to-list 'spacemacs-default-jump-handlers 'evil-goto-definition) (require 'cl) ;; State cursors @@ -255,7 +255,7 @@ (define-key evil-inner-text-objects-map "g" 'evil-inner-buffer) ;; turn off evil in corelv buffers - (push '("\\*LV\\*") evil-buffer-regexps) + (add-to-list 'evil-buffer-regexps '("\\*LV\\*")) ;; replace `dired-goto-file' with `helm-find-files', since `helm-find-files' ;; can do the same thing and with fuzzy matching and other features. @@ -315,6 +315,9 @@ ;; Needed to avoid nil variable error before update to recent which-key (defvar which-key-replacement-alist nil) + ;; Reset to the default or customized value before adding our values in order + ;; to make this initialization code idempotent. + (custom-reevaluate-setting 'which-key-replacement-alist) ;; Replace rules for better naming of functions (let ((new-descriptions ;; being higher in this list means the replacement is applied later diff --git a/layers/+email/mu4e/config.el b/layers/+email/mu4e/config.el index f6b1a0794..5f44a62d2 100644 --- a/layers/+email/mu4e/config.el +++ b/layers/+email/mu4e/config.el @@ -35,4 +35,4 @@ "Modes that are associated with mu4e buffers.") (when mu4e-installation-path - (push mu4e-installation-path load-path)) + (add-to-list 'load-path mu4e-installation-path)) diff --git a/layers/+frameworks/react/packages.el b/layers/+frameworks/react/packages.el index 01b7d2e65..c310d6fe0 100644 --- a/layers/+frameworks/react/packages.el +++ b/layers/+frameworks/react/packages.el @@ -63,7 +63,7 @@ (progn (goto-char (match-beginning 1)) (not (spacemacs//react-inside-string-or-comment-q))))) - (push (cons #'+javascript-jsx-file-p 'rjsx-mode) magic-mode-alist) + (add-to-list 'magic-mode-alist (cons #'+javascript-jsx-file-p 'rjsx-mode)) ;; setup rjsx backend (add-hook 'rjsx-mode-local-vars-hook #'spacemacs//react-setup-backend) diff --git a/layers/+lang/clojure/packages.el b/layers/+lang/clojure/packages.el index d6e008573..bc2305329 100644 --- a/layers/+lang/clojure/packages.el +++ b/layers/+lang/clojure/packages.el @@ -178,7 +178,7 @@ (progn ;; add support for golden-ratio (with-eval-after-load 'golden-ratio - (push 'cider-popup-buffer-quit-function golden-ratio-extra-commands)) + (add-to-list 'golden-ratio-extra-commands 'cider-popup-buffer-quit-function)) ;; add support for evil (evil-set-initial-state 'cider-stacktrace-mode 'motion) (evil-set-initial-state 'cider-popup-buffer-mode 'motion) diff --git a/layers/+lang/d/packages.el b/layers/+lang/d/packages.el index 8d356dec2..d4c195074 100644 --- a/layers/+lang/d/packages.el +++ b/layers/+lang/d/packages.el @@ -26,7 +26,7 @@ (defun d/post-init-company () ;; Need to convince company that this C-derived mode is a code mode. (with-eval-after-load 'company-dabbrev-code - (push 'd-mode company-dabbrev-code-modes))) + (add-to-list 'company-dabbrev-code-modes 'd-mode))) (defun d/init-company-dcd () (use-package company-dcd diff --git a/layers/+lang/emacs-lisp/funcs.el b/layers/+lang/emacs-lisp/funcs.el index 33f35f379..54a1566af 100644 --- a/layers/+lang/emacs-lisp/funcs.el +++ b/layers/+lang/emacs-lisp/funcs.el @@ -105,3 +105,11 @@ Requires smartparens because all movement is done using `sp-forward-symbol'." (save-excursion (sp-forward-symbol) (call-interactively 'eval-last-sexp)))) + + +;; elisp comment text-object definition + +(defun spacemacs//define-elisp-comment-text-object () + "Define a text object and a surround pair for elisp comments. +Intended for use in mode hooks." + (spacemacs|define-text-object ";" "elisp-comment" ";; " "")) diff --git a/layers/+lang/emacs-lisp/packages.el b/layers/+lang/emacs-lisp/packages.el index df1126adc..45d2d2e29 100644 --- a/layers/+lang/emacs-lisp/packages.el +++ b/layers/+lang/emacs-lisp/packages.el @@ -231,9 +231,7 @@ "th" 'overseer-help))) (defun emacs-lisp/post-init-evil () - (add-hook 'emacs-lisp-mode-hook - (lambda () - (spacemacs|define-text-object ";" "elisp-comment" ";; " "")))) + (add-hook 'emacs-lisp-mode-hook #'spacemacs//define-elisp-comment-text-object)) (defun emacs-lisp/pre-init-evil-cleverparens () (spacemacs|use-package-add-hook evil-cleverparens diff --git a/layers/+lang/go/packages.el b/layers/+lang/go/packages.el index 534b1d073..cf6a06aba 100644 --- a/layers/+lang/go/packages.el +++ b/layers/+lang/go/packages.el @@ -51,7 +51,7 @@ :pre-config (dolist (var '("GOPATH" "GOROOT" "GO15VENDOREXPERIMENT") exec-path-from-shell-variables) (unless (or (member var exec-path-from-shell-variables) (getenv var)) - (push var exec-path-from-shell-variables))))) + (add-to-list 'exec-path-from-shell-variables var))))) (defun go/init-go-mode() (use-package go-mode diff --git a/layers/+lang/haskell/funcs.el b/layers/+lang/haskell/funcs.el index d2fb09318..5c869a56d 100644 --- a/layers/+lang/haskell/funcs.el +++ b/layers/+lang/haskell/funcs.el @@ -52,7 +52,7 @@ (spacemacs|add-company-backends :backends (dante-company company-dabbrev-code company-yasnippet) :modes haskell-mode) - (push 'xref-find-definitions spacemacs-jump-handlers) + (add-to-list 'spacemacs-jump-handlers 'xref-find-definitions) (dante-mode) (dolist (mode haskell-modes) (spacemacs/set-leader-keys-for-major-mode mode @@ -68,7 +68,7 @@ (spacemacs|add-company-backends :backends (company-intero company-dabbrev-code company-yasnippet) :modes haskell-mode) - (push 'intero-goto-definition spacemacs-jump-handlers) + (add-to-list 'spacemacs-jump-handlers 'intero-goto-definition) (intero-mode) (dolist (mode haskell-modes) (spacemacs/set-leader-keys-for-major-mode mode diff --git a/layers/+lang/java/README.org b/layers/+lang/java/README.org index 8ec07cbf7..1a170f5c5 100644 --- a/layers/+lang/java/README.org +++ b/layers/+lang/java/README.org @@ -104,8 +104,8 @@ If you want to use the Ensime backend, you should modify your =~/.spacemacs= to use the recommended Ensime version (Stable). Please add the following lines to =dotspacemacs/user-init=: #+BEGIN_SRC emacs-lisp - (push '("melpa-stable" . "stable.melpa.org/packages/") configuration-layer-elpa-archives) - (push '(ensime . "melpa-stable") package-pinned-packages) + (add-to-list 'configuration-layer-elpa-archives '("melpa-stable" . "stable.melpa.org/packages/")) + (add-to-list 'package-pinned-packages '(ensime . "melpa-stable")) #+END_SRC * Backends diff --git a/layers/+lang/java/packages.el b/layers/+lang/java/packages.el index 37d4be15f..82a19b64d 100644 --- a/layers/+lang/java/packages.el +++ b/layers/+lang/java/packages.el @@ -297,7 +297,7 @@ ;; (progn ;; (spacemacs//ensime-init 'java-mode t nil) ;; (when (configuration-layer/package-used-p 'company) -;; (push 'ensime-company company-backends-java-mode))) +;; (add-to-list 'company-backends-java-mode 'ensime-company))) ;; :config ;; (progn ;; (spacemacs/ensime-configure-keybindings 'java-mode))))) diff --git a/layers/+lang/nim/packages.el b/layers/+lang/nim/packages.el index e834a7f9e..02878565f 100644 --- a/layers/+lang/nim/packages.el +++ b/layers/+lang/nim/packages.el @@ -22,7 +22,7 @@ :init (progn (add-hook 'nim-mode-hook 'nimsuggest-mode) - (push 'nimsuggest-find-definition spacemacs-jump-handlers-nim-mode)) + (add-to-list 'spacemacs-jump-handlers-nim-mode 'nimsuggest-find-definition)) :config (progn (defun spacemacs/nim-compile-run () diff --git a/layers/+lang/php/packages.el b/layers/+lang/php/packages.el index a3ace4f63..06fbf50e1 100644 --- a/layers/+lang/php/packages.el +++ b/layers/+lang/php/packages.el @@ -70,7 +70,7 @@ :defer t :init (progn - (push 'ac-php-find-symbol-at-point spacemacs-jump-handlers-php-mode) + (add-to-list 'spacemacs-jump-handlers-php-mode 'ac-php-find-symbol-at-point) (add-hook 'php-mode-hook 'ac-php-core-eldoc-setup) (spacemacs|add-company-backends :modes php-mode diff --git a/layers/+lang/ruby/packages.el b/layers/+lang/ruby/packages.el index 4efa98a9a..0d0cc81bd 100644 --- a/layers/+lang/ruby/packages.el +++ b/layers/+lang/ruby/packages.el @@ -57,7 +57,7 @@ :modes ruby-mode enh-ruby-mode)) (with-eval-after-load 'company-dabbrev-code (dolist (mode '(ruby-mode enh-ruby-mode)) - (push mode company-dabbrev-code-modes)))) + (add-to-list 'company-dabbrev-code-modes mode)))) (defun ruby/init-chruby () (use-package chruby diff --git a/layers/+lang/rust/packages.el b/layers/+lang/rust/packages.el index 9438c5061..8610b7619 100644 --- a/layers/+lang/rust/packages.el +++ b/layers/+lang/rust/packages.el @@ -96,7 +96,7 @@ :pre-config (let ((var "RUST_SRC_PATH")) (unless (or (member var exec-path-from-shell-variables) (getenv var)) - (push var exec-path-from-shell-variables))))) + (add-to-list 'exec-path-from-shell-variables var))))) (defun rust/init-racer () (use-package racer diff --git a/layers/+lang/scala/README.org b/layers/+lang/scala/README.org index 19de0549b..fad1f7295 100644 --- a/layers/+lang/scala/README.org +++ b/layers/+lang/scala/README.org @@ -39,8 +39,8 @@ file. Then, you should modify your =~/.spacemacs= to use the recommended Ensime version (Stable). Please add the following lines to =dotspacemacs/user-init=: #+BEGIN_SRC emacs-lisp - (push '("melpa-stable" . "stable.melpa.org/packages/") configuration-layer-elpa-archives) - (push '(ensime . "melpa-stable") package-pinned-packages) + (add-to-list 'configuration-layer-elpa-archives '("melpa-stable" . "stable.melpa.org/packages/")) + (add-to-list 'package-pinned-packages '(ensime . "melpa-stable")) #+END_SRC * Ensime diff --git a/layers/+spacemacs/spacemacs-visual/packages.el b/layers/+spacemacs/spacemacs-visual/packages.el index 399818d7d..06cd09447 100644 --- a/layers/+spacemacs/spacemacs-visual/packages.el +++ b/layers/+spacemacs/spacemacs-visual/packages.el @@ -30,7 +30,7 @@ :init (setq desktop-dirname spacemacs-cache-directory) :config - (push spacemacs-cache-directory desktop-path))) + (add-to-list 'desktop-path spacemacs-cache-directory))) (defun spacemacs-visual/init-fill-column-indicator () (use-package fill-column-indicator @@ -40,7 +40,7 @@ (setq fci-rule-width 1) ;; manually register the minor mode since it does not define any ;; lighter - (push '(fci-mode "") minor-mode-alist) + (add-to-list 'minor-mode-alist '(fci-mode "")) (spacemacs|add-toggle fill-column-indicator :status fci-mode :on (turn-on-fci-mode) diff --git a/layers/+tools/dash/packages.el b/layers/+tools/dash/packages.el index 64433adeb..09b5a0503 100644 --- a/layers/+tools/dash/packages.el +++ b/layers/+tools/dash/packages.el @@ -38,4 +38,4 @@ "dD" 'zeal-at-point-set-docset) :config ;; This lets users seach in multiple docsets - (push '(web-mode . "html,css,javascript") zeal-at-point-mode-alist))) + (add-to-list 'zeal-at-point-mode-alist '(web-mode . "html,css,javascript")))) diff --git a/layers/+tools/shell/packages.el b/layers/+tools/shell/packages.el index 832ec34ed..22345efe9 100644 --- a/layers/+tools/shell/packages.el +++ b/layers/+tools/shell/packages.el @@ -117,12 +117,12 @@ ;; Visual commands (require 'em-term) - (mapc (lambda (x) (push x eshell-visual-commands)) + (mapc (lambda (x) (add-to-list 'eshell-visual-commands x)) '("el" "elinks" "htop" "less" "ssh" "tmux" "top")) ;; automatically truncate buffer after output (when (boundp 'eshell-output-filter-functions) - (push 'eshell-truncate-buffer eshell-output-filter-functions))))) + (add-hook 'eshell-output-filter-functions #'eshell-truncate-buffer))))) (defun shell/init-eshell-prompt-extras () (use-package eshell-prompt-extras