Some LSP servers badly mangle their responses to :hover into markdown that gfm-viewmode cannot render. See this discussion , for example. The attached patch adds a new custom option `eglot-prefer-plaintext’ which configures the server to use plaintext for :hover responses, even if Emacs could in principle handle markdown. Unfortunately, the popular Python LSP server in question (pyright) is not interested in improvement to its generated markdown (since it "works in VS-Code”). Luckily the plaintext docstrings of most packages are very nicely formatted.