jak-project/lsp/protocol/document_synchronization.h
Tyler Wilding 01c70368e3
LSP: initial LSP implementation for IR files to assist with decompilation (#1647)
* lsp: json-rpc example is working, a decent place to start...

* lsp: vendor library

* lsp: cleanup and time to get started

* lsp: commit what i got so far

* lsp: example `initialize` payload

* lsp: switch to `stdio`

* stash

* modularize the lsp implementation

* lsp: implement first actual LSP feature - function names in outline

* lsp: produce document diagnostics

* lsp: remove unused third-party lib

* lsp: support hovering MIPS instructions in IR files

* lsp: basic go-to all-types definition

* stash

* lsp: cleanup code, just need to add it to the release artifacts

* fix some project configuration

* fix linux build

* lsp: add lsp to PR artifacts and release assets

* lsp: address feedback
2022-07-18 18:26:57 -04:00

36 lines
977 B
C++

#pragma once
#include "common_types.h"
namespace LSPSpec {
struct DidOpenTextDocumentParams {
TextDocumentItem m_textDocument;
};
void to_json(json& j, const DidOpenTextDocumentParams& obj);
void from_json(const json& j, DidOpenTextDocumentParams& obj);
struct TextDocumentContentChangeEvent {
std::string m_text;
};
void to_json(json& j, const TextDocumentContentChangeEvent& obj);
void from_json(const json& j, TextDocumentContentChangeEvent& obj);
struct DidChangeTextDocumentParams {
VersionedTextDocumentIdentifier m_textDocument;
std::vector<TextDocumentContentChangeEvent> m_contentChanges;
};
void to_json(json& j, const DidChangeTextDocumentParams& obj);
void from_json(const json& j, DidChangeTextDocumentParams& obj);
struct DidCloseTextDocumentParams {
TextDocumentIdentifier m_textDocument;
};
void to_json(json& j, const DidCloseTextDocumentParams& obj);
void from_json(const json& j, DidCloseTextDocumentParams& obj);
} // namespace LSPSpec