|
|
@@ -379,8 +379,8 @@ found, otherwise returns nil." |
|
|
|
(when (safe-require-or-eval 'page-break-lines) |
|
|
|
(global-page-break-lines-mode 1)) |
|
|
|
|
|
|
|
(when (safe-require-or-eval 'fancy-narrow) |
|
|
|
(fancy-narrow-mode 1)) |
|
|
|
;; (when (safe-require-or-eval 'fancy-narrow) |
|
|
|
;; (fancy-narrow-mode 1)) |
|
|
|
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
|
|
;; title and mode-line |
|
|
@@ -1854,6 +1854,122 @@ This mode is a simplified version of `adoc-mode'." |
|
|
|
(add-hook 'dired-mode-hook |
|
|
|
'recently-dired-mode-hook) |
|
|
|
|
|
|
|
;; recently-show |
|
|
|
|
|
|
|
(defvar recently-show-window-height 10 |
|
|
|
"Max height of window of `recently-show'") |
|
|
|
|
|
|
|
(defvar recently-show-mode-map |
|
|
|
(let ((map (make-sparse-keymap))) |
|
|
|
(suppress-keymap map) |
|
|
|
(define-key map "n" 'next-line) |
|
|
|
(define-key map "p" 'previous-line) |
|
|
|
(define-key map (kbd "C-m") 'recently-show-find-file) |
|
|
|
(define-key map (kbd "SPC") 'recently-show-find-file) |
|
|
|
(define-key map "v" 'recently-show-view-file) |
|
|
|
(define-key map "@" 'recently-show-dired) |
|
|
|
(define-key map "q" 'recently-show-close) |
|
|
|
(define-key map (kbd "C-g") 'recently-show-close) |
|
|
|
(define-key map "?" 'describe-mode) |
|
|
|
(define-key map "/" 'isearch-forward) |
|
|
|
map)) |
|
|
|
|
|
|
|
(defvar recently-show-before-listing-hook nil |
|
|
|
"Hook run before creating buffer of `recently-show'.") |
|
|
|
|
|
|
|
(defvar recently-show-window-configuration nil |
|
|
|
"Used for internal") |
|
|
|
|
|
|
|
(defvar recently-show-abbreviate t |
|
|
|
"Non-nil means use `abbreviate-file-name' when listing recently opened files.") |
|
|
|
|
|
|
|
(define-derived-mode recently-show-mode special-mode "recently-show" |
|
|
|
"Major mode for `recently-show'." |
|
|
|
;; (set (make-local-variable 'scroll-margin) |
|
|
|
;; 0) |
|
|
|
) |
|
|
|
|
|
|
|
;;;###autoload |
|
|
|
(defun recently-show (&optional files buffer-name) |
|
|
|
"Show simplified list of recently opened files. |
|
|
|
If optional argument FILES is non-nil, it is a list of recently-opened |
|
|
|
files to choose from. It defaults to the whole recent list. |
|
|
|
If optional argument BUFFER-NAME is non-nil, it is a buffer name to |
|
|
|
use for the buffer. It defaults to \"*recetf-show*\"." |
|
|
|
(interactive) |
|
|
|
(let ((bf (recently-show-create-buffer files buffer-name))) |
|
|
|
(if bf |
|
|
|
(progn |
|
|
|
;; (recently-save-list) |
|
|
|
(setq recently-show-window-configuration (current-window-configuration)) |
|
|
|
;;(pop-to-buffer bf t t) |
|
|
|
(display-buffer bf) |
|
|
|
;; (set-window-text-height (selected-window) |
|
|
|
;; recently-show-window-height) |
|
|
|
(shrink-window-if-larger-than-buffer (selected-window))) |
|
|
|
(message "No recent file!")))) |
|
|
|
|
|
|
|
(defun recently-show-create-buffer (&optional files buffer-name) |
|
|
|
"Create buffer listing recently files." |
|
|
|
(let ((bname (or buffer-name |
|
|
|
"*recently-show*")) |
|
|
|
(list (or files |
|
|
|
(progn |
|
|
|
(recently-reload) |
|
|
|
recently-list)))) |
|
|
|
(when list |
|
|
|
(and (get-buffer bname) |
|
|
|
(kill-buffer bname)) |
|
|
|
(let ((bf (get-buffer-create bname))) |
|
|
|
(with-current-buffer bf |
|
|
|
(recently-show-mode) |
|
|
|
(let ((inhibit-read-only t)) |
|
|
|
(mapc (lambda (f) |
|
|
|
(insert (if recently-show-abbreviate |
|
|
|
(abbreviate-file-name f) |
|
|
|
f) |
|
|
|
"\n")) |
|
|
|
list)) |
|
|
|
(goto-char (point-min)) |
|
|
|
;; (setq buffer-read-only t) |
|
|
|
) |
|
|
|
bf)))) |
|
|
|
|
|
|
|
(defun recently-show-close () |
|
|
|
"Close recently-show window." |
|
|
|
(interactive) |
|
|
|
(kill-buffer (current-buffer)) |
|
|
|
(set-window-configuration recently-show-window-configuration)) |
|
|
|
|
|
|
|
(defun recently-show-find-file () |
|
|
|
"Fine file of current line." |
|
|
|
(interactive) |
|
|
|
(let ((f (recently-show-get-filename))) |
|
|
|
(recently-show-close) |
|
|
|
(find-file f))) |
|
|
|
|
|
|
|
(defun recently-show-view-file () |
|
|
|
"view file of current line." |
|
|
|
(interactive) |
|
|
|
(let ((f (recently-show-get-filename))) |
|
|
|
(recently-show-close) |
|
|
|
(view-file f))) |
|
|
|
|
|
|
|
(defun recently-show-get-filename () |
|
|
|
"Get filename of current line." |
|
|
|
(buffer-substring-no-properties (point-at-bol) |
|
|
|
(point-at-eol))) |
|
|
|
|
|
|
|
(defun recently-show-dired() |
|
|
|
"Open dired buffer of directory containing file of current line." |
|
|
|
(interactive) |
|
|
|
(let ((f (recently-show-get-filename))) |
|
|
|
(recently-show-close) |
|
|
|
(dired (if (file-directory-p f) |
|
|
|
f |
|
|
|
(or (file-name-directory f) |
|
|
|
"."))))) |
|
|
|
|
|
|
|
;; Local Variables: |
|
|
|
;; flycheck-disabled-checkers: (emacs-lisp-checkdoc) |
|
|
|
;; flycheck-checker: emacs-lisp |
|
|
|