lang/rust: restore advice redefs
Update package-installed-p redefinition to use a safe `require`, so that rustic-setup-rls will fail gracefully if lsp/eglot aren't available. And restore rustic-install-rls-client-p redefinition to prevent rustic from trying to install packages.
This commit is contained in:
parent
8e9d3fdc5d
commit
f05512c2e5
1 changed files with 11 additions and 4 deletions
|
@ -56,11 +56,18 @@
|
|||
|
||||
(defadvice! +rust--dont-install-packages-p (orig-fn &rest args)
|
||||
:around #'rustic-setup-rls
|
||||
(cl-letf (;; `rustic-setup-rls' uses `package-installed-p' unnecessarily, to
|
||||
;; try to detect rls. This breaks because Doom lazy loads
|
||||
;; package.el, and doesn't use package.el to begin with.
|
||||
(cl-letf (;; `rustic-setup-rls' uses `package-installed-p' to determine if
|
||||
;; lsp-mode/elgot are available. This breaks because Doom doesn't
|
||||
;; use package.el to begin with (and lazy loads it).
|
||||
((symbol-function #'package-installed-p)
|
||||
(symbol-function #'identity)))
|
||||
(lambda (pkg)
|
||||
(require pkg nil t)))
|
||||
;; If lsp/elgot isn't available, it attempts to install lsp-mode
|
||||
;; via package.el. Doom manages its own dependencies so we disable
|
||||
;; that behavior.
|
||||
((symbol-function #'rustic-install-rls-client-p)
|
||||
(lambda (&rest _)
|
||||
(message "No RLS server running."))))
|
||||
(apply orig-fn args))))
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue