unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "João Távora" <joaotavora@gmail.com>
To: Dmitry Gutov <dgutov@yandex.ru>
Cc: Danny Freeman <danny@dfreeman.email>,
	 Eric Abrahamsen <eric@ericabrahamsen.net>,
	 emacs-devel <emacs-devel@gnu.org>
Subject: Re: Eglot, project.el, and python virtual environments
Date: Sun, 20 Nov 2022 20:35:36 +0000	[thread overview]
Message-ID: <875yf9bbzb.fsf@gmail.com> (raw)
In-Reply-To: <2ba04533-097a-a1da-ff3f-2c9506fd488e@yandex.ru> (Dmitry Gutov's message of "Sun, 20 Nov 2022 17:36:00 +0200")

Dmitry Gutov <dgutov@yandex.ru> writes:

> On 20.11.2022 03:51, João Távora wrote:
>> Danny Freeman <danny@dfreeman.email> writes:
>> 
>>> Dmitry Gutov <dgutov@yandex.ru> writes:
>>>
>>>> Then your solution should work okay, but it also means it belongs to the category of Eglot hacks (as
>>>> opposed to project.el hacks).
>>>
>>> It is absolutely an Eglot hack :)
>> I don't consider this a hack at all.  Not only does it work okay,
>> it's
>> how supposed to work.
>
> It's a hack because it's a common case which every affected user ends
> up fixing through editing their init file.

So is every use of add-hook, for that matter.  Emacs has an init file
because it's not Microsoft Word.  The code you're describing is exactly
why I added the variable and how I intended it to work when I added 1.5
years ago.  That's as far as I'll wade into puerile arguments over
who/what is a "hack".

>> Most of the time, the default project-finding methods bundled with Emacs
>> work extremely well, in fact so well that it seems almost offensive when
>> they don't.  But it's crucial to recognize that this is not just because
>> of LSP reasons.  For example, simply because of the relatively poor
>> performance of the default project.el VC backend in a gargantuan repo of
>> 400k files, I've had to define a different notion of "project" recently.
>
> Or the OS used, with its different performance characteristics. And
> the performance of the W32 Emacs port as well. Anyway, this is beside
> the point, since we'll always want more improvements to performance,
> of course, to be able to handle larger projects on slower systems.

You shouldn't be writing performance off as a detail.  You can't just
wish it away, or think users will change OSs soon.  You should instead
think of solutions that help manage size and complexity.

But it's not just performance.  For example, in this particular project,
it makes sense, by default, to grep the superproject, but C-x f in the
subprojects.  Lack of subproject support in project.el means I have to
work around this with defadvice.

> If you want more food for thought, look up my previous messages in
> this thread regarding "subprojects". And others' too.

What about them?  I've said all I wanted to say on the matter.  If you
to make some specific point, make a specific point.

> In this thread people are asking for a change in Eglot's behavior, and
> not in project-related commands. For example, to keep
> 'project-find-file' listing all files in the parent project, not just
> in the current subproject.

People report problem they are facing.  They are free to suggest a real
or vapourware design to fix them.  My task, as Eglot maintainer, is to
understand the problems, consider the suggestions, and often point
people to real existing solutions.  In this case, Danny figured out
exactly how it's supposed to work from the docstrings of
eglot-lsp-context and eglot--current-project.  All that's needed is to
document it in the manual.  Alternatively, I've suggested that Danny's
code be added to python.el, so that the user need not change init files.

