J'ai mis à jour tous mes appels de package d'utilisation maintenant ce :idle
n'est plus un moyen décent de différer les choses. À l'heure actuelle, l'un des plus grands succès de mon temps de chargement est celui elpy
qui charge tout un tas de modules supplémentaires. Pour le moment, mon invocation est assez basique:
(use-package elpy
:commands elpy-enable
:init (elpy-enable)
:config
(progn
(setq elpy-rpc-backend "jedi"
elpy-rpc-project-specific 't)
(when (fboundp 'flycheck-mode)
(setq elpy-modules (delete 'elpy-module-flymake elpy-modules)))))
Cependant, c'est plutôt inutile si je n'édite jamais de modules python. Le problème est qu'elpy est une collection de modes, donc je ne peux pas simplement utiliser le formulaire de liaison de mode selon les elpy-enable
besoins pour être appelé. Alors quelle approche dois-je utiliser. S'agit-il simplement d'un déclenchement sur le hook en mode python?
use-package
elpy
stsquad
la source
la source
:idle
peut être remplacé par quelque chose comme:defer 30
où le nombre est le délai en secondes après lequel le paquet doit être chargé.Réponses:
Je ne connais pas Elpy, donc je ne sais pas si je comprends bien votre problème. Je sais
use-package
, cependant, et j'ai récemment souffert du même problème, à savoir la suppression de:idle
.Fondamentalement, il existe deux solutions, selon la façon dont vous devez utiliser Elpy. Vous pouvez soit utiliser un pauvre
:idle
, avecrun-with-idle-timer
, par exempleAlternativement, vous pouvez vous fier au bon vieux
with-eval-after-load
ou utiliserpython-mode-hook
et retarder Elpy jusqu'à ce que le mode Python soit chargé ou activé respectivement:la source
:commands elpy-enable
pour que cela fonctionne.:init (with-eval-after-load 'python (elpy-enable)) :commands elpy-enable
L'auteur d'elpy suggère de le faire via un conseil, car
elpy-enable
modifie lapython-mode-hook
variable, donc l'appeler dans le mode-hook est trop tard: https://github.com/jorgenschaefer/elpy/wiki/Configurationapproche simple:
utilisant
use-package
:la source
README.rst
, mais pas dans le premier et le plus évident endroit à regarder: la section d'installation de la documentation . J'ai signalé cela dans le numéro # 1606 .Je pense que c'est possible avec: après
la source
:defer
si vous l'utilisez déjà:mode
. github.com/jwiegley/use-package#notes-about-lazy-loading