mirror of
https://github.com/sheerun/vim-polyglot.git
synced 2025-11-10 12:33:51 -05:00
164 lines
5.7 KiB
Plaintext
164 lines
5.7 KiB
Plaintext
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'haskell') == -1
|
|
|
|
*haskell-vim.txt* Last Change 2016 March 14
|
|
===============================================================================
|
|
===============================================================================
|
|
|
|
===============================================================================
|
|
CONTENTS *haskell-vim-contents*
|
|
|
|
1. Features |haskell-vim-features|
|
|
2. Configuration |haskell-vim-configuration|
|
|
3. Highlighting |haskell-vim-indentation|
|
|
|
|
===============================================================================
|
|
FEATURES *haskell-vim-features*
|
|
|
|
* Covers a broader spectrum of keywords
|
|
* Highlighting for new features like type families, pattern synonyms,
|
|
arrow syntax, recursive do, role annotations, QuasiQuotation
|
|
* More contextual highlighting
|
|
(e.g. highlight "as" or "family" only in appropriate places)
|
|
* Smarter indentation
|
|
* Better Cabal support
|
|
|
|
===============================================================================
|
|
CONFIGURATION *haskell-vim-configuration*
|
|
|
|
To enable the features you would like to use, just add the according line to
|
|
your `.vimrc`.
|
|
|
|
===============================================================================
|
|
HIGHLIGHTING *haskell-vim-highlighting*
|
|
|
|
`haskell-vim` can highlight additional keywords. This is enabled by setting
|
|
the according variable to 1 in the `.vimrc`.
|
|
|
|
* |haskell-vim-enable-quantification|
|
|
* |haskell-vim-enable-recursivedo|
|
|
* |haskell-vim-enable-arrowsyntax|
|
|
* |haskell-vim-enable-pattern-synonyms|
|
|
* |haskell-vim-enable-typeroles|
|
|
* |haskell-vim-enable-static-pointers|
|
|
* |haskell-vim-classic-highlighting|
|
|
* |haskell-vim-disable-TH|
|
|
|
|
*haskell-vim-enable-quantification*
|
|
`g:haskell_enable_quantification` Enables highlighting of `forall`.
|
|
|
|
*haskell-vim-enable-recursivedo*
|
|
`g:haskell_enable_recursivedo` Enables highlighting of `mdo` and `rec`.
|
|
|
|
*haskell-vim-enable-arrowsyntax*
|
|
`g:haskell_enable_arrowsyntax` Enables highlighting of `proc`.
|
|
|
|
*haskell-vim-enable-pattern-synonyms*
|
|
`g:haskell_enable_pattern_synonyms` Enables highlighting of the `pattern` keyword.
|
|
|
|
*haskell-vim-enable-typeroles*
|
|
`g:haskell_enable_typeroles` Enables highlighting of the `role` keyword, as
|
|
well as `phantom`, `norminal` and
|
|
`representational`.
|
|
|
|
*haskell-vim-enable-static-pointers*
|
|
`g:haskell_enable_static_pointers` Enables highlighting of the `static` keyword.
|
|
|
|
*haskell-vim-classic-highlighting*
|
|
`haskell-vim` has an opinionated highlighting. If you do not like that you can
|
|
switch to a more traditional mode by setting `g:haskell_classic_highlighting`
|
|
to 1.
|
|
|
|
*haskell-vim-disable-TH*
|
|
Disabling Template Haskell and Quasiquoting syntax is possible by setting
|
|
`g:haskell_disable_TH` to `1`.
|
|
|
|
===============================================================================
|
|
INDENTATION *haskell-vim-indentation*
|
|
|
|
To configure indentation in `haskell-vim` you can use the following variables to
|
|
change indentation depth, just add the according line to your `.vimrc`.
|
|
|
|
You can disable the indentation by setting `g:haskell_indent_disable` to `1`.
|
|
|
|
Haskell~
|
|
|
|
* |haskell-vim-indent-if|
|
|
* |haskell-vim-indent-case|
|
|
* |haskell-vim-indent-let|
|
|
* |haskell-vim-indent-where|
|
|
* |haskell-vim-indent-before-where|
|
|
* |haskell-vim-indent-after-bare-where|
|
|
* |haskell-vim-indent-do|
|
|
* |haskell-vim-indent-in|
|
|
* |haskell-vim-indent-guard|
|
|
*haskell-vim-indent-if*
|
|
* let g:haskell_indent_if = 3 >
|
|
|
|
if bool
|
|
>>>then ...
|
|
>>>else ...
|
|
<
|
|
|
|
*haskell-vim-indent-case*
|
|
* let g:haskell_indent_case = 2 >
|
|
|
|
case xs of
|
|
>>[] -> ...
|
|
>>(y:ys) -> ...
|
|
<
|
|
*haskell-vim-indent-let*
|
|
* let g:haskell_indent_let = 4 >
|
|
|
|
let x = 0 in
|
|
>>>>x
|
|
<
|
|
*haskell-vim-indent-where*
|
|
* let g:haskell_indent_where = 6 >
|
|
|
|
where f :: Int -> Int
|
|
>>>>>>f x = x
|
|
<
|
|
*haskell-vim-indent-before-where*
|
|
* let g:haskell_indent_before_where = 2 >
|
|
|
|
foo
|
|
>>where
|
|
<
|
|
*haskell-vim-indent-after-bare-where*
|
|
* let g:haskell_indent_after_bare_where = 2 >
|
|
|
|
where
|
|
>>foo
|
|
<
|
|
*haskell-vim-indent-do*
|
|
* let g:haskell_indent_do = 3 >
|
|
|
|
do x <- a
|
|
>>>y <- b
|
|
<
|
|
*haskell-vim-indent-in*
|
|
* let g:haskell_indent_in = 1 >
|
|
|
|
let x = 1
|
|
>in x
|
|
<
|
|
*haskell-vim-indent-guard*
|
|
* let g:haskell_indent_guard = 2 >
|
|
|
|
f x y
|
|
>>|
|
|
<
|
|
|
|
Cabal~
|
|
|
|
* |cabal-vim-indent-section|
|
|
|
|
*cabal-vim-indent-section*
|
|
* let g:cabal_indent_section = 2 (limited to max. 4 spaces) >
|
|
|
|
executable name
|
|
>>main-is: Main.hs
|
|
<
|
|
|
|
endif
|