fix(emacs/lean-mode.el): attach sentinel to lean-exec-at-pos
Close #499 Usage: (add-hook 'lean-mode-hook '(lambda () (lean-define-key-binding "\C-c\C-g" '(lean-exec-at-pos "lean-goal" "*Lean Goal*" "--goal"))))
This commit is contained in:
parent
b3cd3efbb4
commit
6de86ff749
1 changed files with 12 additions and 2 deletions
|
@ -53,6 +53,16 @@
|
||||||
(or arg "")
|
(or arg "")
|
||||||
(shell-quote-argument (f-full target-file-name))))))
|
(shell-quote-argument (f-full target-file-name))))))
|
||||||
|
|
||||||
|
(defun lean-exec-at-pos-sentinel (process event)
|
||||||
|
"Sentinel function used for lean-exec-at-pos. It does the two
|
||||||
|
things: A. display the process buffer, B. scroll to the top"
|
||||||
|
(when (eq (process-status process) 'exit)
|
||||||
|
(let ((b (process-buffer process)))
|
||||||
|
(display-buffer b)
|
||||||
|
;; Temporary Hack to scroll to the top
|
||||||
|
;; See https://github.com/leanprover/lean/issues/499#issuecomment-125285231
|
||||||
|
(set-window-point (get-buffer-window b) 0))))
|
||||||
|
|
||||||
(defun lean-exec-at-pos (process-name process-buffer-name &rest options)
|
(defun lean-exec-at-pos (process-name process-buffer-name &rest options)
|
||||||
"Execute Lean by providing current position with optional
|
"Execute Lean by providing current position with optional
|
||||||
agruments. The output goes to 'process-buffer-name' buffer, which
|
agruments. The output goes to 'process-buffer-name' buffer, which
|
||||||
|
@ -99,9 +109,9 @@ will be flushed everytime it's executed."
|
||||||
cache-option
|
cache-option
|
||||||
`(,target-file-name)))
|
`(,target-file-name)))
|
||||||
(p (apply 'start-process process-args)))
|
(p (apply 'start-process process-args)))
|
||||||
|
(set-process-sentinel p 'lean-exec-at-pos-sentinel)
|
||||||
(set-process-coding-system p 'utf-8 'utf-8)
|
(set-process-coding-system p 'utf-8 'utf-8)
|
||||||
(set-process-query-on-exit-flag p nil)
|
(set-process-query-on-exit-flag p nil)))
|
||||||
(display-buffer process-buffer-name)))
|
|
||||||
|
|
||||||
(defun lean-std-exe ()
|
(defun lean-std-exe ()
|
||||||
(interactive)
|
(interactive)
|
||||||
|
|
Loading…
Reference in a new issue