Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/flow/vim-flow

A vim plugin for Flow
https://github.com/flow/vim-flow

Last synced: about 1 month ago
JSON representation

A vim plugin for Flow

Lists

README

        

# vim-flow

A vim plugin for [Flow][flow].

- Adds completions to `omnifunc`
- Checks JavaScript files for type errors on save

## Requirements

- Requires [Flow][flow] to be installed and available on your path
- Requires the project to be initialised with `flow init`
- Requires JavaScript files to be marked with `/* @flow */` or `/* @flow weak */` at the top

## Installation

### [Pathogen][pathogen]

cd ~/.vim/bundle
git clone git://github.com/flowtype/vim-flow.git

### [NeoBundle][neobundle]

Add this to your `~/.vimrc`

```VimL
NeoBundleLazy 'flowtype/vim-flow', {
\ 'autoload': {
\ 'filetypes': 'javascript'
\ }}
```

#### With [Flow][flow] build step, using [flow-bin][flowbin]

```VimL
NeoBundleLazy 'flowtype/vim-flow', {
\ 'autoload': {
\ 'filetypes': 'javascript'
\ },
\ 'build': {
\ 'mac': 'npm install -g flow-bin',
\ 'unix': 'npm install -g flow-bin'
\ }}
```
## Usage

Unless [disabled manually][gflowenable], vim-flow will check JavaScript and JSX files on save.

## Commands

#### `FlowMake`

Triggers a type check for the current file.

#### `FlowToggle`

Turns automatic checks on save on or off.

#### `FlowType`

Display the type of the variable under the cursor.

#### `FlowJumpToDef`

Jump to the definition of the variable under the cursor.

## Configuration

#### `g:flow#autoclose`

If this is set to `1`, the quickfix window will not be opened when there are
no errors, and will be automatically closed when previous errors are cleared.

Default is `0`.

#### `g:flow#enable`

Typechecking is done automatically on `:w` if set to `1`.

To disable this, set to `0` in your ~/.vimrc, like so:

```VimL
let g:flow#enable = 0
```

Default is `1`.

#### `g:flow#errjmp`

Jump to errors after typechecking if set to `1`.

Default is `0`.

#### `g:flow#flowpath`

Leave this as default to use the flow executable defined on your path. To use
a custom flow executable, set this like so:

```VimL
let g:flow#flowpath = /your/flow-path/flow
```

#### `g:flow#omnifunc`

By default `omnifunc` will be set to provide omni completion. To disable it
(prevent overwriting an existed omnifunc), set this value to 0:

```VimL
let g:flow#omnifunc = 0
```

#### `g:flow#timeout`

By default `timeout` will be set to 2 seconds. If you are working on a larger
codebase, you may want to increase this to avoid errors when Flow initializes.

```VimL
let g:flow#timeout = 4
```

#### `g:flow#qfsize`

Leave this as default to let the plugin decide on the quickfix window size.

#### `g:flow#showquickfix`

By default, results are shown in a quickfix window. Setting this to 0 will
stop the window from being shown. This is useful if you want to use
vim-flow for the omnicomplete functionality, but are already using
something like [ale](https://github.com/w0rp/ale).

```VimL
let g:flow#showquickfix = 0
```

[gflowenable]: https://github.com/flowtype/vim-flow#gflowenable
[flow]: https://github.com/facebook/flow
[flowbin]: https://github.com/sindresorhus/flow-bin
[pathogen]: https://github.com/tpope/vim-pathogen
[neobundle]: https://github.com/Shougo/neobundle.vim