]> git.eshelyaron.com Git - emacs.git/commitdiff
Make subword.el easier to customize (tiny change)
authorPhil Sainty <psainty@orcon.net.nz>
Thu, 16 Aug 2012 06:25:27 +0000 (23:25 -0700)
committerGlenn Morris <rgm@gnu.org>
Thu, 16 Aug 2012 06:25:27 +0000 (23:25 -0700)
* lisp/progmodes/subword.el (subword-forward-function)
(subword-backward-function, subword-forward-regexp, subword-backward-regexp):
New variables.
(subword-forward, subword-forward-internal, subword-backward-internal):
Use new variables, eg so that different "word" definitions can be easily used.

Fixes: debbugs:11411
lisp/ChangeLog
lisp/progmodes/subword.el

index cc42b1493eeca7dadeee87ed3e840bd41724f29c..2202b4c7632e92309ec9dfb4a7274efd1c395f70 100644 (file)
@@ -1,3 +1,12 @@
+2012-08-16  Phil Sainty  <psainty@orcon.net.nz>  (tiny change)
+
+       * progmodes/subword.el (subword-forward-function)
+       (subword-backward-function, subword-forward-regexp)
+       (subword-backward-regexp): New variables.
+       (subword-forward, subword-forward-internal, subword-backward-internal):
+       Use new variables, eg so that different "word" definitions
+       can be easily used.  (Bug#11411)
+
 2012-08-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * vc/vc-mtn.el (vc-mtn-revision-completion-table): Handle completion
index 7d8dd4301a2d8ff74bded9490cd9c4d3da777381..e541aed88671785b9737c8044468edd47f90fb54 100644 (file)
 
 ;;; Code:
 
+(defvar subword-forward-function 'subword-forward-internal
+  "Function to call for forward subword movement.")
+
+(defvar subword-backward-function 'subword-backward-internal
+  "Function to call for backward subword movement.")
+
+(defvar subword-forward-regexp
+  "\\W*\\(\\([[:upper:]]*\\W?\\)[[:lower:][:digit:]]*\\)"
+  "Regexp used by `subword-forward-internal'.")
+
+(defvar subword-backward-regexp
+  "\\(\\(\\W\\|[[:lower:][:digit:]]\\)\\([[:upper:]]+\\W*\\)\\|\\W\\w+\\)"
+  "Regexp used by `subword-backward-internal'.")
+
 (defvar subword-mode-map
   (let ((map (make-sparse-keymap)))
     (dolist (cmd '(forward-word backward-word mark-word kill-word
@@ -138,10 +152,10 @@ Optional argument ARG is the same as for `forward-word'."
   (cond
    ((< 0 arg)
     (dotimes (i arg (point))
-      (subword-forward-internal)))
+      (funcall subword-forward-function)))
    ((> 0 arg)
     (dotimes (i (- arg) (point))
-      (subword-backward-internal)))
+      (funcall subword-backward-function)))
    (t
     (point))))
 
@@ -249,9 +263,7 @@ Optional argument ARG is the same as for `capitalize-word'."
   (if (and
        (save-excursion
         (let ((case-fold-search nil))
-          (re-search-forward
-           (concat "\\W*\\(\\([[:upper:]]*\\W?\\)[[:lower:][:digit:]]*\\)")
-           nil t)))
+          (re-search-forward subword-forward-regexp nil t)))
        (> (match-end 0) (point)))
       (goto-char
        (cond
@@ -265,11 +277,7 @@ Optional argument ARG is the same as for `capitalize-word'."
 (defun subword-backward-internal ()
   (if (save-excursion
        (let ((case-fold-search nil))
-         (re-search-backward
-          (concat
-           "\\(\\(\\W\\|[[:lower:][:digit:]]\\)\\([[:upper:]]+\\W*\\)"
-           "\\|\\W\\w+\\)")
-          nil t)))
+         (re-search-backward subword-backward-regexp nil t)))
       (goto-char
        (cond
        ((and (match-end 3)