enddef
# open a window and display all the symbols in a file (outline)
-export def Outline(cmdmods: string)
- outline.OpenOutlineWindow(cmdmods)
+export def Outline(cmdmods: string, winsize: number)
+ outline.OpenOutlineWindow(cmdmods, winsize)
g:LspRequestDocSymbols()
enddef
enddef
# open the symbol outline window
-export def OpenOutlineWindow(cmdmods: string)
+export def OpenOutlineWindow(cmdmods: string, winsize: number)
var wid: number = bufwinid('LSP-Outline')
if wid != -1
return
endif
endif
- execute $'{mods} :{opt.lspOptions.outlineWinSize}new LSP-Outline'
+ var size = winsize
+ if size == 0
+ size = opt.lspOptions.outlineWinSize
+ endif
+
+ execute $'{mods} :{size}new LSP-Outline'
:setlocal modifiable
:setlocal noreadonly
:silent! :%d _
command! -nargs=0 -bar LspHover lsp.Hover(<q-mods>)
command! -nargs=0 -bar LspIncomingCalls lsp.IncomingCalls()
command! -nargs=0 -bar LspOutgoingCalls lsp.OutgoingCalls()
-command! -nargs=0 -bar LspOutline lsp.Outline(<q-mods>)
+command! -nargs=0 -bar -count LspOutline lsp.Outline(<q-mods>, <count>)
command! -nargs=0 -bar LspPeekDeclaration lsp.GotoDeclaration(v:true, <q-mods>)
command! -nargs=0 -bar LspPeekDefinition lsp.GotoDefinition(v:true, <q-mods>)
command! -nargs=0 -bar LspPeekImpl lsp.GotoImplementation(v:true, <q-mods>)
execute $':{bnum}bw'
g:LspOptionsSet({ outlineWinSize: 20 })
+ # Validate that <count> works for LspOutline
+ :37LspOutline
+ assert_equal(2, winnr('$'))
+ bnum = winbufnr(winid + 5)
+ assert_equal('LSP-Outline', bufname(bnum))
+ assert_equal(['Function', ' aFunc', ' bFunc'], getbufline(bnum, 4, '$'))
+ assert_equal(37, winwidth(winid + 5))
+ execute $':{bnum}bw'
+
:%bw!
enddef