From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.devel Subject: Re: Unified project interface Date: Tue, 28 Jul 2015 17:18:49 +0300 Message-ID: <55B78F49.6010101@yandex.ru> References: <557039DB.4060607@yandex.ru> <85d21bbkqf.fsf@stephe-leake.org> <5570E86B.8070200@yandex.ru> <85iob2a2mm.fsf@stephe-leake.org> <55B2CDA4.8020207@yandex.ru> <868ua5caz6.fsf@stephe-leake.org> <55B441DD.9060806@yandex.ru> <86zj2jb1tx.fsf@stephe-leake.org> <55B517AC.5020401@yandex.ru> <86oaiybvbf.fsf@stephe-leake.org> <55B62B53.5060003@yandex.ru> <861tftaxgx.fsf@stephe-leake.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1438093158 25772 80.91.229.3 (28 Jul 2015 14:19:18 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 28 Jul 2015 14:19:18 +0000 (UTC) To: Stephen Leake , emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Jul 28 16:19:17 2015 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ZK5is-0004Rt-A0 for ged-emacs-devel@m.gmane.org; Tue, 28 Jul 2015 16:19:14 +0200 Original-Received: from localhost ([::1]:58890 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZK5ir-00076o-I0 for ged-emacs-devel@m.gmane.org; Tue, 28 Jul 2015 10:19:13 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:33234) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZK5ic-00074y-Vu for emacs-devel@gnu.org; Tue, 28 Jul 2015 10:18:59 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZK5iX-0002cD-5i for emacs-devel@gnu.org; Tue, 28 Jul 2015 10:18:58 -0400 Original-Received: from mail-wi0-x231.google.com ([2a00:1450:400c:c05::231]:35289) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZK5iW-0002c5-Vb for emacs-devel@gnu.org; Tue, 28 Jul 2015 10:18:53 -0400 Original-Received: by wibxm9 with SMTP id xm9so159557147wib.0 for ; Tue, 28 Jul 2015 07:18:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:subject:to:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-type:content-transfer-encoding; bh=+r3NHAAHZ9jSvqrJSdWM2VosoKu8ijzg10zM/9dR3C0=; b=EvoHH9sM4BiH9B2ca1GktXyj85miWnXO0+aq4J/e3dofFwJLyk+XbuAxhCVZd3Kxb2 FrfOqFz2Id1Zr6ZtGLJO8PeKP8tHI43dS/BIffqKDwwRkyRV2s1fKGutoCpSQlWg5OuK 6/5VwNTifW75n5N8UGzUQuTHVIxT6HPhgK0BeLFauMpzTW3cdLQ7XLHAUK3QvgtwUaRz celsblXUj+nrrxQ1Zf691pT0XqoaSutihM2Uq8pMrRRV9N3SXyXO6LUdFULi+SDXd2cb BOBgMgFGo9EvMBgaA2TobTJERFxoXNzXBM1McFZKJk0MVPsRGB63/hidzgm1bflL0RrQ PMRg== X-Received: by 10.180.78.35 with SMTP id y3mr34739381wiw.62.1438093132239; Tue, 28 Jul 2015 07:18:52 -0700 (PDT) Original-Received: from [192.168.0.185] (static-nbl2-118.cytanet.com.cy. [212.31.107.118]) by smtp.googlemail.com with ESMTPSA id nb9sm19278162wic.10.2015.07.28.07.18.50 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 28 Jul 2015 07:18:51 -0700 (PDT) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.0 In-Reply-To: <861tftaxgx.fsf@stephe-leake.org> X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2a00:1450:400c:c05::231 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:188129 Archived-At: On 07/28/2015 04:21 AM, Stephen Leake wrote: >> Could you give an example? > > Ada, gradle. I meant an example (or several) of those declarations from an actual project file. Here an excerpt from an imaginary Gemfile: gem 'foo', '~> 1.2.3' gem 'bar', path: '../bar' Having the latter kind of declaration might not be considered the best idea, but it's often nice to be able to do that. Anyway, I'm sure there are corresponding configurations in other ecosystems that are more idiomatic. > I don't know who this "we" is, but I usually structure a large project > as a main with several lower level libraries, all of which I maintain, > and I edit them all together to implement new functionality in main. So > that has to be a choice. IME, aside from a few libraries one (person/team/company) maintains themselves, there's also a long list of external dependencies. In the example above, 'bar' will be one of project-directory-roots, and 'foo' will only be in project-search-path. > Actually, 'xref-find-regexp' should be named 'project-find-regexp' (or > prj-find-regexp). Keep 'xref' for strictly cross-reference stuff; Sounds good to me. I'll make that change as soon as xref has a suitable public interface for that. > 'project' is for more general project stuff. It's also used in the xref-find-references implementations in elisp-mode and etags, which I'm inclined to converge into one default implementation that uses the info from the project package. I think that's fine. > Either that, or drop 'project' and just call it all 'xref'. project is foremost intended to be used for third-party code. It's a feature that's been requested for a while.