🎨 style(core): normalize lifecycle implementation

This commit is contained in:
csh
2026-07-14 12:08:09 +08:00
parent 12e1a87b2b
commit 5a02bd10f9
3 changed files with 38 additions and 46 deletions
+5 -6
View File
@@ -45,10 +45,9 @@ export namespace lsp::core
public: public:
ExecutionContext(scheduler::async_executor::AsyncExecutor& scheduler, ExecutionContext(scheduler::async_executor::AsyncExecutor& scheduler,
manager::ManagerHub& manager_hub, manager::ManagerHub& manager_hub,
std::stop_token stop_token = {}) std::stop_token stop_token = {}) : async_executor_(scheduler),
: async_executor_(scheduler), manager_hub_(manager_hub),
manager_hub_(manager_hub), stop_token_(stop_token)
stop_token_(stop_token)
{ {
} }
@@ -120,8 +119,8 @@ namespace lsp::core
{ {
RequestDispatcher::RequestDispatcher( RequestDispatcher::RequestDispatcher(
scheduler::async_executor::AsyncExecutor& scheduler, scheduler::async_executor::AsyncExecutor& scheduler,
manager::ManagerHub& manager_hub) manager::ManagerHub& manager_hub) : async_executor_(scheduler),
: async_executor_(scheduler), manager_hub_(manager_hub) manager_hub_(manager_hub)
{ {
} }
@@ -171,8 +171,7 @@ namespace lsp::test::provider
manager::ManagerHub hub{}; manager::ManagerHub hub{};
core::ExecutionContext context; core::ExecutionContext context;
ProviderEnv() ProviderEnv() : context(scheduler, hub)
: context(scheduler, hub)
{ {
hub.Initialize(); hub.Initialize();
} }
@@ -1411,8 +1410,7 @@ namespace lsp::test::provider
auto tooltip_it = resolved.find("tooltip"); auto tooltip_it = resolved.find("tooltip");
assertTrue(tooltip_it != resolved.end(), "InlayHint resolve should set tooltip"); assertTrue(tooltip_it != resolved.end(), "InlayHint resolve should set tooltip");
assertTrue(tooltip_it->second.Is<protocol::string>(), "InlayHint tooltip should be string"); assertTrue(tooltip_it->second.Is<protocol::string>(), "InlayHint tooltip should be string");
assertEqual(std::string("param: int"), tooltip_it->second.Get<protocol::string>(), assertEqual(std::string("param: int"), tooltip_it->second.Get<protocol::string>(), "InlayHint tooltip should use detail");
"InlayHint tooltip should use detail");
return result; return result;
} }
@@ -2891,10 +2889,8 @@ namespace lsp::test::provider
{ {
protocol::LSPObject diagnostic; protocol::LSPObject diagnostic;
diagnostic["range"] = protocol::LSPObject{ diagnostic["range"] = protocol::LSPObject{
{ "start", protocol::LSPObject{ { "line", static_cast<protocol::integer>(error.location.start_line) }, { "start", protocol::LSPObject{ { "line", static_cast<protocol::integer>(error.location.start_line) }, { "character", static_cast<protocol::integer>(error.location.start_column) } } },
{ "character", static_cast<protocol::integer>(error.location.start_column) } } }, { "end", protocol::LSPObject{ { "line", static_cast<protocol::integer>(error.location.end_line) }, { "character", static_cast<protocol::integer>(error.location.end_column) } } },
{ "end", protocol::LSPObject{ { "line", static_cast<protocol::integer>(error.location.end_line) },
{ "character", static_cast<protocol::integer>(error.location.end_column) } } },
}; };
diagnostic["message"] = error.message; diagnostic["message"] = error.message;
diagnostics.emplace_back(std::move(diagnostic)); diagnostics.emplace_back(std::move(diagnostic));
@@ -114,8 +114,7 @@ namespace lsp::test::provider
manager::ManagerHub hub{}; manager::ManagerHub hub{};
core::ExecutionContext context; core::ExecutionContext context;
ProviderEnv() ProviderEnv() : context(scheduler, hub)
: context(scheduler, hub)
{ {
hub.Initialize(); hub.Initialize();
} }
@@ -126,10 +125,8 @@ namespace lsp::test::provider
const std::string& expected_name) const std::string& expected_name)
{ {
Provider provider; Provider provider;
assertEqual(expected_method, provider.GetMethod(), assertEqual(expected_method, provider.GetMethod(), "GetMethod mismatch for " + expected_name);
"GetMethod mismatch for " + expected_name); assertEqual(expected_name, provider.GetProviderName(), "GetProviderName mismatch for " + expected_name);
assertEqual(expected_name, provider.GetProviderName(),
"GetProviderName mismatch for " + expected_name);
} }
template<typename Provider> template<typename Provider>
@@ -177,53 +174,53 @@ namespace lsp::test::provider
CheckProviderMetadata<provider::text_document::Rename>("textDocument/rename", "TextDocumentRename"); CheckProviderMetadata<provider::text_document::Rename>("textDocument/rename", "TextDocumentRename");
CheckProviderMetadata<provider::text_document::References>("textDocument/references", "TextDocumentReferences"); CheckProviderMetadata<provider::text_document::References>("textDocument/references", "TextDocumentReferences");
CheckProviderMetadata<provider::text_document::SemanticTokensRange>("textDocument/semanticTokens/range", CheckProviderMetadata<provider::text_document::SemanticTokensRange>("textDocument/semanticTokens/range",
"TextDocumentSemanticTokensRange"); "TextDocumentSemanticTokensRange");
CheckProviderMetadata<provider::text_document::SemanticTokensFull>("textDocument/semanticTokens/full", CheckProviderMetadata<provider::text_document::SemanticTokensFull>("textDocument/semanticTokens/full",
"SemanticTokensFull"); "SemanticTokensFull");
CheckProviderMetadata<provider::text_document::SemanticTokensFullDelta>("textDocument/semanticTokens/full/delta", CheckProviderMetadata<provider::text_document::SemanticTokensFullDelta>("textDocument/semanticTokens/full/delta",
"SemanticTokensFullDelta"); "SemanticTokensFullDelta");
CheckProviderMetadata<provider::text_document::Hover>("textDocument/hover", "TextDocumentHover"); CheckProviderMetadata<provider::text_document::Hover>("textDocument/hover", "TextDocumentHover");
CheckProviderMetadata<provider::text_document::Formatting>("textDocument/formatting", "TextDocumentFormatting"); CheckProviderMetadata<provider::text_document::Formatting>("textDocument/formatting", "TextDocumentFormatting");
CheckProviderMetadata<provider::text_document::RangeFormatting>("textDocument/rangeFormatting", CheckProviderMetadata<provider::text_document::RangeFormatting>("textDocument/rangeFormatting",
"TextDocumentRangeFormatting"); "TextDocumentRangeFormatting");
CheckProviderMetadata<provider::text_document::OnTypeFormatting>("textDocument/onTypeFormatting", CheckProviderMetadata<provider::text_document::OnTypeFormatting>("textDocument/onTypeFormatting",
"TextDocumentOnTypeFormatting"); "TextDocumentOnTypeFormatting");
CheckProviderMetadata<provider::text_document::DocumentSymbol>("textDocument/documentSymbol", CheckProviderMetadata<provider::text_document::DocumentSymbol>("textDocument/documentSymbol",
"TextDocumentDocumentSymbol"); "TextDocumentDocumentSymbol");
CheckProviderMetadata<provider::text_document::DocumentLink>("textDocument/documentLink", CheckProviderMetadata<provider::text_document::DocumentLink>("textDocument/documentLink",
"TextDocumentDocumentLink"); "TextDocumentDocumentLink");
CheckProviderMetadata<provider::text_document::DocumentHighlight>("textDocument/documentHighlight", CheckProviderMetadata<provider::text_document::DocumentHighlight>("textDocument/documentHighlight",
"TextDocumentDocumentHighlight"); "TextDocumentDocumentHighlight");
CheckProviderMetadata<provider::text_document::DocumentColor>("textDocument/documentColor", CheckProviderMetadata<provider::text_document::DocumentColor>("textDocument/documentColor",
"TextDocumentDocumentColor"); "TextDocumentDocumentColor");
CheckProviderMetadata<provider::text_document::ColorPresentation>("textDocument/colorPresentation", CheckProviderMetadata<provider::text_document::ColorPresentation>("textDocument/colorPresentation",
"TextDocumentColorPresentation"); "TextDocumentColorPresentation");
CheckProviderMetadata<provider::text_document::CodeLens>("textDocument/codeLens", "TextDocumentCodeLens"); CheckProviderMetadata<provider::text_document::CodeLens>("textDocument/codeLens", "TextDocumentCodeLens");
CheckProviderMetadata<provider::text_document::CodeAction>("textDocument/codeAction", "TextDocumentCodeAction"); CheckProviderMetadata<provider::text_document::CodeAction>("textDocument/codeAction", "TextDocumentCodeAction");
CheckProviderMetadata<provider::text_document::PrepareTypeHierarchy>("textDocument/prepareTypeHierarchy", CheckProviderMetadata<provider::text_document::PrepareTypeHierarchy>("textDocument/prepareTypeHierarchy",
"TextDocumentPrepareTypeHierarchy"); "TextDocumentPrepareTypeHierarchy");
CheckProviderMetadata<provider::text_document::PrepareRename>("textDocument/prepareRename", CheckProviderMetadata<provider::text_document::PrepareRename>("textDocument/prepareRename",
"TextDocumentPrepareRename"); "TextDocumentPrepareRename");
CheckProviderMetadata<provider::text_document::PrepareCallHierarchy>("textDocument/prepareCallHierarchy", CheckProviderMetadata<provider::text_document::PrepareCallHierarchy>("textDocument/prepareCallHierarchy",
"TextDocumentPrepareCallHierarchy"); "TextDocumentPrepareCallHierarchy");
CheckProviderMetadata<provider::text_document::TypeDefinition>("textDocument/typeDefinition", CheckProviderMetadata<provider::text_document::TypeDefinition>("textDocument/typeDefinition",
"TextDocumentTypeDefinition"); "TextDocumentTypeDefinition");
CheckProviderMetadata<provider::text_document::Implementation>("textDocument/implementation", CheckProviderMetadata<provider::text_document::Implementation>("textDocument/implementation",
"TextDocumentImplementation"); "TextDocumentImplementation");
CheckProviderMetadata<provider::text_document::SelectionRange>("textDocument/selectionRange", CheckProviderMetadata<provider::text_document::SelectionRange>("textDocument/selectionRange",
"TextDocumentSelectionRange"); "TextDocumentSelectionRange");
CheckProviderMetadata<provider::text_document::SignatureHelp>("textDocument/signatureHelp", CheckProviderMetadata<provider::text_document::SignatureHelp>("textDocument/signatureHelp",
"TextDocumentSignatureHelp"); "TextDocumentSignatureHelp");
CheckProviderMetadata<provider::text_document::InlayHint>("textDocument/inlayHint", "TextDocumentInlayHint"); CheckProviderMetadata<provider::text_document::InlayHint>("textDocument/inlayHint", "TextDocumentInlayHint");
CheckProviderMetadata<provider::text_document::InlineValue>("textDocument/inlineValue", CheckProviderMetadata<provider::text_document::InlineValue>("textDocument/inlineValue",
"TextDocumentInlineValue"); "TextDocumentInlineValue");
CheckProviderMetadata<provider::text_document::LinkedEditingRange>("textDocument/linkedEditingRange", CheckProviderMetadata<provider::text_document::LinkedEditingRange>("textDocument/linkedEditingRange",
"TextDocumentLinkedEditingRange"); "TextDocumentLinkedEditingRange");
CheckProviderMetadata<provider::text_document::Moniker>("textDocument/moniker", "TextDocumentMoniker"); CheckProviderMetadata<provider::text_document::Moniker>("textDocument/moniker", "TextDocumentMoniker");
CheckProviderMetadata<provider::text_document::Diagnostic>("textDocument/diagnostic", CheckProviderMetadata<provider::text_document::Diagnostic>("textDocument/diagnostic",
"TextDocumentDiagnostic"); "TextDocumentDiagnostic");
CheckProviderMetadata<provider::text_document::FoldingRange>("textDocument/foldingRange", CheckProviderMetadata<provider::text_document::FoldingRange>("textDocument/foldingRange",
"TextDocumentFoldingRange"); "TextDocumentFoldingRange");
CheckProviderMetadata<provider::code_action::Resolve>("codeAction/resolve", "CodeActionResolve"); CheckProviderMetadata<provider::code_action::Resolve>("codeAction/resolve", "CodeActionResolve");
CheckProviderMetadata<provider::code_lens::Resolve>("codeLens/resolve", "CodeLensResolve"); CheckProviderMetadata<provider::code_lens::Resolve>("codeLens/resolve", "CodeLensResolve");
CheckProviderMetadata<provider::document_link::Resolve>("documentLink/resolve", "DocumentLinkResolve"); CheckProviderMetadata<provider::document_link::Resolve>("documentLink/resolve", "DocumentLinkResolve");
@@ -232,12 +229,12 @@ namespace lsp::test::provider
CheckProviderMetadata<provider::type_hierarchy::Supertypes>("typeHierarchy/supertypes", "TypeHierarchySupertypes"); CheckProviderMetadata<provider::type_hierarchy::Supertypes>("typeHierarchy/supertypes", "TypeHierarchySupertypes");
CheckProviderMetadata<provider::type_hierarchy::Subtypes>("typeHierarchy/subtypes", "TypeHierarchySubtypes"); CheckProviderMetadata<provider::type_hierarchy::Subtypes>("typeHierarchy/subtypes", "TypeHierarchySubtypes");
CheckProviderMetadata<provider::call_hierarchy::IncomingCalls>("callHierarchy/incomingCalls", CheckProviderMetadata<provider::call_hierarchy::IncomingCalls>("callHierarchy/incomingCalls",
"CallHierarchyIncomingCalls"); "CallHierarchyIncomingCalls");
CheckProviderMetadata<provider::call_hierarchy::OutgoingCalls>("callHierarchy/outgoingCalls", CheckProviderMetadata<provider::call_hierarchy::OutgoingCalls>("callHierarchy/outgoingCalls",
"CallHierarchyOutgoingCalls"); "CallHierarchyOutgoingCalls");
CheckProviderMetadata<provider::workspace::Diagnostic>("workspace/diagnostic", "WorkspaceDiagnostic"); CheckProviderMetadata<provider::workspace::Diagnostic>("workspace/diagnostic", "WorkspaceDiagnostic");
CheckProviderMetadata<provider::workspace::ExecuteCommand>("workspace/executeCommand", CheckProviderMetadata<provider::workspace::ExecuteCommand>("workspace/executeCommand",
"WorkspaceExecuteCommand"); "WorkspaceExecuteCommand");
CheckProviderMetadata<provider::workspace::WillCreateFiles>("workspace/willCreateFiles", "WorkspaceWillCreateFiles"); CheckProviderMetadata<provider::workspace::WillCreateFiles>("workspace/willCreateFiles", "WorkspaceWillCreateFiles");
CheckProviderMetadata<provider::workspace::WillDeleteFiles>("workspace/willDeleteFiles", "WorkspaceWillDeleteFiles"); CheckProviderMetadata<provider::workspace::WillDeleteFiles>("workspace/willDeleteFiles", "WorkspaceWillDeleteFiles");
CheckProviderMetadata<provider::workspace::WillRenameFiles>("workspace/willRenameFiles", "WorkspaceWillRenameFiles"); CheckProviderMetadata<provider::workspace::WillRenameFiles>("workspace/willRenameFiles", "WorkspaceWillRenameFiles");
@@ -260,11 +257,11 @@ namespace lsp::test::provider
CheckProviderMetadata<provider::telemetry::Event>("telemetry/event", "TelemetryEvent"); CheckProviderMetadata<provider::telemetry::Event>("telemetry/event", "TelemetryEvent");
CheckProviderMetadata<provider::text_document::PublishDiagnostics>("textDocument/publishDiagnostics", "TextDocumentPublishDiagnostics"); CheckProviderMetadata<provider::text_document::PublishDiagnostics>("textDocument/publishDiagnostics", "TextDocumentPublishDiagnostics");
CheckProviderMetadata<provider::workspace::DidChangeConfiguration>("workspace/didChangeConfiguration", CheckProviderMetadata<provider::workspace::DidChangeConfiguration>("workspace/didChangeConfiguration",
"WorkspaceDidChangeConfiguration"); "WorkspaceDidChangeConfiguration");
CheckProviderMetadata<provider::workspace::DidChangeWatchedFiles>("workspace/didChangeWatchedFiles", CheckProviderMetadata<provider::workspace::DidChangeWatchedFiles>("workspace/didChangeWatchedFiles",
"WorkspaceDidChangeWatchedFiles"); "WorkspaceDidChangeWatchedFiles");
CheckProviderMetadata<provider::workspace::DidChangeWorkspaceFolders>("workspace/didChangeWorkspaceFolders", CheckProviderMetadata<provider::workspace::DidChangeWorkspaceFolders>("workspace/didChangeWorkspaceFolders",
"WorkspaceDidChangeWorkspaceFolders"); "WorkspaceDidChangeWorkspaceFolders");
CheckProviderMetadata<provider::workspace::DidCreateFiles>("workspace/didCreateFiles", "WorkspaceDidCreateFiles"); CheckProviderMetadata<provider::workspace::DidCreateFiles>("workspace/didCreateFiles", "WorkspaceDidCreateFiles");
CheckProviderMetadata<provider::workspace::DidDeleteFiles>("workspace/didDeleteFiles", "WorkspaceDidDeleteFiles"); CheckProviderMetadata<provider::workspace::DidDeleteFiles>("workspace/didDeleteFiles", "WorkspaceDidDeleteFiles");
CheckProviderMetadata<provider::workspace::DidRenameFiles>("workspace/didRenameFiles", "WorkspaceDidRenameFiles"); CheckProviderMetadata<provider::workspace::DidRenameFiles>("workspace/didRenameFiles", "WorkspaceDidRenameFiles");