the recent discussion about a simpler url-interface to library haddocks prompted me to write some vimscript to make use of the existing interface. the initial idea was just to translate qualified name and package into a url to launch a browser with. but as people pointed out, having to know the qualified name and even the package makes for an inconvenient interface. so the second version read haddocks index files to populate a dictionary of unqualified names and symbols, pointing to possible qualifiers and urls. once we have such a handy documentation index, we can play other ide-style games as well, so the current version (attached) adds a few more goodies. some inspection necessary: this is not a proper, portable, out-of-the-box release! the script has been tested with gvim 7.0 on windows, using the haddocks released with ghc-6.4.1, and opera as the browser. to adapt it for other systems, you'll need to change some paths and probably the :start command. feedback/fixes welcome. what is on offer:-) :IDoc "<name>" -- suggest possible qualifiers, then launch doc browser :Doc "<qualname>","<package>" -- old-style invocation :DocIndex -- populate index from haddock index html files (takes a few secs) CTRL-X CTRL-U -- one of the user-defined insert-mode completions -- does now complete unqualified ids wrt the doc index _? -- for unqualified id under cursor, suggest possible qualifiers, browse _. -- replace unqualified id under cursor with fully qualified version so you can place your cursor on 'mapM_', type '_?', select Prelude or Control.Monad, and find out what it is all about. or you can type 'pres', and still in insert mode, type CTRL-X CTRL-U, find 'preservingMatrix' as one of the possible completions, and select it. or you can place your cursor on 'preservingMatrix', type '_.', select one of the options, and have it replaced with 'Graphics.Rendering.OpenGL.preservingMatrix'. (for those who believe in gui rather than functionality as the distinction between ides and editors, the last three use little popup menus in gui vim;) how to: read the script to check that it does what you'd expect, adapt where necessary, then :source it, run :DocIndex (this takes a few seconds, so we should probably cache the result in more vim-friendly format somewhere later..), and play. as usual, no guarantees of any kind. feel free to adapt this for your haskell filetype plugins. and i'm sure that the ideas carry over to other intelligent editors, so perhaps someone will come up with an emacs variant?-) enjoy, claus