[Haskell-cafe] UPDATE: haskellmode for Vim now at projects.haskell.org (+screencast; -)

Magnus Therning magnus at therning.org
Tue Apr 21 08:32:20 EDT 2009

I've finally found the time to take another look at your haskell mode
for vim.  Two questions so far:

1. I think earlier my indentation mode would match indentation of the
previous line by default, after installing your scripts I always end
up in column 1 after pressing return.  Is there some variable I can
set to get back the old behaviour?

2. My browser doesn't urldecode its command line arguments, so
locations like "file:///usr/share/doc/ghc6-doc/libraries/base/Prelude.html%23v%253AfromIntegral"
don't work.  I have to manually fix it up in the location bar.  Do you
have any tip for dealing with that?


On Tue, Apr 7, 2009 at 10:23 AM, Claus Reinke <claus.reinke at talk21.com> wrote:
> I have become aware that many Haskellers are not aware of the
> Haskell mode plugins for Vim, in spite of the >100 downloads
> per month I saw when I last checked. Since the plugins have just
> completed their move to their new home at
> http://projects.haskell.org/haskellmode-vim/
> this seems to be a good opportunity to mention them again (now
> with 100% more screencasts!-). They do much (though certainly
> not all) of the stuff people often wish for here, such as showing or adding
> types, looking up source where available locally or looking up documentation
> where source isn't available. Mostly, they collect
> my attempts to automate tasks when I have to do them often enough.
> Here is a section of the quick reference (:help haskellmode-quickref):
>   |:make|               load into GHCi, show errors (|quickfix| |:copen|)
>   |_ct|                 create |tags| file   |_si|                 show info
> for id under cursor
>   |_t|                  show type for id under cursor
>   |_T|                  insert type declaration for id under cursor
>   |balloon|             show type for id under mouse pointer
>   |_?|                  browse Haddock entry for id under cursor
>   |:IDoc| {identifier}  browse Haddock entry for unqualified {identifier}
>   |:MDoc| {module}      browse Haddock entry for {module}
>   |:FlagReference| {s}  browse Users Guide Flag Reference for section {s}
>   |_.|                  qualify unqualified id under cursor
>   |_i|                  add 'import <module>(<identifier>)' for id under
> cursor
>   |_im|                 add 'import <module>' for id under cursor
>   |_iq|                 add 'import qualified <module>(<identifier>)' for id
> under cursor
>   |_iqm|                add 'import qualified <module>' for id under cursor
>   |_ie|                 make imports explit for import statement under
> cursor
>   |_opt|                add OPTIONS_GHC pragma
>   |_lang|               add LANGUAGE pragma
>   |i_CTRL-X_CTRL-O|     insert-mode completion based on imported ids
> (|haskellmode-XO|)
>   |i_CTRL-X_CTRL-U|     insert-mode completion based on documented ids
> (|haskellmode-XU|)
>   |i_CTRL-N|            insert-mode completion based on imported sources
>   |:GHCi|{command/expr} run GHCi command/expr in current module
> For those who have never used these plugins, or haven't used Vim
> at all, it has often been difficult to imagine what editing in Vim can
> be like. The old quick tour of features available has now been updated
> from screenshots to screencasts (my first venture into this area - please
> let me know whether that is useful or a waste of time!-), so you can watch
> them on Youtube before deciding to invest time into learning Vim.
> For those who are using Vim, the only reason not to use my haskellmode
> plugins would be if you had your own (not uncommon
> among Vim users;-), in which case I hope you make yours available as well
> (feel free to adopt features from my plugins, and let me know
> if you have some useful features to contribute), here:
> http://www.haskell.org/haskellwiki/Libraries_and_tools/Program_development#Vim
> For those who have happily been using these plugins: in the process
> of moving the site, I noticed that I hadn't updated the published
> version for a quite some time - apparently, noone had missed the fixes, but
> in case you want to check, the relevant section of my update
> log is appended below.
> Happy Vimming!-)
> Claus
> ------------- updates since last published version on old site
> 04/04/2009
>  haskell_doc.vim: when narrowing choices by qualifier for _?, take
>                    lookup index from un-narrowed list (else we could
>                    end up in the docs for the wrong module)
> 02/04/2009
>  ghc.vim: actually, we can try to make a reasonable guess at the parent
>           type for constructors in _ie, from their type signature
> 01/04/2009
>  ghc.vim: try a bit harder to escape " and ' in :GHCi
>          eliminate duplicates in _ie and mark data constructor imports
>            as ???(Cons) - we can't reliably figure out the parent type
>            for the constructor:-(
>          handle Prelude as special case in _ie (can't just comment out
>            import, need to import [qualified] Prelude [as X]() )
>  haskell_doc.vim: fix keys (no namespace tags) and urls (modules) for :MDoc
> 31/03/2009
>  all files: new home page at projects.haskell.org
> 28/03/2009
>  haskell_doc.vim: in ProcessHaddockIndexes2, fix a case where making new
> entries
>                   could lose old ones (eg, zipWith's base package locations
> got
>                   lost when adding its vector package locations)
> 07/12/2008
>  haskell_doc.vim: since we're now reading from multiple haddock indices in
>                   DocIndex, we need to extend, not overwrite entries..
> 03/12/2008
>  ghc.vim: do not reset b:ghc_static_options on every reload
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe

Magnus Therning                        (OpenPGP: 0xAB4DFBA4)
magnus@therning.org          Jabber: magnus@therning.org
http://therning.org/magnus         identi.ca|twitter: magthe

More information about the Haskell-Cafe mailing list