joaotavora / eglot

A client for Language Server Protocol servers
GNU General Public License v3.0
2.22k stars 203 forks source link

Unable to open stderr buffer again if killed #1062

Open joaotavora opened 1 year ago

joaotavora commented 1 year ago

Discussed in https://github.com/joaotavora/eglot/discussions/1036

Originally posted by **doolio** September 16, 2022 Not sure if this is a bug so asking here first. If I kill (`C-x k`) the `*EGLOT stderr*` buffer I cannot open it again with `M-x eglot-stderr-buffer` and see this error message `Wrong type argument: stringp, nil` ### Reproduction recipe 1. Ensure the `clangd` LSP server is installed and available in path 2. Invoke Emacs master with Eglot master: ```~/Source/Emacs/emacs/src/emacs -Q -L ~/Source/Emacs/eglot -l eglot ~/tmp/coiso.cpp -f eglot``` 3. `M-x eglot-stderr-buffer` 4. Kill the resulting `*EGLOT (tmp/(c++-mode c-mode)) stderr*` buffer 6. Type `M-x toggle-debug-on-error` 7. Type `M-x eglot-stderr-buffer` again and get this unexpected error: ``` Debugger entered--Lisp error: (error "Invalid buffer") signal(error ("Invalid buffer")) error("Invalid buffer") display-buffer(#) eglot-stderr-buffer(#) funcall-interactively(eglot-stderr-buffer #) call-interactively(eglot-stderr-buffer record nil) command-execute(eglot-stderr-buffer record) execute-extended-command(nil "eglot-stderr-buffer" "eglot-std") funcall-interactively(execute-extended-command nil "eglot-stderr-buffer" "eglot-std") call-interactively(execute-extended-command nil nil) command-execute(execute-extended-command) ```