* bug#5955: completions in M-x find-library include .elc files
@ 2010-04-16 2:28 Aaron S. Hawley
2010-07-23 22:59 ` Stefan Monnier
0 siblings, 1 reply; 6+ messages in thread
From: Aaron S. Hawley @ 2010-04-16 2:28 UTC (permalink / raw)
To: 5955
Typing TAB or ? in M-x find-library shows .el and .elc files when it
probably should just be the name of the library without the extension.
Appears that this is a general problem with
locate-file-completion-table in files.el. It appears to put all files
in to the completion table without condition. The fix is just
removing the first `push' operation.
=== modified file 'lisp/files.el'
--- lisp/files.el 2010-03-31 01:51:54 +0000
+++ lisp/files.el 2010-04-16 01:57:24 +0000
@@ -760,7 +760,6 @@
(when (file-directory-p dir)
(dolist (file (file-name-all-completions
string-file dir))
- (push file names)
(when (string-match suffix file)
(setq file (substring file 0 (match-beginning 0)))
(push file names)))))
Hope this can get fixed. I'd love to have the size of my
*completions* buffers reduced by a factor of 3!
Thanks for Emacs,
/a
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#5955: completions in M-x find-library include .elc files
2010-04-16 2:28 bug#5955: completions in M-x find-library include .elc files Aaron S. Hawley
@ 2010-07-23 22:59 ` Stefan Monnier
2010-07-25 0:44 ` Aaron S. Hawley
0 siblings, 1 reply; 6+ messages in thread
From: Stefan Monnier @ 2010-07-23 22:59 UTC (permalink / raw)
To: Aaron S. Hawley; +Cc: 5955
> Typing TAB or ? in M-x find-library shows .el and .elc files when it
> probably should just be the name of the library without the extension.
> Appears that this is a general problem with
> locate-file-completion-table in files.el. It appears to put all files
> in to the completion table without condition. The fix is just
> removing the first `push' operation.
I added the `push' because in load-library I often want to
select a particular file (i.e. either the .el or the .elc file).
Stefan
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#5955: completions in M-x find-library include .elc files
2010-07-23 22:59 ` Stefan Monnier
@ 2010-07-25 0:44 ` Aaron S. Hawley
2010-07-25 20:03 ` Stefan Monnier
0 siblings, 1 reply; 6+ messages in thread
From: Aaron S. Hawley @ 2010-07-25 0:44 UTC (permalink / raw)
To: Stefan Monnier; +Cc: 5955
On Fri, Jul 23, 2010 at 6:59 PM, Stefan Monnier
<monnier@iro.umontreal.ca> wrote:
>> Typing TAB or ? in M-x find-library shows .el and .elc files when it
>> probably should just be the name of the library without the extension.
>
> I added the `push' because in load-library I often want to
> select a particular file (i.e. either the .el or the .elc file).
Doesn't M-x load-library and specifying no extension load the .elc?
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#5955: completions in M-x find-library include .elc files
2010-07-25 0:44 ` Aaron S. Hawley
@ 2010-07-25 20:03 ` Stefan Monnier
2010-07-25 23:58 ` Stefan Monnier
0 siblings, 1 reply; 6+ messages in thread
From: Stefan Monnier @ 2010-07-25 20:03 UTC (permalink / raw)
To: Aaron S. Hawley; +Cc: 5955
>>> Typing TAB or ? in M-x find-library shows .el and .elc files when it
>>> probably should just be the name of the library without the extension.
>> I added the `push' because in load-library I often want to
>> select a particular file (i.e. either the .el or the .elc file).
> Doesn't M-x load-library and specifying no extension load the .elc?
Usually, yes.
Stefan
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#5955: completions in M-x find-library include .elc files
2010-07-25 20:03 ` Stefan Monnier
@ 2010-07-25 23:58 ` Stefan Monnier
[not found] ` <AANLkTinVv=ZFF7u623bcg_ZHyVuG3SNYck8M60qZ-Fqx@mail.gmail.com>
0 siblings, 1 reply; 6+ messages in thread
From: Stefan Monnier @ 2010-07-25 23:58 UTC (permalink / raw)
To: Aaron S. Hawley; +Cc: 5955
>>>>> "Stefan" == Stefan Monnier <monnier@IRO.UMontreal.CA> writes:
>>>> Typing TAB or ? in M-x find-library shows .el and .elc files when it
>>>> probably should just be the name of the library without the extension.
>>> I added the `push' because in load-library I often want to
>>> select a particular file (i.e. either the .el or the .elc file).
>> Doesn't M-x load-library and specifying no extension load the .elc?
> Usually, yes.
BTW, please try the patch below, to see if you like the
resulting behavior.
Stefan
=== modified file 'lisp/files.el'
--- lisp/files.el 2010-06-13 19:52:42 +0000
+++ lisp/files.el 2010-07-25 23:57:51 +0000
@@ -777,9 +777,12 @@
(if x (1- (length x)) (length suffix))))))
(t
(let ((names nil)
+ (stripsuffix t)
(suffix (concat (regexp-opt suffixes t) "\\'"))
(string-dir (file-name-directory string))
(string-file (file-name-nondirectory string)))
+ (while
+ (progn
(dolist (dir dirs)
(unless dir
(setq dir default-directory))
@@ -787,10 +790,15 @@
(when (file-directory-p dir)
(dolist (file (file-name-all-completions
string-file dir))
+ (if (not (string-match suffix file))
(push file names)
- (when (string-match suffix file)
+ (unless stripsuffix (push file names))
(setq file (substring file 0 (match-beginning 0)))
(push file names)))))
+ ;; Remove duplicates of the first element.
+ (setq names (cons (car names) (delete (car names) (cdr names))))
+ (prog1 (and stripsuffix (= 1 (length names)))
+ (setq stripsuffix nil))))
(completion-table-with-context
string-dir names string-file pred action)))))
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#5955: completions in M-x find-library include .elc files
[not found] ` <AANLkTinVv=ZFF7u623bcg_ZHyVuG3SNYck8M60qZ-Fqx@mail.gmail.com>
@ 2010-08-19 21:24 ` Stefan Monnier
0 siblings, 0 replies; 6+ messages in thread
From: Stefan Monnier @ 2010-08-19 21:24 UTC (permalink / raw)
To: Aaron S. Hawley
>> BTW, please try the patch below, to see if you like the
>> resulting behavior.
> Interesting idea. Show matches for more than one library without
> suffixes, but if there is only one match show the possible extensions.
> I'd say this is an improvement for users over the current behavior.
I've installed this change (well, a slightly different version).
> However, some libraries names are a prefix for another. So really,
Yes, it's not perfect, but I think it's good enough. I don't think it's
a clean enough behavior to warrant documenting.
Stefan
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2010-08-19 21:24 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-04-16 2:28 bug#5955: completions in M-x find-library include .elc files Aaron S. Hawley
2010-07-23 22:59 ` Stefan Monnier
2010-07-25 0:44 ` Aaron S. Hawley
2010-07-25 20:03 ` Stefan Monnier
2010-07-25 23:58 ` Stefan Monnier
[not found] ` <AANLkTinVv=ZFF7u623bcg_ZHyVuG3SNYck8M60qZ-Fqx@mail.gmail.com>
2010-08-19 21:24 ` Stefan Monnier
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).