summaryrefslogtreecommitdiffstats
path: root/lisp/bandali-projectile.el
diff options
context:
space:
mode:
authorAmin Bandali <bandali@gnu.org>2020-04-25 16:06:36 -0400
committerAmin Bandali <bandali@gnu.org>2020-04-25 16:10:23 -0400
commit1eb203130bcee485d5abaead5dc7ee723a49d864 (patch)
tree659d3c4c42f97272fd18082a65eaf0ee7376f765 /lisp/bandali-projectile.el
parent8146824a5a0175e7e51e5cba82ef88cf105ef50d (diff)
downloadconfigs-1eb203130bcee485d5abaead5dc7ee723a49d864.tar.gz
configs-1eb203130bcee485d5abaead5dc7ee723a49d864.tar.xz
configs-1eb203130bcee485d5abaead5dc7ee723a49d864.zip
Assimilate 8 drones
Assimilate boxquote v2.1-1-g7e47e0e Assimilate expand-region 0.11.0-36-gea6b4cb Assimilate hl-todo v3.1.1-2-g3bba459 Assimilate orgalist b436971 Assimilate page-break-lines 0.11-29-g314b397 Assimilate unkillable-scratch 1.0.0-5-gb24c2a7 Assimilate which-key v3.4.0-24-g8b49ae9 Assimilate yasnippet 0.14.0-6-g5b1217a Also, remove some unused (use-package ...) forms.
Diffstat (limited to '')
-rw-r--r--lisp/bandali-projectile.el67
1 files changed, 67 insertions, 0 deletions
diff --git a/lisp/bandali-projectile.el b/lisp/bandali-projectile.el
new file mode 100644
index 0000000..41504e6
--- /dev/null
+++ b/lisp/bandali-projectile.el
@@ -0,0 +1,67 @@
+;;; bandali-projectile.el --- bandali's Projectile setup -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2020 Amin Bandali
+
+;; Author: Amin Bandali <bandali@gnu.org>
+;; Keywords: convenience
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; My Projectile setup.
+
+;;; Code:
+
+(use-package projectile
+ :disabled
+ :defer 0.5
+ :bind-keymap ("C-c p" . projectile-command-map)
+ :config
+ (projectile-mode)
+
+ (defun b/projectile-mode-line-fun ()
+ "Report project name and type in the modeline."
+ (let ((project-name (projectile-project-name))
+ (project-type (projectile-project-type)))
+ (format "%s%s"
+ projectile-mode-line-prefix
+ (if project-type
+ (format ":%s" project-type)
+ ""))))
+ (setq projectile-mode-line-function 'b/projectile-mode-line-fun)
+
+ (defun my-projectile-invalidate-cache (&rest _args)
+ ;; ignore the args to `magit-checkout'
+ (projectile-invalidate-cache nil))
+
+ (eval-after-load 'magit-branch
+ '(progn
+ (advice-add 'magit-checkout
+ :after #'my-projectile-invalidate-cache)
+ (advice-add 'magit-branch-and-checkout
+ :after #'my-projectile-invalidate-cache)))
+
+ (when (featurep 'which-key)
+ (which-key-add-key-based-replacements
+ "C-c p" "projectile"
+ "C-c p s" "projectile/search"
+ "C-c p x" "projectile/execute"
+ "C-c p 4" "projectile/other-window"))
+ :custom
+ (projectile-completion-system 'ivy)
+ (projectile-mode-line-prefix " proj"))
+
+(provide 'bandali-projectile)
+;;; bandali-projectile.el ends here