Integración de hlint con emacs no funciona en una nueva máquina
Pregunta
Uso hlint desde dentro de emacs con hs-lint.el de la manera descrita en el enlace.
Hlint vive en mi directorio ~/.cabal/bin, que está en mi ruta $, y todo funciona como se esperaba cuando lo llamo desde la línea de comando. Sin embargo, cuando configuré esto en una nueva máquina e intenté invocarla dentro de Emacs, recibo el siguiente mensaje en el minibuffer:
error in process sentinel: Moved past last error
y lo siguiente en un *hs-lint*
buffer:
-*- mode: hs-lint; default-directory: "/home/wvoq/project/" -*-
HLint started at Fri Jan 13 02:48:53
hlint /home/wvoq/project/myfile.hs
/bin/bash: hlint: command not found
HLint exited abnormally with code 127 at Fri Jan 13 02:48:53
A mí mismo, no hay razón para que Bash deba tener problemas para encontrar hlint. ¿Esta ahí?
Gracias de antemano por cualquier sugerencia.
Solución
Si inicia emacs desde un atajo de escritorio el PATH
que tiene no es el PATH
que tu caparazón tiene. Si lanza EMAC desde un shell, debería poder confirmar que este es el problema. Hay muchas formas de solucionarlo. Por ejemplo, en OS X puede agregar variables de entorno a ~/.MacOSX/environment.plist
. O puedes configurar PATH
Emacs interiores con algo como:
(setenv "PATH" (concat "~/.cabal/bin:" (getenv "PATH")))
(add-to-list 'exec-path "~/.cabal/bin")