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'.
This commit is contained in:
parent
781f4782a7
commit
0b93819010
4 changed files with 61 additions and 51 deletions
|
@ -1,3 +1,10 @@
|
|||
2013-03-30 Teodor Zlatanov <tzz@lifelogs.com>
|
||||
|
||||
* 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 <sdl.web@gmail.com>
|
||||
|
||||
* kmacro.el (kmacro-to-register): New command.
|
||||
|
|
|
@ -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)))
|
||||
|
|
52
lisp/subr.el
52
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)
|
||||
|
|
|
@ -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 ()
|
||||
|
|
Loading…
Add table
Reference in a new issue