Skip to content

google/vim-glaive

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
doc
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Glaive is a utility for configuring maktaba plugins. It turns this:

let g:myplugin_enablefeature = 1
let g:myplugin_defaultdir = $HOME
let g:myplugin_weirdmode = 'm'

into this:

Glaive myplugin enablefeature defaultdir=`$HOME` weirdmode='m'

In order for this to work, the plugin must use the maktaba flag API. Any plugin using the flag API can be configured by glaive.

Maktaba is a vimscript library for plugin authors. It handles parsing the setting syntax, looking up the plugins, and applying the settings. Glaive itself is merely a thin wrapper around the hooks that maktaba provides: any plugin can support a similar interface with minimal effort. Plugin manager plugins in particular are encouraged to do so.

For details, see the executable documentation in the vroom/ directory or the helpfiles in the doc/ directory. The helpfiles are also available via :help glaive if Glaive is installed (and helptags have been generated).

Usage example

This example uses Vundle.vim, whose plugin-adding command is Plugin. Note that Vundle does not add plugins to the runtime path until vundle#end(), so Glaive commands must come after this function call.

We will use two plugins for demonstration:

set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

...

" Add maktaba, glaive, and codefmt to the runtimepath.
" (Glaive must also be installed before it can be used.)
Plugin 'google/vim-maktaba'
Plugin 'google/vim-glaive'
Plugin 'google/vim-codefmt'

...

vundle#end()
filetype plugin indent on

" Add helloworld to the runtime path. (Normally this would be done with another
" Plugin command, but helloworld doesn't have a repository of its own.)
call maktaba#plugin#Install(maktaba#path#Join([maktaba#Maktaba().location,
    \ 'examples', 'helloworld']))

call glaive#Install()

" Configure helloworld using glaive.
Glaive helloworld plugin[mappings] name='Bram'

" Real world example: configure vim-codefmt
Glaive codefmt google_java_executable='java -jar /path/to/google-java-format.jar'

Now, <Leader>Hh should say Hello, Bram!, and <Leader>Hg should say Goodbye, Bram!. (Recall that <Leader> defaults to \.)

About

No description, website, or topics provided.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published