--- magit.el.orig 2013-12-18 23:29:28.441451100 +0900 +++ magit.el 2013-12-19 00:17:59.498954000 +0900 @@ -514,7 +514,9 @@ magit-insert-unstaged-changes magit-insert-staged-changes magit-insert-unpulled-commits - magit-insert-unpushed-commits) + magit-insert-unpushed-commits + magit-insert-cached-files + ) "Hook run to insert sections into the status buffer. This option allows reordering the sections and adding sections @@ -2490,6 +2492,7 @@ (magit-define-section-jumper stashes "Stashes") (magit-define-section-jumper untracked "Untracked files") +(magit-define-section-jumper cached "Cached files") (magit-define-section-jumper unstaged "Unstaged changes") (magit-define-section-jumper staged "Staged changes") (magit-define-section-jumper unpulled "Unpulled commits") @@ -4423,6 +4426,23 @@ (insert "\t" file "\n"))) (insert "\n"))))) +(defun magit-insert-cached-files () + (magit-with-section (section cached 'cached "Cached files:" t) + (let ((files (cl-mapcan + (lambda (f) + (when (eq (aref f 0) (aref "H" 0)) (list f))) + (magit-git-lines + "ls-files" "-t" + (concat "" (magit-get "status.showCachedFiles")))))) + (if (not files) + (setq section nil) + (dolist (file files) + (setq file (magit-decode-git-path (substring file 2))) + (magit-with-section (section file file) + (setf (magit-section-info section) file) + (insert "\t" file "\n"))) + (insert "\n"))))) + (defun magit-insert-pending-commits () (let* ((info (magit-read-rewrite-info)) (pending (cdr (assq 'pending info)))) @@ -6786,6 +6806,7 @@ (interactive "P") (magit-section-action (item info "visit" t) ((untracked file) (magit-visit-file-item other-window)) + ((cached file) (magit-visit-file-item other-window)) ((diff) (magit-visit-file-item other-window)) ((diffstat) (magit-visit-file-item other-window)) ((hunk) (magit-visit-file-item other-window)) @@ -6796,6 +6817,7 @@ (let (file line column) (setq file (magit-section-action (item info "visit-file" t) ((untracked file) info) + ((cached file) info) ((diff) (magit-section-info item)) ((diffstat) (magit-section-info item)) ((hunk) @@ -6847,6 +6869,7 @@ (file-truename (magit-section-action (item info "dired-jump" t) ((untracked file) info) + ((cached file) info) ((diffstat) (magit-section-info item)) ((diff) (magit-section-info item)) ((hunk) (magit-section-info (magit-section-parent item)))