fix(emacs): don't try to parse server stderr as json, instead notify on server crash
This commit is contained in:
parent
87f2f5397f
commit
133b70c0e3
2 changed files with 23 additions and 13 deletions
|
|
@ -24,24 +24,35 @@
|
|||
(setq lean-server-process nil
|
||||
lean-server-handler-tq nil)))
|
||||
|
||||
(defun lean-server-stderr-buffer-name ()
|
||||
(format "*lean-server stderr (%s)*" (buffer-name)))
|
||||
|
||||
(defun lean-server-handle-signal (process event)
|
||||
"Handle signals for lean-server-process"
|
||||
(let ((event-string (s-trim event)))
|
||||
(lean-debug "lean-server-handle-signal: %s"
|
||||
(propertize event-string 'face '(:foreground "red")))
|
||||
(if (s-contains? "abnormally" event)
|
||||
(message "Lean server died. See buffer %s for details; use lean-server-restart to restart it"
|
||||
(lean-server-stderr-buffer-name)))))
|
||||
|
||||
(defun lean-server-start ()
|
||||
"Starts the lean server for the current buffer"
|
||||
(when (or (not lean-server-process)
|
||||
(not (equal (process-status lean-server-process) 'run)))
|
||||
(lean-server-stop)
|
||||
(setq lean-server-process
|
||||
(let* ((default-directory (or (lean-project-find-root) default-directory))
|
||||
; Setting process-connection-type is necessary, otherwise
|
||||
; emacs truncates lines with >4096 bytes:
|
||||
; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=24531
|
||||
(process-connection-type nil))
|
||||
(start-file-process "lean-server"
|
||||
(format "*lean-server (%s)*" (buffer-name))
|
||||
(lean-get-executable lean-executable-name)
|
||||
"--server"
|
||||
(format "*%s*" (buffer-name)))))
|
||||
(set-process-coding-system lean-server-process 'utf-8 'utf-8)
|
||||
(set-process-query-on-exit-flag lean-server-process nil)
|
||||
(let ((default-directory (or (lean-project-find-root) default-directory)))
|
||||
(make-process
|
||||
:name "lean-server"
|
||||
:buffer (format "*lean-server (%s)*" (buffer-name))
|
||||
:command `(,(lean-get-executable lean-executable-name)
|
||||
"--server"
|
||||
,(format "*%s*" (buffer-name)))
|
||||
:coding 'utf-8
|
||||
:noquery t
|
||||
:sentinel #'lean-server-handle-signal
|
||||
:stderr (lean-server-stderr-buffer-name))))
|
||||
(setq lean-server-handler-tq (tq-create lean-server-process))))
|
||||
|
||||
(defun lean-server-restart ()
|
||||
|
|
|
|||
|
|
@ -225,7 +225,6 @@ scope_traces_as_messages::scope_traces_as_messages(std::string const & stream_na
|
|||
m_redirected_ios = std::unique_ptr<io_state>(new io_state(get_global_ios()));
|
||||
m_buffer = std::make_shared<string_output_channel>();
|
||||
m_redirected_ios->set_regular_channel(m_buffer);
|
||||
m_redirected_ios->set_diagnostic_channel(m_buffer);
|
||||
m_scoped_ios = std::unique_ptr<scope_global_ios>(new scope_global_ios(*m_redirected_ios));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue