#include "mlir/Tools/lsp-server-support/Protocol.h"
#include "mlir/Tools/lsp-server-support/Logging.h"
#include "llvm/ADT/Hashing.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringSet.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/Format.h"
#include "llvm/Support/FormatVariadic.h"
#include "llvm/Support/JSON.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/raw_ostream.h"
usingnamespacemlir;
usingnamespacemlir::lsp;
template <typename T>
static bool mapOptOrNull(const llvm::json::Value ¶ms,
llvm::StringLiteral prop, T &out,
llvm::json::Path path) { … }
char LSPError::ID;
static bool isWindowsPath(StringRef path) { … }
static bool isNetworkPath(StringRef path) { … }
static bool shouldEscapeInURI(unsigned char c) { … }
static void percentEncode(StringRef content, std::string &out) { … }
static std::string percentDecode(StringRef content) { … }
static StringSet<> &getSupportedSchemes() { … }
static bool isStructurallyValidScheme(StringRef scheme) { … }
static llvm::Expected<std::string> uriFromAbsolutePath(StringRef absolutePath,
StringRef scheme) { … }
static llvm::Expected<std::string> getAbsolutePath(StringRef authority,
StringRef body) { … }
static llvm::Expected<std::string> parseFilePathFromURI(StringRef origUri) { … }
llvm::Expected<URIForFile> URIForFile::fromURI(StringRef uri) { … }
llvm::Expected<URIForFile> URIForFile::fromFile(StringRef absoluteFilepath,
StringRef scheme) { … }
StringRef URIForFile::scheme() const { … }
void URIForFile::registerSupportedScheme(StringRef scheme) { … }
bool mlir::lsp::fromJSON(const llvm::json::Value &value, URIForFile &result,
llvm::json::Path path) { … }
llvm::json::Value mlir::lsp::toJSON(const URIForFile &value) { … }
raw_ostream &mlir::lsp::operator<<(raw_ostream &os, const URIForFile &value) { … }
bool mlir::lsp::fromJSON(const llvm::json::Value &value,
ClientCapabilities &result, llvm::json::Path path) { … }
bool mlir::lsp::fromJSON(const llvm::json::Value &value, ClientInfo &result,
llvm::json::Path path) { … }
bool mlir::lsp::fromJSON(const llvm::json::Value &value, TraceLevel &result,
llvm::json::Path path) { … }
bool mlir::lsp::fromJSON(const llvm::json::Value &value,
InitializeParams &result, llvm::json::Path path) { … }
bool mlir::lsp::fromJSON(const llvm::json::Value &value,
TextDocumentItem &result, llvm::json::Path path) { … }
llvm::json::Value mlir::lsp::toJSON(const TextDocumentIdentifier &value) { … }
bool mlir::lsp::fromJSON(const llvm::json::Value &value,
TextDocumentIdentifier &result,
llvm::json::Path path) { … }
llvm::json::Value
mlir::lsp::toJSON(const VersionedTextDocumentIdentifier &value) { … }
bool mlir::lsp::fromJSON(const llvm::json::Value &value,
VersionedTextDocumentIdentifier &result,
llvm::json::Path path) { … }
bool mlir::lsp::fromJSON(const llvm::json::Value &value, Position &result,
llvm::json::Path path) { … }
llvm::json::Value mlir::lsp::toJSON(const Position &value) { … }
raw_ostream &mlir::lsp::operator<<(raw_ostream &os, const Position &value) { … }
bool mlir::lsp::fromJSON(const llvm::json::Value &value, Range &result,
llvm::json::Path path) { … }
llvm::json::Value mlir::lsp::toJSON(const Range &value) { … }
raw_ostream &mlir::lsp::operator<<(raw_ostream &os, const Range &value) { … }
bool mlir::lsp::fromJSON(const llvm::json::Value &value, Location &result,
llvm::json::Path path) { … }
llvm::json::Value mlir::lsp::toJSON(const Location &value) { … }
raw_ostream &mlir::lsp::operator<<(raw_ostream &os, const Location &value) { … }
bool mlir::lsp::fromJSON(const llvm::json::Value &value,
TextDocumentPositionParams &result,
llvm::json::Path path) { … }
bool mlir::lsp::fromJSON(const llvm::json::Value &value,
ReferenceContext &result, llvm::json::Path path) { … }
bool mlir::lsp::fromJSON(const llvm::json::Value &value,
ReferenceParams &result, llvm::json::Path path) { … }
bool mlir::lsp::fromJSON(const llvm::json::Value &value,
DidOpenTextDocumentParams &result,
llvm::json::Path path) { … }
bool mlir::lsp::fromJSON(const llvm::json::Value &value,
DidCloseTextDocumentParams &result,
llvm::json::Path path) { … }
LogicalResult
TextDocumentContentChangeEvent::applyTo(std::string &contents) const { … }
LogicalResult TextDocumentContentChangeEvent::applyTo(
ArrayRef<TextDocumentContentChangeEvent> changes, std::string &contents) { … }
bool mlir::lsp::fromJSON(const llvm::json::Value &value,
TextDocumentContentChangeEvent &result,
llvm::json::Path path) { … }
bool mlir::lsp::fromJSON(const llvm::json::Value &value,
DidChangeTextDocumentParams &result,
llvm::json::Path path) { … }
static llvm::StringRef toTextKind(MarkupKind kind) { … }
raw_ostream &mlir::lsp::operator<<(raw_ostream &os, MarkupKind kind) { … }
llvm::json::Value mlir::lsp::toJSON(const MarkupContent &mc) { … }
llvm::json::Value mlir::lsp::toJSON(const Hover &hover) { … }
llvm::json::Value mlir::lsp::toJSON(const DocumentSymbol &symbol) { … }
bool mlir::lsp::fromJSON(const llvm::json::Value &value,
DocumentSymbolParams &result, llvm::json::Path path) { … }
bool mlir::lsp::fromJSON(const llvm::json::Value &value,
DiagnosticRelatedInformation &result,
llvm::json::Path path) { … }
llvm::json::Value mlir::lsp::toJSON(const DiagnosticRelatedInformation &info) { … }
llvm::json::Value mlir::lsp::toJSON(DiagnosticTag tag) { … }
bool mlir::lsp::fromJSON(const llvm::json::Value &value, DiagnosticTag &result,
llvm::json::Path path) { … }
llvm::json::Value mlir::lsp::toJSON(const Diagnostic &diag) { … }
bool mlir::lsp::fromJSON(const llvm::json::Value &value, Diagnostic &result,
llvm::json::Path path) { … }
llvm::json::Value mlir::lsp::toJSON(const PublishDiagnosticsParams ¶ms) { … }
bool mlir::lsp::fromJSON(const llvm::json::Value &value, TextEdit &result,
llvm::json::Path path) { … }
llvm::json::Value mlir::lsp::toJSON(const TextEdit &value) { … }
raw_ostream &mlir::lsp::operator<<(raw_ostream &os, const TextEdit &value) { … }
bool mlir::lsp::fromJSON(const llvm::json::Value &value,
CompletionItemKind &result, llvm::json::Path path) { … }
CompletionItemKind mlir::lsp::adjustKindToCapability(
CompletionItemKind kind,
CompletionItemKindBitset &supportedCompletionItemKinds) { … }
bool mlir::lsp::fromJSON(const llvm::json::Value &value,
CompletionItemKindBitset &result,
llvm::json::Path path) { … }
llvm::json::Value mlir::lsp::toJSON(const CompletionItem &value) { … }
raw_ostream &mlir::lsp::operator<<(raw_ostream &os,
const CompletionItem &value) { … }
bool mlir::lsp::operator<(const CompletionItem &lhs,
const CompletionItem &rhs) { … }
llvm::json::Value mlir::lsp::toJSON(const CompletionList &value) { … }
bool mlir::lsp::fromJSON(const llvm::json::Value &value,
CompletionContext &result, llvm::json::Path path) { … }
bool mlir::lsp::fromJSON(const llvm::json::Value &value,
CompletionParams &result, llvm::json::Path path) { … }
llvm::json::Value mlir::lsp::toJSON(const ParameterInformation &value) { … }
llvm::json::Value mlir::lsp::toJSON(const SignatureInformation &value) { … }
raw_ostream &mlir::lsp::operator<<(raw_ostream &os,
const SignatureInformation &value) { … }
llvm::json::Value mlir::lsp::toJSON(const SignatureHelp &value) { … }
bool mlir::lsp::fromJSON(const llvm::json::Value &value,
DocumentLinkParams &result, llvm::json::Path path) { … }
llvm::json::Value mlir::lsp::toJSON(const DocumentLink &value) { … }
bool mlir::lsp::fromJSON(const llvm::json::Value &value,
InlayHintsParams &result, llvm::json::Path path) { … }
llvm::json::Value mlir::lsp::toJSON(const InlayHint &value) { … }
bool mlir::lsp::operator==(const InlayHint &lhs, const InlayHint &rhs) { … }
bool mlir::lsp::operator<(const InlayHint &lhs, const InlayHint &rhs) { … }
llvm::raw_ostream &mlir::lsp::operator<<(llvm::raw_ostream &os,
InlayHintKind value) { … }
bool mlir::lsp::fromJSON(const llvm::json::Value &value,
CodeActionContext &result, llvm::json::Path path) { … }
bool mlir::lsp::fromJSON(const llvm::json::Value &value,
CodeActionParams &result, llvm::json::Path path) { … }
bool mlir::lsp::fromJSON(const llvm::json::Value &value, WorkspaceEdit &result,
llvm::json::Path path) { … }
llvm::json::Value mlir::lsp::toJSON(const WorkspaceEdit &value) { … }
const llvm::StringLiteral CodeAction::kQuickFix = …;
const llvm::StringLiteral CodeAction::kRefactor = …;
const llvm::StringLiteral CodeAction::kInfo = …;
llvm::json::Value mlir::lsp::toJSON(const CodeAction &value) { … }