From dcd29762e7f6454ecb40163e28f2775544b55147 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 30 May 2018 10:52:44 +0200 Subject: [PATCH] Gate fuzzy search config behind +fuzzy module flag Fuzzy search, on its own, is inaccurate when individual candidates are long. Helm's non-fuzzy search backend doesn't have this problem. This adds `flx` sorting to fuzzy search to make up for this. --- modules/completion/helm/config.el | 45 ++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/modules/completion/helm/config.el b/modules/completion/helm/config.el index 9dac9accf..928fbee21 100644 --- a/modules/completion/helm/config.el +++ b/modules/completion/helm/config.el @@ -38,21 +38,13 @@ (def-package! helm :after helm-mode :init - (setq - ;; Fuzzy matching is pretty handy! - helm-mode-fuzzy-match t - helm-buffers-fuzzy-matching t - helm-apropos-fuzzy-match t - helm-M-x-fuzzy-match t - helm-recentf-fuzzy-match t - helm-projectile-fuzzy-match t - ;; Display extraineous helm UI elements - helm-display-header-line nil - helm-ff-auto-update-initial-value nil - helm-find-files-doc-header nil - ;; Don't override evil-ex's completion - helm-mode-handle-completion-in-region nil - helm-candidate-number-limit 50) + (setq helm-candidate-number-limit 50 + ;; Display extraineous helm UI elements + helm-display-header-line nil + helm-ff-auto-update-initial-value nil + helm-find-files-doc-header nil + ;; Don't override evil-ex's completion + helm-mode-handle-completion-in-region nil) :config (setq projectile-completion-system 'helm) @@ -86,6 +78,29 @@ (setq-local cursor-type nil)))) (add-hook 'helm-minibuffer-set-up-hook #'+helm*hide-minibuffer-maybe)) + +(def-package! helm-flx + :when (featurep! +fuzzy) + :after helm + :init + (setq helm-candidate-number-limit 40 + helm-M-x-fuzzy-match t + helm-apropos-fuzzy-match t + helm-bookmark-show-location t + helm-buffers-fuzzy-matching t + helm-completion-in-region-fuzzy-match t + helm-file-cache-fuzzy-match t + helm-imenu-fuzzy-match t + helm-locate-fuzzy-match t + helm-flx-for-helm-locate t + helm-mode-fuzzy-match t + helm-projectile-fuzzy-match t + helm-recentf-fuzzy-match t + helm-semantic-fuzzy-match t) + :config + (helm-flx-mode +1)) + + (def-package! helm-locate :defer t :init (defvar helm-generic-files-map (make-sparse-keymap))