[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/helm 0b81f4d5d1 1/3: Reorder no code change
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/helm 0b81f4d5d1 1/3: Reorder no code change |
Date: |
Thu, 7 Jul 2022 03:58:38 -0400 (EDT) |
branch: elpa/helm
commit 0b81f4d5d1ac3c9ce3179f5c6cdc67a26413782d
Author: Thierry Volpiatto <thievol@posteo.net>
Commit: Thierry Volpiatto <thievol@posteo.net>
Reorder no code change
Move all defcustoms in their sections, keymaps and internals on top.
---
helm-files.el | 756 +++++++++++++++++++++++++++++-----------------------------
1 file changed, 384 insertions(+), 372 deletions(-)
diff --git a/helm-files.el b/helm-files.el
index 0b9c9bdc50..4c19df8cfe 100644
--- a/helm-files.el
+++ b/helm-files.el
@@ -101,7 +101,176 @@
(defvar eshell-current-command)
(defvar tramp-archive-enabled)
(defvar password-cache)
+
+;;; Internal vars
+;;
+(defvar helm-ff-last-expanded-candidate-regexp "^[[:multibyte:] ]*%s$"
+ "Regexp that retrieve previous candidate when going up one level.
+The default value matching a multibyte char at bol allows prefixing
+candidate with an icon. The format part will be replaced by the
+display part of the candidate regexp quoted.")
+
+(defvar helm-find-files-doc-header "
(\\<helm-find-files-map>\\[helm-find-files-up-one-level]: Go up one level)"
+ "*The doc that is inserted in the Name header of a find-files or dired
source.")
+(defvar helm-ff-auto-update-flag nil
+ "Internal, flag to turn on/off auto-update in `helm-find-files'.
+Don't set it directly, use instead `helm-ff-auto-update-initial-value'.")
+(defvar helm-ff-last-expanded nil
+ "Store last expanded directory or file.")
+(defvar helm-ff-default-directory nil)
+(defvar helm-ff-history nil)
+(defvar helm-ff-url-regexp
+
"\\`\\(news\\(post\\)?:\\|nntp:\\|mailto:\\|file:\\|\\(ftp\\|https?\\|telnet\\|gopher\\|www\\|wais\\):/?/?\\).*"
+ "Same as `ffap-url-regexp' but match earlier possible url.")
+;; helm-tramp-file-name-regexp is based on old version of
+;; tramp-file-name-regexp i.e. "\\`/\\([^[/:]+\\|[^/]+]\\):" but it
+;; seems it is wrong and a simpler regexp is enough, let's try it and
+;; watch out!
+(defvar helm-tramp-file-name-regexp "\\`/\\([^/:|]+\\):")
+(defvar helm-ff-tramp-method-regexp "[/|]:\\([^:]*\\)")
+(defvar helm-marked-buffer-name "*helm marked*")
+(defvar helm-ff--auto-update-state nil)
+(defvar helm-ff--deleting-char-backward nil)
+(defvar helm-multi-files--toggle-locate nil)
+(defvar helm-ff--move-to-first-real-candidate t)
+(defvar helm-find-files--toggle-bookmark nil)
+(defvar helm-ff--tramp-methods nil)
+(defvar helm-ff--directory-files-length (make-hash-table :test 'equal)
+ "Used to count number of candidates in directory.
+candidate-number-limit is set to this value if this value is bigger
+than `helm-candidate-number-limit'.")
+(defvar helm-ff--list-directory-cache (make-hash-table :test 'equal)
+ "Cache for `helm-find-files' candidates.")
+(defvar helm-ff--file-notify-watchers (make-hash-table :test 'equal)
+ "File-notify watchers for `helm-find-files' are stored here.")
+(defvar helm-ff-history-buffer-name "*helm-find-files history*")
+(defvar helm-rsync-command-history nil)
+(defvar helm-rsync--last-progress-bar-alist nil
+ "Used to store last valid rsync progress bar.")
+(defvar helm-rsync-process-buffer "*helm-rsync*")
+(defvar helm-rsync-progress-str-alist nil)
+(defvar helm-ff--trash-directory-regexp "\\.?Trash[/0-9]+files/?\\'")
+(defvar helm-ff--show-directories-only nil)
+(defvar helm-ff--show-files-only nil)
+(defvar helm-ff--trashed-files nil
+ "[INTERNAL] Files already trashed are stored here during file deletion.
+This is used only as a let binding.")
+(defvar helm-ff--show-thumbnails nil)
+(defvar helm-ff--thumbnailed-directories nil)
+
+
+;;; Helm-find-files - The helm file browser.
+;;
+;; Keymaps
+
+(defvar helm-find-files-map
+ (let ((map (make-sparse-keymap)))
+ (set-keymap-parent map helm-map)
+ (define-key map (kbd "RET") 'helm-ff-RET)
+ (define-key map (kbd "C-]") 'helm-ff-run-toggle-basename)
+ (define-key map (kbd "C-x C-f") 'helm-ff-run-locate)
+ (define-key map (kbd "C-x C-d") 'helm-ff-run-browse-project)
+ (define-key map (kbd "C-x r m") 'helm-ff-bookmark-set)
+ (define-key map (kbd "C-x r b") 'helm-find-files-switch-to-bookmark)
+ (define-key map (kbd "C-x C-q") 'helm-ff-run-marked-files-in-dired)
+ (define-key map (kbd "C-s") 'helm-ff-run-grep)
+ (define-key map (kbd "M-g s") 'helm-ff-run-grep)
+ (define-key map (kbd "M-g p") 'helm-ff-run-pdfgrep)
+ (define-key map (kbd "M-g z") 'helm-ff-run-zgrep)
+ (define-key map (kbd "M-g a") 'helm-ff-run-grep-ag)
+ (define-key map (kbd "M-g g") 'helm-ff-run-git-grep)
+ (define-key map (kbd "M-g i") 'helm-ff-run-gid)
+ (define-key map (kbd "M-.") 'helm-ff-run-etags)
+ (define-key map (kbd "M-R") 'helm-ff-run-rename-file)
+ (define-key map (kbd "M-C") 'helm-ff-run-copy-file)
+ (when (executable-find "rsync")
+ (define-key map (kbd "M-V") 'helm-ff-run-rsync-file))
+ (define-key map (kbd "M-B") 'helm-ff-run-byte-compile-file)
+ (define-key map (kbd "M-L") 'helm-ff-run-load-file)
+ (define-key map (kbd "M-S") 'helm-ff-run-symlink-file)
+ (define-key map (kbd "M-Y") 'helm-ff-run-relsymlink-file)
+ (define-key map (kbd "M-H") 'helm-ff-run-hardlink-file)
+ (define-key map (kbd "M-D") 'helm-ff-run-delete-file)
+ (define-key map (kbd "M-K") 'helm-ff-run-kill-buffer-persistent)
+ (define-key map (kbd "M-T") 'helm-ff-run-touch-files)
+ (define-key map (kbd "C-c d") 'helm-ff-persistent-delete)
+ (define-key map (kbd "M-e") 'helm-ff-run-switch-to-shell)
+ (define-key map (kbd "C-c i") 'helm-ff-run-complete-fn-at-point)
+ (define-key map (kbd "C-c o") 'helm-ff-run-switch-other-window)
+ (define-key map (kbd "C-c C-o") 'helm-ff-run-switch-other-frame)
+ (define-key map (kbd "C-c C-x") 'helm-ff-run-open-file-externally)
+ (define-key map (kbd "C-c C-v") 'helm-ff-run-preview-file-externally)
+ (define-key map (kbd "C-c X")
'helm-ff-run-open-file-with-default-tool)
+ (define-key map (kbd "C-c t") 'helm-ff-toggle-thumbnails)
+ (define-key map (kbd "M-!") 'helm-ff-run-eshell-command-on-file)
+ (define-key map (kbd "M-@")
'helm-ff-run-query-replace-fnames-on-marked)
+ (define-key map (kbd "M-%") 'helm-ff-run-query-replace)
+ (define-key map (kbd "C-M-%") 'helm-ff-run-query-replace-regexp)
+ (define-key map (kbd "C-c =") 'helm-ff-run-ediff-file)
+ (define-key map (kbd "M-=") 'helm-ff-run-ediff-merge-file)
+ (define-key map (kbd "M-p") 'helm-find-files-history)
+ (define-key map (kbd "C-c h") 'helm-ff-file-name-history)
+ (define-key map (kbd "M-i") 'helm-ff-properties-persistent)
+ (define-key map (kbd "C-}") 'helm-narrow-window)
+ (define-key map (kbd "C-{") 'helm-enlarge-window)
+ (define-key map (kbd "C-<backspace>") 'helm-ff-run-toggle-auto-update)
+ (define-key map (kbd "C-c <DEL>") 'helm-ff-run-toggle-auto-update)
+ (define-key map (kbd "C-c C-a") 'helm-ff-run-mail-attach-files)
+ (define-key map (kbd "C-c p") 'helm-ff-run-print-file)
+ (define-key map (kbd "C-c /") 'helm-ff-run-find-sh-command)
+ (define-key map (kbd "C-/") 'helm-ff-run-fd)
+ ;; Next 2 have no effect if candidate is not an image file.
+ (define-key map (kbd "M-l") 'helm-ff-rotate-left-persistent)
+ (define-key map (kbd "M-r") 'helm-ff-rotate-right-persistent)
+ (define-key map (kbd "M-+")
'helm-ff-increase-image-size-persistent)
+ (define-key map (kbd "M--")
'helm-ff-decrease-image-size-persistent)
+ (define-key map (kbd "C-l") 'helm-find-files-up-one-level)
+ (define-key map (kbd "C-:") 'helm-ff-complete-tramp-methods)
+ (define-key map (kbd "C-_") 'helm-ff-undo)
+ (define-key map (kbd "C-r") 'helm-find-files-down-last-level)
+ (define-key map (kbd "C-c r") 'helm-ff-run-find-file-as-root)
+ (define-key map (kbd "C-x C-v") 'helm-ff-run-find-alternate-file)
+ (define-key map (kbd "C-c @") 'helm-ff-run-insert-org-link)
+ (define-key map (kbd "S-<f1>") 'helm-ff-sort-alpha)
+ (define-key map (kbd "S-<f2>") 'helm-ff-sort-by-newest)
+ (define-key map (kbd "S-<f3>") 'helm-ff-sort-by-size)
+ (define-key map (kbd "S-<f4>") 'helm-ff-toggle-dirs-only)
+ (define-key map (kbd "S-<f5>") 'helm-ff-toggle-files-only)
+ (define-key map (kbd "S-<f6>") 'helm-ff-sort-by-ext)
+ (helm-define-key-with-subkeys map (kbd "DEL") ?\d
'helm-ff-delete-char-backward
+ '((C-backspace .
helm-ff-run-toggle-auto-update)
+ ([C-c DEL] .
helm-ff-run-toggle-auto-update))
+ nil 'helm-ff-delete-char-backward--exit-fn)
+ (when (fboundp 'tab-bar-mode)
+ (define-key map (kbd "C-c C-t") 'helm-ff-find-file-other-tab))
+ map)
+ "Keymap for `helm-find-files'.")
+
+(defvar helm-read-file-map
+ (let ((map (make-sparse-keymap)))
+ (set-keymap-parent map helm-map)
+ (define-key map (kbd "<C-return>") 'helm-cr-empty-string)
+ (define-key map (kbd "M-RET") 'helm-cr-empty-string)
+ (define-key map (kbd "C-]") 'helm-ff-run-toggle-basename)
+ (define-key map (kbd "C-.") 'helm-find-files-up-one-level)
+ (define-key map (kbd "C-l") 'helm-find-files-up-one-level)
+ (define-key map (kbd "C-:") 'helm-ff-complete-tramp-methods)
+ (define-key map (kbd "C-_") 'helm-ff-undo)
+ (define-key map (kbd "C-r") 'helm-find-files-down-last-level)
+ (define-key map (kbd "C-c h") 'helm-ff-file-name-history)
+ (define-key map (kbd "C-<backspace>") 'helm-ff-run-toggle-auto-update)
+ (define-key map (kbd "C-c <DEL>") 'helm-ff-run-toggle-auto-update)
+ (define-key map (kbd "RET") 'helm-ff-RET)
+ (helm-define-key-with-subkeys map (kbd "DEL") ?\d
'helm-ff-delete-char-backward
+ '((C-backspace .
helm-ff-run-toggle-auto-update)
+ ([C-c DEL] .
helm-ff-run-toggle-auto-update))
+ nil 'helm-ff-delete-char-backward--exit-fn)
+ map)
+ "Keymap for `helm-read-file-name'.")
+
+;;; User variables
+;;
(defgroup helm-files nil
"Files applications and libraries for Helm."
:group 'helm)
@@ -515,250 +684,6 @@ specs.
It is generally \"~/.local/share/Trash\"."
:type 'string
:group 'helm-files)
-
-;;; Faces
-;;
-;;
-(defgroup helm-files-faces nil
- "Customize the appearance of helm-files."
- :prefix "helm-"
- :group 'helm-files
- :group 'helm-faces)
-
-(defface helm-ff-prefix
- `((t ,@(and (>= emacs-major-version 27) '(:extend t))
- :background "yellow" :foreground "black"))
- "Face used to prefix new file or url paths in `helm-find-files'."
- :group 'helm-files-faces)
-
-(defface helm-ff-executable
- `((t ,@(and (>= emacs-major-version 27) '(:extend t))
- :foreground "green"))
- "Face used for executable files in `helm-find-files'."
- :group 'helm-files-faces)
-
-(defface helm-ff-suid
- `((t ,@(and (>= emacs-major-version 27) '(:extend t))
- :background "red" :foreground "white"))
- "Face used for suid files in `helm-find-files'."
- :group 'helm-files-faces)
-
-(defface helm-ff-directory
- `((t ,@(and (>= emacs-major-version 27) '(:extend t))
- :foreground "DarkRed" :background "LightGray"))
- "Face used for directories in `helm-find-files'."
- :group 'helm-files-faces)
-
-(defface helm-ff-dotted-directory
- `((t ,@(and (>= emacs-major-version 27) '(:extend t))
- :foreground "black" :background "DimGray"))
- "Face used for dotted directories in `helm-find-files'."
- :group 'helm-files-faces)
-
-(defface helm-ff-dotted-symlink-directory
- `((t ,@(and (>= emacs-major-version 27) '(:extend t))
- :foreground "DarkOrange" :background "DimGray"))
- "Face used for dotted symlinked directories in `helm-find-files'."
- :group 'helm-files-faces)
-
-(defface helm-ff-symlink
- `((t ,@(and (>= emacs-major-version 27) '(:extend t))
- :inherit font-lock-comment-face))
- "Face used for symlinks in `helm-find-files'."
- :group 'helm-files-faces)
-
-(defface helm-ff-invalid-symlink
- `((t ,@(and (>= emacs-major-version 27) '(:extend t))
- :foreground "black" :background "red"))
- "Face used for invalid symlinks in `helm-find-files'."
- :group 'helm-files-faces)
-
-(defface helm-ff-denied
- `((t ,@(and (>= emacs-major-version 27) '(:extend t))
- :foreground "red" :background "black"))
- "Face used for non accessible files in `helm-find-files'."
- :group 'helm-files-faces)
-
-(defface helm-ff-file
- `((t ,@(and (>= emacs-major-version 27) '(:extend t))
- :inherit font-lock-builtin-face))
- "Face used for file names in `helm-find-files'."
- :group 'helm-files-faces)
-
-(defface helm-ff-nofile
- `((t ,@(and (>= emacs-major-version 27) '(:extend t))
- :inherit helm-ff-file))
- "Face used for file names in `helm-find-files'."
- :group 'helm-files-faces)
-
-(defface helm-ff-truename
- `((t ,@(and (>= emacs-major-version 27) '(:extend t))
- :inherit font-lock-string-face))
- "Face used for symlink truenames in `helm-find-files'."
- :group 'helm-files-faces)
-
-(defface helm-ff-dirs
- `((t ,@(and (>= emacs-major-version 27) '(:extend t))
- :inherit font-lock-function-name-face))
- "Face used for file names in recursive dirs completion in `helm-find-files'."
- :group 'helm-files-faces)
-
-(defface helm-ff-socket
- `((t ,@(and (>= emacs-major-version 27) '(:extend t))
- :foreground "DeepPink"))
- "Face used for socket files in `helm-find-files'."
- :group 'helm-files-faces)
-
-(defface helm-ff-pipe
- `((t ,@(and (>= emacs-major-version 27) '(:extend t))
- :foreground "yellow" :background "black"))
- "Face used for named pipes and character device files in `helm-find-files'."
- :group 'helm-files-faces)
-
-(defface helm-ff-file-extension
- `((t ,@(and (>= emacs-major-version 27) '(:extend t))
- :foreground "magenta"))
- "Face used for file extensions in `helm-find-files'."
- :group 'helm-files-faces)
-
-(defface helm-ff-backup-file
- `((t ,@(and (>= emacs-major-version 27) '(:extend t))
- :foreground "DimGray"))
- "Face used for backup files in `helm-find-files'."
- :group 'helm-files-faces)
-
-(defface helm-history-deleted
- `((t ,@(and (>= emacs-major-version 27) '(:extend t))
- :inherit helm-ff-invalid-symlink))
- "Face used for deleted files in `file-name-history'."
- :group 'helm-files-faces)
-
-(defface helm-history-remote
- `((t ,@(and (>= emacs-major-version 27) '(:extend t))
- :foreground "Indianred1"))
- "Face used for remote files in `file-name-history'."
- :group 'helm-files-faces)
-
-(defface helm-delete-async-message
- `((t ,@(and (>= emacs-major-version 27) '(:extend t))
- :foreground "yellow"))
- "Face used for mode-line message."
- :group 'helm-files-faces)
-
-(defface helm-ff-rsync-progress
- `((t ,@(and (>= emacs-major-version 27) '(:extend t))
- :inherit font-lock-warning-face))
- "Face used for rsync mode-line indicator."
- :group 'helm-files-faces)
-
-;;; Helm-find-files - The helm file browser.
-;;
-;; Keymaps
-
-(defvar helm-find-files-map
- (let ((map (make-sparse-keymap)))
- (set-keymap-parent map helm-map)
- (define-key map (kbd "RET") 'helm-ff-RET)
- (define-key map (kbd "C-]") 'helm-ff-run-toggle-basename)
- (define-key map (kbd "C-x C-f") 'helm-ff-run-locate)
- (define-key map (kbd "C-x C-d") 'helm-ff-run-browse-project)
- (define-key map (kbd "C-x r m") 'helm-ff-bookmark-set)
- (define-key map (kbd "C-x r b") 'helm-find-files-switch-to-bookmark)
- (define-key map (kbd "C-x C-q") 'helm-ff-run-marked-files-in-dired)
- (define-key map (kbd "C-s") 'helm-ff-run-grep)
- (define-key map (kbd "M-g s") 'helm-ff-run-grep)
- (define-key map (kbd "M-g p") 'helm-ff-run-pdfgrep)
- (define-key map (kbd "M-g z") 'helm-ff-run-zgrep)
- (define-key map (kbd "M-g a") 'helm-ff-run-grep-ag)
- (define-key map (kbd "M-g g") 'helm-ff-run-git-grep)
- (define-key map (kbd "M-g i") 'helm-ff-run-gid)
- (define-key map (kbd "M-.") 'helm-ff-run-etags)
- (define-key map (kbd "M-R") 'helm-ff-run-rename-file)
- (define-key map (kbd "M-C") 'helm-ff-run-copy-file)
- (when (executable-find "rsync")
- (define-key map (kbd "M-V") 'helm-ff-run-rsync-file))
- (define-key map (kbd "M-B") 'helm-ff-run-byte-compile-file)
- (define-key map (kbd "M-L") 'helm-ff-run-load-file)
- (define-key map (kbd "M-S") 'helm-ff-run-symlink-file)
- (define-key map (kbd "M-Y") 'helm-ff-run-relsymlink-file)
- (define-key map (kbd "M-H") 'helm-ff-run-hardlink-file)
- (define-key map (kbd "M-D") 'helm-ff-run-delete-file)
- (define-key map (kbd "M-K") 'helm-ff-run-kill-buffer-persistent)
- (define-key map (kbd "M-T") 'helm-ff-run-touch-files)
- (define-key map (kbd "C-c d") 'helm-ff-persistent-delete)
- (define-key map (kbd "M-e") 'helm-ff-run-switch-to-shell)
- (define-key map (kbd "C-c i") 'helm-ff-run-complete-fn-at-point)
- (define-key map (kbd "C-c o") 'helm-ff-run-switch-other-window)
- (define-key map (kbd "C-c C-o") 'helm-ff-run-switch-other-frame)
- (define-key map (kbd "C-c C-x") 'helm-ff-run-open-file-externally)
- (define-key map (kbd "C-c C-v") 'helm-ff-run-preview-file-externally)
- (define-key map (kbd "C-c X")
'helm-ff-run-open-file-with-default-tool)
- (define-key map (kbd "C-c t") 'helm-ff-toggle-thumbnails)
- (define-key map (kbd "M-!") 'helm-ff-run-eshell-command-on-file)
- (define-key map (kbd "M-@")
'helm-ff-run-query-replace-fnames-on-marked)
- (define-key map (kbd "M-%") 'helm-ff-run-query-replace)
- (define-key map (kbd "C-M-%") 'helm-ff-run-query-replace-regexp)
- (define-key map (kbd "C-c =") 'helm-ff-run-ediff-file)
- (define-key map (kbd "M-=") 'helm-ff-run-ediff-merge-file)
- (define-key map (kbd "M-p") 'helm-find-files-history)
- (define-key map (kbd "C-c h") 'helm-ff-file-name-history)
- (define-key map (kbd "M-i") 'helm-ff-properties-persistent)
- (define-key map (kbd "C-}") 'helm-narrow-window)
- (define-key map (kbd "C-{") 'helm-enlarge-window)
- (define-key map (kbd "C-<backspace>") 'helm-ff-run-toggle-auto-update)
- (define-key map (kbd "C-c <DEL>") 'helm-ff-run-toggle-auto-update)
- (define-key map (kbd "C-c C-a") 'helm-ff-run-mail-attach-files)
- (define-key map (kbd "C-c p") 'helm-ff-run-print-file)
- (define-key map (kbd "C-c /") 'helm-ff-run-find-sh-command)
- (define-key map (kbd "C-/") 'helm-ff-run-fd)
- ;; Next 2 have no effect if candidate is not an image file.
- (define-key map (kbd "M-l") 'helm-ff-rotate-left-persistent)
- (define-key map (kbd "M-r") 'helm-ff-rotate-right-persistent)
- (define-key map (kbd "M-+")
'helm-ff-increase-image-size-persistent)
- (define-key map (kbd "M--")
'helm-ff-decrease-image-size-persistent)
- (define-key map (kbd "C-l") 'helm-find-files-up-one-level)
- (define-key map (kbd "C-:") 'helm-ff-complete-tramp-methods)
- (define-key map (kbd "C-_") 'helm-ff-undo)
- (define-key map (kbd "C-r") 'helm-find-files-down-last-level)
- (define-key map (kbd "C-c r") 'helm-ff-run-find-file-as-root)
- (define-key map (kbd "C-x C-v") 'helm-ff-run-find-alternate-file)
- (define-key map (kbd "C-c @") 'helm-ff-run-insert-org-link)
- (define-key map (kbd "S-<f1>") 'helm-ff-sort-alpha)
- (define-key map (kbd "S-<f2>") 'helm-ff-sort-by-newest)
- (define-key map (kbd "S-<f3>") 'helm-ff-sort-by-size)
- (define-key map (kbd "S-<f4>") 'helm-ff-toggle-dirs-only)
- (define-key map (kbd "S-<f5>") 'helm-ff-toggle-files-only)
- (define-key map (kbd "S-<f6>") 'helm-ff-sort-by-ext)
- (helm-define-key-with-subkeys map (kbd "DEL") ?\d
'helm-ff-delete-char-backward
- '((C-backspace .
helm-ff-run-toggle-auto-update)
- ([C-c DEL] .
helm-ff-run-toggle-auto-update))
- nil 'helm-ff-delete-char-backward--exit-fn)
- (when (fboundp 'tab-bar-mode)
- (define-key map (kbd "C-c C-t") 'helm-ff-find-file-other-tab))
- map)
- "Keymap for `helm-find-files'.")
-
-(defvar helm-read-file-map
- (let ((map (make-sparse-keymap)))
- (set-keymap-parent map helm-map)
- (define-key map (kbd "<C-return>") 'helm-cr-empty-string)
- (define-key map (kbd "M-RET") 'helm-cr-empty-string)
- (define-key map (kbd "C-]") 'helm-ff-run-toggle-basename)
- (define-key map (kbd "C-.") 'helm-find-files-up-one-level)
- (define-key map (kbd "C-l") 'helm-find-files-up-one-level)
- (define-key map (kbd "C-:") 'helm-ff-complete-tramp-methods)
- (define-key map (kbd "C-_") 'helm-ff-undo)
- (define-key map (kbd "C-r") 'helm-find-files-down-last-level)
- (define-key map (kbd "C-c h") 'helm-ff-file-name-history)
- (define-key map (kbd "C-<backspace>") 'helm-ff-run-toggle-auto-update)
- (define-key map (kbd "C-c <DEL>") 'helm-ff-run-toggle-auto-update)
- (define-key map (kbd "RET") 'helm-ff-RET)
- (helm-define-key-with-subkeys map (kbd "DEL") ?\d
'helm-ff-delete-char-backward
- '((C-backspace .
helm-ff-run-toggle-auto-update)
- ([C-c DEL] .
helm-ff-run-toggle-auto-update))
- nil 'helm-ff-delete-char-backward--exit-fn)
- map)
- "Keymap for `helm-read-file-name'.")
(defcustom helm-ff-lynx-style-map t
"Use arrow keys to navigate with `helm-find-files'.
@@ -786,93 +711,35 @@ Going up one level works only when pattern is a directory
endings
with \"/\", otherwise this command deletes char backward.
When nil always delete char backward."
- :group 'helm-files
- :type 'boolean)
-
-(defcustom helm-ff-display-image-native t
- "Use native `image-mode' when non nil.
-
-You should use this only with Emacs>= 27 and `image-auto-resize'
-enabled to have images resized properly. When this is enabled,
-you have new commands to zoom in/out images. See
-`image-transform-resize' and `image-auto-resize'. Otherwise,
-when nil `image-dired' is used, using imagemagick as backend.
-NOTE: On Emacs-29 `image-dired' is no more using external program
-image-magick to display image, so this is used inconditionally even
-when value is nil."
- :group 'helm-files
- :type 'boolean)
-
-(defcustom helm-ff-reset-filters-on-update t
- "Reset filter variables when changing directory.
-When filtering directories/files only, switch back to a \"show all\" view
-when moving out of directory when non nil."
- :type 'boolean
- :group 'helm-files)
-
-(defcustom helm-ff-eshell-unwanted-aliases nil
- "A list of eshell aliases to not display."
- :type '(repeat string)
- :group 'helm-files)
-
-(defvar helm-ff-last-expanded-candidate-regexp "^[[:multibyte:] ]*%s$"
- "Regexp that retrieve previous candidate when going up one level.
-The default value matching a multibyte char at bol allows prefixing
-candidate with an icon. The format part will be replaced by the
-display part of the candidate regexp quoted.")
-
-;; Internal.
-(defvar helm-find-files-doc-header "
(\\<helm-find-files-map>\\[helm-find-files-up-one-level]: Go up one level)"
- "*The doc that is inserted in the Name header of a find-files or dired
source.")
-(defvar helm-ff-auto-update-flag nil
- "Internal, flag to turn on/off auto-update in `helm-find-files'.
-Don't set it directly, use instead `helm-ff-auto-update-initial-value'.")
-(defvar helm-ff-last-expanded nil
- "Store last expanded directory or file.")
-(defvar helm-ff-default-directory nil)
-(defvar helm-ff-history nil)
-(defvar helm-ff-url-regexp
-
"\\`\\(news\\(post\\)?:\\|nntp:\\|mailto:\\|file:\\|\\(ftp\\|https?\\|telnet\\|gopher\\|www\\|wais\\):/?/?\\).*"
- "Same as `ffap-url-regexp' but match earlier possible url.")
-;; helm-tramp-file-name-regexp is based on old version of
-;; tramp-file-name-regexp i.e. "\\`/\\([^[/:]+\\|[^/]+]\\):" but it
-;; seems it is wrong and a simpler regexp is enough, let's try it and
-;; watch out!
-(defvar helm-tramp-file-name-regexp "\\`/\\([^/:|]+\\):")
-(defvar helm-ff-tramp-method-regexp "[/|]:\\([^:]*\\)")
-(defvar helm-marked-buffer-name "*helm marked*")
-(defvar helm-ff--auto-update-state nil)
-(defvar helm-ff--deleting-char-backward nil)
-(defvar helm-multi-files--toggle-locate nil)
-(defvar helm-ff--move-to-first-real-candidate t)
-(defvar helm-find-files--toggle-bookmark nil)
-(defvar helm-ff--tramp-methods nil)
-(defvar helm-ff--directory-files-length (make-hash-table :test 'equal)
- "Used to count number of candidates in directory.
-candidate-number-limit is set to this value if this value is bigger
-than `helm-candidate-number-limit'.")
-(defvar helm-ff--list-directory-cache (make-hash-table :test 'equal)
- "Cache for `helm-find-files' candidates.")
-(defvar helm-ff--file-notify-watchers (make-hash-table :test 'equal)
- "File-notify watchers for `helm-find-files' are stored here.")
-(defvar helm-ff-history-buffer-name "*helm-find-files history*")
-(defvar helm-rsync-command-history nil)
-(defvar helm-rsync--last-progress-bar-alist nil
- "Used to store last valid rsync progress bar.")
-(defvar helm-rsync-process-buffer "*helm-rsync*")
-(defvar helm-rsync-progress-str-alist nil)
-(defvar helm-ff--trash-directory-regexp "\\.?Trash[/0-9]+files/?\\'")
-(defvar helm-ff--show-directories-only nil)
-(defvar helm-ff--show-files-only nil)
-(defvar helm-ff--trashed-files nil
- "[INTERNAL] Files already trashed are stored here during file deletion.
-This is used only as a let binding.")
-(defvar helm-ff--show-thumbnails nil)
-(defvar helm-ff--thumbnailed-directories nil)
-
-;;; Helm-find-files
-;;
-;;
+ :group 'helm-files
+ :type 'boolean)
+
+(defcustom helm-ff-display-image-native t
+ "Use native `image-mode' when non nil.
+
+You should use this only with Emacs>= 27 and `image-auto-resize'
+enabled to have images resized properly. When this is enabled,
+you have new commands to zoom in/out images. See
+`image-transform-resize' and `image-auto-resize'. Otherwise,
+when nil `image-dired' is used, using imagemagick as backend.
+NOTE: On Emacs-29 `image-dired' is no more using external program
+image-magick to display image, so this is used inconditionally even
+when value is nil."
+ :group 'helm-files
+ :type 'boolean)
+
+(defcustom helm-ff-reset-filters-on-update t
+ "Reset filter variables when changing directory.
+When filtering directories/files only, switch back to a \"show all\" view
+when moving out of directory when non nil."
+ :type 'boolean
+ :group 'helm-files)
+
+(defcustom helm-ff-eshell-unwanted-aliases nil
+ "A list of eshell aliases to not display."
+ :type '(repeat string)
+ :group 'helm-files)
+
(defcustom helm-find-files-actions
(helm-make-actions
"Find File" 'helm-find-file-or-marked
@@ -937,6 +804,192 @@ This is used only as a let binding.")
:group 'helm-files
:type '(alist :key-type string :value-type function))
+(defcustom helm-dwim-target nil
+ "Default target directory for file actions.
+
+Define the directory where you want to start navigating for the
+target directory when copying, renaming, etc.. You can use the
+`default-directory' of `next-window', the visited directory, the
+current `default-directory' or have completion on all the
+directories belonging to each visible windows."
+ :group 'helm-files
+ :type '(radio :tag "Define default target directory for file actions."
+ (const :tag "Directory belonging to next window"
+ next-window)
+ (const :tag "Completion on directories belonging to each window"
+ completion)
+ (const :tag "Use initial directory or `default-directory'"
+ default-directory)
+ (const :tag "Use visited directory"
+ nil)))
+
+(defcustom helm-ff-use-notify t
+ "Watch directories visited with `helm-find-files' when non nil.
+If your system have no file notification package available turn this
+to nil to avoid error messages when using `helm-find-files'."
+ :type 'boolean
+ :group 'helm-files
+ :set (lambda (var val)
+ (set-default var val)
+ (unless (symbol-value var)
+ (cl-loop for dir being the hash-keys of
helm-ff--file-notify-watchers
+ do (remhash dir helm-ff--list-directory-cache)))))
+
+(defcustom helm-ff-inotify-unsupported-methods '("adb")
+ "Tramp methods unsupported by file-notify."
+ :type '(repeat string)
+ :group 'helm-files)
+
+(defcustom helm-ff-image-cache-max-len 5
+ "The last seen image number to keep in cache."
+ :group 'helm-files
+ :type 'integer)
+
+(defcustom helm-ff-image-cache-max-len 5
+ "The last seen image number to keep in cache."
+ :group 'helm-files
+ :type 'integer)
+
+
+;;; Faces
+;;
+;;
+(defgroup helm-files-faces nil
+ "Customize the appearance of helm-files."
+ :prefix "helm-"
+ :group 'helm-files
+ :group 'helm-faces)
+
+(defface helm-ff-prefix
+ `((t ,@(and (>= emacs-major-version 27) '(:extend t))
+ :background "yellow" :foreground "black"))
+ "Face used to prefix new file or url paths in `helm-find-files'."
+ :group 'helm-files-faces)
+
+(defface helm-ff-executable
+ `((t ,@(and (>= emacs-major-version 27) '(:extend t))
+ :foreground "green"))
+ "Face used for executable files in `helm-find-files'."
+ :group 'helm-files-faces)
+
+(defface helm-ff-suid
+ `((t ,@(and (>= emacs-major-version 27) '(:extend t))
+ :background "red" :foreground "white"))
+ "Face used for suid files in `helm-find-files'."
+ :group 'helm-files-faces)
+
+(defface helm-ff-directory
+ `((t ,@(and (>= emacs-major-version 27) '(:extend t))
+ :foreground "DarkRed" :background "LightGray"))
+ "Face used for directories in `helm-find-files'."
+ :group 'helm-files-faces)
+
+(defface helm-ff-dotted-directory
+ `((t ,@(and (>= emacs-major-version 27) '(:extend t))
+ :foreground "black" :background "DimGray"))
+ "Face used for dotted directories in `helm-find-files'."
+ :group 'helm-files-faces)
+
+(defface helm-ff-dotted-symlink-directory
+ `((t ,@(and (>= emacs-major-version 27) '(:extend t))
+ :foreground "DarkOrange" :background "DimGray"))
+ "Face used for dotted symlinked directories in `helm-find-files'."
+ :group 'helm-files-faces)
+
+(defface helm-ff-symlink
+ `((t ,@(and (>= emacs-major-version 27) '(:extend t))
+ :inherit font-lock-comment-face))
+ "Face used for symlinks in `helm-find-files'."
+ :group 'helm-files-faces)
+
+(defface helm-ff-invalid-symlink
+ `((t ,@(and (>= emacs-major-version 27) '(:extend t))
+ :foreground "black" :background "red"))
+ "Face used for invalid symlinks in `helm-find-files'."
+ :group 'helm-files-faces)
+
+(defface helm-ff-denied
+ `((t ,@(and (>= emacs-major-version 27) '(:extend t))
+ :foreground "red" :background "black"))
+ "Face used for non accessible files in `helm-find-files'."
+ :group 'helm-files-faces)
+
+(defface helm-ff-file
+ `((t ,@(and (>= emacs-major-version 27) '(:extend t))
+ :inherit font-lock-builtin-face))
+ "Face used for file names in `helm-find-files'."
+ :group 'helm-files-faces)
+
+(defface helm-ff-nofile
+ `((t ,@(and (>= emacs-major-version 27) '(:extend t))
+ :inherit helm-ff-file))
+ "Face used for file names in `helm-find-files'."
+ :group 'helm-files-faces)
+
+(defface helm-ff-truename
+ `((t ,@(and (>= emacs-major-version 27) '(:extend t))
+ :inherit font-lock-string-face))
+ "Face used for symlink truenames in `helm-find-files'."
+ :group 'helm-files-faces)
+
+(defface helm-ff-dirs
+ `((t ,@(and (>= emacs-major-version 27) '(:extend t))
+ :inherit font-lock-function-name-face))
+ "Face used for file names in recursive dirs completion in `helm-find-files'."
+ :group 'helm-files-faces)
+
+(defface helm-ff-socket
+ `((t ,@(and (>= emacs-major-version 27) '(:extend t))
+ :foreground "DeepPink"))
+ "Face used for socket files in `helm-find-files'."
+ :group 'helm-files-faces)
+
+(defface helm-ff-pipe
+ `((t ,@(and (>= emacs-major-version 27) '(:extend t))
+ :foreground "yellow" :background "black"))
+ "Face used for named pipes and character device files in `helm-find-files'."
+ :group 'helm-files-faces)
+
+(defface helm-ff-file-extension
+ `((t ,@(and (>= emacs-major-version 27) '(:extend t))
+ :foreground "magenta"))
+ "Face used for file extensions in `helm-find-files'."
+ :group 'helm-files-faces)
+
+(defface helm-ff-backup-file
+ `((t ,@(and (>= emacs-major-version 27) '(:extend t))
+ :foreground "DimGray"))
+ "Face used for backup files in `helm-find-files'."
+ :group 'helm-files-faces)
+
+(defface helm-history-deleted
+ `((t ,@(and (>= emacs-major-version 27) '(:extend t))
+ :inherit helm-ff-invalid-symlink))
+ "Face used for deleted files in `file-name-history'."
+ :group 'helm-files-faces)
+
+(defface helm-history-remote
+ `((t ,@(and (>= emacs-major-version 27) '(:extend t))
+ :foreground "Indianred1"))
+ "Face used for remote files in `file-name-history'."
+ :group 'helm-files-faces)
+
+(defface helm-delete-async-message
+ `((t ,@(and (>= emacs-major-version 27) '(:extend t))
+ :foreground "yellow"))
+ "Face used for mode-line message."
+ :group 'helm-files-faces)
+
+(defface helm-ff-rsync-progress
+ `((t ,@(and (>= emacs-major-version 27) '(:extend t))
+ :inherit font-lock-warning-face))
+ "Face used for rsync mode-line indicator."
+ :group 'helm-files-faces)
+
+
+;;; Helm-find-files
+;;
+;;
(defvar helm-source-find-files nil
"The main source to browse files.
Should not be used among other sources.")
@@ -1020,25 +1073,6 @@ Should not be used among other sources.")
(message "Helm find files session bookmarked! ")))
(put 'helm-ff-bookmark-set 'helm-only t)
-(defcustom helm-dwim-target nil
- "Default target directory for file actions.
-
-Define the directory where you want to start navigating for the
-target directory when copying, renaming, etc.. You can use the
-`default-directory' of `next-window', the visited directory, the
-current `default-directory' or have completion on all the
-directories belonging to each visible windows."
- :group 'helm-files
- :type '(radio :tag "Define default target directory for file actions."
- (const :tag "Directory belonging to next window"
- next-window)
- (const :tag "Completion on directories belonging to each window"
- completion)
- (const :tag "Use initial directory or `default-directory'"
- default-directory)
- (const :tag "Use visited directory"
- nil)))
-
(defun helm-dwim-target-directory ()
"Try to return a suitable directory according to `helm-dwim-target'."
(with-selected-window (or
@@ -3541,23 +3575,6 @@ later in the transformer."
(add-text-properties (point-min) (point-max) '(helm-ff-file t))
(split-string (buffer-string) "\n" t)))))
-(defcustom helm-ff-use-notify t
- "Watch directories visited with `helm-find-files' when non nil.
-If your system have no file notification package available turn this
-to nil to avoid error messages when using `helm-find-files'."
- :type 'boolean
- :group 'helm-files
- :set (lambda (var val)
- (set-default var val)
- (unless (symbol-value var)
- (cl-loop for dir being the hash-keys of
helm-ff--file-notify-watchers
- do (remhash dir helm-ff--list-directory-cache)))))
-
-(defcustom helm-ff-inotify-unsupported-methods '("adb")
- "Tramp methods unsupported by file-notify."
- :type '(repeat string)
- :group 'helm-files)
-
(defun helm-ff-directory-files (directory &optional force-update)
"List contents of DIRECTORY.
Argument FULL mean absolute path.
@@ -4752,11 +4769,6 @@ file."
;;
(defvar helm-ff--image-cache nil)
-(defcustom helm-ff-image-cache-max-len 5
- "The last seen image number to keep in cache."
- :group 'helm-files
- :type 'integer)
-
(defun helm-ff-display-image-native-p ()
"Use `helm-ff-display-image-native' when returns `t'."
(or helm-ff-display-image-native