MLIR  16.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  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...
 

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  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, 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 (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)
 Returns the range of a lexical token given a SMLoc corresponding to the start of an token location. More...
 
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...
 
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...
 
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...
 
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 774 of file Protocol.h.

◆ InitializedParams

Definition at line 204 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.

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 739 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 884 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 651 of file Protocol.h.

◆ ErrorCode

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

Definition at line 42 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 1053 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 788 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 503 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 540 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 61 of file Protocol.h.

◆ TraceLevel

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

Definition at line 174 of file Protocol.h.

Function Documentation

◆ adjustKindToCapability()

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

Definition at line 714 of file Protocol.cpp.

◆ 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 112 of file SourceMgrUtils.cpp.

Referenced by lexLocStringTok(), and parseFilePathFromURI().

◆ convertTokenLocToRange()

SMRange mlir::lsp::convertTokenLocToRange ( SMLoc  loc)

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 45 of file SourceMgrUtils.cpp.

References lexLocStringTok().

Referenced by getLocationFromLoc().

◆ extractSourceDocComment()

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

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

Returns None if no comment could be computed.

Definition at line 68 of file SourceMgrUtils.cpp.

Referenced by getDocumentationFor().

◆ fromJSON() [1/34]

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

Definition at line 201 of file Protocol.h.

◆ fromJSON() [2/34]

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, mlir::lsp::ClientCapabilities::hierarchicalDocumentSymbol, and value.

◆ fromJSON() [3/34]

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

Add support for JSON serialization.

Definition at line 953 of file Protocol.cpp.

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

◆ fromJSON() [4/34]

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

Add support for JSON serialization.

Definition at line 966 of file Protocol.cpp.

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

◆ fromJSON() [5/34]

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

Add support for JSON serialization.

Definition at line 808 of file Protocol.cpp.

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

◆ fromJSON() [6/34]

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

Definition at line 702 of file Protocol.cpp.

References Text, TypeParameter, and value.

◆ fromJSON() [7/34]

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

Definition at line 736 of file Protocol.cpp.

References fromJSON(), and value.

◆ fromJSON() [8/34]

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

Add support for JSON serialization.

Definition at line 823 of file Protocol.cpp.

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

◆ fromJSON() [9/34]

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

◆ fromJSON() [10/34]

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

Add support for JSON serialization.

Definition at line 612 of file Protocol.cpp.

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

◆ fromJSON() [11/34]

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

Add support for JSON serialization.

Definition at line 534 of file Protocol.cpp.

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

◆ fromJSON() [12/34]

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

Add support for JSON serialization.

Definition at line 485 of file Protocol.cpp.

References mlir::lsp::DidCloseTextDocumentParams::textDocument, and value.

◆ fromJSON() [13/34]

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

Add support for JSON serialization.

Definition at line 474 of file Protocol.cpp.

References mlir::lsp::DidOpenTextDocumentParams::textDocument, and value.

◆ fromJSON() [14/34]

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

Add support for JSON serialization.

Definition at line 890 of file Protocol.cpp.

References mlir::lsp::DocumentLinkParams::textDocument, and value.

◆ fromJSON() [15/34]

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

Add support for JSON serialization.

Definition at line 602 of file Protocol.cpp.

References mlir::lsp::DocumentSymbolParams::textDocument, and value.

◆ fromJSON() [16/34]

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

Add support for JSON serialization.

Definition at line 319 of file Protocol.cpp.

References mlir::lsp::InitializeParams::capabilities, mlir::lsp::InitializeParams::trace, and value.

◆ fromJSON() [17/34]

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

Add support for JSON serialization.

Definition at line 911 of file Protocol.cpp.

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

◆ fromJSON() [18/34]

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

Add support for JSON serialization.

Definition at line 423 of file Protocol.cpp.

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

◆ fromJSON() [19/34]

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, and value.

◆ fromJSON() [20/34]

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, MLIR, and value.

◆ fromJSON() [21/34]

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

◆ fromJSON() [22/34]

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

Add support for JSON serialization.

Definition at line 380 of file Protocol.cpp.

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

◆ fromJSON() [23/34]

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

Add support for JSON serialization.

Definition at line 402 of file Protocol.cpp.

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

◆ fromJSON() [24/34]

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

Add support for JSON serialization.

Definition at line 456 of file Protocol.cpp.

References mlir::lsp::ReferenceContext::includeDeclaration, and value.

◆ fromJSON() [25/34]

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

Add support for JSON serialization.

Definition at line 462 of file Protocol.cpp.

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

◆ fromJSON() [26/34]

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

◆ fromJSON() [27/34]

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

Definition at line 350 of file Protocol.cpp.

References mlir::lsp::TextDocumentIdentifier::uri, and value.

◆ fromJSON() [28/34]

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

◆ fromJSON() [29/34]

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

Add support for JSON serialization.

Definition at line 444 of file Protocol.cpp.

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

◆ fromJSON() [30/34]

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

Definition at line 679 of file Protocol.cpp.

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

◆ fromJSON() [31/34]

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

