From fa10f7dc23f8b93c0f9ef3fb5477871a20aaa974 Mon Sep 17 00:00:00 2001 From: Yong He Date: Wed, 1 Jun 2022 17:36:44 -0700 Subject: Add language server daemon. (#2251) * Add language server daemon. * Fix. Co-authored-by: Yong He Co-authored-by: jsmall-nvidia Co-authored-by: Theresa Foley <10618364+tangent-vector@users.noreply.github.com> --- tools/slangd/language-server.h | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 tools/slangd/language-server.h (limited to 'tools/slangd/language-server.h') diff --git a/tools/slangd/language-server.h b/tools/slangd/language-server.h new file mode 100644 index 000000000..829a629b1 --- /dev/null +++ b/tools/slangd/language-server.h @@ -0,0 +1,35 @@ +#pragma once + +#include "../../source/core/slang-io.h" +#include "../../source/core/slang-process-util.h" +#include "../../source/core/slang-string-util.h" +#include "../../source/core/slang-string.h" +#include "../../source/core/slang-writer.h" +#include "../../source/compiler-core/slang-json-rpc-connection.h" +#include "language-server-protocol.h" + +namespace Slang +{ + class LanguageServer + { + public: + RefPtr m_connection; + ComPtr m_session; + bool m_quit = false; + List m_workspaceFolders; + + SlangResult init(const LanguageServerProtocol::InitializeParams& args); + SlangResult execute(); + void update(); + SlangResult didOpenTextDocument( + const LanguageServerProtocol::DidOpenTextDocumentParams& args); + SlangResult didCloseTextDocument( + const LanguageServerProtocol::DidCloseTextDocumentParams& args); + SlangResult didChangeTextDocument( + const LanguageServerProtocol::DidChangeTextDocumentParams& args); + + private: + SlangResult _executeSingle(); + slang::IGlobalSession* getOrCreateGlobalSession(); + }; +} -- cgit v1.2.3