diff --git a/.gitignore b/.gitignore index e43b0f9..80abc54 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .DS_Store +tags diff --git a/plugin/vikube.vim b/plugin/vikube.vim index c6b903f..9a3ac23 100644 --- a/plugin/vikube.vim +++ b/plugin/vikube.vim @@ -8,22 +8,20 @@ endf fun! g:VTable.help() endf -fun! g:VTable.update() +fun! g:VTable.update() dict let cmd = self.command() - let b:job = job_start(cmd, {"close_cb": self.outputHandler }) + let b:job = jobstart(cmd, {"on_stdout": self.outputHandler, "stdout_buffered":v:true}) let b:source_changed = 0 endf -fun! g:VTable.outputHandler(channel) - let lines = [] - while ch_status(a:channel, {'part': 'out'}) == 'buffered' - call add(lines, ch_read(a:channel)) - endwhile - let b:source_cache = join(lines, "\n") . "\n" - call self.render() +fun! g:VTable.outputHandler(channel, data, event) dict + let l:lines = [] + let b:source_cache = join(a:data, "\n") . "\n" + " `self.render()` not working because self refers to callback options in this case + call s:render() endf -fun! g:VTable.render() +fun! g:VTable.render() dict let save_cursor = getcurpos() if b:source_changed || !exists('b:source_cache') call self.update() @@ -90,10 +88,10 @@ endif let g:VikubeExplorer = copy(g:VTable) -fun! g:VikubeExplorer.update() +fun! g:VikubeExplorer.update() dict let cmd = self.command() let shellcmd = ["bash", "-c", cmd . " | awk 'NR == 1; NR > 1 {print $0 | \"sort -b -k1\"}'"] - let b:job = job_start(shellcmd, {"close_cb": self.outputHandler }) + let b:job = jobstart(shellcmd, {"on_stdout": self.outputHandler, "stdout_buffered":v:true}) let b:source_changed = 0 endf @@ -377,7 +375,7 @@ fun! s:deleteResources(keys) let cmd = s:cmdbase() . ' delete ' . b:resource_type . ' ' . keyargs redraw | echomsg cmd - let job = job_start(["bash", "-c", cmd], { + let job = jobstart(["bash", "-c", cmd], { \ "out_io": "buffer", \ "out_name": "", \ }) @@ -513,7 +511,7 @@ fun! s:handleFollowLogs() endif let cont = s:chooseContainer(containers) let cmd = s:cmdbase() . " logs --follow --tail=" . g:vikube_default_logs_tail . " --namespace=" . b:namespace . " --timestamps --container=" . cont . ' ' . resource_type . '/' . key - exec "botright terminal ++kill=term " . cmd + exec "botright terminal " . cmd endf