llvm-project
53 строки · 1.5 Кб
1;;; mlir-lsp-clinet.el --- LSP clinet for the MLIR.
2
3;; Copyright (C) 2022 The MLIR Authors.
4;;
5;; Licensed under the Apache License, Version 2.0 (the "License");
6;; you may not use this file except in compliance with the License.
7;; You may obtain a copy of the License at
8;;
9;; http://www.apache.org/licenses/LICENSE-2.0
10;;
11;; Unless required by applicable law or agreed to in writing, software
12;; distributed under the License is distributed on an "AS IS" BASIS,
13;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14;; See the License for the specific language governing permissions and
15;; limitations under the License.
16
17;; Version: 0.1.0
18
19;;; Commentary:
20
21;; LSP clinet to use with `mlir-mode' that uses `mlir-lsp-server' or any
22;; user made compatible server.
23
24;;; Code:
25(require 'lsp-mode)
26
27(defgroup lsp-mlir nil
28"LSP support for MLIR."
29:group 'lsp-mode
30:link '(url-link "https://mlir.llvm.org/docs/Tools/MLIRLSP/"))
31
32
33(defcustom lsp-mlir-server-executable "mlir-lsp-server"
34"Command to start the mlir language server."
35:group 'lsp-mlir
36:risky t
37:type 'file)
38
39
40(defun lsp-mlir-setup ()
41"Setup the LSP client for MLIR."
42(add-to-list 'lsp-language-id-configuration '(mlir-mode . "mlir"))
43
44(lsp-register-client
45(make-lsp-client
46:new-connection (lsp-stdio-connection (lambda () lsp-mlir-server-executable))
47:activation-fn (lsp-activate-on "mlir")
48:priority -1
49:server-id 'mlir-lsp)))
50
51
52(provide 'mlir-lsp-client)
53;;; mlir-lsp-client.el ends here
54