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-protocol.h | 148 ++++++++++++++++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 tools/slangd/language-server-protocol.h (limited to 'tools/slangd/language-server-protocol.h') diff --git a/tools/slangd/language-server-protocol.h b/tools/slangd/language-server-protocol.h new file mode 100644 index 000000000..c76f91d5c --- /dev/null +++ b/tools/slangd/language-server-protocol.h @@ -0,0 +1,148 @@ +#pragma once + +#include "../../slang-com-helper.h" +#include "../../slang-com-ptr.h" +#include "../../slang.h" + +#include "../../source/core/slang-rtti-info.h" +#include "../../source/compiler-core/slang-json-value.h" + +namespace Slang +{ +namespace LanguageServerProtocol +{ + struct ServerInfo + { + String name; + String version; + + static const StructRttiInfo g_rttiInfo; + }; + + enum class TextDocumentSyncKind + { + None = 0, + Full = 1, + Incremental = 2 + }; + + struct TextDocumentSyncOptions + { + bool openClose; + int32_t change; // TextDocumentSyncKind + static const StructRttiInfo g_rttiInfo; + }; + + struct TextDocumentItem + { + String uri; + String languageId; + int version; + String text; + static const StructRttiInfo g_rttiInfo; + }; + + struct TextDocumentIdentifier + { + String uri; + static const StructRttiInfo g_rttiInfo; + }; + + struct VersionedTextDocumentIdentifier + { + String uri; + int version; + static const StructRttiInfo g_rttiInfo; + }; + + struct Position + { + int line = -1; + int character = -1; + static const StructRttiInfo g_rttiInfo; + }; + + struct Range + { + Position start; + Position end; + static const StructRttiInfo g_rttiInfo; + }; + + struct DidOpenTextDocumentParams + { + TextDocumentItem textDocument; + static const StructRttiInfo g_rttiInfo; + static const UnownedStringSlice methodName; + }; + + struct TextDocumentContentChangeEvent + { + Range range; // optional + String text; + static const StructRttiInfo g_rttiInfo; + }; + + struct DidChangeTextDocumentParams + { + VersionedTextDocumentIdentifier textDocument; + List contentChanges; + static const StructRttiInfo g_rttiInfo; + static const UnownedStringSlice methodName; + + }; + + struct DidCloseTextDocumentParams + { + TextDocumentIdentifier textDocument; + static const StructRttiInfo g_rttiInfo; + static const UnownedStringSlice methodName; + }; + + struct ServerCapabilities + { + String positionEncoding; + TextDocumentSyncOptions textDocumentSync; + static const StructRttiInfo g_rttiInfo; + }; + + struct WorkspaceFolder + { + String uri; + String name; + static const StructRttiInfo g_rttiInfo; + }; + + struct InitializeParams + { + List workspaceFolders; + static const UnownedStringSlice methodName; + static const StructRttiInfo g_rttiInfo; + }; + + struct NullResponse + { + static const StructRttiInfo g_rttiInfo; + static NullResponse* get(); + }; + + struct InitializeResult + { + ServerCapabilities capabilities; + ServerInfo serverInfo; + + static const StructRttiInfo g_rttiInfo; + }; + + struct ShutdownParams + { + static const UnownedStringSlice methodName; + }; + + struct ExitParams + { + static const UnownedStringSlice methodName; + }; + +} +} // namespace LanguageServerProtocol -- cgit v1.2.3