Estou usando company-mode
para fins de conclusão. Mas de alguma forma, alguns pacotes auto-complete
também são atraídos, o que colide company-mode
, pois ambos oferecem um pop-up com candidatos à conclusão. Quero entrar na lista negra auto-complete
, pois não preciso disso. Como eu posso fazer isso? Sei que há uma variável package-pinned-package
, mas não consigo ver como colocar um pacote na lista negra - talvez usando um arquivo inválido?
8
autocomplete-mode
ser um problema, ele deve ser ativado primeiro, o mesmo vale paracompany-mode
.autocomplete
estar ativo em nenhum buffer em quecompany-mode
esteja ativo. Talvez você precise desativar manualmenteautocomplete
os*mode-hook
modos principais afetados?~/.emacs.d
de algo ao longo das linhas(auto-complete-mode)
funcionariam.Respostas:
Não sei como colocar na lista negra a instalação de um pacote. Mas é fácil impedi-lo de carregado . Se você colocar
(provide 'auto-complete)
seu arquivo init, qualquer pacote que tentar carregarauto-complete
será informado de que já está carregado.(Mais precisamente, isso cuida de bibliotecas que carregam
auto-complete
da maneira normal, comrequire
. Se houver algum código que useload
diretamente (o que seria incomum), você precisará colocá-lo em um arquivo separado chamadoauto-complete.el
.)Obviamente, se o pacote exigir
auto-complete
, é provavelmente porque ele será usado. Mas talvez um pacote declare apenas fontes de preenchimento automático e tenha funcionalidade útil caso contrário. Então você pode fazer a parte que você não quer no-op. Dependendo do que o pacote faz, você pode precisar de outras definições semelhantes.fonte
O que o @Gilles escreveu é a resposta geral que eu também daria.
Mas note que o uso
provide
se não impedir que o código de carregar o pacote. Impede que o código carregue o pacote apenas porrequire
. Se o código usaload
,load-library
,load-file
etc, então este truque não tem efeito.Se você realmente precisar impedir que o código carregue uma determinada biblioteca, uma abordagem melhor é fornecer uma biblioteca proxy que seja carregada em seu lugar. Por exemplo, em um diretório anterior ao seu
load-path
, adicione um falsoauto-complete.el
que não faz nada, exceto(provide 'auto-complete)
.Dessa forma, sempre que o código tentar carregar a biblioteca usando
load
ouload-library
sua biblioteca proxy será carregada em vez da que você está evitando.No entanto, se o código usar
load-file
e fornecer o endereço absoluto do arquivo da biblioteca que você está tentando evitar, esse arquivo será carregado. Não vejo uma boa solução para esse caso (exceto para remover ou substituir esse arquivo).fonte