| @@ -1908,33 +1908,28 @@ DISPLAY non-nil means redisplay buffer as output is inserted." | |||
| "Buffer name of awk preview.") | |||
| (defun awk-preview--create-program-buffer (e) | |||
| "Create program buffer for `awk-preview--env' object E." | |||
| "Create new program buffer for `awk-preview--env' object E." | |||
| (let ((source-name (buffer-name (awk-preview--env-source-buffer e)))) | |||
| (with-current-buffer (generate-new-buffer (format awk-preview-program-buffer-name | |||
| source-name)) | |||
| (erase-buffer) | |||
| (insert awk-preview-default-program) | |||
| (awk-mode) | |||
| (awk-preview-program-mode 1) | |||
| (setf (awk-preview--env-program-buffer e) (current-buffer)) | |||
| (setf (awk-preview--env-program-filename e) (make-temp-file "awk-preview-" | |||
| nil | |||
| ".awk")) | |||
| (setq awk-preview--env e) | |||
| (current-buffer)))) | |||
| (defun awk-preview-program-buffer-kill-hook () | |||
| "Cleanup for awk-preview program buffer." | |||
| (when (and awk-preview--env | |||
| (awk-preview--env-program-filename awk-preview--env)) | |||
| (delete-file (awk-preview--env-program-filename awk-preview--env)))) | |||
| (add-hook 'kill-buffer-hook | |||
| 'awk-preview-program-buffer-kill-hook) | |||
| (defun awk-preview--create-preview-buffer (e) | |||
| "Create preview buffer for `awk-preview--env' object E." | |||
| (defun awk-preview--setup-program-buffer (e buf) | |||
| "Setup awk-preview program buffer for E with BUF." | |||
| (with-current-buffer buf | |||
| (awk-preview-program-mode 1) | |||
| (setq awk-preview--env e)) | |||
| (setf (awk-preview--env-program-buffer e) buf) | |||
| (setf (awk-preview--env-program-filename e) (make-temp-file "awk-preview-" | |||
| nil | |||
| ".awk")) | |||
| buf) | |||
| (defun awk-preview--create-setup-preview-buffer (e) | |||
| "Create and setup preview buffer for `awk-preview--env' object E." | |||
| (with-current-buffer (awk-preview--env-source-buffer e) | |||
| (let ((beg (awk-preview--env-point-beg e)) | |||
| (end (awk-preview--env-point-end e)) | |||
| @@ -1955,50 +1950,49 @@ DISPLAY non-nil means redisplay buffer as output is inserted." | |||
| (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) | |||
| (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 (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-setup-preview-buffer e) | |||
| (awk-preview--setup-program-buffer e | |||
| (or 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) | |||
| )) | |||
| (defun awk-preview-update-preview () | |||
| "Update awk-preview." | |||
| @@ -2060,7 +2054,7 @@ DISPLAY non-nil means redisplay buffer as output is inserted." | |||
| (awk-preview--cleanup)) | |||
| (defun awk-preview--cleanup() | |||
| "Cleanup awk preview buffers and variables." | |||
| "Cleanup awk-preview buffers variables and files." | |||
| (with-current-buffer (awk-preview--env-source-buffer awk-preview--env) | |||
| (cl-assert awk-preview--env) | |||
| (kill-buffer (awk-preview--env-preview-buffer awk-preview--env)) | |||
| @@ -2070,6 +2064,7 @@ DISPLAY non-nil means redisplay buffer as output is inserted." | |||
| (yes-or-no-p "Program buffer does not visit any file. Kill? ") | |||
| awk-preview-kill-orphan-program-buffer)) | |||
| (kill-buffer (awk-preview--env-program-buffer awk-preview--env))) | |||
| (delete-file (awk-preview--env-program-filename awk-preview--env)) | |||
| (setf (awk-preview--env-running-p awk-preview--env) nil)) | |||
| (set-window-configuration (awk-preview--env-window-configuration awk-preview--env))) | |||