Chromium Codesearch Plugin for Vim
Integrates Chromium CodeSearch into Vim. When combined with additional plugins (e.g. vim-fugitive) should make it totally unnecessary to leave your editor to visit https://cs.chromium.org.
Examples of what's currently possible:
-
Search from within Vim and visit a rendered search results buffer.
<Enter>
takes you to the corresponding file in the local working directory. -
Look up cross references for the symbol under the cursor. The crossreferences are displayed in a new buffer which allows navigation to corresponding files in the local working directory.
-
Look up the call graph for a symbol under the cursor. The graph can be expanded incrementally and support navigation similar to other rendered buffers.
-
Load all possible call targets for a function call under the curser into the quickfix list.
-
And more!
Caveats
The index at https://cs.chromium.org is updated regularly. The cross reference information is only accurate to the extent that your working directory matches what was indexed. If they diverge, you may notice that the jump targets don't match the snippets displayed, or worse, cross references are incorrect.
Installation
Use your favorite plugin manager.
call vundle#begin()
" Other plugins
Plugin 'chromium/vim-codesearch'
" More plugins
call vundle#end()
call plug#begin()
" Other plugins
Plug 'chromium/vim-codesearch'
" More plugins
call plug#end()
Documentation
Once installed, you should be able to run :help crcs.txt
to view the help
file. As with all Vim plugins, all documentation should go there.
TODO/Wishlist
-
Better exception handling. Since the plugin is very much in alpha, exceptions are exposed to vim. This makes it handy for debugging, but is a pain for end-users, if there are any.
-
Show the commit that was last indexed by codesearch and warn if a jump target differs from the version of the file that was indexed. Optionally allow loading the indexed source file instead of the file in the work directory.
-
Make it easier for end-users to add custom tours. (See
help crcs-tours
for information on tours). -
Add a mode and hooks for code exploration and code auditing.
-
Deal better with generated files.
-
Narrow search results based on a
gn
build target.
Contributing
NOTE: This is not an official Google product.
See CONTRIBUTING.