blob: 346539c37af03c7c7a869971d3df6e24a2375b0c [file] [log] [blame] [view]
# Helpful VIM tools for Fuchsia development
## Features
* Configure YouCompleteMe to provide error checking, completion and source navigation within the Fuchsia tree.
* Set path so that `:find` and `gf` know how to find files.
* Fidl syntax highlighting (using /lib/fidl/tools/vim/).
## Installation
1. Update your login script
Steps #2 and #3 depend on configuration set by the `fx set` command. Add
these lines to your startup script (typically `~/.bashrc`).
```
export FUCHSIA_DIR=/path/to/fuchsia-dir
fx set x86-64
```
1. Update your vim startup file
If this line exists in your ~/.vimrc file, remove it:
```
filetype plugin indent on
```
Then add these lines to your `~/.vimrc`.
```
if $FUCHSIA_DIR != ""
source $FUCHSIA_DIR/scripts/vim/fuchsia.vim
endif
filetype plugin indent on
```
1. Install YouCompleteMe (ycm)
Optionally install [YouCompleteMe](https://github.com/Valloric/YouCompleteMe)
for fancy completion, source navigation and inline errors. See the
[installation guide](https://github.com/Valloric/YouCompleteMe#installation).
MacOS users: Installing YCM with Brew is not recommended
because of library compatibility errors.
Google Ubuntu users can install YCM by adding these two lines to `.vimrc`:
```
source /usr/share/vim/google/google.vim
Glug youcompleteme-google
```
If everything is working properly, you can place the cursor on an
identifier in a .cc or .h file, hit Ctrl-], and YCM will take you
to the definition of the identifier.
## See also
For Zircon YouCompleteMe integration:
https://fuchsia.googlesource.com/zircon/+/master/docs/editors.md
## TODO
In the future it would be nice to support:
* Fidl indentation
* GN indentation
* Dart, Go and Rust support
* Build system integration
* Navigate between generated files and fidl source