1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161
|
#include "LSP/json_rpc_params.h"
//===----------------------------------------------------------------------------------
// TextDocumentPositionParams
//===----------------------------------------------------------------------------------
namespace LSP
{
TextDocumentPositionParams::TextDocumentPositionParams() {}
void TextDocumentPositionParams::FromJSON(const JSONItem& json)
{
m_textDocument.FromJSON(json["textDocument"]);
m_position.FromJSON(json["position"]);
}
JSONItem TextDocumentPositionParams::ToJSON(const wxString& name) const
{
JSONItem json = JSONItem::createObject(name);
json.append(m_textDocument.ToJSON("textDocument"));
json.append(m_position.ToJSON("position"));
return json;
}
//===----------------------------------------------
// SemanticTokensParams
//===----------------------------------------------
SemanticTokensParams::SemanticTokensParams() {}
void SemanticTokensParams::FromJSON(const JSONItem& json) { m_textDocument.FromJSON(json["textDocument"]); }
JSONItem SemanticTokensParams::ToJSON(const wxString& name) const
{
JSONItem json = JSONItem::createObject(name);
json.append(m_textDocument.ToJSON("textDocument"));
return json;
}
//===----------------------------------------------------------------------------------
// DidOpenTextDocumentParams
//===----------------------------------------------------------------------------------
DidOpenTextDocumentParams::DidOpenTextDocumentParams() {}
void DidOpenTextDocumentParams::FromJSON(const JSONItem& json) { m_textDocument.FromJSON(json["textDocument"]); }
JSONItem DidOpenTextDocumentParams::ToJSON(const wxString& name) const
{
JSONItem json = JSONItem::createObject(name);
json.append(m_textDocument.ToJSON("textDocument"));
return json;
}
//===----------------------------------------------------------------------------------
// DidCloseTextDocumentParams
//===----------------------------------------------------------------------------------
DidCloseTextDocumentParams::DidCloseTextDocumentParams() {}
void DidCloseTextDocumentParams::FromJSON(const JSONItem& json) { m_textDocument.FromJSON(json["textDocument"]); }
JSONItem DidCloseTextDocumentParams::ToJSON(const wxString& name) const
{
JSONItem json = JSONItem::createObject(name);
json.append(m_textDocument.ToJSON("textDocument"));
return json;
}
//===----------------------------------------------------------------------------------
// DidChangeTextDocumentParams
//===----------------------------------------------------------------------------------
DidChangeTextDocumentParams::DidChangeTextDocumentParams() {}
void DidChangeTextDocumentParams::FromJSON(const JSONItem& json)
{
m_textDocument.FromJSON(json["textDocument"]);
m_contentChanges.clear();
if(json.hasNamedObject("contentChanges")) {
JSONItem arr = json.namedObject("contentChanges");
int count = arr.arraySize();
for(int i = 0; i < count; ++i) {
TextDocumentContentChangeEvent c;
c.FromJSON(arr.arrayItem(i));
m_contentChanges.push_back(c);
}
}
}
JSONItem DidChangeTextDocumentParams::ToJSON(const wxString& name) const
{
JSONItem json = JSONItem::createObject(name);
json.append(m_textDocument.ToJSON("textDocument"));
JSONItem arr = JSONItem::createArray("contentChanges");
for(size_t i = 0; i < m_contentChanges.size(); ++i) {
arr.arrayAppend(m_contentChanges[i].ToJSON(""));
}
json.append(arr);
return json;
}
//===----------------------------------------------------------------------------------
// DidSaveTextDocumentParams
//===----------------------------------------------------------------------------------
DidSaveTextDocumentParams::DidSaveTextDocumentParams() {}
void DidSaveTextDocumentParams::FromJSON(const JSONItem& json)
{
m_textDocument.FromJSON(json["textDocument"]);
m_text = json["text"].toString();
}
JSONItem DidSaveTextDocumentParams::ToJSON(const wxString& name) const
{
JSONItem json = JSONItem::createObject(name);
json.append(m_textDocument.ToJSON("textDocument"));
json.addProperty("text", m_text);
return json;
}
//===----------------------------------------------------------------------------------
// CompletionParams
//===----------------------------------------------------------------------------------
CompletionParams::CompletionParams() {}
void CompletionParams::FromJSON(const JSONItem& json) { TextDocumentPositionParams::FromJSON(json); }
JSONItem CompletionParams::ToJSON(const wxString& name) const
{
JSONItem json = TextDocumentPositionParams::ToJSON(name);
return json;
}
//===----------------------------------------------------------------------------------
// DocumentSymbolParams
//===----------------------------------------------------------------------------------
DocumentSymbolParams::DocumentSymbolParams() {}
void DocumentSymbolParams::FromJSON(const JSONItem& json) { m_textDocument.FromJSON(json["textDocument"]); }
JSONItem DocumentSymbolParams::ToJSON(const wxString& name) const
{
JSONItem json = JSONItem::createObject(name);
json.append(m_textDocument.ToJSON("textDocument"));
return json;
}
ReferenceParams::ReferenceParams(bool includeDeclaration)
: m_includeDeclaration(includeDeclaration)
{
}
void ReferenceParams::FromJSON(const JSONItem& json)
{
TextDocumentPositionParams::FromJSON(json);
m_includeDeclaration = json["context"]["includeDeclaration"].toBool(m_includeDeclaration);
}
JSONItem ReferenceParams::ToJSON(const wxString& name) const
{
JSONItem json = TextDocumentPositionParams::ToJSON(name);
auto context = json.AddObject("context");
context.addProperty("includeDeclaration", m_includeDeclaration);
return json;
}
}; // namespace LSP
|