From f05b54d2116343401c8e5821cbb048f39b9cea68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?George=20Guimar=C3=A3es?= Date: Mon, 22 Jul 2024 18:33:22 -0300 Subject: [PATCH] fix(elixir): use Lazyvim.lsp.execute on keymaps and remove expandMacro --- lua/lazyvim/plugins/extras/lang/elixir.lua | 85 ++++++---------------- 1 file changed, 22 insertions(+), 63 deletions(-) diff --git a/lua/lazyvim/plugins/extras/lang/elixir.lua b/lua/lazyvim/plugins/extras/lang/elixir.lua index a2c490c0..f391edbd 100644 --- a/lua/lazyvim/plugins/extras/lang/elixir.lua +++ b/lua/lazyvim/plugins/extras/lang/elixir.lua @@ -11,70 +11,29 @@ return { servers = { elixirls = { keys = { - { "cp", ":ElixirToPipe", desc = "To Pipe" }, - { "cP", ":ElixirFromPipe", desc = "From Pipe" }, - { "ce", mode = { "v" }, ":ElixirExpandMacro", desc = "Expand Macro" }, + { + "cp", + function() + local params = vim.lsp.util.make_position_params() + LazyVim.lsp.execute({ + command = "manipulatePipes:serverid", + arguments = { "toPipe", params.textDocument.uri, params.position.line, params.position.character }, + }) + end, + desc = "To Pipe", + }, + { + "cP", + function() + local params = vim.lsp.util.make_position_params() + LazyVim.lsp.execute({ + command = "manipulatePipes:serverid", + arguments = { "fromPipe", params.textDocument.uri, params.position.line, params.position.character }, + }) + end, + desc = "From Pipe", + }, }, - on_attach = function(client, bufnr) - local manipulate_pipes = function(direction) - local get_cursor_position = function() - local rowcol = vim.api.nvim_win_get_cursor(0) - local row = rowcol[1] - 1 - local col = rowcol[2] - return row, col - end - - local row, col = get_cursor_position() - client.request_sync("workspace/executeCommand", { - command = "manipulatePipes:serverid", - arguments = { direction, "file://" .. vim.api.nvim_buf_get_name(0), row, col }, - }, nil, 0) - end - - vim.api.nvim_buf_create_user_command(bufnr, "ElixirFromPipe", function() - manipulate_pipes("fromPipe") - end, {}) - vim.api.nvim_buf_create_user_command(bufnr, "ElixirToPipe", function() - manipulate_pipes("toPipe") - end, {}) - - vim.api.nvim_buf_create_user_command(bufnr, "ElixirExpandMacro", function() - local params = vim.lsp.util.make_given_range_params() - - local text = vim.api.nvim_buf_get_text( - 0, - params.range.start.line, - params.range.start.character, - params.range["end"].line, - params.range["end"].character, - {} - ) - - local resp = client.request_sync("workspace/executeCommand", { - command = "expandMacro:serverid", - arguments = { params.textDocument.uri, vim.fn.join(text, "\n"), params.range.start.line }, - }, nil, 0) - - local content = {} - if resp["result"] then - for k, v in pairs(resp.result) do - vim.list_extend(content, { "# " .. k, "" }) - vim.list_extend(content, vim.split(v, "\n")) - end - else - table.insert(content, "Error") - end - - vim.schedule(function() - local bufnr_floating, _ = vim.lsp.util.open_floating_preview( - vim.lsp.util.trim_empty_lines(content), - "elixir", - { border = "single" } - ) - vim.api.nvim_buf_set_option(bufnr_floating, "filetype", "elixir") - end) - end, { range = true }) - end, }, }, },