Files
clice/include/Server/LSPConverter.h
2025-02-26 13:20:34 +08:00

30 lines
686 B
C++

#pragma once
#include "Config.h"
#include "Async/Async.h"
#include "Feature/Hover.h"
#include "Feature/InlayHint.h"
#include "Feature/FoldingRange.h"
#include "Feature/DocumentSymbol.h"
#include "Feature/SemanticTokens.h"
namespace clice {
/// Responsible for converting between LSP and internal types.
class LSPConverter {
public:
using Result = async::Task<json::Value>;
Result convert(llvm::StringRef path, llvm::ArrayRef<feature::SemanticToken> tokens);
Result convert(llvm::StringRef path, llvm::ArrayRef<feature::FoldingRange> foldings);
Result convert(const feature::Hover& hover);
private:
proto::PositionEncodingKind kind;
};
} // namespace clice