On 04/08/2012 08:33, Herbert Valerio Riedel wrote:
Simon Hengel <s...@typeful.net> writes:
[...]
I have the following in my .ghci:
-- hoogle integration
:def hoogle \q -> return $ ":! hoogle --color=true --count=15 \"" ++ q ++
"\""
:def doc \q -> return $ ":! hoogle --color=true --info \"" ++ q ++
"\""
[...]
thanks, this already looks very promising; there's just a few minor issues
I'm a bit dissatisfied with the GHCi integration:
1. it doesn't take into account the currently visible module namespaces that
GHCi
has currently loaded (as opposed to `:info` and `:type`):
,----
| Prelude> import Data.IntMap
|
| Prelude Data.IntMap> :info fromList
| fromList :: [(Key, a)] -> IntMap a -- Defined in `Data.IntMap'
|
| Prelude Data.IntMap> :type fromList
| fromList :: [(Key, a)] -> IntMap a
|
| Prelude Data.IntMap> :doc fromList
| Searching for: fromList
| Data.HashTable fromList :: Eq key => (key -> Int32) -> [(key, val)] -> IO
(HashTable key val)
|
| Convert a list of key/value pairs into a hash table. Equality on keys
| is taken from the Eq instance for the key type.
|
| From package base
| fromList :: Eq key => (key -> Int32) -> [(key, val)] -> IO (HashTable key val)
|
| Prelude Data.IntMap>
`----
2. tab-completion (as it works for `:type` and `:doc`) doesn't extend
to `:doc`
I guess both items could be improved upon by extending GHCi to provide
an additional `:def` facility tailored to Haskell symbols allowing to
pass more meta-information (such as package and module information) into
the resulting command string... would something like that have any
chance of being accepted upstream?
I think it would make more sense to just add :doc to the GHCi front-end,
relying on the user having already installed hoogle. We could give a
sensible error message if you don't have Hoogle installed.
Cheers,
Simon
_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users