Add support for JSON serialization.

Definition at line 300 of file Protocol.cpp.

References Messages, Off, value, and Verbose.

◆ fromJSON() [32/34]

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

Definition at line 247 of file Protocol.cpp.

References mlir::lsp::URIForFile::fromURI(), and value.

Referenced by fromJSON(), mapOptOrNull(), and mlir::lsp::MessageHandler::parse().

◆ fromJSON() [33/34]

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

◆ fromJSON() [34/34]

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

Add support for JSON serialization.

Definition at line 977 of file Protocol.cpp.

References mlir::lsp::WorkspaceEdit::changes, and value.

◆ 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 131 of file SourceMgrUtils.cpp.

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

◆ operator<() [1/2]

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

Definition at line 787 of file Protocol.cpp.

◆ operator<() [2/2]

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

Definition at line 933 of file Protocol.cpp.

◆ operator<<() [1/9]

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

Definition at line 938 of file Protocol.cpp.

References Parameter, Type, and value.

◆ operator<<() [2/9]

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

Definition at line 782 of file Protocol.cpp.

References toJSON(), and value.

◆ operator<<() [3/9]

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

Definition at line 436 of file Protocol.cpp.

References value.

◆ operator<<() [4/9]

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

Definition at line 394 of file Protocol.cpp.

References value.

◆ operator<<() [5/9]

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

Definition at line 415 of file Protocol.cpp.

References value.

◆ operator<<() [6/9]

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

Definition at line 865 of file Protocol.cpp.

References toJSON(), and value.

◆ operator<<() [7/9]

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

Definition at line 692 of file Protocol.cpp.

References value.

◆ operator<<() [8/9]

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

Definition at line 266 of file Protocol.cpp.

References value.

◆ operator<<() [9/9]

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

Definition at line 556 of file Protocol.cpp.

◆ operator==() [1/2]

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

Definition at line 929 of file Protocol.cpp.

◆ operator==() [2/2]

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

Definition at line 725 of file Protocol.h.

◆ runMlirLSPServer()

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

◆ runPdllLSPServer()

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

◆ runTableGenLSPServer()

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

◆ toJSON() [1/24]

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

Add support for JSON serialization.

Definition at line 998 of file Protocol.cpp.

References value.

◆ toJSON() [2/24]

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

Add support for JSON serialization.

Definition at line 754 of file Protocol.cpp.

References Missing, and value.

◆ toJSON() [3/24]

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

Add support for JSON serialization.

Definition at line 797 of file Protocol.cpp.

References value.

◆ toJSON() [4/24]

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

Add support for JSON serialization.

Definition at line 631 of file Protocol.cpp.

References diag().

◆ toJSON() [5/24]

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

◆ toJSON() [6/24]

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

Add support for JSON serialization.

Definition at line 900 of file Protocol.cpp.

References value.

◆ toJSON() [7/24]

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

◆ toJSON() [8/24]

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

Add support for JSON serialization.

Definition at line 574 of file Protocol.cpp.

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

◆ toJSON() [9/24]

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

Add support for JSON serialization.

Definition at line 922 of file Protocol.cpp.

References value.

◆ toJSON() [10/24]

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

Definition at line 429 of file Protocol.cpp.

References value.

◆ toJSON() [11/24]

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

Add support for JSON serialization.

Definition at line 560 of file Protocol.cpp.

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

◆ toJSON() [12/24]

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

Add support for JSON serialization.

Definition at line 41 of file Protocol.cpp.

References value.

◆ toJSON() [13/24]

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

Add support for JSON serialization.

Definition at line 836 of file Protocol.cpp.

References value.

◆ toJSON() [14/24]

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

Add support for JSON serialization.

Definition at line 74 of file Protocol.cpp.

References value.

◆ toJSON() [15/24]

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

Definition at line 387 of file Protocol.cpp.

References value.

◆ toJSON() [16/24]

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

◆ toJSON() [17/24]

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

Definition at line 408 of file Protocol.cpp.

References value.

◆ toJSON() [18/24]

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

Add support for JSON serialization.

Definition at line 874 of file Protocol.cpp.

References value.

◆ toJSON() [19/24]

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

Add support for JSON serialization.

Definition at line 854 of file Protocol.cpp.

References value.

◆ toJSON() [20/24]

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

Add support for JSON serialization.

Definition at line 346 of file Protocol.cpp.

References value.

◆ toJSON() [21/24]

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

Definition at line 685 of file Protocol.cpp.

References value.

◆ toJSON() [22/24]

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

Add support for JSON serialization.

Definition at line 262 of file Protocol.cpp.

References value.

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

◆ toJSON() [23/24]

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

Add support for JSON serialization.

Definition at line 362 of file Protocol.cpp.

References value.

◆ toJSON() [24/24]

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

Definition at line 983 of file Protocol.cpp.

References value.

Variable Documentation

◆ kCompletionItemKindMax

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

Definition at line 772 of file Protocol.h.

◆ kCompletionItemKindMin

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

Definition at line 770 of file Protocol.h.