flycheck – Desactivar el modo menor en el modo mayor

Pregunta:

Estoy intentando deshabilitar un modo menor (flycheck) para el modo mayor de látex. Esto es lo que tengo hasta ahora.

(defun disable-flycheck-in-tex-src-block ()
  (flycheck-mode -1))

(add-hook 'latex-mode-hook 'disable-flycheck-in-tex-src-block)

Sin embargo, después de poner esto en mi init.el, flycheck todavía está habilitado cuando abro un archivo .tex.

Estoy usando la configuración emacs de Steve Purcell aquí:

https://github.com/purcell/emacs.d

He agregado el código de deshabilitación en lisp/init-local.el , que pensé que se ejecuta después de toda la configuración predeterminada.

Por lo que yo puedo decir,

en init.el, hay un

(require 'init-flycheck)

Luego hay un archivo llamado lisp/init-flycheck.el , que se ve así:

(when (maybe-require-package 'flycheck)
  (add-hook 'after-init-hook 'global-flycheck-mode)

  ;; Override default flycheck triggers
  (setq flycheck-check-syntax-automatically '(save idle-change mode-enabled)
        flycheck-idle-change-delay 0.8)

  (setq flycheck-display-errors-function #'flycheck-display-error-messages-unless-error-list))


(provide 'init-flycheck)

Respuesta:

Según los comentarios, esto se debe a que está utilizando un modo menor globalizado: https://stackoverflow.com/questions/6837511/automatically-disable-a-global-minor-mode-for-a-specific-major-mode

Ch f global-flycheck-mode me llevó a
Ch f flycheck-may-enable-mode y
Ch v flycheck-global-modes que me dice:

flycheck-global-modes is a variable defined in `flycheck.el'.
Its value is t

  This variable may be risky if used as a file-local variable.

Documentation:
Modes for which `flycheck-mode' is turned on by `global-flycheck-mode'.

If t, Flycheck Mode is turned on for all major modes.  If a list,
Flycheck Mode is turned on for all `major-mode' symbols in that
list.  If the `car' of the list is `not', Flycheck Mode is turned
on for all `major-mode' symbols _not_ in that list.  If nil,
Flycheck Mode is never turned on by `global-flycheck-mode'.

Note that Flycheck is never turned on for modes whose
`mode-class' property is `special' (see Info node `(elisp)Major
Mode Conventions'), regardless of the value of this option.

You can customize this variable.

This variable was introduced, or its default value was changed, in
version 0.23 of the flycheck package.

Entonces, si bien no es demasiado flexible, si su valor actual es t , lo siguiente es lo que necesita para excluir solo estos modos específicos:

(setq flycheck-global-modes '(not LaTeX-mode latex-mode))

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım