Error overlays where the error is, connection state and reconnection, visible confirmation of what landed, and eldoc, completion and M-. off one cached reply. Two latent bugs had to be fixed to put an overlay in the right place. A :loc column is a byte offset - reader.ml advances per byte - and the client was using it with forward-char, which is the framing bug in a second place. And the daemon numbers lines from the start of what it was sent, so C-c C-c on a defn halfway down a buffer answered line 1 and every overlay would have sat on the file's first line; the form is padded with leading newlines, which the reader skips, so the reply's line numbers are the buffer's own and no protocol changed. Reconnection happens before a send and never after. A request lost in flight may already have run, so resending it would install twice or run a side-effecting expression twice; that case says what happened and says it was not resent. defs is its own op rather than more fields on describe, because describe is polled to drain the program's output and signatures should not be paid for every time anyone looks at that buffer. Globals and externs carry no Loc in the Tast, so M- refuses on them by name with that reason rather than guessing a file by searching for the text.
Description
Languages
OCaml
67.2%
Emacs Lisp
15.2%
C
10.4%
HTML
2.9%
Standard ML
2.8%
Other
1.5%