diff --git a/init/init-helm.el b/init/init-helm.el
index 53c021ea1..8230a9395 100644
--- a/init/init-helm.el
+++ b/init/init-helm.el
@@ -14,12 +14,6 @@
(my--cleanup-buffers-add "^\\*[Hh]elm.*\\*$")
- (bind helm-map
- (kbd "C-w") 'evil-delete-backward-word
- (kbd "C-u") 'helm-delete-minibuffer-contents
- (kbd "C-r") 'evil-ex-paste-from-register ; Evil registers in helm! Glorious!
- [escape] 'helm-keyboard-quit)
-
(evil-ex-define-cmd "a" 'helm-projectile-find-other-file)
(evil-ex-define-cmd "proj[ect]" 'helm-projectile-switch-project)
(evil-ex-define-cmd "ag" 'my:helm-ag-search)
@@ -83,24 +77,18 @@
helm-swoop-speed-or-color t
helm-swoop-split-window-function 'popwin:popup-buffer)
- (after "helm-css-scss"
- ;; Ex-mode interface for `helm-swoop', `helm-multi-swoop-all' (if `bang'), or
- ;; `helm-css-scss' and `helm-css-scss-multi' (if `bang') if major-mode is
- ;; `scss-mode'
- (evil-define-command my:helm-swoop (&optional search bang)
- :repeat nil
- (interactive "")
- (if (eq major-mode 'scss-mode)
- (if bang (helm-css-scss-multi search) (helm-css-scss search))
- (if bang (helm-multi-swoop-all search) (helm-swoop :$query search)))))))
+ ;; Ex-mode interface for `helm-swoop', `helm-multi-swoop-all' (if `bang'), or
+ ;; `helm-css-scss' and `helm-css-scss-multi' (if `bang') if major-mode is
+ ;; `scss-mode'
+ (evil-define-command my:helm-swoop (&optional search bang)
+ :repeat nil
+ (interactive "")
+ (if (eq major-mode 'scss-mode)
+ (if bang (helm-css-scss-multi search) (helm-css-scss search))
+ (if bang (helm-multi-swoop-all search) (helm-swoop :$query search))))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (after "projectile"
- (use-package helm-projectile
- :config
- (setq projectile-switch-project-action 'helm-projectile)))
-
(after "winner"
;; Tell winner-mode to ignore helm buffers
(dolist (bufname '("*helm recentf*"
@@ -126,11 +114,37 @@
:prompt helm-global-prompt
:candidate-number-limit helm-company-candidate-number-limit)))))
- (progn ; helm hacks
+ (after "projectile"
+ (use-package helm-projectile
+ :config
+ (setq projectile-switch-project-action 'helm-projectile))
+
;; Don't show the project name in the prompts; I already know.
(defun projectile-prepend-project-name (string)
(format helm-global-prompt string))
+ ;; All this for a smaller prompt (it was redundant with helm headers)
+ (defmacro helm-projectile-command (command source prompt)
+ `(defun ,(intern (concat "helm-projectile-" command)) (&optional arg)
+ (interactive "P")
+ (if (projectile-project-p)
+ (projectile-maybe-invalidate-cache arg))
+ (let ((helm-ff-transformer-show-only-basename nil)
+ ;; for consistency, we should just let Projectile take care of ignored files
+ (helm-boring-file-regexp-list nil))
+ (helm :sources ,source
+ :buffer "*helm projectile*"
+ :prompt helm-global-prompt))))
+
+ (helm-projectile-command "switch-project" 'helm-source-projectile-projects helm-global-prompt)
+ (helm-projectile-command "find-file" helm-source-projectile-files-and-dired-list helm-global-prompt)
+ (helm-projectile-command "find-file-in-known-projects" 'helm-source-projectile-files-in-all-projects-list helm-global-prompt)
+ (helm-projectile-command "find-file-dwim" 'helm-source-projectile-files-dwim-list helm-global-prompt)
+ (helm-projectile-command "find-dir" helm-source-projectile-directories-and-dired-list helm-global-prompt)
+ (helm-projectile-command "recentf" 'helm-source-projectile-recentf-list helm-global-prompt)
+ (helm-projectile-command "switch-to-buffer" 'helm-source-projectile-buffers-list helm-global-prompt))
+
+ (progn ; helm hacks
;; No persistent header
(defadvice helm-display-mode-line (after undisplay-header activate)
(setq header-line-format nil))
@@ -163,8 +177,6 @@
(propertize (concat " " hlstr hlend) 'face 'helm-header))))
(when force (force-mode-line-update))))
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
(progn ; popwin
(push '("^\\*helm.*\\*$" :position bottom :regexp t :height 18)
popwin:special-display-config))
@@ -178,4 +190,10 @@
(evil-define-command my:helm-recentf (&optional bang)
:repeat nil
(interactive "")
- (if bang (helm-recentf) (helm-projectile-recentf))))))
+ (if bang (helm-recentf) (helm-projectile-recentf))))
+
+ (bind helm-map
+ "C-w" 'evil-delete-backward-word
+ "C-u" 'helm-delete-minibuffer-contents
+ "C-r" 'evil-ex-paste-from-register ; Evil registers in helm! Glorious!
+ [escape] 'helm-keyboard-quit)))