diff options
Diffstat (limited to 'dot_config/nvim/lua')
| -rw-r--r-- | dot_config/nvim/lua/plugins/lsp/attach.lua | 66 | ||||
| -rw-r--r-- | dot_config/nvim/lua/plugins/lsp/attach2.lua | 42 | ||||
| -rw-r--r-- | dot_config/nvim/lua/toast/core.lua | 67 | ||||
| -rw-r--r-- | dot_config/nvim/lua/toast/table.lua | 3 |
4 files changed, 129 insertions, 49 deletions
diff --git a/dot_config/nvim/lua/plugins/lsp/attach.lua b/dot_config/nvim/lua/plugins/lsp/attach.lua index f81303d..54f60f5 100644 --- a/dot_config/nvim/lua/plugins/lsp/attach.lua +++ b/dot_config/nvim/lua/plugins/lsp/attach.lua @@ -1,42 +1,26 @@ --- TODO: INITIAL PORT -local function helper(opts, ...) - for _, spec in ipairs({...}) do - for _, v in ipairs(spec) do - if opts.prefix then - v[0] = opts.prefix .. v[0] - end - if opts.buffer then - v.buffer = opts.buffer - end - end - end -end - -return function(c, b) - local lsp = vim.lsp - local lbf = lsp.buf - local wk = require 'which-key' - vim.api.nvim_buf_set_option(b, 'omnifunc', 'v:lua.vim.lsp.omnifunc') - wk.add(helper({buffer = b}, { - { '<leader>F', function() vim.lsp.buf.format {async = true} end, - desc = 'run format' }, - }, helper({prefix = '<localleader><localleader>'}, { - { '', group = '+lsp' }, - { 'w', group = '+workspace' }, - - { 'D', lbf.declaration, desc = 'goto declaration' }, - { 'd', lbf.definition, desc = 'goto definition' }, - { 'k', lbf.hover, desc = 'hover' }, - { 'K', lbf.signature_help, desc = 'signature help' }, - { 'i', lbf.implementation, desc = 'goto implementation' }, - { 't', lbf.type_definition, desc = 'goto type definition' }, - { 'r', lbf.rename, desc = 'rename' }, - { 'c', lbf.code_action, desc = 'code action' }, - { 'R', lbf.references, desc = 'list references' }, - - { 'wa', lbf.add_workspace_folder, 'add folder' }, - { 'wr', lbf.remove_workspace_folder, 'remove folder' }, - { 'wl', function() print(vim.inspect(lbf.list_workspace_folders())) end, - desc = 'list folders' }, - }))) +-- [nfnl] Compiled from fnl/plugins/lsp/attach.fnl by https://github.com/Olical/nfnl, do not edit. +local _local_1_ = require("toast.core") +local assoc = _local_1_["assoc"] +local map = _local_1_["map"] +local _local_2_ = require("toast.table") +local insert = _local_2_["insert"] +local function _3_(c, b) + local lsp = vim.lsp + local lbf = lsp.buf + local ll + local function _4_() + return print(vim.inspect(lbf.list_workspace_folders())) + end + ll = {{"", group = "+lsp"}, {"w", group = "+workspace"}, {"D", lbf.declaration, desc = "goto declaration"}, {"d", lbf.definition, desc = "goto definition"}, {"k", lbf.hover, desc = "hover"}, {"K", lbf.signature_help, desc = "signature help"}, {"i", lbf.implementation, desc = "goto implementation"}, {"t", lbf.type_definition, desc = "goto type definition"}, {"r", lbf.rename, desc = "rename"}, {"c", lbf.code_action, desc = "code action"}, {"R", lbf.reference, desc = "list references"}, {"wa", lbf.add_workspace_folder, desc = "add folder"}, {"wr", lbf.remove_workspace_folder, desc = "remove folder"}, {"wl", _4_, desc = "list folders"}} + local ll0 + local function _5_(_241) + return assoc(_241, 1, ("<localleader><localleader>" .. (_241)[1])) + end + ll0 = map(_5_, ll) + vim.api.nvim_buf_set_option(b, "omnifunc", "v:lua.vim.lsp.omnifunc") + local function _6_() + return vim.lsp.buf.format({async = true}) + end + return (require("which-key")).add({insert(ll0, {"<leader>F", _6_, desc = "run format"}), buffer = b}) end +return _3_ diff --git a/dot_config/nvim/lua/plugins/lsp/attach2.lua b/dot_config/nvim/lua/plugins/lsp/attach2.lua new file mode 100644 index 0000000..f81303d --- /dev/null +++ b/dot_config/nvim/lua/plugins/lsp/attach2.lua @@ -0,0 +1,42 @@ +-- TODO: INITIAL PORT +local function helper(opts, ...) + for _, spec in ipairs({...}) do + for _, v in ipairs(spec) do + if opts.prefix then + v[0] = opts.prefix .. v[0] + end + if opts.buffer then + v.buffer = opts.buffer + end + end + end +end + +return function(c, b) + local lsp = vim.lsp + local lbf = lsp.buf + local wk = require 'which-key' + vim.api.nvim_buf_set_option(b, 'omnifunc', 'v:lua.vim.lsp.omnifunc') + wk.add(helper({buffer = b}, { + { '<leader>F', function() vim.lsp.buf.format {async = true} end, + desc = 'run format' }, + }, helper({prefix = '<localleader><localleader>'}, { + { '', group = '+lsp' }, + { 'w', group = '+workspace' }, + + { 'D', lbf.declaration, desc = 'goto declaration' }, + { 'd', lbf.definition, desc = 'goto definition' }, + { 'k', lbf.hover, desc = 'hover' }, + { 'K', lbf.signature_help, desc = 'signature help' }, + { 'i', lbf.implementation, desc = 'goto implementation' }, + { 't', lbf.type_definition, desc = 'goto type definition' }, + { 'r', lbf.rename, desc = 'rename' }, + { 'c', lbf.code_action, desc = 'code action' }, + { 'R', lbf.references, desc = 'list references' }, + + { 'wa', lbf.add_workspace_folder, 'add folder' }, + { 'wr', lbf.remove_workspace_folder, 'remove folder' }, + { 'wl', function() print(vim.inspect(lbf.list_workspace_folders())) end, + desc = 'list folders' }, + }))) +end diff --git a/dot_config/nvim/lua/toast/core.lua b/dot_config/nvim/lua/toast/core.lua index 3313de7..765a29d 100644 --- a/dot_config/nvim/lua/toast/core.lua +++ b/dot_config/nvim/lua/toast/core.lua @@ -1,12 +1,22 @@ -- [nfnl] Compiled from fnl/toast/core.fnl by https://github.com/Olical/nfnl, do not edit. local _local_1_ = require("toast.table") local insert = _local_1_["insert"] +local unpack = _local_1_["unpack"] local function dec(n) return (n - 1) end local function inc(n) return (n + 1) end +local function empty_3f(xs) + return (0 == #xs) +end +local function nil_3f(x) + return (nil == x) +end +local function number_3f(n) + return ("number" == type(n)) +end local function drop(n, xs) local out = {} for i, v in ipairs(xs) do @@ -17,9 +27,6 @@ local function drop(n, xs) end return out end -local function empty_3f(xs) - return (0 == #xs) -end local function first(xs) return xs[1] end @@ -51,19 +58,65 @@ local function group(n, xs) return out end end +local function assoc(_3ft, ...) + local t = (_3ft or {}) + local lt = inc(#t) + local _let_7_ = {...} + local k = _let_7_[1] + local v = _let_7_[2] + local xs = (function (t, k, e) local mt = getmetatable(t) if 'table' == type(mt) and mt.__fennelrest then return mt.__fennelrest(t, k) elseif e then local rest = {} for k, v in pairs(t) do if not e[k] then rest[k] = v end end return rest else return {(table.unpack or unpack)(t, k)} end end)(_let_7_, 3) + do + local _8_ = k + if (_8_ == nil) then + else + local function _9_(...) + local k0 = _8_ + return (number_3f(k0) and (lt > k0)) + end + if ((nil ~= _8_) and _9_(...)) then + local k0 = _8_ + t[k0] = v + else + local function _10_(...) + local k0 = _8_ + return (number_3f(k0) and (k0 == lt)) + end + if ((nil ~= _8_) and _10_(...)) then + local k0 = _8_ + table.insert(t, k0, v) + elseif true then + local _ = _8_ + t[k] = v + else + end + end + end + end + local _12_ = #xs + if (_12_ == 0) then + return t + elseif (_12_ == 1) then + return error("assoc expects even number of arguments after table, found odd number") + elseif true then + local _ = _12_ + return assoc(t, unpack(xs)) + else + return nil + end +end local function map(f, xs) local out = {} - for _, v in ipairs(xs) do + for _, v in ipairs((xs or {})) do local mapped = f(v) - local function _7_() + local function _14_() if (0 == select("#", mapped)) then return nil else return mapped end end - out = insert(out, _7_()) + out = insert(out, _14_()) end return out end -return {dec = dec, inc = inc, drop = drop, ["empty?"] = empty_3f, group = group, first = first, last = last} +return {dec = dec, inc = inc, ["empty?"] = empty_3f, ["nil?"] = nil_3f, ["number?"] = number_3f, drop = drop, first = first, last = last, group = group, assoc = assoc, map = map} diff --git a/dot_config/nvim/lua/toast/table.lua b/dot_config/nvim/lua/toast/table.lua index b2633a2..a898a5e 100644 --- a/dot_config/nvim/lua/toast/table.lua +++ b/dot_config/nvim/lua/toast/table.lua @@ -13,4 +13,5 @@ local function insert(t, ...) table.insert(t, ...) return t end -return {["from-pairs"] = from_pairs, insert = insert} +local unpack = (table.unpack or unpack) +return {["from-pairs"] = from_pairs, insert = insert, unpack = unpack} |
