forked from aniani/vim
runtime(termdebug): improve window handling, shorten var types
closes #13474 Signed-off-by: shane.xb.qian <shane.qian@foxmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
7fbbd7fdc6
commit
ca48202b6f
@@ -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
|
||||
|
Reference in New Issue
Block a user