;; -*- no-byte-compile: t; -*-
;;; tools/lsp/packages.el

(if (modulep! +eglot)
    (progn
      (package! eglot :pin "d2f34e5ce44dcf10c9bf2aab93278d1a8cb88655")
      (when (modulep! :completion vertico)
        (package! consult-eglot :pin "d8b444aac39edfc6473ffbd228df3e9119451b51"))
      (when (modulep! :checkers syntax -flymake)
        (package! flycheck-eglot :pin "0d7f0afc9bf08fce4a3ee225ec6540a91f8cfd76"))
      (when (modulep! +booster)
        (package! eglot-booster
          :recipe (:host github :repo "jdtsmith/eglot-booster")
          :pin "cab7803c4f0adc7fff9da6680f90110674bb7a22")))

  ;; lsp-mode must be rebuilt if this variable is changed, so expose it here so
  ;; users can change it from $DOOMDIR/packages.el.
  (defvar lsp-use-plists t)

  (package! lsp-mode
    :pin "c74a723870f86cf9d1b7aee5e6e2add10d9ce127"
    :env `(("LSP_USE_PLISTS" . ,(and lsp-use-plists "1"))))
  (package! lsp-ui :pin "030d36960338fd633a98b332bc3734c412c25ca6")
  (when (modulep! :completion ivy)
    (package! lsp-ivy :pin "2927cbc776477e23d4a1062568d55793eed33c51"))
  (when (modulep! :completion helm)
    (package! helm-lsp :pin "95f21f3f672a3260806531878e7684cde23616b2"))
  (when (modulep! :completion vertico)
    (package! consult-lsp :pin "aef321d03907ca6926b0cf20ca85f672c4744000")))
