Skip to content

Commit 0c85bb3

Browse files
authored
Merge pull request #2 from emacs-dashboard/imp
Improve load time
2 parents 2639eb0 + 932fbdd commit 0c85bb3

File tree

1 file changed

+24
-22
lines changed

1 file changed

+24
-22
lines changed

dashboard-ls.el

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
;; Description: Display files/directories in current directory on Dashboard.
88
;; Keyword: directory file show dashboard
99
;; Version: 0.2.2
10-
;; Package-Requires: ((emacs "24.3") (dashboard "1.2.5") (f "0.20.0") (s "1.12.0"))
10+
;; Package-Requires: ((emacs "24.3") (dashboard "1.2.5"))
1111
;; URL: https://github.com/emacs-dashboard/dashboard-ls
1212

1313
;; This file is NOT part of GNU Emacs.
@@ -32,13 +32,10 @@
3232

3333
;;; Code:
3434

35-
(require 'f)
36-
(require 's)
37-
3835
(require 'dashboard)
3936

40-
(add-to-list 'dashboard-item-generators '(ls-directories . dashboard-ls--insert-dir))
41-
(add-to-list 'dashboard-item-generators '(ls-files . dashboard-ls--insert-file))
37+
(push '(ls-directories . dashboard-ls--insert-dir) dashboard-item-generators)
38+
(push '(ls-files . dashboard-ls--insert-file) dashboard-item-generators)
4239

4340
(defvar dashboard-ls-path nil
4441
"Update to date current path.
@@ -52,18 +49,23 @@ Use this variable when you don't have the `default-directory' up to date.")
5249
(setq dashboard-ls--record-path (or dashboard-ls-path default-directory))
5350
dashboard-ls--record-path)
5451

52+
(defun dashboard-ls--entries (path)
53+
"Return entries from PATH."
54+
(when (file-directory-p path)
55+
(directory-files path nil "^\\([^.]\\|\\.[^.]\\|\\.\\..\\)")))
56+
5557
(defun dashboard-ls--insert-dir (list-size)
5658
"Add the list of LIST-SIZE items from current directory."
5759
(dashboard-insert-section
58-
"Current Directories:"
60+
"List Directories:"
5961
(let* ((current-dir (dashboard-ls--current-path))
60-
(dir-lst (when (f-dir-p current-dir) (f-directories current-dir)))
61-
(opt-dir-lst '()))
62-
(dolist (dir dir-lst)
63-
(setq dir (s-replace current-dir "./" dir)
64-
dir (s-replace "//" "/" dir))
65-
(push (concat dir "/") opt-dir-lst))
66-
(reverse opt-dir-lst))
62+
(entries (dashboard-ls--entries current-dir))
63+
result)
64+
(dolist (dir entries)
65+
(when (file-directory-p (expand-file-name dir current-dir))
66+
(setq dir (concat "./" dir))
67+
(push (concat dir "/") result)))
68+
(reverse result))
6769
list-size
6870
(dashboard-get-shortcut 'ls-directories)
6971
`(lambda (&rest ignore)
@@ -73,15 +75,15 @@ Use this variable when you don't have the `default-directory' up to date.")
7375
(defun dashboard-ls--insert-file (list-size)
7476
"Add the list of LIST-SIZE items from current files."
7577
(dashboard-insert-section
76-
"Current Files:"
78+
"List Files:"
7779
(let* ((current-dir (dashboard-ls--current-path))
78-
(file-lst (when (f-dir-p current-dir) (f-files current-dir)))
79-
(opt-file-lst '()))
80-
(dolist (file file-lst)
81-
(setq file (s-replace current-dir "./" file)
82-
file (s-replace "//" "/" file))
83-
(push file opt-file-lst))
84-
(reverse opt-file-lst))
80+
(entries (dashboard-ls--entries current-dir))
81+
result)
82+
(dolist (file entries)
83+
(unless (file-directory-p (expand-file-name file current-dir))
84+
(setq file (concat "./" file))
85+
(push file result)))
86+
(reverse result))
8587
list-size
8688
(dashboard-get-shortcut 'ls-files)
8789
`(lambda (&rest ignore)

0 commit comments

Comments
 (0)