This commit is contained in:
Sakooooo 2024-09-19 10:36:52 +04:00
parent 978b5506f2
commit 66980715aa
Signed by: sako
GPG key ID: 3FD715D87D7725E0

View file

@ -1034,14 +1034,31 @@ this should be useful later
;; Configuration taken from rust-analyzers manual: ;; Configuration taken from rust-analyzers manual:
;; https://rust-analyzer.github.io/manual.html#configuration ;; https://rust-analyzer.github.io/manual.html#configuration
(setq-local eglot-workspace-configuration (setq-local eglot-workspace-configuration
;; Setting the workspace configuration for every ;; Setting the workspace configuration for every
;; rust-mode buffer, you can also set it with dir-local ;; rust-mode buffer, you can also set it with dir-local
;; variables, should you want different configuration ;; variables, should you want different configuration
;; per project/directory. ;; per project/directory.
'(:rust-analyzer '(:rust-analyzer
:cargo (:features ["all"])))) :cargo (:features ["all"]))))
(add-hook 'rustic-mode-hook #'setup-rust) (add-hook 'rustic-mode-hook #'setup-rust)
(add-hook 'rust-mode-hook #'setup-rust)
;; expects initializationOptions done a bit differently (see below).
(defclass eglot-rust-analyzer (eglot-lsp-server) ()
:documentation "A custom class for rust-analyzer.")
;; Rust-analyzer requires the workspaceConfiguration sent as
;; initializationOptions at startup time. See
;; https://github.com/joaotavora/eglot/discussions/845 and
;; rust-analyzers manual page.
(cl-defmethod eglot-initialization-options ((server eglot-rust-analyzer))
eglot-workspace-configuration)
;; Use our custom eglot-rust-analyzer for rust-mode.
(add-to-list 'eglot-server-programs
'(rustic-mode . (eglot-rust-analyzer "rust-analyzer")))
:custom :custom
(rustic-cargo-use-last-stored-arguments t)) (rustic-cargo-use-last-stored-arguments t))