annotate lisp/subword.el @ 106167:c898329ba7ba

* progmodes/cc-cmds.el (c-forward-into-nomenclature) (c-backward-into-nomenclature): Adapt to subword renaming. * subword.el (subword-forward, subword-backward, subword-mark) (subword-kill, subword-backward-kill, subword-transpose) (subword-downcase, subword-upcase, subword-capitalize) (subword-forward-internal, subword-backward-internal): Renamed from forward-subword, backward-subword, mark-subword kill-subword, backward-kill-subword, transpose-subwords, downcase-subword, upcase-subword, capitalize-subword forward-subword-internal, backward-subword-internal.
author Tassilo Horn <tassilo@member.fsf.org>
date Fri, 20 Nov 2009 18:09:29 +0000
parents b27aeda9c1fd
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
106160
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
1 ;;; subword.el --- Handling capitalized subwords in a nomenclature
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
2
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
3 ;; Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
4
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
5 ;; Author: Masatake YAMATO
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
6
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
7 ;; This file is part of GNU Emacs.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
8
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
9 ;; GNU Emacs is free software: you can redistribute it and/or modify
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
10 ;; it under the terms of the GNU General Public License as published by
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
11 ;; the Free Software Foundation, either version 3 of the License, or
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
12 ;; (at your option) any later version.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
13
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
14 ;; GNU Emacs is distributed in the hope that it will be useful,
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
15 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
16 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
17 ;; GNU General Public License for more details.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
18
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
19 ;; You should have received a copy of the GNU General Public License
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
20 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
21
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
22 ;;; Commentary:
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
23
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
24 ;; This package was cc-submode.el before it was recognized being
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
25 ;; useful in general and not tied to C and c-mode at all.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
26
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
27 ;; This package provides `subword' oriented commands and a minor mode
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
28 ;; (`subword-mode') that substitutes the common word handling
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
29 ;; functions with them.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
30
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
31 ;; In spite of GNU Coding Standards, it is popular to name a symbol by
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
32 ;; mixing uppercase and lowercase letters, e.g. "GtkWidget",
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
33 ;; "EmacsFrameClass", "NSGraphicsContext", etc. Here we call these
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
34 ;; mixed case symbols `nomenclatures'. Also, each capitalized (or
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
35 ;; completely uppercase) part of a nomenclature is called a `subword'.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
36 ;; Here are some examples:
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
37
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
38 ;; Nomenclature Subwords
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
39 ;; ===========================================================
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
40 ;; GtkWindow => "Gtk" and "Window"
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
41 ;; EmacsFrameClass => "Emacs", "Frame" and "Class"
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
42 ;; NSGraphicsContext => "NS", "Graphics" and "Context"
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
43
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
44 ;; The subword oriented commands defined in this package recognize
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
45 ;; subwords in a nomenclature to move between them and to edit them as
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
46 ;; words.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
47
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
48 ;; In the minor mode, all common key bindings for word oriented
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
49 ;; commands are overridden by the subword oriented commands:
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
50
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
51 ;; Key Word oriented command Subword oriented command
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
52 ;; ============================================================
106167
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
53 ;; M-f `forward-word' `subword-forward'
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
54 ;; M-b `backward-word' `subword-backward'
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
55 ;; M-@ `mark-word' `subword-mark'
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
56 ;; M-d `kill-word' `subword-kill'
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
57 ;; M-DEL `backward-kill-word' `subword-backward-kill'
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
58 ;; M-t `transpose-words' `subword-transpose'
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
59 ;; M-c `capitalize-word' `subword-capitalize'
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
60 ;; M-u `upcase-word' `subword-upcase'
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
61 ;; M-l `downcase-word' `subword-downcase'
106160
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
62 ;;
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
63 ;; Note: If you have changed the key bindings for the word oriented
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
64 ;; commands in your .emacs or a similar place, the keys you've changed
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
65 ;; to are also used for the corresponding subword oriented commands.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
66
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
67 ;; To make the mode turn on automatically, put the following code in
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
68 ;; your .emacs:
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
69 ;;
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
70 ;; (add-hook 'c-mode-common-hook
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
71 ;; (lambda () (subword-mode 1)))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
72 ;;
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
73
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
74 ;; Acknowledgment:
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
75 ;; The regular expressions to detect subwords are mostly based on
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
76 ;; the old `c-forward-into-nomenclature' originally contributed by
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
77 ;; Terry_Glanfield dot Southern at rxuk dot xerox dot com.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
78
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
79 ;; TODO: ispell-word and subword oriented C-w in isearch.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
80
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
81 ;;; Code:
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
82
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
83 (defvar subword-mode-map
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
84 (let ((map (make-sparse-keymap)))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
85 (dolist (cmd '(forward-word backward-word mark-word kill-word
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
86 backward-kill-word transpose-words
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
87 capitalize-word upcase-word downcase-word))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
88 (let ((othercmd (let ((name (symbol-name cmd)))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
89 (string-match "\\(.*-\\)\\(word.*\\)" name)
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
90 (intern (concat (match-string 1 name)
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
91 "sub"
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
92 (match-string 2 name))))))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
93 (define-key map (vector 'remap cmd) othercmd)))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
94 map)
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
95 "Keymap used in `subword-mode' minor mode.")
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
96
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
97 ;;;###autoload
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
98 (define-minor-mode subword-mode
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
99 "Mode enabling subword movement and editing keys.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
100 In spite of GNU Coding Standards, it is popular to name a symbol by
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
101 mixing uppercase and lowercase letters, e.g. \"GtkWidget\",
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
102 \"EmacsFrameClass\", \"NSGraphicsContext\", etc. Here we call these
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
103 mixed case symbols `nomenclatures'. Also, each capitalized (or
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
104 completely uppercase) part of a nomenclature is called a `subword'.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
105 Here are some examples:
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
106
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
107 Nomenclature Subwords
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
108 ===========================================================
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
109 GtkWindow => \"Gtk\" and \"Window\"
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
110 EmacsFrameClass => \"Emacs\", \"Frame\" and \"Class\"
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
111 NSGraphicsContext => \"NS\", \"Graphics\" and \"Context\"
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
112
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
113 The subword oriented commands activated in this minor mode recognize
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
114 subwords in a nomenclature to move between subwords and to edit them
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
115 as words.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
116
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
117 \\{subword-mode-map}"
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
118 nil
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
119 nil
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
120 subword-mode-map)
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
121
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
122 (define-obsolete-function-alias 'c-subword-mode 'subword-mode "23.2")
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
123
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
124 ;;;###autoload
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
125 (define-global-minor-mode global-subword-mode subword-mode
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
126 (lambda () (subword-mode 1)))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
127
106167
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
128 (defun subword-forward (&optional arg)
106160
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
129 "Do the same as `forward-word' but on subwords.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
130 See the command `subword-mode' for a description of subwords.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
131 Optional argument ARG is the same as for `forward-word'."
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
132 (interactive "p")
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
133 (unless arg (setq arg 1))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
134 (cond
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
135 ((< 0 arg)
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
136 (dotimes (i arg (point))
106167
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
137 (subword-forward-internal)))
106160
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
138 ((> 0 arg)
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
139 (dotimes (i (- arg) (point))
106167
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
140 (subword-backward-internal)))
106160
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
141 (t
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
142 (point))))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
143
106167
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
144 (put 'subword-forward 'CUA 'move)
106160
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
145
106167
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
146 (defun subword-backward (&optional arg)
106160
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
147 "Do the same as `backward-word' but on subwords.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
148 See the command `subword-mode' for a description of subwords.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
149 Optional argument ARG is the same as for `backward-word'."
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
150 (interactive "p")
106167
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
151 (subword-forward (- (or arg 1))))
106160
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
152
106167
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
153 (defun subword-mark (arg)
106160
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
154 "Do the same as `mark-word' but on subwords.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
155 See the command `subword-mode' for a description of subwords.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
156 Optional argument ARG is the same as for `mark-word'."
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
157 ;; This code is almost copied from `mark-word' in GNU Emacs.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
158 (interactive "p")
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
159 (cond ((and (eq last-command this-command) (mark t))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
160 (set-mark
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
161 (save-excursion
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
162 (goto-char (mark))
106167
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
163 (subword-forward arg)
106160
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
164 (point))))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
165 (t
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
166 (push-mark
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
167 (save-excursion
106167
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
168 (subword-forward arg)
106160
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
169 (point))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
170 nil t))))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
171
106167
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
172 (put 'subword-backward 'CUA 'move)
106160
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
173
106167
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
174 (defun subword-kill (arg)
106160
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
175 "Do the same as `kill-word' but on subwords.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
176 See the command `subword-mode' for a description of subwords.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
177 Optional argument ARG is the same as for `kill-word'."
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
178 (interactive "p")
106167
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
179 (kill-region (point) (subword-forward arg)))
106160
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
180
106167
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
181 (defun subword-backward-kill (arg)
106160
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
182 "Do the same as `backward-kill-word' but on subwords.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
183 See the command `subword-mode' for a description of subwords.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
184 Optional argument ARG is the same as for `backward-kill-word'."
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
185 (interactive "p")
106167
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
186 (subword-kill (- arg)))
106160
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
187
106167
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
188 (defun subword-transpose (arg)
106160
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
189 "Do the same as `transpose-words' but on subwords.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
190 See the command `subword-mode' for a description of subwords.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
191 Optional argument ARG is the same as for `transpose-words'."
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
192 (interactive "*p")
106167
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
193 (transpose-subr 'subword-forward arg))
106160
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
194
106167
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
195 (defun subword-downcase (arg)
106160
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
196 "Do the same as `downcase-word' but on subwords.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
197 See the command `subword-mode' for a description of subwords.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
198 Optional argument ARG is the same as for `downcase-word'."
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
199 (interactive "p")
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
200 (let ((start (point)))
106167
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
201 (downcase-region (point) (subword-forward arg))
106160
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
202 (when (< arg 0)
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
203 (goto-char start))))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
204
106167
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
205 (defun subword-upcase (arg)
106160
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
206 "Do the same as `upcase-word' but on subwords.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
207 See the command `subword-mode' for a description of subwords.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
208 Optional argument ARG is the same as for `upcase-word'."
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
209 (interactive "p")
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
210 (let ((start (point)))
106167
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
211 (upcase-region (point) (subword-forward arg))
106160
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
212 (when (< arg 0)
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
213 (goto-char start))))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
214
106167
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
215 (defun subword-capitalize (arg)
106160
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
216 "Do the same as `capitalize-word' but on subwords.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
217 See the command `subword-mode' for a description of subwords.
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
218 Optional argument ARG is the same as for `capitalize-word'."
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
219 (interactive "p")
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
220 (let ((count (abs arg))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
221 (start (point))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
222 (advance (if (< arg 0) nil t)))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
223 (dotimes (i count)
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
224 (if advance
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
225 (progn (re-search-forward
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
226 (concat "[[:alpha:]]")
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
227 nil t)
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
228 (goto-char (match-beginning 0)))
106167
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
229 (subword-backward))
106160
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
230 (let* ((p (point))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
231 (pp (1+ p))
106167
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
232 (np (subword-forward)))
106160
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
233 (upcase-region p pp)
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
234 (downcase-region pp np)
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
235 (goto-char (if advance np p))))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
236 (unless advance
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
237 (goto-char start))))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
238
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
239
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
240
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
241 ;;
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
242 ;; Internal functions
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
243 ;;
106167
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
244 (defun subword-forward-internal ()
106160
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
245 (if (and
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
246 (save-excursion
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
247 (let ((case-fold-search nil))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
248 (re-search-forward
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
249 (concat "\\W*\\(\\([[:upper:]]*\\W?\\)[[:lower:][:digit:]]*\\)")
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
250 nil t)))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
251 (> (match-end 0) (point)))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
252 (goto-char
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
253 (cond
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
254 ((< 1 (- (match-end 2) (match-beginning 2)))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
255 (1- (match-end 2)))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
256 (t
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
257 (match-end 0))))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
258 (forward-word 1)))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
259
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
260
106167
c898329ba7ba * progmodes/cc-cmds.el (c-forward-into-nomenclature)
Tassilo Horn <tassilo@member.fsf.org>
parents: 106160
diff changeset
261 (defun subword-backward-internal ()
106160
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
262 (if (save-excursion
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
263 (let ((case-fold-search nil))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
264 (re-search-backward
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
265 (concat
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
266 "\\(\\(\\W\\|[[:lower:][:digit:]]\\)\\([[:upper:]]+\\W*\\)"
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
267 "\\|\\W\\w+\\)")
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
268 nil t)))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
269 (goto-char
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
270 (cond
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
271 ((and (match-end 3)
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
272 (< 1 (- (match-end 3) (match-beginning 3)))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
273 (not (eq (point) (match-end 3))))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
274 (1- (match-end 3)))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
275 (t
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
276 (1+ (match-beginning 0)))))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
277 (backward-word 1)))
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
278
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
279
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
280 (provide 'subword)
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
281
b27aeda9c1fd 2009-11-20 Tassilo Horn <tassilo@member.fsf.org>
Tassilo Horn <tassilo@member.fsf.org>
parents:
diff changeset
282 ;;; subword.el ends here