diff --git a/autoload/SpaceVim/api/notify.vim b/autoload/SpaceVim/api/notify.vim index 6de41d345..b0608b20c 100644 --- a/autoload/SpaceVim/api/notify.vim +++ b/autoload/SpaceVim/api/notify.vim @@ -29,6 +29,12 @@ scriptencoding utf-8 let s:notifications = {} +function! SpaceVim#api#notify#shared_notifys() abort + + return s:notifications + +endfunction + " dictionary values and functions let s:self = {} diff --git a/lua/spacevim/api/notify.lua b/lua/spacevim/api/notify.lua index d57455b25..730149966 100644 --- a/lua/spacevim/api/notify.lua +++ b/lua/spacevim/api/notify.lua @@ -68,7 +68,7 @@ function M.notify(msg, ...) -- {{{ vim.fn.setbufvar(M.border.bufnr, '&relativenumber', 0) vim.fn.setbufvar(M.border.bufnr, '&cursorline', 0) vim.fn.setbufvar(M.border.bufnr, '&bufhidden', 'wipe') - extend(notifications, { [M.hashkey] = M }) + notifications[M.hashkey] = M M.increase_window() if type(msg) == 'table' then vim.fn.timer_start(M.timeout, M.close, { ['repeat'] = #msg }) @@ -137,7 +137,11 @@ function M.redraw_windows() return end M.begin_row = 2 - for _, hashkey in ipairs(notifications) do + local viml_notify = vim.fn['SpaceVim#api#notify#shared_notifys']() + for hashkey, _ in pairs(viml_notify) do + M.begin_row = M.begin_row + msg_real_len(viml_notify[hashkey].message) + 2 + end + for hashkey, _ in pairs(notifications) do if hashkey ~= M.hashkey then M.begin_row = M.begin_row + msg_real_len(notifications[hashkey].message) + 2 else