Skip to content

Instantly share code, notes, and snippets.

@kuanyui
Created December 1, 2016 01:57
Show Gist options
  • Save kuanyui/800ea750a85e450747f67305787fac25 to your computer and use it in GitHub Desktop.
Save kuanyui/800ea750a85e450747f67305787fac25 to your computer and use it in GitHub Desktop.
(defun mmm-mode-restart! ()
(interactive)
(widen)
(let ((ext (file-name-extension (buffer-name))))
(cond ((string= ext "jade")
(jade-mode))
((string= ext "vue")
(html-mode))
(t nil))
(mmm-mode-off)
(mmm-mode-on)
(message "mmm-mode restarted!")))
(define-key mmm-mode-map (kbd "<f6>") 'mmm-mode-restart!)
(define-key pug-mode-map (kbd "<f6>") 'mmm-mode-restart!)
(define-key jade-mode-map (kbd "<f6>") 'mmm-mode-restart!)
(define-key html-mode-map (kbd "<f6>") 'mmm-mode-restart!)
(defun narrow-to-js ()
(interactive)
(save-excursion
(goto-char (point-min))
(let* ((beg (progn (re-search-forward "<script[^>]*> *" nil :no-error)
(right-char 1)
(point)))
(end (progn (re-search-forward "</script>" nil :no-error)
(left-char 9)
(point))))
(narrow-to-region beg end)
(js2-mode)
)))
(define-key mmm-mode-map (kbd "<f7>") 'narrow-to-js)
(define-key pug-mode-map (kbd "<f7>") 'narrow-to-js)
(define-key jade-mode-map (kbd "<f7>") 'narrow-to-js)
(define-key html-mode-map (kbd "<f7>") 'narrow-to-js)
(define-key js2-mode-map (kbd "<f6>") 'mmm-mode-restart!)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment