MLIR 22.0.0git
Protocol.h
Go to the documentation of this file.
1//===--- Protocol.h - Language Server Protocol Implementation ---*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// This file contains structs for LSP commands that are specific to the PDLL
10// server.
11//
12// Each struct has a toJSON and fromJSON function, that converts between
13// the struct and a JSON representation. (See JSON.h)
14//
15// Some structs also have operator<< serialization. This is for debugging and
16// tests, and is not generally machine-readable.
17//
18//===----------------------------------------------------------------------===//
19
20#ifndef LIB_MLIR_TOOLS_MLIRPDLLLSPSERVER_PROTOCOL_H_
21#define LIB_MLIR_TOOLS_MLIRPDLLLSPSERVER_PROTOCOL_H_
22
23#include "llvm/Support/LSP/Protocol.h"
24
25namespace mlir {
26namespace lsp {
27using llvm::lsp::URIForFile;
28
29//===----------------------------------------------------------------------===//
30// PDLLViewOutputParams
31//===----------------------------------------------------------------------===//
32
33/// The type of output to view from PDLL.
39
40/// Represents the parameters used when viewing the output of a PDLL file.
42 /// The URI of the document to view the output of.
43 URIForFile uri;
44
45 /// The kind of output to generate.
47};
48
49/// Add support for JSON serialization.
50bool fromJSON(const llvm::json::Value &value, PDLLViewOutputKind &result,
51 llvm::json::Path path);
52bool fromJSON(const llvm::json::Value &value, PDLLViewOutputParams &result,
53 llvm::json::Path path);
54
55//===----------------------------------------------------------------------===//
56// PDLLViewOutputResult
57//===----------------------------------------------------------------------===//
58
59/// Represents the result of viewing the output of a PDLL file.
61 /// The string representation of the output.
62 std::string output;
63};
64
65/// Add support for JSON serialization.
66llvm::json::Value toJSON(const PDLLViewOutputResult &value);
67
68} // namespace lsp
69} // namespace mlir
70
71#endif
bool fromJSON(const llvm::json::Value &value, PDLLViewOutputKind &result, llvm::json::Path path)
Add support for JSON serialization.
Definition Protocol.cpp:40
PDLLViewOutputKind
The type of output to view from PDLL.
Definition Protocol.h:34
llvm::json::Value toJSON(const PDLLViewOutputResult &value)
Add support for JSON serialization.
Definition Protocol.cpp:69
Include the generated interface declarations.
Represents the parameters used when viewing the output of a PDLL file.
Definition Protocol.h:41
URIForFile uri
The URI of the document to view the output of.
Definition Protocol.h:43
PDLLViewOutputKind kind
The kind of output to generate.
Definition Protocol.h:46
Represents the result of viewing the output of a PDLL file.
Definition Protocol.h:60
std::string output
The string representation of the output.
Definition Protocol.h:62