]> code.delx.au - dotemacs/commitdiff
load-path improvements
authorJames Bunton <jamesbunton@delx.net.au>
Sat, 30 Jul 2016 07:54:13 +0000 (17:54 +1000)
committerJames Bunton <jamesbunton@delx.net.au>
Sat, 30 Jul 2016 07:59:39 +0000 (17:59 +1000)
init.el

diff --git a/init.el b/init.el
index 23d4a92a37d8095d36bb8f51e5489d4f57de2d7e..85aaa337bad00613f7bb7848a98677a2d69aa60d 100644 (file)
--- a/init.el
+++ b/init.el
@@ -1,12 +1,29 @@
 ;;; -*- lexical-binding: t -*-
 
-(add-to-list 'load-path "~/.emacs.d/lisp/")
+(require 'cl-lib)
 
-(dolist (name (directory-files "~/.emacs.d/packages/"))
-  (let ((dirname (concat "~/.emacs.d/packages/" name)))
-    (if (not (equal "." (substring name 0 1)))
-        (if (file-accessible-directory-p dirname)
-            (add-to-list 'load-path dirname)))))
+(defvar my/original-load-path load-path)
+
+(defun my/add-to-load-path (dirname)
+  (and (string-match-p "^[^\\.]" dirname)
+       (file-accessible-directory-p dirname)
+       (cl-remove-if-not (lambda (file) (string-match-p "\\.el$" file)) (directory-files dirname))
+       (add-to-list 'load-path dirname)))
+
+(defun my/setup-load-path ()
+  (setq load-path my/original-load-path)
+
+  (my/add-to-load-path "~/.emacs.d/lisp")
+
+  (dolist (name (directory-files "~/.emacs.d/packages"))
+    (let ((dirname (concat "~/.emacs.d/packages/" name)))
+      (my/add-to-load-path dirname)
+      (my/add-to-load-path (concat dirname "/lisp"))))
+
+  (message "Set load-path: %S" load-path))
+
+
+(my/setup-load-path)
 
 (load-library "my-backups")
 (load-library "my-completion")