Skip to content

Commit c52c8cb

Browse files
committed
feat(customisation): Make Projectile configuration optional
Add a new `prelude-projectile` user option, so that integration with Projectile can optionally be disabled. This is enabled by default, but it can be useful to turn this off -- for example, if one wishes instead to use Emacs' native `project.el` for project interaction. Refs: https://github.com/bbatsov/projectile
1 parent 7cddbca commit c52c8cb

9 files changed

+36
-14
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
- Add `prelude-vertico` module. Vertico a simpler alternative to `ivy-mode` and supersedes Selectrum.
1616
- [#1421](https://github.com/bbatsov/prelude/issues/1421): Make it possible to configure the TypeScript format action using `prelude-ts-format-action`.
1717
- [#1354](https://github.com/bbatsov/prelude/issues/1354): Remove default `C--` and `C-+` keybindings to increase/decrease the font size.
18+
- Add `prelude-projectile` user option, allowing Projectile integration to be disabled.
1819

1920
### Changes
2021

core/prelude-custom.el

+5
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,11 @@ Only modes that don't derive from `prog-mode' should be listed here."
122122
:type 'symbol
123123
:group 'prelude)
124124

125+
(defcustom prelude-projectile t
126+
"Non-nil values enable Prelude's Projectile integration."
127+
:type 'boolean
128+
:group 'prelude)
129+
125130
(provide 'prelude-custom)
126131

127132
;;; prelude-custom.el ends here

core/prelude-editor.el

+4-3
Original file line numberDiff line numberDiff line change
@@ -221,9 +221,10 @@
221221
bookmark-save-flag 1)
222222

223223
;; projectile is a project management mode
224-
(require 'projectile)
225-
(setq projectile-cache-file (expand-file-name "projectile.cache" prelude-savefile-dir))
226-
(projectile-mode t)
224+
(when prelude-projectile
225+
(require 'projectile)
226+
(setq projectile-cache-file (expand-file-name "projectile.cache" prelude-savefile-dir))
227+
(projectile-mode t))
227228

228229
;; avy allows us to effectively navigate to visible things
229230
(require 'avy)

core/prelude-mode.el

+5-4
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,11 @@
6565
(define-key map (kbd "C-c I") 'crux-find-user-init-file)
6666
(define-key map (kbd "C-c S") 'crux-find-shell-init-file)
6767
(define-key map (kbd "C-c i") 'imenu-anywhere)
68-
;; extra prefix for projectile
69-
(when prelude-super-keybindings
70-
(define-key map (kbd "s-p") 'projectile-command-map))
71-
(define-key map (kbd "C-c p") 'projectile-command-map)
68+
(when prelude-projectile
69+
;; extra prefix for projectile
70+
(when prelude-super-keybindings
71+
(define-key map (kbd "s-p") 'projectile-command-map))
72+
(define-key map (kbd "C-c p") 'projectile-command-map))
7273
;; make some use of the Super key
7374
(when prelude-super-keybindings
7475
;; crux

docs/configuration.md

+9
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,15 @@ desktop environments might be making heavy use of such keybindings. (in most cas
176176
(setq prelude-super-keybindings nil)
177177
```
178178

179+
### Disable Projectile
180+
181+
By default, Prelude configures [Projectile](https://github.com/bbatsov/projectile) for project
182+
interaction. To disable this, add the following to your config.
183+
184+
``` emacs-lisp
185+
(setq prelude-projectile nil)
186+
```
187+
179188
### Configuration per file or directory
180189

181190
Some of these settings (those that don't need to be pre-loaded) can also be set

modules/prelude-erlang.el

+5-3
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@
3838
:type 'string
3939
:safe 'stringp)
4040

41-
(require 'projectile)
41+
(when prelude-projectile
42+
(require 'projectile))
4243

4344
(when (require 'erlang-start nil t)
4445

@@ -49,8 +50,9 @@
4950
(add-to-list 'load-path wrangler-path)
5051
(require 'wrangler)))
5152

52-
(add-hook 'erlang-mode-hook (lambda ()
53-
(setq erlang-compile-function 'projectile-compile-project)))
53+
(when prelude-projectile
54+
(add-hook 'erlang-mode-hook (lambda ()
55+
(setq erlang-compile-function 'projectile-compile-project))))
5456

5557
(provide 'prelude-erlang)
5658

modules/prelude-go.el

+2-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@
3838
company
3939
gotest))
4040

41-
(require 'go-projectile)
41+
(when prelude-projectile
42+
(require 'go-projectile))
4243

4344
;; Ignore go test -c output files
4445
(add-to-list 'completion-ignored-extensions ".test")

modules/prelude-helm-everywhere.el

+3-2
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,9 @@
6363
(helm-descbinds-mode)
6464
(helm-mode 1)
6565

66-
;; enable Helm version of Projectile with replacment commands
67-
(helm-projectile-on)
66+
(when when prelude-projectile
67+
;; enable Helm version of Projectile with replacment commands
68+
(helm-projectile-on))
6869

6970
(provide 'prelude-helm-everywhere)
7071
;; prelude-helm-everywhere.el ends here.

modules/prelude-helm.el

+2-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@
3333

3434
(prelude-require-packages '(helm helm-projectile))
3535

36-
(require 'helm-projectile)
36+
(when prelude-projectile
37+
(require 'helm-projectile))
3738

3839
(when (executable-find "curl")
3940
(setq helm-google-suggest-use-curl-p t))

0 commit comments

Comments
 (0)