And you're of course free to make some egloss.el library that requires
eglot.el and has all the LSP paraphernalia you think is missing from
Eglot (maybe you'll end up with lsp-mode, who knows?).  But I think
better tools for configuring very large projects with of shapes and
sizes should be in the project management library of Emacs, which is
project.el.  menawhile, we have the real solutions described above.

João









  reply	other threads:[~2022-11-20 20:35 UTC|newest]

Thread overview: 139+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-16 18:37 Eglot, project.el, and python virtual environments Eric Abrahamsen
2022-11-16 22:24 ` Danny Freeman
2022-11-16 22:53   ` Eric Abrahamsen
2022-11-17 13:41     ` Danny Freeman
2022-11-17 18:06       ` Eric Abrahamsen
2022-11-17 18:48         ` Yuan Fu
2022-11-17 22:21       ` Tim Cross
2022-11-18  2:38         ` Phil Sainty
2022-11-18  7:43           ` Eli Zaretskii
2022-11-18 13:55             ` Danny Freeman
2022-11-18 15:22               ` Eli Zaretskii
2022-11-18 15:53                 ` Danny Freeman
2022-11-18 19:36               ` Eric Abrahamsen
2022-11-18 15:06             ` Stefan Monnier
2022-11-18 15:17               ` Eli Zaretskii
2022-11-18 15:28                 ` Stefan Monnier
2022-11-19  1:12             ` Dmitry Gutov
2022-11-19  7:42               ` Eli Zaretskii
2022-11-19 13:06                 ` Dmitry Gutov
2022-11-19 13:14                   ` Eli Zaretskii
2022-11-18 18:31   ` João Távora
2022-11-19  1:13     ` Dmitry Gutov
2022-11-19  1:56       ` João Távora
2022-11-19 15:23         ` Dmitry Gutov
2022-11-19 19:17           ` Danny Freeman
2022-11-19 19:49             ` Dmitry Gutov
2022-11-19 21:22               ` Danny Freeman
2022-11-20  1:51                 ` João Távora
2022-11-20 15:36                   ` Dmitry Gutov
2022-11-20 20:35                     ` João Távora [this message]
2022-11-20 22:05                       ` Dmitry Gutov
2022-11-21 13:45                         ` João Távora
2022-11-22 15:48                           ` Dmitry Gutov
2022-11-22 21:12                             ` Stefan Monnier
2022-11-22 21:34                               ` João Távora
2022-11-22 22:00                                 ` Dmitry Gutov
2022-11-22 23:23                                   ` João Távora
2022-11-23  0:03                                     ` Dmitry Gutov
2022-11-23 13:57                                       ` Subprojects in project.el (Was: Eglot, project.el, and python virtual environments) João Távora
2022-11-23 20:33                                         ` João Távora
2022-11-24  2:49                                           ` Dmitry Gutov
2022-11-24  8:42                                             ` João Távora
2022-11-24 22:17                                               ` Dmitry Gutov
2022-11-25 19:56                                                 ` Subprojects in project.el João Távora
2022-11-25 22:33                                                   ` Dmitry Gutov
2022-11-26  0:00                                                     ` João Távora
2022-11-26  1:57                                                       ` Dmitry Gutov
2022-11-26  9:23                                                         ` João Távora
2022-11-26 13:34                                                           ` Dmitry Gutov
2022-11-26 19:36                                                             ` João Távora
2022-11-26  2:01                                                       ` Dmitry Gutov
2022-11-26  9:24                                                         ` João Távora
2022-11-24  2:51                                           ` Subprojects in project.el (Was: Eglot, project.el, and python virtual environments) Dmitry Gutov
2022-11-24  6:23                                           ` Eli Zaretskii
2022-11-24  9:01                                             ` João Távora
2022-11-24 22:11                                             ` Dmitry Gutov
2022-11-25  7:30                                               ` Eli Zaretskii
2022-11-25 17:24                                                 ` Dmitry Gutov
2022-11-25 19:45                                                   ` Eli Zaretskii
2022-11-25 21:57                                                     ` Dmitry Gutov
2022-11-25 23:55                                                       ` Subprojects in project.el João Távora
2022-11-28  0:41                                                         ` Dmitry Gutov
2022-11-26  7:26                                                       ` Subprojects in project.el (Was: Eglot, project.el, and python virtual environments) Eli Zaretskii
2022-12-02  1:32                                                         ` Dmitry Gutov
2022-12-02 14:16                                                           ` Eli Zaretskii
2022-12-02 15:08                                                             ` Dmitry Gutov
2022-12-02 15:37                                                               ` Dmitry Gutov
2022-12-02 15:44                                                               ` Subprojects in project.el Stefan Monnier
2022-12-02 23:26                                                                 ` João Távora
2022-12-06 14:36                                                           ` Subprojects in project.el (Was: Eglot, project.el, and python virtual environments) João Távora
2022-11-24  3:01                                         ` Dmitry Gutov
2022-11-24  8:50                                           ` João Távora
2022-11-24 22:46                                             ` Tim Cross
2022-11-24 23:38                                               ` Dmitry Gutov
2022-11-25  7:07                                                 ` Bozhidar Batsov
2022-11-25 14:58                                                   ` Subprojects in project.el Stefan Monnier
2022-11-25 22:29                                                     ` Dmitry Gutov
2022-11-26  2:59                                                       ` Stefan Monnier
2022-11-26 12:30                                                         ` Dmitry Gutov
2022-11-26 17:32                                                           ` Stefan Monnier
2022-11-27  0:25                                                             ` Dmitry Gutov
2022-11-25 20:32                                                 ` João Távora
2022-11-28  4:10                                                 ` Subprojects in project.el (Was: Eglot, project.el, and python virtual environments) Tim Cross
2022-11-28 17:21                                                   ` Dmitry Gutov
2022-11-29  9:56                                                     ` Subprojects in project.el João Távora
2022-11-29 18:40                                                       ` Dmitry Gutov
2022-11-29 22:21                                                         ` João Távora
2022-11-30  0:39                                                           ` Dmitry Gutov
2022-11-30  0:54                                                             ` João Távora
2022-11-30  0:57                                                               ` Dmitry Gutov
2022-11-30  1:18                                                                 ` João Távora
2022-12-02 22:47                                                                 ` Richard Stallman
2022-12-02 23:46                                                                   ` Dmitry Gutov
2022-12-03  7:09                                                                     ` Eli Zaretskii
2022-11-24 22:58                                             ` Subprojects in project.el (Was: Eglot, project.el, and python virtual environments) Dmitry Gutov
2022-11-25  2:38                                               ` Subprojects in project.el Stefan Monnier
2022-11-25 20:23                                                 ` João Távora
2022-11-25 22:23                                                 ` Dmitry Gutov
2022-11-25  7:42                                               ` Juri Linkov
2022-11-25 20:27                                                 ` Dmitry Gutov
2022-11-25 23:47                                                   ` João Távora
2022-11-25 23:58                                                     ` Dmitry Gutov
2022-11-26  0:46                                                       ` João Távora
2022-11-26  2:07                                                         ` Dmitry Gutov
2022-11-25 20:16                                               ` João Távora
2022-11-25 22:44                                                 ` Dmitry Gutov
2022-11-26  0:37                                                   ` João Távora
2022-11-26  2:05                                                     ` Dmitry Gutov
2022-11-26  9:42                                                       ` João Távora
2022-11-26 12:38                                                         ` Dmitry Gutov
2022-11-29 10:03                                                           ` João Távora
2022-11-29 10:17                                                           ` João Távora
2022-11-29 19:07                                                             ` Dmitry Gutov
2022-11-29 22:52                                                               ` João Távora
2022-11-30  1:10                                                                 ` Dmitry Gutov
2022-11-27 19:25                                                 ` Juri Linkov
2022-11-27 21:43                                                   ` Dmitry Gutov
2022-11-22 23:53                                 ` "Backend completion style" as a first-class library. Re: Eglot, project.el, and python virtual environments João Távora
2022-11-23  1:45                                   ` Stefan Monnier
2022-11-25 13:16                                     ` João Távora
2022-11-22 21:40                             ` João Távora
2022-11-22 22:13                               ` Dmitry Gutov
2022-11-22 23:33                                 ` João Távora
2022-11-21 20:58                     ` Augusto Stoffel
2022-11-23  3:37                       ` Dmitry Gutov
2022-11-20 16:37                   ` João Távora
2022-11-21  7:54                   ` Eric Abrahamsen
2022-11-21 13:36                     ` João Távora
2022-11-21 15:41                       ` Alfred M. Szmidt
2022-11-21 16:49                         ` Eli Zaretskii
2022-11-21 16:49                       ` Eric Abrahamsen
2022-11-21 20:54                     ` Augusto Stoffel
2022-11-19 23:25           ` João Távora
2022-11-19 23:40             ` Dmitry Gutov
2022-11-16 23:18 ` Philip Kaludercic
2022-11-17  1:14   ` Eric Abrahamsen
2022-11-17  6:47 ` North Year
2022-11-17 18:09   ` Eric Abrahamsen
2022-11-19 22:36 ` Stephen Leake

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=875yf9bbzb.fsf@gmail.com \
    --to=joaotavora@gmail.com \
    --cc=danny@dfreeman.email \
    --cc=dgutov@yandex.ru \
    --cc=emacs-devel@gnu.org \
    --cc=eric@ericabrahamsen.net \
    /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).