def s:processDefDeclReply(lspserver: dict<any>, req: dict<any>, reply: dict<any>): void
if reply.result->empty()
util.WarnMsg("Error: definition is not found")
- if !lspserver.peekDefDeclRef
+ if !lspserver.peekSymbol
# pop the tag stack
var tagstack: dict<any> = gettagstack()
if tagstack.length > 0
settagstack(winnr(), {curidx: tagstack.length}, 't')
endif
endif
- lspserver.peekDefDeclRef = false
+ lspserver.peekSymbol = false
return
endif
location = reply.result
endif
var fname = util.LspUriToFile(location.uri)
- if lspserver.peekDefDeclRef
+ if lspserver.peekSymbol
# open the definition/declaration in the preview window and highlight the
# matching symbol
exe 'pedit ' .. fname
location.range.start.character + 1)
endif
redraw!
- lspserver.peekDefDeclRef = false
+ lspserver.peekSymbol = false
enddef
# process the 'textDocument/signatureHelp' reply from the LSP server
def s:processReferencesReply(lspserver: dict<any>, req: dict<any>, reply: dict<any>): void
if reply.result->empty()
util.WarnMsg('Error: No references found')
- lspserver.peekDefDeclRef = false
+ lspserver.peekSymbol = false
return
endif
endfor
var save_winid = win_getid()
- if lspserver.peekDefDeclRef
+ if lspserver.peekSymbol
silent! pedit
wincmd P
endif
setloclist(0, [], ' ', {title: 'Symbol Reference', items: qflist})
- :belowright vert lopen
- :30wincmd |
+ var mods: string = ''
+ if lspserver.peekSymbol
+ # When peeking the references, open the location list in a vertically
+ # split window to the right and make the location list window 30% of the
+ # source window width
+ mods = 'belowright vert :' .. (winwidth(0) * 30) / 100
+ endif
+ exe mods .. 'lopen'
save_winid->win_gotoid()
- lspserver.peekDefDeclRef = false
+ lspserver.peekSymbol = false
enddef
# process the 'textDocument/documentHighlight' reply from the LSP server
if !peek
util.PushCursorToTagStack()
endif
- lspserver.peekDefDeclRef = peek
+ lspserver.peekSymbol = peek
var req = lspserver.createRequest('textDocument/definition')
# interface DefinitionParams
# interface TextDocumentPositionParams
if !peek
util.PushCursorToTagStack()
endif
- lspserver.peekDefDeclRef = peek
+ lspserver.peekSymbol = peek
var req = lspserver.createRequest('textDocument/declaration')
# interface DeclarationParams
if !peek
util.PushCursorToTagStack()
endif
- lspserver.peekDefDeclRef = peek
+ lspserver.peekSymbol = peek
var req = lspserver.createRequest('textDocument/typeDefinition')
# interface TypeDefinitionParams
if !peek
util.PushCursorToTagStack()
endif
- lspserver.peekDefDeclRef = peek
+ lspserver.peekSymbol = peek
var req = lspserver.createRequest('textDocument/implementation')
# interface ImplementationParams
req.params->extend(s:getLspTextDocPosition())
req.params->extend({context: {includeDeclaration: true}})
- lspserver.peekDefDeclRef = peek
+ lspserver.peekSymbol = peek
lspserver.sendMessage(req)
enddef
diagsMap: {},
workspaceSymbolPopup: 0,
workspaceSymbolQuery: '',
- peekDefDeclRef: false
+ peekSymbol: false
}
# Add the LSP server functions
lspserver->extend({