all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Dmitry Gutov <dgutov@yandex.ru>
To: Stephen Leake <stephen_leake@stephe-leake.org>, emacs-devel@gnu.org
Subject: Re: cl-defgeneric vs random funcall in project.el
Date: Thu, 30 Jul 2015 20:16:13 +0300	[thread overview]
Message-ID: <55BA5BDD.1080009@yandex.ru> (raw)
In-Reply-To: <86mvyd7jf0.fsf@stephe-leake.org>

On 07/30/2015 06:29 PM, Stephen Leake wrote:

> The point of a "project backend" is that it knows _everything_ about the
> project. No stray hooks for users to pervert things.

The problem is I (and others) have a lot of Elisp projects which don't 
adhere to some particular structure. No particular project files, aside 
from a .git repo, and maybe Makefile, or maybe some other -file.

It's not even easy to identify it: maybe there are some .el files in the 
root directory, but they might all be in a subdirectory.

I want to support this use case.

> I would write the vc implementation of project-search-path to return a
> flat list of all the directories under the vc root.

The flat list is really out of the question. It really goes against my 
intuition and every project backend will have to implement the logic of 
producing this flat list based on some roots and a list of ignores.

We won't be able to use rgrep on the resulting directories, but we'd 
still have to handle ignored files.

I'd rather project-ignores was powerful enough to describe the majority 
of cases, and xref-find-regexp knew how to interpret that list.

> Right. The elisp project backend is incomplete.

It's not a backend. Like described above, it would be hard to even write 
a reasonably efficient project-find-functions element for such a 
backend. What will it do? Recursively scan the VC repo for .el files?

> That's one problem with using two dispatching mechanisms; it's too easy
> to get mixtures of incomplete implementations that "seem to work".

I'd call it "composability". :)



  parent reply	other threads:[~2015-07-30 17:16 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-28 11:31 cl-defgeneric vs random funcall in project.el Stephen Leake
2015-07-28 15:09 ` Dmitry Gutov
2015-07-28 23:57   ` Stefan Monnier
2015-07-29  0:16     ` Dmitry Gutov
2015-07-30 21:26       ` Stefan Monnier
2015-07-29  1:00   ` Stephen Leake
2015-07-29  1:19     ` Dmitry Gutov
2015-07-29 14:24       ` Stephen Leake
2015-07-29 19:54         ` Dmitry Gutov
2015-07-30  7:04           ` Stephen Leake
2015-07-30 11:30             ` Dmitry Gutov
2015-07-30 15:29               ` Stephen Leake
2015-07-30 15:37                 ` Stephen Leake
2015-07-30 16:10                   ` Dmitry Gutov
2015-07-30 23:25                     ` Stephen Leake
2015-07-30 17:16                 ` Dmitry Gutov [this message]
2015-07-30 23:33                   ` Stephen Leake
2015-07-31  0:37                     ` Dmitry Gutov
2015-07-31 14:36                       ` Stephen Leake
2015-07-31 22:52                         ` Dmitry Gutov
2015-08-01 10:21                           ` Stephen Leake
2015-08-01 12:09                             ` Dmitry Gutov
2015-08-01 14:20                               ` Stephen Leake
2015-08-01 16:49                                 ` Dmitry Gutov
2015-08-01 19:08                                   ` Stephen Leake
2015-08-04 19:59                                   ` João Távora
2015-08-04 20:56                                     ` Dmitry Gutov
2015-08-04 22:43                                       ` João Távora
2015-08-04 23:35                                         ` Dmitry Gutov
2015-08-10  1:09                                         ` Dmitry Gutov
2015-08-10  3:07                                         ` Stephen Leake
2015-08-10  8:45                                           ` João Távora
2015-08-10 16:50                                             ` Stephen Leake
2015-08-10 19:38                                               ` João Távora
2015-08-10 18:07                                             ` Dmitry Gutov
2015-08-10 19:21                                               ` João Távora
2015-08-10 19:37                                                 ` Dmitry Gutov
2015-08-10 19:47                                                   ` João Távora
2015-08-10 19:55                                                     ` Dmitry Gutov
2015-08-10 18:02                                           ` Dmitry Gutov
2015-08-07 15:02                                       ` Stefan Monnier
2015-08-07 15:32                                         ` Dmitry Gutov
2015-08-07 17:36                                           ` Stefan Monnier
2015-08-05  7:02                                     ` Stephen Leake
2015-07-30 21:31     ` Stefan Monnier

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=55BA5BDD.1080009@yandex.ru \
    --to=dgutov@yandex.ru \
    --cc=emacs-devel@gnu.org \
    --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 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.