From unknown Fri Sep 19 16:07:33 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#41955 <41955@debbugs.gnu.org> To: bug#41955 <41955@debbugs.gnu.org> Subject: Status: 28.0.50; Monorepos and project.el Reply-To: bug#41955 <41955@debbugs.gnu.org> Date: Fri, 19 Sep 2025 23:07:33 +0000 retitle 41955 28.0.50; Monorepos and project.el reassign 41955 emacs submitter 41955 Theodor Thornhill severity 41955 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 19 16:42:39 2020 Received: (at submit) by debbugs.gnu.org; 19 Jun 2020 20:42:39 +0000 Received: from localhost ([127.0.0.1]:56911 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jmNqQ-0002Jy-Sf for submit@debbugs.gnu.org; Fri, 19 Jun 2020 16:42:39 -0400 Received: from lists.gnu.org ([209.51.188.17]:40440) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jmNqP-0002Jq-En for submit@debbugs.gnu.org; Fri, 19 Jun 2020 16:42:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53126) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jmNqO-0008MY-Oo for bug-gnu-emacs@gnu.org; Fri, 19 Jun 2020 16:42:37 -0400 Received: from mail-40134.protonmail.ch ([185.70.40.134]:34117) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jmNqL-00071c-Qd for bug-gnu-emacs@gnu.org; Fri, 19 Jun 2020 16:42:36 -0400 Date: Fri, 19 Jun 2020 20:42:26 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=thornhill.no; s=protonmail; t=1592599350; bh=hEw1irZnT4c/KeGMMOvoEidZkl6UezmxeBIKAHv+xi0=; h=Date:To:From:Reply-To:Subject:From; b=dk4H38BOAVQh4T6ZfOItSgExWj2Vr5AvqzPArp4WEl5PSlI6rhrW64v6Y/MOchysY Lby08kskX/Papp3Ccm3u8uuSe97cIJRvsDWRtgOIrEUGL7mcifiSBBf7UoPS9yDVU6 pcCUMurNM+YFi8bzsDNYa/sxFEtcakNZHVd2VHXFhMu9XDUJcZocxnCF9F31mPfWgR zYQNcfSS3X8I4sjcMKJ6eCNDxFAoU6U8Ph0PVZatQtB5BJvyLHc6lfRJNfiarKfEYX aBkJvA3J9zh06MxvCdCDxbDH74QU9IkNW+EOEsm8d1hxs1wwTFvM9WVrPqRQf57izU mwaCX+wMGBxfw== To: bug-gnu-emacs@gnu.org From: Theodor Thornhill Subject: 28.0.50; Monorepos and project.el Message-ID: <87pn9un5xu.fsf@thornhill.no> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-1.2 required=7.0 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF shortcircuit=no autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on mail.protonmail.ch Received-SPF: pass client-ip=185.70.40.134; envelope-from=theo@thornhill.no; helo=mail-40134.protonmail.ch X-detected-operating-system: by eggs.gnu.org: First seen = 2020/06/19 16:42:31 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -37 X-Spam_score: -3.8 X-Spam_bar: --- X-Spam_report: (-3.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Theodor Thornhill Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) Hi! At work I've had the following issue. Assume we have some sort of gigarepo, like this maybe: gigarepo/ =E2=94=9C=E2=94=80=E2=94=80 clients =E2=94=82=C2=A0=C2=A0 =E2=94=9C=E2=94=80=E2=94=80 client1 =E2=94=82=C2=A0=C2=A0 =E2=94=9C=E2=94=80=E2=94=80 client2 =E2=94=82=C2=A0=C2=A0 =E2=94=9C=E2=94=80=E2=94=80 client3 =E2=94=82=C2=A0=C2=A0 =E2=94=94=E2=94=80=E2=94=80 client4 =E2=94=94=E2=94=80=E2=94=80 services =E2=94=9C=E2=94=80=E2=94=80 service1 =E2=94=9C=E2=94=80=E2=94=80 service2 =E2=94=9C=E2=94=80=E2=94=80 service3 =E2=94=94=E2=94=80=E2=94=80 service4 The services are made in different languages, say, some in c#, f#, java - as are clients, some are Typescript projects, some are JS etc etc. Everything is rooted in a ".git" in "gigarepo/", and there are no submodules or any fancyness. As project.el works now, there are several issues arising. I'll just note them down here, and probably split things up later, if that is ok. * Lsp server/client In most of the projects, the lsp servers are indexing from what they consider root. Typically a tsconfig.json, elm.json etc. They get confused, eglot a bit more than lsp-mode (it has its own root finding algorithm). What happens is they look in root (gigarepo/), and it has no executable for lsp-server. One solution is then to install the server in root, but then it indexes the whole thing, and gets super slow, and indexes a lot of unrelated stuff (I'm not even working on client 2-4.) =20 * Buffer switching Lets say several of the clients uses a module called AuthService.ts. If I'm working on several of these projects you get a lot of identical files, so it is a bit hit and miss. =20 * Grepping This one was the worst for me, since grepping was very slow given the size of the project, and grepping loads of unrelated files returns a lot of noise.=20 What would be nice is to be able to get the benefits of the vc-dir version of project.el, but not having to "git init" inside the child projects. More specifically, to be able to choose "project context", one as the closest project-root and one as the gigarepo project-root. Also, If I've worked on both a service and a client, running git or magit should probably be done from root rather than the subproject I am currently in, to get the whole context. Is there a way to do this? I realize this may be an odd situation, but it came up nonetheless. This report is getting long, and I think I'm already rambling a bit (and forgetting stuff.), so I'll leave it for now. Theo P.S: What I did to circumvent this (this is only a MVP, not at all optimized for anything): (defvar project-root-markers '("package.json" "tsconfig.json" "jsconfig.json" "elm.json" "*.sln") "Files or directories that indicate the root of a project.") (defvar project-exclusion-list '("node_modules" "target" "build" "package-lock.json" "elm-stuff") "Things not to be included in project-find-file.") (defun project-exclude-dirs () (mapcar (lambda (dir) (add-to-list 'vc-directory-exclusion-list dir)) project-exclusion-list)) (defun project-find-root (path) "Tail-recursive search in PATH for root markers." (let* ((this-dir (file-name-as-directory (file-truename path))) (parent-dir (expand-file-name (concat this-dir "../"))) (system-root-dir (expand-file-name "/"))) (cond ((project-root-p this-dir) (cons 'transient this-dir)) ((equal system-root-dir this-dir) nil) (t (project-find-root parent-dir))))) (defun project-root-p (path) "Check if current PATH has any of project root markers." (let ((results (mapcar (lambda (marker) (file-exists-p (concat path marker))) project-root-markers))) (eval `(or ,@ results)))) From debbugs-submit-bounces@debbugs.gnu.org Sat Jun 20 03:17:31 2020 Received: (at 41955) by debbugs.gnu.org; 20 Jun 2020 07:17:32 +0000 Received: from localhost ([127.0.0.1]:57185 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jmXkp-00052p-Ks for submit@debbugs.gnu.org; Sat, 20 Jun 2020 03:17:31 -0400 Received: from eggs.gnu.org ([209.51.188.92]:51482) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jmXkn-00052b-3c for 41955@debbugs.gnu.org; Sat, 20 Jun 2020 03:17:29 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:35963) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jmXkg-0005an-HV; Sat, 20 Jun 2020 03:17:22 -0400 Received: from [176.228.60.248] (port=4940 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1jmXkf-0001uf-WA; Sat, 20 Jun 2020 03:17:22 -0400 Date: Sat, 20 Jun 2020 10:17:12 +0300 Message-Id: <83r1uaw6iv.fsf@gnu.org> From: Eli Zaretskii To: Theodor Thornhill In-Reply-To: <87pn9un5xu.fsf@thornhill.no> (message from Theodor Thornhill on Fri, 19 Jun 2020 20:42:26 +0000) Subject: Re: bug#41955: 28.0.50; Monorepos and project.el References: <87pn9un5xu.fsf@thornhill.no> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 41955 Cc: 41955@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Fri, 19 Jun 2020 20:42:26 +0000 > From: Theodor Thornhill > > gigarepo/ > ├── clients > │   ├── client1 > │   ├── client2 > │   ├── client3 > │   └── client4 > └── services > ├── service1 > ├── service2 > ├── service3 > └── service4 > > The services are made in different languages, say, some in c#, f#, java - > as are clients, some are Typescript projects, some are JS etc etc. > > Everything is rooted in a ".git" in "gigarepo/", and there are no > submodules or any fancyness. > > As project.el works now, there are several issues arising. I'll just > note them down here, and probably split things up later, if that is ok. > > * Lsp server/client > In most of the projects, the lsp servers are indexing from what they > consider root. Typically a tsconfig.json, elm.json etc. They get > confused, eglot a bit more than lsp-mode (it has its own root finding > algorithm). What happens is they look in root (gigarepo/), and it has > no executable for lsp-server. One solution is then to install the > server in root, but then it indexes the whole thing, and gets super > slow, and indexes a lot of unrelated stuff (I'm not even working on > client 2-4.) > > * Buffer switching > Lets say several of the clients uses a module called AuthService.ts. > If I'm working on several of these projects you get a lot of identical > files, so it is a bit hit and miss. > > * Grepping > This one was the worst for me, since grepping was very slow given the > size of the project, and grepping loads of unrelated files returns a > lot of noise. > > > What would be nice is to be able to get the benefits of the vc-dir > version of project.el, but not having to "git init" inside the child > projects. More specifically, to be able to choose "project context", > one as the closest project-root and one as the gigarepo project-root. Would it help to have facilities of specifying the files in a project by starting with an empty project, and then adding the files one by one? Also, to be able to say that all the files in a given directory (optionally, only files that match some shell wildcard), recursively, should be added to a project? This would probably need a way of making the list of files/directories in a project persistent between sessions, because currently we rely on the filesystem or a VCS to record that. From debbugs-submit-bounces@debbugs.gnu.org Sat Jun 20 03:49:08 2020 Received: (at 41955) by debbugs.gnu.org; 20 Jun 2020 07:49:08 +0000 Received: from localhost ([127.0.0.1]:57212 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jmYFQ-0005oe-3Z for submit@debbugs.gnu.org; Sat, 20 Jun 2020 03:49:08 -0400 Received: from mail-40131.protonmail.ch ([185.70.40.131]:48233) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jmYFL-0005o6-J7 for 41955@debbugs.gnu.org; Sat, 20 Jun 2020 03:49:06 -0400 Date: Sat, 20 Jun 2020 07:48:53 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=thornhill.no; s=protonmail; t=1592639337; bh=ZigNKhgFqr/txE1dZ25+T47uFuX95Fn634aIKqZaKJ0=; h=Date:To:From:Cc:Reply-To:Subject:In-Reply-To:References:From; b=Nf53i2zJ6jL7Ijo17P0hpz+g3ZEIvnZwZkkfmJkStzrUOh2ccIRV0vvw6ar/HvRSy Ncsd73HnfrFm+UEJA7hBRWqPAcFmEgh60BqpVwgPXJh1HG8NM45TqwfAlul9WTJ42q Af0yuqbt3BQ2Z93Tia4aBYcZDn9EBMw1lP8UGom3HC/BdBHaBpq17exwlNmhRwZTOk +3W1L6j2F7nJg8D1M4GY2bQO5zpBy/xxp5zhBBElpMH/LQpFmAdYIaMfIyRMYJLJGP jUylZSwpOFP5UOdzZEzCqOcixEu6bmyXmWY3ADG9XLYU4eK4yg27hBqV69+qqtwMuP qArBcVsexqFog== To: Eli Zaretskii From: Theodor Thornhill Subject: Re: bug#41955: 28.0.50; Monorepos and project.el Message-ID: In-Reply-To: <83r1uaw6iv.fsf@gnu.org> References: <87pn9un5xu.fsf@thornhill.no> <83r1uaw6iv.fsf@gnu.org> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="b1_ozhXVbKJaIdbT72QzTJcrOa9cNpVJE65gADK4aA6xk" X-Spam-Status: No, score=-1.2 required=7.0 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,HTML_MESSAGE shortcircuit=no autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on mail.protonmail.ch X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 41955 Cc: 41955@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Theodor Thornhill Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) This is a multi-part message in MIME format. --b1_ozhXVbKJaIdbT72QzTJcrOa9cNpVJE65gADK4aA6xk Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 PiBXb3VsZCBpdCBoZWxwIHRvIGhhdmUgZmFjaWxpdGllcyBvZiBzcGVjaWZ5aW5nIHRoZSBmaWxl cyBpbiBhIHByb2plY3QKPiBieSBzdGFydGluZyB3aXRoIGFuIGVtcHR5IHByb2plY3QsIGFuZCB0 aGVuIGFkZGluZyB0aGUgZmlsZXMgb25lIGJ5Cj4gb25lPyBBbHNvLCB0byBiZSBhYmxlIHRvIHNh eSB0aGF0IGFsbCB0aGUgZmlsZXMgaW4gYSBnaXZlbiBkaXJlY3RvcnkKPiAob3B0aW9uYWxseSwg b25seSBmaWxlcyB0aGF0IG1hdGNoIHNvbWUgc2hlbGwgd2lsZGNhcmQpLCByZWN1cnNpdmVseSwK PiBzaG91bGQgYmUgYWRkZWQgdG8gYSBwcm9qZWN0PwoKWWVhaCEgSSBhY3R1YWxseSBzdWdnZXN0 ZWQgc29tZXRoaW5nIGxpa2UgdGhhdC4gSG93ZXZlciwgdGhpcyB3aWxsIG5vdCBmaXggdGhlIGlz c3VlIHdpdGggcHJvZ3JhbXMgbG9va2luZyBmb3IgYSBzcGVjaWZpYyBkaXJlY3RvcnkgZm9yIHJv b3QuIFN1Y2ggYXMgZWdsb3QgYW5kIHdoYXRldmVyLWxhbmd1YWdlLXNlcnZlci4KCj4gVGhpcyB3 b3VsZCBwcm9iYWJseSBuZWVkIGEgd2F5IG9mIG1ha2luZyB0aGUgbGlzdCBvZiBmaWxlcy9kaXJl Y3Rvcmllcwo+IGluIGEgcHJvamVjdCBwZXJzaXN0ZW50IGJldHdlZW4gc2Vzc2lvbnMsIGJlY2F1 c2UgY3VycmVudGx5IHdlIHJlbHkgb24KPiB0aGUgZmlsZXN5c3RlbSBvciBhIFZDUyB0byByZWNv cmQgdGhhdC4KClllYWgsIG1heWJlIHNvbWV0aGluZyBsaWtlIHRoYXQgdG9vLgpUaGVv --b1_ozhXVbKJaIdbT72QzTJcrOa9cNpVJE65gADK4aA6xk Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 ICAgIDxkaXY+PGJyPjwvZGl2PjxibG9ja3F1b3RlIGNsYXNzPSJwcm90b25tYWlsX3F1b3RlIiB0 eXBlPSJjaXRlIj5Xb3VsZCBpdCBoZWxwIHRvIGhhdmUgZmFjaWxpdGllcyBvZiBzcGVjaWZ5aW5n IHRoZSBmaWxlcyBpbiBhIHByb2plY3Q8YnI+Ynkgc3RhcnRpbmcgd2l0aCBhbiBlbXB0eSBwcm9q ZWN0LCBhbmQgdGhlbiBhZGRpbmcgdGhlIGZpbGVzIG9uZSBieTxicj5vbmU/ICBBbHNvLCB0byBi ZSBhYmxlIHRvIHNheSB0aGF0IGFsbCB0aGUgZmlsZXMgaW4gYSBnaXZlbiBkaXJlY3Rvcnk8YnI+ KG9wdGlvbmFsbHksIG9ubHkgZmlsZXMgdGhhdCBtYXRjaCBzb21lIHNoZWxsIHdpbGRjYXJkKSwg cmVjdXJzaXZlbHksPGJyPnNob3VsZCBiZSBhZGRlZCB0byBhIHByb2plY3Q/PGJyPjwvYmxvY2tx dW90ZT48ZGl2PlllYWghIEkgYWN0dWFsbHkgc3VnZ2VzdGVkIHNvbWV0aGluZyBsaWtlIHRoYXQu IEhvd2V2ZXIsIHRoaXMgd2lsbCBub3QgZml4IHRoZSBpc3N1ZSB3aXRoIHByb2dyYW1zIGxvb2tp bmcgZm9yIGEgc3BlY2lmaWMgZGlyZWN0b3J5IGZvciByb290LiBTdWNoIGFzIGVnbG90IGFuZCB3 aGF0ZXZlci1sYW5ndWFnZS1zZXJ2ZXIuJm5ic3A7PC9kaXY+PGJyPjxibG9ja3F1b3RlIGNsYXNz PSJwcm90b25tYWlsX3F1b3RlIiB0eXBlPSJjaXRlIj5UaGlzIHdvdWxkIHByb2JhYmx5IG5lZWQg YSB3YXkgb2YgbWFraW5nIHRoZSBsaXN0IG9mIGZpbGVzL2RpcmVjdG9yaWVzPGJyPmluIGEgcHJv amVjdCBwZXJzaXN0ZW50IGJldHdlZW4gc2Vzc2lvbnMsIGJlY2F1c2UgY3VycmVudGx5IHdlIHJl bHkgb248YnI+dGhlIGZpbGVzeXN0ZW0gb3IgYSBWQ1MgdG8gcmVjb3JkIHRoYXQuPGJyPjxicj48 L2Jsb2NrcXVvdGU+PGRpdj5ZZWFoLCBtYXliZSBzb21ldGhpbmcgbGlrZSB0aGF0IHRvby4mbmJz cDs8L2Rpdj48ZGl2PlRoZW88Y2FyZXQ+PC9jYXJldD48L2Rpdj48ZGl2Pjxicj48L2Rpdj4= --b1_ozhXVbKJaIdbT72QzTJcrOa9cNpVJE65gADK4aA6xk-- From debbugs-submit-bounces@debbugs.gnu.org Sat Jun 20 04:57:43 2020 Received: (at 41955) by debbugs.gnu.org; 20 Jun 2020 08:57:43 +0000 Received: from localhost ([127.0.0.1]:57303 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jmZJn-0007Sk-B6 for submit@debbugs.gnu.org; Sat, 20 Jun 2020 04:57:43 -0400 Received: from eggs.gnu.org ([209.51.188.92]:41280) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jmZJl-0007SW-7n for 41955@debbugs.gnu.org; Sat, 20 Jun 2020 04:57:42 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:36924) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jmZJf-0004AN-BX; Sat, 20 Jun 2020 04:57:35 -0400 Received: from [176.228.60.248] (port=3298 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1jmZJe-0001AH-7O; Sat, 20 Jun 2020 04:57:34 -0400 Date: Sat, 20 Jun 2020 11:57:26 +0300 Message-Id: <838sgiw1vt.fsf@gnu.org> From: Eli Zaretskii To: Theodor Thornhill In-Reply-To: (message from Theodor Thornhill on Sat, 20 Jun 2020 07:48:53 +0000) Subject: Re: bug#41955: 28.0.50; Monorepos and project.el References: <87pn9un5xu.fsf@thornhill.no> <83r1uaw6iv.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 41955 Cc: 41955@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Sat, 20 Jun 2020 07:48:53 +0000 > From: Theodor Thornhill > Cc: 41955@debbugs.gnu.org > > Would it help to have facilities of specifying the files in a project > by starting with an empty project, and then adding the files one by > one? Also, to be able to say that all the files in a given directory > (optionally, only files that match some shell wildcard), recursively, > should be added to a project? > > Yeah! I actually suggested something like that. However, this will not fix the issue with programs looking for a > specific directory for root. Such as eglot and whatever-language-server. They will need to learn to use the facilities we provide to define a project in terms other than just the root directory. From debbugs-submit-bounces@debbugs.gnu.org Sat Jun 20 19:58:57 2020 Received: (at 41955) by debbugs.gnu.org; 20 Jun 2020 23:58:58 +0000 Received: from localhost ([127.0.0.1]:58939 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jmnNx-0002Gi-Mb for submit@debbugs.gnu.org; Sat, 20 Jun 2020 19:58:57 -0400 Received: from relay11.mail.gandi.net ([217.70.178.231]:40227) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jmnNv-0002GR-7T for 41955@debbugs.gnu.org; Sat, 20 Jun 2020 19:58:56 -0400 Received: from mail.gandi.net (m91-129-108-6.cust.tele2.ee [91.129.108.6]) (Authenticated sender: juri@linkov.net) by relay11.mail.gandi.net (Postfix) with ESMTPSA id C0C8E100003; Sat, 20 Jun 2020 23:58:47 +0000 (UTC) From: Juri Linkov To: Theodor Thornhill Subject: Re: bug#41955: 28.0.50; Monorepos and project.el Organization: LINKOV.NET References: <87pn9un5xu.fsf@thornhill.no> Date: Sun, 21 Jun 2020 02:29:46 +0300 In-Reply-To: <87pn9un5xu.fsf@thornhill.no> (Theodor Thornhill's message of "Fri, 19 Jun 2020 20:42:26 +0000") Message-ID: <87imflb9jp.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 41955 Cc: 41955@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) > What would be nice is to be able to get the benefits of the vc-dir > version of project.el, but not having to "git init" inside the child > projects. More specifically, to be able to choose "project context", > one as the closest project-root and one as the gigarepo project-root. Isn't this the same problem that we discussed recently in bug#41572 to define a project's root using a special file .project or more generally .dir-locals.el. From debbugs-submit-bounces@debbugs.gnu.org Sat Jun 20 21:23:21 2020 Received: (at 41955) by debbugs.gnu.org; 21 Jun 2020 01:23:21 +0000 Received: from localhost ([127.0.0.1]:58997 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jmohc-0004Jx-R1 for submit@debbugs.gnu.org; Sat, 20 Jun 2020 21:23:21 -0400 Received: from mail-wm1-f42.google.com ([209.85.128.42]:55784) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jmohY-0004Jh-UI for 41955@debbugs.gnu.org; Sat, 20 Jun 2020 21:23:19 -0400 Received: by mail-wm1-f42.google.com with SMTP id g75so3701126wme.5 for <41955@debbugs.gnu.org>; Sat, 20 Jun 2020 18:23:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=ezZrWUQ7lFP8t8GWlYI8c6l1yKUfiLJUapg7FBEDiGk=; b=l4WaVczZR+K+868AeB+nK5aIi5l+d+Yo5nSjpC7fMlphyv0T9DwejuzELAlCFjSnTi UTvowZUL9f8JN9Ci2aMSaMOb9PL0ZLCCoNyPo1bfPAsXOMbLMzAfdiQEszM1hJsZ0STZ gvHCEVNNbQa8pB04CVU7KTuOKq0XtYW3Q4Xs4TNg8wRtwc2odXMi+tji440sz0S/Bn3M mclXiY8Ewpqo9ffPZWsii4kthauY9QCHTBxAzpYYoa+NvrxqsB7MPt9Es4e+ted0XCUv wJOoZZBv+1AqiiuHGR77sUitLoMW7l86xZSGv1lW020Mp9mPe9wfoIJlkGmzq+yh4n3S fHvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:to:cc:references:from:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=ezZrWUQ7lFP8t8GWlYI8c6l1yKUfiLJUapg7FBEDiGk=; b=aqBvfegNgc/DgauBi3/qq5H4LMMFdodWvVKfiqWpzbEHQVJ/QymS93asJuU222m91h LijQGYL8fDQYPiw++i5gC4BvIIoikXw1pfomDJkBuOGQ1kCd7CdWSH0IXJHn71jJnehk +Tg65i+Bv3Lg9wWbPmKgHZurL7kZ1aO7ZYYPui4CgYSFquE+/Vs5dnreMHGKW2UpxYCm sQU9qo0w8FAc7mjoOfVRvQGu78fYVhiLHnS0FwVgWSM9Ws0al1xeHkcSmsQzbv3VAXaW 7DLerjXz26LBlXA5Rt3T95tQX1aXJfwweuy3URaae2JvFL0N58AdTDSolcIGO8DeeJme po8Q== X-Gm-Message-State: AOAM531u2cko1c0aWTFU1d9pe18QdG7czbl5gkALooWZCN7Gdj49K9q5 fg5h0fv7KOLfhnbPKaVeLFv5pquY X-Google-Smtp-Source: ABdhPJwvyiQZCQT7oI5EarbSkvM989p8HaKwE8kAgVZjnQ28oNbEjO7mnrVnLcQqvlOGSz/i1Bhz3Q== X-Received: by 2002:a1c:9ec5:: with SMTP id h188mr10911027wme.9.1592702591119; Sat, 20 Jun 2020 18:23:11 -0700 (PDT) Received: from [192.168.0.3] ([66.205.73.129]) by smtp.googlemail.com with ESMTPSA id v6sm13173085wrf.61.2020.06.20.18.23.10 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 20 Jun 2020 18:23:10 -0700 (PDT) Subject: Re: bug#41955: 28.0.50; Monorepos and project.el To: Juri Linkov , Theodor Thornhill References: <87pn9un5xu.fsf@thornhill.no> <87imflb9jp.fsf@mail.linkov.net> From: Dmitry Gutov Message-ID: Date: Sun, 21 Jun 2020 04:23:09 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 MIME-Version: 1.0 In-Reply-To: <87imflb9jp.fsf@mail.linkov.net> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: 41955 Cc: 41955@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.5 (/) On 21.06.2020 02:29, Juri Linkov wrote: > Isn't this the same problem that we discussed recently in bug#41572 to > define a project's root using a special file .project or more generally > .dir-locals.el. Perhaps. But as a monorepo with lots of files, this project (or a set of projects) would be particularly susceptible to the problem of slow file listing if the new backend doesn't reuse 'git ls-files' somehow, or implements some fast strategy of its own. From debbugs-submit-bounces@debbugs.gnu.org Sat Jun 20 21:25:21 2020 Received: (at 41955) by debbugs.gnu.org; 21 Jun 2020 01:25:21 +0000 Received: from localhost ([127.0.0.1]:59001 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jmojZ-0004N1-8F for submit@debbugs.gnu.org; Sat, 20 Jun 2020 21:25:21 -0400 Received: from mail-wr1-f43.google.com ([209.85.221.43]:46086) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jmojW-0004Mj-AX for 41955@debbugs.gnu.org; Sat, 20 Jun 2020 21:25:19 -0400 Received: by mail-wr1-f43.google.com with SMTP id x6so13246719wrm.13 for <41955@debbugs.gnu.org>; Sat, 20 Jun 2020 18:25:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=kN+tZTvOh96BYaXgBwou3H6YctyMuOHIRjL9w+I9Kv0=; b=ulR1DfQopC7h9c9TwdioRfvBbbl74taIDwDu5n0WkGeR29iCUNBwyBGYG7oCaT6Kcp Z4GCY76sbdNJZgLgMqGgamzj957aJ2U2Knbb9SEy3KfP9Mt6BWmIh1VzevPBGxya0D9m h1V5zg2qJWpSShi1QwCc7QVv4t5q/TriTKDil9Ue1hxK17K/t4zMvGCYTKrfEhIfaE8P VP3mN2utgc6my2w/D3Jn91cHgVxiSxfSYp0EE5a36o1CU6tFCDdK3WsXrbJ33xCp2fNu /NIdoH3aM/x/J9eLFKUpYVgi9bpZ+reRfadBr9VJuXODxZ9laiiC2OqJUP2PJW7jdDCr Ma4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:to:cc:references:from:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=kN+tZTvOh96BYaXgBwou3H6YctyMuOHIRjL9w+I9Kv0=; b=RDpuJkNMwEK1Bha86+ZXEZeYZErZE827k46BCPxt8y0Rrr2Vaf7P0xH9/vTPwutV1Q 4SNwO296PuYvW1vn/gvrCCQxeBQfX6GjpvhcrHzTuhqd8EyvR4jOc+nZMBdU9a28oXGW BKFdGIdfg02slWQyEpFBooYwEBMNJnVRWWblghATiU06pNtExSqZnGmqXPhbepQfhJv8 VJArNM1XQZIsiyBwJoNEcVwRq8mmEkk3LRl1HMXsQZKsWc48TyYbgNYBpyj6fEv/HT4A p94caUtDUrkaoEMFkV9B/HnH28IdqEVKPyBpWBbcsn6QBLvQY+mS+VpbPjDDP6H1zkqi gDGw== X-Gm-Message-State: AOAM533OgAEoEytzcfYGpNxJS/pjjf7Za+YLjjDFXF+L8Y5gYaq9Hn0C NrNfYF1rosLWlEmVq0UnbHumk6Os X-Google-Smtp-Source: ABdhPJx8bInYvy8hL7S55JL0D1eT1ied2vjvVfOFTNnKuOqS73qAMKAD1jbzNgyz6g0fvdH2VdARXQ== X-Received: by 2002:adf:b608:: with SMTP id f8mr10373207wre.363.1592702712260; Sat, 20 Jun 2020 18:25:12 -0700 (PDT) Received: from [192.168.0.3] ([66.205.73.129]) by smtp.googlemail.com with ESMTPSA id b19sm18856966wmj.0.2020.06.20.18.25.11 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 20 Jun 2020 18:25:11 -0700 (PDT) Subject: Re: bug#41955: 28.0.50; Monorepos and project.el To: Eli Zaretskii , Theodor Thornhill References: <87pn9un5xu.fsf@thornhill.no> <83r1uaw6iv.fsf@gnu.org> <838sgiw1vt.fsf@gnu.org> From: Dmitry Gutov Message-ID: Date: Sun, 21 Jun 2020 04:25:09 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 MIME-Version: 1.0 In-Reply-To: <838sgiw1vt.fsf@gnu.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: 41955 Cc: 41955@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.5 (/) On 20.06.2020 11:57, Eli Zaretskii wrote: > They will need to learn to use the facilities we provide to define a > project in terms other than just the root directory. Eglot just cares about the return value of project-root. From debbugs-submit-bounces@debbugs.gnu.org Sat Jun 20 21:48:20 2020 Received: (at 41955) by debbugs.gnu.org; 21 Jun 2020 01:48:20 +0000 Received: from localhost ([127.0.0.1]:59025 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jmp5o-0004xo-DG for submit@debbugs.gnu.org; Sat, 20 Jun 2020 21:48:20 -0400 Received: from mail-wr1-f47.google.com ([209.85.221.47]:34240) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jmp5m-0004xb-B0 for 41955@debbugs.gnu.org; Sat, 20 Jun 2020 21:48:18 -0400 Received: by mail-wr1-f47.google.com with SMTP id v3so5812042wrc.1 for <41955@debbugs.gnu.org>; Sat, 20 Jun 2020 18:48:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:to:references:cc:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=tENW+FSZ3HE+SSX5zHhF9bWZalB1ddMeLs0DFt6qLhI=; b=LJM7tYjJiVFdXf6fzbqnOzg94bsctZy19L8d8Nk/6P8FPgRYtE7kn76Trx47o131vN +r1OcZ1ir4tnNQBx1LZvs4nJBiOh21oCneaTqE/CdfYa4Ue7ogsJk+pJi+mOLeicdfKv KM8fICGiVgEIr4WEYZ+zipPQP9hh+A2l8z4YQFs22LuSxDKcf/cfue2okKPqyqTjzEBb jQQxWVCf51LpgDzEToDXQyOg//M+fb6+8EUulDMf/S7cJlMCFUy7oIXV8QLWDTzYT1DZ 7A5NeghBVxPGwXAnYWr7S4Tr4Wc+V6Ey9wDJeJMD0ScslZIxLRSbJuLX4cIB8QxLgQLs NWLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:to:references:cc:from:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=tENW+FSZ3HE+SSX5zHhF9bWZalB1ddMeLs0DFt6qLhI=; b=YLnxQDmNTts16QqoOoWPiRFhnq6E1R42GiHz9Ffm1gA7IDCceni5rrSN5N1ReOrq6T Y71jtOfWUf3v6QtOZMGV1NpLs7vGTPPRMZJ7faABDuh0WbtoiU2z4+ktAoCohkRWJLE7 YV5Gk7EHoUojsitKR5YKrO52Mc2TacRmcY6znBT+OueAHt2gfu3cZmrVB1OZ7JYz/VcF HEvEddc3na0tW0HMDHJSqbS3PO/fWZEM7+w1nPphbD/hA/fC0yDz3nPu0s5spXmpZ/S4 I1JL72AwlDoeBJ4t/9lVbFMUv2avTmmIOLTqo5WSXXrO778PXCAXJqCNEIgbb/ETKk8n K+jQ== X-Gm-Message-State: AOAM532hWpQ6x1bOOf4++puokRKCUOB6WZrENoWT39mu+M+iuo/bdz03 IC5aOaG3BFGUo/LMRK7Vw0o= X-Google-Smtp-Source: ABdhPJxGtaWSUumGvX/x1yH26eIdFipmIbSf7pgpLRfH+HL7PtslmVOynlp/VAL6+ZjPmspGgJtfjw== X-Received: by 2002:adf:8287:: with SMTP id 7mr12331641wrc.124.1592704092361; Sat, 20 Jun 2020 18:48:12 -0700 (PDT) Received: from [192.168.0.3] ([66.205.73.129]) by smtp.googlemail.com with ESMTPSA id i19sm4938716wrb.56.2020.06.20.18.48.10 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 20 Jun 2020 18:48:11 -0700 (PDT) Subject: Re: bug#41955: 28.0.50; Monorepos and project.el To: Theodor Thornhill , 41955@debbugs.gnu.org References: <87pn9un5xu.fsf@thornhill.no> From: Dmitry Gutov Message-ID: <1d3ed076-692f-b6e2-2fb3-83593561e33a@yandex.ru> Date: Sun, 21 Jun 2020 04:48:09 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 MIME-Version: 1.0 In-Reply-To: <87pn9un5xu.fsf@thornhill.no> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: 41955 Cc: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.5 (/) On 19.06.2020 23:42, Theodor Thornhill wrote: > At work I've had the following issue. Assume we have some sort of > gigarepo, like this maybe: > > gigarepo/ > ├── clients > │   ├── client1 > │   ├── client2 > │   ├── client3 > │   └── client4 > └── services > ├── service1 > ├── service2 > ├── service3 > └── service4 > > The services are made in different languages, say, some in c#, f#, java - > as are clients, some are Typescript projects, some are JS etc etc. > > Everything is rooted in a ".git" in "gigarepo/", and there are no > submodules or any fancyness. > > As project.el works now, there are several issues arising. I'll just > note them down here, and probably split things up later, if that is ok. Thank you for the report and the description. Before moving on to more complete solutions, here are some initial comments: > * Lsp server/client > In most of the projects, the lsp servers are indexing from what they > consider root. Typically a tsconfig.json, elm.json etc. They get > confused, eglot a bit more than lsp-mode (it has its own root finding > algorithm). What happens is they look in root (gigarepo/), and it has > no executable for lsp-server. One solution is then to install the > server in root, but then it indexes the whole thing, and gets super > slow, and indexes a lot of unrelated stuff (I'm not even working on > client 2-4.) I think Eglot is wrong in simply defaulting to project-root, without looking for tsconfig.json, etc. It would be pretty easy to implement, and would bring it closer to VS Code's behavior in this aspect (I think). But that would require it to maintain a list of such files. > * Buffer switching > Lets say several of the clients uses a module called AuthService.ts. > If I'm working on several of these projects you get a lot of identical > files, so it is a bit hit and miss. Uniquify should help, but yeah, it sounds like a pain point indeed. > * Grepping > This one was the worst for me, since grepping was very slow given the > size of the project, and grepping loads of unrelated files returns a > lot of noise. This is just a small step, but have you tried the patch here (with rg)? https://lists.gnu.org/archive/html/emacs-devel/2020-06/msg00547.html > What would be nice is to be able to get the benefits of the vc-dir > version of project.el, but not having to "git init" inside the child > projects. More specifically, to be able to choose "project context", > one as the closest project-root and one as the gigarepo project-root. Here's some code based on yours. Also rough and unofficial, but should hopefully be faster. (defvar project-root-markers '("package.json" "tsconfig.json" "jsconfig.json" "elm.json" "*.sln") "Files or directories that indicate the root of a project.") ;; Probably better in .dir-locals.el. (setq project-vc-ignores '("node_modules" "target" "build" "package-lock.json" "elm-stuff")) (defun project-find-nomono (dir) (let ((root (locate-dominating-file dir (lambda (d) (let ((default-directory d)) (seq-some #'file-expand-wildcards project-root-markers)))))) (when (and root (ignore-errors (vc-responsible-backend root))) (cons 'vc root)))) (add-hook 'project-find-functions #'project-find-nomono) From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 22 13:17:54 2020 Received: (at 41955) by debbugs.gnu.org; 22 Jun 2020 17:17:54 +0000 Received: from localhost ([127.0.0.1]:34457 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jnQ4w-00054s-AF for submit@debbugs.gnu.org; Mon, 22 Jun 2020 13:17:54 -0400 Received: from mail-ej1-f41.google.com ([209.85.218.41]:36653) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jnQ4r-00054c-K2 for 41955@debbugs.gnu.org; Mon, 22 Jun 2020 13:17:52 -0400 Received: by mail-ej1-f41.google.com with SMTP id dr13so18781704ejc.3 for <41955@debbugs.gnu.org>; Mon, 22 Jun 2020 10:17:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:face:mime-version; bh=fuhwgd7P+eI/1Ie3I/cKyruGk6RbUJ26d6D+KcQaW4w=; b=OxfoUd91puyEFuwBdkp11ZtAalGaCS9Ob7h5tkdNIniuuCZieFI0Em2nQ75nko+687 sLW1Ms1cSLmfE8D/dY+PhD0VVJ9RJ8WPAc4IYS8sS5TD+1TF5MOuAl/E4uUThenCGbDg 5Ba4N3Um8vtzZeSu+M2cIo61jLhC/Zk4tK3KOF4uZnDo+jIN7btce5HXmq+xufsYXQBC 8m1ApFzNRjTvM5BZz+1aZ7/GVwbpOnsJMsqulFmxV1iuWAKqgWMHi/mCkh9eTzkZTGrR 60IDOIG0YLRSUEP6184rAfsejF3nIGSVhB3nzkvXu+5a8svH+9r7osDk7i10AU2ySM3g Fikw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:face:mime-version; bh=fuhwgd7P+eI/1Ie3I/cKyruGk6RbUJ26d6D+KcQaW4w=; b=tywW0TP8QdVH/oTiZSfoZVigAN0AqvOZkHrvrw8wfTPr/Lze4v4nKx/gMZIToevfjt x0O2UvRcYGV0svqu9zOX1eQP5VVmTTuneLPlht9l3qqLsIEy16rNH7SOdKv5lr7P3QiD bWUnpH4/FKVOOhbcj3R+AiTwo+ghUZZnq57jt1yT11k9Y/VS1krZMwiSzhdJHj4d0nBq mtqjhqb7JJkClZttiE9fsu+OWbjJUJ+TxcXf19MDW3HI4ihuY9PPp1FRtszo+QMz9uIt O5e+utl59ROZ2nTd4Gkc08Zu4N/ylTX2p88aFZeJSX00X2EQe/0N5HR9YkiKNugRDAGm KcYg== X-Gm-Message-State: AOAM533ubAV0eDD4VjepjEAqUjFaOjZaStXvxcWLBwmcZqEwx3bgndWP qxCGW/rQsC9P23MIPbLO2Eg= X-Google-Smtp-Source: ABdhPJzXQs0mLEm/UgX6WPDrbfT2kpSAx6DVZXNCms/4mqeWLGtpEH7HvotcW01R/j95YsXiLuFxRA== X-Received: by 2002:a17:906:899:: with SMTP id n25mr15665840eje.298.1592846263766; Mon, 22 Jun 2020 10:17:43 -0700 (PDT) Received: from betli.gmail.com (catv-89-135-146-28.catv.broadband.hu. [89.135.146.28]) by smtp.gmail.com with ESMTPSA id o14sm1842743eja.121.2020.06.22.10.17.41 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 22 Jun 2020 10:17:43 -0700 (PDT) From: Felician Nemeth To: 41955@debbugs.gnu.org Subject: Re: bug#41955: 28.0.50; Monorepos and project.el References: <87pn9un5xu.fsf@thornhill.no> <83r1uaw6iv.fsf@gnu.org> Date: Mon, 22 Jun 2020 19:17:41 +0200 In-Reply-To: (Theodor Thornhill's message of "Sat, 20 Jun 2020 07:48:53 +0000") Message-ID: <87pn9rggui.fsf@betli.tmit.bme.hu> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAgMAAAAqbBEUAAAABGdBTUEAALGPC/xhBQAAACBj SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX5+fmhoaEwMDD/ ///TMNVWAAAAAWJLR0QDEQxM8gAAAAlwSFlzAAAPEgAADxIBIZvyMwAAAAd0SU1FB+AICBUfHgLs gGoAAAGXSURBVCjPRdK/b5tAFAfw753gBEwM2ApMbuVIqf+Ko0qiyhOu4sj2xJBYMn/FUdX7UUUZ OjHgyvf+yj6IcW6Bjx53934ADEvs8bmEr8UVoTYTOyJO9KoYsVofN8kILdbeJ8Li6YpZWop4xOK0 VdfIoXmkHn5/5D7/Ts/8THacSqnkKTcMTxgUkVzFnEIRTKwwYYSCvzfg16f0i8YApW/XG/Pm8R49 dXjxKmRnxv3OwooQWcv4RUYem1fsNe/WU63uk7AmYxk78y32/ee2tZB4fO+WcZ7lnIGEolXW1EGw LfkSuQ0XTgRefgNlfNwRNV6QhBxJ8JNxTMUPyBqTd0bjaAP5G7NJRU39z80hLOZTjqB7K3tEEFSj aEsuQew6qBxxyhHjVUR7H7NpC9iHJZGLMCEuweqAqE1BHbfK2oRIz9EHYA/+wiFWru9smeVfuWNZ 2+NFtX80UA1TvJNdytM4DwO4kY7bJz8Qcd0G0ceslZGkkeoBsjUHwF1+jjM3XHaXEZ7mGLfwPFO+ RV9QLY2iEdmDo78D/gNPaXVYqd+pyQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNi0wOC0wOFQyMzoz MDoyOCswMjowMGy/yHYAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTYtMDgtMDhUMjM6MzA6MjgrMDI6 MDAd4nDKAAAAAElFTkSuQmCC MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 41955 Cc: Eli Zaretskii , Theodor Thornhill , Dmitry Gutov X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) >> Would it help to have facilities of specifying the files in a project >> by starting with an empty project, and then adding the files one by >> one? Also, to be able to say that all the files in a given directory >> (optionally, only files that match some shell wildcard), recursively, >> should be added to a project? I'm not completely sure, because I haven't really used EDE (the Emacs Development Environment), but I think you can specify a project like that in EDE. And project.el supports EDE if I recall correctly. So maybe this complex "monorepo" use-case is already covered by existing features of Emacs. From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 22 17:06:14 2020 Received: (at 41955) by debbugs.gnu.org; 22 Jun 2020 21:06:14 +0000 Received: from localhost ([127.0.0.1]:34707 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jnTdu-0002NA-0K for submit@debbugs.gnu.org; Mon, 22 Jun 2020 17:06:14 -0400 Received: from mail-wr1-f45.google.com ([209.85.221.45]:44449) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jnTdq-0002Ms-3P for 41955@debbugs.gnu.org; Mon, 22 Jun 2020 17:06:12 -0400 Received: by mail-wr1-f45.google.com with SMTP id b6so18165277wrs.11 for <41955@debbugs.gnu.org>; Mon, 22 Jun 2020 14:06:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=NFLUT5IorXAAD9kTqLYUo1/WR+tKaeBJz+CP7JpHOkA=; b=dTM6wGYAqDqJuUeHibVtXVALsyfONshJHeeDiB56kCtfv/szLgaXImQLqlaI/6O3gU YI2Hy5eeEQnpiiidXqU7iaQ+UqGcKgss4tbKcbLwNP0r/AyWopGWqkF+OkL2Uc1/l8U6 NcTrhbXJfccy/O3ndeUkOph277q3xYGjEj5DqZ2z3N7DyXzjY4nWQFhI4jfKRBJz1l2P /nPHfBBjp1k7uiC6aIYVdh0COTtQ96FTOIokQ0/IIpZ5WYo6vn9jUnZwnIQFFZDUMzpF DdjVwBjhVPSGWLWDGuZ2xvZJ29VK7rvwnYXi7o6/FBWrGdkDO3VYhMFiTd091q5YNeEX kc1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:to:cc:references:from:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=NFLUT5IorXAAD9kTqLYUo1/WR+tKaeBJz+CP7JpHOkA=; b=tmqCpRwOkF4Wq2/DKlsrPMyjGgoXNNSSD/UiSUbtGHDenq7dDY7RGx+S07KiMum6RE zulh5zA/QSg1XmfvjFs/QpYO3zdFIuPtFH5kZoM70y/NTfU17gQDTQhnpDs1vKNk3EMt AhjetdQj1NRO8b2/8QJO14LKNgiTYFD8yppeZ8H2jsFKMkJOSqdD2KVpLGjB436Hmakb Gb1zcupF+ZraCIiYAQhDCe89AmrvedEgM7aa7A2LOuLuyl80jNWSYPQCclMdyR3j9GzM obTH2OfBebbymxCJuq60mgC/K2JM05FwSHCwP+u0QtqUz1USld6WXJCMZdUBNq3VC0uj Trqg== X-Gm-Message-State: AOAM533XCiyQbv3lHTyXXTDs3wPCc74tQ5UUK1P6nlnEAEXD5NpZImEl HNSpOjmLd48JVH0/DYWQcbw= X-Google-Smtp-Source: ABdhPJwFhbOZykBhxYSwZcAbrO1XRH7p2HKwjfIWZ5VVZIKtsw94csdueXq/whrE2qVubI2wz2UYUA== X-Received: by 2002:a5d:4008:: with SMTP id n8mr20726338wrp.82.1592859964052; Mon, 22 Jun 2020 14:06:04 -0700 (PDT) Received: from [192.168.0.3] ([66.205.73.129]) by smtp.googlemail.com with ESMTPSA id f2sm823424wmj.39.2020.06.22.14.06.02 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 22 Jun 2020 14:06:03 -0700 (PDT) Subject: Re: bug#41955: 28.0.50; Monorepos and project.el To: Felician Nemeth , 41955@debbugs.gnu.org References: <87pn9un5xu.fsf@thornhill.no> <83r1uaw6iv.fsf@gnu.org> <87pn9rggui.fsf@betli.tmit.bme.hu> From: Dmitry Gutov Message-ID: <729a5f46-ddbd-4c50-50fc-c695865cc3e3@yandex.ru> Date: Tue, 23 Jun 2020 00:06:00 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 MIME-Version: 1.0 In-Reply-To: <87pn9rggui.fsf@betli.tmit.bme.hu> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 41955 Cc: Theodor Thornhill X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 22.06.2020 20:17, Felician Nemeth wrote: > I'm not completely sure, because I haven't really used EDE (the Emacs > Development Environment), but I think you can specify a project like > that in EDE. And project.el supports EDE if I recall correctly. So > maybe this complex "monorepo" use-case is already covered by existing > features of Emacs. Interesting thought. The current EDE integration is pretty basic (only project-root, basically), but it can be extended fairly quickly, if an EDE project contains relevant data. But that doesn't seem to be the case: it seems to me that EDE uses the same "one directory tree" model for the contents of the project. And the :include-path and :system-include-path keys we see in the definition examples are about code analysis (where to find external type and function definitions), and not about describing the main bulk of the files belonging to the project.