             (configuration-layer//load-layer-files layer '("funcs.el"
                                                            "config.el"))))
         (setq helm-spacemacs-all-packages (configuration-layer/get-packages
-                                           helm-spacemacs-all-layers)))))
+                                           helm-spacemacs-all-layers))
+        (setq helm-spacemacs-all-pre-extensions
+              (configuration-layer/get-extensions helm-spacemacs-all-layers t))
+        (setq helm-spacemacs-all-post-extensions
+              (configuration-layer/get-extensions helm-spacemacs-all-layers)))))
 
 ;;;###autoload
 (defun helm-spacemacs ()

(defun helm-spacemacs//package-action-goto-init-func (candidate)
  "Open the file `packages.el' and go to the init function."
  (save-match-data
    (string-match "^(\\(.+\\))\s\\(.+\\)$" candidate)
    (let* ((layer (match-string 1 candidate))
           (package (match-string 2 candidate))
           (path (file-name-as-directory
                  (concat (ht-get configuration-layer-paths (intern layer))
                          layer)))
           (filename (concat path "packages.el")))
      (find-file filename)
      (goto-char (point-min))
      (re-search-forward (format "init-%s" package))

  "Return the sorted candidates for package source."
  (let (result)
    (ht-aeach (dolist (layer value)
                (push (format "(%s) package: %s" layer key) result))
              helm-spacemacs-all-packages)
    (ht-aeach (dolist (layer value)
                (push (format "(%s) pre-extension: %s" layer key) result))
              helm-spacemacs-all-pre-extensions)
    (ht-aeach (dolist (layer value)
                (push (format "(%s) post-extension: %s" layer key) result))
              helm-spacemacs-all-post-extensions)
    (sort result 'string<)))

(defun helm-spacemacs//toggle-source ()
