diff options
| author | Yong He <yonghe@outlook.com> | 2022-06-01 17:36:44 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-06-01 17:36:44 -0700 |
| commit | fa10f7dc23f8b93c0f9ef3fb5477871a20aaa974 (patch) | |
| tree | ebe579aed10d8cca9b6846fd18804361e8657221 /tools/slangd/language-server-protocol.h | |
| parent | fc84455d0d1cb6b9396ba869a17d6f8d4b65ecc6 (diff) | |
Add language server daemon. (#2251)
* Add language server daemon.
* Fix.
Co-authored-by: Yong He <yhe@nvidia.com>
Co-authored-by: jsmall-nvidia <jsmall@nvidia.com>
Co-authored-by: Theresa Foley <10618364+tangent-vector@users.noreply.github.com>
Diffstat (limited to 'tools/slangd/language-server-protocol.h')
| -rw-r--r-- | tools/slangd/language-server-protocol.h | 148 |
1 files changed, 148 insertions, 0 deletions
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<TextDocumentContentChangeEvent> 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<WorkspaceFolder> 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 |
