From c937c0e2fd37207c36c8c5e53b36c41d7222fee6 Mon Sep 17 00:00:00 2001 From: Wang Shidong Date: Thu, 16 Jul 2020 23:40:08 +0800 Subject: [PATCH] Add setbufvar api (#3083) --- autoload/SpaceVim/api/vim.vim | 13 +++++++++ autoload/SpaceVim/mapping/guide.vim | 43 +++++++++++++++++------------ 2 files changed, 39 insertions(+), 17 deletions(-) diff --git a/autoload/SpaceVim/api/vim.vim b/autoload/SpaceVim/api/vim.vim index f97830d82..8871502de 100644 --- a/autoload/SpaceVim/api/vim.vim +++ b/autoload/SpaceVim/api/vim.vim @@ -70,6 +70,13 @@ function! s:self.parse_string(line) abort endfunction +function! s:self.setbufvar(buf, dict) abort + for key in keys(a:dict) + call setbufvar(a:buf, key, a:dict[key]) + endfor +endfunction + + if exists('*nvim_win_set_cursor') function! s:self.win_set_cursor(win, pos) abort call nvim_win_set_cursor(a:win, a:pos) @@ -111,6 +118,12 @@ else endfunction endif +function! s:self.setbufvar(buf, dict) abort + for key in keys(a:dict) + call setbufvar(a:buf, key, a:dict[key]) + endfor +endfunction + function! SpaceVim#api#vim#get() abort return deepcopy(s:self) endfunction diff --git a/autoload/SpaceVim/mapping/guide.vim b/autoload/SpaceVim/mapping/guide.vim index 0a04ebd63..7401a7f6c 100644 --- a/autoload/SpaceVim/mapping/guide.vim +++ b/autoload/SpaceVim/mapping/guide.vim @@ -15,13 +15,16 @@ scriptencoding utf-8 let s:CMP = SpaceVim#api#import('vim#compatible') let s:STR = SpaceVim#api#import('data#string') let s:KEY = SpaceVim#api#import('vim#key') + +let s:VIM = SpaceVim#api#import('vim') +let s:BUFFER = SpaceVim#api#import('vim#buffer') + if has('nvim') let s:FLOATING = SpaceVim#api#import('neovim#floating') else let s:FLOATING = SpaceVim#api#import('vim#floating') endif let s:SL = SpaceVim#api#import('vim#statusline') -let s:BUFFER = SpaceVim#api#import('vim#buffer') " guide specific var @@ -562,25 +565,31 @@ function! s:winopen() abort " {{{ let s:winid = winnr() endif let s:guide_help_mode = 0 - call setbufvar(s:bufnr, '&filetype', 'leaderGuide') - call setbufvar(s:bufnr, '&number', 0) - call setbufvar(s:bufnr, '&relativenumber', 0) - call setbufvar(s:bufnr, '&list', 0) - call setbufvar(s:bufnr, '&modeline', 0) - call setbufvar(s:bufnr, '&wrap', 0) - call setbufvar(s:bufnr, '&buflisted', 0) - call setbufvar(s:bufnr, '&buftype', 'nofile') - call setbufvar(s:bufnr, '&bufhidden', 'unload') - call setbufvar(s:bufnr, '&swapfile', 0) - call setbufvar(s:bufnr, '&cursorline', 0) - call setbufvar(s:bufnr, '&cursorcolumn', 0) - call setbufvar(s:bufnr, '&colorcolumn', '') - call setbufvar(s:bufnr, '&winfixwidth', 1) - call setbufvar(s:bufnr, '&winfixheight', 1) if exists('&winhighlight') - set winhighlight=Normal:Pmenu + call s:VIM.setbufvar(s:bufnr, { + \ '&winhighlight' : 'Normal:Pmenu', + \ }) endif + + call s:VIM.setbufvar(s:bufnr, { + \ '&filetype' : 'leaderGuide', + \ '&number' : 0, + \ '&relativenumber' : 0, + \ '&list' : 0, + \ '&modeline' : 0, + \ '&wrap' : 0, + \ '&buflisted' : 0, + \ '&buftype' : 'nofile', + \ '&bufhidden' : 'unload', + \ '&swapfile' : 0, + \ '&cursorline' : 0, + \ '&cursorcolumn' : 0, + \ '&colorcolumn' : '', + \ '&winfixwidth' : 1, + \ '&winfixheight' : 1, + \ }) + " @fixme not sure if the listchars should be changed! " setlocal listchars= call s:updateStatusline()