♻️ 使用module重构所有代码

This commit is contained in:
csh
2025-12-07 23:07:03 +08:00
parent 549f1d1b0a
commit f7d5a74615
369 changed files with 2272844 additions and 2202476 deletions
@@ -1,7 +1,39 @@
#include <spdlog/spdlog.h>
#include "./initialize.hpp"
#include "../../scheduler/async_executor.hpp"
#include "../../protocol/transform/facade.hpp"
module;
#include <format>
export module lsp.provider.initialize.initialize;
import spdlog;
import std;
import lsp.protocol;
import lsp.codec.facade;
import lsp.provider.base.interface;
import lsp.scheduler.async_executor;
namespace transform = lsp::codec;
export namespace lsp::provider
{
class Initialize : public IRequestProvider
{
public:
Initialize() = default;
std::string ProvideResponse(const protocol::RequestMessage& request, ExecutionContext& context) override;
std::string GetMethod() const override;
std::string GetProviderName() const override;
private:
protocol::InitializeResult BuildInitializeResult();
protocol::TextDocumentSyncOptions BuildTextDocumentSyncOptions();
protocol::CompletionOptions BuildCompletionOptions();
protocol::SemanticTokensOptions BuildSemanticTokenOptions();
void ProcessWorkspaceFolder(const std::vector<protocol::WorkspaceFolder>& workspace_folders, ExecutionContext& context);
};
}
namespace lsp::provider
{
@@ -115,12 +147,12 @@ namespace lsp::provider
auto& scheduler = context.GetScheduler();
for (const auto& workspace_folder : workspace_folders)
{
auto task_id = fmt::format("Load workspace symbols: {}", workspace_folder.uri);
auto task_id = std::format("Load workspace symbols: {}", workspace_folder.uri);
scheduler.Submit(task_id, [&manager_hub, uri = workspace_folder.uri, folder_name = workspace_folder.name]() -> std::optional<std::string> {
try
{
manager_hub.symbols().LoadWorkspace(uri);
return fmt::format("Loaded workspace {} symbols", uri);
return std::format("Loaded workspace {} symbols", uri);
}
catch (const std::exception& e)
{
@@ -1,23 +0,0 @@
#pragma once
#include "../base/interface.hpp"
namespace lsp::provider
{
class Initialize : public IRequestProvider
{
public:
Initialize() = default;
std::string ProvideResponse(const protocol::RequestMessage& request, ExecutionContext& context) override;
std::string GetMethod() const override;
std::string GetProviderName() const override;
private:
protocol::InitializeResult BuildInitializeResult();
protocol::TextDocumentSyncOptions BuildTextDocumentSyncOptions();
protocol::CompletionOptions BuildCompletionOptions();
protocol::SemanticTokensOptions BuildSemanticTokenOptions();
void ProcessWorkspaceFolder(const std::vector<protocol::WorkspaceFolder>& workspace_folders, ExecutionContext& context);
};
}