2012-02-24 8 views
17

Es bastante agradable tener ghci integrado con Emacs a través del modo haskell inferior: esto agrega una maravillosa posibilidad de navegar rápidamente para compilar ubicaciones de error, inspeccionar interactivamente tipos, definiciones, etc. Sin embargo, La principal característica que me falta en esta configuración es la imposibilidad de usar la pestaña-finalización de ghci, que es bastante útil para completar funciones disponibles desde módulos importados, extensiones de idioma y comandos ghci.ghci tab-completion en haskell-mode

Supongo que esta funcionalidad se puede implementar de forma bastante trivial pasando el carácter "TAB" sin procesar al proceso ghci, leyendo su salida y pegando el resultado en el búfer de Emacs. Tenga en cuenta que no he trabajado con "comint-mode" en Emacs, por lo que puedo estar totalmente equivocado.

Finalmente, hemos llegado a mi pregunta : ¿por qué esta característica no se encuentra en haskell-mode? ¿Hay algún problema obvio del que no tengo conocimiento, es difícil de implementar o se debe a algunas razones históricas? (como "nadie se molestó en escribirlo"). ¿Tiene alguna solución para el problema? (excepto ejecutando ghci fuera de Emacs)

Respuesta

6

Consulte ghc-mode que se basa en haskell-mode y agrega autocompletado y algunas otras funciones. También hay un modo haskell-emacs, que es diferente del modo haskell. También tiene autocompletado. Aunque fue peculiar y no siempre funcionó cuando lo probé.

+1

Acabo de instalar ghc-mod, me gusta su autocompletado e integración hlint (aunque tengo que jugar un poco para adaptarme a mis necesidades). Pero aún así, su autocompletado no funciona correctamente en el búfer ghci: por lo que yo entiendo, la función "ghc-complete" analiza el búfer en uso (para encontrar importaciones) y el búfer ghci no es lo que espera. Por lo tanto, sugiere solo algunas palabras clave e ignora cualquier ": m + Data.List" que escriba en el búfer ghci. –

+0

También probé "haskell-emacs" de Chris Done, pero no está del todo documentado estos días (ya que todavía está en versión beta), así que decidí volver un poco más tarde. –

Cuestiones relacionadas