diff options
Diffstat (limited to 'rust-mode.el')
| -rw-r--r-- | rust-mode.el | 88 |
1 files changed, 1 insertions, 87 deletions
diff --git a/rust-mode.el b/rust-mode.el index 0b1f5d1..d4d61d7 100644 --- a/rust-mode.el +++ b/rust-mode.el @@ -17,16 +17,12 @@ (eval-when-compile (require 'rx)) -(require 'json) (require 'thingatpt) (defvar electric-pair-inhibit-predicate) (defvar electric-pair-skip-self) (defvar electric-indent-chars) -(defvar rust-buffer-project nil) -(make-variable-buffer-local 'rust-buffer-project) - ;;; Customization (defgroup rust-mode nil @@ -59,16 +55,6 @@ When nil, `where' will be aligned with `fn' or `trait'." :safe #'booleanp :group 'rust-mode) -(defcustom rust-cargo-bin "cargo" - "Path to cargo executable." - :type 'string - :group 'rust-mode) - -(defcustom rust-always-locate-project-on-open nil - "Whether to run `cargo locate-project' every time `rust-mode' is activated." - :type 'boolean - :group 'rust-mode) - (defcustom rust-indent-return-type-to-arguments t "Indent a line starting with the `->' (RArrow) following a function, aligning to the function arguments. When nil, `->' will be indented one level." @@ -266,11 +252,7 @@ Use idomenu (imenu with `ido-mode') for best mileage.") (add-hook 'before-save-hook 'rust-before-save-hook nil t) (add-hook 'after-save-hook 'rust-after-save-hook nil t) - - (setq-local rust-buffer-project nil) - - (when rust-always-locate-project-on-open - (rust-update-buffer-project))) + ) ;;;###autoload (add-to-list 'auto-mode-alist '("\\.rs\\'" . rust-mode)) @@ -1569,45 +1551,6 @@ This is written mainly to be used as `end-of-defun-function' for Rust." ;; There is no opening brace, so consider the whole buffer to be one "defun" (goto-char (point-max)))) -(defun rust--compile (format-string &rest args) - (when (null rust-buffer-project) - (rust-update-buffer-project)) - (let ((default-directory - (or (and rust-buffer-project - (file-name-directory rust-buffer-project)) - default-directory))) - (compile (apply #'format format-string args)))) - -(defun rust-check () - "Compile using `cargo check`" - (interactive) - (rust--compile "%s check" rust-cargo-bin)) - -(defun rust-compile () - "Compile using `cargo build`" - (interactive) - (rust--compile "%s build" rust-cargo-bin)) - -(defun rust-compile-release () - "Compile using `cargo build --release`" - (interactive) - (rust--compile "%s build --release" rust-cargo-bin)) - -(defun rust-run () - "Run using `cargo run`" - (interactive) - (rust--compile "%s run" rust-cargo-bin)) - -(defun rust-run-release () - "Run using `cargo run --release`" - (interactive) - (rust--compile "%s run --release" rust-cargo-bin)) - -(defun rust-test () - "Test using `cargo test`" - (interactive) - (rust--compile "%s test" rust-cargo-bin)) - ;;; Secondary Commands (defun rust-promote-module-into-dir () @@ -1632,35 +1575,6 @@ visit the new file." (rename-file filename new-name 1) (set-visited-file-name new-name)))))) -(defun rust-run-clippy () - "Run `cargo clippy'." - (interactive) - (when (null rust-buffer-project) - (rust-update-buffer-project)) - (let* ((args (list rust-cargo-bin "clippy" - (concat "--manifest-path=" rust-buffer-project))) - ;; set `compile-command' temporarily so `compile' doesn't - ;; clobber the existing value - (compile-command (mapconcat #'shell-quote-argument args " "))) - (rust--compile compile-command))) - -;;; Utilities - -(defun rust-update-buffer-project () - (setq-local rust-buffer-project (rust-buffer-project))) - -(defun rust-buffer-project () - "Get project root if possible." - (with-temp-buffer - (let ((ret (call-process rust-cargo-bin nil t nil "locate-project"))) - (when (/= ret 0) - (error "`cargo locate-project' returned %s status: %s" ret (buffer-string))) - (goto-char 0) - (let ((output (json-read))) - (cdr (assoc-string "root" output)))))) - -;;; Secondary Commands - (defun rust-insert-dbg () "Insert the dbg! macro." (cond ((region-active-p) |
