From 965de7d2be4a4555bf752fb3f996a93281b466e8 Mon Sep 17 00:00:00 2001 From: tarao Date: Sun, 23 Jun 2019 23:00:53 +0900 Subject: [PATCH 1/6] Provide a feature. --- bloop.el | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bloop.el b/bloop.el index b6cd36b..f7f2f13 100644 --- a/bloop.el +++ b/bloop.el @@ -140,3 +140,6 @@ (global-set-key (kbd "C-c b c") 'bloop-compile) (global-set-key (kbd "C-c b q") 'bloop-show-current-project) + +(provide 'bloop) +;;; bloop.el ends here From 599d5dc09ce56f22953c8b9e5b6855a5bf23b055 Mon Sep 17 00:00:00 2001 From: tarao Date: Sun, 23 Jun 2019 23:01:18 +0900 Subject: [PATCH 2/6] Require dependencies. --- bloop.el | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bloop.el b/bloop.el index f7f2f13..d3459e7 100644 --- a/bloop.el +++ b/bloop.el @@ -14,6 +14,10 @@ ;;; Code: +(require 'json) +(require 'subr-x) +(require 'comint) + ;;; Customization (defgroup bloop nil "Run Bloop from Emacs." From fa09f52a791c308cba0f553b148b2ea79b14aea6 Mon Sep 17 00:00:00 2001 From: tarao Date: Sun, 23 Jun 2019 23:01:29 +0900 Subject: [PATCH 3/6] Fix illegal function calls. --- bloop.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bloop.el b/bloop.el index d3459e7..a99d591 100644 --- a/bloop.el +++ b/bloop.el @@ -61,7 +61,8 @@ (cons name (mapcar 'file-name-as-directory dirs)))) (defun bloop-longest-string (func strings) - (let ((sorted (sort strings (lambda (x y) (> (length (func x)) (length (func y))))))) + (let ((sorted (sort strings (lambda (x y) (> (length (funcall func x)) + (length (funcall func y))))))) (car sorted))) (defun bloop-project-match-file (project file) From 24562e922c4cd85435bfc6e7c2ed9be8325c404f Mon Sep 17 00:00:00 2001 From: tarao Date: Sun, 23 Jun 2019 23:02:28 +0900 Subject: [PATCH 4/6] Suppress compilation warnings about unused variables. --- bloop.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bloop.el b/bloop.el index a99d591..05650ee 100644 --- a/bloop.el +++ b/bloop.el @@ -35,7 +35,7 @@ :type 'string :group 'bloop) -(defun bloop-buffer-name (root command) +(defun bloop-buffer-name (_root command) (concat "*bloop-" command "*")) (defun bloop-directory (root) @@ -111,7 +111,7 @@ ;; (compilation-shell-minor-mode) (comint-exec (current-buffer) buffer-name bloop-program-name nil (cons command args)) (current-buffer))) - (let ((compilation-buffer-name-function (lambda (mode) buffer-name))) + (let ((compilation-buffer-name-function (lambda (_mode) buffer-name))) (cd root) (compile full-command))))) From ba92c7d4f949748bf6dc06d8ff7cdaedb30af488 Mon Sep 17 00:00:00 2001 From: tarao Date: Sun, 23 Jun 2019 23:04:05 +0900 Subject: [PATCH 5/6] Make interactive commands autoloadable. --- bloop.el | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bloop.el b/bloop.el index 05650ee..d2274a6 100644 --- a/bloop.el +++ b/bloop.el @@ -116,6 +116,7 @@ (compile full-command))))) +;;;###autoload (defun bloop-compile () (interactive) (let* ((root (bloop-find-root (buffer-file-name))) @@ -123,6 +124,7 @@ (project-name (car project))) (bloop-exec nil root "compile" "--reporter" bloop-reporter project-name))) +;;;###autoload (defun bloop-test () (interactive) (let* ((root (bloop-find-root (buffer-file-name))) @@ -130,6 +132,7 @@ (project-name (car project))) (bloop-exec nil root "test" "--reporter" bloop-reporter project-name))) +;;;###autoload (defun bloop-test-only () (interactive) (let* ((root (bloop-find-root (buffer-file-name))) @@ -138,6 +141,7 @@ (target-test (concat "*" (replace-regexp-in-string ".scala" "" (car (last (split-string (buffer-file-name) "/"))))))) (bloop-exec nil root "test" "--reporter" bloop-reporter "--only" target-test project-name))) +;;;###autoload (defun bloop-show-current-project () (interactive) (let* ((root (bloop-find-root (buffer-file-name)))) From 2335a7650f0c53e9ca27af500633612d762b8868 Mon Sep 17 00:00:00 2001 From: tarao Date: Sun, 23 Jun 2019 23:12:33 +0900 Subject: [PATCH 6/6] Define a minor mode not to modify global key bindings. --- bloop.el | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/bloop.el b/bloop.el index d2274a6..971fc0b 100644 --- a/bloop.el +++ b/bloop.el @@ -147,8 +147,16 @@ (let* ((root (bloop-find-root (buffer-file-name)))) (message (format "%S %S" root (bloop-current-project root))))) -(global-set-key (kbd "C-c b c") 'bloop-compile) -(global-set-key (kbd "C-c b q") 'bloop-show-current-project) +;;;###autoload +(define-minor-mode bloop-mode + "Minor mode to run Bloop from Emacs" + :lighter "" + :keymap (make-sparse-keymap) + :group 'bloop + nil) + +(define-key bloop-mode-map (kbd "C-c b c") 'bloop-compile) +(define-key bloop-mode-map (kbd "C-c b q") 'bloop-show-current-project) (provide 'bloop) ;;; bloop.el ends here