From 0b9381901012fc5626414cb083c5d97ccbe037eb Mon Sep 17 00:00:00 2001 From: Ted Zlatanov Date: Fri, 29 Mar 2013 21:32:12 -0400 Subject: [PATCH] Move forward-whitespace, forward-symbol, forward-same-syntax commands to subr.el. Use forward-symbol in supermode.el again. * subr.el (forward-whitespace, forward-symbol) (forward-same-syntax): Move from thingatpt.el. * progmodes/subword.el: Back to using `forward-symbol'. --- lisp/ChangeLog | 7 ++++++ lisp/progmodes/subword.el | 4 +-- lisp/subr.el | 52 +++++++++++++++++++++++++++++++++++++++ lisp/thingatpt.el | 49 ------------------------------------ 4 files changed, 61 insertions(+), 51 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 6bb92573d0..737a91e2e4 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,10 @@ +2013-03-30 Teodor Zlatanov + + * progmodes/subword.el: Back to using `forward-symbol'. + + * subr.el (forward-whitespace, forward-symbol) + (forward-same-syntax): Move from thingatpt.el. + 2013-03-29 Leo Liu * kmacro.el (kmacro-to-register): New command. diff --git a/lisp/progmodes/subword.el b/lisp/progmodes/subword.el index 91c3a88680..6cb4713885 100644 --- a/lisp/progmodes/subword.el +++ b/lisp/progmodes/subword.el @@ -309,7 +309,7 @@ edit them as words. ;; (defun subword-forward-internal () (if superword-mode - (forward-sexp 1) + (forward-symbol 1) (if (and (save-excursion (let ((case-fold-search nil)) @@ -325,7 +325,7 @@ edit them as words. (defun subword-backward-internal () (if superword-mode - (forward-sexp -1) + (forward-symbol -1) (if (save-excursion (let ((case-fold-search nil)) (re-search-backward subword-backward-regexp nil t))) diff --git a/lisp/subr.el b/lisp/subr.el index 4eb46ec2b0..0fed34cfe1 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -3839,6 +3839,58 @@ node `(elisp)Syntax Table Internals' for a list of codes. If SYNTAX is nil, return nil." (and syntax (logand (car syntax) 65535))) +;; Utility motion commands + +;; Whitespace + +(defun forward-whitespace (arg) + "Move point to the end of the next sequence of whitespace chars. +Each such sequence may be a single newline, or a sequence of +consecutive space and/or tab characters. +With prefix argument ARG, do it ARG times if positive, or move +backwards ARG times if negative." + (interactive "^p") + (if (natnump arg) + (re-search-forward "[ \t]+\\|\n" nil 'move arg) + (while (< arg 0) + (if (re-search-backward "[ \t]+\\|\n" nil 'move) + (or (eq (char-after (match-beginning 0)) ?\n) + (skip-chars-backward " \t"))) + (setq arg (1+ arg))))) + +;; Symbols + +(defun forward-symbol (arg) + "Move point to the next position that is the end of a symbol. +A symbol is any sequence of characters that are in either the +word constituent or symbol constituent syntax class. +With prefix argument ARG, do it ARG times if positive, or move +backwards ARG times if negative." + (interactive "^p") + (if (natnump arg) + (re-search-forward "\\(\\sw\\|\\s_\\)+" nil 'move arg) + (while (< arg 0) + (if (re-search-backward "\\(\\sw\\|\\s_\\)+" nil 'move) + (skip-syntax-backward "w_")) + (setq arg (1+ arg))))) + +;; Syntax blocks + +(defun forward-same-syntax (&optional arg) + "Move point past all characters with the same syntax class. +With prefix argument ARG, do it ARG times if positive, or move +backwards ARG times if negative." + (interactive "^p") + (or arg (setq arg 1)) + (while (< arg 0) + (skip-syntax-backward + (char-to-string (char-syntax (char-before)))) + (setq arg (1+ arg))) + (while (> arg 0) + (skip-syntax-forward (char-to-string (char-syntax (char-after)))) + (setq arg (1- arg)))) + + ;;;; Text clones (defun text-clone-maintain (ol1 after beg end &optional _len) diff --git a/lisp/thingatpt.el b/lisp/thingatpt.el index 259cd772b1..f71a0d4647 100644 --- a/lisp/thingatpt.el +++ b/lisp/thingatpt.el @@ -529,60 +529,11 @@ with angle brackets.") (buffer-substring-no-properties (car boundary-pair) (cdr boundary-pair)))))) -;; Whitespace - -(defun forward-whitespace (arg) - "Move point to the end of the next sequence of whitespace chars. -Each such sequence may be a single newline, or a sequence of -consecutive space and/or tab characters. -With prefix argument ARG, do it ARG times if positive, or move -backwards ARG times if negative." - (interactive "p") - (if (natnump arg) - (re-search-forward "[ \t]+\\|\n" nil 'move arg) - (while (< arg 0) - (if (re-search-backward "[ \t]+\\|\n" nil 'move) - (or (eq (char-after (match-beginning 0)) ?\n) - (skip-chars-backward " \t"))) - (setq arg (1+ arg))))) - ;; Buffer (put 'buffer 'end-op (lambda () (goto-char (point-max)))) (put 'buffer 'beginning-op (lambda () (goto-char (point-min)))) -;; Symbols - -(defun forward-symbol (arg) - "Move point to the next position that is the end of a symbol. -A symbol is any sequence of characters that are in either the -word constituent or symbol constituent syntax class. -With prefix argument ARG, do it ARG times if positive, or move -backwards ARG times if negative." - (interactive "p") - (if (natnump arg) - (re-search-forward "\\(\\sw\\|\\s_\\)+" nil 'move arg) - (while (< arg 0) - (if (re-search-backward "\\(\\sw\\|\\s_\\)+" nil 'move) - (skip-syntax-backward "w_")) - (setq arg (1+ arg))))) - -;; Syntax blocks - -(defun forward-same-syntax (&optional arg) - "Move point past all characters with the same syntax class. -With prefix argument ARG, do it ARG times if positive, or move -backwards ARG times if negative." - (interactive "p") - (or arg (setq arg 1)) - (while (< arg 0) - (skip-syntax-backward - (char-to-string (char-syntax (char-before)))) - (setq arg (1+ arg))) - (while (> arg 0) - (skip-syntax-forward (char-to-string (char-syntax (char-after)))) - (setq arg (1- arg)))) - ;; Aliases (defun word-at-point () -- 2.20.1