Merge pull request #52 from gilbertw1/feature-large-file-prompt
add `doom/large-file-check to prompt literal open of large files
This commit is contained in:
commit
da13cb3d64
2 changed files with 28 additions and 0 deletions
|
@ -206,3 +206,17 @@ for function signatures or notes. Run again to clear the header line."
|
||||||
(setq content (replace-regexp-in-string "\n" " " content t t))
|
(setq content (replace-regexp-in-string "\n" " " content t t))
|
||||||
(setq content (replace-regexp-in-string "\\s-+" " " content))
|
(setq content (replace-regexp-in-string "\\s-+" " " content))
|
||||||
content)))))
|
content)))))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun doom/check-large-file ()
|
||||||
|
(let* ((filename (buffer-file-name))
|
||||||
|
(size (nth 7 (file-attributes filename))))
|
||||||
|
(when (and
|
||||||
|
(not (memq major-mode doom-large-file-modes-list))
|
||||||
|
size (> size (* 1024 1024 doom-large-file-size))
|
||||||
|
(y-or-n-p (format (concat "%s is a large file, open literally to "
|
||||||
|
"avoid performance issues?")
|
||||||
|
filename)))
|
||||||
|
(setq buffer-read-only t)
|
||||||
|
(buffer-disable-undo)
|
||||||
|
(fundamental-mode))))
|
||||||
|
|
|
@ -1,5 +1,16 @@
|
||||||
;;; core-editor.el --- filling the editor shaped hole in the Emacs OS
|
;;; core-editor.el --- filling the editor shaped hole in the Emacs OS
|
||||||
|
|
||||||
|
|
||||||
|
(defvar doom-large-file-size 1
|
||||||
|
"Size (in MB) above which the user will be propmpted to open the file literally to avoid
|
||||||
|
performance issues. Opening literally means that no major or minor modes are active and
|
||||||
|
the buffer is readonly.")
|
||||||
|
|
||||||
|
(defvar doom-large-file-modes-list
|
||||||
|
'(archive-mode tar-mode jka-compr git-commit-mode image-mode
|
||||||
|
doc-view-mode doc-view-mode-maybe ebrowse-tree-mode pdf-view-mode)
|
||||||
|
"Major modes which `doom/check-large-file' will not be automatically applied to")
|
||||||
|
|
||||||
(setq-default
|
(setq-default
|
||||||
;; Save clipboard contents into kill-ring before replacing them
|
;; Save clipboard contents into kill-ring before replacing them
|
||||||
save-interprogram-paste-before-kill t
|
save-interprogram-paste-before-kill t
|
||||||
|
@ -88,6 +99,9 @@
|
||||||
(insert linestr))))
|
(insert linestr))))
|
||||||
(advice-add #'delete-trailing-whitespace :around #'doom*delete-trailing-whitespace)
|
(advice-add #'delete-trailing-whitespace :around #'doom*delete-trailing-whitespace)
|
||||||
|
|
||||||
|
;; automatically check for large files and optionally prompt to open literally
|
||||||
|
(add-hook 'find-file-hook 'doom/check-large-file)
|
||||||
|
|
||||||
|
|
||||||
;;
|
;;
|
||||||
;; Core Plugins
|
;; Core Plugins
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue