MLIR  20.0.0git
Classes | Typedefs | Enumerations | Functions | Variables
mlir::lsp Namespace Reference

Classes

class  CompilationDatabase
 This class contains a collection of compilation information for files provided to the language server, such as the available include directories. More...
 
class  Logger
 This class represents the main interface for logging, and allows for filtering logging based on different levels of severity or significance. More...
 
class  LSPError
 This class models an LSP error as an llvm::Error. More...
 
class  URIForFile
 URI in "file" scheme for a file. More...
 
struct  ClientCapabilities
 
struct  ClientInfo
 
struct  InitializeParams
 
struct  NoParams
 
struct  TextDocumentItem
 
struct  TextDocumentIdentifier
 
struct  VersionedTextDocumentIdentifier
 
struct  Position
 
struct  Range
 
struct  Location
 
struct  TextDocumentPositionParams
 
struct  ReferenceContext
 
struct  ReferenceParams
 
struct  DidOpenTextDocumentParams
 
struct  DidCloseTextDocumentParams
 
struct  TextDocumentContentChangeEvent
 
struct  DidChangeTextDocumentParams
 
struct  MarkupContent
 
struct  Hover
 
struct  DocumentSymbol
 Represents programming constructs like variables, classes, interfaces etc. More...
 
struct  DocumentSymbolParams
 
struct  DiagnosticRelatedInformation
 Represents a related message and source code location for a diagnostic. More...
 
struct  Diagnostic
 
struct  PublishDiagnosticsParams
 
struct  TextEdit
 
struct  CompletionItem
 
struct  CompletionList
 Represents a collection of completion items to be presented in the editor. More...
 
struct  CompletionContext
 
struct  CompletionParams
 
struct  ParameterInformation
 A single parameter of a particular signature. More...
 
struct  SignatureInformation
 Represents the signature of something callable. More...
 
struct  SignatureHelp
 Represents the signature of a callable. More...
 
struct  DocumentLinkParams
 Parameters for the document link request. More...
 
struct  DocumentLink
 A range in a text document that links to an internal or external resource, like another text document or a web site. More...
 
struct  InlayHintsParams
 A parameter literal used in inlay hint requests. More...
 
struct  InlayHint
 Inlay hint information. More...
 
struct  CodeActionContext
 
struct  CodeActionParams
 
struct  WorkspaceEdit
 
struct  CodeAction
 A code action represents a change that can be performed in code, e.g. More...
 
struct  SourceMgrInclude
 This class represents a single include within a root file. More...
 
class  JSONTransport
 A transport class that performs the JSON-RPC communication with the LSP client. More...
 
class  MessageHandler
 A handler used to process the incoming transport messages. More...
 
class  MLIRServer
 This class implements all of the MLIR related functionality necessary for a language server. More...
 
struct  MLIRConvertBytecodeParams
 This class represents the parameters used when converting between MLIR's bytecode and textual format. More...
 
struct  MLIRConvertBytecodeResult
 This class represents the result of converting between MLIR's bytecode and textual format. More...
 
class  PDLLServer
 This class implements all of the PDLL related functionality necessary for a language server. More...
 
struct  PDLLViewOutputParams
 Represents the parameters used when viewing the output of a PDLL file. More...
 
struct  PDLLViewOutputResult
 Represents the result of viewing the output of a PDLL file. More...
 
class  TableGenServer
 This class implements all of the TableGen related functionality necessary for a language server. More...
 

Typedefs

using InitializedParams = NoParams
 
using CompletionItemKindBitset = std::bitset< kCompletionItemKindMax+1 >
 
template<typename T >
using Callback = llvm::unique_function< void(llvm::Expected< T >)>
 A Callback<T> is a void function that accepts Expected<T>. More...
 
template<typename T >
using OutgoingNotification = llvm::unique_function< void(const T &)>
 An OutgoingNotification<T> is a function used for outgoing notifications send to the client. More...
 
template<typename T >
using OutgoingRequest = llvm::unique_function< void(const T &, llvm::json::Value id)>
 An OutgoingRequest<T> is a function used for outgoing requests to send to the client. More...
 
template<typename T >
using OutgoingRequestCallback = std::function< void(llvm::json::Value, llvm::Expected< T >)>
 An OutgoingRequestCallback is invoked when an outgoing request to the client receives a response in turn. More...
 

Enumerations

enum class  ErrorCode {
  ParseError = -32700 , InvalidRequest = -32600 , MethodNotFound = -32601 , InvalidParams = -32602 ,
  InternalError = -32603 , ServerNotInitialized = -32002 , UnknownErrorCode = -32001 , RequestCancelled = -32800 ,
  ContentModified = -32801 , RequestFailed = -32803
}
 
enum class  TextDocumentSyncKind { None = 0 , Full = 1 , Incremental = 2 }
 Defines how the host (editor) should sync document changes to the language server. More...
 
enum class  TraceLevel { Off = 0 , Messages = 1 , Verbose = 2 }
 
enum class  MarkupKind { PlainText , Markdown }
 Describes the content type that a client supports in various result literals like Hover. More...
 
enum class  SymbolKind {
  File = 1 , Module = 2 , Namespace = 3 , Package = 4 ,
  Class = 5 , Method = 6 , Property = 7 , Field = 8 ,
  Constructor = 9 , Enum = 10 , Interface = 11 , Function = 12 ,
  Variable = 13 , Constant = 14 , String = 15 , Number = 16 ,
  Boolean = 17 , Array = 18 , Object = 19 , Key = 20 ,
  Null = 21 , EnumMember = 22 , Struct = 23 , Event = 24 ,
  Operator = 25 , TypeParameter = 26
}
 
enum class  DiagnosticSeverity {
  Undetermined = 0 , Error = 1 , Warning = 2 , Information = 3 ,
  Hint = 4
}
 
enum class  DiagnosticTag { Unnecessary = 1 , Deprecated = 2 }
 
enum class  CompletionItemKind {
  Missing = 0 , Text = 1 , Method = 2 , Function = 3 ,
  Constructor = 4 , Field = 5 , Variable = 6 , Class = 7 ,
  Interface = 8 , Module = 9 , Property = 10 , Unit = 11 ,
  Value = 12 , Enum = 13 , Keyword = 14 , Snippet = 15 ,
  Color = 16 , File = 17 , Reference = 18 , Folder = 19 ,
  EnumMember = 20 , Constant = 21 , Struct = 22 , Event = 23 ,
  Operator = 24 , TypeParameter = 25
}
 The kind of a completion entry. More...
 
enum class  InsertTextFormat { Missing = 0 , PlainText = 1 , Snippet = 2 }
 Defines whether the insert text in a completion item should be interpreted as plain text or a snippet. More...
 
enum class  CompletionTriggerKind { Invoked = 1 , TriggerCharacter = 2 , TriggerTriggerForIncompleteCompletions = 3 }
 
enum class  InlayHintKind { Type = 1 , Parameter = 2 }
 Inlay hint kinds. More...
 
enum  JSONStreamStyle { Standard , Delimited }
 The encoding style of the JSON-RPC messages (both input and output). More...
 
enum class  PDLLViewOutputKind { AST , MLIR , CPP }
 The type of output to view from PDLL. More...
 

Functions

llvm::json::Value toJSON (const URIForFile &value)
 Add support for JSON serialization. More...
 
bool fromJSON (const llvm::json::Value &value, URIForFile &result, llvm::json::Path path)
 
raw_ostream & operator<< (raw_ostream &os, const URIForFile &value)
 
bool fromJSON (const llvm::json::Value &value, ClientCapabilities &result, llvm::json::Path path)
 Add support for JSON serialization. More...
 
bool fromJSON (const llvm::json::Value &value, ClientInfo &result, llvm::json::Path path)
 Add support for JSON serialization. More...
 
bool fromJSON (const llvm::json::Value &value, TraceLevel &result, llvm::json::Path path)
 Add support for JSON serialization. More...
 
bool fromJSON (const llvm::json::Value &value, InitializeParams &result, llvm::json::Path path)
 Add support for JSON serialization. More...
 
bool fromJSON (const llvm::json::Value &, NoParams &, llvm::json::Path)
 
bool fromJSON (const llvm::json::Value &value, TextDocumentItem &result, llvm::json::Path path)
 Add support for JSON serialization. More...
 
llvm::json::Value toJSON (const TextDocumentIdentifier &value)
 Add support for JSON serialization. More...
 
bool fromJSON (const llvm::json::Value &value, TextDocumentIdentifier &result, llvm::json::Path path)
 
llvm::json::Value toJSON (const VersionedTextDocumentIdentifier &value)
 Add support for JSON serialization. More...
 
bool fromJSON (const llvm::json::Value &value, VersionedTextDocumentIdentifier &result, llvm::json::Path path)
 
bool fromJSON (const llvm::json::Value &value, Position &result, llvm::json::Path path)
 Add support for JSON serialization. More...
 
llvm::json::Value toJSON (const Position &value)
 
raw_ostream & operator<< (raw_ostream &os, const Position &value)
 
bool fromJSON (const llvm::json::Value &value, Range &result, llvm::json::Path path)
 Add support for JSON serialization. More...
 
llvm::json::Value toJSON (const Range &value)
 
raw_ostream & operator<< (raw_ostream &os, const Range &value)
 
bool fromJSON (const llvm::json::Value &value, Location &result, llvm::json::Path path)
 Add support for JSON serialization. More...
 
llvm::json::Value toJSON (const Location &value)
 
raw_ostream & operator<< (raw_ostream &os, const Location &value)
 
bool fromJSON (const llvm::json::Value &value, TextDocumentPositionParams &result, llvm::json::Path path)
 Add support for JSON serialization. More...
 
bool fromJSON (const llvm::json::Value &value, ReferenceContext &result, llvm::json::Path path)
 Add support for JSON serialization. More...
 
bool fromJSON (const llvm::json::Value &value, ReferenceParams &result, llvm::json::Path path)
 Add support for JSON serialization. More...
 
bool fromJSON (const llvm::json::Value &value, DidOpenTextDocumentParams &result, llvm::json::Path path)
 Add support for JSON serialization. More...
 
bool fromJSON (const llvm::json::Value &value, DidCloseTextDocumentParams &result, llvm::json::Path path)
 Add support for JSON serialization. More...
 
bool fromJSON (const llvm::json::Value &value, TextDocumentContentChangeEvent &result, llvm::json::Path path)
 Add support for JSON serialization. More...
 
bool fromJSON (const llvm::json::Value &value, DidChangeTextDocumentParams &result, llvm::json::Path path)
 Add support for JSON serialization. More...
 
raw_ostream & operator<< (raw_ostream &os, MarkupKind kind)
 
llvm::json::Value toJSON (const MarkupContent &mc)
 Add support for JSON serialization. More...
 
llvm::json::Value toJSON (const Hover &hover)
 Add support for JSON serialization. More...
 
llvm::json::Value toJSON (const DocumentSymbol &symbol)
 Add support for JSON serialization. More...
 
bool fromJSON (const llvm::json::Value &value, DocumentSymbolParams &result, llvm::json::Path path)
 Add support for JSON serialization. More...
 
bool fromJSON (const llvm::json::Value &value, DiagnosticRelatedInformation &result, llvm::json::Path path)
 Add support for JSON serialization. More...
 
llvm::json::Value toJSON (const DiagnosticRelatedInformation &info)
 
llvm::json::Value toJSON (DiagnosticTag tag)
 Add support for JSON serialization. More...
 
bool fromJSON (const llvm::json::Value &value, DiagnosticTag &result, llvm::json::Path path)
 
llvm::json::Value toJSON (const Diagnostic &diag)
 Add support for JSON serialization. More...
 
bool fromJSON (const llvm::json::Value &value, Diagnostic &result, llvm::json::Path path)
 
llvm::json::Value toJSON (const PublishDiagnosticsParams &params)
 Add support for JSON serialization. More...
 
bool operator== (const TextEdit &lhs, const TextEdit &rhs)
 
bool fromJSON (const llvm::json::Value &value, TextEdit &result, llvm::json::Path path)
 
llvm::json::Value toJSON (const TextEdit &value)
 
raw_ostream & operator<< (raw_ostream &os, const TextEdit &value)
 
bool fromJSON (const llvm::json::Value &value, CompletionItemKind &result, llvm::json::Path path)
 
bool fromJSON (const llvm::json::Value &value, CompletionItemKindBitset &result, llvm::json::Path path)
 
CompletionItemKind adjustKindToCapability (CompletionItemKind kind, CompletionItemKindBitset &supportedCompletionItemKinds)
 
llvm::json::Value toJSON (const CompletionItem &value)
 Add support for JSON serialization. More...
 
raw_ostream & operator<< (raw_ostream &os, const CompletionItem &value)
 
bool operator< (const CompletionItem &lhs, const CompletionItem &rhs)
 
llvm::json::Value toJSON (const CompletionList &value)
 Add support for JSON serialization. More...
 
bool fromJSON (const llvm::json::Value &value, CompletionContext &result, llvm::json::Path path)
 Add support for JSON serialization. More...
 
bool fromJSON (const llvm::json::Value &value, CompletionParams &result, llvm::json::Path path)
 Add support for JSON serialization. More...
 
llvm::json::Value toJSON (const ParameterInformation &value)
 Add support for JSON serialization. More...
 
llvm::json::Value toJSON (const SignatureInformation &value)
 Add support for JSON serialization. More...
 
raw_ostream & operator<< (raw_ostream &os, const SignatureInformation &value)
 
llvm::json::Value toJSON (const SignatureHelp &value)
 Add support for JSON serialization. More...
 
bool fromJSON (const llvm::json::Value &value, DocumentLinkParams &result, llvm::json::Path path)
 Add support for JSON serialization. More...
 
llvm::json::Value toJSON (const DocumentLink &value)
 Add support for JSON serialization. More...
 
bool fromJSON (const llvm::json::Value &value, InlayHintsParams &result, llvm::json::Path path)
 Add support for JSON serialization. More...
 
llvm::json::Value toJSON (const InlayHint &)
 Add support for JSON serialization. More...
 
bool operator== (const InlayHint &lhs, const InlayHint &rhs)
 
bool operator< (const InlayHint &lhs, const InlayHint &rhs)
 
llvm::raw_ostream & operator<< (llvm::raw_ostream &os, InlayHintKind value)
 
bool fromJSON (const llvm::json::Value &value, CodeActionContext &result, llvm::json::Path path)
 Add support for JSON serialization. More...
 
bool fromJSON (const llvm::json::Value &value, CodeActionParams &result, llvm::json::Path path)
 Add support for JSON serialization. More...
 
bool fromJSON (const llvm::json::Value &value, WorkspaceEdit &result, llvm::json::Path path)
 Add support for JSON serialization. More...
 
llvm::json::Value toJSON (const WorkspaceEdit &value)
 
llvm::json::Value toJSON (const CodeAction &)
 Add support for JSON serialization. More...
 
SMRange convertTokenLocToRange (SMLoc loc, StringRef identifierChars="")
 Returns the range of a lexical token given a SMLoc corresponding to the start of an token location. More...
 
std::optional< std::string > extractSourceDocComment (llvm::SourceMgr &sourceMgr, SMLoc loc)
 Extract a documentation comment for the given location within the source manager. More...
 
bool contains (SMRange range, SMLoc loc)
 Returns true if the given range contains the given source location. More...
 
void gatherIncludeFiles (llvm::SourceMgr &sourceMgr, SmallVectorImpl< SourceMgrInclude > &includes)
 Given a source manager, gather all of the processed include files. More...
 
llvm::LogicalResult runMlirLSPServer (MLIRServer &server, JSONTransport &transport)
 Run the main loop of the LSP server using the given MLIR server and transport. More...
 
bool fromJSON (const llvm::json::Value &value, MLIRConvertBytecodeParams &result, llvm::json::Path path)
 Add support for JSON serialization. More...
 
llvm::json::Value toJSON (const MLIRConvertBytecodeResult &value)
 Add support for JSON serialization. More...
 
llvm::LogicalResult runPdllLSPServer (PDLLServer &server, JSONTransport &transport)
 Run the main loop of the LSP server using the given PDLL server and transport. More...
 
bool fromJSON (const llvm::json::Value &value, PDLLViewOutputKind &result, llvm::json::Path path)
 Add support for JSON serialization. More...
 
bool fromJSON (const llvm::json::Value &value, PDLLViewOutputParams &result, llvm::json::Path path)
 
llvm::json::Value toJSON (const PDLLViewOutputResult &value)
 Add support for JSON serialization. More...
 
llvm::LogicalResult runTableGenLSPServer (TableGenServer &server, JSONTransport &transport)
 Run the main loop of the LSP server using the given TableGen server and transport. More...
 

Variables

constexpr auto kCompletionItemKindMin
 
constexpr auto kCompletionItemKindMax
 

Typedef Documentation

◆ Callback

template<typename T >
using mlir::lsp::Callback = typedef llvm::unique_function<void(llvm::Expected<T>)>

A Callback<T> is a void function that accepts Expected<T>.

This is accepted by functions that logically return T.

Definition at line 96 of file Transport.h.

◆ CompletionItemKindBitset

Definition at line 803 of file Protocol.h.

◆ InitializedParams

Definition at line 220 of file Protocol.h.

◆ OutgoingNotification

template<typename T >
using mlir::lsp::OutgoingNotification = typedef llvm::unique_function<void(const T &)>

An OutgoingNotification<T> is a function used for outgoing notifications send to the client.

Definition at line 101 of file Transport.h.

◆ OutgoingRequest

template<typename T >
using mlir::lsp::OutgoingRequest = typedef llvm::unique_function<void(const T &, llvm::json::Value id)>

An OutgoingRequest<T> is a function used for outgoing requests to send to the client.

Definition at line 106 of file Transport.h.

◆ OutgoingRequestCallback

template<typename T >
using mlir::lsp::OutgoingRequestCallback = typedef std::function<void(llvm::json::Value, llvm::Expected<T>)>

An OutgoingRequestCallback is invoked when an outgoing request to the client receives a response in turn.

It is passed the original request's ID, as well as the response result.

Definition at line 113 of file Transport.h.

Enumeration Type Documentation

◆ CompletionItemKind

The kind of a completion entry.

Enumerator
Missing 
Text 
Method 
Function 
Constructor 
Field 
Variable 
Class 
Interface 
Module 
Property 
Unit 
Value 
Enum 
Keyword 
Snippet 
Color 
File 
Reference 
Folder 
EnumMember 
Constant 
Struct 
Event 
Operator 
TypeParameter 

Definition at line 768 of file Protocol.h.

◆ CompletionTriggerKind

Enumerator
Invoked 

Completion was triggered by typing an identifier (24x7 code complete), manual invocation (e.g Ctrl+Space) or via API.

TriggerCharacter 

Completion was triggered by a trigger character specified by the triggerCharacters properties of the CompletionRegistrationOptions.

TriggerTriggerForIncompleteCompletions 

Completion was re-triggered as the current completion list is incomplete.

Definition at line 913 of file Protocol.h.

◆ DiagnosticSeverity

Enumerator
Undetermined 

It is up to the client to interpret diagnostics as error, warning, info or hint.

Error 
Warning 
Information 
Hint 

Definition at line 667 of file Protocol.h.

◆ DiagnosticTag

Enumerator
Unnecessary 
Deprecated 

Definition at line 677 of file Protocol.h.

◆ ErrorCode

enum mlir::lsp::ErrorCode
strong
Enumerator
ParseError 
InvalidRequest 
MethodNotFound 
InvalidParams 
InternalError 
ServerNotInitialized 
UnknownErrorCode 
RequestCancelled 
ContentModified 
RequestFailed 

Definition at line 39 of file Protocol.h.

◆ InlayHintKind

Inlay hint kinds.

Enumerator
Type 

An inlay hint that for a type annotation.

An example of a type hint is a hint in this position: auto var ^ = expr; which shows the deduced type of the variable.

Parameter 

An inlay hint that is for a parameter.

An example of a parameter hint is a hint in this position: func(^arg); which shows the name of the corresponding parameter.

Definition at line 1082 of file Protocol.h.

◆ InsertTextFormat

Defines whether the insert text in a completion item should be interpreted as plain text or a snippet.

Enumerator
Missing 
PlainText 

The primary text to be inserted is treated as a plain string.

Snippet 

The primary text to be inserted is treated as a snippet.

A snippet can define tab stops and placeholders with $1, $2 and ${3:foo}. $0 defines the final tab stop, it defaults to the end of the snippet. Placeholders with equal identifiers are linked, that is typing in one will update others too.

See also: https//github.com/Microsoft/vscode/blob/master/src/vs/editor/contrib/snippet/common/snippet.md

Definition at line 817 of file Protocol.h.

◆ JSONStreamStyle

The encoding style of the JSON-RPC messages (both input and output).

Enumerator
Standard 

Encoding per the LSP specification, with mandatory Content-Length header.

Delimited 

Messages are delimited by a '// --—' line. Comment lines start with //.

Definition at line 39 of file Transport.h.

◆ MarkupKind

enum mlir::lsp::MarkupKind
strong

Describes the content type that a client supports in various result literals like Hover.

Enumerator
PlainText 
Markdown 

Definition at line 519 of file Protocol.h.

◆ PDLLViewOutputKind

The type of output to view from PDLL.

Enumerator
AST 
MLIR 
CPP 

Definition at line 32 of file Protocol.h.

◆ SymbolKind

enum mlir::lsp::SymbolKind
strong
Enumerator
File 
Module 
Namespace 
Package 
Class 
Method 
Property 
Field 
Constructor 
Enum 
Interface 
Function 
Variable 
Constant 
String 
Number 
Boolean 
Array 
Object 
Key 
Null 
EnumMember 
Struct 
Event 
Operator 
TypeParameter 

Definition at line 556 of file Protocol.h.

◆ TextDocumentSyncKind

Defines how the host (editor) should sync document changes to the language server.

Enumerator
None 

Documents should not be synced at all.

Full 

Documents are synced by always sending the full content of the document.

Incremental 

Documents are synced by sending the full content on open.

After that only incremental updates to the document are sent.

Definition at line 58 of file Protocol.h.

◆ TraceLevel

enum mlir::lsp::TraceLevel
strong
Enumerator
Off 
Messages 
Verbose 

Definition at line 187 of file Protocol.h.

Function Documentation

◆ adjustKindToCapability()

CompletionItemKind mlir::lsp::adjustKindToCapability ( CompletionItemKind  kind,
CompletionItemKindBitset supportedCompletionItemKinds 
)

Definition at line 748 of file Protocol.cpp.

References Class, Enum, EnumMember, File, Folder, kCompletionItemKindMin, Struct, and Text.

◆ contains()

bool mlir::lsp::contains ( SMRange  range,
SMLoc  loc 
)

Returns true if the given range contains the given source location.

Note that this has different behavior than SMRange because it is inclusive of the end location.

Definition at line 114 of file SourceMgrUtils.cpp.

Referenced by lexLocStringTok(), and parseFilePathFromURI().

◆ convertTokenLocToRange()

SMRange mlir::lsp::convertTokenLocToRange ( SMLoc  loc,
StringRef  identifierChars = "" 
)

Returns the range of a lexical token given a SMLoc corresponding to the start of an token location.

The range is computed heuristically, and supports identifier-like tokens, strings, etc.

Definition at line 47 of file SourceMgrUtils.cpp.

References lexLocStringTok().

Referenced by convertTokenLocToRange().

◆ extractSourceDocComment()

std::optional< std::string > mlir::lsp::extractSourceDocComment ( llvm::SourceMgr &  sourceMgr,
SMLoc  loc 
)

Extract a documentation comment for the given location within the source manager.

Returns std::nullopt if no comment could be computed.

Definition at line 71 of file SourceMgrUtils.cpp.

Referenced by getDocumentationFor().

◆ fromJSON() [1/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  ,
NoParams ,
llvm::json::Path   
)
inline

Definition at line 217 of file Protocol.h.

◆ fromJSON() [2/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
ClientCapabilities result,
llvm::json::Path  path 
)

Add support for JSON serialization.

Definition at line 274 of file Protocol.cpp.

References mlir::lsp::ClientCapabilities::codeActionStructure, and mlir::lsp::ClientCapabilities::hierarchicalDocumentSymbol.

◆ fromJSON() [3/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
ClientInfo result,
llvm::json::Path  path 
)

Add support for JSON serialization.

Definition at line 300 of file Protocol.cpp.

References mlir::lsp::ClientInfo::name, and mlir::lsp::ClientInfo::version.

◆ fromJSON() [4/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
CodeActionContext result,
llvm::json::Path  path 
)

Add support for JSON serialization.

Definition at line 987 of file Protocol.cpp.

References mlir::lsp::CodeActionContext::diagnostics, and mlir::lsp::CodeActionContext::only.

◆ fromJSON() [5/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
CodeActionParams result,
llvm::json::Path  path 
)

Add support for JSON serialization.

Definition at line 1000 of file Protocol.cpp.

References mlir::lsp::CodeActionParams::context, mlir::lsp::CodeActionParams::range, and mlir::lsp::CodeActionParams::textDocument.

◆ fromJSON() [6/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
CompletionContext result,
llvm::json::Path  path 
)

Add support for JSON serialization.

Definition at line 842 of file Protocol.cpp.

References mapOptOrNull(), mlir::lsp::CompletionContext::triggerCharacter, and mlir::lsp::CompletionContext::triggerKind.

◆ fromJSON() [7/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
CompletionItemKind result,
llvm::json::Path  path 
)

Definition at line 736 of file Protocol.cpp.

References Text, and TypeParameter.

◆ fromJSON() [8/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
CompletionItemKindBitset result,
llvm::json::Path  path 
)

Definition at line 770 of file Protocol.cpp.

References fromJSON().

◆ fromJSON() [9/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
CompletionParams result,
llvm::json::Path  path 
)

Add support for JSON serialization.

Definition at line 857 of file Protocol.cpp.

References mlir::lsp::CompletionParams::context, and fromJSON().

◆ fromJSON() [10/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
Diagnostic result,
llvm::json::Path  path 
)

◆ fromJSON() [11/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
DiagnosticRelatedInformation result,
llvm::json::Path  path 
)

Add support for JSON serialization.

Definition at line 629 of file Protocol.cpp.

References mlir::lsp::DiagnosticRelatedInformation::location, and mlir::lsp::DiagnosticRelatedInformation::message.

◆ fromJSON() [12/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
DiagnosticTag result,
llvm::json::Path  path 
)

Definition at line 652 of file Protocol.cpp.

◆ fromJSON() [13/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
DidChangeTextDocumentParams result,
llvm::json::Path  path 
)

Add support for JSON serialization.

Definition at line 551 of file Protocol.cpp.

References mlir::lsp::DidChangeTextDocumentParams::contentChanges, and mlir::lsp::DidChangeTextDocumentParams::textDocument.

◆ fromJSON() [14/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
DidCloseTextDocumentParams result,
llvm::json::Path  path 
)

Add support for JSON serialization.

Definition at line 502 of file Protocol.cpp.

References mlir::lsp::DidCloseTextDocumentParams::textDocument.

◆ fromJSON() [15/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
DidOpenTextDocumentParams result,
llvm::json::Path  path 
)

Add support for JSON serialization.

Definition at line 491 of file Protocol.cpp.

References mlir::lsp::DidOpenTextDocumentParams::textDocument.

◆ fromJSON() [16/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
DocumentLinkParams result,
llvm::json::Path  path 
)

Add support for JSON serialization.

Definition at line 924 of file Protocol.cpp.

References mlir::lsp::DocumentLinkParams::textDocument.

◆ fromJSON() [17/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
DocumentSymbolParams result,
llvm::json::Path  path 
)

Add support for JSON serialization.

Definition at line 619 of file Protocol.cpp.

References mlir::lsp::DocumentSymbolParams::textDocument.

◆ fromJSON() [18/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
InitializeParams result,
llvm::json::Path  path 
)

◆ fromJSON() [19/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
InlayHintsParams result,
llvm::json::Path  path 
)

Add support for JSON serialization.

Definition at line 945 of file Protocol.cpp.

References mlir::lsp::InlayHintsParams::range, and mlir::lsp::InlayHintsParams::textDocument.

◆ fromJSON() [20/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
Location result,
llvm::json::Path  path 
)

Add support for JSON serialization.

Definition at line 440 of file Protocol.cpp.

References mlir::lsp::Location::range, and mlir::lsp::Location::uri.

◆ fromJSON() [21/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
MLIRConvertBytecodeParams result,
llvm::json::Path  path 
)

Add support for JSON serialization.

Definition at line 30 of file Protocol.cpp.

References mlir::lsp::MLIRConvertBytecodeParams::uri.

◆ fromJSON() [22/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
PDLLViewOutputKind result,
llvm::json::Path  path 
)

Add support for JSON serialization.

Definition at line 45 of file Protocol.cpp.

References AST, CPP, and MLIR.

◆ fromJSON() [23/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
PDLLViewOutputParams result,
llvm::json::Path  path 
)

◆ fromJSON() [24/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
Position result,
llvm::json::Path  path 
)

Add support for JSON serialization.

Definition at line 397 of file Protocol.cpp.

References mlir::lsp::Position::character, and mlir::lsp::Position::line.

◆ fromJSON() [25/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
Range result,
llvm::json::Path  path 
)

Add support for JSON serialization.

Definition at line 419 of file Protocol.cpp.

References mlir::lsp::Range::end, and mlir::lsp::Range::start.

◆ fromJSON() [26/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
ReferenceContext result,
llvm::json::Path  path 
)

Add support for JSON serialization.

Definition at line 473 of file Protocol.cpp.

References mlir::lsp::ReferenceContext::includeDeclaration.

◆ fromJSON() [27/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
ReferenceParams result,
llvm::json::Path  path 
)

Add support for JSON serialization.

Definition at line 479 of file Protocol.cpp.

References mlir::lsp::ReferenceParams::context, and fromJSON().

◆ fromJSON() [28/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
TextDocumentContentChangeEvent result,
llvm::json::Path  path 
)

◆ fromJSON() [29/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
TextDocumentIdentifier result,
llvm::json::Path  path 
)

Definition at line 367 of file Protocol.cpp.

References mlir::lsp::TextDocumentIdentifier::uri.

◆ fromJSON() [30/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
TextDocumentItem result,
llvm::json::Path  path 
)

◆ fromJSON() [31/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
TextDocumentPositionParams result,
llvm::json::Path  path 
)

Add support for JSON serialization.

Definition at line 461 of file Protocol.cpp.

References mlir::lsp::TextDocumentPositionParams::position, and mlir::lsp::TextDocumentPositionParams::textDocument.

◆ fromJSON() [32/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
TextEdit result,
llvm::json::Path  path 
)

Definition at line 713 of file Protocol.cpp.

References mlir::lsp::TextEdit::newText, and mlir::lsp::TextEdit::range.

◆ fromJSON() [33/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
TraceLevel result,
llvm::json::Path  path 
)

Add support for JSON serialization.

Definition at line 315 of file Protocol.cpp.

References Messages, Off, and Verbose.

◆ fromJSON() [34/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
URIForFile result,
llvm::json::Path  path 
)

◆ fromJSON() [35/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
VersionedTextDocumentIdentifier result,
llvm::json::Path  path 
)

◆ fromJSON() [36/36]

