Marking files now works recursively, too.
This commit is contained in:
parent
eef2f8bea9
commit
d6abe6645b
|
@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
|
||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## Unreleased
|
||||||
|
### Added
|
||||||
|
* Marking files now works recursively, too.
|
||||||
|
|
||||||
## [0.3.0] - 2020-01-14
|
## [0.3.0] - 2020-01-14
|
||||||
### Added
|
### Added
|
||||||
* Open sxiv at the image at point
|
* Open sxiv at the image at point
|
||||||
|
|
|
@ -19,7 +19,7 @@ Run it from a text file containing one file name per line to open the listed fil
|
||||||
1. [x] Create user-customizable variable to hold default arguments
|
1. [x] Create user-customizable variable to hold default arguments
|
||||||
2. [x] Start sxiv on the file at point (using `-n ...`)
|
2. [x] Start sxiv on the file at point (using `-n ...`)
|
||||||
3. [x] Let user specify paths to be excluded.
|
3. [x] Let user specify paths to be excluded.
|
||||||
4. [ ] Mark files in subdirectories if run recursively (by inserting the subdirectory into the current buffer)
|
4. [x] Mark files in subdirectories if run recursively (by inserting the subdirectory into the current buffer)
|
||||||
5. [ ] Let user edit options (ideally with transient.el) when called with null argument/two prefix arguments
|
5. [ ] Let user edit options (ideally with transient.el) when called with null argument/two prefix arguments
|
||||||
6. [ ] When running with a lot of files, sxiv may take some time to start. Signal to the user that it is starting, and let them kill it if they want.
|
6. [ ] When running with a lot of files, sxiv may take some time to start. Signal to the user that it is starting, and let them kill it if they want.
|
||||||
7. What should be the behavior when we open Dired-marked files, then mark files within sxiv?
|
7. What should be the behavior when we open Dired-marked files, then mark files within sxiv?
|
||||||
|
|
14
sxiv.el
14
sxiv.el
|
@ -42,15 +42,25 @@ With no marked files, or if not in a Dired buffer, return nil."
|
||||||
nil)
|
nil)
|
||||||
nil))
|
nil))
|
||||||
|
|
||||||
|
(defun sxiv-insert-subdirs (paths)
|
||||||
|
"Insert subdirectories from PATHS into the current Dired buffer.
|
||||||
|
Return PATHS unchanged."
|
||||||
|
(mapc (lambda (path)
|
||||||
|
;; is the file a direct child? (i.e. exists in the current directory?)
|
||||||
|
(unless (file-exists-p (file-name-nondirectory path))
|
||||||
|
(dired-insert-subdir (file-name-directory path))))
|
||||||
|
paths)
|
||||||
|
paths)
|
||||||
|
|
||||||
(defun sxiv-filter (_process output)
|
(defun sxiv-filter (_process output)
|
||||||
"Open a `dired' buffer and mark any files marked by the user in `sxiv'.
|
"Open a `dired' buffer and mark any files marked by the user in `sxiv'.
|
||||||
Used as process filter for `sxiv'.
|
Used as process filter for `sxiv'.
|
||||||
|
|
||||||
OUTPUT is the output of the sxiv process as a string."
|
OUTPUT is the output of the sxiv process as a string."
|
||||||
(find-file sxiv--directory)
|
(find-file sxiv--directory)
|
||||||
(--> output
|
(--> (split-string output "\n")
|
||||||
(split-string it "\n")
|
|
||||||
(-drop-last 1 it)
|
(-drop-last 1 it)
|
||||||
|
(sxiv-insert-subdirs it)
|
||||||
(sxiv-dired-mark-files it)))
|
(sxiv-dired-mark-files it)))
|
||||||
|
|
||||||
(defun sxiv-dired-mark-files (files)
|
(defun sxiv-dired-mark-files (files)
|
||||||
|
|
Reference in New Issue