10sr 6 lat temu
rodzic
commit
2a38a941c1
Podpisane przez: 10sr ID klucza GPG: 7BEC428194130EB2
1 zmienionych plików z 59 dodań i 55 usunięć
  1. +59
    -55
      emacs.el

+ 59
- 55
emacs.el Wyświetl plik

@@ -1936,65 +1936,69 @@ DISPLAY non-nil means redisplay buffer as output is inserted."
(defun awk-preview--create-preview-buffer (e)
"Create preview buffer for `awk-preview--env' object E."
(with-current-buffer (awk-preview--env-source-buffer e)
;; TODO: Do not unset buffer-file-name in let, use unwind-protect
(let ((buffer-file-name nil)
(beg (awk-preview--env-point-beg e))
(end (awk-preview--env-point-end e)))
(with-current-buffer (clone-buffer (format awk-preview-preview-buffer-name
(buffer-name)))
(let ((beg (awk-preview--env-point-beg e))
(end (awk-preview--env-point-end e))
(buf (let ((orig buffer-file-name))
(unwind-protect
(progn
(setq buffer-file-name nil)
(clone-buffer (format awk-preview-preview-buffer-name
(buffer-name))))
(setq buffer-file-name orig)))))
(with-current-buffer buf
(awk-preview-program-mode 1)
(setf (awk-preview--env-preview-point-beg e) beg)
(setf (awk-preview--env-preview-point-end e) end)
(setf (awk-preview--env-preview-buffer e) (current-buffer))
(goto-char end)
(setq buffer-read-only t)
(setq awk-preview--env e)
(current-buffer)))))
(setq awk-preview--env e))
(setf (awk-preview--env-preview-point-beg e) beg)
(setf (awk-preview--env-preview-point-end e) end)
(setf (awk-preview--env-preview-buffer e) buf)
buf)))

(defun awk-preview (beg end &optional program-buffer)
"Run awk and preview result."
(interactive (if (use-region-p)
(list (region-beginning)
(region-end))
(list (point-min)
(point-max))))
(when (and awk-preview--env
(awk-preview--env-running-p awk-preview--env))
(error "AWK-Preview already running"))
(let ((e (make-awk-preview--env)))
(setf (awk-preview--env-point-beg e) beg)
(setf (awk-preview--env-point-end e) end)

(setf (awk-preview--env-source-buffer e) (current-buffer))

(awk-preview--create-preview-buffer e)
(if program-buffer
;; TODO: IMplement this
(awk-preview--setup-program-buffer e program-buffer)
(awk-preview--create-program-buffer e))

(setf (awk-preview--env-window-configuration e)
(current-window-configuration))

(cl-assert (awk-preview--env-point-beg e))
(cl-assert (awk-preview--env-point-end e))
(cl-assert (awk-preview--env-preview-point-beg e))
(cl-assert (awk-preview--env-preview-point-end e))
(cl-assert (awk-preview--env-program-filename e))
(cl-assert (awk-preview--env-source-buffer e))
(cl-assert (awk-preview--env-preview-buffer e))
(cl-assert (awk-preview--env-program-buffer e))
(cl-assert (awk-preview--env-window-configuration e))
(setq awk-preview--env e)

(defun awk-preview (beg end &optional program-buffer)
"Run awk and preview result."
(interactive (if (use-region-p)
(list (region-beginning)
(region-end))
(list (point-min)
(point-max))))
(when (and awk-preview--env
(awk-preview--env-running-p awk-preview--env))
(error "AWK-Preview already running"))
(let ((e (make-awk-preview--env)))
(setf (awk-preview--env-point-beg e) beg)
(setf (awk-preview--env-point-end e) end)

(setf (awk-preview--env-source-buffer e) (current-buffer))

(awk-preview--create-preview-buffer e)
(if program-buffer
;; TODO: IMplement this
(awk-preview--setup-program-buffer e program-buffer)
(awk-preview--create-program-buffer e))

(setf (awk-preview--env-window-configuration e)
(current-window-configuration))

(cl-assert (awk-preview--env-point-beg e))
(cl-assert (awk-preview--env-point-end e))
(cl-assert (awk-preview--env-preview-point-beg e))
(cl-assert (awk-preview--env-preview-point-end e))
(cl-assert (awk-preview--env-program-filename e))
(cl-assert (awk-preview--env-source-buffer e))
(cl-assert (awk-preview--env-preview-buffer e))
(cl-assert (awk-preview--env-program-buffer e))
(cl-assert (awk-preview--env-window-configuration e))
(setq awk-preview--env e)

(set-window-buffer (get-buffer-window (awk-preview--env-source-buffer e))
(awk-preview--env-preview-buffer e))
(pop-to-buffer (awk-preview--env-program-buffer e))

(switch-to-buffer (awk-preview--env-program-buffer e))
(setf (awk-preview--env-running-p e) t)
(awk-preview-update-preview)
))
(set-window-buffer (get-buffer-window (awk-preview--env-source-buffer e))
(awk-preview--env-preview-buffer e))
(pop-to-buffer (awk-preview--env-program-buffer e))

(switch-to-buffer (awk-preview--env-program-buffer e))
(setf (awk-preview--env-running-p e) t)
(awk-preview-update-preview)
))

(defun awk-preview-update-preview ()
"Update awk-preview."


Ładowanie…
Anuluj
Zapisz