bool mlir::lsp::fromJSON ( const llvm::json::Value &  value,
WorkspaceEdit result,
llvm::json::Path  path 
)

Add support for JSON serialization.

Definition at line 1011 of file Protocol.cpp.

References mlir::lsp::WorkspaceEdit::changes.

◆ gatherIncludeFiles()

void mlir::lsp::gatherIncludeFiles ( llvm::SourceMgr &  sourceMgr,
SmallVectorImpl< SourceMgrInclude > &  includes 
)

Given a source manager, gather all of the processed include files.

These are assumed to be all of the files other than the main root file.

Definition at line 133 of file SourceMgrUtils.cpp.

References mlir::lsp::URIForFile::fromFile().

◆ operator<() [1/2]

bool mlir::lsp::operator< ( const CompletionItem lhs,
const CompletionItem rhs 
)

◆ operator<() [2/2]

bool mlir::lsp::operator< ( const InlayHint lhs,
const InlayHint rhs 
)

◆ operator<<() [1/9]

llvm::raw_ostream & mlir::lsp::operator<< ( llvm::raw_ostream &  os,
InlayHintKind  value 
)

Definition at line 972 of file Protocol.cpp.

References Parameter, and Type.

◆ operator<<() [2/9]

raw_ostream & mlir::lsp::operator<< ( raw_ostream &  os,
const CompletionItem value 
)

Definition at line 816 of file Protocol.cpp.

References mlir::lsp::CompletionItem::label, and toJSON().

◆ operator<<() [3/9]

raw_ostream & mlir::lsp::operator<< ( raw_ostream &  os,
const Location value 
)

Definition at line 453 of file Protocol.cpp.

References mlir::lsp::Location::range, and mlir::lsp::Location::uri.

◆ operator<<() [4/9]

raw_ostream & mlir::lsp::operator<< ( raw_ostream &  os,
const Position value 
)

Definition at line 411 of file Protocol.cpp.

References mlir::lsp::Position::character, and mlir::lsp::Position::line.

◆ operator<<() [5/9]

raw_ostream & mlir::lsp::operator<< ( raw_ostream &  os,
const Range value 
)

Definition at line 432 of file Protocol.cpp.

References mlir::lsp::Range::end, and mlir::lsp::Range::start.

◆ operator<<() [6/9]

raw_ostream & mlir::lsp::operator<< ( raw_ostream &  os,
const SignatureInformation value 
)

Definition at line 899 of file Protocol.cpp.

References mlir::lsp::SignatureInformation::label, and toJSON().

◆ operator<<() [7/9]

raw_ostream & mlir::lsp::operator<< ( raw_ostream &  os,
const TextEdit value 
)

Definition at line 726 of file Protocol.cpp.

References mlir::lsp::TextEdit::newText, and mlir::lsp::TextEdit::range.

◆ operator<<() [8/9]

raw_ostream & mlir::lsp::operator<< ( raw_ostream &  os,
const URIForFile value 
)

Definition at line 266 of file Protocol.cpp.

References mlir::lsp::URIForFile::uri().

◆ operator<<() [9/9]

raw_ostream & mlir::lsp::operator<< ( raw_ostream &  os,
MarkupKind  kind 
)

Definition at line 573 of file Protocol.cpp.

References toTextKind().

◆ operator==() [1/2]

bool mlir::lsp::operator== ( const InlayHint lhs,
const InlayHint rhs 
)

◆ operator==() [2/2]

bool mlir::lsp::operator== ( const TextEdit lhs,
const TextEdit rhs 
)
inline

Definition at line 754 of file Protocol.h.

References mlir::lsp::TextEdit::newText, and mlir::lsp::TextEdit::range.

◆ runMlirLSPServer()

LogicalResult mlir::lsp::runMlirLSPServer ( MLIRServer server,
JSONTransport transport 
)

Run the main loop of the LSP server using the given MLIR server and transport.

Definition at line 286 of file LSPServer.cpp.

References mlir::lsp::Logger::error(), mlir::lsp::MessageHandler::method(), mlir::lsp::MessageHandler::notification(), mlir::lsp::MessageHandler::outgoingNotification(), and mlir::lsp::JSONTransport::run().

Referenced by mlir::MlirLspServerMain().

◆ runPdllLSPServer()

LogicalResult mlir::lsp::runPdllLSPServer ( PDLLServer server,
JSONTransport transport 
)

◆ runTableGenLSPServer()

LogicalResult mlir::lsp::runTableGenLSPServer ( TableGenServer server,
JSONTransport transport 
)

Run the main loop of the LSP server using the given TableGen server and transport.

Definition at line 190 of file LSPServer.cpp.

References mlir::lsp::Logger::error(), mlir::lsp::MessageHandler::method(), mlir::lsp::MessageHandler::notification(), mlir::lsp::MessageHandler::outgoingNotification(), and mlir::lsp::JSONTransport::run().

Referenced by mlir::TableGenLspServerMain().

◆ toJSON() [1/25]

llvm::json::Value mlir::lsp::toJSON ( const CodeAction value)

◆ toJSON() [2/25]

llvm::json::Value mlir::lsp::toJSON ( const CompletionItem value)

◆ toJSON() [3/25]

llvm::json::Value mlir::lsp::toJSON ( const CompletionList value)

Add support for JSON serialization.

Definition at line 831 of file Protocol.cpp.

References mlir::lsp::CompletionList::isIncomplete, and mlir::lsp::CompletionList::items.

