Skip to content

Latest commit

 

History

History
80 lines (64 loc) · 2 KB

rust.org

File metadata and controls

80 lines (64 loc) · 2 KB

Require rust and racer

(require 'rust-mode)
(require 'racer)
(require 'cargo)
(require 'eglot)

We format the source code on file save.

(setq rust-format-on-save t)

We configure the rust path.

(setq racer-rust-src-path
      (concat (string-trim
               (shell-command-to-string "rustc --print sysroot"))
              "/lib/rustlib/src/rust/library"))

We setup flymake mode for rust now.

(require 'flymake-rust)
(add-hook 'rust-mode-hook 'flymake-rust-load)

Add rust related hooks

(require 'rust-mode)
(require 'eglot)
(unless (fboundp 'lsp-rust-enable)
  (defun lsp-rust-enable ()
    ()))
(add-hook 'rust-mode-hook #'cargo-minor-mode)
(add-hook 'rust-mode-hook #'racer-mode)
(add-hook 'rust-mode-hook #'eldoc-mode)
(add-hook 'rust-mode-hook #'company-mode)
(add-hook 'flycheck-mode-hook #'flycheck-rust-setup)
(add-hook 'rust-mode-hook #'eglot-ensure)
;;(require 'lsp-clients)

We add a couple of general eglot bindings. This is not Rust specific anymore, but as we are showcasing it here it is helpful.

(define-key eglot-mode-map (kbd "C-c h") 'eglot-help-at-point)
(define-key eglot-mode-map (kbd "C-c C-h") 'xref-find-references)

Now setup TAB to autocomplete in rust mode. Then setup clippy from cargo also