diff options
| author | Michael Lingelbach <m.j.lbach@gmail.com> | 2021-01-12 12:21:21 -0800 |
|---|---|---|
| committer | Michael Lingelbach <m.j.lbach@gmail.com> | 2021-01-14 22:11:09 -0800 |
| commit | c15458eb7d8152c05e557a17b8859a5d2cd77ad5 (patch) | |
| tree | a5f5594ffca8b73aa7e6a30c8faf90760abec428 /lua/lspconfig.lua | |
| parent | Merge pull request #669 from mjlbach/fix_filetypes (diff) | |
| download | nvim-lspconfig-c15458eb7d8152c05e557a17b8859a5d2cd77ad5.tar nvim-lspconfig-c15458eb7d8152c05e557a17b8859a5d2cd77ad5.tar.gz nvim-lspconfig-c15458eb7d8152c05e557a17b8859a5d2cd77ad5.tar.bz2 nvim-lspconfig-c15458eb7d8152c05e557a17b8859a5d2cd77ad5.tar.lz nvim-lspconfig-c15458eb7d8152c05e557a17b8859a5d2cd77ad5.tar.xz nvim-lspconfig-c15458eb7d8152c05e557a17b8859a5d2cd77ad5.tar.zst nvim-lspconfig-c15458eb7d8152c05e557a17b8859a5d2cd77ad5.zip | |
LspInfo: fix display when client cmd contains newlines
Diffstat (limited to 'lua/lspconfig.lua')
| -rw-r--r-- | lua/lspconfig.lua | 38 |
1 files changed, 26 insertions, 12 deletions
diff --git a/lua/lspconfig.lua b/lua/lspconfig.lua index d84b8a01..78916010 100644 --- a/lua/lspconfig.lua +++ b/lua/lspconfig.lua @@ -40,15 +40,36 @@ function M._root._setup() } vim.list_extend(buf_lines, header) - for _, client in ipairs(buf_clients) do - local client_info = { + local function trim_whitespace(cmd) + local trimmed_cmd = {} + for _, str in ipairs(cmd) do + table.insert(trimmed_cmd, str:match'^%s*(.*)') + end + return trimmed_cmd + end + + local function remove_newlines(cmd) + cmd = trim_whitespace(cmd) + cmd = table.concat(cmd, ' ') + cmd = vim.split(cmd, '\n') + cmd = trim_whitespace(cmd) + cmd = table.concat(cmd, ' ') + return cmd + end + + local function make_client_info(client) + return { "", "Client: "..tostring(client.id), "\tname: "..client.name, "\troot: "..client.workspaceFolders[1].name, "\tfiletypes: "..table.concat(client.config.filetypes, ', '), - "\tcmd: "..table.concat(client.config.cmd, ', '), + "\tcmd: "..remove_newlines(client.config.cmd), } + end + + for _, client in ipairs(buf_clients) do + local client_info = make_client_info(client) vim.list_extend(buf_lines, client_info) end @@ -58,14 +79,7 @@ function M._root._setup() } vim.list_extend(buf_lines, active_section_header) for _, client in ipairs(clients) do - local client_info = { - "", - "Client: "..tostring(client.id), - "\tname: "..client.name, - "\troot: "..client.workspaceFolders[1].name, - "\tfiletypes: "..table.concat(client.config.filetypes, ', '), - "\tcmd: "..table.concat(client.config.cmd, ', '), - } + local client_info = make_client_info(client) vim.list_extend(buf_lines, client_info) end local matching_config_header = { @@ -77,7 +91,7 @@ function M._root._setup() for _, config in pairs(configs) do local cmd_is_executable, cmd if config.cmd then - cmd = table.concat(config.cmd, " ") + cmd = remove_newlines(config.cmd) if vim.fn.executable(config.cmd[1]) == 1 then cmd_is_executable = "True" else |
