From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: =?utf-8?Q?Llu=C3=ADs?= Newsgroups: gmane.emacs.devel Subject: Re: IDE Date: Tue, 20 Oct 2015 14:37:05 +0200 Message-ID: <87r3kpwwb2.fsf@fimbulvetr.bsc.es> References: <561A6199.1020901@cumego.com> <561B9D87.70504@yandex.ru> <561C2C17.3090503@cumego.com> <561DC1CA.6090901@siege-engine.com> <561E3FB6.8010407@yandex.ru> <561EEFDE.7000809@gmail.com> <561F29D0.3070605@yandex.ru> <561FA79C.30207@gmail.com> <56200D07.30206@yandex.ru> <5620A99E.7080009@cumego.com> <5620D109.2010006@yandex.ru> <5620DCCD.8030809@cumego.com> <87y4f2u5ef.fsf@fimbulvetr.bsc.es> <5621C701.5030608@yandex.ru> <87d1wdo1la.fsf@fimbulvetr.bsc.es> <5622D5A5.80801@yandex.ru> <87fv18hwau.fsf@fimbulvetr.bsc.es> <562410AD.2020204@yandex.ru> <87mvvff1qy.fsf@fimbulvetr.bsc.es> <56258EC6.7090706@yandex.ru> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1445344650 18815 80.91.229.3 (20 Oct 2015 12:37:30 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 20 Oct 2015 12:37:30 +0000 (UTC) Cc: Eric Ludlam , =?utf-8?Q?Przemys=C5=82aw?= Wojnowski , emacs-devel@gnu.org To: Dmitry Gutov Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Oct 20 14:37:23 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 1ZoWAK-0001Wj-1C for ged-emacs-devel@m.gmane.org; Tue, 20 Oct 2015 14:37:20 +0200 Original-Received: from localhost ([::1]:45548 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZoWAJ-0006VX-E7 for ged-emacs-devel@m.gmane.org; Tue, 20 Oct 2015 08:37:19 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:37477) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZoWAF-0006VG-QA for emacs-devel@gnu.org; Tue, 20 Oct 2015 08:37:16 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZoWAC-0000nZ-HV for emacs-devel@gnu.org; Tue, 20 Oct 2015 08:37:15 -0400 Original-Received: from mout.gmx.net ([212.227.15.18]:49943) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZoWAC-0000nT-AH for emacs-devel@gnu.org; Tue, 20 Oct 2015 08:37:12 -0400 Original-Received: from localhost ([84.88.51.85]) by mail.gmx.com (mrgmx003) with ESMTPSA (Nemesis) id 0MZCQ8-1a7I0F1cyq-00Ky2n; Tue, 20 Oct 2015 14:37:07 +0200 Mail-Followup-To: Dmitry Gutov , =?utf-8?Q?Przemys=C5=82?= =?utf-8?Q?aw?= Wojnowski , Eric Ludlam , emacs-devel@gnu.org In-Reply-To: <56258EC6.7090706@yandex.ru> (Dmitry Gutov's message of "Tue, 20 Oct 2015 03:45:58 +0300") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) X-Provags-ID: V03:K0:rV3QCEEviYj4MbOwaKMg7TjwZDmG+iF3SmuUSMQGSLtPIcsj/FQ ljlvJKrgTFL5LTHSDor2MTd01Abypvv+hX1vQ/iVDwiP2/pp/x5P9rsg5JAIVwYnkiR1WUT IPCfrWroyPBaOyjS9b0S4rTo7Nsf4IIJfN/bdD0hG4sSr8F8oT3aIfv12d1F/dYwT4ced36 vxkQa8w4OMp08ziAqJzsQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:ynQoqSXg24Y=:vLS/t5BEdO6QxojFetuThn fs7a3GqG4TJESOU7tnbzWDzFgE751/O3jek0PZa52u45fbX6V+jJdqu0hMItvM872K90wiPfp d0skqBVzoIUk4mEQkTE6olkhsaT+5QfkZw/R6rNN/BbapE11Kfr6fFrVLbLv8VR5V7Zrx1qsr Ox6K88cd2zbsYAq4tt2dAOsni/DmrOXbQpR4EYSmblaN4A998tNvzt+yHR1TDJPTZzP+Cvx5J 5XPECnnZP7OZONKNvh8eFisa/dyylXOoc7pa0/j9HS6kGeDxML2ohFGvO+yc7YWvGU2U02b2n CYSkAiRfRUl8wYGMnw9xwte5fHpTn5oISBL4t6BC/h2GIquA4YHDmjFmrBn5v8jPLfM3qwMXT eqdg4qoQFiBtmyfdNsRR0AKAyEo527h1qVx2g8fvdh1GEInVhRXsjlJ9wsb/Lc1c1L/+od/HH iSxQwtaf9cVPHluCqE2i89pV8nhjDhen0U82+Ptkz5VSfVP11iNtFquG0RBpiY4x7xF9RWEQ3 v++w5xq/1wfAh+kOAsp38o45SpkPr3wLJlY3Ezp280F83ahaYoNLNcZwdacybAhCJTWCHpBmK SJXVu38l11FD4tsrBmSQMXr6Uwqgju+gA1eX+d9/vHR4pdMaKf4P5S/np+2fQ+1bP9gXJ4WMK 253FCTCLd05nCeY6PaqFRBxiwnbYW5D2/L4vWVQXRGChg4UAqnYSlUGx+D6B9/E0O+4xYfWWO pPKPebtp0RpY5A5qpBCVx5F6M0L5fEcSMVpi7MXrXW17JVYkXUP7wlsiIMUr78Ji38VkWYBu X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.15.18 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:192180 Archived-At: Dmitry Gutov writes: > On 10/19/2015 04:04 PM, Llu=C3=ADs wrote: [...] >> I think I did not explain myself well. I meant having one hook variable = for each >> public method of each service type. > Why aggregate them into service types, then? Just call each "public metho= d" (or > hook) a separate service. Just a matter of keeping tightly-related functionality together. [...] >> Ok, so the first time you call `project-current', the system can check a= ll >> project-types it knows about and see which ones apply to your file. From= that a >> project object object is created overlaying the matched project-types. N= ext time >> you request `project-current' a cached value can be returned, or maybe l= ooking >> at the value of some parent directory. > Caching is incidental. And I still don't know what "overlaying" is. In so= lid > details, I mean. Ok, a more specific example. Assume the service-type "service-type-symbols"= that provides a method to jump to symbols, and we're editing sources of the linux kernel. Now, we have the following service implementations for that service-type: * service-symbols-cscope: Use external database. * service-symbols-wisent: Parse source files, requires an implementation of "service-type-search-paths". And we also have the following project-types: * project-type-generic: * match: Return t if we can detect a project root using VC * service-types: * service-type-root: service-root-vc * project-type-generic-c: * match: It's unclear when to activate it * service-types: * service-type-symbols: service-symbols-cscope, service-symbols-wisent * project-type-linux: * match: We see a root directory for a Linux project * service-types: * service-type-root: service-root-linux * service-type-search-paths: service-search-paths-linux If we assume all project types match, the resulting "overlaid" project for = Linux would have the following service-types: * service-type-root: service-root-linux * service-type-search-paths: service-search-paths-linux * service-type-symbols: service-symbols-cscope, service-symbols-wisent If we were not editing some Linux directory: * service-type-root: service-root-vc * service-type-symbols: service-symbols-cscope Cheers, Lluis --=20 "And it's much the same thing with knowledge, for whenever you learn something new, the whole world becomes that much richer." -- The Princess of Pure Reason, as told by Norton Juster in The Phantom Tollbooth