◆ toJSON() [4/25]

llvm::json::Value mlir::lsp::toJSON ( const Diagnostic diag)

Add support for JSON serialization.

Definition at line 662 of file Protocol.cpp.

References diag().

◆ toJSON() [5/25]

llvm::json::Value mlir::lsp::toJSON ( const DiagnosticRelatedInformation info)

◆ toJSON() [6/25]

llvm::json::Value mlir::lsp::toJSON ( const DocumentLink value)

Add support for JSON serialization.

Definition at line 934 of file Protocol.cpp.

References mlir::lsp::DocumentLink::range, and mlir::lsp::DocumentLink::target.

◆ toJSON() [7/25]

llvm::json::Value mlir::lsp::toJSON ( const DocumentSymbol symbol)

◆ toJSON() [8/25]

llvm::json::Value mlir::lsp::toJSON ( const Hover hover)

Add support for JSON serialization.

Definition at line 591 of file Protocol.cpp.

References mlir::lsp::Hover::contents, mlir::lsp::Hover::range, and toJSON().

◆ toJSON() [9/25]

llvm::json::Value mlir::lsp::toJSON ( const InlayHint value)

◆ toJSON() [10/25]

llvm::json::Value mlir::lsp::toJSON ( const Location value)

Definition at line 446 of file Protocol.cpp.

References mlir::lsp::Location::range, and mlir::lsp::Location::uri.

◆ toJSON() [11/25]

llvm::json::Value mlir::lsp::toJSON ( const MarkupContent mc)

Add support for JSON serialization.

Definition at line 577 of file Protocol.cpp.

References mlir::lsp::MarkupContent::kind, toTextKind(), and mlir::lsp::MarkupContent::value.

◆ toJSON() [12/25]

llvm::json::Value mlir::lsp::toJSON ( const MLIRConvertBytecodeResult value)

Add support for JSON serialization.

Definition at line 41 of file Protocol.cpp.

References mlir::lsp::MLIRConvertBytecodeResult::output.

◆ toJSON() [13/25]

llvm::json::Value mlir::lsp::toJSON ( const ParameterInformation value)

◆ toJSON() [14/25]

llvm::json::Value mlir::lsp::toJSON ( const PDLLViewOutputResult value)

Add support for JSON serialization.

Definition at line 74 of file Protocol.cpp.

References mlir::lsp::PDLLViewOutputResult::output.

◆ toJSON() [15/25]

llvm::json::Value mlir::lsp::toJSON ( const Position value)

Definition at line 404 of file Protocol.cpp.

References mlir::lsp::Position::character, and mlir::lsp::Position::line.

◆ toJSON() [16/25]

llvm::json::Value mlir::lsp::toJSON ( const PublishDiagnosticsParams params)

◆ toJSON() [17/25]

llvm::json::Value mlir::lsp::toJSON ( const Range value)

Definition at line 425 of file Protocol.cpp.

References mlir::lsp::Range::end, and mlir::lsp::Range::start.

◆ toJSON() [18/25]

llvm::json::Value mlir::lsp::toJSON ( const SignatureHelp value)

◆ toJSON() [19/25]

llvm::json::Value mlir::lsp::toJSON ( const SignatureInformation value)

◆ toJSON() [20/25]

llvm::json::Value mlir::lsp::toJSON ( const TextDocumentIdentifier value)

Add support for JSON serialization.

Definition at line 363 of file Protocol.cpp.

References mlir::lsp::TextDocumentIdentifier::uri.

◆ toJSON() [21/25]

llvm::json::Value mlir::lsp::toJSON ( const TextEdit value)

Definition at line 719 of file Protocol.cpp.

References mlir::lsp::TextEdit::newText, and mlir::lsp::TextEdit::range.

◆ toJSON() [22/25]

llvm::json::Value mlir::lsp::toJSON ( const URIForFile value)

Add support for JSON serialization.

Definition at line 262 of file Protocol.cpp.

References mlir::lsp::URIForFile::uri().

Referenced by operator<<(), and toJSON().

◆ toJSON() [23/25]

llvm::json::Value mlir::lsp::toJSON ( const VersionedTextDocumentIdentifier value)

Add support for JSON serialization.

Definition at line 379 of file Protocol.cpp.

References mlir::lsp::VersionedTextDocumentIdentifier::uri, and mlir::lsp::VersionedTextDocumentIdentifier::version.

◆ toJSON() [24/25]

llvm::json::Value mlir::lsp::toJSON ( const WorkspaceEdit value)

Definition at line 1017 of file Protocol.cpp.

References mlir::lsp::WorkspaceEdit::changes.

◆ toJSON() [25/25]

llvm::json::Value mlir::lsp::toJSON ( DiagnosticTag  tag)

Add support for JSON serialization.

Definition at line 648 of file Protocol.cpp.

Variable Documentation

◆ kCompletionItemKindMax

constexpr auto mlir::lsp::kCompletionItemKindMax
constexpr
Initial value:
=
static_cast<size_t>(CompletionItemKind::TypeParameter)

Definition at line 801 of file Protocol.h.

◆ kCompletionItemKindMin

constexpr auto mlir::lsp::kCompletionItemKindMin
constexpr
Initial value:
=
static_cast<size_t>(CompletionItemKind::Text)

Definition at line 799 of file Protocol.h.

Referenced by adjustKindToCapability().