buffers – Helm swoop en todos los archivos del proyecto (no solo en los búferes actuales)

Pregunta:

Así que estoy buscando que helm-swoop mire todos los archivos en un proyecto, no solo el conjunto actual de búferes abiertos.

Esto es para que pueda usar swoop para encontrar todas las ocurrencias en un proyecto, marcar las relevantes y luego editarlas (en el modo de edición de helm swoops).

Siento que probablemente haya una manera limpia de hacer esto con Helm / Helm swoop, pero aquí está mi intento de pensar en una solución:

  1. recopilar nombres de archivo de proyectil
  2. crear una lista de búferes a partir de la lista de nombres de archivo
  3. haga la misma rutina que helm-multi-swoop-all además de usar esta nueva lista de búfer

(projectile-current-project-files) , parece que me da la lista de archivos que estoy buscando.

Entonces, helm-multi-swoop-all , parece que sería bastante fácil de copiar y luego modificar.

(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)))

Simplemente reemplace la llamada a helm-multi-swoop--get-buffer-list , por una que proporcione una lista de búferes usando la lista de proyectiles.

Pero ahora estoy un poco estancado. No estoy seguro de cómo crear una lista de búferes para alimentar a helm-swoop a partir de un conjunto de nombres de archivo.

Tampoco puedo evitar pensar que hay una forma más sencilla de lograr esto, tal vez sin funciones personalizadas.

Respuesta:

Siguiendo los interesantes comentarios de PythonNut, instalé helm-ag y ejecuté helm-projectile-ag desde el paquete de proyectiles a través de Cc pss . Luego cambié al modo de edición con Cc Ce . Cambié algunas líneas y luego presioné Cc Cc y estas se guardaron en los archivos relevantes.

Esto funciona, pero en la actualidad un inconveniente es que guarda cada uno de los archivos "coincidentes" varias veces, independientemente de si hubo un cambio o no. Levanté esto como proyectil # 756 .

Aparte de eso, creo que funcionaría bien para la necesidad mencionada en la pregunta, y "sin funciones personalizadas" 🙂

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım