Remove redundant dired sort hook #1414
This still means dired will be unsorted for BSD ls users, but that's acceptable (for now).
This commit is contained in:
parent
3d53aa5dad
commit
75777756e1
3 changed files with 15 additions and 20 deletions
|
@ -262,6 +262,14 @@ original value of `symbol-file'."
|
|||
(doom|run-local-var-hooks)))
|
||||
(add-hook 'after-change-major-mode-hook #'doom|run-local-var-hooks-if-necessary)
|
||||
|
||||
(defun doom|create-non-existent-directories ()
|
||||
"Automatically create missing directories when creating new files."
|
||||
(let ((parent-directory (file-name-directory buffer-file-name)))
|
||||
(when (and (not (file-exists-p parent-directory))
|
||||
(y-or-n-p (format "Directory `%s' does not exist! Create it?" parent-directory)))
|
||||
(make-directory parent-directory t))))
|
||||
(add-hook 'find-file-not-found-functions #'doom|create-non-existent-directories)
|
||||
|
||||
|
||||
;;
|
||||
;;; Garbage collector optimizations
|
||||
|
|
|
@ -24,27 +24,10 @@
|
|||
;; when not using GNU ls.
|
||||
(if-let* ((gls (executable-find "gls")))
|
||||
(setq insert-directory-program gls)
|
||||
(setq args (delete "--group-directories-first" args))
|
||||
(message "Cannot find `gls` (GNU ls). Install coreutils via your system package manager")))
|
||||
;; BSD ls doesn't support --group-directories-first
|
||||
(setq args (delete "--group-directories-first" args))))
|
||||
(setq dired-listing-switches (string-join args " ")))
|
||||
|
||||
(defun +dired|sort-directories-first ()
|
||||
"List directories first in dired buffers."
|
||||
(save-excursion
|
||||
(let (buffer-read-only)
|
||||
(forward-line 2) ;; beyond dir. header
|
||||
(sort-regexp-fields t "^.*$" "[ ]*." (point) (point-max))))
|
||||
(set-buffer-modified-p nil))
|
||||
(add-hook 'dired-after-readin-hook #'+dired|sort-directories-first)
|
||||
|
||||
;; Automatically create missing directories when creating new files
|
||||
(defun +dired|create-non-existent-directory ()
|
||||
(let ((parent-directory (file-name-directory buffer-file-name)))
|
||||
(when (and (not (file-exists-p parent-directory))
|
||||
(y-or-n-p (format "Directory `%s' does not exist! Create it?" parent-directory)))
|
||||
(make-directory parent-directory t))))
|
||||
(add-to-list 'find-file-not-found-functions '+dired|create-non-existent-directory nil #'eq)
|
||||
|
||||
;; Kill buffer when quitting dired buffers
|
||||
(define-key dired-mode-map [remap quit-window] (λ! (quit-window t))))
|
||||
|
||||
|
@ -103,7 +86,7 @@
|
|||
|
||||
|
||||
;;
|
||||
;; Evil integration
|
||||
;;; Evil integration
|
||||
|
||||
(map! :when (featurep! :editor evil +everywhere)
|
||||
:after dired
|
||||
|
|
4
modules/emacs/dired/doctor.el
Normal file
4
modules/emacs/dired/doctor.el
Normal file
|
@ -0,0 +1,4 @@
|
|||
;;; emacs/dired/doctor.el -*- lexical-binding: t; -*-
|
||||
|
||||
(when (and IS-BSD (not (executable-find "gls")))
|
||||
(warn! "Cannot find gls (GNU ls). This may cause issues with dired"))
|
Loading…
Add table
Add a link
Reference in a new issue