diff --git a/core/core-configuration-layer.el b/core/core-configuration-layer.el index 1c85d9583..04315047f 100644 --- a/core/core-configuration-layer.el +++ b/core/core-configuration-layer.el @@ -637,7 +637,9 @@ path." "Declare all packages contained in LAYERS." (let ((layers2 layers) (warning-minimum-level :error)) - (configuration-layer//load-layers-files layers2 '("packages.el")) + (configuration-layer//load-layers-files layers2 '("packages.el" + "packages-config.el" + "pakcages-funs.el")) ;; gather all the packages of current layer (configuration-layer//sort-packages (configuration-layer/get-packages layers2 t)))) diff --git a/layers/+lang/elixir/packages-config.el b/layers/+lang/elixir/packages-config.el new file mode 100644 index 000000000..4b09f73b4 --- /dev/null +++ b/layers/+lang/elixir/packages-config.el @@ -0,0 +1,134 @@ +;;; packages-config.el --- Elixir Layer packages configuration File for Spacemacs +;; +;; Copyright (c) 2012-2016 Sylvain Benner & Contributors +;; +;; Author: Sylvain Benner +;; URL: https://github.com/syl20bnr/spacemacs +;; +;; This file is not part of GNU Emacs. +;; +;;; License: GPLv3 + +(defun elixir/init-alchemist () + (use-package alchemist + :defer t + :init + (progn + (add-hook 'elixir-mode-hook 'alchemist-mode) + (setq alchemist-project-compile-when-needed t) + (push 'alchemist-company company-backends-elixir-mode) + (push 'alchemist-company company-backends-alchemist-iex-mode)) + :config + (spacemacs/declare-prefix-for-mode 'elixir-mode "mc" "compile") + (spacemacs/declare-prefix-for-mode 'elixir-mode "me" "eval") + (spacemacs/declare-prefix-for-mode 'elixir-mode "mp" "project") + (spacemacs/declare-prefix-for-mode 'elixir-mode "mh" "help") + (spacemacs/declare-prefix-for-mode 'elixir-mode "mt" "test") + (spacemacs/declare-prefix-for-mode 'elixir-mode "ms" "iex") + (spacemacs/declare-prefix-for-mode 'elixir-mode "mm" "mix") + (spacemacs/declare-prefix-for-mode 'elixir-mode "mx" "execute") + (spacemacs/declare-prefix-for-mode 'elixir-mode "mg" "goto") + (spacemacs/set-leader-keys-for-major-mode 'elixir-mode + "el" 'alchemist-eval-current-line + "eL" 'alchemist-eval-print-current-line + "er" 'alchemist-eval-region + "eR" 'alchemist-eval-print-region + "eb" 'alchemist-eval-buffer + "eB" 'alchemist-eval-print-buffer + "ej" 'alchemist-eval-quoted-current-line + "eJ" 'alchemist-eval-print-quoted-current-line + "eu" 'alchemist-eval-quoted-region + "eU" 'alchemist-eval-print-quoted-region + "ev" 'alchemist-eval-quoted-buffer + "eV" 'alchemist-eval-print-quoted-buffer + + "pt" 'alchemist-project-find-test + "gt" 'alchemist-project-toggle-file-and-tests + "gT" 'alchemist-project-toggle-file-and-tests-other-window + + "h:" 'alchemist-help + "hH" 'alchemist-help-history + "hh" 'alchemist-help-search-at-point + "hr" 'alchemist-help-search-marked-region + + "m:" 'alchemist-mix + "mc" 'alchemist-mix-compile + "mx" 'alchemist-mix-run + "mh" 'alchemist-mix-help + + "sc" 'alchemist-iex-compile-this-buffer + "si" 'alchemist-iex-run + "sI" 'alchemist-iex-project-run + "sl" 'alchemist-iex-send-current-line + "sL" 'alchemist-iex-send-current-line-and-go + "sm" 'alchemist-iex-reload-module + "sr" 'alchemist-iex-send-region + "sR" 'alchemist-iex-send-region-and-go + + "ta" 'alchemist-mix-test + "tb" 'alchemist-mix-test-this-buffer + "tt" 'alchemist-mix-test-at-point + "tf" 'alchemist-test-file + "tn" 'alchemist-test-jump-to-next-test + "tp" 'alchemist-test-jump-to-previous-test + "tr" 'alchemist-mix-rerun-last-test + + "xb" 'alchemist-execute-this-buffer + "xf" 'alchemist-execute-file + "x:" 'alchemist-execute + + "cb" 'alchemist-compile-this-buffer + "cf" 'alchemist-compile-file + "c:" 'alchemist-compile + + "gg" 'alchemist-goto-definition-at-point + "," 'alchemist-goto-jump-back) + + (dolist (mode (list alchemist-compile-mode-map + alchemist-eval-mode-map + alchemist-execute-mode-map + alchemist-message-mode-map + alchemist-help-minor-mode-map + alchemist-mix-mode-map + alchemist-macroexpand-mode-map + alchemist-refcard-mode-map + alchemist-test-report-mode-map)) + (evil-define-key 'normal mode + (kbd "q") 'quit-window)))) + +(defun elixir/post-init-company () + (spacemacs|add-company-hook elixir-mode) + (spacemacs|add-company-hook alchemist-iex-mode)) + +(defun elixir/init-elixir-mode () + (use-package elixir-mode + :defer t)) + +(defun elixir/pre-init-popwin () + (spacemacs|use-package-add-hook popwin + :post-config + (push '("*mix*" :tail t :noselect t) popwin:special-display-config))) + +(defun elixir/init-ruby-end () + (use-package ruby-end + :defer t + :init + (progn + (defun spacemacs//ruby-end () + (set (make-variable-buffer-local 'ruby-end-expand-keywords-before-re) + "\\(?:^\\|\\s-+\\)\\(?:do\\)") + (set (make-variable-buffer-local 'ruby-end-check-statement-modifiers) + nil) + (ruby-end-mode +1)) + (add-hook 'elixir-mode-hook 'spacemacs//ruby-end) + ;; hack to remove the autoloaded `add-hook' in `ruby-end' + ;; since they are inserted as an autoload, they have to be removed both + ;; before and after loading + (remove-hook 'ruby-mode-hook 'ruby-end-mode) + (remove-hook 'enh-ruby-mode-hook 'ruby-end-mode)) + :config + (progn + (spacemacs|hide-lighter ruby-end-mode) + ;; see comment in `:init' block + (remove-hook 'ruby-mode-hook 'ruby-end-mode) + (remove-hook 'enh-ruby-mode-hook 'ruby-end-mode)))) diff --git a/layers/+lang/elixir/packages.el b/layers/+lang/elixir/packages.el index 700957ca4..6f0b6838e 100644 --- a/layers/+lang/elixir/packages.el +++ b/layers/+lang/elixir/packages.el @@ -18,126 +18,3 @@ ruby-end )) -(defun elixir/init-alchemist () - (use-package alchemist - :defer t - :init - (progn - (add-hook 'elixir-mode-hook 'alchemist-mode) - (setq alchemist-project-compile-when-needed t) - (push 'alchemist-company company-backends-elixir-mode) - (push 'alchemist-company company-backends-alchemist-iex-mode)) - :config - (spacemacs/declare-prefix-for-mode 'elixir-mode "mc" "compile") - (spacemacs/declare-prefix-for-mode 'elixir-mode "me" "eval") - (spacemacs/declare-prefix-for-mode 'elixir-mode "mp" "project") - (spacemacs/declare-prefix-for-mode 'elixir-mode "mh" "help") - (spacemacs/declare-prefix-for-mode 'elixir-mode "mt" "test") - (spacemacs/declare-prefix-for-mode 'elixir-mode "ms" "iex") - (spacemacs/declare-prefix-for-mode 'elixir-mode "mm" "mix") - (spacemacs/declare-prefix-for-mode 'elixir-mode "mx" "execute") - (spacemacs/declare-prefix-for-mode 'elixir-mode "mg" "goto") - (spacemacs/set-leader-keys-for-major-mode 'elixir-mode - "el" 'alchemist-eval-current-line - "eL" 'alchemist-eval-print-current-line - "er" 'alchemist-eval-region - "eR" 'alchemist-eval-print-region - "eb" 'alchemist-eval-buffer - "eB" 'alchemist-eval-print-buffer - "ej" 'alchemist-eval-quoted-current-line - "eJ" 'alchemist-eval-print-quoted-current-line - "eu" 'alchemist-eval-quoted-region - "eU" 'alchemist-eval-print-quoted-region - "ev" 'alchemist-eval-quoted-buffer - "eV" 'alchemist-eval-print-quoted-buffer - - "pt" 'alchemist-project-find-test - "gt" 'alchemist-project-toggle-file-and-tests - "gT" 'alchemist-project-toggle-file-and-tests-other-window - - "h:" 'alchemist-help - "hH" 'alchemist-help-history - "hh" 'alchemist-help-search-at-point - "hr" 'alchemist-help-search-marked-region - - "m:" 'alchemist-mix - "mc" 'alchemist-mix-compile - "mx" 'alchemist-mix-run - "mh" 'alchemist-mix-help - - "sc" 'alchemist-iex-compile-this-buffer - "si" 'alchemist-iex-run - "sI" 'alchemist-iex-project-run - "sl" 'alchemist-iex-send-current-line - "sL" 'alchemist-iex-send-current-line-and-go - "sm" 'alchemist-iex-reload-module - "sr" 'alchemist-iex-send-region - "sR" 'alchemist-iex-send-region-and-go - - "ta" 'alchemist-mix-test - "tb" 'alchemist-mix-test-this-buffer - "tt" 'alchemist-mix-test-at-point - "tf" 'alchemist-test-file - "tn" 'alchemist-test-jump-to-next-test - "tp" 'alchemist-test-jump-to-previous-test - "tr" 'alchemist-mix-rerun-last-test - - "xb" 'alchemist-execute-this-buffer - "xf" 'alchemist-execute-file - "x:" 'alchemist-execute - - "cb" 'alchemist-compile-this-buffer - "cf" 'alchemist-compile-file - "c:" 'alchemist-compile - - "gg" 'alchemist-goto-definition-at-point - "," 'alchemist-goto-jump-back) - - (dolist (mode (list alchemist-compile-mode-map - alchemist-eval-mode-map - alchemist-execute-mode-map - alchemist-message-mode-map - alchemist-help-minor-mode-map - alchemist-mix-mode-map - alchemist-macroexpand-mode-map - alchemist-refcard-mode-map - alchemist-test-report-mode-map)) - (evil-define-key 'normal mode - (kbd "q") 'quit-window)))) - -(defun elixir/post-init-company () - (spacemacs|add-company-hook elixir-mode) - (spacemacs|add-company-hook alchemist-iex-mode)) - -(defun elixir/init-elixir-mode () - (use-package elixir-mode - :defer t)) - -(defun elixir/pre-init-popwin () - (spacemacs|use-package-add-hook popwin - :post-config - (push '("*mix*" :tail t :noselect t) popwin:special-display-config))) - -(defun elixir/init-ruby-end () - (use-package ruby-end - :defer t - :init - (progn - (defun spacemacs//ruby-end () - (set (make-variable-buffer-local 'ruby-end-expand-keywords-before-re) - "\\(?:^\\|\\s-+\\)\\(?:do\\)") - (set (make-variable-buffer-local 'ruby-end-check-statement-modifiers) - nil) - (ruby-end-mode +1)) - (add-hook 'elixir-mode-hook 'spacemacs//ruby-end) - ;; hack to remove the autoloaded `add-hook' in `ruby-end' - ;; since they are inserted as an autoload, they have to be removed both - ;; before and after loading - (remove-hook 'ruby-mode-hook 'ruby-end-mode) - (remove-hook 'enh-ruby-mode-hook 'ruby-end-mode)) - :config - (progn - (spacemacs|hide-lighter ruby-end-mode) - ;; see comment in `:init' block - (remove-hook 'ruby-mode-hook 'ruby-end-mode) - (remove-hook 'enh-ruby-mode-hook 'ruby-end-mode)))) diff --git a/layers/+tools/elfeed/packages-config.el b/layers/+tools/elfeed/packages-config.el new file mode 100644 index 000000000..7aa221907 --- /dev/null +++ b/layers/+tools/elfeed/packages-config.el @@ -0,0 +1,59 @@ +;;; packages-config el --- elfeed Layer packages figuration File for Spacemacs +;; +;; Copyright (c) 2012-2016 Sylvain Benner & Contributors +;; +;; Author: Sylvain Benner +;; URL: https://github.com/syl20bnr/spacemacs +;; +;; This file is not part of GNU Emacs. +;; +;;; License: GPLv3 + +(defun elfeed/init-elfeed () + (use-package elfeed + :defer t + :init (spacemacs/set-leader-keys "af" 'elfeed) + :config + (progn + (evilified-state-evilify-map elfeed-search-mode-map + :mode elfeed-search-mode + :eval-after-load elfeed-search + :bindings + "c" 'elfeed-db-compact + "gr" 'elfeed-update + "gR" 'elfeed-search-update--force + "gu" 'elfeed-unjam + "o" 'elfeed-load-opml + "q" 'quit-window + "w" 'elfeed-web-start + "W" 'elfeed-web-stop) + (evilified-state-evilify-map elfeed-show-mode-map + :mode elfeed-show-mode + :eval-after-load elfeed-show + :bindings + "q" 'quit-window + (kbd "C-j") 'elfeed-show-next + (kbd "C-k") 'elfeed-show-prev)))) + +(defun elfeed/init-elfeed-goodies () + (use-package elfeed-goodies + :commands elfeed-goodies/setup + :init (spacemacs|use-package-add-hook elfeed + :post-config (elfeed-goodies/setup)))) + +(defun elfeed/init-elfeed-org () + (use-package elfeed-org + :defer t + :if (boundp 'rmh-elfeed-org-files) + :init (spacemacs|use-package-add-hook elfeed + :pre-config (elfeed-org)))) + +(defun elfeed/init-elfeed-web () + (use-package elfeed-web + :defer t + :commands elfeed-web-stop + :init (when elfeed-enable-web-interface + ;; TODO check if the port is already in use + ;; hack to force elfeed feature to be required before elfeed-search + (require 'elfeed) + (elfeed-web-start)))) diff --git a/layers/+tools/elfeed/packages.el b/layers/+tools/elfeed/packages.el index 1d95f298d..c935ab55b 100644 --- a/layers/+tools/elfeed/packages.el +++ b/layers/+tools/elfeed/packages.el @@ -16,51 +16,3 @@ elfeed-web )) -(defun elfeed/init-elfeed () - (use-package elfeed - :defer t - :init (spacemacs/set-leader-keys "af" 'elfeed) - :config - (progn - (evilified-state-evilify-map elfeed-search-mode-map - :mode elfeed-search-mode - :eval-after-load elfeed-search - :bindings - "c" 'elfeed-db-compact - "gr" 'elfeed-update - "gR" 'elfeed-search-update--force - "gu" 'elfeed-unjam - "o" 'elfeed-load-opml - "q" 'quit-window - "w" 'elfeed-web-start - "W" 'elfeed-web-stop) - (evilified-state-evilify-map elfeed-show-mode-map - :mode elfeed-show-mode - :eval-after-load elfeed-show - :bindings - "q" 'quit-window - (kbd "C-j") 'elfeed-show-next - (kbd "C-k") 'elfeed-show-prev)))) - -(defun elfeed/init-elfeed-goodies () - (use-package elfeed-goodies - :commands elfeed-goodies/setup - :init (spacemacs|use-package-add-hook elfeed - :post-config (elfeed-goodies/setup)))) - -(defun elfeed/init-elfeed-org () - (use-package elfeed-org - :defer t - :if (boundp 'rmh-elfeed-org-files) - :init (spacemacs|use-package-add-hook elfeed - :pre-config (elfeed-org)))) - -(defun elfeed/init-elfeed-web () - (use-package elfeed-web - :defer t - :commands elfeed-web-stop - :init (when elfeed-enable-web-interface - ;; TODO check if the port is already in use - ;; hack to force elfeed feature to be required before elfeed-search - (require 'elfeed) - (elfeed-web-start))))