Skip to content

Completion for GHCi commands in inferior-haskell buffers

Notifications You must be signed in to change notification settings

syohex/ghci-completion

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 

Repository files navigation

Completion for GHCi commands in inferior-haskell buffers

Purpose

To support completion for GHCi commands (like :load, :module, :set etc.) in inferior-haskell buffers.

Installation

To turn on GHCi commands completion in inferior-haskell buffers, add this to .emacs:

(add-hook 'inferior-haskell-mode-hook 'turn-on-ghci-completion)

Otherwise, call turn-on-ghci-completion.

You may also want to set ghci-completion-ghc-pkg-additional-args to the list of additional argument to supply to ghc-pkg. For example, this variable can be used to specify which database (user or global) or which package config file to use.

Limitations:

  • This package is developed for Emacs 24 and it probably only works with Emacs 24. In particular, we rely on lexical bindings, which have been introduced in Emacs 24, and on pcomplete, which is effectively broken in 23.2.

  • Only the following commands are supported: :add, :browse[!], :cd, :edit, :load, :module, :set, :unset, :show. It would be nice to have shell completion for :!, for example.

  • The starred versions of the commands :add, :browse[!], :load, and :module are not supported, partly because I don't use them, and partly because, for example, :module offers completion only on the exposed modules in registered packages in both the global and user databases, and for these :module *<mod> is meaningless.

  • :set and :unset support only a subset of all GHC flags: language extensions, warnings, and debugging options. Adding completion for other flags is trivial. It would be nice, however, to be able to generate the list of all GHC flags programmatically.

About

Completion for GHCi commands in inferior-haskell buffers

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Emacs Lisp 100.0%