core: new layer files packages-config.el and packages-funcs.el
Start to isolate the list of packages. Also we want to define packages function at the top level of an elisp file in order to not prevent emacs from knowing where the functions are defined. This commit has a POC made with elfeed and elixir layers.
This commit is contained in:
parent
33fd71d4bf
commit
5a061b3813
|
@ -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))))
|
||||
|
|
|
@ -0,0 +1,134 @@
|
|||
;;; packages-config.el --- Elixir Layer packages configuration File for Spacemacs
|
||||
;;
|
||||
;; Copyright (c) 2012-2016 Sylvain Benner & Contributors
|
||||
;;
|
||||
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
|
||||
;; 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))))
|
|
@ -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))))
|
||||
|
|
|
@ -0,0 +1,59 @@
|
|||
;;; packages-config el --- elfeed Layer packages figuration File for Spacemacs
|
||||
;;
|
||||
;; Copyright (c) 2012-2016 Sylvain Benner & Contributors
|
||||
;;
|
||||
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
|
||||
;; 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))))
|
|
@ -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))))
|
||||
|
|
Loading…
Reference in New Issue