Purescript language support for vim and neovim providing syntax highlighting and indentation based on based on idris-vim and haskell-vim.
See purescript-language-server for details on how to set up language server support for Purescript.
Copy content of this repository into your ~/.vim
directory (or %HOME%\vimfiles
on Windows).
Be sure that the following lines are in your .vimrc
syntax on
filetype on
filetype plugin indent on
If you are using Pathogen, clone this repo into your ~/.vim/bundle
directory and you are ready to go.
cd ~/.vim/bundle
git clone https://github.com/purescript-contrib/purescript-vim.git
If you are using vim-plug, add the following line in between your plug#begin
and plug#end
calls for your vim config file:
Plug 'purescript-contrib/purescript-vim'
Save and restart (neo)vim and run :PlugInstall
.
To configure indentation in purescript-vim
you can use the following variables:
Disable indentation altogether.
let g:purescript_disable_indent = 1
let g:purescript_indent_case = 5
case xs of
>>>>>[] -> ...
>>>>>(y:ys) -> ...
let g:purescript_indent_let = 4
let x = 0 in
>>>>x
let g:purescript_indent_in = 1
let x = 0
>in x
let g:purescript_indent_where = 6
where f :: Int -> Int
>>>>>>f x = x
let g:purescript_indent_do = 3
do x <- a
>>>y <- b
let g:purescript_indent_dot = 1
unsnoc
:: forall a
>. List a
-> Maybe (List a, a)
Contributing checklist:
- Opened an issue before investing a significant amount of work into changes
- Update README.md with any new configuration options and behavior
- Update CHANGELOG.md with the proposed changes
- Run
generate-doc.sh
to re-generate the documentation