O projétil é muito bom, mas acho difícil ativá-lo apenas em locais onde seria eficaz.
Pelo que entendi, as duas opções padrão são ativá-lo manualmente, como nos ganchos principais, ou ativá-lo globalmente projectile-global-mode
. Acho que o primeiro não é amplo o suficiente; Quero poder acessar comandos de projéteis enquanto estiver visualizando qualquer arquivo em um projeto, independentemente do seu tipo. Mas ativar o modo globalmente é muito amplo; ele fica ligado mesmo quando visitam tais manifestamente diretórios não-projeto como o meu diretório home, /tmp
, /etc
, etc.
Existe uma maneira padrão para ativar projectile-mode
somente quando visitar um arquivo que vive em um projeto real, como pode ser determinado por, digamos, verificando a existência de um .git
, .svn
, etc, diretório em algum diretório ancestral do arquivo atual?
fonte
.git
,.svn
... deve ser o padrão. Talvez você tenhaprojectile-require-project-root
definidonil
.t
. Mas o modo ainda está ativado,/etc
por exemplo.projectile-find-files
esses diretórios que não são do projeto, o Projectile simplesmente fornece a mensagem "Você não está em um projeto". Tem certeza de que executa o comando certo?Projectile[etc]
na linha de modo quando abro/etc
. Ele ocupa um espaço valioso na linha de modo, e eu prefiro não ativar o modo em diretórios que não são de projeto.Respostas:
Então, é sobre a modelagem. Você pode configurar
projectile-mode-line
para verificar se você está em uma raiz do projeto; nesse caso, é exibido na modeline; caso contrário, não exibe nada:fonte
default-directory
. Eu vou fazer um PR.*Messages*
buffer, porqueprojectile-project-root
gera uma exceção se chamada de um diretório que não é do projeto. Portanto, essa chamada de função precisa ser agrupada em umcondition-case
e tambémprojectile-require-project-root
precisa ser vinculadat
.