From 621b9e77ff14a34bc85d8ecc88f449396e8c01b9 Mon Sep 17 00:00:00 2001 From: Andy Stewart Date: Sat, 3 Jun 2023 09:56:17 +0100 Subject: [PATCH] Avoid :redir inside execute() This was happening when starting vim with `let g:gitgutter_log = 1` and generated E930. --- autoload/gitgutter/debug.vim | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/autoload/gitgutter/debug.vim b/autoload/gitgutter/debug.vim index def5b80..46683cb 100644 --- a/autoload/gitgutter/debug.vim +++ b/autoload/gitgutter/debug.vim @@ -75,23 +75,21 @@ function! gitgutter#debug#log(message, ...) abort endif endif - execute 'redir >> '.s:log_file - if s:new_log_session - let s:start = reltime() - silent echo "\n==== start log session ====" - endif + if s:new_log_session + let s:start = reltime() + call writefile(['==== start log session ===='], s:log_file, 'a') + endif - let elapsed = reltimestr(reltime(s:start)).' ' - silent echo '' - " callers excluding this function - silent echo elapsed.expand('')[:-22].':' - silent echo elapsed.s:format_for_log(a:message) - if a:0 && !empty(a:1) - for msg in a:000 - silent echo elapsed.s:format_for_log(msg) - endfor - endif - redir END + let elapsed = reltimestr(reltime(s:start)).' ' + call writefile([''], s:log_file, 'a') + " callers excluding this function + call writefile([elapsed.expand('')[:-22].':'], s:log_file, 'a') + call writefile([elapsed.s:format_for_log(a:message)], s:log_file, 'a') + if a:0 && !empty(a:1) + for msg in a:000 + call writefile([elapsed.s:format_for_log(msg)], s:log_file, 'a') + endfor + endif let s:new_log_session = 0 endif