| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- ;; --- web configuration file.---
- ;; Provides basic utility for web programming such as:
- ;; * Tag auto-pairing
- ;; * Switching major modes when entering different tags
- ;; Requires:
- (require 'package-loader)
- (defun my-sgml-insert-gt ()
- "Inserts a `>' character and calls
- `my-sgml-close-tag-if-necessary', leaving point where it is."
- (interactive)
- (insert ">")
- (save-excursion (my-sgml-close-tag-if-necessary)))
- (defun my-sgml-close-tag-if-necessary ()
- "Calls sgml-close-tag if the tag immediately before point is
- an opening tag that is not followed by a matching closing tag."
- (when (looking-back "<\\s-*\\([^</> \t\r\n]+\\)[^</>]*>")
- (let ((tag (match-string 1)))
- (unless (and (not (sgml-unclosed-tag-p tag))
- (looking-at (concat "\\s-*<\\s-*/\\s-*" tag "\\s-*>")))
- (sgml-close-tag)))))
- ;; TODO: Disable autopair in HTML. Interferes with autoclose tab.
- (use-package multi-web-mode
- :init
- (setq mweb-default-major-mode 'html-mode
- mweb-tags '((php-mode "<\\?php\\|<\\? \\|<\\?=" "\\?>")
- (js-mode "<script[^>]*type=[\"']text/javascript[\"'][^>]*>" "</script>")
- (java-mode "<%" "%>")
- (java-mode "<%=" "%>")
- (css-mode "<style[^>]*>" "</style>"))
- mweb-filename-extensions '("php" "htm" "html" "jsp" "ctp" "phtml" "php4" "php5"))
- :config
- (multi-web-global-mode 1)
- (eval-after-load "sgml-mode"
- '(define-key sgml-mode-map ">" 'my-sgml-insert-gt)))
- (provide 'web)
|