dotemacs

My Emacs configuration
git clone git://git.entf.net/dotemacs
Log | Files | Refs | LICENSE

jsp-expansions.el (2173B)


      1 ;;; jsp-expansions.el --- JSP-specific expansions for expand-region  -*- lexical-binding: t; -*-
      2 
      3 ;; Copyright (C) 2011-2023  Free Software Foundation, Inc
      4 
      5 ;; Author: Magnar Sveen <magnars@gmail.com>
      6 ;; Keywords: marking region
      7 
      8 ;; This program is free software; you can redistribute it and/or modify
      9 ;; it under the terms of the GNU General Public License as published by
     10 ;; the Free Software Foundation, either version 3 of the License, or
     11 ;; (at your option) any later version.
     12 
     13 ;; This program is distributed in the hope that it will be useful,
     14 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
     15 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     16 ;; GNU General Public License for more details.
     17 
     18 ;; You should have received a copy of the GNU General Public License
     19 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
     20 
     21 ;;; Commentary:
     22 
     23 ;; Extra expansions for editing JSP files. To be used in conjunction
     24 ;; with the html-mode expansions
     25 ;;
     26 ;;     er/mark-jstl-escape
     27 ;;
     28 ;; These expansions aren't loaded by default, so you'll have to explicitly
     29 ;; ask for them in your init file with:
     30 ;;
     31 ;;     (eval-after-load 'sgml-mode '(require 'jsp-expansions))
     32 ;;
     33 ;; Feel free to contribute any other expansions for JSP at
     34 ;;
     35 ;;     https://github.com/magnars/expand-region.el
     36 
     37 ;;; Code:
     38 
     39 (require 'expand-region-core)
     40 
     41 (defun er/mark-jstl-escape ()
     42     "Mark jstl-escape presumes that point is outside the brackets.
     43 If point is inside the brackets, they will be marked first anyway."
     44     (interactive)
     45       (when (or (looking-at "\\${")
     46             (er/looking-back-exact "$"))
     47     (forward-char 1)
     48     (search-backward "\$")
     49     (set-mark (point))
     50     (forward-char 1)
     51     (forward-list)
     52     (exchange-point-and-mark)))
     53 
     54 (defun er/add-jsp-expansions ()
     55   "Adds JSP-specific expansions to the buffer"
     56   (set (make-local-variable 'er/try-expand-list) (append
     57                                                   er/try-expand-list
     58                                                   '(er/mark-jstl-escape))))
     59 
     60 (er/enable-mode-expansions 'html-mode #'er/add-jsp-expansions)
     61 
     62 (provide 'jsp-expansions)
     63 
     64 ;; jsp-expansions.el ends here