This commits adds a basic language server for PDLL to enable providing language features in IDEs such as VSCode. This initial commit only adds support for tracking definitions, references, and diagnostics, but followup commits will build upon this to provide more significant behavior. In addition to the server, this commit also updates mlir-vscode to support the PDLL language and invoke the server. Differential Revision: https://reviews.llvm.org/D121541
29 lines
853 B
C++
29 lines
853 B
C++
//===- LSPServer.h - PDLL LSP Server ----------------------------*- C++ -*-===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LIB_MLIR_TOOLS_MLIRPDLLLSPSERVER_LSPSERVER_H
|
|
#define LIB_MLIR_TOOLS_MLIRPDLLLSPSERVER_LSPSERVER_H
|
|
|
|
#include <memory>
|
|
|
|
namespace mlir {
|
|
struct LogicalResult;
|
|
|
|
namespace lsp {
|
|
class JSONTransport;
|
|
class PDLLServer;
|
|
|
|
/// Run the main loop of the LSP server using the given PDLL server and
|
|
/// transport.
|
|
LogicalResult runPdllLSPServer(PDLLServer &server, JSONTransport &transport);
|
|
|
|
} // namespace lsp
|
|
} // namespace mlir
|
|
|
|
#endif // LIB_MLIR_TOOLS_MLIRPDLLLSPSERVER_LSPSERVER_H
|