Declaring custom commands with parameters


I’m an author of a Language Server trying to build an LSP config for Neovim’s built-in LSP client.

My LS ships with a few custom commands that a client can call with workspace/executeCommand. I’m trying to expose them as native user commands (e.g. :ZkNew). Using setup(commands = ...), it works well with commands taking no arguments. However, I could not figure out how to support arguments.

For example, I’m able to do this with coc.nvim:

command! -nargs=? ZkNew :call CocAction("runCommand", "", <args>)

which works like this: :ZkNew {"title": "Hello"}

Is it possible with lspconfig? Thanks!