diff options
author | Shin Aoyama <smihica@gmail.com> | 2016-11-14 14:58:50 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-14 14:58:50 +0900 |
commit | 5af39aaef59125fd80901f275c23c89493f9d133 (patch) | |
tree | baf1bce0056ba774c6fa8aad5644aafe69f130d6 | |
parent | 607a23d208405838325ca5203a1900682dad00ac (diff) | |
parent | 39ef6f894d19b3a2ba5e583788af5f337eaf21c0 (diff) | |
download | emmet-mode-5af39aaef59125fd80901f275c23c89493f9d133.tar.lz emmet-mode-5af39aaef59125fd80901f275c23c89493f9d133.tar.xz emmet-mode-5af39aaef59125fd80901f275c23c89493f9d133.zip |
Merge pull request #84 from Fuco1/feature/online-preview
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) |