feat(emacs/lean-server): support files in projects

This commit is contained in:
Gabriel Ebner 2016-10-13 09:39:17 -04:00 committed by Leonardo de Moura
parent 4d4e6f3415
commit 46eefdac89
4 changed files with 11 additions and 10 deletions

View file

@ -7,6 +7,7 @@
(require 'json)
(require 'tq)
(require 'lean-debug)
(require 'lean-project)
(defvar-local lean-server-process nil
"Lean server process for the current buffer")
@ -25,9 +26,10 @@
(when (or (not lean-server-process)
(not (equal (process-status lean-server-process) 'run)))
(setq lean-server-process
(start-file-process "lean-server"
(format "*lean-server (%s)*" (buffer-name))
"lean" "--server"))
(let* ((default-directory (or (lean-project-find-root) default-directory)))
(start-file-process "lean-server"
(format "*lean-server (%s)*" (buffer-name))
"lean" "--server")))
(set-process-query-on-exit-flag lean-server-process nil)
(setq lean-server-handler-tq (tq-create lean-server-process))))

View file

@ -399,7 +399,7 @@ int main(int argc, char ** argv) {
}
if (server) {
lean::server(base_dir, num_threads, env, ios).run();
lean::server(num_threads, env, ios).run();
return 0;
}

View file

@ -16,9 +16,8 @@ public:
void report(message const &) override {}
};
server::server(optional<std::string> const & base_dir, int num_threads, environment const & initial_env, io_state const & ios) :
m_base_dir(base_dir), m_num_threads(num_threads),
m_initial_env(initial_env), m_ios(ios) {
server::server(unsigned num_threads, environment const & initial_env, io_state const & ios) :
m_num_threads(num_threads), m_initial_env(initial_env), m_ios(ios) {
m_ios.set_regular_channel(std::make_shared<stderr_channel>());
m_ios.set_diagnostic_channel(std::make_shared<stderr_channel>());
m_ios.set_message_channel(std::make_shared<null_message_stream>());
@ -120,8 +119,9 @@ json server::handle_check(json const &) {
std::istringstream in(m_content);
bool use_exceptions = false;
optional<std::string> base_dir;
parser p(m_initial_env, m_ios, in, m_file_name.c_str(),
m_base_dir, use_exceptions, m_num_threads,
base_dir, use_exceptions, m_num_threads,
new_snapshots.empty() ? nullptr : &new_snapshots.back(),
&new_snapshots);
// TODO(gabriel): definition caches?

View file

@ -14,7 +14,6 @@ Author: Gabriel Ebner
namespace lean {
class server {
optional<std::string> m_base_dir;
unsigned m_num_threads;
options m_opts;
environment m_initial_env;
@ -35,7 +34,7 @@ class server {
json handle_check(json const & req);
public:
server(optional<std::string> const & base_dir, int num_threads, environment const & intial_env, io_state const & ios);
server(unsigned num_threads, environment const & intial_env, io_state const & ios);
~server();
void run();