El proyectil es bastante bueno, pero me resulta difícil encenderlo solo en lugares donde sería efectivo.
Según tengo entendido, las dos opciones estándar son activarlo manualmente, como en los ganchos de modo principal, o habilitarlo globalmente projectile-global-mode
. Me parece que el primero no es lo suficientemente amplio; Quiero poder acceder a comandos de proyectiles mientras visito cualquier archivo en un proyecto, independientemente de su tipo. Pero activar el modo globalmente es demasiado amplio; que se excita aun cuando visite esos directorios manifiestamente ajenas al proyecto como mi directorio personal, /tmp
, /etc
, etc.
¿Hay una manera estándar para activar projectile-mode
solamente cuando se visita un fichero que vive en un proyecto real, que pudieran determinarse por, por ejemplo, la comprobación de la existencia de una .git
, .svn
, etc, directorio en algún directorio ancestro del archivo actual?
fuente
.git
,.svn
... debe ser el valor por defecto. Tal vez tienes queprojectile-require-project-root
configurarlonil
.t
. Pero el modo todavía está activado,/etc
por ejemplo.projectile-find-files
en dichos directorios que no son de proyecto, Projectile simplemente le da un mensaje "No está en un proyecto". ¿Estás seguro de que ejecutas el comando correcto?Projectile[etc]
en la línea de modo cuando abro/etc
. Ocupa un valioso espacio real de línea de modo, y prefiero simplemente no activar el modo en absoluto en directorios que no son de proyecto.Respuestas:
Entonces, se trata de la línea de modelo. Puede configurar
projectile-mode-line
para verificar si está en la raíz de un proyecto; si es así, se muestra en la línea de modo, de lo contrario no muestra nada:fuente
default-directory
. Haré un PR.*Messages*
búfer, porqueprojectile-project-root
genera una excepción si se llama desde un directorio que no es del proyecto. Por lo tanto, esa llamada de función debe estar envuelta en acondition-case
, y tambiénprojectile-require-project-root
debe estar vinculadat
.