vim-patch:ca48202b6f46

runtime(termdebug): improve window handling, shorten var types

closes vim/vim#13474

https://github.com/vim/vim/commit/ca48202b6f46cfb40a0d1d80033a2f3e8cb7b813

Co-authored-by: shane.xb.qian <shane.qian@foxmail.com>
This commit is contained in:
zeertzjq
2023-11-09 07:24:31 +08:00
co-authored by shane.xb.qian
parent 7b921c5501
commit 89d785e530
3 changed files with 55 additions and 5 deletions
+21 -5
View File
@@ -894,7 +894,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'
@@ -1556,8 +1558,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
@@ -1579,7 +1588,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
@@ -1619,8 +1628,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
@@ -1641,7 +1657,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