Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Vim plugin to infer and insert Haskell module name
VimL
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
autoload
plugin
README.md

README.md

hs-module-name Vim plugin

This vim plugin can automatically figure out and insert the name of a Haskell module based on the filename.

Installation

This plugin is pathogen-compatible. If you use pathogen, just clone or copy this repo under ~/.vim/bundle.

Otherwise, use something like

cp -r vim-hs-module-name/* ~/.vim/

Usage

Automatic insertion

When you create a new .hs file, the header

module Foo.Bar where

is automatically inserted, where Foo.Bar is the module name inferred from the file name.

Set the g:hs_module_no_auto variable to disable this.

Manual insertion

When you are in a buffer with the haskell filetype, press M to insert the module header as described above.

To use a different key sequence instead of M, set the g:hs_module_mapping variable to the desired key sequence.

Set the g:hs_module_no_mappings variable to disable this.

Command

If you want to set up other bindings or hooks, use the :InsertHaskellModuleName command.

How the inference works

The components of the module name are assumed to be the largest prefix of the file path components where all the components start with capital letters.

E.g. for the file

/home/User/project/src/Foo/Bar.hs

the module name is inferred to be Foo.Bar. This works pretty well in practice.

Something went wrong with that request. Please try again.