Je cherche donc à helm-swoop
regarder tous les fichiers d'un projet, pas seulement l'ensemble actuel des tampons ouverts.
C'est pour que je puisse utiliser swoop pour trouver toutes les occurrences dans un projet, marquer celles qui sont pertinentes, puis les éditer (en mode d'édition swoop helm).
Je pense qu'il y a probablement un moyen propre de le faire avec Helm / Helm swoop mais voici ma tentative de réfléchir à une solution:
- recueillir les noms de fichiers du projectile
- créer une liste de tampons à partir de la liste des noms de fichiers
- faire la même routine que helm-multi-swoop-all en plus d'utiliser cette nouvelle liste de tampons
(projectile-current-project-files)
, on dirait que cela me donne la liste des fichiers que je recherche.
Il helm-multi-swoop-all
semble donc qu'il serait assez facile de copier puis de modifier.
(defun helm-multi-swoop-all (&optional $query)
(interactive)
"Apply all buffers to helm-multi-swoop"
(cond ($query
(setq helm-multi-swoop-query $query))
(mark-active
(let (($st (buffer-substring-no-properties
(region-beginning) (region-end))))
(if (string-match "\n" $st)
(message "Multi line region is not allowed")
(setq helm-multi-swoop-query
(helm-swoop-pre-input-optimize $st)))))
((setq helm-multi-swoop-query
(helm-swoop-pre-input-optimize
(funcall helm-swoop-pre-input-function))))
(t (setq helm-multi-swoop-query "")))
(helm-multi-swoop--exec nil
:$query helm-multi-swoop-query
:$buflist (helm-multi-swoop--get-buffer-list)))
Remplacez simplement l'appel à helm-multi-swoop--get-buffer-list
, par celui qui fournit une liste de tampons à l'aide de la liste des projectiles.
Mais maintenant je suis un peu coincé. Je ne sais pas comment créer une liste de tampons à alimenter dans helm-swoop à partir d'un ensemble de noms de fichiers.
Je ne peux pas m'empêcher de penser qu'il existe un moyen plus simple d'y parvenir, peut-être sans fonctions personnalisées.
helm-projectile-ack
place.helm-swoop
. Est-ce que faire unhelm-projectile-grep
, puis leF3
M-x
wgrep-mode
rendre "modifiable"?Réponses:
Suite aux commentaires intéressants de PythonNut, j'ai installé
helm-ag
et exécuté àhelm-projectile-ag
partir du package de projectile viaC-c p s s
. Je suis ensuite passé en mode édition avecC-c C-e
. J'ai changé quelques lignes, puis j'ai appuyéC-c C-c
et celles-ci ont été enregistrées dans les fichiers appropriés.Cela fonctionne, mais à l'heure actuelle, une infellicité est qu'il enregistre chacun des fichiers "correspondants" plusieurs fois, qu'il y ait eu un changement ou non. J'ai soulevé ceci comme projectile # 756 .
En dehors de cela, je pense que cela fonctionnerait bien pour le besoin mentionné dans la question, et "sans fonctions personnalisées" :-)
la source
helm-git-grep
devrait être plus rapide quehelm-projectile-ag