Three things the first cut got wrong by being global when it had no business being. The modeline entry was added to `mode-line-misc-info' at load. It returns nil outside a Flan buffer, so it was invisible — but it was still evaluated on every redisplay of every buffer in the session, for someone who loads the client and then spends the afternoon in dired. It is installed buffer-locally by `flan-dev-setup' now, which already runs in exactly the buffers that want it. The `derived-mode-p' guard stays: cheap, and it keeps the function honest wherever it is called from. `flan-dev-setup' switched eldoc on. Contributing a documentation source is this file's business; whether eldoc runs at all is the user's, and turning it on overrules someone who has `global-eldoc-mode' off deliberately. It is on by default, so nearly everyone gets the same behaviour either way. And a reconnect forgot the name cache without asking for it again. An empty cache is honest but silent — eldoc goes quiet, M-. falls through to whatever else is registered, and nothing says why — until the next install happens to refill it. It refreshes straight after reconnecting, which is safe from there because the connection is live by that point and the request does not come back round through the same function.
Description
Languages
OCaml
67.2%
Emacs Lisp
15.2%
C
10.4%
HTML
2.9%
Standard ML
2.8%
Other
1.5%