[clang-tools-extra] r300077 - [clangd] Rename ClangDMain.cpp -> ClangdMain.cpp, NFC

Krasimir Georgiev via cfe-commits cfe-commits at lists.llvm.org
Wed Apr 12 10:13:08 PDT 2017


Author: krasimir
Date: Wed Apr 12 12:13:08 2017
New Revision: 300077

URL: http://llvm.org/viewvc/llvm-project?rev=300077&view=rev
Log:
[clangd] Rename ClangDMain.cpp -> ClangdMain.cpp, NFC

Added:
    clang-tools-extra/trunk/clangd/ClangdMain.cpp
      - copied, changed from r299961, clang-tools-extra/trunk/clangd/ClangDMain.cpp
Removed:
    clang-tools-extra/trunk/clangd/ClangDMain.cpp
Modified:
    clang-tools-extra/trunk/clangd/CMakeLists.txt

Modified: clang-tools-extra/trunk/clangd/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clangd/CMakeLists.txt?rev=300077&r1=300076&r2=300077&view=diff
==============================================================================
--- clang-tools-extra/trunk/clangd/CMakeLists.txt (original)
+++ clang-tools-extra/trunk/clangd/CMakeLists.txt Wed Apr 12 12:13:08 2017
@@ -1,6 +1,6 @@
 add_clang_executable(clangd
   ASTManager.cpp
-  ClangDMain.cpp
+  ClangdMain.cpp
   JSONRPCDispatcher.cpp
   Protocol.cpp
   ProtocolHandlers.cpp

Removed: clang-tools-extra/trunk/clangd/ClangDMain.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clangd/ClangDMain.cpp?rev=300076&view=auto
==============================================================================
--- clang-tools-extra/trunk/clangd/ClangDMain.cpp (original)
+++ clang-tools-extra/trunk/clangd/ClangDMain.cpp (removed)
@@ -1,122 +0,0 @@
-//===--- ClangDMain.cpp - clangd server loop ------------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "ASTManager.h"
-#include "DocumentStore.h"
-#include "JSONRPCDispatcher.h"
-#include "ProtocolHandlers.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/FileSystem.h"
-#include "llvm/Support/Program.h"
-#include <iostream>
-#include <string>
-using namespace clang::clangd;
-
-static llvm::cl::opt<bool>
-    RunSynchronously("run-synchronously",
-                     llvm::cl::desc("parse on main thread"),
-                     llvm::cl::init(false), llvm::cl::Hidden);
-
-int main(int argc, char *argv[]) {
-  llvm::cl::ParseCommandLineOptions(argc, argv, "clangd");
-  llvm::raw_ostream &Outs = llvm::outs();
-  llvm::raw_ostream &Logs = llvm::errs();
-  JSONOutput Out(Outs, Logs);
-
-  // Change stdin to binary to not lose \r\n on windows.
-  llvm::sys::ChangeStdinToBinary();
-
-  // Set up a document store and intialize all the method handlers for JSONRPC
-  // dispatching.
-  DocumentStore Store;
-  ASTManager AST(Out, Store, RunSynchronously);
-  Store.addListener(&AST);
-  JSONRPCDispatcher Dispatcher(llvm::make_unique<Handler>(Out));
-  Dispatcher.registerHandler("initialize",
-                             llvm::make_unique<InitializeHandler>(Out));
-  auto ShutdownPtr = llvm::make_unique<ShutdownHandler>(Out);
-  auto *ShutdownHandler = ShutdownPtr.get();
-  Dispatcher.registerHandler("shutdown", std::move(ShutdownPtr));
-  Dispatcher.registerHandler(
-      "textDocument/didOpen",
-      llvm::make_unique<TextDocumentDidOpenHandler>(Out, Store));
-  Dispatcher.registerHandler(
-      "textDocument/didClose",
-      llvm::make_unique<TextDocumentDidCloseHandler>(Out, Store));
-  Dispatcher.registerHandler(
-      "textDocument/didChange",
-      llvm::make_unique<TextDocumentDidChangeHandler>(Out, Store));
-  Dispatcher.registerHandler(
-      "textDocument/rangeFormatting",
-      llvm::make_unique<TextDocumentRangeFormattingHandler>(Out, Store));
-  Dispatcher.registerHandler(
-      "textDocument/onTypeFormatting",
-      llvm::make_unique<TextDocumentOnTypeFormattingHandler>(Out, Store));
-  Dispatcher.registerHandler(
-      "textDocument/formatting",
-      llvm::make_unique<TextDocumentFormattingHandler>(Out, Store));
-  Dispatcher.registerHandler("textDocument/codeAction",
-                             llvm::make_unique<CodeActionHandler>(Out, AST));
-  Dispatcher.registerHandler("textDocument/completion",
-                             llvm::make_unique<CompletionHandler>(Out, AST));
-
-  while (std::cin.good()) {
-    // A Language Server Protocol message starts with a HTTP header, delimited
-    // by \r\n.
-    std::string Line;
-    std::getline(std::cin, Line);
-    if (!std::cin.good() && errno == EINTR) {
-      std::cin.clear();
-      continue;
-    }
-
-    // Skip empty lines.
-    llvm::StringRef LineRef(Line);
-    if (LineRef.trim().empty())
-      continue;
-
-    // We allow YAML-style comments. Technically this isn't part of the
-    // LSP specification, but makes writing tests easier.
-    if (LineRef.startswith("#"))
-      continue;
-
-    unsigned long long Len = 0;
-    // FIXME: Content-Type is a specified header, but does nothing.
-    // Content-Length is a mandatory header. It specifies the length of the
-    // following JSON.
-    if (LineRef.consume_front("Content-Length: "))
-      llvm::getAsUnsignedInteger(LineRef.trim(), 0, Len);
-
-    // Check if the next line only contains \r\n. If not this is another header,
-    // which we ignore.
-    char NewlineBuf[2];
-    std::cin.read(NewlineBuf, 2);
-    if (std::memcmp(NewlineBuf, "\r\n", 2) != 0)
-      continue;
-
-    // Now read the JSON. Insert a trailing null byte as required by the YAML
-    // parser.
-    std::vector<char> JSON(Len + 1, '\0');
-    std::cin.read(JSON.data(), Len);
-
-    if (Len > 0) {
-      llvm::StringRef JSONRef(JSON.data(), Len);
-      // Log the message.
-      Out.log("<-- " + JSONRef + "\n");
-
-      // Finally, execute the action for this JSON message.
-      if (!Dispatcher.call(JSONRef))
-        Out.log("JSON dispatch failed!\n");
-
-      // If we're done, exit the loop.
-      if (ShutdownHandler->isDone())
-        break;
-    }
-  }
-}

Copied: clang-tools-extra/trunk/clangd/ClangdMain.cpp (from r299961, clang-tools-extra/trunk/clangd/ClangDMain.cpp)
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clangd/ClangdMain.cpp?p2=clang-tools-extra/trunk/clangd/ClangdMain.cpp&p1=clang-tools-extra/trunk/clangd/ClangDMain.cpp&r1=299961&r2=300077&rev=300077&view=diff
==============================================================================
--- clang-tools-extra/trunk/clangd/ClangDMain.cpp (original)
+++ clang-tools-extra/trunk/clangd/ClangdMain.cpp Wed Apr 12 12:13:08 2017
@@ -1,4 +1,4 @@
-//===--- ClangDMain.cpp - clangd server loop ------------------------------===//
+//===--- ClangdMain.cpp - clangd server loop ------------------------------===//
 //
 //                     The LLVM Compiler Infrastructure
 //




More information about the cfe-commits mailing list