Subject: bug#64099: Emacs 29 - Eglot hint display issue on macOS

From: Milan Jovanovic <[email-masked]>
Date: Thu, 15 Jun 2023 18:41:14 +0200

Hi all,

There is an issue with how Eglot inlay hints are being printed on the macOS
(both Intel and apple silicon).
I've tried on Linux with the same versions and it works fine.

Example of broken inlay hints:
https://user-images.githubusercontent.com/3064500/245880108-a4f43db5-7ebb-43e6-8031-ebb403ee94b3.png

How to reproduce:
1. install Emacs 29 from https://emacsformacosx.com or via brew
https://github.com/d12frosted/homebrew-emacs-plus

2. install rustup/rustc/cargo/rust-analyzer - https://rustup.rs
   # curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
   `rustup component add rust-analyzer`

3.  create rust project
   # cargo new inlay-hints

copy this code to inlay-hints/src/main.rs
==================================
use std::error::Error;

struct Foo {}

struct Bar {}

type MyResult = Result<Foo, (Bar, String, Box<dyn Error + Send>)>;

fn get_vec_results() -> Vec<MyResult> {
    todo!()
}

fn main() {
    for result in get_vec_results() {
        match result {
            Ok(res) => todo!(),
            Err(err) => todo!(),
        }
    }
}

==================================

4. open Emacs (no .emacs and no .emacs.d)
   # cd inlay-hints
   # /Applications/Emacs.app/Contents/MacOS/Emacs -Q src/main.rs -f
rust-ts-mode -f eglot
      choose/type 'rust-analyzer' as the server

------------------------------------------------------------------------------
My Emacs:

system-configuration-options:
"--with-ns '--enable-locallisppath=/Library/Application
Support/Emacs/${version}/site-lisp:/Library/Application
Support/Emacs/site-lisp' --with-modules --with-x-toolkit=no"

ELISP> system-configuration-features
"ACL GLIB GMP GNUTLS JPEG JSON LIBXML2 MODULES NOTIFY KQUEUE NS PDUMPER PNG
RSVG THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER ZLIB"

P.S. I'm seeing the same thing with Emacs 28