[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/inf-clojure 397272d 300/313: Auto-enable inf-clojure-minor
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/inf-clojure 397272d 300/313: Auto-enable inf-clojure-minor-mode on starting inf-clojure |
Date: |
Wed, 11 Aug 2021 10:00:37 -0400 (EDT) |
branch: elpa/inf-clojure
commit 397272de241b64ad794a0f64c185bc77a1a23ecf
Author: Bozhidar Batsov <bozhidar@batsov.com>
Commit: Bozhidar Batsov <bozhidar@batsov.com>
Auto-enable inf-clojure-minor-mode on starting inf-clojure
That's inspired from the way CIDER starts cider-mode.
---
CHANGELOG.md | 1 +
README.md | 8 ++++++--
inf-clojure.el | 32 +++++++++++++++++++++++++++++++-
3 files changed, 38 insertions(+), 3 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 56dc45a..1468d2b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,7 @@
### New features
* [#190](https://github.com/clojure-emacs/inf-clojure/pull/190): Helper
function `inf-clojure-set-repl` to select inf-clojure process buffer.
+* Auto-enable `inf-clojure-minor-mode` after invoking `inf-clojure`. This
behaviour is controlled via `inf-clojure-auto-mode`.
### Bugs fixed
diff --git a/README.md b/README.md
index 75aa0ec..8f54179 100644
--- a/README.md
+++ b/README.md
@@ -95,8 +95,12 @@ If the installation doesn't work try refreshing the package
list:
<kbd>M-x package-refresh-contents</kbd>
-Add the following to your Emacs config to enable
-`inf-clojure-minor-mode` for Clojure source buffers:
+`inf-clojure-minor-mode` will be auto-enabled for Clojure source buffers after
you do
+`M-x inf-clojure`. You can disable this behavior by setting
`inf-clojure-auto-mode` to
+`nil`.
+
+You can also add the following to your Emacs config to enable
+`inf-clojure-minor-mode` for Clojure source buffers, regardless of whether
there's an `inf-clojure` REPL running:
```emacs-lisp
(add-hook 'clojure-mode-hook #'inf-clojure-minor-mode)
diff --git a/inf-clojure.el b/inf-clojure.el
index 5f139c7..84b9d38 100644
--- a/inf-clojure.el
+++ b/inf-clojure.el
@@ -516,6 +516,34 @@ This should usually be a combination of
`inf-clojure-prompt' and
:safe #'booleanp
:package-version '(inf-clojure . "2.0.0"))
+(defcustom inf-clojure-auto-mode t
+ "When non-nil, automatically enable inf-clojure-minor-mode for all Clojure
buffers."
+ :type 'boolean
+ :safe #'booleanp
+ :package-version '(inf-clojure . "3.1.0"))
+
+(defun inf-clojure--clojure-buffers ()
+ "Return a list of all existing `clojure-mode' buffers."
+ (cl-remove-if-not
+ (lambda (buffer) (with-current-buffer buffer (derived-mode-p
'clojure-mode)))
+ (buffer-list)))
+
+(defun inf-clojure-enable-on-existing-clojure-buffers ()
+ "Enable inf-clojure's minor mode on existing Clojure buffers.
+See command `inf-clojure-minor-mode'."
+ (interactive)
+ (add-hook 'clojure-mode-hook #'inf-clojure-minor-mode)
+ (dolist (buffer (inf-clojure--clojure-buffers))
+ (with-current-buffer buffer
+ (inf-clojure-minor-mode +1))))
+
+(defun inf-clojure-disable-on-existing-clojure-buffers ()
+ "Disable command `inf-clojure-minor-mode' on existing Clojure buffers."
+ (interactive)
+ (dolist (buffer (inf-clojure--clojure-buffers))
+ (with-current-buffer buffer
+ (inf-clojure-minor-mode -1))))
+
(defvar inf-clojure-buffer nil
"The current `inf-clojure' process buffer.
@@ -609,7 +637,9 @@ to continue it."
(setq-local comint-prompt-read-only inf-clojure-prompt-read-only)
(add-hook 'comint-preoutput-filter-functions #'inf-clojure-preoutput-filter
nil t)
(add-hook 'completion-at-point-functions #'inf-clojure-completion-at-point
nil t)
- (ansi-color-for-comint-mode-on))
+ (ansi-color-for-comint-mode-on)
+ (when inf-clojure-auto-mode
+ (inf-clojure-enable-on-existing-clojure-buffers)))
(defun inf-clojure-get-old-input ()
"Return a string containing the sexp ending at point."
- [nongnu] elpa/inf-clojure 1bac8fe 249/313: Tweak some messages, (continued)
- [nongnu] elpa/inf-clojure 1bac8fe 249/313: Tweak some messages, ELPA Syncer, 2021/08/11
- [nongnu] elpa/inf-clojure f1c8323 261/313: Fix some wording, ELPA Syncer, 2021/08/11
- [nongnu] elpa/inf-clojure 23492b5 263/313: Trim some whitespace, ELPA Syncer, 2021/08/11
- [nongnu] elpa/inf-clojure 8be9cec 269/313: Use kbd-style keybindings everywhere, ELPA Syncer, 2021/08/11
- [nongnu] elpa/inf-clojure 68ab0f7 282/313: Bump the required Emacs version, ELPA Syncer, 2021/08/11
- [nongnu] elpa/inf-clojure 81e0912 287/313: Tweak some features, ELPA Syncer, 2021/08/11
- [nongnu] elpa/inf-clojure 675e9be 290/313: Handle newlines between forms for `inf-clojure-eval-buffer`, ELPA Syncer, 2021/08/11
- [nongnu] elpa/inf-clojure b601d48 266/313: Tweak the README a bit, ELPA Syncer, 2021/08/11
- [nongnu] elpa/inf-clojure 91145b0 293/313: Function to select repls as the current active connection, ELPA Syncer, 2021/08/11
- [nongnu] elpa/inf-clojure d79e4eb 299/313: Remove a redundant call to with-current-buffer, ELPA Syncer, 2021/08/11
- [nongnu] elpa/inf-clojure 397272d 300/313: Auto-enable inf-clojure-minor-mode on starting inf-clojure,
ELPA Syncer <=
- [nongnu] elpa/inf-clojure 07b2738 301/313: Include the project name automatically in the REPL buffer name, ELPA Syncer, 2021/08/11
- [nongnu] elpa/inf-clojure c3ff2f4 308/313: Add a note about comint, ELPA Syncer, 2021/08/11
- [nongnu] elpa/inf-clojure 37cfe85 307/313: Update some wording, ELPA Syncer, 2021/08/11
- [nongnu] elpa/inf-clojure 696e5ef 309/313: Add a link to Discord, ELPA Syncer, 2021/08/11
- [nongnu] elpa/inf-clojure 49b2257 310/313: Remove the TOC, ELPA Syncer, 2021/08/11
- [nongnu] elpa/inf-clojure fcf30b5 210/313: README: Add instructions for including socket config in .dir-locals.el or .emacs., ELPA Syncer, 2021/08/11
- [nongnu] elpa/inf-clojure b53074a 216/313: Tweak README and discourage terminal REPLs, ELPA Syncer, 2021/08/11
- [nongnu] elpa/inf-clojure e14dbba 145/313: Update the commentary section of the package, ELPA Syncer, 2021/08/11
- [nongnu] elpa/inf-clojure 59868ff 218/313: Remove quotes from reload and fix argument parsing (#148), ELPA Syncer, 2021/08/11
- [nongnu] elpa/inf-clojure d0d269d 226/313: Tweak the changelog, ELPA Syncer, 2021/08/11