;;; mlir-lsp-clinet.el --- LSP clinet for the MLIR. ;; Copyright (C) 2022 The MLIR Authors. ;; ;; Licensed under the Apache License, Version 2.0 (the "License"); ;; you may not use this file except in compliance with the License. ;; You may obtain a copy of the License at ;; ;; http://www.apache.org/licenses/LICENSE-2.0 ;; ;; Unless required by applicable law or agreed to in writing, software ;; distributed under the License is distributed on an "AS IS" BASIS, ;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ;; See the License for the specific language governing permissions and ;; limitations under the License. ;; Version: 0.1.0 ;;; Commentary: ;; LSP clinet to use with `mlir-mode' that uses `mlir-lsp-server' or any ;; user made compatible server. ;;; Code: (require 'lsp-mode) (defgroup lsp-mlir nil "LSP support for MLIR." :group 'lsp-mode :link '(url-link "https://mlir.llvm.org/docs/Tools/MLIRLSP/")) (defcustom lsp-mlir-server-executable "mlir-lsp-server" "Command to start the mlir language server." :group 'lsp-mlir :risky t :type 'file) (defun lsp-mlir-setup () "Setup the LSP client for MLIR." (add-to-list 'lsp-language-id-configuration '(mlir-mode . "mlir")) (lsp-register-client (make-lsp-client :new-connection (lsp-stdio-connection (lambda () lsp-mlir-server-executable)) :activation-fn (lsp-activate-on "mlir") :priority -1 :server-id 'mlir-lsp))) (provide 'mlir-lsp-client) ;;; mlir-lsp-client.el ends here