crybot / vim-hindent

Vim Haskell Hindent integration plugin

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

(MODIFIED) vim-hindent

This is just a modified version of the vim-hindent plugin that supports range selection.

Integrates with hindent so every time you save a Haskell source file it gets automatically prettified.

Simply using :%!hindent replaces your whole source file with an error message from hindent when you happen to have a syntax error in your code, this plugin manages that annoyance.

Note: If you prefer stylish-haskell use vim-stylishask instead.

Installation

Compatible with Vundle, Pathogen, Vim-plug.

Usage

By default, vim-hindent will format your code automatically when saving a Haskell source file, but you can use the :Hindent command at any time to format the current file.

Use :HindentEnable, :HindentDisable, :HindentToggle to enable, disable, or toggle running hindent on save.

Configuration

Trigger hindent when saving (default = 1):

g:hindent_on_save = 1

Number of spaces per indentation (default = '', uses hindent default of 2):

g:hindent_indent_size = 2

Max line length (default = '', uses hindent default of 80):

g:hindent_line_length = 100

My personal configuration

I personally prefer to disable formatting on save, therefore

g:hindent_on_save = 0

Then I integrated some useful filetype specific mappings:

The first one uses vim-textobj-haskell to select the top level binding on which the cursor currently is, and then calls Hindent to format just that code fraction (the selection gives an helpful visually clue of whats going on)

autocmd FileType haskell map == vih:call hindent#Hindent()<CR>

The second one is similar, but it does not use text objects. Instead it formats the whole file by not passing any range to the function. The empty range is treated as a whole-file selection by the plugin

autocmd FileType haskell map =G :call hindent#Hindent()<CR>

About

Vim Haskell Hindent integration plugin


Languages

Language:Vim Script 100.0%