From: Felix <felix.dick@web.de>
To: "João Távora" <joaotavora@gmail.com>
Cc: 60107@debbugs.gnu.org
Subject: bug#60107: 30.0.50; Open new files very slow if eglot and which-function-mode are enabled.
Date: Fri, 16 Dec 2022 00:59:28 +0100 [thread overview]
Message-ID: <87pmcki50f.fsf@web.de> (raw)
In-Reply-To: <CALDnm53CzTJPgbpaae46ZqgzeVNfrAwQkRk1NbYey66M2RC5sA@mail.gmail.com>
Hallo João,
Thanks for the fast response!
Now it makes sense that glsl-mode managed with eglot and glslls takes
forever to open glsl files, and imenu is not working at all.
Seems to depend on the server.
I will try your suggestions, in the end which-function-mode
is not that important to me, so if everything fails it's not that bad
either.
If this is not a bug of emacs,
feel free to close this bug report.
Btw. thanks a lot for eglot!
Felix
João Távora <joaotavora@gmail.com> writes:
> Hi Felix,
>
> First of all, thanks for the easy-to-follow Emacs -Q reproduction
> recipe. I reproduced the problem, although in my own test, which
> used medium/small C++ files, the delay I noticed wasn't very long,
> about 1 second.
>
> Which-function-mode relies on Imenu, which is the keeper of
> a syntactic sub-tree of the file, which it must collect from somewhere.
> When Eglot is enabled, Imenu gets its tree from the LSP server.
> Depending on the LSP server and the amount of information at
> hand, this can be a lot of information and take some time to gather.
>
> It seems which-function-mode not only relies on Imenu but also
> blocks the user interface and redisplay while it is waiting for the
> Imenu backend to reply (the Imenu backend in this case being
> Eglot's).
>
> I don't see a good fix for this, except disabling Imenu/Eglot integration
> by adding the symbol 'imenu to eglot-stay-out-of (see the Eglot
> manual).
>
> It can also be that what's slowing down operation here isn't the
> collection of the syntax tree per se but the logging that is going
> on. See also the Eglot manual for how to configure
> eglot-events-buffer-size to see if it makes a difference or not.;
>
> Finally, you can probably get some other source for Imenu information
> to feed which-func-mode. The new C++ modes like c++-ts-mode seems
> to have similar information handy, and perhaps it takes a lot less time
> to compute.
>
> João
>
> On Thu, Dec 15, 2022 at 10:57 PM Felix <felix.dick@web.de> wrote:
>
> In GNU Emacs 30.0.50 (build 3, x86_64-pc-linux-gnu, GTK+ Version
> 3.24.35) of 2022-12-15 built on felix-lifebooka531
> Repository revision: 0d60579b6b6f2648a881572783322b1bcf931a73
> Repository branch: makepkg
> Windowing system distributor 'The X.Org Foundation', version 11.0.12201006
> System Description: Arch Linux
>
> Configured using:
> 'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
> --localstatedir=/var --mandir=/usr/share/man --with-gameuser=:games
> --with-modules --without-libotf --without-m17n-flt --without-gconf
> --enable-autodepend --with-native-compilation=yes --with-xinput2
> --with-x-toolkit=gtk3 --without-xaw3d --without-cairo --with-sound=no
> --with-xwidgets --with-tree-sitter --without-gpm
> --without-compress-install
> '--program-transform-name=s/\([ec]tags\)/\1.emacs/'
> 'CFLAGS=-march=native -mtune=generic -O3 -pipe -fno-plt -fexceptions
> -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security
> -fstack-clash-protection -fcf-protection'
> LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now'
>
> Configured features:
> ACL DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON LCMS2
> LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG
> SECCOMP SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11
> XDBE XFT XIM XINPUT2 XPM XWIDGETS GTK3 ZLIB
>
> Important settings:
> value of $LANG: de_DE.UTF-8
> locale-coding-system: utf-8
>
> Opening C files is very slow if which-function-mode and eglot are
> enabled at the same time. I tested this with:
>
> emacs -Q
> opening a C project file
> M-x eglot
> M-x which-function-mode
> switching to another .c project file now takes seconds until the buffer
> shows up.
> I use an old Laptop, but with just one of the two modes disabled,
> it's quite snappy.
next prev parent reply other threads:[~2022-12-15 23:59 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-15 22:53 bug#60107: 30.0.50; Open new files very slow if eglot and which-function-mode are enabled Felix
2022-12-15 23:44 ` João Távora
2022-12-15 23:59 ` Felix [this message]
2022-12-16 7:23 ` Eli Zaretskii
2022-12-16 11:26 ` Felix
2022-12-16 15:45 ` Eli Zaretskii
2022-12-16 15:53 ` João Távora
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=87pmcki50f.fsf@web.de \
--to=felix.dick@web.de \
--cc=60107@debbugs.gnu.org \
--cc=joaotavora@gmail.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.