diff --git a/modules/completion/helm/config.el b/modules/completion/helm/config.el index e582d2b7d..219bc1071 100644 --- a/modules/completion/helm/config.el +++ b/modules/completion/helm/config.el @@ -10,7 +10,15 @@ ;; Packages ;; +(def-package! helm-mode + :hook (doom-init . helm-mode) + :config + ;; helm is too heavy for find-file-at-point + (add-to-list 'helm-completing-read-handlers-alist '(find-file-at-point . nil))) + + (def-package! helm + :after helm-mode :init (setq helm-quick-update t ;; Speedier without fuzzy matching @@ -31,18 +39,12 @@ helm-move-to-line-cycle-in-source t) :config - (add-hook 'doom-init-hook #'helm-mode) + (setq projectile-completion-system 'helm) (defvar helm-projectile-find-file-map (make-sparse-keymap)) (require 'helm-projectile) (set-keymap-parent helm-projectile-find-file-map helm-map) - ;; helm is too heavy for find-file-at-point - (after! helm-mode - (add-to-list 'helm-completing-read-handlers-alist '(find-file-at-point . nil))) - - (setq projectile-completion-system 'helm) - ;;; Helm hacks (defun +helm*replace-prompt (plist) "Globally replace helm prompts with `+helm-global-prompt'." @@ -57,6 +59,17 @@ (setq mode-line-format nil)) (advice-add #'helm-display-mode-line :override #'+helm*hide-header) + (defun +helm*hide-minibuffer-maybe () + "Hide minibuffer in Helm session if we use the header line as input field." + (when (with-helm-buffer helm-echo-input-in-header-line) + (let ((ov (make-overlay (point-min) (point-max) nil nil t))) + (overlay-put ov 'window (selected-window)) + (overlay-put ov 'face + (let ((bg-color (face-background 'default nil))) + `(:background ,bg-color :foreground ,bg-color))) + (setq-local cursor-type nil)))) + (add-hook 'helm-minibuffer-set-up-hook #'+helm*hide-minibuffer-maybe) + (map! :map global-map [remap apropos] #'helm-apropos [remap find-file] #'helm-find-files @@ -107,6 +120,10 @@ helm-css-scss-split-with-multiple-windows t)) +(def-package! helm-for-files + :commands (helm-for-files helm-recentf helm-multi-files)) + + (def-package! helm-swoop ; https://github.com/ShingoFukuyama/helm-swoop :commands (helm-swoop helm-multi-swoop helm-multi-swoop-all) :config