diff options
author | Matus Goljer <matus.goljer@gmail.com> | 2016-11-12 19:06:31 +0100 |
---|---|---|
committer | Matus Goljer <matus.goljer@gmail.com> | 2016-11-12 19:06:31 +0100 |
commit | 39ef6f894d19b3a2ba5e583788af5f337eaf21c0 (patch) | |
tree | baf1bce0056ba774c6fa8aad5644aafe69f130d6 | |
parent | 607a23d208405838325ca5203a1900682dad00ac (diff) | |
download | emmet-mode-39ef6f894d19b3a2ba5e583788af5f337eaf21c0.tar.lz emmet-mode-39ef6f894d19b3a2ba5e583788af5f337eaf21c0.tar.xz emmet-mode-39ef6f894d19b3a2ba5e583788af5f337eaf21c0.zip |
Add emmet-preview-mode
-rw-r--r-- | emmet-mode.el | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/emmet-mode.el b/emmet-mode.el index 5f0a204..c1326ed 100644 --- a/emmet-mode.el +++ b/emmet-mode.el @@ -343,7 +343,7 @@ This minor mode defines keys for quick access: Home page URL `http://www.emacswiki.org/emacs/Emmet'. See also `emmet-expand-line'." - :lighter " Emmet" + :lighter (" Emmet" (:eval (if emmet-preview-mode "[P]" ""))) :keymap emmet-mode-keymap :after-hook (emmet-after-hook)) @@ -526,6 +526,34 @@ accept it or skip it." (goto-char here) (add-hook 'post-command-hook 'emmet-preview-post-command t t))))) +(defun emmet-preview-online () + "Display `emmet-preview' on the fly as the user types. + +To use this, add the function as a local hook: + + (add-hook 'post-self-insert-hook 'emmet-preview-online t t) + +or enable `emmet-preview-mode'." + (ignore-errors + (let* ((expr (emmet-expr-on-line)) + (text (nth 0 expr)) + (beg (nth 1 expr)) + (end (nth 2 expr))) + (let ((wap (word-at-point))) + (when (and (not (equal wap text)) + (emmet-transform text)) + (emmet-preview beg end)))))) + +(define-minor-mode emmet-preview-mode + "When enabled, automatically show `emmet-preview' as the user types. + +See `emmet-preview-online'." + :init-value nil + :group 'emmet + (if emmet-preview-mode + (add-hook 'post-self-insert-hook 'emmet-preview-online :append :local) + (remove-hook 'post-self-insert-hook 'emmet-preview-online :local))) + (defvar emmet-preview-pending-abort nil) (make-variable-buffer-local 'emmet-preview-pending-abort) |