From: Eli Zaretskii <eliz@gnu.org>
To: Ergus <spacibba@aol.com>, "João Távora" <joaotavora@gmail.com>
Cc: 70408@debbugs.gnu.org
Subject: bug#70408: 30.0.50; Eglot and Project integration
Date: Tue, 16 Apr 2024 14:42:25 +0300 [thread overview]
Message-ID: <86le5djzz2.fsf@gnu.org> (raw)
In-Reply-To: <87o7aas3sk.fsf@aol.com> (bug-gnu-emacs@gnu.org)
> Date: Mon, 15 Apr 2024 23:40:27 +0200
> From: Ergus via "Bug reports for GNU Emacs,
> the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
>
> Recently we have been discussing the possibility to improve project.el
> in order to recognize/interact a bit more smartly with common modern
> build infrastructures (i.e meson and cmake).
>
> These build systems generally are also capable to generate the
> compile_commands.json for clangd in the build directory independently of
> its location (generally out of sources).
>
> The current extension for project.el is capable to recognize the build
> directory to execute project-compile. The approach works well in the
> tests and I added a small POC code to modify the
> `glot-workspace-configuration' variable on the fly.
>
> This integration of project.el is pretty useful and simplifies the
> configurations required to make eglot work a bit more consistently by
> detecting the database more accurately.
>
> The only limitation I am facing at the moment with this is that
> project.el initializes lazily (when a project-something command is
> called) and generally eglot seems to be designed to autostart as a mode
> hook.
>
> So the issue has two parts:
>
> 1. Is it desirable or are the eglot developers somehow interested in the
> integration with project.el? If so, what are the key features of
> interest.
>
> 2. Do you have some suggestion about how to initialize the eglot server
> to properly update the `glot-workspace-configuration' on the fly?
>
> My very primitive proof of concept code:
>
> https://github.com/Ergus/project-multi-mode/blob/822316d82007e1b68c9a8dfcfbe205cb63b4f545/project-multi-mode.el#L194
Thanks.
I think this discussion should include João, so I added him.
next prev parent reply other threads:[~2024-04-16 11:42 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <87o7aas3sk.fsf.ref@aol.com>
2024-04-15 21:40 ` bug#70408: 30.0.50; Eglot and Project integration Ergus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-04-16 11:42 ` Eli Zaretskii [this message]
2024-04-16 12:33 ` João Távora
2024-04-16 12:55 ` Dmitry Gutov
2024-04-16 13:51 ` João Távora
2024-04-16 16:02 ` Ergus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-04-16 20:30 ` João Távora
2024-04-16 21:51 ` Ergus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-04-20 11:28 ` Dmitry Gutov
2024-04-20 13:10 ` João Távora
2024-04-16 13:03 ` Ergus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-04-16 16:36 ` Eli Zaretskii
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=86le5djzz2.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=70408@debbugs.gnu.org \
--cc=joaotavora@gmail.com \
--cc=spacibba@aol.com \
/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.