GNU bug report logs -
#14143
[gmane.emacs.devel] Patch to ido.el
Previous Next
Reported by: Leo Liu <sdl.web <at> gmail.com>
Date: Fri, 5 Apr 2013 07:46:01 UTC
Severity: normal
Done: Stefan Monnier <monnier <at> iro.umontreal.ca>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 14143 in the body.
You can then email your comments to 14143 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#14143
; Package
emacs
.
(Fri, 05 Apr 2013 07:46:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Leo Liu <sdl.web <at> gmail.com>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Fri, 05 Apr 2013 07:46:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
M-x report-emacs-bug will send your email to the issue tracker.
Thanks for the patch I'll take a look in 2 days.
[Message part 2 (message/rfc822, inline)]
[Message part 3 (text/plain, inline)]
Disclaimer: I have absolutely no idea how this process works.
This patch makes ido.el slightly more configurable.
In particular, when using ido-decorations that make ido-mode display
vertically (per http://emacswiki.org/emacs/InteractivelyDoThings#toc20), a
pair of decorations are being used in two different places with two
different meanings, even though by happenstance they look the same. This
patch splits them out into two different pairs of decorations (which
currently have the same value), allowing the user to customize them with
greater precision.
diff --git ido.el ido2.el
index cda4021..dfb5b0a 100644
--- ido.el
+++ ido2.el
@@ -763,7 +763,7 @@ Obsolete. Set 3rd element of `ido-decorations'
instead."
:type '(choice string (const nil))
:group 'ido)
-(defcustom ido-decorations '( "{" "}" " | " " | ..." "[" "]" " [No match]"
" [Matched]" " [Not readable]" " [Too big]" " [Confirm]")
+(defcustom ido-decorations '( "{" "}" " | " " | ..." "[" "]" " [No match]"
" [Matched]" " [Not readable]" " [Too big]" " [Confirm]" "[" "]")
"List of strings used by ido to display the alternatives in the
minibuffer.
There are 11 elements in this list:
1st and 2nd elements are used as brackets around the prospect list,
@@ -4570,9 +4570,9 @@ For details of keybindings, see `ido-find-file'."
(ido-name (car comps))))
""
;; when there is one match, show the matching file
name in full
- (concat (nth 4 ido-decorations) ;; [ ... ]
+ (concat (nth 11 ido-decorations) ;; [ ... ]
(ido-name (car comps))
- (nth 5 ido-decorations)))
+ (nth 12 ido-decorations)))
(if (not ido-use-faces) (nth 7 ido-decorations)))) ;; [Matched]
(t ;multiple matches
(let* ((items (if (> ido-max-prospects 0) (1+ ido-max-prospects) 999))
So, now that I've said everything that can probably be said on the topic,
how do I go about submitting this patch for review to the official emacs
repo? Does this email count? Or maybe someone in here knows how to do it in
like 3 seconds flat and wouldn't mind?
-Steven
[Message part 4 (text/html, inline)]
Reply sent
to
Stefan Monnier <monnier <at> iro.umontreal.ca>
:
You have taken responsibility.
(Fri, 05 Apr 2013 14:08:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
Leo Liu <sdl.web <at> gmail.com>
:
bug acknowledged by developer.
(Fri, 05 Apr 2013 14:08:03 GMT)
Full text and
rfc822 format available.
Message #10 received at 14143-done <at> debbugs.gnu.org (full text, mbox):
Thanks for your bug-report, Steven [ by now, it seems you've been told
plenty of times how/where to send your patch, right? ].
I installed your patch with a few changes. The most important one is to
make sure that people who have customized their ido-decorations still
get the same behavior as before. See the final patch below.
Stefan
=== modified file 'etc/NEWS'
--- etc/NEWS 2013-03-30 13:49:00 +0000
+++ etc/NEWS 2013-04-05 13:54:30 +0000
@@ -87,6 +87,8 @@
* Changes in Specialized Modes and Packages in Emacs 24.4
+** `ido-decorations' has been slightly extended to give a bit more control.
+
** More packages look for ~/.emacs.d/<foo> additionally to ~/.<foo>.
Affected files:
~/.emacs.d/timelog replaces ~/.timelog
=== modified file 'lisp/ChangeLog'
--- lisp/ChangeLog 2013-04-05 10:18:43 +0000
+++ lisp/ChangeLog 2013-04-05 13:55:28 +0000
@@ -1,3 +1,9 @@
+2013-04-05 Stefan Monnier <monnier <at> iro.umontreal.ca>
+
+ * ido.el (ido-completions): Use extra elements of ido-decorations
+ (bug#14143).
+ (ido-decorations): Update docstring.
+
2013-04-05 Michael Albinus <michael.albinus <at> gmx.de>
* autorevert.el (auto-revert-mode, auto-revert-tail-mode)
=== modified file 'lisp/ido.el'
--- lisp/ido.el 2013-03-20 03:05:34 +0000
+++ lisp/ido.el 2013-04-05 13:49:23 +0000
@@ -765,7 +765,7 @@
(defcustom ido-decorations '( "{" "}" " | " " | ..." "[" "]" " [No match]" " [Matched]" " [Not readable]" " [Too big]" " [Confirm]")
"List of strings used by ido to display the alternatives in the minibuffer.
-There are 11 elements in this list:
+There are between 11 and 13 elements in this list:
1st and 2nd elements are used as brackets around the prospect list,
3rd element is the separator between prospects (ignored if `ido-separator' is set),
4th element is the string inserted at the end of a truncated list of prospects,
@@ -775,7 +775,9 @@
8th element is displayed if there is a single match (and faces are not used),
9th element is displayed when the current directory is non-readable,
10th element is displayed when directory exceeds `ido-max-directory-size',
-11th element is displayed to confirm creating new file or buffer."
+11th element is displayed to confirm creating new file or buffer.
+12th and 13th elements (if present) are used as brackets around the sole
+remaining completion. If absent, elements 5 and 6 are used instead."
:type '(repeat string)
:group 'ido)
@@ -4581,10 +4583,12 @@
(string-equal (match-string 0 (ido-name (car comps)))
(ido-name (car comps))))
""
- ;; when there is one match, show the matching file name in full
- (concat (nth 4 ido-decorations) ;; [ ... ]
+ ;; When there is only one match, show the matching file
+ ;; name in full wrapped in [ ... ].
+ (concat
+ (or (nth 11 ido-decorations) (nth 4 ido-decorations))
(ido-name (car comps))
- (nth 5 ido-decorations)))
+ (or (nth 12 ido-decorations) (nth 5 ido-decorations))))
(if (not ido-use-faces) (nth 7 ido-decorations)))) ;; [Matched]
(t ;multiple matches
(let* ((items (if (> ido-max-prospects 0) (1+ ido-max-prospects) 999))
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#14143
; Package
emacs
.
(Fri, 05 Apr 2013 17:23:01 GMT)
Full text and
rfc822 format available.
Message #13 received at 14143-done <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Your patch is mostly perfect, except there's one more thing needed, namely
that the inner-if on line 4563 has to be wrapped with an (and (not
(ido-show-when-exact-single-match)) ...) and the defcustom created above it
defaulting to nil. I didn't apply this to your patch because to be honest,
I have no idea how to apply your patch to my copy of ido.el.
So I submitted a bug report just now via M-x report-emacs-bug, and included
as much information as I can.
-Steven
On Fri, Apr 5, 2013 at 9:04 AM, Stefan Monnier <monnier <at> iro.umontreal.ca>wrote:
> Thanks for your bug-report, Steven [ by now, it seems you've been told
> plenty of times how/where to send your patch, right? ].
>
> I installed your patch with a few changes. The most important one is to
> make sure that people who have customized their ido-decorations still
> get the same behavior as before. See the final patch below.
>
>
> Stefan
>
>
> === modified file 'etc/NEWS'
> --- etc/NEWS 2013-03-30 13:49:00 +0000
> +++ etc/NEWS 2013-04-05 13:54:30 +0000
> @@ -87,6 +87,8 @@
>
> * Changes in Specialized Modes and Packages in Emacs 24.4
>
> +** `ido-decorations' has been slightly extended to give a bit more
> control.
> +
> ** More packages look for ~/.emacs.d/<foo> additionally to ~/.<foo>.
> Affected files:
> ~/.emacs.d/timelog replaces ~/.timelog
>
> === modified file 'lisp/ChangeLog'
> --- lisp/ChangeLog 2013-04-05 10:18:43 +0000
> +++ lisp/ChangeLog 2013-04-05 13:55:28 +0000
> @@ -1,3 +1,9 @@
> +2013-04-05 Stefan Monnier <monnier <at> iro.umontreal.ca>
> +
> + * ido.el (ido-completions): Use extra elements of ido-decorations
> + (bug#14143).
> + (ido-decorations): Update docstring.
> +
> 2013-04-05 Michael Albinus <michael.albinus <at> gmx.de>
>
> * autorevert.el (auto-revert-mode, auto-revert-tail-mode)
>
> === modified file 'lisp/ido.el'
> --- lisp/ido.el 2013-03-20 03:05:34 +0000
> +++ lisp/ido.el 2013-04-05 13:49:23 +0000
> @@ -765,7 +765,7 @@
>
> (defcustom ido-decorations '( "{" "}" " | " " | ..." "[" "]" " [No
> match]" " [Matched]" " [Not readable]" " [Too big]" " [Confirm]")
> "List of strings used by ido to display the alternatives in the
> minibuffer.
> -There are 11 elements in this list:
> +There are between 11 and 13 elements in this list:
> 1st and 2nd elements are used as brackets around the prospect list,
> 3rd element is the separator between prospects (ignored if
> `ido-separator' is set),
> 4th element is the string inserted at the end of a truncated list of
> prospects,
> @@ -775,7 +775,9 @@
> 8th element is displayed if there is a single match (and faces are not
> used),
> 9th element is displayed when the current directory is non-readable,
> 10th element is displayed when directory exceeds `ido-max-directory-size',
> -11th element is displayed to confirm creating new file or buffer."
> +11th element is displayed to confirm creating new file or buffer.
> +12th and 13th elements (if present) are used as brackets around the sole
> +remaining completion. If absent, elements 5 and 6 are used instead."
> :type '(repeat string)
> :group 'ido)
>
> @@ -4581,10 +4583,12 @@
> (string-equal (match-string 0 (ido-name (car
> comps)))
> (ido-name (car comps))))
> ""
> - ;; when there is one match, show the matching file
> name in full
> - (concat (nth 4 ido-decorations) ;; [ ... ]
> + ;; When there is only one match, show the matching
> file
> + ;; name in full wrapped in [ ... ].
> + (concat
> + (or (nth 11 ido-decorations) (nth 4
> ido-decorations))
> (ido-name (car comps))
> - (nth 5 ido-decorations)))
> + (or (nth 12 ido-decorations) (nth 5
> ido-decorations))))
> (if (not ido-use-faces) (nth 7 ido-decorations)))) ;;
> [Matched]
> (t ;multiple matches
> (let* ((items (if (> ido-max-prospects 0) (1+
> ido-max-prospects) 999))
>
>
[Message part 2 (text/html, inline)]
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Sat, 04 May 2013 11:24:04 GMT)
Full text and
rfc822 format available.
This bug report was last modified 12 years and 53 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.