From 4ec6a9d0156459662b037ec78e0083df488a323b Mon Sep 17 00:00:00 2001 From: wsdjeg Date: Tue, 12 Dec 2017 15:14:35 +0800 Subject: [PATCH] Add statusline for repl --- autoload/SpaceVim/layers/core/statusline.vim | 2 ++ autoload/SpaceVim/plugins/repl.vim | 12 ++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/autoload/SpaceVim/layers/core/statusline.vim b/autoload/SpaceVim/layers/core/statusline.vim index e722f3a9d..ec2194970 100644 --- a/autoload/SpaceVim/layers/core/statusline.vim +++ b/autoload/SpaceVim/layers/core/statusline.vim @@ -351,6 +351,8 @@ function! SpaceVim#layers#core#statusline#get(...) abort return '%#SpaceVim_statusline_a# HelpDescribe %#SpaceVim_statusline_a_SpaceVim_statusline_b#' elseif &filetype ==# 'SpaceVimRunner' return '%#SpaceVim_statusline_a# Runner %#SpaceVim_statusline_a_SpaceVim_statusline_b# %{SpaceVim#plugins#runner#status()}' + elseif &filetype ==# 'SpaceVimREPL' + return '%#SpaceVim_statusline_a# REPL %#SpaceVim_statusline_a_SpaceVim_statusline_b# %{SpaceVim#plugins#repl#status()}' elseif &filetype ==# 'VimMailClient' return '%#SpaceVim_statusline_a# VimMail %#SpaceVim_statusline_a_SpaceVim_statusline_b# %{mail#client#win#status().dir}' elseif &filetype ==# 'SpaceVimQuickFix' diff --git a/autoload/SpaceVim/plugins/repl.vim b/autoload/SpaceVim/plugins/repl.vim index de50dac55..a24121a2e 100644 --- a/autoload/SpaceVim/plugins/repl.vim +++ b/autoload/SpaceVim/plugins/repl.vim @@ -48,15 +48,15 @@ endfunction function! s:start(exe) abort - call s:open_windows() let s:lines = 0 let s:status = { - \ 'is_running' : 0, + \ 'is_running' : 1, \ 'is_exit' : 0, \ 'has_errors' : 0, \ 'exit_code' : 0 \ } let s:start_time = reltime() + call s:open_windows() call s:BUFFER.buf_set_lines(s:bufnr, s:lines , s:lines + 3, 0, ['[REPL executable] ' . a:exe, '', repeat('-', 20)]) let s:lines += 3 let s:job_id = s:JOB.start(a:exe,{ @@ -158,6 +158,14 @@ function! SpaceVim#plugins#repl#reg(ft, execute) abort endfunction +function! SpaceVim#plugins#repl#status() abort + if s:status.is_running == 1 + return 'running' + elseif s:status.is_exit == 1 + return 'exit code : ' . s:status.exit_code + \ . ' time: ' . s:STRING.trim(reltimestr(s:end_time)) + endif +endfunction let s:bufnr = 0 function! s:open_windows() abort