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.
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