:echomsg msg
elseif arg ==? 'capabilities'
lspserver.showCapabilities()
+ elseif arg ==? 'initializeRequest'
+ lspserver.showInitializeRequest()
elseif arg ==? 'messages'
lspserver.showMessages()
else
initparams.initializationOptions = lspserver.initializationOptions
endif
+ lspserver.rpcInitializeRequest = initparams
+
lspserver.rpc_a('initialize', initparams, ServerInitReply)
enddef
:setlocal nomodifiable
enddef
+# Display the LSP server initialize request and result
+def ShowInitializeRequest(lspserver: dict<any>)
+ OpenScratchWindow($'LangServer-{lspserver.name}-Initialize-Request')
+ var l = []
+ var heading = $"'{lspserver.path}' Language Server Initialize Requst"
+ var underlines = repeat('=', heading->len())
+ l->extend([heading, underlines])
+ if lspserver->has_key('rpcInitializeRequest')
+ for k in lspserver.rpcInitializeRequest->keys()->sort()
+ l->add($'{k}: {lspserver.rpcInitializeRequest[k]->string()}')
+ endfor
+ endif
+ setline(1, l)
+ :setlocal nomodified
+ :setlocal nomodifiable
+enddef
+
# Display the log messages received from the LSP server (window/logMessage)
def ShowMessages(lspserver: dict<any>)
if lspserver.messages->empty()
executeCommand: function(ExecuteCommand, [lspserver]),
workspaceConfigGet: function(WorkspaceConfigGet, [lspserver]),
showCapabilities: function(ShowCapabilities, [lspserver]),
+ showInitializeRequest: function(ShowInitializeRequest, [lspserver]),
showMessages: function(ShowMessages, [lspserver])
})
# Command line completion function for the LspShowServer command.
def LspShowServerComplete(arglead: string, cmdline: string, cursorpos: number): list<string>
- var l = ['capabilities', 'messages', 'status']
+ var l = ['capabilities', 'initializeRequest', 'messages', 'status']
if arglead->empty()
return l
else