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;