♻️ 使用module重构所有代码
This commit is contained in:
+38
-6
@@ -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);
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user