Last active
March 31, 2021 19:03
-
-
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(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