Skip to content

Commit

Permalink
README
Browse files Browse the repository at this point in the history
  • Loading branch information
thosakwe committed Mar 13, 2019
1 parent 375fc2b commit 1927673
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 1 deletion.
51 changes: 51 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,53 @@
# vim-flutter
Vim commands for Flutter, including hot-reload-on-save and more.

## Installation
`vim-flutter` is a Vimscript-only plugin, and makes heavy
use of Vim8's async jobs. It can be installed with a
package manager like `vim-plug`, for example.

```vim
Plug 'thosakwe/vim-flutter'
" Run :PlugInstall to install the plugin.
```

Ultimately, installation is up to you.

## Options
* `g:flutter_command` - The Flutter executable path/name; defaults to `'flutter'`.
* `g:flutter_hot_reload_on_save` - Whether to auto hot-reload when `dart` files
are saved; defaults to `1`.

## Provided Commands
* `:FlutterRun <args>` - calls `flutter run <args>`
* `:FlutterHotReload` - triggers a hot reload on the current Flutter process
* `:FlutterHotRestart` - triggers a hot restart on the current Flutter process
* `:FlutterQuit` - quits the current Flutter process
* `:FlutterDevices` - opens a new buffer, and writes the output of `flutter devices` to it
* `:FlutterSplit` - opens Flutter output in a horizontal split

The following are self-explanatory:
* `:FlutterVSplit`
* `:FlutterTab`

## Hot Reload on Save
A convenient feature to have when working with Flutter is
to automatically hot-reload an app once a file is saved.
By default, whenever a `dart` file is saved, *if and only if*
a Flutter process is running, it will be hot-reloaded.

You can disable this by setting `g:hot_reload_on_save=0`,
*before* `vim-flutter` is loaded.

## Example `.vimrc`
```vim
Plug 'thosakwe/vim-flutter'
" Some of these key choices were arbitrary;
" it's just an example.
nnoremap <leader>fa :FlutterRun<cr>
nnoremap <leader>fq :FlutterQuit<cr>
nnoremap <leader>fr :FlutterHotReload<cr>
nnoremap <leader>fR :FlutterHotRestart<cr>
```
6 changes: 6 additions & 0 deletions autoload/flutter.vim
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,12 @@ function! flutter#hot_reload() abort
return flutter#send('r')
endfunction

function! flutter#hot_reload_quiet() abort
if exists('g:flutter_job')
return flutter#send('r')
endif
endfunction

function! flutter#hot_restart() abort
return flutter#send('R')
endfunction
Expand Down
2 changes: 1 addition & 1 deletion plugin/flutter.vim
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ command FlutterHotRestart call flutter#hot_restart()
command FlutterQuit call flutter#quit()

if g:flutter_hot_reload_on_save
autocmd FileType dart autocmd BufWritePre <buffer> call flutter#hot_reload()
autocmd FileType dart autocmd BufWritePre <buffer> call flutter#hot_reload_quiet()
endif

command FlutterSplit :split __Flutter_Output__<cr>
Expand Down

0 comments on commit 1927673

Please sign in to comment.