;;; packages.el --- HTTP Layer packages File for Spacemacs ;; ;; Copyright (c) 2012-2014 Sylvain Benner ;; Copyright (c) 2014-2015 Sylvain Benner & Contributors ;; ;; Author: Sylvain Benner ;; URL: https://github.com/syl20bnr/spacemacs ;; ;; This file is not part of GNU Emacs. ;; ;;; License: GPLv3 (defvar html-packages '( emmet-mode evil-matchit flycheck helm-css-scss less-css-mode scss-mode sass-mode tagedit web-mode yasnippet haml-mode slim-mode ) "List of all packages to install and/or initialize. Built-in packages which require an initialization must be listed explicitly in the list.") (defun html/init-helm-css-scss () (use-package helm-css-scss :defer t :init (eval-after-load 'scss-mode '(evil-leader/set-key-for-mode 'scss-mode "mgh" 'helm-css-scss)))) (defun html/init-web-mode () (use-package web-mode :defer t :config (progn (evil-leader/set-key-for-mode 'web-mode "meh" 'web-mode-dom-errors-show "mgb" 'web-mode-element-beginning "mgc" 'web-mode-element-child "mgp" 'web-mode-element-parent "mgs" 'web-mode-element-sibling-next "mhp" 'web-mode-dom-xpath "mrc" 'web-mode-element-clone "mrd" 'web-mode-element-vanish "mrr" 'web-mode-element-rename "mrw" 'web-mode-element-wrap "mz" 'web-mode-fold-or-unfold ;; TODO element close would be nice but broken with evil. ) (defvar spacemacs--web-mode-ms-doc-toggle 0 "Display a short doc when nil, full doc otherwise.") (defun spacemacs//web-mode-ms-doc () (if (equal 0 spacemacs--web-mode-ms-doc-toggle) "[?] for help" " [?] display this help [h] previous [l] next [L] sibling [k] parent [j] child [c] clone [d] delete [r] rename [w] wrap [p] xpath [q] quit")) (defun spacemacs//web-mode-ms-toggle-doc () (interactive) (setq spacemacs--web-mode-ms-doc-toggle (logxor spacemacs--web-mode-ms-doc-toggle 1))) (spacemacs|define-micro-state web-mode :doc (spacemacs//web-mode-ms-doc) :persistent t :evil-leader-for-mode (web-mode . "m.") :bindings ("" nil :exit t) ("?" spacemacs//web-mode-ms-toggle-doc) ("c" web-mode-element-clone) ("d" web-mode-element-vanish) ("h" web-mode-element-previous) ("l" web-mode-element-next) ("L" web-mode-element-sibling-next) ("k" web-mode-element-parent) ("j" web-mode-element-child) ("p" web-mode-dom-xpath) ("r" web-mode-element-rename) ("q" nil :exit t) ("w" web-mode-element-wrap))) :mode (("\\.phtml\\'" . web-mode) ("\\.tpl\\.php\\'" . web-mode) ("\\.html\\'" . web-mode) ("\\.htm\\'" . web-mode) ("\\.[gj]sp\\'" . web-mode) ("\\.as[cp]x\\'" . web-mode) ("\\.erb\\'" . web-mode) ("\\.mustache\\'" . web-mode) ("\\.handlebars\\'" . web-mode) ("\\.hbs\\'" . web-mode) ("\\.djhtml\\'" . web-mode)))) (defun html/init-emmet-mode () (use-package emmet-mode :defer t :init (progn (add-hook 'web-mode-hook 'emmet-mode) (add-hook 'html-mode-hook 'emmet-mode) (add-hook 'css-mode-hook 'emmet-mode)) :config (progn (local-set-key (kbd "") 'emmet-expand-yas) (spacemacs|hide-lighter emmet-mode)))) (defun html/post-init-evil-matchit () (add-hook 'web-mode-hook 'evil-matchit-mode)) (defun html/init-scss-mode () (use-package scss-mode :defer t :mode ("\\.scss\\'" . scss-mode))) (defun html/init-sass-mode () (use-package sass-mode :defer t :mode ("\\.sass\\'" . sass-mode))) (defun html/init-less-css-mode () (use-package less-css-mode :defer t :mode ("\\.less\\'" . less-css-mode))) (defun html/init-flycheck () (add-hook 'web-mode-hook 'flycheck-mode) (add-hook 'scss-mode-hook 'flycheck-mode) (add-hook 'sass-mode-hook 'flycheck-mode)) (defun html/init-tagedit () (use-package tagedit :defer t :config (progn (tagedit-add-experimental-features) (add-hook 'html-mode-hook (lambda () (tagedit-mode 1))) (spacemacs|diminish tagedit-mode " Ⓣ" " T")))) (defun html/init-yasnippet () (use-package yasnippet :defer t :init (add-hook 'css-mode-hook 'spacemacs/load-yasnippet))) (defun html/init-haml-mode () (use-package haml-mode :defer t)) (defun html/init-slim-mode () (use-package slim-mode :defer t))