Emacs config utilizing prelude as a base
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

76 lines
2.7 KiB

  1. ;;; prelude-web.el --- Emacs Prelude: web template support
  2. ;;
  3. ;; Copyright © 2011-2015 Bozhidar Batsov
  4. ;;
  5. ;; Author: Bozhidar Batsov <bozhidar@batsov.com>
  6. ;; URL: http://www.batsov.com/emacs-prelude
  7. ;; Version: 1.0.0
  8. ;; Keywords: convenience
  9. ;; This file is not part of GNU Emacs.
  10. ;;; Commentary:
  11. ;; Some basic configuration for web-mode.
  12. ;;; License:
  13. ;; This program is free software; you can redistribute it and/or
  14. ;; modify it under the terms of the GNU General Public License
  15. ;; as published by the Free Software Foundation; either version 3
  16. ;; of the License, or (at your option) any later version.
  17. ;;
  18. ;; This program is distributed in the hope that it will be useful,
  19. ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
  20. ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  21. ;; GNU General Public License for more details.
  22. ;;
  23. ;; You should have received a copy of the GNU General Public License
  24. ;; along with GNU Emacs; see the file COPYING. If not, write to the
  25. ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  26. ;; Boston, MA 02110-1301, USA.
  27. ;;; Code:
  28. (prelude-require-packages '(web-mode))
  29. (require 'web-mode)
  30. (add-to-list 'auto-mode-alist '("\\.phtml\\'" . web-mode))
  31. (add-to-list 'auto-mode-alist '("\\.tpl\\.php\\'" . web-mode))
  32. (add-to-list 'auto-mode-alist '("\\.tpl\\'" . web-mode))
  33. (add-to-list 'auto-mode-alist '("\\.blade\\.php\\'" . web-mode))
  34. (add-to-list 'auto-mode-alist '("\\.jsp\\'" . web-mode))
  35. (add-to-list 'auto-mode-alist '("\\.as[cp]x\\'" . web-mode))
  36. (add-to-list 'auto-mode-alist '("\\.erb\\'" . web-mode))
  37. (add-to-list 'auto-mode-alist '("\\.html?\\'" . web-mode))
  38. (add-to-list 'auto-mode-alist
  39. '("/\\(views\\|html\\|theme\\|templates\\)/.*\\.php\\'" . web-mode))
  40. ;; make web-mode play nice with smartparens
  41. (setq web-mode-enable-auto-pairing nil)
  42. (sp-with-modes '(web-mode)
  43. (sp-local-pair "%" "%"
  44. :unless '(sp-in-string-p)
  45. :post-handlers '(((lambda (&rest _ignored)
  46. (just-one-space)
  47. (save-excursion (insert " ")))
  48. "SPC" "=" "#")))
  49. (sp-local-pair "<% " " %>" :insert "C-c %")
  50. (sp-local-pair "<%= " " %>" :insert "C-c =")
  51. (sp-local-pair "<%# " " %>" :insert "C-c #")
  52. (sp-local-tag "%" "<% " " %>")
  53. (sp-local-tag "=" "<%= " " %>")
  54. (sp-local-tag "#" "<%# " " %>"))
  55. (eval-after-load 'web-mode
  56. '(progn
  57. (defun prelude-web-mode-defaults ())
  58. (setq prelude-web-mode-hook 'prelude-web-mode-defaults)
  59. (add-hook 'web-mode-hook (lambda ()
  60. (run-hooks 'prelude-web-mode-hook)))))
  61. (provide 'prelude-web)
  62. ;;; prelude-web.el ends here