* Problems with whole buffer Custom functions. @ 2006-01-13 3:32 Luc Teirlinck 2006-01-17 1:27 ` Juri Linkov 0 siblings, 1 reply; 32+ messages in thread From: Luc Teirlinck @ 2006-01-13 3:32 UTC (permalink / raw) Recently more emphasized (via the mode docstring) Custom buffer key bindings (C-x C-s and C-c C-c) have problems. `custom-mode-map' is _not_ enabled in the entire Custom buffer. For instance, it is not enabled in editable fields. I can not do the following example in `emacs -q' because it involves saving into .emacs, but I am pretty sure the problems are not caused by my customizations. Do `M-x customize-option RET double-click-time'. Edit the value in the editable field and, with point still in the editable field, do `C-x C-s', which according to the mode doc is going to save your new value in your .emacs. Note that instead you get asked in which file you want to save the Custom buffer. With point still in the editable field, doing C-c C-c shows that it is not defined. I do not immediately know whether editable fields are the only problem. Sincerely, Luc. ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: Problems with whole buffer Custom functions. 2006-01-13 3:32 Problems with whole buffer Custom functions Luc Teirlinck @ 2006-01-17 1:27 ` Juri Linkov 2006-01-17 4:13 ` Luc Teirlinck 2006-01-19 17:44 ` Richard M. Stallman 0 siblings, 2 replies; 32+ messages in thread From: Juri Linkov @ 2006-01-17 1:27 UTC (permalink / raw) Cc: emacs-devel > Recently more emphasized (via the mode docstring) Custom buffer > key bindings (C-x C-s and C-c C-c) have problems. > > `custom-mode-map' is _not_ enabled in the entire Custom buffer. For > instance, it is not enabled in editable fields. More keys are not enabled in editable fields, for instance, `n' and `p': Move to next button or editable field. n Move to previous button or editable field. p They can be used only until point reaches the first editable field. After that keys get inserted literally to the field. > I can not do the following example in `emacs -q' because it involves > saving into .emacs, but I am pretty sure the problems are not caused > by my customizations. > > Do `M-x customize-option RET double-click-time'. Edit the value in > the editable field and, with point still in the editable field, do > `C-x C-s', which according to the mode doc is going to save your new > value in your .emacs. Note that instead you get asked in which file > you want to save the Custom buffer. With point still in the editable > field, doing C-c C-c shows that it is not defined. Perhaps cus-edit should bind `C-c C-c' and `C-x C-s' in a new keymap inheriting from widget-field-keymap. -- Juri Linkov http://www.jurta.org/emacs/ ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: Problems with whole buffer Custom functions. 2006-01-17 1:27 ` Juri Linkov @ 2006-01-17 4:13 ` Luc Teirlinck 2006-01-17 21:54 ` Juri Linkov ` (2 more replies) 2006-01-19 17:44 ` Richard M. Stallman 1 sibling, 3 replies; 32+ messages in thread From: Luc Teirlinck @ 2006-01-17 4:13 UTC (permalink / raw) Cc: emacs-devel More keys are not enabled in editable fields, for instance, `n' and `p': Move to next button or editable field. n Move to previous button or editable field. p They can be used only until point reaches the first editable field. After that keys get inserted literally to the field. Of course, ordinary self-inserting characters _should_ self-insert in editable fields. But note that TAB still moves to next button or editable field (I guess that list should now also include "link"). S-TAB also has its regular meaning, but the recently added M-TAB does not, because it has another (completion related) meaning in editable fields. Sincerely, Luc. ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: Problems with whole buffer Custom functions. 2006-01-17 4:13 ` Luc Teirlinck @ 2006-01-17 21:54 ` Juri Linkov 2006-01-18 0:29 ` Kevin Rodgers 2006-01-23 0:10 ` Richard M. Stallman 2006-01-22 0:45 ` Juri Linkov 2006-01-22 0:45 ` Juri Linkov 2 siblings, 2 replies; 32+ messages in thread From: Juri Linkov @ 2006-01-17 21:54 UTC (permalink / raw) Cc: emacs-devel > Of course, ordinary self-inserting characters _should_ self-insert in > editable fields. But note that TAB still moves to next button or > editable field (I guess that list should now also include "link"). > S-TAB also has its regular meaning, but the recently added M-TAB does > not, because it has another (completion related) meaning in editable > fields. I think this is mostly a documentation problem. `C-h m' on a customization buffer suggests using `n' and `p' instead of better `TAB' and `S-TAB': Move to next button or editable field. n Move to previous button or editable field. p Complete content of editable text field. M-TAB Adding `\\<widget-keymap>\' before first two lines above in the docstring of `custom-mode' to force displaying keybindings from `widget-keymap', the output of `C-h m' is still not good: Move to next button or editable field. TAB Move to previous button or editable field. M-TAB Complete content of editable text field. M-TAB Note duplicate `M-TAB' for different contexts. Also while `C-x C-s' and `C-c C-c' are not available in editable fields, the docstring should warn about this fact. -- Juri Linkov http://www.jurta.org/emacs/ ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: Problems with whole buffer Custom functions. 2006-01-17 21:54 ` Juri Linkov @ 2006-01-18 0:29 ` Kevin Rodgers 2006-01-23 0:10 ` Richard M. Stallman 1 sibling, 0 replies; 32+ messages in thread From: Kevin Rodgers @ 2006-01-18 0:29 UTC (permalink / raw) Juri Linkov wrote: >>Of course, ordinary self-inserting characters _should_ self-insert in >>editable fields. But note that TAB still moves to next button or >>editable field (I guess that list should now also include "link"). >>S-TAB also has its regular meaning, but the recently added M-TAB does >>not, because it has another (completion related) meaning in editable >>fields. > > > I think this is mostly a documentation problem. `C-h m' on a customization > buffer suggests using `n' and `p' instead of better `TAB' and `S-TAB': > > Move to next button or editable field. n > Move to previous button or editable field. p > Complete content of editable text field. M-TAB Would M-n and M-p be better? > Adding `\\<widget-keymap>\' before first two lines above in the docstring > of `custom-mode' to force displaying keybindings from `widget-keymap', the > output of `C-h m' is still not good: > > Move to next button or editable field. TAB > Move to previous button or editable field. M-TAB > Complete content of editable text field. M-TAB > > Note duplicate `M-TAB' for different contexts. Would that go away if M-n and M-p were in front of (i.e. added later than) TAB and M-TAB in widget-keymap? -- Kevin Rodgers ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: Problems with whole buffer Custom functions. 2006-01-17 21:54 ` Juri Linkov 2006-01-18 0:29 ` Kevin Rodgers @ 2006-01-23 0:10 ` Richard M. Stallman 1 sibling, 0 replies; 32+ messages in thread From: Richard M. Stallman @ 2006-01-23 0:10 UTC (permalink / raw) Cc: teirllm, emacs-devel Move to next button or editable field. TAB Move to previous button or editable field. M-TAB Complete content of editable text field. M-TAB Note duplicate `M-TAB' for different contexts. It's not a bug in the help mechanism, because it is looking these up in two different keymaps. Anyway, I will define a command advertised-widget-backward to control what this displays. ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: Problems with whole buffer Custom functions. 2006-01-17 4:13 ` Luc Teirlinck 2006-01-17 21:54 ` Juri Linkov @ 2006-01-22 0:45 ` Juri Linkov 2006-01-22 1:46 ` Luc Teirlinck 2006-01-22 1:55 ` Luc Teirlinck 2006-01-22 0:45 ` Juri Linkov 2 siblings, 2 replies; 32+ messages in thread From: Juri Linkov @ 2006-01-22 0:45 UTC (permalink / raw) Cc: emacs-devel > Of course, ordinary self-inserting characters _should_ self-insert in > editable fields. But note that TAB still moves to next button or > editable field (I guess that list should now also include "link"). In the patch below I've added "link" to the docstring of `custom-mode' to custom.texi, and fixed examples in custom.texi since links in customization buffer don't have square brackets anymore. Index: lisp/cus-edit.el =================================================================== RCS file: /sources/emacs/emacs/lisp/cus-edit.el,v retrieving revision 1.279 diff -c -r1.279 cus-edit.el *** lisp/cus-edit.el 19 Jan 2006 23:26:04 -0000 1.279 --- lisp/cus-edit.el 22 Jan 2006 00:33:54 -0000 *************** *** 4425,4436 **** The following commands are available: ! Move to next button or editable field. \\[widget-forward] ! Move to previous button or editable field. \\[widget-backward] ! \\<widget-field-keymap>\ Complete content of editable text field. \\[widget-complete] \\<custom-mode-map>\ ! Invoke button under the mouse pointer. \\[Custom-move-and-invoke] Invoke button under point. \\[widget-button-press] Set all options from current text. \\[Custom-set] Make values in current text permanent. \\[Custom-save] --- 4430,4442 ---- The following commands are available: ! \\<widget-keymap>\ ! Move to next button, link or editable field. \\[widget-forward] ! Move to previous button, link or editable field. \\[widget-backward] ! \\<custom-field-keymap>\ Complete content of editable text field. \\[widget-complete] \\<custom-mode-map>\ ! Invoke button under the mouse pointer. \\[widget-move-and-invoke] Invoke button under point. \\[widget-button-press] Set all options from current text. \\[Custom-set] Make values in current text permanent. \\[Custom-save] Index: man/custom.texi =================================================================== RCS file: /sources/emacs/emacs/man/custom.texi,v retrieving revision 1.104 diff -c -r1.104 custom.texi *** man/custom.texi 19 Jan 2006 17:34:34 -0000 1.104 --- man/custom.texi 22 Jan 2006 00:34:47 -0000 *************** *** 202,208 **** The appearance of the example buffers in this section is typically different under a window system, since faces are then used to indicate ! buttons and editable fields. @menu * Groups: Customization Groups. How settings are classified in a structure. --- 202,208 ---- The appearance of the example buffers in this section is typically different under a window system, since faces are then used to indicate ! buttons, links and editable fields. @menu * Groups: Customization Groups. How settings are classified in a structure. *************** *** 232,243 **** /- Emacs group: ---------------------------------------------------\ [State]: visible group members are all at standard values. Customization of the One True Editor. ! See also [Manual]. ! Editing group: [Go to Group] Basic text editing facilities. ! External group: [Go to Group] Interfacing to external utilities. @var{more second-level groups} --- 232,243 ---- /- Emacs group: ---------------------------------------------------\ [State]: visible group members are all at standard values. Customization of the One True Editor. ! See also Manual. ! Editing group: Go to Group Basic text editing facilities. ! External group: Go to Group Interfacing to external utilities. @var{more second-level groups} *************** *** 256,271 **** @cindex editable fields (customization buffer) @cindex buttons (customization buffer) Most of the text in the customization buffer is read-only, but it typically includes some @dfn{editable fields} that you can edit. ! There are also @dfn{buttons}, which do something when you @dfn{invoke} ! them. To invoke a button, either click on it with @kbd{Mouse-1}, or ! move point to it and type @key{RET}. ! ! For example, the phrase @samp{[Go to Group]} that appears in a ! second-level group is a button. Invoking it creates a new ! customization buffer, which shows that group and its contents. This ! is a kind of hypertext link to another group. The @code{Emacs} group includes a few settings, but mainly it contains other groups, which contain more groups, which contain the --- 256,273 ---- @cindex editable fields (customization buffer) @cindex buttons (customization buffer) + @cindex links (customization buffer) Most of the text in the customization buffer is read-only, but it typically includes some @dfn{editable fields} that you can edit. ! There are also @dfn{buttons} and @dfn{links}, which do something when ! you @dfn{invoke} them. To invoke a button or a link, either click on ! it with @kbd{Mouse-1}, or move point to it and type @key{RET}. ! ! For example, the phrase @samp{[State]} that appears in ! a second-level group is a button. It operates on the same ! customization buffer. But the phrase @samp{Go to Group} is a kind ! of hypertext link to another group. Invoking it creates a new ! customization buffer, which shows that group and its contents. The @code{Emacs} group includes a few settings, but mainly it contains other groups, which contain more groups, which contain the *************** *** 288,295 **** @samp{[+]}. When the group contents are visible, this button changes to @samp{[-]}; invoking that hides the group contents. ! Each setting in this buffer has a button which says @samp{[Group]}, ! @samp{[Option]} or @samp{[Face]}. Invoking this button creates an ordinary customization buffer showing just that group and its contents, just that user option, or just that face. This is the way to change settings that you find with @kbd{M-x customize-browse}. --- 290,297 ---- @samp{[+]}. When the group contents are visible, this button changes to @samp{[-]}; invoking that hides the group contents. ! Each setting in this buffer has a link which says @samp{Group}, ! @samp{Option} or @samp{Face}. Invoking this link creates an ordinary customization buffer showing just that group and its contents, just that user option, or just that face. This is the way to change settings that you find with @kbd{M-x customize-browse}. -- Juri Linkov http://www.jurta.org/emacs/ ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: Problems with whole buffer Custom functions. 2006-01-22 0:45 ` Juri Linkov @ 2006-01-22 1:46 ` Luc Teirlinck 2006-01-23 1:42 ` Juri Linkov 2006-01-22 1:55 ` Luc Teirlinck 1 sibling, 1 reply; 32+ messages in thread From: Luc Teirlinck @ 2006-01-22 1:46 UTC (permalink / raw) Cc: emacs-devel Juri Linkov wrote: In the patch below I've added "link" to the docstring of `custom-mode' to custom.texi, and fixed examples in custom.texi since links in customization buffer don't have square brackets anymore. In latest CVS, they apparently still do (in emacs -nw -q). Sincerely, Luc. ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: Problems with whole buffer Custom functions. 2006-01-22 1:46 ` Luc Teirlinck @ 2006-01-23 1:42 ` Juri Linkov 2006-01-24 16:46 ` Richard M. Stallman 0 siblings, 1 reply; 32+ messages in thread From: Juri Linkov @ 2006-01-23 1:42 UTC (permalink / raw) Cc: emacs-devel > In the patch below I've added "link" to the docstring of `custom-mode' > to custom.texi, and fixed examples in custom.texi since links > in customization buffer don't have square brackets anymore. > > In latest CVS, they apparently still do (in emacs -nw -q). Actually, I meant that links in customization buffer don't have square brackets with my latest patch I posted on another thread. Below I've extracted that part into a separate patch. I think it is inappropriate to enclose links into square brackets. Square brackets are a textual representation of buttons to indicate a rectangular area around them that looks like buttons. OTOH, links are underlined blue and don't need additional markup like square brackets. So I propose not to display links in square brackets even on a tty and to update the manual: Index: lisp/cus-edit.el =================================================================== RCS file: /sources/emacs/emacs/lisp/cus-edit.el,v retrieving revision 1.280 diff -c -r1.280 cus-edit.el *** lisp/cus-edit.el 23 Jan 2006 01:21:24 -0000 1.280 --- lisp/cus-edit.el 23 Jan 2006 01:41:57 -0000 *************** *** 4450,4458 **** ;; may not be optimal. (when custom-raised-buttons (set (make-local-variable 'widget-push-button-prefix) "") ! (set (make-local-variable 'widget-push-button-suffix) "") ! (set (make-local-variable 'widget-link-prefix) "") ! (set (make-local-variable 'widget-link-suffix) "")) (add-hook 'widget-edit-functions 'custom-state-buffer-message nil t) (run-mode-hooks 'custom-mode-hook)) --- 4451,4459 ---- ;; may not be optimal. (when custom-raised-buttons (set (make-local-variable 'widget-push-button-prefix) "") ! (set (make-local-variable 'widget-push-button-suffix) "")) ! (set (make-local-variable 'widget-link-prefix) "") ! (set (make-local-variable 'widget-link-suffix) "") (add-hook 'widget-edit-functions 'custom-state-buffer-message nil t) (run-mode-hooks 'custom-mode-hook)) Index: man/custom.texi =================================================================== RCS file: /sources/emacs/emacs/man/custom.texi,v retrieving revision 1.105 diff -c -r1.105 custom.texi *** man/custom.texi 23 Jan 2006 01:30:13 -0000 1.105 --- man/custom.texi 23 Jan 2006 01:41:59 -0000 *************** *** 232,243 **** /- Emacs group: ---------------------------------------------------\ [State]: visible group members are all at standard values. Customization of the One True Editor. ! See also [Manual]. ! Editing group: [Go to Group] Basic text editing facilities. ! External group: [Go to Group] Interfacing to external utilities. @var{more second-level groups} --- 232,243 ---- /- Emacs group: ---------------------------------------------------\ [State]: visible group members are all at standard values. Customization of the One True Editor. ! See also Manual. ! Editing group: Go to Group Basic text editing facilities. ! External group: Go to Group Interfacing to external utilities. @var{more second-level groups} *************** *** 265,271 **** For example, the phrase @samp{[State]} that appears in a second-level group is a button. It operates on the same ! customization buffer. The phrase @samp{[Go to Group]} is a kind of hypertext link to another group. Invoking it creates a new customization buffer, which shows that group and its contents. --- 265,271 ---- For example, the phrase @samp{[State]} that appears in a second-level group is a button. It operates on the same ! customization buffer. But the phrase @samp{Go to Group} is a kind of hypertext link to another group. Invoking it creates a new customization buffer, which shows that group and its contents. *************** *** 290,297 **** @samp{[+]}. When the group contents are visible, this button changes to @samp{[-]}; invoking that hides the group contents. ! Each setting in this buffer has a link which says @samp{[Group]}, ! @samp{[Option]} or @samp{[Face]}. Invoking this link creates an ordinary customization buffer showing just that group and its contents, just that user option, or just that face. This is the way to change settings that you find with @kbd{M-x customize-browse}. --- 290,297 ---- @samp{[+]}. When the group contents are visible, this button changes to @samp{[-]}; invoking that hides the group contents. ! Each setting in this buffer has a link which says @samp{Group}, ! @samp{Option} or @samp{Face}. Invoking this link creates an ordinary customization buffer showing just that group and its contents, just that user option, or just that face. This is the way to change settings that you find with @kbd{M-x customize-browse}. -- Juri Linkov http://www.jurta.org/emacs/ ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: Problems with whole buffer Custom functions. 2006-01-23 1:42 ` Juri Linkov @ 2006-01-24 16:46 ` Richard M. Stallman 2006-01-24 21:45 ` Juri Linkov 0 siblings, 1 reply; 32+ messages in thread From: Richard M. Stallman @ 2006-01-24 16:46 UTC (permalink / raw) Cc: teirllm, emacs-devel OTOH, links are underlined blue and don't need additional markup like square brackets. Not on a tty they aren't. There is no underlining. So I propose not to display links in square brackets even on a tty and to update the manual: No, please don't install that. ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: Problems with whole buffer Custom functions. 2006-01-24 16:46 ` Richard M. Stallman @ 2006-01-24 21:45 ` Juri Linkov 2006-01-24 23:11 ` Lennart Borgman 2006-01-25 15:45 ` Richard M. Stallman 0 siblings, 2 replies; 32+ messages in thread From: Juri Linkov @ 2006-01-24 21:45 UTC (permalink / raw) Cc: teirllm, emacs-devel > OTOH, links are underlined blue and don't need > additional markup like square brackets. > > Not on a tty they aren't. There is no underlining. > > So I propose not to display links > in square brackets even on a tty and to update the manual: > > No, please don't install that. I don't insist on removing square brackets. I only wanted to make the appearance of buttons and links consistent at least on same display types. Currently there is the following inconsistency on the link appearance: on graphics terminals: links in Customize - underlined blue links in Info - underlined blue links in Help - underlined on xterms: links in Customize - underlined blue with square brackets links in Info - underlined blue links in Help - underlined on ttys: links in Customize - blue with square brackets links in Info - blue links in Help - no highlighting at all I propose to change them according to the following scheme (I'm still not quite sure about adding blue to links in the Help buffer): On graphics terminals: links in Customize - underlined blue links in Info - underlined blue links in Help - underlined (blue?) On xterms: links in Customize - underlined blue links in Info - underlined blue links in Help - underlined (blue?) On ttys: links in Customize - blue links in Info - blue links in Help - blue -- Juri Linkov http://www.jurta.org/emacs/ ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: Problems with whole buffer Custom functions. 2006-01-24 21:45 ` Juri Linkov @ 2006-01-24 23:11 ` Lennart Borgman 2006-01-25 7:55 ` Juri Linkov 2006-01-25 15:45 ` Richard M. Stallman 1 sibling, 1 reply; 32+ messages in thread From: Lennart Borgman @ 2006-01-24 23:11 UTC (permalink / raw) Cc: teirllm, rms, emacs-devel Juri Linkov wrote: > I propose to change them according to the following scheme (I'm still not > quite sure about adding blue to links in the Help buffer): > Please use underlined blue in the Help buffer too. ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: Problems with whole buffer Custom functions. 2006-01-24 23:11 ` Lennart Borgman @ 2006-01-25 7:55 ` Juri Linkov 0 siblings, 0 replies; 32+ messages in thread From: Juri Linkov @ 2006-01-25 7:55 UTC (permalink / raw) Cc: teirllm, rms, emacs-devel >> I propose to change them according to the following scheme (I'm still not >> quite sure about adding blue to links in the Help buffer): >> > Please use underlined blue in the Help buffer too. Underlined blue links don't look nicely in link-dense buffers like the Help buffer generated by `list-faces-display'. -- Juri Linkov http://www.jurta.org/emacs/ ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: Problems with whole buffer Custom functions. 2006-01-24 21:45 ` Juri Linkov 2006-01-24 23:11 ` Lennart Borgman @ 2006-01-25 15:45 ` Richard M. Stallman 1 sibling, 0 replies; 32+ messages in thread From: Richard M. Stallman @ 2006-01-25 15:45 UTC (permalink / raw) Cc: teirllm, emacs-devel On ttys: links in Customize - blue links in Info - blue links in Help - blue I am not convinced that just blue is clear enough. I am not convinced we should get rid of the square brackets. So I won't agree to it. You don't seem to appreciate the fact that you are proposing a lot of different changes at once. If I dislike even one of them, I will say no to the whole package. on graphics terminals: links in Customize - underlined blue links in Info - underlined blue links in Help - underlined on xterms: links in Customize - underlined blue with square brackets links in Info - underlined blue links in Help - underlined I would not object to making these consistent--making them all underlined blue, for instance. But don't do it until we hear what others have to say! ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: Problems with whole buffer Custom functions. 2006-01-22 0:45 ` Juri Linkov 2006-01-22 1:46 ` Luc Teirlinck @ 2006-01-22 1:55 ` Luc Teirlinck 2006-01-23 1:43 ` Juri Linkov 1 sibling, 1 reply; 32+ messages in thread From: Luc Teirlinck @ 2006-01-22 1:55 UTC (permalink / raw) Cc: emacs-devel Juri Linkov wrote: In the patch below I've added "link" to the docstring of `custom-mode' to custom.texi, and fixed examples in custom.texi since links in customization buffer don't have square brackets anymore. In my previous reply, I forgot to point out that custom.texi explicitly claims to describe Custom on a text only terminal: The appearance of the example buffers in this section is typically different under a window system, since faces are then used to indicate buttons and editable fields. Sincerely, Luc. ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: Problems with whole buffer Custom functions. 2006-01-22 1:55 ` Luc Teirlinck @ 2006-01-23 1:43 ` Juri Linkov 0 siblings, 0 replies; 32+ messages in thread From: Juri Linkov @ 2006-01-23 1:43 UTC (permalink / raw) Cc: emacs-devel > The appearance of the example buffers in this section is typically > different under a window system, since faces are then used to indicate > buttons and editable fields. BTW, since now links in customization buffers are blue, they can be confused with group and variable names which are blue as well. The only difference is that links are underlined, but names are bold. There is one comment in cus-edit.el before `defface custom-variable-tag': ;; When this was underlined blue, users confused it with a ;; Mosaic-style hyperlink... I don't know what appearance custom-variable-tag had before, but it still can be confused with links. Perhaps group and variable names should have a different color than blue? -- Juri Linkov http://www.jurta.org/emacs/ ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: Problems with whole buffer Custom functions. 2006-01-17 4:13 ` Luc Teirlinck 2006-01-17 21:54 ` Juri Linkov 2006-01-22 0:45 ` Juri Linkov @ 2006-01-22 0:45 ` Juri Linkov 2006-01-22 17:44 ` Richard M. Stallman 2 siblings, 1 reply; 32+ messages in thread From: Juri Linkov @ 2006-01-22 0:45 UTC (permalink / raw) Cc: emacs-devel > S-TAB also has its regular meaning, but the recently added M-TAB does > not, because it has another (completion related) meaning in editable > fields. S-TAB is the preferable key binding, but currently it's impossible to specify a preferable key binding in the docstring. ASCII character sequences are always preferred over non-ascii. At least, S-TAB could be mentioned in the manual: Index: man/widget.texi =================================================================== RCS file: /sources/emacs/emacs/man/widget.texi,v retrieving revision 1.33 diff -c -r1.33 widget.texi *** man/widget.texi 21 Jan 2006 13:01:28 -0000 1.33 --- man/widget.texi 22 Jan 2006 00:48:57 -0000 *************** *** 316,321 **** --- 316,322 ---- Move point @var{count} buttons or editing fields forward. @end deffn @item @kbd{M-@key{TAB}} + @itemx @kbd{S-@key{TAB}} @deffn Command widget-backward &optional count Move point @var{count} buttons or editing fields backward. @end deffn -- Juri Linkov http://www.jurta.org/emacs/ ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: Problems with whole buffer Custom functions. 2006-01-22 0:45 ` Juri Linkov @ 2006-01-22 17:44 ` Richard M. Stallman 0 siblings, 0 replies; 32+ messages in thread From: Richard M. Stallman @ 2006-01-22 17:44 UTC (permalink / raw) Cc: teirllm, emacs-devel At least, S-TAB could be mentioned in the manual: Please install that little patch. ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: Problems with whole buffer Custom functions. 2006-01-17 1:27 ` Juri Linkov 2006-01-17 4:13 ` Luc Teirlinck @ 2006-01-19 17:44 ` Richard M. Stallman 2006-01-22 0:45 ` Juri Linkov 1 sibling, 1 reply; 32+ messages in thread From: Richard M. Stallman @ 2006-01-19 17:44 UTC (permalink / raw) Cc: teirllm, emacs-devel More keys are not enabled in editable fields, for instance, `n' and `p': I like the idea of using M-n and M-p for them. Those keys could be bound in the keymap used for editable fields, and then they would work everywhere in the buffer. Perhaps cus-edit should bind `C-c C-c' and `C-x C-s' in a new keymap inheriting from widget-field-keymap. I think that is a good idea. Can one of you do these things? ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: Problems with whole buffer Custom functions. 2006-01-19 17:44 ` Richard M. Stallman @ 2006-01-22 0:45 ` Juri Linkov 2006-01-22 17:44 ` Richard M. Stallman 2006-01-22 17:44 ` Richard M. Stallman 0 siblings, 2 replies; 32+ messages in thread From: Juri Linkov @ 2006-01-22 0:45 UTC (permalink / raw) Cc: teirllm, emacs-devel > More keys are not enabled in editable fields, for instance, `n' and `p': > > I like the idea of using M-n and M-p for them. Those keys > could be bound in the keymap used for editable fields, and then they > would work everywhere in the buffer. I'd reserve M-n and M-p in editable fields for history navigation. Since editable fields are very like the minibuffer where M-n and M-p are used to navigate in the minibuffer history, it makes sense to implement something similar for editable fields (after the release). > Perhaps cus-edit should bind `C-c C-c' and `C-x C-s' in a new keymap > inheriting from widget-field-keymap. > > I think that is a good idea. > > Can one of you do these things? Below is a patch that implement this. Index: lisp/cus-edit.el =================================================================== RCS file: /sources/emacs/emacs/lisp/cus-edit.el,v retrieving revision 1.279 diff -c -r1.279 cus-edit.el *** lisp/cus-edit.el 19 Jan 2006 23:26:04 -0000 1.279 --- lisp/cus-edit.el 22 Jan 2006 00:43:55 -0000 *************** *** 4400,4405 **** --- 4396,4410 ---- ["Erase Customization" Custom-reset-standard t] ["Info" (info "(emacs)Easy Customization") t])) + (defvar custom-field-keymap + (let ((map (copy-keymap widget-field-keymap))) + (define-key map "\C-c\C-c" 'Custom-set) + (define-key map "\C-x\C-s" 'Custom-save) + map) + "Keymap used inside editable fields in customization buffers.") + + (widget-put (get 'editable-field 'widget-type) :keymap custom-field-keymap) + (defun Custom-goto-parent () "Go to the parent group listed at the top of this buffer. If several parents are listed, go to the first of them." -- Juri Linkov http://www.jurta.org/emacs/ ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: Problems with whole buffer Custom functions. 2006-01-22 0:45 ` Juri Linkov @ 2006-01-22 17:44 ` Richard M. Stallman 2006-01-22 21:28 ` Drew Adams ` (2 more replies) 2006-01-22 17:44 ` Richard M. Stallman 1 sibling, 3 replies; 32+ messages in thread From: Richard M. Stallman @ 2006-01-22 17:44 UTC (permalink / raw) Cc: teirllm, emacs-devel I'd reserve M-n and M-p in editable fields for history navigation. I don't think this is necessary, because there is already an undo mechanism (the "backup value"). Instead I think it should preserve the ordinary undo list when you set the variable. Currently, setting the variable discards the undo list, which is more or less a bug. However, I now see that TAB does work for moving from an editable field to the next button. So we don't need M-n to do that. We can stick with TAB as the one recommended way to do that. S-TAB is the preferable key binding, but currently it's impossible to specify a preferable key binding in the docstring. The way to do that is to use two different command names. Look at `advertised-undo', for instance. We could use that same technique to make sure that S-TAB is what appears in a doc string. However, arranging to present only S-TAB would have a drawback, that it would not give any way to do this on a tty. I find that M-TAB is bound to complete-symbol in custom buffers. That is not useful, so we could change it to widget-backwards. However, M-TAB in an editable field is bound to widget-complete, and we certainly do not want to change that. This means that no variant of TAB is suitable to be the universal way to move to the previous widget, from all buffer positions, on all terminals. That is too bad. Maybe we should define M-n and M-p for this, just to have a consistent set of commands that move in both directions. Or maybe we should settle for having S-TAB available only on graphics terminals. ^ permalink raw reply [flat|nested] 32+ messages in thread
* RE: Problems with whole buffer Custom functions. 2006-01-22 17:44 ` Richard M. Stallman @ 2006-01-22 21:28 ` Drew Adams 2006-01-23 1:47 ` Juri Linkov 2006-01-24 16:47 ` Richard M. Stallman 2006-01-23 1:47 ` Juri Linkov 2006-01-23 18:04 ` martin rudalics 2 siblings, 2 replies; 32+ messages in thread From: Drew Adams @ 2006-01-22 21:28 UTC (permalink / raw) I probably shouldn't jump in here, since I haven't been following this closely. Ignore, if my comments make little sense or are redundant. Juri> I'd reserve M-n and M-p in editable fields for history navigation. Since editable fields are very like the minibuffer where M-n and M-p are used to navigate in the minibuffer history, it makes sense to implement something similar for editable fields (after the release). RMS> I don't think this is necessary, because there is already an undo mechanism (the "backup value"). RMS: Does that provide a single backup value or an undo history of all edits of the value (field)? Juri: I assume you mean that there would be a separate M-n/M-p history for each value (editable field). What would be the extent (limit) of the proposed history list(s)? Would the limit be the current Emacs session? the current access to Customize for that field? Or would the histories be persistent (e.g. via savehist.el)? What would constitute an entry in such a history list: would it be each individual edit (a la undo) or each value that the user sets or saves (via Set for Current Session or Save...)? Instead I think it should preserve the ordinary undo list when you set the variable. Currently, setting the variable discards the undo list, which is more or less a bug. Either way would be OK for undo. I like Juri's suggestion (IIUC) of history lists with entries that would be the values that were set or saved (one list per option/field). Most such lists would be empty most of the time, of course. Given such history lists, undo would let you rewind your edits (either until the last set or save operation or, as RMS suggests, further), while, say, M-p would rewind the history of value settings (for that option). Especially when complex Lisp values are concerned, one is particularly interested in previously set values, not just in the mini changes of edits. And undoing edit operations on previous values (from the history list) might not be a real requirement. It's most important to be able to: 1. undo edits back to the last set or save operation, and 2. retrieve previously set or saved values. Of course, extending undo further back wouldn't be a bad thing, but it has a cost. Also, are we speaking of a single, global undo for the whole buffer or an individual undo per editable field? The latter would be preferable. S-TAB is the preferable key binding [for navigating backward], but currently it's impossible to specify a preferable key binding in the docstring. The way to do that is to use two different command names. Look at `advertised-undo', for instance. We could use that same technique to make sure that S-TAB is what appears in a doc string. This question of how to control which binding appears in a doc string when there are several has been brought up previously (probably more than once). It's a separate problem, and one that it would be good to address in some general fashion after the release. See, for instance, the emacs-devel thread "Qs on key-description, substitute-command-keys" from 2005-10-15 to 16. Stefan made a couple of alternative suggestions in that thread: 1. Have a `preferred-binding' property on a command symbol. It would contain a preferred binding or a list of preferred bindings to be used by `substitute-in-command-keys'. 2. Require the use of a menu item for the main binding, and then obey a Boolean `:preferred-binding' property placed on the menu item. Maybe we should define M-n and M-p for this, just to have a consistent set of commands that move in both directions. Or maybe we should settle for having S-TAB available only on graphics terminals. How about reserving M-n/M-p within an editable field for a value history (for that field) = Juri's suggestion? M-n/M-p outside an editable field could be used for something else, but navigation among fields is something you often do from within a field, so M-n/M-p probably shouldn't replace TAB/S-TAB for such navigation. (A poor workaround would be to navigate to just before the field etc.) For navigation, in addition to TAB/S-TAB (when available), what about reusing the global bindings of `forward-sentence'/`backward-sentence' (M-e, M-a) for navigation? Or those of `forward-paragraph'/`backward-paragraph' (C-up, C-down, M-{, M-})? Those aren't particularly useful in Customize anyway, are they? They might represent a good sacrifice, to obtain bindings that work on ttys too (not C-up, C-down, perhaps, but I assume the others work everywhere). ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: Problems with whole buffer Custom functions. 2006-01-22 21:28 ` Drew Adams @ 2006-01-23 1:47 ` Juri Linkov 2006-01-23 2:58 ` Drew Adams 2006-01-24 16:47 ` Richard M. Stallman 1 sibling, 1 reply; 32+ messages in thread From: Juri Linkov @ 2006-01-23 1:47 UTC (permalink / raw) Cc: emacs-devel > I assume you mean that there would be a separate M-n/M-p history for > each value (editable field). I meant a history mechanism like is used in modern GUI applications, e.g. in Firefox typing M-down in an editable field opens a list of values previously entered into the same field. There is also Emacs-like completion that filters out values based on the contents of the field. > What would be the extent (limit) of the proposed history list(s)? Would > the limit be the current Emacs session? the current access to Customize > for that field? Or would the histories be persistent (e.g. via > savehist.el)? Adding a new history variable with a list (or alist with one sublist per option/field or per widget class) of previously entered values would automatically allow saving it with savehist.el or desktop.el. > What would constitute an entry in such a history list: would it be each > individual edit (a la undo) or each value that the user sets or saves > (via Set for Current Session or Save...)? I think preserving each value that the user sets or saves is more useful than preserving mini changes undoable with the ordinary undo. This would work exactly like history lists work in the minibuffer: in the minibuffer history list gets updated after exiting with RET, in editable fields this could be done after activating the field. -- Juri Linkov http://www.jurta.org/emacs/ ^ permalink raw reply [flat|nested] 32+ messages in thread
* RE: Problems with whole buffer Custom functions. 2006-01-23 1:47 ` Juri Linkov @ 2006-01-23 2:58 ` Drew Adams 2006-01-23 6:17 ` Juri Linkov 0 siblings, 1 reply; 32+ messages in thread From: Drew Adams @ 2006-01-23 2:58 UTC (permalink / raw) > I assume you mean that there would be a separate M-n/M-p history for > each value (editable field). I meant a history mechanism like is used in modern GUI applications, e.g. in Firefox typing M-down in an editable field opens a list of values previously entered into the same field. There is also Emacs-like completion that filters out values based on the contents of the field. Yes. Good. > What would be the extent (limit) of the proposed history > list(s)? Would the limit be the current Emacs session? the current > access to Customize for that field? Or would the histories be > persistent (e.g. via savehist.el)? Adding a new history variable with a list (or alist with one sublist per option/field or per widget class) of previously entered values would automatically allow saving it with savehist.el or desktop.el. Sounds good to me. (I almost mentioned an alist implementation myself.) If we did that, we might also (eventually) provide an easy way to empty (clear) one or all of these history lists - like you can do in a Web browser. Not that histories of edited values pose a great threat to privacy, but you might want to clear them out at some point so you could more easily notice subsequent changes - that is, reset the history. > What would constitute an entry in such a history list: would > it be each individual edit (a la undo) or each value that the user > sets or saves (via Set for Current Session or Save...)? I think preserving each value that the user sets or saves is more useful than preserving mini changes undoable with the ordinary undo. So do I. That's why I brought it up. However, it might still be useful to (also) be able to incrementally undo the edits for each field (separately) since the field's last set or save operation. That could help with editing complex Lisp expressions, for instance. This would work exactly like history lists work in the minibuffer: in the minibuffer, history list gets updated after exiting with RET, in editable fields this could be done after activating the field. Sounds good to me. ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: Problems with whole buffer Custom functions. 2006-01-23 2:58 ` Drew Adams @ 2006-01-23 6:17 ` Juri Linkov 0 siblings, 0 replies; 32+ messages in thread From: Juri Linkov @ 2006-01-23 6:17 UTC (permalink / raw) Cc: emacs-devel > If we did that, we might also (eventually) provide an easy way to empty > (clear) one or all of these history lists - like you can do in a Web > browser. Do you mean S-DEL on a value in the history list? I already proposed a patch to do this: http://lists.gnu.org/archive/html/emacs-devel/2004-06/msg00937.html -- Juri Linkov http://www.jurta.org/emacs/ ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: Problems with whole buffer Custom functions. 2006-01-22 21:28 ` Drew Adams 2006-01-23 1:47 ` Juri Linkov @ 2006-01-24 16:47 ` Richard M. Stallman 1 sibling, 0 replies; 32+ messages in thread From: Richard M. Stallman @ 2006-01-24 16:47 UTC (permalink / raw) Cc: emacs-devel RMS> I don't think this is necessary, because there is already an undo mechanism (the "backup value"). RMS: Does that provide a single backup value or an undo history of all edits of the value (field)? It is just one value. I think that is enough for now, but we could extend it into a sequence. I do not want to use editing commands to access past values. It is better to use the State menu, since that won't get in the way. In any case, now is not the time to add such a feature. ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: Problems with whole buffer Custom functions. 2006-01-22 17:44 ` Richard M. Stallman 2006-01-22 21:28 ` Drew Adams @ 2006-01-23 1:47 ` Juri Linkov 2006-01-24 16:46 ` Richard M. Stallman 2006-01-23 18:04 ` martin rudalics 2 siblings, 1 reply; 32+ messages in thread From: Juri Linkov @ 2006-01-23 1:47 UTC (permalink / raw) Cc: teirllm, emacs-devel > S-TAB is the preferable key binding, but currently it's impossible to > specify a preferable key binding in the docstring. > > The way to do that is to use two different command names. Look at > `advertised-undo', for instance. We could use that same technique to > make sure that S-TAB is what appears in a doc string. > > However, arranging to present only S-TAB would have a drawback, > that it would not give any way to do this on a tty. Perhaps a better solution than adding `advertised-widget-backward' is not to bind M-TAB on on graphics terminals at all. > Or maybe we should settle for having S-TAB available only on graphics > terminals. TAB and S-TAB are standard keys to move to next/previous links in modern GUI applications. I think this is not a big problem that S-TAB is not available on a tty. There was no M-TAB keybinding in Emacs for moving to the previous link for several years until it was installed a month ago, and nobody complained about this. -- Juri Linkov http://www.jurta.org/emacs/ ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: Problems with whole buffer Custom functions. 2006-01-23 1:47 ` Juri Linkov @ 2006-01-24 16:46 ` Richard M. Stallman 0 siblings, 0 replies; 32+ messages in thread From: Richard M. Stallman @ 2006-01-24 16:46 UTC (permalink / raw) Cc: teirllm, emacs-devel Perhaps a better solution than adding `advertised-widget-backward' is not to bind M-TAB on on graphics terminals at all. That would not be feasible. ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: Problems with whole buffer Custom functions. 2006-01-22 17:44 ` Richard M. Stallman 2006-01-22 21:28 ` Drew Adams 2006-01-23 1:47 ` Juri Linkov @ 2006-01-23 18:04 ` martin rudalics 2006-01-25 3:28 ` Richard M. Stallman 2 siblings, 1 reply; 32+ messages in thread From: martin rudalics @ 2006-01-23 18:04 UTC (permalink / raw) Cc: Juri Linkov, teirllm, emacs-devel > Instead I think it should preserve the ordinary undo list when you set > the variable. Currently, setting the variable discards the undo list, > which is more or less a bug. Undo in customization buffers is peculiar in other ways as well: 1. With emacs -Q do M-x customize-group RET paren-showing-faces RET, show both faces, and set the background of `show-paren-match' to "turquoise1" and the background of `show-paren-mismatch' to "purple1". Doing C-_ twice will now get you "No further undo information" - you can't undo the change to `show-paren-match'. Now change the face of `show-paren-match' to "turquoise" and that of `show-paren-mismatch' to "purple" and do C-_ twice again. This time both modifications are undone. Hence whether a modification can be undone may depend on whether this or another modification is the first editing change for a specific option. 2. With emacs -Q do M-x customize-group RET paren-showing-faces RET, show the `show-paren-match' face, set the background of `show-paren-match' to "paleturquoise", and do C-_. At this moment point is somewhere left of the foreground color checkbox. The reason for this is that editing also changes some magic text from "STANDARD." to "EDITED, shown value does not take effect until you set or save it.". This modification is, however, not recorded in `buffer-undo-list' and the buffer position recorded before editing started becomes invalid with respect to the actual buffer contents. 3. With emacs -Q do M-x customize-group RET paren-showing-faces RET, show the `show-paren-mismatch' face, set the background of `show-paren-mismatch' to "mediumpurple4", do C-_, then C-f (to make the next undo a redo), and C-_. At this moment the line of the background color reads as [X] Background: mediumpurple4mple) It's a mildly amusing exercise to erase your customization buffer with an appropriate sequence of undos and redos. One culprit here is the mechanism adjusting field sizes in `widget-after-change'. On the other hand, wid-edit uses `before-change-functions' to detect whether the user attempts to "change text outside editable field". The corresponding check in `widget-before-change', however, is performed if and only if `inhibit-read-only' is nil. And `primitive-undo' sets this to t. Hence the undo / redo mechanism obtains control over non-editable parts of the customization buffer. ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: Problems with whole buffer Custom functions. 2006-01-23 18:04 ` martin rudalics @ 2006-01-25 3:28 ` Richard M. Stallman 0 siblings, 0 replies; 32+ messages in thread From: Richard M. Stallman @ 2006-01-25 3:28 UTC (permalink / raw) Cc: juri, teirllm, emacs-devel Now change the face of `show-paren-match' to "turquoise" and that of `show-paren-mismatch' to "purple" and do C-_ twice again. This time both modifications are undone. Hence whether a modification can be undone may depend on whether this or another modification is the first editing change for a specific option. Maybe the undo command needs to specialize to the changes for the specific item. Something like undo-in-region. The reason for this is that editing also changes some magic text from "STANDARD." to "EDITED, shown value does not take effect until you set or save it.". This modification is, however, not recorded in `buffer-undo-list' and the buffer position recorded before editing started becomes invalid with respect to the actual buffer contents. I guess the code that does these changes ought to update the positions in the undo list also. ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: Problems with whole buffer Custom functions. 2006-01-22 0:45 ` Juri Linkov 2006-01-22 17:44 ` Richard M. Stallman @ 2006-01-22 17:44 ` Richard M. Stallman 1 sibling, 0 replies; 32+ messages in thread From: Richard M. Stallman @ 2006-01-22 17:44 UTC (permalink / raw) Cc: teirllm, emacs-devel > Perhaps cus-edit should bind `C-c C-c' and `C-x C-s' in a new keymap > inheriting from widget-field-keymap. > > I think that is a good idea. > > Can one of you do these things? Below is a patch that implement this. Please install your patch. ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: Problems with whole buffer Custom functions.
@ 2006-01-25 8:58 LENNART BORGMAN
0 siblings, 0 replies; 32+ messages in thread
From: LENNART BORGMAN @ 2006-01-25 8:58 UTC (permalink / raw)
Cc: teirllm, rms, emacs-devel
From: Juri Linkov <juri@jurta.org>
> >> I propose to change them according to the following scheme (I'm
> still not
> >> quite sure about adding blue to links in the Help buffer):
> >>
> > Please use underlined blue in the Help buffer too.
>
> Underlined blue links don't look nicely in link-dense buffers like
> the Help buffer generated by `list-faces-display'.
I might agree with that, but I think useability is much more important. We are not trying to attract customers with a web page here.
^ permalink raw reply [flat|nested] 32+ messages in thread
end of thread, other threads:[~2006-01-25 15:45 UTC | newest] Thread overview: 32+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2006-01-13 3:32 Problems with whole buffer Custom functions Luc Teirlinck 2006-01-17 1:27 ` Juri Linkov 2006-01-17 4:13 ` Luc Teirlinck 2006-01-17 21:54 ` Juri Linkov 2006-01-18 0:29 ` Kevin Rodgers 2006-01-23 0:10 ` Richard M. Stallman 2006-01-22 0:45 ` Juri Linkov 2006-01-22 1:46 ` Luc Teirlinck 2006-01-23 1:42 ` Juri Linkov 2006-01-24 16:46 ` Richard M. Stallman 2006-01-24 21:45 ` Juri Linkov 2006-01-24 23:11 ` Lennart Borgman 2006-01-25 7:55 ` Juri Linkov 2006-01-25 15:45 ` Richard M. Stallman 2006-01-22 1:55 ` Luc Teirlinck 2006-01-23 1:43 ` Juri Linkov 2006-01-22 0:45 ` Juri Linkov 2006-01-22 17:44 ` Richard M. Stallman 2006-01-19 17:44 ` Richard M. Stallman 2006-01-22 0:45 ` Juri Linkov 2006-01-22 17:44 ` Richard M. Stallman 2006-01-22 21:28 ` Drew Adams 2006-01-23 1:47 ` Juri Linkov 2006-01-23 2:58 ` Drew Adams 2006-01-23 6:17 ` Juri Linkov 2006-01-24 16:47 ` Richard M. Stallman 2006-01-23 1:47 ` Juri Linkov 2006-01-24 16:46 ` Richard M. Stallman 2006-01-23 18:04 ` martin rudalics 2006-01-25 3:28 ` Richard M. Stallman 2006-01-22 17:44 ` Richard M. Stallman -- strict thread matches above, loose matches on Subject: below -- 2006-01-25 8:58 LENNART BORGMAN
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.