summary refs log tree commit diff
path: root/emacs.d/modules/module-project.el
blob: 9f635ed5dcf5e2823b788f014db0c9829ef36803 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
(defhydra hydra-projectile-other-window (:color teal :columns 2)
  "projectile-other-window"
  ("f"  projectile-find-file-other-window        "file")
  ("g"  projectile-find-file-dwim-other-window   "file dwim")
  ("d"  projectile-find-dir-other-window         "dir")
  ("b"  projectile-switch-to-buffer-other-window "buffer")
  ("q"  nil                                      "cancel" :color blue))

(defhydra hydra-projectile (:color teal :columns 4)
  "Projectile"
  ("a"   projectile-ag "ag")
  ("b"   projectile-switch-to-buffer "switch to buffer")
  ("c"   projectile-invalidate-cache "invalidate cache")
  ("d"   projectile-find-dir "find dir")
  ("s-f" projectile-find-file "find file")
  ("ff"  projectile-find-file-dwim "find file dwim")
  ("fd"  projectile-find-file-in-directory "find file in dir")
  ("g"   projectile-regenerate-tags "regenerate tags")
  ("fg"  projectile-find-tag "find tag")
  ("i"   projectile-ibuffer "ibuffer")
  ("K"   projectile-kill-buffers "kill buffers")
  ("m"   projectile-multi-occur "multi occur")
  ("s-p" projectile-switch-project "switch project")
  ("s"   projectile-switch-project "switch project")
  ("r"   projectile-recentf "recent file")
  ("x"   projectile-remove-known-project "remove project")
  ("X"   projectile-cleanup-known-projects "cleanup project")
  ("z"   projectile-cache-current-file "cache current file")
  ("`"   hydra-projectile-other-window/body "other window")
  ("q"   nil "cancel" :color blue))

(use-package projectile
  :diminish projectile-mode
  :bind-keymap ("C-c p" . projectile-command-map)
  :bind (("M-p" . hydra-projectile/body))

  :init
  (add-hook 'after-init-hook #'projectile-mode)

  :config
  (setq projectile-switch-project-action 'projectile-dired
        projectile-enable-caching t
        projectile-completion-system 'ivy
        projectile-known-projects-file (expand-file-name "var/projectile-bookmarks.eld" user-emacs-directory)
        projectile-cache-file (expand-file-name "var/projectile.cache" user-emacs-directory)
        projectile-globally-ignored-directories (append fcuny-projects-ignored-dirs
                                                        projectile-globally-ignored-directories)
        projectile-globally-ignored-files (append fcuny-projects-ignored-files
                                                  projectile-globally-ignored-files)))

(use-package ag
  :commands (counsel-ag ag)
  :bind (:map ag-mode-map
              ("p" . compilation-previous-error)
              ("n" . compilation-next-error)
              ("N" . compilation-next-file)
              ("P" . compilation-previous-file))
  :config
  (setq ag-highlight-search t
        ag-reuse-buffers t
        ag-reuse-window t))

(provide 'module-project)