Skip to content

Instantly share code, notes, and snippets.

@nonsequitur
Created June 17, 2010 16:30
Show Gist options
  • Save nonsequitur/442356 to your computer and use it in GitHub Desktop.
Save nonsequitur/442356 to your computer and use it in GitHub Desktop.
(require 'moz)
;;; Usage
;; Run M-x moz-reload-mode to switch moz-reload on/off in the
;; current buffer.
;; When active, every change in the buffer triggers Firefox
;; to reload its current page.
(defvar moz-reload-buffers '())
(define-minor-mode moz-reload-mode
"Moz Reload Minor Mode"
nil " Reload" nil
(if moz-reload-mode
(moz-reload-add-buffer (current-buffer))
(moz-reload-remove-buffer (current-buffer))))
(defun moz-reload-add-buffer (buffer)
(let ((reload-active moz-reload-buffers))
(add-to-list 'moz-reload-buffers buffer)
(unless reload-active
(moz-reload-install))))
(defun moz-reload-remove-buffer (buffer)
(setq moz-reload-buffers (delq buffer moz-reload-buffers))
(unless moz-reload-buffers
(moz-reload-uninstall)))
(defun moz-reload-hook ()
(if (memq (current-buffer) moz-reload-buffers)
(moz-reload)))
(defun moz-reload ()
(when (buffer-modified-p)
(save-buffer)
(moz-firefox-reload)))
(defun moz-firefox-reload ()
(comint-send-string (inferior-moz-process)
"BrowserReloadWithFlags(16);"))
(defun moz-reload-install ()
(add-hook 'post-command-hook 'moz-reload-hook))
(defun moz-reload-uninstall ()
(remove-hook 'post-command-hook 'moz-reload-hook))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment