Skip to content

Commit

Permalink
Teach rustic-cargo-clippy to take arguments
Browse files Browse the repository at this point in the history
Similar to rustic-cargo-tests.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
  • Loading branch information
elmarco authored and brotzeit committed Jun 9, 2021
1 parent ed68fd3 commit bbf129c
Showing 1 changed file with 32 additions and 11 deletions.
43 changes: 32 additions & 11 deletions rustic-cargo.el
Original file line number Diff line number Diff line change
Expand Up @@ -49,23 +49,44 @@ If nil then the project is simply created."
(defvar rustic-clippy-buffer-name "*cargo-clippy*"
"Buffer name for clippy buffers.")

(defvar rustic-clippy-arguments ""
"Holds arguments for 'cargo clippy', similar to `compilation-arguments`.")

(define-derived-mode rustic-cargo-clippy-mode rustic-compilation-mode "cargo-clippy"
:group 'rustic)

;;;###autoload
(defun rustic-cargo-clippy ()
"Run `cargo clippy'."
(defun rustic-cargo-clippy-run (&optional args)
"Run `cargo clippy' with optional ARGS."
(interactive)
(let ((command (list rustic-cargo-bin "clippy"))
(buf rustic-clippy-buffer-name)
(proc rustic-clippy-process-name)
(mode 'rustic-cargo-clippy-mode))
(let* ((command (list rustic-cargo-bin "clippy"))
(c (append command (split-string (if args args ""))))
(buf rustic-clippy-buffer-name)
(proc rustic-clippy-process-name)
(mode 'rustic-cargo-clippy-mode))
(rustic-compilation-process-live)
(rustic-compilation command
(list
:buffer buf
:process proc
:mode mode))))
(rustic-compilation c (list :buffer buf :process proc :mode mode))))

;;;###autoload
(defun rustic-cargo-clippy (&optional arg)
"Run 'cargo clippy'.
If ARG is not nil, use value as argument and store it in `rustic-clippy-arguments'.
When calling this function from `rustic-popup-mode', always use the value of
`rustic-clippy-arguments'."
(interactive "P")
(rustic-cargo-clippy-run
(cond (arg
(setq rustic-clippy-arguments (read-from-minibuffer "Cargo clippy arguments: " rustic-clippy-arguments)))
((eq major-mode 'rustic-popup-mode)
rustic-clippy-arguments)
(t ""))))

;;;###autoload
(defun rustic-cargo-clippy-rerun ()
"Run 'cargo clippy' with `rustic-clippy-arguments'."
(interactive)
(rustic-cargo-clippy-run rustic-clippy-arguments))

;;; Test

Expand Down

0 comments on commit bbf129c

Please sign in to comment.