feat(emacs/lean-server): handle signal
This commit is contained in:
parent
0426d04cb9
commit
665a8f3ecb
1 changed files with 21 additions and 7 deletions
|
@ -75,8 +75,21 @@
|
||||||
"Filter function attached to lean-server process"
|
"Filter function attached to lean-server process"
|
||||||
(lean-server-process-received-message (process-buffer process) string))
|
(lean-server-process-received-message (process-buffer process) string))
|
||||||
|
|
||||||
|
(defun lean-server-handle-signal (process event)
|
||||||
|
"Handle signals for lean-server-process"
|
||||||
|
(cond
|
||||||
|
((string-prefix-p "hangup" event)
|
||||||
|
(lean-server-initialize-global-vars))))
|
||||||
|
|
||||||
;; How to create an async process
|
;; How to create an async process
|
||||||
;; ==============================
|
;; ==============================
|
||||||
|
|
||||||
|
(defun lean-server-initialize-global-vars ()
|
||||||
|
"Initialize lean-server related global variables"
|
||||||
|
(setq lean-global-server-buffer nil)
|
||||||
|
(setq lean-global-server-current-file-name nil)
|
||||||
|
(setq lean-global-server-message-to-process nil))
|
||||||
|
|
||||||
(defun lean-server-create-process ()
|
(defun lean-server-create-process ()
|
||||||
"Create lean-server process."
|
"Create lean-server process."
|
||||||
;; (when (buffer-modified-p)
|
;; (when (buffer-modified-p)
|
||||||
|
@ -89,9 +102,8 @@
|
||||||
lean-server-option)))
|
lean-server-option)))
|
||||||
(set-process-coding-system lean-server-process 'utf-8 'utf-8)
|
(set-process-coding-system lean-server-process 'utf-8 'utf-8)
|
||||||
(set-process-filter lean-server-process 'lean-server-output-filter)
|
(set-process-filter lean-server-process 'lean-server-output-filter)
|
||||||
(setq lean-global-server-buffer nil)
|
(set-process-sentinel lean-server-process 'lean-server-handle-signal)
|
||||||
(setq lean-global-server-current-file-name nil)
|
(lean-server-initialize-global-vars)
|
||||||
(setq lean-global-server-message-to-process nil)
|
|
||||||
(setq lean-global-server-process lean-server-process)
|
(setq lean-global-server-process lean-server-process)
|
||||||
lean-server-process))
|
lean-server-process))
|
||||||
|
|
||||||
|
@ -99,7 +111,8 @@
|
||||||
"Kill lean-server process. Return t if killed, nil if nothing to kill"
|
"Kill lean-server process. Return t if killed, nil if nothing to kill"
|
||||||
(interactive)
|
(interactive)
|
||||||
(cond
|
(cond
|
||||||
((and lean-global-server-process (process-exit-status lean-global-server-process))
|
((and lean-global-server-process
|
||||||
|
(not (= 0 (process-exit-status lean-global-server-process))))
|
||||||
(setq lean-global-server-process nil)
|
(setq lean-global-server-process nil)
|
||||||
t)
|
t)
|
||||||
(lean-global-server-process
|
(lean-global-server-process
|
||||||
|
@ -108,9 +121,10 @@
|
||||||
(kill-process lean-global-server-process)
|
(kill-process lean-global-server-process)
|
||||||
(setq lean-global-server-process nil)
|
(setq lean-global-server-process nil)
|
||||||
t)
|
t)
|
||||||
(t (when (interactive-p)
|
(t
|
||||||
(message "lean-server-kill-process: no process to kill"))
|
(when (interactive-p)
|
||||||
nil)))
|
(message "lean-server-kill-process: no process to kill"))
|
||||||
|
nil)))
|
||||||
|
|
||||||
(defun lean-server-restart-process ()
|
(defun lean-server-restart-process ()
|
||||||
"Restart lean-server process."
|
"Restart lean-server process."
|
||||||
|
|
Loading…
Add table
Reference in a new issue