all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Stefan Monnier <monnier@iro.umontreal.ca>
To: Jambunathan K <kjambunathan@gmail.com>
Cc: 12638@debbugs.gnu.org
Subject: bug#12638: 24.2.50; FR: Some suggestions for icomplete-mode
Date: Tue, 23 Oct 2012 15:43:11 -0400	[thread overview]
Message-ID: <jwvvce13szs.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <87391ieck9.fsf@gmail.com> (Jambunathan K.'s message of "Sat, 13 Oct 2012 23:03:13 +0530")

> 1. The icomplete candidates are comma separated but WITHOUT spaces.  It
>    makes readability difficult.
>    So introduce `icomplete-decorations' which can be a copy of
>    `ido-decorations' to begin with.  May be the decorations could be
>    extracted to some other file (minibuffer.el?) and commonly shared by
>    both ido and icomplete.

The lack of space is on purpose, to save screen real-estate, so it
indeed needs to be customizable.  But I don't have a strong opinion on
what the default value should be.

> 2. Support for cycling via C-s and C-r, highlighting and selection of
>    current head (all much like ido-mode)

Not sure what "highlighting" refers to; if you mean to put the first
element in bold, then yes, that fine.

Selection of current head can be done with minibuffer-force-complete
(not bound to any key by default), tho it doesn't exit.  But it should be
easy to add a minibuffer-force-complete-and-exit.

To get you started the patch below adds a keymap to icomplete.

Cycling would also be useful and should similarly be easy to add (it
just needs to play around with (completion-all-sorted-completions) and
store it back via completion--cache-all-sorted-completions, like
minibuffer-force-complete does).

> I can prepare a patch for (1).

We're in feature freeze, so please wait a few weeks before sending
your patch.


        Stefan


=== modified file 'lisp/icomplete.el'
*** lisp/icomplete.el	2012-06-22 17:37:28 +0000
--- lisp/icomplete.el	2012-10-23 19:30:20 +0000
***************
*** 169,174 ****
--- 169,179 ----
  Icomplete does not operate with any specialized completion tables
  except those on this list.")
  
+ (defvar icomplete-minibuffer-map
+   (let ((map (make-sparse-keymap)))
+     (define-key map [?\M-\t] 'minibuffer-force-complete)
+     map))
+ 
  ;;;_ > icomplete-mode (&optional prefix)
  ;;;###autoload
  (define-minor-mode icomplete-mode
***************
*** 208,213 ****
--- 213,220 ----
  Usually run by inclusion in `minibuffer-setup-hook'."
    (when (and icomplete-mode (icomplete-simple-completing-p))
      (set (make-local-variable 'completion-show-inline-help) nil)
+     (use-local-map (make-composed-keymap icomplete-minibuffer-map
+ 					 (current-local-map)))
      (add-hook 'pre-command-hook
  	      (lambda () (let ((non-essential t))
                        (run-hooks 'icomplete-pre-command-hook)))






  parent reply	other threads:[~2012-10-23 19:43 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-13 17:33 bug#12638: 24.2.50; FR: Some suggestions for icomplete-mode Jambunathan K
2012-10-13 22:14 ` Stefan Monnier
2012-10-14  4:18 ` Drew Adams
2012-10-23 19:43 ` Stefan Monnier [this message]
2012-10-23 20:08   ` Jambunathan K
2012-10-23 20:17     ` Jambunathan K
2012-10-24 13:09     ` Stefan Monnier
2012-11-02 11:49       ` Jambunathan K
2012-11-02 12:12         ` Jambunathan K
2012-11-09  1:53           ` Stefan Monnier
2012-11-09  2:17         ` Stefan Monnier
2012-11-09  4:25           ` Jambunathan K
2012-11-09 14:12             ` Stefan Monnier
2012-11-29 21:34 ` Stefan Monnier
2012-11-30  6:18   ` Jambunathan K
2012-11-30 19:37     ` Stefan Monnier
2012-12-04 12:54       ` Jambunathan K
2012-12-04 15:02         ` Stefan Monnier
2012-12-04 15:30           ` Jambunathan K
2012-12-04 15:45             ` Stefan Monnier
2012-12-04 16:12               ` Jambunathan K
2012-12-04 17:14                 ` Stefan Monnier
2012-12-04 17:32                   ` Jambunathan K
2012-12-12  3:18                     ` Stefan Monnier
2012-12-12  3:42                       ` Drew Adams
2012-12-12  6:34                         ` Kevin Rodgers
2012-12-12 16:15                           ` Drew Adams
2012-12-04 15:51           ` Jambunathan K
2012-12-13 13:51             ` Jambunathan K
2012-12-17 16:28               ` Stefan Monnier
2012-12-17 19:22                 ` Jambunathan K
2012-12-17 20:12                   ` Stefan Monnier
2012-12-17 20:58                     ` Jambunathan K
2012-12-18  1:26                       ` Stefan Monnier
2012-12-18  3:09                         ` Drew Adams
2012-12-18 14:40                         ` Jambunathan K
2013-01-11  5:47               ` Jambunathan K
2013-01-11 14:17                 ` Stefan Monnier
2013-02-13 13:56                   ` Jambunathan K
2013-02-13 15:15                     ` Stefan Monnier
2013-02-13 17:18                       ` Jambunathan K
2013-11-15  4:42 ` Jambunathan K

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=jwvvce13szs.fsf-monnier+emacs@gnu.org \
    --to=monnier@iro.umontreal.ca \
    --cc=12638@debbugs.gnu.org \
    --cc=kjambunathan@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.