J'ai beaucoup vu cette question. Mais aucune des réponses n'a résolu mon problème: le mode mineur reste activé dans les autres modes.
Jusqu'à présent, j'ai essayé:
(use-package stickyfunc-enhance
:config
;; (add-to-list 'semantic-default-submodes 'global-semantic-stickyfunc-mode)
;; (defun turn-on-semantic () (semantic-mode 1) (require 'stickyfunc-enhance))
;; (add-hook 'python-mode-hook 'turn-on-semantic)
(add-hook 'python-mode-hook
(lambda ()
(add-to-list 'semantic-default-submodes 'global-semantic-stickyfunc-mode)
(semantic-mode 1)
(require 'stickyfunc-enhance))))
Mon problème avec ces 2 approches est que semantic-mode
cela restera actif dans tous les modes principaux une fois que j'aurai visité un tampon Python.
Comment puis-je désactiver semantic-mode
dans tous les autres modes? Dois-je le désactiver manuellement prog-mode-hook
?
Essayer la solution de kaushalmodi:
(use-package stickyfunc-enhance
:init
(add-to-list 'semantic-default-submodes 'global-semantic-stickyfunc-mode)
:config
(defun me/enable-semantic-maybe ()
"Maybe enable `semantic-mode'."
(if (derived-mode-p 'python-mode)
(lambda ()
(semantic-mode 1)
(require 'stickyfunc-enhance))
(semantic-mode -1)))
(add-hook 'change-major-mode-hook #'me/enable-semantic-maybe))
Me donne:
Making python-shell-interpreter local to *Python Internal [792caf12c778150badeeede64c068cee]* while let-bound!
Making python-shell-interpreter-args local to *Python Internal [792caf12c778150badeeede64c068cee]* while let-bound!
la source
prog-mode-hook
(si même ça fonctionnait). Cependant, pouvez-vous me dire pourquoi avez-vous utilisé un#
? La compilation d'octets signifie-t-elle qu'elle sera calculée à la première étape qu'est .elc?#'
(guillemet pointu) lorsqu'un argument de symbole de fonction est attendu. [Plus de lecture ](progn
au lieu de(lambda ()
là pour envelopper ce qui devrait arriver si laif
condition est vraie. Je voudrais égalementrequire
stickyfunc-enhance
au tout début de la:init
référence avant vousglobal-semantic-stickyfunc-mode
. Quant à l'erreur réelle, je commencerais une nouvelle question avec une question + des balises plus dirigées. Je pense cependant que le problème est que vous utilisezlambda
au lieu deprogn
.