cursormode: allow custom mode names

A new variable named cursormode_mode_func is used to store the function
returning the current mode. This allows more customization in the mapping.
The default value is the built-in mode function so there is no change in
behavior.
Add some documentation.

Signed-off-by: Thomas Faivre <thomas.faivre@6wind.com>
This commit is contained in:
Thomas Faivre 2018-01-19 12:32:13 +01:00
parent e02176aca1
commit dec9b8e65c
2 changed files with 23 additions and 3 deletions

View File

@ -40,8 +40,12 @@ endfunction
let s:iTerm_escape_template = '\033]Pl%s\033\\' let s:iTerm_escape_template = '\033]Pl%s\033\\'
let s:xterm_escape_template = '\033]12;%s\007' let s:xterm_escape_template = '\033]12;%s\007'
function! s:get_mode()
return call(get(g:, 'cursormode_mode_func', 'mode'), [])
endfunction
function! airline#extensions#cursormode#set(...) function! airline#extensions#cursormode#set(...)
let mode = mode() let mode = s:get_mode()
if mode !=# s:last_mode if mode !=# s:last_mode
let s:last_mode = mode let s:last_mode = mode
call s:set_cursor_color_for(mode) call s:set_cursor_color_for(mode)

View File

@ -1035,12 +1035,28 @@ neomake <https://github.com/neomake/neomake>
------------------------------------- *airline-cursormode* ------------------------------------- *airline-cursormode*
cursormode <https://github.com/vheon/vim-cursormode> cursormode <https://github.com/vheon/vim-cursormode>
Displays cursor in different colors depending on the current mode (only works Built-in extension to displays cursor in different colors depending on the
in terminals iTerm, AppleTerm and xterm) current mode (only works in terminals iTerm, AppleTerm and xterm)
* enable cursormode integration > * enable cursormode integration >
let g:airline#extensions#cursormode#enabled = 1 let g:airline#extensions#cursormode#enabled = 1
* mode function. Return value is used as key for the color mapping. Default is
|mode()|
`let g:cursormode_mode_func = 'mode'`
* color mapping. Keys come from `g:cursormode_mode_func` (background value can
be appended)
`let g:cursormode_color_map = {`
`\ "nlight": '#000000',`
`\ "ndark": '#BBBBBB',`
`\ "i": g:airline#themes#{g:airline_theme}#palette.insert.airline_a[1],`
`\ "R": g:airline#themes#{g:airline_theme}#palette.replace.airline_a[1],`
`\ "v": g:airline#themes#{g:airline_theme}#palette.visual.airline_a[1],`
`\ "V": g:airline#themes#{g:airline_theme}#palette.visual.airline_a[1],`
`\ "\<C-V>": g:airline#themes#{g:airline_theme}#palette.visual.airline_a[1],`
`\ }`
============================================================================== ==============================================================================
ADVANCED CUSTOMIZATION *airline-advanced-customization* ADVANCED CUSTOMIZATION *airline-advanced-customization*