about summary refs log tree commit diff
diff options
context:
space:
mode:
authorWilliam Carroll <wpcarro@gmail.com>2022-08-08T17·53-0700
committerclbot <clbot@tvl.fyi>2022-08-08T17·56+0000
commitb92ceccfdb9d1ba6172e53008e1b5afea32ca20d (patch)
treed4afa3d81cab1546b849e47cbbc5d79b5a271943
parent60f6f5f10e29a67092a6d71e08f92d4631d02617 (diff)
fix(wpcarro/emacs): Update rust configuration r/4393
- Prefer LSP to racer
- Move KBDs to central location

Change-Id: Ib3fbf1b383d711f3ac6dd6d7791374b014b9df90
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6054
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
-rw-r--r--users/wpcarro/emacs/.emacs.d/wpc/keybindings.el14
-rw-r--r--users/wpcarro/emacs/.emacs.d/wpc/wpc-rust.el25
-rw-r--r--users/wpcarro/emacs/default.nix10
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 75ac95611f..16b3d6c8f3 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 dfee2fc86b..82ffe40dc4 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 203a65d02a..0f14197375 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