1
0
mirror of https://github.com/m00natic/vlfi.git synced 2025-01-18 20:10:47 +00:00

Fix spaces and indent.

This commit is contained in:
Andrey Kotlarski 2013-04-13 22:36:33 +03:00
parent c14c7f00ce
commit cedd0b4e82

278
vlfi.el
View File

@ -58,8 +58,8 @@
(define-key map "+" 'vlfi-change-batch-size) (define-key map "+" 'vlfi-change-batch-size)
(define-key map "-" (define-key map "-"
(lambda () "Decrease vlfi batch size by factor of 2." (lambda () "Decrease vlfi batch size by factor of 2."
(interactive) (interactive)
(vlfi-change-batch-size t))) (vlfi-change-batch-size t)))
(define-key map "s" 'vlfi-re-search-forward) (define-key map "s" 'vlfi-re-search-forward)
(define-key map "r" 'vlfi-re-search-backward) (define-key map "r" 'vlfi-re-search-backward)
(define-key map "[" 'vlfi-beginning-of-file) (define-key map "[" 'vlfi-beginning-of-file)
@ -92,18 +92,18 @@ with the prefix argument DECREASE it is halved."
(or (assq 'vlfi-batch-size (buffer-local-variables)) (or (assq 'vlfi-batch-size (buffer-local-variables))
(error "%s is not local in this buffer" 'vlfi-batch-size)) (error "%s is not local in this buffer" 'vlfi-batch-size))
(setq vlfi-batch-size (if decrease (setq vlfi-batch-size (if decrease
(/ vlfi-batch-size 2) (/ vlfi-batch-size 2)
(* vlfi-batch-size 2))) (* vlfi-batch-size 2)))
(vlfi-move-to-batch vlfi-start-pos)) (vlfi-move-to-batch vlfi-start-pos))
(defun vlfi-format-buffer-name () (defun vlfi-format-buffer-name ()
"Return format for vlfi buffer name." "Return format for vlfi buffer name."
(format "%s(%s)[%d/%d](%d)" (format "%s(%s)[%d/%d](%d)"
(file-name-nondirectory buffer-file-name) (file-name-nondirectory buffer-file-name)
(file-size-human-readable vlfi-file-size) (file-size-human-readable vlfi-file-size)
(/ vlfi-end-pos vlfi-batch-size) (/ vlfi-end-pos vlfi-batch-size)
(/ vlfi-file-size vlfi-batch-size) (/ vlfi-file-size vlfi-batch-size)
vlfi-batch-size)) vlfi-batch-size))
(defun vlfi-update-buffer-name () (defun vlfi-update-buffer-name ()
"Update the current buffer name." "Update the current buffer name."
@ -117,24 +117,24 @@ When prefix argument is negative
append next APPEND number of batches to the existing buffer." append next APPEND number of batches to the existing buffer."
(interactive "p") (interactive "p")
(let ((end (+ vlfi-end-pos (* vlfi-batch-size (let ((end (+ vlfi-end-pos (* vlfi-batch-size
(abs append))))) (abs append)))))
(when (< vlfi-file-size end) ; re-check file size (when (< vlfi-file-size end) ; re-check file size
(setq vlfi-file-size (nth 7 (file-attributes buffer-file-name))) (setq vlfi-file-size (nth 7 (file-attributes buffer-file-name)))
(cond ((= vlfi-end-pos vlfi-file-size) (cond ((= vlfi-end-pos vlfi-file-size)
(error "Already at EOF")) (error "Already at EOF"))
((< vlfi-file-size end) ((< vlfi-file-size end)
(setq end vlfi-file-size)))) (setq end vlfi-file-size))))
(let ((inhibit-read-only t) (let ((inhibit-read-only t)
(do-append (< append 0)) (do-append (< append 0))
(pos (point))) (pos (point)))
(if do-append (if do-append
(goto-char (point-max)) (goto-char (point-max))
(setq vlfi-start-pos (- end vlfi-batch-size)) (setq vlfi-start-pos (- end vlfi-batch-size))
(erase-buffer)) (erase-buffer))
(insert-file-contents buffer-file-name nil (if do-append (insert-file-contents buffer-file-name nil (if do-append
vlfi-end-pos vlfi-end-pos
vlfi-start-pos) vlfi-start-pos)
end) end)
(goto-char pos)) (goto-char pos))
(setq vlfi-end-pos end)) (setq vlfi-end-pos end))
(set-visited-file-modtime) (set-visited-file-modtime)
@ -151,18 +151,18 @@ When prefix argument is negative
(if (zerop vlfi-start-pos) (if (zerop vlfi-start-pos)
(error "Already at BOF")) (error "Already at BOF"))
(let ((inhibit-read-only t) (let ((inhibit-read-only t)
(start (max 0 (- vlfi-start-pos (* vlfi-batch-size (start (max 0 (- vlfi-start-pos (* vlfi-batch-size
(abs prepend))))) (abs prepend)))))
(do-prepend (< prepend 0)) (do-prepend (< prepend 0))
(pos (- (point-max) (point)))) (pos (- (point-max) (point))))
(if do-prepend (if do-prepend
(goto-char (point-min)) (goto-char (point-min))
(setq vlfi-end-pos (+ start vlfi-batch-size)) (setq vlfi-end-pos (+ start vlfi-batch-size))
(erase-buffer)) (erase-buffer))
(insert-file-contents buffer-file-name nil start (insert-file-contents buffer-file-name nil start
(if do-prepend (if do-prepend
vlfi-start-pos vlfi-start-pos
vlfi-end-pos)) vlfi-end-pos))
(goto-char (- (point-max) pos)) (goto-char (- (point-max) pos))
(setq vlfi-start-pos start)) (setq vlfi-start-pos start))
(set-visited-file-modtime) (set-visited-file-modtime)
@ -173,17 +173,17 @@ When prefix argument is negative
"Move to batch determined by START. "Move to batch determined by START.
Adjust according to file start/end and show `vlfi-batch-size' bytes." Adjust according to file start/end and show `vlfi-batch-size' bytes."
(setq vlfi-start-pos (max 0 start) (setq vlfi-start-pos (max 0 start)
vlfi-end-pos (+ vlfi-start-pos vlfi-batch-size)) vlfi-end-pos (+ vlfi-start-pos vlfi-batch-size))
(if (< vlfi-file-size vlfi-end-pos) ; re-check file size (if (< vlfi-file-size vlfi-end-pos) ; re-check file size
(setq vlfi-file-size (setq vlfi-file-size
(nth 7 (file-attributes buffer-file-name)) (nth 7 (file-attributes buffer-file-name))
vlfi-end-pos (min vlfi-end-pos vlfi-file-size) vlfi-end-pos (min vlfi-end-pos vlfi-file-size)
vlfi-start-pos (max 0 (- vlfi-end-pos vlfi-batch-size)))) vlfi-start-pos (max 0 (- vlfi-end-pos vlfi-batch-size))))
(let ((inhibit-read-only t) (let ((inhibit-read-only t)
(pos (point))) (pos (point)))
(erase-buffer) (erase-buffer)
(insert-file-contents buffer-file-name nil (insert-file-contents buffer-file-name nil
vlfi-start-pos vlfi-end-pos) vlfi-start-pos vlfi-end-pos)
(goto-char pos)) (goto-char pos))
(set-visited-file-modtime) (set-visited-file-modtime)
(set-buffer-modified-p nil) (set-buffer-modified-p nil)
@ -193,14 +193,14 @@ Adjust according to file start/end and show `vlfi-batch-size' bytes."
"Move to chunk determined by START END." "Move to chunk determined by START END."
(if (< vlfi-file-size end) ; re-check file size (if (< vlfi-file-size end) ; re-check file size
(setq vlfi-file-size (nth 7 (setq vlfi-file-size (nth 7
(file-attributes buffer-file-name)))) (file-attributes buffer-file-name))))
(setq vlfi-start-pos (max 0 start) (setq vlfi-start-pos (max 0 start)
vlfi-end-pos (min end vlfi-file-size)) vlfi-end-pos (min end vlfi-file-size))
(let ((inhibit-read-only t) (let ((inhibit-read-only t)
(pos (point))) (pos (point)))
(erase-buffer) (erase-buffer)
(insert-file-contents buffer-file-name nil (insert-file-contents buffer-file-name nil
vlfi-start-pos vlfi-end-pos) vlfi-start-pos vlfi-end-pos)
(goto-char pos)) (goto-char pos))
(set-visited-file-modtime) (set-visited-file-modtime)
(set-buffer-modified-p nil) (set-buffer-modified-p nil)
@ -211,9 +211,9 @@ Adjust according to file start/end and show `vlfi-batch-size' bytes."
With FROM-END prefix, start from the back." With FROM-END prefix, start from the back."
(if from-end (if from-end
(setq vlfi-start-pos (max 0 (- vlfi-file-size vlfi-batch-size)) (setq vlfi-start-pos (max 0 (- vlfi-file-size vlfi-batch-size))
vlfi-end-pos vlfi-file-size) vlfi-end-pos vlfi-file-size)
(setq vlfi-start-pos 0 (setq vlfi-start-pos 0
vlfi-end-pos (min vlfi-batch-size vlfi-file-size))) vlfi-end-pos (min vlfi-batch-size vlfi-file-size)))
(vlfi-move-to-chunk vlfi-start-pos vlfi-end-pos)) (vlfi-move-to-chunk vlfi-start-pos vlfi-end-pos))
(defun vlfi-beginning-of-file () (defun vlfi-beginning-of-file ()
@ -235,7 +235,7 @@ buffer. You can customize number of bytes displayed by customizing
(interactive "fFile to open: \nP") (interactive "fFile to open: \nP")
(with-current-buffer (generate-new-buffer "*vlfi*") (with-current-buffer (generate-new-buffer "*vlfi*")
(setq buffer-file-name file (setq buffer-file-name file
vlfi-file-size (nth 7 (file-attributes file))) vlfi-file-size (nth 7 (file-attributes file)))
(vlfi-insert-file from-end) (vlfi-insert-file from-end)
(vlfi-mode) (vlfi-mode)
(switch-to-buffer (current-buffer)))) (switch-to-buffer (current-buffer))))
@ -264,25 +264,25 @@ OP-TYPE specifies the file operation being performed over FILENAME."
(and large-file-warning-threshold size (and large-file-warning-threshold size
(> size large-file-warning-threshold) (> size large-file-warning-threshold)
(let ((char nil)) (let ((char nil))
(while (not (memq (setq char (while (not (memq (setq char
(read-event (read-event
(propertize (propertize
(format (format
"File %s is large (%s): \ "File %s is large (%s): \
%s normally (o), %s with vlfi (v) or abort (a)" %s normally (o), %s with vlfi (v) or abort (a)"
(if filename (if filename
(file-name-nondirectory filename) (file-name-nondirectory filename)
"") "")
(file-size-human-readable size) (file-size-human-readable size)
op-type op-type) op-type op-type)
'face 'minibuffer-prompt))) 'face 'minibuffer-prompt)))
'(?o ?O ?v ?V ?a ?A)))) '(?o ?O ?v ?V ?a ?A))))
(cond ((memq char '(?o ?O))) (cond ((memq char '(?o ?O)))
((memq char '(?v ?V)) ((memq char '(?v ?V))
(vlfi filename nil) (vlfi filename nil)
(error "")) (error ""))
((memq char '(?a ?A)) ((memq char '(?a ?A))
(error "Aborted")))))) (error "Aborted"))))))
;;; hijack `abort-if-file-too-large' ;;; hijack `abort-if-file-too-large'
;;;###autoload ;;;###autoload
@ -292,66 +292,66 @@ OP-TYPE specifies the file operation being performed over FILENAME."
(defun vlfi-re-search (regexp count backward) (defun vlfi-re-search (regexp count backward)
"Search for REGEXP COUNT number of times forward or BACKWARD." "Search for REGEXP COUNT number of times forward or BACKWARD."
(let* ((match-start-pos (+ vlfi-start-pos (point))) (let* ((match-start-pos (+ vlfi-start-pos (point)))
(match-end-pos match-start-pos) (match-end-pos match-start-pos)
(to-find count) (to-find count)
(search-reporter (make-progress-reporter (search-reporter (make-progress-reporter
(concat "Searching for " regexp) (concat "Searching for " regexp)
(if backward (if backward
(- vlfi-file-size vlfi-end-pos) (- vlfi-file-size vlfi-end-pos)
vlfi-start-pos) vlfi-start-pos)
vlfi-file-size)) vlfi-file-size))
(batch-step (/ vlfi-batch-size 8))) ; amount of chunk overlap (batch-step (/ vlfi-batch-size 8))) ; amount of chunk overlap
(unwind-protect (unwind-protect
(catch 'end-of-file (catch 'end-of-file
(if backward (if backward
(while (not (zerop to-find)) (while (not (zerop to-find))
(cond ((re-search-backward regexp nil t) (cond ((re-search-backward regexp nil t)
(setq to-find (1- to-find) (setq to-find (1- to-find)
match-start-pos (+ vlfi-start-pos match-start-pos (+ vlfi-start-pos
(match-beginning 0)) (match-beginning 0))
match-end-pos (+ vlfi-start-pos match-end-pos (+ vlfi-start-pos
(match-end 0)))) (match-end 0))))
((zerop vlfi-start-pos) ((zerop vlfi-start-pos)
(throw 'end-of-file nil)) (throw 'end-of-file nil))
(t (let ((batch-move (- vlfi-start-pos (t (let ((batch-move (- vlfi-start-pos
(- vlfi-batch-size (- vlfi-batch-size
batch-step)))) batch-step))))
(vlfi-move-to-batch (vlfi-move-to-batch
(if (< match-start-pos batch-move) (if (< match-start-pos batch-move)
(- match-start-pos vlfi-batch-size) (- match-start-pos vlfi-batch-size)
batch-move))) batch-move)))
(goto-char (if (< match-start-pos (goto-char (if (< match-start-pos
vlfi-end-pos) vlfi-end-pos)
(- match-start-pos (- match-start-pos
vlfi-start-pos) vlfi-start-pos)
(point-max))) (point-max)))
(progress-reporter-update search-reporter (progress-reporter-update search-reporter
vlfi-start-pos)))) vlfi-start-pos))))
(while (not (zerop to-find)) (while (not (zerop to-find))
(cond ((re-search-forward regexp nil t) (cond ((re-search-forward regexp nil t)
(setq to-find (1- to-find) (setq to-find (1- to-find)
match-start-pos (+ vlfi-start-pos match-start-pos (+ vlfi-start-pos
(match-beginning 0)) (match-beginning 0))
match-end-pos (+ vlfi-start-pos match-end-pos (+ vlfi-start-pos
(match-end 0)))) (match-end 0))))
((= vlfi-end-pos vlfi-file-size) ((= vlfi-end-pos vlfi-file-size)
(throw 'end-of-file nil)) (throw 'end-of-file nil))
(t (let ((batch-move (- vlfi-end-pos batch-step))) (t (let ((batch-move (- vlfi-end-pos batch-step)))
(vlfi-move-to-batch (vlfi-move-to-batch
(if (< batch-move match-end-pos) (if (< batch-move match-end-pos)
match-end-pos match-end-pos
batch-move))) batch-move)))
(goto-char (if (< vlfi-start-pos match-end-pos) (goto-char (if (< vlfi-start-pos match-end-pos)
(- match-end-pos vlfi-start-pos) (- match-end-pos vlfi-start-pos)
(point-min))) (point-min)))
(progress-reporter-update search-reporter (progress-reporter-update search-reporter
vlfi-end-pos))))) vlfi-end-pos)))))
(progress-reporter-done search-reporter)) (progress-reporter-done search-reporter))
(if backward (if backward
(vlfi-goto-match match-end-pos match-start-pos (vlfi-goto-match match-end-pos match-start-pos
count to-find) count to-find)
(vlfi-goto-match match-start-pos match-end-pos (vlfi-goto-match match-start-pos match-end-pos
count to-find))))) count to-find)))))
(defun vlfi-goto-match (match-pos-start match-pos-end count to-find) (defun vlfi-goto-match (match-pos-start match-pos-end count to-find)
"Move to chunk surrounding MATCH-POS-START and MATCH-POS-END. "Move to chunk surrounding MATCH-POS-START and MATCH-POS-END.
@ -359,41 +359,41 @@ According to COUNT and left TO-FIND, show if search has been
successful. Return nil if nothing found." successful. Return nil if nothing found."
(let ((success (zerop to-find))) (let ((success (zerop to-find)))
(or success (or success
(vlfi-move-to-batch (- match-pos-start (vlfi-move-to-batch (- match-pos-start
(/ vlfi-batch-size 2)))) (/ vlfi-batch-size 2))))
(let* ((match-end (- match-pos-end vlfi-start-pos)) (let* ((match-end (- match-pos-end vlfi-start-pos))
(overlay (make-overlay (- match-pos-start vlfi-start-pos) (overlay (make-overlay (- match-pos-start vlfi-start-pos)
match-end))) match-end)))
(overlay-put overlay 'face 'region) (overlay-put overlay 'face 'region)
(or success (goto-char match-end)) (or success (goto-char match-end))
(prog1 (cond (success t) (prog1 (cond (success t)
((< to-find count) ((< to-find count)
(message "Moved to the %d match which is last" (message "Moved to the %d match which is last"
(- count to-find)) (- count to-find))
t) t)
(t (message "Not found") (t (message "Not found")
nil)) nil))
(sit-for 0.1) (sit-for 0.1)
(delete-overlay overlay))))) (delete-overlay overlay)))))
(defun vlfi-re-search-forward (regexp count) (defun vlfi-re-search-forward (regexp count)
"Search forward for REGEXP prefix COUNT number of times. "Search forward for REGEXP prefix COUNT number of times.
Search is performed chunk by chunk in `vlfi-batch-size' memory." Search is performed chunk by chunk in `vlfi-batch-size' memory."
(interactive (list (read-regexp "Search whole file" (interactive (list (read-regexp "Search whole file"
(if regexp-history (if regexp-history
(car regexp-history)) (car regexp-history))
'regexp-history) 'regexp-history)
(or current-prefix-arg 1))) (or current-prefix-arg 1)))
(vlfi-re-search regexp count nil)) (vlfi-re-search regexp count nil))
(defun vlfi-re-search-backward (regexp count) (defun vlfi-re-search-backward (regexp count)
"Search backward for REGEXP prefix COUNT number of times. "Search backward for REGEXP prefix COUNT number of times.
Search is performed chunk by chunk in `vlfi-batch-size' memory." Search is performed chunk by chunk in `vlfi-batch-size' memory."
(interactive (list (read-regexp "Search whole file backward" (interactive (list (read-regexp "Search whole file backward"
(if regexp-history (if regexp-history
(car regexp-history)) (car regexp-history))
'regexp-history) 'regexp-history)
(or current-prefix-arg 1))) (or current-prefix-arg 1)))
(vlfi-re-search regexp count t)) (vlfi-re-search regexp count t))
;;; editing ;;; editing
@ -410,7 +410,7 @@ Search is performed chunk by chunk in `vlfi-batch-size' memory."
(setq buffer-read-only nil) (setq buffer-read-only nil)
(buffer-enable-undo) (buffer-enable-undo)
(message (substitute-command-keys (message (substitute-command-keys
"Editing: Type \\[vlfi-write] to write chunk \ "Editing: Type \\[vlfi-write] to write chunk \
or \\[vlfi-discard-edit] to discard changes."))) or \\[vlfi-discard-edit] to discard changes.")))
(defun vlfi-file-shift-back (size-change) (defun vlfi-file-shift-back (size-change)