Skip to content

Instantly share code, notes, and snippets.

@Dima-369
Last active March 31, 2021 19:03
Show Gist options
  • Save Dima-369/43ea01769ebc4d393d13aa9f9cbce2cc to your computer and use it in GitHub Desktop.
Save Dima-369/43ea01769ebc4d393d13aa9f9cbce2cc to your computer and use it in GitHub Desktop.
Unfinished emmet-mode setup and some utilities for web-mode in Emacs Lisp
(defun is-in-web-modes ()
(or (string= major-mode "web-mode")
(string= major-mode "sgml-mode")
(string= major-mode "mhtml-mode")
(string= major-mode "css-mode")))
(defun emmet-enter-insert-mode (arg)
(interactive "P")
(xah-fly-insert-mode-activate))
;; see https://docs.emmet.io/cheat-sheet/
(use-package emmet-mode
:config
(add-hook 'web-mode-hook 'emmet-mode)
(add-hook 'sgml-mode-hook 'emmet-mode)
(add-hook 'mhtml-mode-hook 'emmet-mode)
(add-hook 'css-mode-hook 'emmet-mode)
(setq emmet-move-cursor-between-quotes t)
(advice-add 'emmet-expand-line :after #'emmet-enter-insert-mode))
(defun web-is-in-css ()
(equal 'css (get-text-property (point) 'part-side)))
(defun web-mode-emmet-newline ()
;; interactive for general-def
(interactive)
(if (is-in-web-modes)
(when (web-is-in-css)
(call-interactively #'emmet-expand-line))
(newline)))
(general-def global-map "RET" 'web-mode-emmet-newline)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment