diff options
| author | Chong Yidong | 2012-04-22 21:58:00 +0800 |
|---|---|---|
| committer | Chong Yidong | 2012-04-22 21:58:00 +0800 |
| commit | cf20dee0248049a925275f54381cf63bb2017e35 (patch) | |
| tree | 0a7922c4ea3258733023c58cf50d8fe1a60e7b43 | |
| parent | 583e23bd57621892cce187359afd952f7850e7bc (diff) | |
| download | emacs-cf20dee0248049a925275f54381cf63bb2017e35.tar.gz emacs-cf20dee0248049a925275f54381cf63bb2017e35.zip | |
Tweaks to Customize interface. Set custom-reset-button-menu to t.
* cus-edit.el (custom-commands, custom-reset-menu)
(Custom-reset-standard): Tweak labels.
(custom-reset-button-menu): Change default to t.
(custom-buffer-create-internal): For the custom-reset-button-menu
case, put the revert button first.
(custom-group-subtitle): New face.
(custom-group-value-create): Align docstring to a specific column.
* wid-edit.el (widget-documentation-link-add): Don't handle
indentation in this function.
(widget-documentation-string-indent-to): New function.
(widget-documentation-string-value-create): Use it.
* autorevert.el (auto-revert):
* epg-config.el (epg):
* ibuffer.el (ibuffer):
* mpc.el (mpc):
* ses.el (ses):
* eshell/eshell.el (eshell):
* net/ange-ftp.el (ange-ftp):
* progmodes/ebnf2ps.el (postscript):
* progmodes/flymake.el (flymake):
* progmodes/prolog.el (prolog):
* progmodes/verilog-mode.el (verilog-mode):
* progmodes/which-func.el (which-func):
* textmodes/picture.el (picture):
* textmodes/tildify.el (tildify):
* vc/ediff.el (ediff): Tweak defgroups to improve presentation in
customization buffers.
| -rw-r--r-- | etc/NEWS | 6 | ||||
| -rw-r--r-- | lisp/ChangeLog | 33 | ||||
| -rw-r--r-- | lisp/autorevert.el | 5 | ||||
| -rw-r--r-- | lisp/calc/calc.el | 2 | ||||
| -rw-r--r-- | lisp/cus-edit.el | 137 | ||||
| -rw-r--r-- | lisp/epg-config.el | 6 | ||||
| -rw-r--r-- | lisp/eshell/eshell.el | 3 | ||||
| -rw-r--r-- | lisp/ibuffer.el | 9 | ||||
| -rw-r--r-- | lisp/mpc.el | 2 | ||||
| -rw-r--r-- | lisp/net/ange-ftp.el | 3 | ||||
| -rw-r--r-- | lisp/net/tramp.el | 2 | ||||
| -rw-r--r-- | lisp/progmodes/ebnf2ps.el | 4 | ||||
| -rw-r--r-- | lisp/progmodes/flymake.el | 2 | ||||
| -rw-r--r-- | lisp/progmodes/gud.el | 5 | ||||
| -rw-r--r-- | lisp/progmodes/prolog.el | 2 | ||||
| -rw-r--r-- | lisp/progmodes/verilog-mode.el | 2 | ||||
| -rw-r--r-- | lisp/progmodes/which-func.el | 2 | ||||
| -rw-r--r-- | lisp/ses.el | 1 | ||||
| -rw-r--r-- | lisp/term/xterm.el | 2 | ||||
| -rw-r--r-- | lisp/textmodes/picture.el | 2 | ||||
| -rw-r--r-- | lisp/textmodes/tildify.el | 2 | ||||
| -rw-r--r-- | lisp/vc/ediff.el | 2 | ||||
| -rw-r--r-- | lisp/vc/vc.el | 2 | ||||
| -rw-r--r-- | lisp/wid-edit.el | 40 |
24 files changed, 165 insertions, 111 deletions
| @@ -74,7 +74,9 @@ character when doing minibuffer filename prompts. | |||
| 74 | 74 | ||
| 75 | * Changes in Specialized Modes and Packages in Emacs 24.2 | 75 | * Changes in Specialized Modes and Packages in Emacs 24.2 |
| 76 | 76 | ||
| 77 | ** which-function-mode now applies to all applicable major modes by default. | 77 | ** Customize |
| 78 | |||
| 79 | *** `custom-reset-button-menu' now defaults to t. | ||
| 78 | 80 | ||
| 79 | ** erc will look up server/channel names via auth-source and use the | 81 | ** erc will look up server/channel names via auth-source and use the |
| 80 | channel keys found, if any. | 82 | channel keys found, if any. |
| @@ -87,6 +89,8 @@ closing brackets to be aligned with the line of the opening bracket. | |||
| 87 | 89 | ||
| 88 | ** FIXME something happened to ses.el, 2012-04-17. | 90 | ** FIXME something happened to ses.el, 2012-04-17. |
| 89 | 91 | ||
| 92 | ** which-function-mode now applies to all applicable major modes by default. | ||
| 93 | |||
| 90 | ** Obsolete packages: | 94 | ** Obsolete packages: |
| 91 | 95 | ||
| 92 | *** mailpost.el | 96 | *** mailpost.el |
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d5576370727..14a83de342a 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,36 @@ | |||
| 1 | 2012-04-22 Chong Yidong <cyd@gnu.org> | ||
| 2 | |||
| 3 | * cus-edit.el (custom-commands, custom-reset-menu) | ||
| 4 | (Custom-reset-standard): Tweak labels. | ||
| 5 | (custom-reset-button-menu): Change default to t. | ||
| 6 | (custom-buffer-create-internal): For the custom-reset-button-menu | ||
| 7 | case, put the revert button first. | ||
| 8 | (custom-group-subtitle): New face. | ||
| 9 | (custom-group-value-create): Align docstring to a specific column. | ||
| 10 | |||
| 11 | * wid-edit.el (widget-documentation-link-add): Don't handle | ||
| 12 | indentation in this function. | ||
| 13 | (widget-documentation-string-indent-to): New function. | ||
| 14 | (widget-documentation-string-value-create): Use it. | ||
| 15 | |||
| 16 | * autorevert.el (auto-revert): | ||
| 17 | * epg-config.el (epg): | ||
| 18 | * ibuffer.el (ibuffer): | ||
| 19 | * mpc.el (mpc): | ||
| 20 | * ses.el (ses): | ||
| 21 | * eshell/eshell.el (eshell): | ||
| 22 | * net/ange-ftp.el (ange-ftp): | ||
| 23 | * progmodes/ebnf2ps.el (postscript): | ||
| 24 | * progmodes/flymake.el (flymake): | ||
| 25 | * progmodes/prolog.el (prolog): | ||
| 26 | * progmodes/verilog-mode.el (verilog-mode): | ||
| 27 | * progmodes/which-func.el (which-func): | ||
| 28 | * term/xterm.el (xterm): | ||
| 29 | * textmodes/picture.el (picture): | ||
| 30 | * textmodes/tildify.el (tildify): | ||
| 31 | * vc/ediff.el (ediff): Tweak defgroups to improve presentation in | ||
| 32 | customization buffers. | ||
| 33 | |||
| 1 | 2012-04-22 Alan Mackenzie <acm@muc.de> | 34 | 2012-04-22 Alan Mackenzie <acm@muc.de> |
| 2 | 35 | ||
| 3 | * progmodes/cc-engine.el (c-append-lower-brace-pair-to-state-cache): | 36 | * progmodes/cc-engine.el (c-append-lower-brace-pair-to-state-cache): |
diff --git a/lisp/autorevert.el b/lisp/autorevert.el index e0bde7c6dc5..11005f49f44 100644 --- a/lisp/autorevert.el +++ b/lisp/autorevert.el | |||
| @@ -104,9 +104,8 @@ | |||
| 104 | 104 | ||
| 105 | (defgroup auto-revert nil | 105 | (defgroup auto-revert nil |
| 106 | "Revert individual buffers when files on disk change. | 106 | "Revert individual buffers when files on disk change. |
| 107 | 107 | Auto-Revert mode enables auto-revert in individual buffers. | |
| 108 | Auto-Revert Mode can be activated for individual buffer. | 108 | Global Auto-Revert mode does so in all buffers." |
| 109 | Global Auto-Revert Mode applies to all buffers." | ||
| 110 | :group 'files | 109 | :group 'files |
| 111 | :group 'convenience) | 110 | :group 'convenience) |
| 112 | 111 | ||
diff --git a/lisp/calc/calc.el b/lisp/calc/calc.el index 5224d1aa4f8..c7cea5f0aef 100644 --- a/lisp/calc/calc.el +++ b/lisp/calc/calc.el | |||
| @@ -222,7 +222,7 @@ | |||
| 222 | 222 | ||
| 223 | 223 | ||
| 224 | (defgroup calc nil | 224 | (defgroup calc nil |
| 225 | "GNU Calc." | 225 | "Advanced desk calculator and mathematical tool." |
| 226 | :prefix "calc-" | 226 | :prefix "calc-" |
| 227 | :tag "Calc" | 227 | :tag "Calc" |
| 228 | :group 'applications) | 228 | :group 'applications) |
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index 4ed72be06fb..d20403ad341 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el | |||
| @@ -223,7 +223,7 @@ | |||
| 223 | :group 'emacs) | 223 | :group 'emacs) |
| 224 | 224 | ||
| 225 | (defgroup languages nil | 225 | (defgroup languages nil |
| 226 | "Specialized modes for editing programming languages." | 226 | "Modes for editing programming languages." |
| 227 | :group 'programming) | 227 | :group 'programming) |
| 228 | 228 | ||
| 229 | (defgroup lisp nil | 229 | (defgroup lisp nil |
| @@ -255,7 +255,7 @@ | |||
| 255 | :group 'applications) | 255 | :group 'applications) |
| 256 | 256 | ||
| 257 | (defgroup news nil | 257 | (defgroup news nil |
| 258 | "Support for netnews reading and posting." | 258 | "Reading and posting to newsgroups." |
| 259 | :link '(custom-manual "(gnus)") | 259 | :link '(custom-manual "(gnus)") |
| 260 | :group 'applications) | 260 | :group 'applications) |
| 261 | 261 | ||
| @@ -297,7 +297,7 @@ | |||
| 297 | :group 'environment) | 297 | :group 'environment) |
| 298 | 298 | ||
| 299 | (defgroup unix nil | 299 | (defgroup unix nil |
| 300 | "Front-ends/assistants for, or emulators of, UNIX features." | 300 | "Interfaces, assistants, and emulators for UNIX features." |
| 301 | :group 'environment) | 301 | :group 'environment) |
| 302 | 302 | ||
| 303 | (defgroup i18n nil | 303 | (defgroup i18n nil |
| @@ -544,12 +544,6 @@ WIDGET is the widget to apply the filter entries of MENU on." | |||
| 544 | (erase-buffer) | 544 | (erase-buffer) |
| 545 | (princ symbol (current-buffer)) | 545 | (princ symbol (current-buffer)) |
| 546 | (goto-char (point-min)) | 546 | (goto-char (point-min)) |
| 547 | ;; FIXME: Boolean variables are not predicates, so they shouldn't | ||
| 548 | ;; end with `-p'. -stef | ||
| 549 | ;; (when (and (eq (get symbol 'custom-type) 'boolean) | ||
| 550 | ;; (re-search-forward "-p\\'" nil t)) | ||
| 551 | ;; (replace-match "" t t) | ||
| 552 | ;; (goto-char (point-min))) | ||
| 553 | (if custom-unlispify-remove-prefixes | 547 | (if custom-unlispify-remove-prefixes |
| 554 | (let ((prefixes custom-prefix-list) | 548 | (let ((prefixes custom-prefix-list) |
| 555 | prefix) | 549 | prefix) |
| @@ -732,26 +726,26 @@ groups after non-groups, if nil do not order groups at all." | |||
| 732 | ;; `custom-buffer-create-internal' if `custom-buffer-verbose-help' is non-nil. | 726 | ;; `custom-buffer-create-internal' if `custom-buffer-verbose-help' is non-nil. |
| 733 | 727 | ||
| 734 | (defvar custom-commands | 728 | (defvar custom-commands |
| 735 | '((" Set for current session " Custom-set t | 729 | '((" Apply " Custom-set t |
| 736 | "Apply all settings in this buffer to the current session" | 730 | "Apply settings (for the current session only)" |
| 737 | "index" | 731 | "index" |
| 738 | "Apply") | 732 | "Apply") |
| 739 | (" Save for future sessions " Custom-save | 733 | (" Apply and Save " Custom-save |
| 740 | (or custom-file user-init-file) | 734 | (or custom-file user-init-file) |
| 741 | "Apply all settings in this buffer and save them for future Emacs sessions." | 735 | "Apply settings and save for future sessions." |
| 742 | "save" | 736 | "save" |
| 743 | "Save") | 737 | "Save") |
| 744 | (" Undo edits " Custom-reset-current t | 738 | (" Undo Edits " Custom-reset-current t |
| 745 | "Restore all settings in this buffer to reflect their current values." | 739 | "Restore customization buffer to reflect existing settings." |
| 746 | "refresh" | 740 | "refresh" |
| 747 | "Undo") | 741 | "Undo") |
| 748 | (" Reset to saved " Custom-reset-saved t | 742 | (" Reset Customizations " Custom-reset-saved t |
| 749 | "Restore all settings in this buffer to their saved values (if any)." | 743 | "Undo any settings applied only for the current session." |
| 750 | "undo" | 744 | "undo" |
| 751 | "Reset") | 745 | "Reset") |
| 752 | (" Erase customizations " Custom-reset-standard | 746 | (" Erase Customizations " Custom-reset-standard |
| 753 | (or custom-file user-init-file) | 747 | (or custom-file user-init-file) |
| 754 | "Un-customize all settings in this buffer and save them with standard values." | 748 | "Un-customize settings in this and future sessions." |
| 755 | "delete" | 749 | "delete" |
| 756 | "Uncustomize") | 750 | "Uncustomize") |
| 757 | (" Help for Customize " Custom-help t | 751 | (" Help for Customize " Custom-help t |
| @@ -766,9 +760,9 @@ groups after non-groups, if nil do not order groups at all." | |||
| 766 | (info "(emacs)Easy Customization")) | 760 | (info "(emacs)Easy Customization")) |
| 767 | 761 | ||
| 768 | (defvar custom-reset-menu | 762 | (defvar custom-reset-menu |
| 769 | '(("Undo Edits" . Custom-reset-current) | 763 | '(("Undo Edits in Customization Buffer" . Custom-reset-current) |
| 770 | ("Reset to Saved" . Custom-reset-saved) | 764 | ("Revert This Session's Customizations" . Custom-reset-saved) |
| 771 | ("Erase Customizations (use standard values)" . Custom-reset-standard)) | 765 | ("Erase Customizations" . Custom-reset-standard)) |
| 772 | "Alist of actions for the `Reset' button. | 766 | "Alist of actions for the `Reset' button. |
| 773 | The key is a string containing the name of the action, the value is a | 767 | The key is a string containing the name of the action, the value is a |
| 774 | Lisp function taking the widget as an element which will be called | 768 | Lisp function taking the widget as an element which will be called |
| @@ -901,7 +895,8 @@ making them as if they had never been customized at all." | |||
| 901 | (memq (widget-get widget :custom-state) | 895 | (memq (widget-get widget :custom-state) |
| 902 | '(modified set changed saved rogue)) | 896 | '(modified set changed saved rogue)) |
| 903 | (widget-apply widget :custom-mark-to-reset-standard))) | 897 | (widget-apply widget :custom-mark-to-reset-standard))) |
| 904 | "Erase all customizations for settings in this buffer? " t) | 898 | "The settings will revert to their default values, in this |
| 899 | and future sessions. Really erase customizations? " t) | ||
| 905 | (custom-reset-standard-save-and-update))) | 900 | (custom-reset-standard-save-and-update))) |
| 906 | 901 | ||
| 907 | ;;; The Customize Commands | 902 | ;;; The Customize Commands |
| @@ -1552,11 +1547,12 @@ that option." | |||
| 1552 | (switch-to-buffer-other-window (custom-get-fresh-buffer name)) | 1547 | (switch-to-buffer-other-window (custom-get-fresh-buffer name)) |
| 1553 | (custom-buffer-create-internal options description)) | 1548 | (custom-buffer-create-internal options description)) |
| 1554 | 1549 | ||
| 1555 | (defcustom custom-reset-button-menu nil | 1550 | (defcustom custom-reset-button-menu t |
| 1556 | "If non-nil, only show a single reset button in customize buffers. | 1551 | "If non-nil, only show a single reset button in customize buffers. |
| 1557 | This button will have a menu with all three reset operations." | 1552 | This button will have a menu with all three reset operations." |
| 1558 | :type 'boolean | 1553 | :type 'boolean |
| 1559 | :group 'custom-buffer) | 1554 | :group 'custom-buffer |
| 1555 | :version "24.2") | ||
| 1560 | 1556 | ||
| 1561 | (defcustom custom-buffer-verbose-help t | 1557 | (defcustom custom-buffer-verbose-help t |
| 1562 | "If non-nil, include explanatory text in the customization buffer." | 1558 | "If non-nil, include explanatory text in the customization buffer." |
| @@ -1651,29 +1647,30 @@ or a regular expression.") | |||
| 1651 | ;; So now the buttons are always inserted in the buffer. (Bug#1326) | 1647 | ;; So now the buttons are always inserted in the buffer. (Bug#1326) |
| 1652 | (if custom-buffer-verbose-help | 1648 | (if custom-buffer-verbose-help |
| 1653 | (widget-insert " | 1649 | (widget-insert " |
| 1654 | Operate on all settings in this buffer:\n")) | 1650 | Operate on all settings in this buffer:\n")) |
| 1655 | (let ((button (lambda (tag action active help _icon _label) | 1651 | (let ((button (lambda (tag action active help _icon _label) |
| 1656 | (widget-insert " ") | 1652 | (widget-insert " ") |
| 1657 | (if (eval active) | 1653 | (if (eval active) |
| 1658 | (widget-create 'push-button :tag tag | 1654 | (widget-create 'push-button :tag tag |
| 1659 | :help-echo help :action action)))) | 1655 | :help-echo help :action action)))) |
| 1660 | (commands custom-commands)) | 1656 | (commands custom-commands)) |
| 1661 | (apply button (pop commands)) ; Set for current session | ||
| 1662 | (apply button (pop commands)) ; Save for future sessions | ||
| 1663 | (if custom-reset-button-menu | 1657 | (if custom-reset-button-menu |
| 1664 | (progn | 1658 | (progn |
| 1665 | (widget-insert " ") | ||
| 1666 | (widget-create 'push-button | 1659 | (widget-create 'push-button |
| 1667 | :tag "Reset buffer" | 1660 | :tag " Revert... " |
| 1668 | :help-echo "Show a menu with reset operations." | 1661 | :help-echo "Show a menu with reset operations." |
| 1669 | :mouse-down-action 'ignore | 1662 | :mouse-down-action 'ignore |
| 1670 | :action 'custom-reset)) | 1663 | :action 'custom-reset) |
| 1664 | (apply button (pop commands)) ; Apply | ||
| 1665 | (apply button (pop commands))) ; Apply and Save | ||
| 1666 | (apply button (pop commands)) ; Apply | ||
| 1667 | (apply button (pop commands)) ; Apply and Save | ||
| 1671 | (widget-insert "\n") | 1668 | (widget-insert "\n") |
| 1672 | (apply button (pop commands)) ; Undo edits | 1669 | (apply button (pop commands)) ; Undo |
| 1673 | (apply button (pop commands)) ; Reset to saved | 1670 | (apply button (pop commands)) ; Reset |
| 1674 | (apply button (pop commands)) ; Erase customization | 1671 | (apply button (pop commands)) ; Erase |
| 1675 | (widget-insert " ") | 1672 | (widget-insert " ") |
| 1676 | (pop commands) ; Help (omitted) | 1673 | (pop commands) ; Help (omitted) |
| 1677 | (apply button (pop commands)))) ; Exit | 1674 | (apply button (pop commands)))) ; Exit |
| 1678 | (widget-insert "\n\n")) | 1675 | (widget-insert "\n\n")) |
| 1679 | 1676 | ||
| @@ -2824,7 +2821,7 @@ If STATE is nil, the value is computed by `custom-variable-state'." | |||
| 2824 | (lambda (widget) | 2821 | (lambda (widget) |
| 2825 | (and (default-boundp (widget-value widget)) | 2822 | (and (default-boundp (widget-value widget)) |
| 2826 | (memq (widget-get widget :custom-state) '(modified changed))))) | 2823 | (memq (widget-get widget :custom-state) '(modified changed))))) |
| 2827 | ("Reset to Saved" custom-variable-reset-saved | 2824 | ("Revert This Session's Customization" custom-variable-reset-saved |
| 2828 | (lambda (widget) | 2825 | (lambda (widget) |
| 2829 | (and (or (get (widget-value widget) 'saved-value) | 2826 | (and (or (get (widget-value widget) 'saved-value) |
| 2830 | (get (widget-value widget) 'saved-variable-comment)) | 2827 | (get (widget-value widget) 'saved-variable-comment)) |
| @@ -3620,7 +3617,7 @@ the present value is saved to its :shown-value property instead." | |||
| 3620 | ("Undo Edits" custom-redraw | 3617 | ("Undo Edits" custom-redraw |
| 3621 | (lambda (widget) | 3618 | (lambda (widget) |
| 3622 | (memq (widget-get widget :custom-state) '(modified changed)))) | 3619 | (memq (widget-get widget :custom-state) '(modified changed)))) |
| 3623 | ("Reset to Saved" custom-face-reset-saved | 3620 | ("Revert This Session's Customization" custom-face-reset-saved |
| 3624 | (lambda (widget) | 3621 | (lambda (widget) |
| 3625 | (or (get (widget-value widget) 'saved-face) | 3622 | (or (get (widget-value widget) 'saved-face) |
| 3626 | (get (widget-value widget) 'saved-face-comment)))) | 3623 | (get (widget-value widget) 'saved-face-comment)))) |
| @@ -3940,8 +3937,6 @@ restoring it to the state of a face that has never been customized." | |||
| 3940 | ;;; The `custom-group' Widget. | 3937 | ;;; The `custom-group' Widget. |
| 3941 | 3938 | ||
| 3942 | (defcustom custom-group-tag-faces nil | 3939 | (defcustom custom-group-tag-faces nil |
| 3943 | ;; In XEmacs, this ought to play games with font size. | ||
| 3944 | ;; Fixme: make it do so in Emacs. | ||
| 3945 | "Face used for group tags. | 3940 | "Face used for group tags. |
| 3946 | The first member is used for level 1 groups, the second for level 2, | 3941 | The first member is used for level 1 groups, the second for level 2, |
| 3947 | and so forth. The remaining group tags are shown with `custom-group-tag'." | 3942 | and so forth. The remaining group tags are shown with `custom-group-tag'." |
| @@ -3978,6 +3973,13 @@ and so forth. The remaining group tags are shown with `custom-group-tag'." | |||
| 3978 | :group 'custom-faces) | 3973 | :group 'custom-faces) |
| 3979 | (define-obsolete-face-alias 'custom-group-tag-face 'custom-group-tag "22.1") | 3974 | (define-obsolete-face-alias 'custom-group-tag-face 'custom-group-tag "22.1") |
| 3980 | 3975 | ||
| 3976 | (defface custom-group-subtitle | ||
| 3977 | `((t (:weight bold))) | ||
| 3978 | "Face for the \"Subgroups:\" subtitle in Custom buffers." | ||
| 3979 | :group 'custom-faces) | ||
| 3980 | |||
| 3981 | (defvar custom-group-doc-align-col 20) | ||
| 3982 | |||
| 3981 | (define-widget 'custom-group 'custom | 3983 | (define-widget 'custom-group 'custom |
| 3982 | "Customize group." | 3984 | "Customize group." |
| 3983 | :format "%v" | 3985 | :format "%v" |
| @@ -4043,11 +4045,9 @@ If GROUPS-ONLY non-nil, return only those members that are groups." | |||
| 4043 | (custom-browse-insert-prefix prefix) | 4045 | (custom-browse-insert-prefix prefix) |
| 4044 | (push (widget-create-child-and-convert | 4046 | (push (widget-create-child-and-convert |
| 4045 | widget 'custom-browse-visibility | 4047 | widget 'custom-browse-visibility |
| 4046 | ;; :tag-glyph "plus" | ||
| 4047 | :tag "+") | 4048 | :tag "+") |
| 4048 | buttons) | 4049 | buttons) |
| 4049 | (insert "-- ") | 4050 | (insert "-- ") |
| 4050 | ;; (widget-glyph-insert nil "-- " "horizontal") | ||
| 4051 | (push (widget-create-child-and-convert | 4051 | (push (widget-create-child-and-convert |
| 4052 | widget 'custom-browse-group-tag) | 4052 | widget 'custom-browse-group-tag) |
| 4053 | buttons) | 4053 | buttons) |
| @@ -4057,8 +4057,6 @@ If GROUPS-ONLY non-nil, return only those members that are groups." | |||
| 4057 | (zerop (length members))) | 4057 | (zerop (length members))) |
| 4058 | (custom-browse-insert-prefix prefix) | 4058 | (custom-browse-insert-prefix prefix) |
| 4059 | (insert "[ ]-- ") | 4059 | (insert "[ ]-- ") |
| 4060 | ;; (widget-glyph-insert nil "[ ]" "empty") | ||
| 4061 | ;; (widget-glyph-insert nil "-- " "horizontal") | ||
| 4062 | (push (widget-create-child-and-convert | 4060 | (push (widget-create-child-and-convert |
| 4063 | widget 'custom-browse-group-tag) | 4061 | widget 'custom-browse-group-tag) |
| 4064 | buttons) | 4062 | buttons) |
| @@ -4136,7 +4134,8 @@ If GROUPS-ONLY non-nil, return only those members that are groups." | |||
| 4136 | :action 'custom-toggle-parent | 4134 | :action 'custom-toggle-parent |
| 4137 | (not (eq state 'hidden))) | 4135 | (not (eq state 'hidden))) |
| 4138 | buttons)) | 4136 | buttons)) |
| 4139 | (insert " : ") | 4137 | (if (>= (current-column) custom-group-doc-align-col) |
| 4138 | (insert " ")) | ||
| 4140 | ;; Create magic button. | 4139 | ;; Create magic button. |
| 4141 | (let ((magic (widget-create-child-and-convert | 4140 | (let ((magic (widget-create-child-and-convert |
| 4142 | widget 'custom-magic nil))) | 4141 | widget 'custom-magic nil))) |
| @@ -4146,7 +4145,8 @@ If GROUPS-ONLY non-nil, return only those members that are groups." | |||
| 4146 | (widget-put widget :buttons buttons) | 4145 | (widget-put widget :buttons buttons) |
| 4147 | ;; Insert documentation. | 4146 | ;; Insert documentation. |
| 4148 | (if (and (eq custom-buffer-style 'links) (> level 1)) | 4147 | (if (and (eq custom-buffer-style 'links) (> level 1)) |
| 4149 | (widget-put widget :documentation-indent 0)) | 4148 | (widget-put widget :documentation-indent |
| 4149 | custom-group-doc-align-col)) | ||
| 4150 | (widget-add-documentation-string-button | 4150 | (widget-add-documentation-string-button |
| 4151 | widget :visibility-widget 'custom-visibility)) | 4151 | widget :visibility-widget 'custom-visibility)) |
| 4152 | 4152 | ||
| @@ -4224,25 +4224,34 @@ If GROUPS-ONLY non-nil, return only those members that are groups." | |||
| 4224 | (count 0) | 4224 | (count 0) |
| 4225 | (reporter (make-progress-reporter | 4225 | (reporter (make-progress-reporter |
| 4226 | "Creating group entries..." 0 len)) | 4226 | "Creating group entries..." 0 len)) |
| 4227 | (have-subtitle (and (not (eq symbol 'emacs)) | ||
| 4228 | (eq custom-buffer-order-groups 'last))) | ||
| 4229 | prev-type | ||
| 4227 | children) | 4230 | children) |
| 4228 | (setq children | 4231 | |
| 4229 | (mapcar | 4232 | (dolist (entry members) |
| 4230 | (lambda (entry) | 4233 | (unless (eq prev-type 'custom-group) |
| 4231 | (widget-insert "\n") | 4234 | (widget-insert "\n")) |
| 4232 | (progress-reporter-update reporter (setq count (1+ count))) | 4235 | (progress-reporter-update reporter (setq count (1+ count))) |
| 4233 | (let ((sym (nth 0 entry)) | 4236 | (let ((sym (nth 0 entry)) |
| 4234 | (type (nth 1 entry))) | 4237 | (type (nth 1 entry))) |
| 4235 | (prog1 | 4238 | (when (and have-subtitle (eq type 'custom-group)) |
| 4236 | (widget-create-child-and-convert | 4239 | (setq have-subtitle nil) |
| 4237 | widget type | 4240 | (widget-insert |
| 4238 | :group widget | 4241 | (propertize "Subgroups:\n" 'face 'custom-group-subtitle))) |
| 4239 | :tag (custom-unlispify-tag-name sym) | 4242 | (setq prev-type type) |
| 4240 | :custom-prefixes custom-prefix-list | 4243 | (push (widget-create-child-and-convert |
| 4241 | :custom-level (1+ level) | 4244 | widget type |
| 4242 | :value sym) | 4245 | :group widget |
| 4243 | (unless (eq (preceding-char) ?\n) | 4246 | :tag (custom-unlispify-tag-name sym) |
| 4244 | (widget-insert "\n"))))) | 4247 | :custom-prefixes custom-prefix-list |
| 4245 | members)) | 4248 | :custom-level (1+ level) |
| 4249 | :value sym) | ||
| 4250 | children) | ||
| 4251 | (unless (eq (preceding-char) ?\n) | ||
| 4252 | (widget-insert "\n")))) | ||
| 4253 | |||
| 4254 | (setq children (nreverse children)) | ||
| 4246 | (mapc 'custom-magic-reset children) | 4255 | (mapc 'custom-magic-reset children) |
| 4247 | (widget-put widget :children children) | 4256 | (widget-put widget :children children) |
| 4248 | (custom-group-state-update widget) | 4257 | (custom-group-state-update widget) |
| @@ -4267,7 +4276,7 @@ If GROUPS-ONLY non-nil, return only those members that are groups." | |||
| 4267 | ("Undo Edits" custom-group-reset-current | 4276 | ("Undo Edits" custom-group-reset-current |
| 4268 | (lambda (widget) | 4277 | (lambda (widget) |
| 4269 | (memq (widget-get widget :custom-state) '(modified)))) | 4278 | (memq (widget-get widget :custom-state) '(modified)))) |
| 4270 | ("Reset to Saved" custom-group-reset-saved | 4279 | ("Revert This Session's Customizations" custom-group-reset-saved |
| 4271 | (lambda (widget) | 4280 | (lambda (widget) |
| 4272 | (memq (widget-get widget :custom-state) '(modified set)))) | 4281 | (memq (widget-get widget :custom-state) '(modified set)))) |
| 4273 | ,@(when (or custom-file init-file-user) | 4282 | ,@(when (or custom-file init-file-user) |
diff --git a/lisp/epg-config.el b/lisp/epg-config.el index fd2468f9a4b..aa052206bec 100644 --- a/lisp/epg-config.el +++ b/lisp/epg-config.el | |||
| @@ -33,9 +33,11 @@ | |||
| 33 | "Report bugs to this address.") | 33 | "Report bugs to this address.") |
| 34 | 34 | ||
| 35 | (defgroup epg () | 35 | (defgroup epg () |
| 36 | "The EasyPG library." | 36 | "Interface to the GNU Privacy Guard (GnuPG)." |
| 37 | :tag "EasyPG" | ||
| 37 | :version "23.1" | 38 | :version "23.1" |
| 38 | :group 'data) | 39 | :group 'data |
| 40 | :group 'external) | ||
| 39 | 41 | ||
| 40 | (defcustom epg-gpg-program (or (executable-find "gpg") | 42 | (defcustom epg-gpg-program (or (executable-find "gpg") |
| 41 | (executable-find "gpg2") | 43 | (executable-find "gpg2") |
diff --git a/lisp/eshell/eshell.el b/lisp/eshell/eshell.el index 224451eacba..f8c9788b24d 100644 --- a/lisp/eshell/eshell.el +++ b/lisp/eshell/eshell.el | |||
| @@ -228,11 +228,10 @@ | |||
| 228 | (require 'esh-mode) | 228 | (require 'esh-mode) |
| 229 | 229 | ||
| 230 | (defgroup eshell nil | 230 | (defgroup eshell nil |
| 231 | "A command shell implemented entirely in Emacs Lisp. | 231 | "Command shell implemented entirely in Emacs Lisp. |
| 232 | It invokes no external processes beyond those requested by the | 232 | It invokes no external processes beyond those requested by the |
| 233 | user, and is intended to be a functional replacement for command | 233 | user, and is intended to be a functional replacement for command |
| 234 | shells such as bash, zsh, rc, 4dos." | 234 | shells such as bash, zsh, rc, 4dos." |
| 235 | :tag "The Emacs shell" | ||
| 236 | :link '(info-link "(eshell)Top") | 235 | :link '(info-link "(eshell)Top") |
| 237 | :version "21.1" | 236 | :version "21.1" |
| 238 | :group 'applications) | 237 | :group 'applications) |
diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el index 536992f5bc8..464b35fc3a6 100644 --- a/lisp/ibuffer.el +++ b/lisp/ibuffer.el | |||
| @@ -60,11 +60,10 @@ | |||
| 60 | (declare-function ibuffer-format-filter-group-data "ibuf-ext" (filter)) | 60 | (declare-function ibuffer-format-filter-group-data "ibuf-ext" (filter)) |
| 61 | 61 | ||
| 62 | (defgroup ibuffer nil | 62 | (defgroup ibuffer nil |
| 63 | "An advanced replacement for `buffer-menu'. | 63 | "Advanced replacement for `buffer-menu'. |
| 64 | 64 | Ibuffer lets you operate on buffers in a Dired-like way, | |
| 65 | Ibuffer allows you to operate on buffers in a manner much like Dired. | 65 | with the ability to sort, mark by regular expression, |
| 66 | Operations include sorting, marking by regular expression, and | 66 | and filter displayed buffers by various criteria." |
| 67 | the ability to filter the displayed buffers by various criteria." | ||
| 68 | :version "22.1" | 67 | :version "22.1" |
| 69 | :group 'convenience) | 68 | :group 'convenience) |
| 70 | 69 | ||
diff --git a/lisp/mpc.el b/lisp/mpc.el index d2203a4deab..ea7f6793309 100644 --- a/lisp/mpc.el +++ b/lisp/mpc.el | |||
| @@ -95,7 +95,7 @@ | |||
| 95 | (eval-when-compile (require 'cl)) | 95 | (eval-when-compile (require 'cl)) |
| 96 | 96 | ||
| 97 | (defgroup mpc () | 97 | (defgroup mpc () |
| 98 | "A Client for the Music Player Daemon." | 98 | "Client for the Music Player Daemon (mpd)." |
| 99 | :prefix "mpc-" | 99 | :prefix "mpc-" |
| 100 | :group 'multimedia | 100 | :group 'multimedia |
| 101 | :group 'applications) | 101 | :group 'applications) |
diff --git a/lisp/net/ange-ftp.el b/lisp/net/ange-ftp.el index 455836fdae1..447549f58cd 100644 --- a/lisp/net/ange-ftp.el +++ b/lisp/net/ange-ftp.el | |||
| @@ -671,8 +671,7 @@ | |||
| 671 | ;;;; ------------------------------------------------------------ | 671 | ;;;; ------------------------------------------------------------ |
| 672 | 672 | ||
| 673 | (defgroup ange-ftp nil | 673 | (defgroup ange-ftp nil |
| 674 | "Accessing remote files and directories using FTP | 674 | "Accessing remote files and directories using FTP." |
| 675 | made as simple and transparent as possible." | ||
| 676 | :group 'files | 675 | :group 'files |
| 677 | :group 'comm | 676 | :group 'comm |
| 678 | :prefix "ange-ftp-") | 677 | :prefix "ange-ftp-") |
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index 95848ac34ea..beb97c6eb32 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el | |||
| @@ -62,7 +62,7 @@ | |||
| 62 | ;;; User Customizable Internal Variables: | 62 | ;;; User Customizable Internal Variables: |
| 63 | 63 | ||
| 64 | (defgroup tramp nil | 64 | (defgroup tramp nil |
| 65 | "Edit remote files with a combination of rsh and rcp or similar programs." | 65 | "Edit remote files with a combination of ssh, scp, etc." |
| 66 | :group 'files | 66 | :group 'files |
| 67 | :group 'comm | 67 | :group 'comm |
| 68 | :version "22.1") | 68 | :version "22.1") |
diff --git a/lisp/progmodes/ebnf2ps.el b/lisp/progmodes/ebnf2ps.el index 05c9e160ceb..b7cbdcc7018 100644 --- a/lisp/progmodes/ebnf2ps.el +++ b/lisp/progmodes/ebnf2ps.el | |||
| @@ -1181,10 +1181,10 @@ Elements of ALIST that are not conses are ignored." | |||
| 1181 | ;;; Interface to the command system | 1181 | ;;; Interface to the command system |
| 1182 | 1182 | ||
| 1183 | (defgroup postscript nil | 1183 | (defgroup postscript nil |
| 1184 | "PostScript Group." | 1184 | "Printing with PostScript" |
| 1185 | :tag "PostScript" | 1185 | :tag "PostScript" |
| 1186 | :version "20" | 1186 | :version "20" |
| 1187 | :group 'emacs) | 1187 | :group 'environment) |
| 1188 | 1188 | ||
| 1189 | 1189 | ||
| 1190 | (defgroup ebnf2ps nil | 1190 | (defgroup ebnf2ps nil |
diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el index ed8eb81932e..96d4105f65b 100644 --- a/lisp/progmodes/flymake.el +++ b/lisp/progmodes/flymake.el | |||
| @@ -253,7 +253,7 @@ are the string substitutions (see `format')." | |||
| 253 | (make-variable-buffer-local 'flymake-output-residual) | 253 | (make-variable-buffer-local 'flymake-output-residual) |
| 254 | 254 | ||
| 255 | (defgroup flymake nil | 255 | (defgroup flymake nil |
| 256 | "A universal on-the-fly syntax checker." | 256 | "Universal on-the-fly syntax checker." |
| 257 | :version "23.1" | 257 | :version "23.1" |
| 258 | :group 'tools) | 258 | :group 'tools) |
| 259 | 259 | ||
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el index 1f60c351252..7123a8dd7fc 100644 --- a/lisp/progmodes/gud.el +++ b/lisp/progmodes/gud.el | |||
| @@ -58,8 +58,9 @@ | |||
| 58 | ;; GUD commands must be visible in C buffers visited by GUD | 58 | ;; GUD commands must be visible in C buffers visited by GUD |
| 59 | 59 | ||
| 60 | (defgroup gud nil | 60 | (defgroup gud nil |
| 61 | "Grand Unified Debugger mode for gdb and other debuggers under Emacs. | 61 | "The \"Grand Unified Debugger\" interface. |
| 62 | Supported debuggers include gdb, sdb, dbx, xdb, perldb, pdb (Python) and jdb." | 62 | Supported debuggers include gdb, sdb, dbx, xdb, perldb, |
| 63 | pdb (Python), and jdb." | ||
| 63 | :group 'processes | 64 | :group 'processes |
| 64 | :group 'tools) | 65 | :group 'tools) |
| 65 | 66 | ||
diff --git a/lisp/progmodes/prolog.el b/lisp/progmodes/prolog.el index 74c8c31b425..4ef6c31442d 100644 --- a/lisp/progmodes/prolog.el +++ b/lisp/progmodes/prolog.el | |||
| @@ -295,7 +295,7 @@ | |||
| 295 | 295 | ||
| 296 | 296 | ||
| 297 | (defgroup prolog nil | 297 | (defgroup prolog nil |
| 298 | "Major modes for editing and running Prolog and Mercury files." | 298 | "Editing and running Prolog and Mercury files." |
| 299 | :group 'languages) | 299 | :group 'languages) |
| 300 | 300 | ||
| 301 | (defgroup prolog-faces nil | 301 | (defgroup prolog-faces nil |
diff --git a/lisp/progmodes/verilog-mode.el b/lisp/progmodes/verilog-mode.el index 0139795dd38..ad1dae9acf9 100644 --- a/lisp/progmodes/verilog-mode.el +++ b/lisp/progmodes/verilog-mode.el | |||
| @@ -393,7 +393,7 @@ Set `verilog-in-hooks' during this time, to assist AUTO caches." | |||
| 393 | (parse-partial-sexp (point-min) (or pos (point))))) | 393 | (parse-partial-sexp (point-min) (or pos (point))))) |
| 394 | 394 | ||
| 395 | (defgroup verilog-mode nil | 395 | (defgroup verilog-mode nil |
| 396 | "Facilitates easy editing of Verilog source text." | 396 | "Major mode for Verilog source code." |
| 397 | :version "22.2" | 397 | :version "22.2" |
| 398 | :group 'languages) | 398 | :group 'languages) |
| 399 | 399 | ||
diff --git a/lisp/progmodes/which-func.el b/lisp/progmodes/which-func.el index c8435c14ea2..cdaeadde906 100644 --- a/lisp/progmodes/which-func.el +++ b/lisp/progmodes/which-func.el | |||
| @@ -68,7 +68,7 @@ | |||
| 68 | "String to display in the mode line when current function is unknown.") | 68 | "String to display in the mode line when current function is unknown.") |
| 69 | 69 | ||
| 70 | (defgroup which-func nil | 70 | (defgroup which-func nil |
| 71 | "Mode to display the current function name in the modeline." | 71 | "Display the current function name in the modeline." |
| 72 | :group 'tools | 72 | :group 'tools |
| 73 | :version "20.3") | 73 | :version "20.3") |
| 74 | 74 | ||
diff --git a/lisp/ses.el b/lisp/ses.el index da18046c953..876537413ca 100644 --- a/lisp/ses.el +++ b/lisp/ses.el | |||
| @@ -65,6 +65,7 @@ | |||
| 65 | 65 | ||
| 66 | (defgroup ses nil | 66 | (defgroup ses nil |
| 67 | "Simple Emacs Spreadsheet." | 67 | "Simple Emacs Spreadsheet." |
| 68 | :tag "SES" | ||
| 68 | :group 'applications | 69 | :group 'applications |
| 69 | :prefix "ses-" | 70 | :prefix "ses-" |
| 70 | :version "21.1") | 71 | :version "21.1") |
diff --git a/lisp/term/xterm.el b/lisp/term/xterm.el index 7e56cd9fa1d..51e5aa5796d 100644 --- a/lisp/term/xterm.el +++ b/lisp/term/xterm.el | |||
| @@ -27,7 +27,7 @@ | |||
| 27 | (defgroup xterm nil | 27 | (defgroup xterm nil |
| 28 | "XTerm support." | 28 | "XTerm support." |
| 29 | :version "24.1" | 29 | :version "24.1" |
| 30 | :group 'emacs) | 30 | :group 'environment) |
| 31 | 31 | ||
| 32 | (defcustom xterm-extra-capabilities 'check | 32 | (defcustom xterm-extra-capabilities 'check |
| 33 | "Whether Xterm supports some additional, more modern, features. | 33 | "Whether Xterm supports some additional, more modern, features. |
diff --git a/lisp/textmodes/picture.el b/lisp/textmodes/picture.el index 191e9f3672b..24a4ac1b033 100644 --- a/lisp/textmodes/picture.el +++ b/lisp/textmodes/picture.el | |||
| @@ -31,7 +31,7 @@ | |||
| 31 | ;;; Code: | 31 | ;;; Code: |
| 32 | 32 | ||
| 33 | (defgroup picture nil | 33 | (defgroup picture nil |
| 34 | "Picture mode --- editing using quarter-plane screen model." | 34 | "Editing text-based pictures (\"ASCII art\")." |
| 35 | :prefix "picture-" | 35 | :prefix "picture-" |
| 36 | :group 'wp) | 36 | :group 'wp) |
| 37 | 37 | ||
diff --git a/lisp/textmodes/tildify.el b/lisp/textmodes/tildify.el index 5552eff7186..583e4a4d35d 100644 --- a/lisp/textmodes/tildify.el +++ b/lisp/textmodes/tildify.el | |||
| @@ -51,7 +51,7 @@ | |||
| 51 | 51 | ||
| 52 | 52 | ||
| 53 | (defgroup tildify nil | 53 | (defgroup tildify nil |
| 54 | "Adding missing hard spaces or other text fragments into texts." | 54 | "Add hard spaces or other text fragments to text buffers." |
| 55 | :version "21.1" | 55 | :version "21.1" |
| 56 | :group 'wp) | 56 | :group 'wp) |
| 57 | 57 | ||
diff --git a/lisp/vc/ediff.el b/lisp/vc/ediff.el index 4d6afa96d64..a1d778beebc 100644 --- a/lisp/vc/ediff.el +++ b/lisp/vc/ediff.el | |||
| @@ -127,7 +127,7 @@ | |||
| 127 | (require 'ediff-mult) ; required because of the registry stuff | 127 | (require 'ediff-mult) ; required because of the registry stuff |
| 128 | 128 | ||
| 129 | (defgroup ediff nil | 129 | (defgroup ediff nil |
| 130 | "A comprehensive visual interface to diff & patch." | 130 | "Comprehensive visual interface to `diff' and `patch'." |
| 131 | :tag "Ediff" | 131 | :tag "Ediff" |
| 132 | :group 'tools) | 132 | :group 'tools) |
| 133 | 133 | ||
diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el index ab7e587eb79..9ca9e00b8af 100644 --- a/lisp/vc/vc.el +++ b/lisp/vc/vc.el | |||
| @@ -667,7 +667,7 @@ | |||
| 667 | ;; General customization | 667 | ;; General customization |
| 668 | 668 | ||
| 669 | (defgroup vc nil | 669 | (defgroup vc nil |
| 670 | "Version-control system in Emacs." | 670 | "Emacs interface to version control systems." |
| 671 | :group 'tools) | 671 | :group 'tools) |
| 672 | 672 | ||
| 673 | (defcustom vc-initial-comment nil | 673 | (defcustom vc-initial-comment nil |
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el index b6feecebde5..9c5c6462bcc 100644 --- a/lisp/wid-edit.el +++ b/lisp/wid-edit.el | |||
| @@ -2907,15 +2907,7 @@ link for that string." | |||
| 2907 | (push (widget-convert-button widget-documentation-link-type | 2907 | (push (widget-convert-button widget-documentation-link-type |
| 2908 | begin end :value name) | 2908 | begin end :value name) |
| 2909 | buttons))))) | 2909 | buttons))))) |
| 2910 | (widget-put widget :buttons buttons))) | 2910 | (widget-put widget :buttons buttons)))) |
| 2911 | (let ((indent (widget-get widget :indent))) | ||
| 2912 | (when (and indent (not (zerop indent))) | ||
| 2913 | (save-excursion | ||
| 2914 | (save-restriction | ||
| 2915 | (narrow-to-region from to) | ||
| 2916 | (goto-char (point-min)) | ||
| 2917 | (while (search-forward "\n" nil t) | ||
| 2918 | (insert-char ?\s indent))))))) | ||
| 2919 | 2911 | ||
| 2920 | ;;; The `documentation-string' Widget. | 2912 | ;;; The `documentation-string' Widget. |
| 2921 | 2913 | ||
| @@ -2934,10 +2926,9 @@ link for that string." | |||
| 2934 | (start (point))) | 2926 | (start (point))) |
| 2935 | (if (string-match "\n" doc) | 2927 | (if (string-match "\n" doc) |
| 2936 | (let ((before (substring doc 0 (match-beginning 0))) | 2928 | (let ((before (substring doc 0 (match-beginning 0))) |
| 2937 | (after (substring doc (match-beginning 0))) | 2929 | (after (substring doc (match-end 0))) |
| 2938 | button) | 2930 | button end) |
| 2939 | (when (and indent (not (zerop indent))) | 2931 | (widget-documentation-string-indent-to indent) |
| 2940 | (insert-char ?\s indent)) | ||
| 2941 | (insert before ?\s) | 2932 | (insert before ?\s) |
| 2942 | (widget-documentation-link-add widget start (point)) | 2933 | (widget-documentation-link-add widget start (point)) |
| 2943 | (setq button | 2934 | (setq button |
| @@ -2950,18 +2941,35 @@ link for that string." | |||
| 2950 | :action 'widget-parent-action | 2941 | :action 'widget-parent-action |
| 2951 | shown)) | 2942 | shown)) |
| 2952 | (when shown | 2943 | (when shown |
| 2944 | (insert ?\n) | ||
| 2953 | (setq start (point)) | 2945 | (setq start (point)) |
| 2954 | (when (and indent (not (zerop indent))) | 2946 | (when (and indent (not (zerop indent))) |
| 2955 | (insert-char ?\s indent)) | 2947 | (insert-char ?\s indent)) |
| 2956 | (insert after) | 2948 | (insert after) |
| 2957 | (widget-documentation-link-add widget start (point))) | 2949 | (setq end (point)) |
| 2950 | (widget-documentation-link-add widget start end) | ||
| 2951 | ;; Indent the subsequent lines. | ||
| 2952 | (when (and indent (> indent 0)) | ||
| 2953 | (save-excursion | ||
| 2954 | (save-restriction | ||
| 2955 | (narrow-to-region start end) | ||
| 2956 | (goto-char (point-min)) | ||
| 2957 | (while (search-forward "\n" nil t) | ||
| 2958 | (widget-documentation-string-indent-to indent)))))) | ||
| 2958 | (widget-put widget :buttons (list button))) | 2959 | (widget-put widget :buttons (list button))) |
| 2959 | (when (and indent (not (zerop indent))) | 2960 | (widget-documentation-string-indent-to indent) |
| 2960 | (insert-char ?\s indent)) | ||
| 2961 | (insert doc) | 2961 | (insert doc) |
| 2962 | (widget-documentation-link-add widget start (point)))) | 2962 | (widget-documentation-link-add widget start (point)))) |
| 2963 | (insert ?\n)) | 2963 | (insert ?\n)) |
| 2964 | 2964 | ||
| 2965 | (defun widget-documentation-string-indent-to (col) | ||
| 2966 | (when (and (numberp col) | ||
| 2967 | (> col 0)) | ||
| 2968 | (let ((opoint (point))) | ||
| 2969 | (indent-to col) | ||
| 2970 | (put-text-property opoint (point) | ||
| 2971 | 'display `(space :align-to ,col))))) | ||
| 2972 | |||
| 2965 | (defun widget-documentation-string-action (widget &rest _ignore) | 2973 | (defun widget-documentation-string-action (widget &rest _ignore) |
| 2966 | ;; Toggle documentation. | 2974 | ;; Toggle documentation. |
| 2967 | (let ((parent (widget-get widget :parent))) | 2975 | (let ((parent (widget-get widget :parent))) |