#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; Result convert(llvm::StringRef path, llvm::ArrayRef tokens); Result convert(llvm::StringRef path, llvm::ArrayRef foldings); Result convert(const feature::Hover& hover); private: proto::PositionEncodingKind kind; }; } // namespace clice