@@ -118,38 +118,43 @@ is ignored."
118
118
(buffer-string )))
119
119
(push ov tmsu-dired-overlay-overlays))))
120
120
121
- ;;;### autoload
122
- (defun tmsu-dired-overlay-create-overlays (tags &optional no-replace )
121
+ (defun tmsu-dired-overlay-create-overlays (&optional tags )
123
122
" Add overlays with the values of TAGS to all `dired' files.
124
123
125
- Unless NO-REPLACE is passed (\\ [universal-argument]), the
126
- previous such overlays are removed first."
127
- (interactive " i\n P" )
128
- (unless (tmsu-database-p)
129
- (error " No TMSU database " ))
130
- (setq tags (or tags (completing-read-multiple
131
- " TMSU tags to display: " (tmsu-get-tags)
132
- nil nil nil 'tmsu-query-history )))
133
- (unless no-replace
134
- (tmsu-dired-overlay-delete-overlays (dired-subdir-min)
135
- (dired-subdir-max )))
136
- (when tags
137
- (save-excursion
138
- (goto-char (dired-subdir-min))
139
- (let ((max (1- (dired-subdir-max )))
140
- (file-tags-alist (tmsu-get-tags-for-files
141
- (directory-files (dired-current-directory ) t )
142
- tags)))
143
- (while (< (point ) max )
144
- (when-let ((file (dired-get-filename nil t )))
145
- (tmsu-dired-overlay-create-overlay-at-point
146
- tags (assoc file file-tags-alist)))
147
- (forward-line 1 ))))
148
- (add-function :before (local 'revert-buffer-function )
149
- #'tmsu-dired-overlay-delete-all-overlays )))
124
+ If TAGS is nil, show all the tags with no filtering."
125
+ (save-excursion
126
+ (goto-char (dired-subdir-min))
127
+ (let ((max (1- (dired-subdir-max )))
128
+ (file-tags-alist (tmsu-get-tags-for-files
129
+ (directory-files (dired-current-directory ) t )
130
+ tags)))
131
+ (while (< (point ) max )
132
+ (when-let ((file (dired-get-filename nil t )))
133
+ (tmsu-dired-overlay-create-overlay-at-point
134
+ tags (assoc file file-tags-alist)))
135
+ (forward-line 1 ))))
136
+ (add-function :before (local 'revert-buffer-function )
137
+ #'tmsu-dired-overlay-delete-all-overlays ))
150
138
151
139
;;;### autoload
152
- (defalias 'tmsu-dired-overlay 'tmsu-dired-overlay-create-overlays )
140
+ (defun tmsu-dired-overlay (&optional only-remove )
141
+ " Interactively add/replace overlays with tag values to `dired' .
142
+
143
+ When ONLY-REMOVE (\\ [universal-argument]) is passed, don't ask
144
+ for tags and only remove the tag overlays within the current
145
+ subdir instead.
146
+
147
+ Selecting an empty list of tags displays all the tags."
148
+ (interactive " P" )
149
+ (unless (tmsu-database-p)
150
+ (error " No TMSU database " ))
151
+ (if only-remove
152
+ (tmsu-dired-overlay-delete-overlays)
153
+ (let ((tags (completing-read-multiple
154
+ " TMSU tags to display: " (tmsu-get-tags)
155
+ nil nil nil 'tmsu-query-history )))
156
+ (tmsu-dired-overlay-delete-overlays)
157
+ (tmsu-dired-overlay-create-overlays tags))))
153
158
154
159
(provide 'tmsu-dired-overlay )
155
160
; ;; tmsu-dired-overlay.el ends here
0 commit comments