unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Dmitry Gutov <dgutov@yandex.ru>
To: Stephen Leake <stephen_leake@stephe-leake.org>
Cc: Stefan Monnier <monnier@IRO.UMontreal.CA>,
	emacs-devel <emacs-devel@gnu.org>
Subject: Re: make project--find-in-file generic, add interactive filename to project-find-file
Date: Thu, 28 Jan 2016 13:36:59 +0300	[thread overview]
Message-ID: <56A9EF4B.7020406@yandex.ru> (raw)
In-Reply-To: <86si1i813n.fsf@stephe-leake.org>

On 01/28/2016 01:11 PM, Stephen Leake wrote:

>> - IIRC, using INITIAL-INPUT argument is semi-deprecated. Using DEFAULT
>> is preferable,
>
> I was not aware of M-n (more below).

Hmm, the default value actually has one noticeable drawback here: if you 
just press RET, completing-read will accept it, and won't check whether 
the completion table includes the given value. Then, find-file will be 
called with this raw (not expanded) value.

Stefan, would you say INITIAL-INPUT is better for this use case?

>> and then you don't need to make that value depend on
>> current-prefix-arg.
>
> Actually, I did not intend to make it depend on current-prefix-arg, as
> the doc string does not mention that; I forgot to fix that when I copied
> from my current code.
>
> On the other hand, it makes sense to give the user some control over
> whether the file at point is used.

Indeed.

> However, the default still does not show anywhere;
> we should add it to the prompt.

Agree. If we end up using the default.

>> And I see no good reason to thread it through the command's function
>> arguments. Why not do it like in the patch at the bottom?
>
> Because there are also times when calling `project-find-file' from lisp
> with a filename makes sense.

In a user-defined command? Maybe.

> But that code can call
> project--find-file-in, instead of project-find-file.

It'll have to become a public function, though, if we're really 
considering this use case.

>> - More importantly, the new generic function should not do too much.
>> It should return a completion table, which can dispatch to ede,
>> ada-mode, or any other facility. I believe we've went over this a
>> couple of times already.
>
> So instead of computing `table' in project--find-file-in, it would
> call (project--file-completion-table dirs project). The default
> implementation of `project--file-completion-table' would be the code
> using `find-program'.

Pretty much, except it should have a public name (no double-dash), and 
the project should probably be the first argument.



  reply	other threads:[~2016-01-28 10:36 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-28  1:04 make project--find-in-file generic, add interactive filename to project-find-file Stephen Leake
2016-01-28  9:21 ` Dmitry Gutov
2016-01-28 10:11   ` Stephen Leake
2016-01-28 10:36     ` Dmitry Gutov [this message]
2016-01-28 13:14       ` Stefan Monnier
2016-01-28 19:32         ` Dmitry Gutov
2016-01-28 21:11           ` Stefan Monnier
2016-01-28 21:22             ` Dmitry Gutov
2016-01-28 22:44               ` Stefan Monnier
2016-01-29  2:10                 ` Dmitry Gutov
2016-01-29  2:57                   ` Stefan Monnier
2016-01-29  4:20                     ` Dmitry Gutov
2016-01-29 14:05                       ` Stefan Monnier
2016-01-29 21:53                         ` Dmitry Gutov
2016-01-31  6:18                           ` Stefan Monnier
2016-01-31 14:02                             ` Dmitry Gutov
2016-01-31 14:23                               ` Stefan Monnier
2016-02-01  8:08                                 ` Dmitry Gutov
2016-02-01 13:40                                   ` Stefan Monnier
2016-01-29  2:05             ` Dmitry Gutov
2016-01-29  2:55               ` Stefan Monnier
2016-01-29  4:11                 ` Dmitry Gutov
2016-01-29 14:03                   ` Stefan Monnier
2016-01-29 21:35                     ` Dmitry Gutov
2016-01-30  2:07                       ` Stefan Monnier
2016-01-30 23:32               ` Juri Linkov
2016-01-31  0:40                 ` Dmitry Gutov
2016-01-28 11:06     ` Stephen Leake
2016-01-28 11:11       ` Stephen Leake
2016-01-29  2:18       ` Dmitry Gutov
2016-01-29 23:55         ` Stephen Leake
2016-01-30  0:15           ` Dmitry Gutov

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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=56A9EF4B.7020406@yandex.ru \
    --to=dgutov@yandex.ru \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@IRO.UMontreal.CA \
    --cc=stephen_leake@stephe-leake.org \
    /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 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).