From b92ceccfdb9d1ba6172e53008e1b5afea32ca20d Mon Sep 17 00:00:00 2001 From: William Carroll Date: Mon, 8 Aug 2022 10:53:23 -0700 Subject: fix(wpcarro/emacs): Update rust configuration - Prefer LSP to racer - Move KBDs to central location Change-Id: Ib3fbf1b383d711f3ac6dd6d7791374b014b9df90 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6054 Reviewed-by: wpcarro Autosubmit: wpcarro Tested-by: BuildkiteCI --- users/wpcarro/emacs/.emacs.d/wpc/keybindings.el | 14 ++++++++++++++ users/wpcarro/emacs/.emacs.d/wpc/wpc-rust.el | 25 +++---------------------- users/wpcarro/emacs/default.nix | 10 +++++++++- 3 files changed, 26 insertions(+), 23 deletions(-) diff --git a/users/wpcarro/emacs/.emacs.d/wpc/keybindings.el b/users/wpcarro/emacs/.emacs.d/wpc/keybindings.el index 75ac95611f5d..16b3d6c8f3e8 100644 --- a/users/wpcarro/emacs/.emacs.d/wpc/keybindings.el +++ b/users/wpcarro/emacs/.emacs.d/wpc/keybindings.el @@ -454,5 +454,19 @@ "C-v" #'clipboard-yank "C-S-v" #'clipboard-yank) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Rust +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(general-define-key + :keymaps '(rust-mode-map) + :states '(normal) + "gd" #'lsp-find-definition + "gr" #'lsp-find-references) + +(general-define-key + :keymaps '(rust-mode-map) + "TAB" #'company-indent-or-complete-common) + (provide 'keybindings) ;;; keybindings.el ends here diff --git a/users/wpcarro/emacs/.emacs.d/wpc/wpc-rust.el b/users/wpcarro/emacs/.emacs.d/wpc/wpc-rust.el index dfee2fc86b81..82ffe40dc4d2 100644 --- a/users/wpcarro/emacs/.emacs.d/wpc/wpc-rust.el +++ b/users/wpcarro/emacs/.emacs.d/wpc/wpc-rust.el @@ -6,11 +6,6 @@ ;;; Commentary: ;; Supports my Rust work. -;; -;; Dependencies: -;; - `rustup` -;; - `rustup component add rust-src` -;; - `rustup toolchain add nightly && cargo +nightly install racer` ;;; Code: @@ -18,30 +13,16 @@ ;; Dependencies ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(require 'macros) +(require 'lsp) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Configuration ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(use-package racer - :config - (setq rust-sysroot (->> "~/.cargo/bin/rustc --print sysroot" - shell-command-to-string - s-trim-right)) - (setq racer-rust-src-path (f-join rust-sysroot "lib/rustlib/src/rust/src")) - (add-hook 'racer-mode-hook #'eldoc-mode)) - (use-package rust-mode :config - (add-hook 'rust-mode-hook #'racer-mode) - (macros-add-hook-before-save 'rust-mode-hook #'rust-format-buffer) - (define-key rust-mode-map - (kbd "TAB") - #'company-indent-or-complete-common) - (define-key rust-mode-map - (kbd "M-d") - #'racer-describe)) + (add-hook 'rust-mode-hook #'lsp) + (setq rust-format-on-save t)) (provide 'wpc-rust) ;;; wpc-rust.el ends here diff --git a/users/wpcarro/emacs/default.nix b/users/wpcarro/emacs/default.nix index 203a65d02a7c..0f141973754f 100644 --- a/users/wpcarro/emacs/default.nix +++ b/users/wpcarro/emacs/default.nix @@ -11,6 +11,15 @@ let emacsBinPath = makeBinPath ( wpcarro.common.shell-utils ++ + # Rust dependencies + (with pkgs; [ + cargo + rls + rust-analyzer + rustc + rustfmt + ]) ++ + # Misc dependencies (with pkgs; [ ispell nix @@ -85,7 +94,6 @@ let direnv alert nix-mode - racer rust-mode rainbow-delimiters racket-mode -- cgit 1.4.1