;;; -*- 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")