77 lines
2.5 KiB
EmacsLisp
77 lines
2.5 KiB
EmacsLisp
;; Rust config
|
|
(require 'rust-mode)
|
|
(add-to-list 'auto-mode-alist '("\\.rs\\'" . rust-mode))
|
|
(setq rust-format-on-save t)
|
|
|
|
(add-hook 'rust-mode-hook 'cargo-minor-mode)
|
|
|
|
;; (with-eval-after-load 'rust-mode
|
|
;; (add-hook 'flycheck-mode-hook #'flycheck-rust-setup))
|
|
;; (add-hook 'rust-mode-hook #'racer-mode)
|
|
;; (add-hook 'racer-mode-hook #'eldoc-mode)
|
|
;; (add-hook 'racer-mode-hook #'company-mode)
|
|
;; (define-key rust-mode-map (kbd "TAB") #'company-indent-or-complete-common)
|
|
|
|
;; -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
|
;; rustic = basic rust-mode + additions
|
|
|
|
(use-package rustic
|
|
:ensure
|
|
:bind (:map rustic-mode-map
|
|
("M-j" . lsp-ui-imenu)
|
|
("M-?" . lsp-find-references)
|
|
("C-c C-c l" . flycheck-list-errors)
|
|
("C-c C-c a" . lsp-execute-code-action)
|
|
("C-c C-c r" . lsp-rename)
|
|
("C-c C-c q" . lsp-workspace-restart)
|
|
("C-c C-c Q" . lsp-workspace-shutdown)
|
|
("C-c C-c s" . lsp-rust-analyzer-status)
|
|
("C-c C-c e" . lsp-rust-analyzer-expand-macro)
|
|
("C-c C-c d" . dap-hydra)
|
|
("C-c C-c h" . lsp-ui-doc-glance))
|
|
:config
|
|
;; uncomment for less flashiness
|
|
;; (setq lsp-eldoc-hook nil)
|
|
;; (setq lsp-enable-symbol-highlighting nil)
|
|
;; (setq lsp-signature-auto-activate nil)
|
|
|
|
;; comment to disable rustfmt on save
|
|
(add-hook 'rustic-mode-hook 'rk/rustic-mode-hook))
|
|
|
|
(use-package lsp-mode
|
|
:ensure
|
|
:commands lsp
|
|
:custom
|
|
;; what to use when checking on-save. "check" is default, I prefer clippy
|
|
(lsp-rust-analyzer-cargo-watch-command "clippy")
|
|
(lsp-eldoc-render-all t)
|
|
(lsp-idle-delay 0.6)
|
|
;; enable / disable the hints as you prefer:
|
|
(lsp-rust-analyzer-server-display-inlay-hints t)
|
|
(lsp-rust-analyzer-display-lifetime-elision-hints-enable "skip_trivial")
|
|
(lsp-rust-analyzer-display-chaining-hints t)
|
|
(lsp-rust-analyzer-display-lifetime-elision-hints-use-parameter-names nil)
|
|
(lsp-rust-analyzer-display-closure-return-type-hints t)
|
|
(lsp-rust-analyzer-display-parameter-hints nil)
|
|
(lsp-rust-analyzer-display-reborrow-hints nil)
|
|
:config
|
|
(add-hook 'lsp-mode-hook 'lsp-ui-mode))
|
|
|
|
(use-package lsp-ui
|
|
:ensure
|
|
:commands lsp-ui-mode
|
|
:custom
|
|
(lsp-ui-peek-always-show t)
|
|
(lsp-ui-sideline-show-hover t)
|
|
(lsp-ui-doc-enable nil))
|
|
|
|
(use-package toml-mode :ensure)
|
|
|
|
(use-package flycheck :ensure)
|
|
|
|
;; Rust playground https://github.com/grafov/rust-playground
|
|
;; M-x rust-playground -> Type -> Ctrl-RET -> See results -> M-x rust-playground-rm
|
|
(require 'rust-playground)
|
|
|
|
(provide 'init-rust)
|