[mlir][Tablegen-LSP] Add support for a basic TableGen language server
authorRiver Riddle <riddleriver@gmail.com>
Mon, 9 May 2022 17:36:48 +0000 (10:36 -0700)
committerRiver Riddle <riddleriver@gmail.com>
Mon, 16 May 2022 23:03:51 +0000 (16:03 -0700)
commit5de12bb703c5104b3fd64ee51c6900d6171d826a
tree7ab6b383bbaedb911548117b612917aac50eebdd
parent45e01ce5fe6a5e4dc25ffdf626caa344fbcb93dd
[mlir][Tablegen-LSP] Add support for a basic TableGen language server

This follows the same general structure of the MLIR and PDLL language
servers. This commits adds the basic functionality for setting up the server,
and initially only supports providing diagnostics. Followon commits will
build out more comprehensive behavior.

Realistically this should eventually live in llvm/, but building in MLIR is an easier
initial step given that:
* All of the necessary LSP functionality is already here
* It allows for proving out useful language features (e.g. compilation databases)
  without affecting wider scale tablegen users
* MLIR has a vscode extension that can immediately take advantage of it

Differential Revision: https://reviews.llvm.org/D125440
27 files changed:
mlir/docs/Tools/MLIRLSP.md
mlir/include/mlir/Tools/tblgen-lsp-server/TableGenLspServerMain.h [new file with mode: 0644]
mlir/lib/Tools/CMakeLists.txt
mlir/lib/Tools/lsp-server-support/CMakeLists.txt
mlir/lib/Tools/lsp-server-support/SourceMgrUtils.cpp [new file with mode: 0644]
mlir/lib/Tools/lsp-server-support/SourceMgrUtils.h [new file with mode: 0644]
mlir/lib/Tools/mlir-lsp-server/MLIRServer.cpp
mlir/lib/Tools/tblgen-lsp-server/CMakeLists.txt [new file with mode: 0644]
mlir/lib/Tools/tblgen-lsp-server/LSPServer.cpp [new file with mode: 0644]
mlir/lib/Tools/tblgen-lsp-server/LSPServer.h [new file with mode: 0644]
mlir/lib/Tools/tblgen-lsp-server/TableGenLspServerMain.cpp [new file with mode: 0644]
mlir/lib/Tools/tblgen-lsp-server/TableGenServer.cpp [new file with mode: 0644]
mlir/lib/Tools/tblgen-lsp-server/TableGenServer.h [new file with mode: 0644]
mlir/test/CMakeLists.txt
mlir/test/tblgen-lsp-server/diagnostics.test [new file with mode: 0644]
mlir/test/tblgen-lsp-server/exit-eof.test [new file with mode: 0644]
mlir/test/tblgen-lsp-server/exit-with-shutdown.test [new file with mode: 0644]
mlir/test/tblgen-lsp-server/exit-without-shutdown.test [new file with mode: 0644]
mlir/test/tblgen-lsp-server/initialize-params-invalid.test [new file with mode: 0644]
mlir/test/tblgen-lsp-server/initialize-params.test [new file with mode: 0644]
mlir/tools/CMakeLists.txt
mlir/tools/tblgen-lsp-server/CMakeLists.txt [new file with mode: 0644]
mlir/tools/tblgen-lsp-server/tblgen-lsp-server.cpp [new file with mode: 0644]
mlir/utils/vscode/.gitignore
mlir/utils/vscode/package.json
mlir/utils/vscode/src/mlirContext.ts
mlir/utils/vscode/tablegen-language-configuration.json [new file with mode: 0644]