about summary refs log tree commit diff
path: root/users/wpcarro/emacs
diff options
context:
space:
mode:
Diffstat (limited to 'users/wpcarro/emacs')
-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 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