forked from FG42/FG42
1
0
Fork 0
FG42/lib/fg42/base.el

41 lines
1.2 KiB
EmacsLisp
Raw Normal View History

(require 'cl-lib)
(require 'fg42/extension)
2015-07-09 11:37:36 +01:00
;; Macros ---------------------------------
(defmacro theme (name)
"Load the given theme name"
`(progn
(require ',(intern (symbol-name name)))
(eval-after-load "color-theme"
'(progn
(color-theme-initialize)
(,name)))))
;; Functions ------------------------------
(defun load--extension (extension)
"Load a single extension and call its :on-initialize function"
2015-07-07 12:25:06 +01:00
(let ((lib (concat "extensions/" (symbol-name extension))))
(require (intern lib))))
(defun initialize--extension (extension)
"Initialize given extension by calling its :on-initialize function."
(let ((init-func (fg42-extension-on-initialize (symbol-value extension))))
(funcall (symbol-function init-func))))
2015-07-07 12:25:06 +01:00
(defun initialize-extensions ()
"Call the :on-initialize function on all extensions."
(mapcar 'initialize--extension activated-extensions))
2015-07-07 12:25:06 +01:00
(defun activate-extensions (&rest extensions)
"Mark given plugins to load on FG42"
2015-07-07 12:25:06 +01:00
(setq activated-extensions extensions)
(mapcar 'load--extension extensions))
(defun load-user-config (file)
"Load the given path as user config file"
(if (file-exists-p file)
(load-file file)))
2015-07-09 11:37:36 +01:00
(provide 'fg42/base)