The key idea is to pass a continuation function when we call lean-server-send-cmd function. The passed continuation function is called by lean-server-event-handler. Until the buffer is ready, the event handler will be called in interval (lean-server-retry-time, 0.1 sec by default). When we have 'NAY' for INFO command, it will re-send INFO commands to lean-server until we have one without 'NAY'. Close #123
54 lines
1.7 KiB
EmacsLisp
54 lines
1.7 KiB
EmacsLisp
;; Copyright (c) 2014 Microsoft Corporation. All rights reserved.
|
|
;; Released under Apache 2.0 license as described in the file LICENSE.
|
|
;;
|
|
;; Author: Soonho Kong
|
|
;;
|
|
|
|
(defvar lean-global-info-record nil
|
|
"A placeholder we save the info-record that we get from lean server")
|
|
|
|
(defvar lean-global-server-message-to-process nil
|
|
"A shared variable contains a received message to process.
|
|
|
|
A message is in the form of (TYPE PRE BODY)
|
|
where TYPE := INFO | SET | EVAL | OPTIONS | ERROR,
|
|
PRE is a server message comes before the message
|
|
BODY is a body of the received message.")
|
|
|
|
(defvar lean-global-option-record-alist nil
|
|
"lean option-record alist")
|
|
|
|
(defvar lean-global-server-process nil
|
|
"lean server process")
|
|
|
|
(defvar lean-global-server-buffer nil
|
|
"Global buffer used to store messages sent by lean server")
|
|
|
|
(defvar lean-global-server-current-file-name nil
|
|
"Current filename that lean server is processing")
|
|
|
|
(defvar lean-global-server-last-time-sent nil
|
|
"Last time lean-mode sent a command to lean-server")
|
|
|
|
(defvar lean-global-retry-timer nil
|
|
"Timer used to re-try event-handler-function.")
|
|
|
|
(defvar-local lean-changed-lines nil
|
|
"Changed lines")
|
|
(defvar-local lean-removed-lines nil
|
|
"Removed lines")
|
|
(defvar-local lean-inserted-lines nil
|
|
"Inserted lines")
|
|
|
|
(defvar lean-global-before-change-beg nil
|
|
"Before-change BEG")
|
|
(defvar lean-global-before-change-end nil
|
|
"Before-change END")
|
|
(defvar lean-global-before-change-beg-line-number nil
|
|
"Before-change BEG line-number")
|
|
(defvar lean-global-before-change-end-line-number nil
|
|
"Before-change END line-number")
|
|
(defvar lean-global-before-change-text ""
|
|
"Before-change text")
|
|
|
|
(provide 'lean-variable)
|