Merge pull request #1566 from hzeller/20221216-dependencies
Make sure to include all the used depdnencies in the BUILD file.
diff --git a/verilog/tools/ls/BUILD b/verilog/tools/ls/BUILD
index 8e9260f..0cf92d1 100644
--- a/verilog/tools/ls/BUILD
+++ b/verilog/tools/ls/BUILD
@@ -68,8 +68,14 @@
hdrs = ["verilog-language-server.h"],
visibility = ["//visibility:public"],
deps = [
+ ":lsp-parse-buffer",
":verible-lsp-adapter",
+ "//common/lsp:json-rpc-dispatcher",
+ "//common/lsp:lsp-protocol",
+ "//common/lsp:lsp-text-buffer",
"//common/lsp:message-stream-splitter",
+ "@com_google_absl//absl/status",
+ "@com_google_absl//absl/strings",
],
)
diff --git a/verilog/tools/ls/verilog-language-server.cc b/verilog/tools/ls/verilog-language-server.cc
index 8422e55..8f3ef14 100644
--- a/verilog/tools/ls/verilog-language-server.cc
+++ b/verilog/tools/ls/verilog-language-server.cc
@@ -14,6 +14,12 @@
#include "verilog/tools/ls/verilog-language-server.h"
+#include <functional>
+
+#include "absl/strings/string_view.h"
+#include "common/lsp/lsp-protocol.h"
+#include "verilog/tools/ls/verible-lsp-adapter.h"
+
namespace verilog {
VerilogLanguageServer::VerilogLanguageServer(const WriteFun &write_fun)
diff --git a/verilog/tools/ls/verilog-language-server.h b/verilog/tools/ls/verilog-language-server.h
index 7e7e32c..ed2fdde 100644
--- a/verilog/tools/ls/verilog-language-server.h
+++ b/verilog/tools/ls/verilog-language-server.h
@@ -15,14 +15,11 @@
#ifndef VERILOG_TOOLS_LS_LS_WRAPPER_H
#define VERILOG_TOOLS_LS_LS_WRAPPER_H
-#include <functional>
-
#include "absl/status/status.h"
-#include "absl/strings/string_view.h"
#include "common/lsp/json-rpc-dispatcher.h"
-#include "common/lsp/lsp-protocol.h"
+#include "common/lsp/lsp-text-buffer.h"
#include "common/lsp/message-stream-splitter.h"
-#include "verilog/tools/ls/verible-lsp-adapter.h"
+#include "verilog/tools/ls/lsp-parse-buffer.h"
namespace verilog {
diff --git a/verilog/tools/ls/verilog_ls.cc b/verilog/tools/ls/verilog_ls.cc
index 0702a3e..b50974f 100644
--- a/verilog/tools/ls/verilog_ls.cc
+++ b/verilog/tools/ls/verilog_ls.cc
@@ -31,7 +31,7 @@
#endif
static void FormatHeaderBodyReply(absl::string_view reply) {
- // Output formatting as header/body chunk as required by LSP spec.
+ // Output formatting as header/body chunk as required by LSP spec to stdout.
std::cout << "Content-Length: " << reply.size() << "\r\n\r\n";
std::cout << reply << std::flush;
}
@@ -42,18 +42,20 @@
std::cerr << "Verible Alpha Language Server "
<< verilog::VerilogLanguageServer::GetVersionNumber() << std::endl;
- // Input and output is stdin and stdout
- constexpr int in_fd = 0; // STDIN_FILENO
-
#ifdef _WIN32
+ // Windows messes with newlines by default. Fix this here.
_setmode(_fileno(stdin), _O_BINARY);
_setmode(_fileno(stdout), _O_BINARY);
#endif
+ // Input and output is stdin and stdout
+ constexpr int kInputFD = 0; // STDIN_FILENO, but Win does not have that macro
+
verilog::VerilogLanguageServer server(FormatHeaderBodyReply);
- absl::Status status = server.Run(
- [](char *buf, int size) -> int { return read(in_fd, buf, size); });
+ absl::Status status = server.Run([](char *buf, int size) -> int { //
+ return read(kInputFD, buf, size);
+ });
std::cerr << status.message() << std::endl;