📦 deps(lsp_server): update conan dependencies
lsp-server ci / build-and-test (push) Failing after 0s
lsp-server ci / build-and-test (push) Failing after 0s
This commit is contained in:
@@ -6,7 +6,10 @@ export module lsp.test.lsp_any.transformer;
|
||||
|
||||
import lsp.test.framework;
|
||||
import lsp.protocol.common.basic_types;
|
||||
import lsp.protocol.common.message;
|
||||
import lsp.protocol.text_document.completion;
|
||||
import lsp.codec.common;
|
||||
import lsp.codec.facade;
|
||||
import lsp.codec.transformer;
|
||||
|
||||
export namespace lsp::test
|
||||
@@ -69,6 +72,7 @@ export namespace lsp::test
|
||||
static TestResult testNestedVector();
|
||||
static TestResult testNestedLSPObject();
|
||||
static TestResult testMixedTypeNesting();
|
||||
static TestResult testCompletionListWithDataObject();
|
||||
};
|
||||
}
|
||||
|
||||
@@ -124,6 +128,7 @@ namespace lsp::test
|
||||
runner.addTest("Transformer - 嵌套Vector", testNestedVector);
|
||||
runner.addTest("Transformer - 嵌套LSPObject", testNestedLSPObject);
|
||||
runner.addTest("Transformer - 混合类型嵌套", testMixedTypeNesting);
|
||||
runner.addTest("Transformer - CompletionList data对象", testCompletionListWithDataObject);
|
||||
}
|
||||
|
||||
// ==================== ToLSPAny 基本类型测试 ====================
|
||||
@@ -717,4 +722,32 @@ namespace lsp::test
|
||||
return result;
|
||||
}
|
||||
|
||||
TestResult TransformerTests::testCompletionListWithDataObject()
|
||||
{
|
||||
TestResult result;
|
||||
result.passed = true;
|
||||
|
||||
const auto response_json = std::string{
|
||||
R"json({"jsonrpc":"2.0","id":"c1","result":{"isIncomplete":false,"itemDefaults":{},"items":[{"data":{"class":"Widget","ctx":"call","is_static":true,"kind":"method","name":"StaticFoo","unit":"MainUnit","uri":"file:///home/csh/windows_share/tinysoft/tsl-devkit/lsp-server/test/test_provider/fixtures/main_unit.tsf"},"kind":2,"label":"StaticFoo","labelDetails":{"description":"[E]","detail":"(y: integer)"}}]}})json"
|
||||
};
|
||||
auto response = transform::Deserialize<protocol::ResponseMessage>(response_json);
|
||||
|
||||
assertTrue(response.has_value(), "应该能反序列化 ResponseMessage");
|
||||
assertTrue(response->result.has_value(), "ResponseMessage.result 应该有值");
|
||||
|
||||
auto completion_list = transform::FromLSPAny.template operator()<protocol::CompletionList>(response->result.value());
|
||||
|
||||
assertEqual(size_t(1), completion_list.items.size(), "应该保留一个补全项");
|
||||
assertTrue(completion_list.items[0].data.has_value(), "CompletionItem.data 应该有值");
|
||||
assertTrue(completion_list.items[0].data->Is<protocol::LSPObject>(), "CompletionItem.data 应该是对象");
|
||||
|
||||
const auto& result_data = completion_list.items[0].data->Get<protocol::LSPObject>();
|
||||
assertEqual(std::string("Widget"), result_data.at("class").Get<protocol::string>(), "data.class 应该保留");
|
||||
assertEqual(std::string("call"), result_data.at("ctx").Get<protocol::string>(), "data.ctx 应该保留");
|
||||
assertEqual(true, result_data.at("is_static").Get<protocol::boolean>(), "data.is_static 应该保留");
|
||||
|
||||
result.message = "成功";
|
||||
return result;
|
||||
}
|
||||
|
||||
} // namespace lsp::test
|
||||
|
||||
Reference in New Issue
Block a user