[Mlir-commits] [mlir] 589bef3 - [emacs][lsp][tblgen] add tblgen-lsp-server support for emacs lsp-mode (#76337)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Tue Jan 28 11:26:18 PST 2025


Author: mgcsysinfcat
Date: 2025-01-28T20:26:14+01:00
New Revision: 589bef333eb3b4f619ac6a7e7819295b47c05ce6

URL: https://github.com/llvm/llvm-project/commit/589bef333eb3b4f619ac6a7e7819295b47c05ce6
DIFF: https://github.com/llvm/llvm-project/commit/589bef333eb3b4f619ac6a7e7819295b47c05ce6.diff

LOG: [emacs][lsp][tblgen] add tblgen-lsp-server support for emacs lsp-mode (#76337)

Co-authored-by: mgcsysinfcat <p779yqwdf at mozmail.com>
Co-authored-by: Ronan Keryell <ronan.keryell at amd.com>

Added: 
    mlir/utils/emacs/tblgen-lsp-client.el

Modified: 
    

Removed: 
    


################################################################################
diff  --git a/mlir/utils/emacs/tblgen-lsp-client.el b/mlir/utils/emacs/tblgen-lsp-client.el
new file mode 100644
index 00000000000000..6830e328eb8de3
--- /dev/null
+++ b/mlir/utils/emacs/tblgen-lsp-client.el
@@ -0,0 +1,45 @@
+;;; tblgen-lsp-client.el --- Description -*- lexical-binding: t; -*-
+;;
+;; Package-Requires: ((emacs "24.3"))
+;;
+;; This file is not part of GNU Emacs.
+;;
+;;; Commentary:
+;;  LSP client to use with `tablegen-mode' that uses `tblgen-lsp-server' or any
+;;  user made compatible server.
+;;
+;;
+;;; Code:
+(require 'lsp-mode)
+
+(defgroup lsp-tblgen nil
+  "LSP support for Tablegen."
+  :group 'lsp-mode
+  :link '(url-link "https://mlir.llvm.org/docs/Tools/MLIRLSP/"))
+
+(defcustom lsp-tblgen-server-executable "tblgen-lsp-server"
+  "Command to start the mlir language server."
+  :group 'lsp-tblgen
+  :risky t
+  :type 'file)
+
+
+(defcustom lsp-tblgen-server-args ""
+  "Args of LSP client for TableGen, for example '--tablegen-compilation-database=.../build/tablegen_compile_commands.yml'"
+  :group 'lsp-tblgen
+  :risky t
+  :type 'file)
+
+(defun lsp-tblgen-setup ()
+  "Setup the LSP client for TableGen."
+  (add-to-list 'lsp-language-id-configuration '(tablegen-mode . "tablegen"))
+
+  (lsp-register-client
+   (make-lsp-client
+    :new-connection (lsp-stdio-connection (lambda () (cons lsp-tblgen-server-executable (split-string-shell-command lsp-tblgen-server-args))))
+    :activation-fn (lsp-activate-on "tablegen")
+    :priority -1
+    :server-id 'tblgen-lsp)))
+
+(provide 'tblgen-lsp)
+;;; tblgen-lsp-client.el ends here


        


More information about the Mlir-commits mailing list