diff options
Diffstat (limited to 'runtime/pack')
-rw-r--r-- | runtime/pack/dist/opt/termdebug/plugin/termdebug.vim | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim index 144d083fa8..6d8e483e2e 100644 --- a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim +++ b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim @@ -859,7 +859,9 @@ func s:ParseVarinfo(varinfo) let nameIdx = matchstrpos(a:varinfo, '{name="\([^"]*\)"') let dict['name'] = a:varinfo[nameIdx[1] + 7 : nameIdx[2] - 2] let typeIdx = matchstrpos(a:varinfo, ',type="\([^"]*\)"') - let dict['type'] = a:varinfo[typeIdx[1] + 7 : typeIdx[2] - 2] + " 'type' maybe is a url-like string, + " try to shorten it and show only the /tail + let dict['type'] = (a:varinfo[typeIdx[1] + 7 : typeIdx[2] - 2])->fnamemodify(':t') let valueIdx = matchstrpos(a:varinfo, ',value="\(.*\)"}') if valueIdx[1] == -1 let dict['value'] = 'Complex value' @@ -1429,8 +1431,15 @@ endfunc func s:GotoAsmwinOrCreateIt() if !win_gotoid(s:asmwin) + let mdf = '' if win_gotoid(s:sourcewin) - exe 'rightbelow new' + " 60 is approx spaceBuffer * 3 + if winwidth(0) > (78 + 60) + let mdf = 'vert' + exe mdf .. ' ' .. 60 .. 'new' + else + exe 'rightbelow new' + endif else exe 'new' endif @@ -1452,7 +1461,7 @@ func s:GotoAsmwinOrCreateIt() let s:asmbuf = bufnr('Termdebug-asm-listing') endif - if s:GetDisasmWindowHeight() > 0 + if mdf != 'vert' && s:GetDisasmWindowHeight() > 0 exe 'resize ' .. s:GetDisasmWindowHeight() endif endif @@ -1492,8 +1501,15 @@ endfunc func s:GotoVariableswinOrCreateIt() if !win_gotoid(s:varwin) + let mdf = '' if win_gotoid(s:sourcewin) - exe 'rightbelow new' + " 60 is approx spaceBuffer * 3 + if winwidth(0) > (78 + 60) + let mdf = 'vert' + exe mdf .. ' ' .. 60 .. 'new' + else + exe 'rightbelow new' + endif else exe 'new' endif @@ -1514,7 +1530,7 @@ func s:GotoVariableswinOrCreateIt() let s:varbuf = bufnr('Termdebug-variables-listing') endif - if s:GetVariablesWindowHeight() > 0 + if mdf != 'vert' && s:GetVariablesWindowHeight() > 0 exe 'resize ' .. s:GetVariablesWindowHeight() endif endif |