idris-vim

by idris-hackers

idris-hackers / idris-vim

Idris mode for vim

212 Stars 51 Forks Last release: Not found 156 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Idris mode for vim

This is an Idris mode for vim which features syntax highlighting, indentation and optional syntax checking via Syntastic. If you need a REPL I recommend using Vimshell.

Screenshot

Installation

I recommend using Pathogen for installation. Simply clone this repo into your

~/.vim/bundle
directory and you are ready to go.
cd ~/.vim/bundle
git clone https://github.com/idris-hackers/idris-vim.git

Manual Installation

Copy content into your

~/.vim
directory.

Be sure that the following lines are in your

.vimrc
syntax on
filetype on
filetype plugin indent on

Features

Apart from syntax highlighting, indentation, and unicode character concealing, idris-vim offers some neat interactive editing features. For more information on how to use it, read this blog article by Edwin Brady on Interactive Idris editing with vim.

Interactive Editing Commands

Idris mode for vim offers interactive editing capabilities, the following commands are supported.

r
reload file

t
show type

d
Create an initial clause for a type declaration.

b
Same as \d but for an initial typeclass method impl.

md
Same as \d but for a proof clause

c
case split

mc
make case

w
add with clause

e
evaluate expression

l
make lemma

m
add missing clause

f
refine item

o
obvious proof search

p
proof search

i
open idris response window

h
show documentation

Configuration

Indentation

To configure indentation in

idris-vim
you can use the following variables:
  • let g:idris_indent_if = 3
    if bool
    >>>then ...
    >>>else ...
    
  • let g:idris_indent_case = 5
    case xs of
    >>>>>[]      => ...
    >>>>>(y::ys) => ...
    
  • let g:idris_indent_let = 4
    let x = 0 in
    >>>>x
    
  • let g:idris_indent_where = 6
    where f : Int -> Int
    >>>>>>f x = x
    
  • let g:idris_indent_do = 3
    do x >>y 
  • let g:idris_indent_rewrite = 8
    rewrite prf in expr
    >>>>>>>>x
    

Concealing

Concealing with unicode characters is off by default, but

let g:idris_conceal = 1
turns it on.

Tab Characters

If you simply must use tab characters, and would prefer that the ftplugin not set expandtab add

let g:idris_allow_tabchar = 1
.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.