Le projectile est assez bon, mais j'ai du mal à le faire allumer uniquement aux endroits où il serait efficace.
Si je comprends bien, les deux choix standard sont de l'activer manuellement, comme dans les principaux crochets de mode, ou de l'activer globalement avec projectile-global-mode
. Je trouve que le premier n'est pas assez large; Je veux pouvoir accéder aux commandes de projectiles tout en visitant n'importe quel fichier d'un projet, quel que soit son type. Mais l'activation du mode à l'échelle mondiale est trop large; il s'allumé même lorsque vous visitez ces répertoires manifestement hors projet comme mon répertoire personnel, /tmp
, /etc
, etc.
Est - il un moyen standard pour activer projectile-mode
uniquement lors de la visite d' un fichier qui vit dans un projet réel, comme cela pourrait être déterminé par, par exemple, la vérification de l'existence d'un .git
, .svn
, etc, répertoire dans un répertoire ancêtre du fichier en cours?
la source
.git
,.svn
... devrait être la valeur par défaut. Peut-être que vous devez vous yprojectile-require-project-root
mettrenil
.t
. Mais le mode est toujours activé/etc
par exemple.projectile-find-files
sur de tels répertoires hors projet, Projectile vous donne simplement un message "Vous n'êtes pas sur un projet". Êtes-vous sûr d'exécuter la bonne commande?Projectile[etc]
dans la ligne de mode quand j'ouvre/etc
. Il occupe un espace précieux sur la ligne de mode, et je préfère tout simplement ne pas activer le mode du tout dans les répertoires hors projet.Réponses:
Il s'agit donc de la modeline. Vous pouvez configurer
projectile-mode-line
pour vérifier si vous êtes dans une racine de projet; si c'est le cas, s'affiche dans la modélisation, sinon n'affiche rien:la source
default-directory
. Je vais faire un PR.*Messages*
tampon, carprojectile-project-root
déclenche une exception s'il est appelé à partir d'un répertoire non-projet. Cet appel de fonction doit donc être enveloppé dans uncondition-case
, etprojectile-require-project-root
doit également être lié àt
.