dotfiles/.emacs.d/lisp/init-lsp.el

63 lines
2.1 KiB
EmacsLisp

;;; init-lsp.el --- LSP Configuration File -*- lexical-binding: t -*-
;;; Commentary:
;;; Code:
(setenv "LSP_USE_PLISTS" "true")
(use-package lsp-ui
:config
(require 'lsp-ui-imenu)
(setq lsp-ui-sideline-enable t
lsp-ui-peek-enable t
lsp-ui-peek-always-show t
lsp-ui-doc-delay 1
lsp-ui-doc-enable t
lsp-ui-doc-show-with-mouse t
lsp-ui-doc-show-with-cursor nil
lsp-ui-sideline-show-diagnostics t
lsp-ui-sideline-show-code-actions nil
lsp-ui-doc-position 'at-point))
(use-package lsp-treemacs)
(use-package lsp-mode
:diminish
:hook
(clojure-mode . lsp)
(lsp-lens-mode . really-diminish-lsp-lens-mode)
(lsp-completion-mode . my/lsp-mode-setup-completion)
(sql-mode . lsp)
:config
(defun really-diminish-lsp-lens-mode ()
(diminish 'lsp-lens-mode)
(remove-hook 'lsp-lens-mode-hook 'really-diminish-lsp-lens-mode))
(defun my/lsp-mode-setup-completion ()
(setf (alist-get 'styles (alist-get 'lsp-capf completion-category-defaults))
'(orderless))
;; Remove this, as we use cape-clojure (in init-clojure.el), which includes
;; lsp-completion-at-point
(remove-hook 'completion-at-point-functions #'lsp-completion-at-point t))
(if (eq system-type 'darwin)
(setq lsp-keymap-prefix "s-l")
(setq lsp-keymap-prefix "C-c C-l"))
(define-key lsp-mode-map (kbd lsp-keymap-prefix) lsp-command-map)
(setq lsp-sqls-workspace-config-path nil)
(setq read-process-output-max (* 1024 1024)
lsp-log-io nil
lsp-lens-enable t
lsp-headerline-breadcrumb-enable t
lsp-idle-delay 1.000
lsp-enable-symbol-highlighting t
lsp-headerline-breadcrumb-enable-diagnostics nil
lsp-modeline-code-actions-enable nil
lsp-modeline-diagnostics-enable nil
lsp-treemacs-theme "Iconless"
lsp-completion-provider :none ;; use corfu
lsp-references-exclude-definition t
;; user cider for indendation and eldoc
lsp-enable-indentation nil
lsp-eldoc-enable-hover nil))
(provide 'init-lsp)
;;; init-lsp.el ends here