neovim

Personal neovim configuration files
git clone git://gtms.dev/neovim.git
Log | Files | Refs

commit db453a4555a9137e62c31efa7a47ba3c78596aff
parent a0e3834e38db78fcda5660c17646cf745858047d
Author: Tomas Nemec <nemi@skaut.cz>
Date:   Mon,  6 Dec 2021 13:31:57 +0100

update

Diffstat:
Mlua/my-default.lua | 4++--
Mlua/tms/ft/dart/debug.lua | 58+++++++++++++++++++++++++++++-----------------------------
2 files changed, 31 insertions(+), 31 deletions(-)

diff --git a/lua/my-default.lua b/lua/my-default.lua @@ -123,8 +123,8 @@ Group.new('Tag', colors.c3, colors.none) Group.new('Typedef', colors.c3, colors.none) -- Telescope -Group.new('TelescopeSelection', groups.Normal.bg, groups.Normal.fg) -Group.new('TelescopeMatching', nil, nil, styles.underline+styles.bold) +Group.new('TelescopeSelection', nil, dimm(N.bg, 0.05)) +Group.new('TelescopeMatching', nil, nil, styles.underline + styles.bold) -- Lightspeed local ls1 = colors.c2 diff --git a/lua/tms/ft/dart/debug.lua b/lua/tms/ft/dart/debug.lua @@ -1,5 +1,4 @@ local parsers = require 'nvim-treesitter.parsers' -local range = require('tms.ts.range') local tsu = require 'nvim-treesitter.ts_utils' local api = vim.api @@ -10,28 +9,16 @@ M.getNameFromBody = function(node) local previous = tsu.get_previous_node(node) if previous:type() == 'method_signature' then previous = previous:child() - for i, v in previous:iter_children() do - if v == 'name' then - return tsu.get_node_text(i)[1] or nil - end - end + for i, v in previous:iter_children() do if v == 'name' then return tsu.get_node_text(i)[1] or nil end end elseif previous:type() == 'function_signature' then - for i, v in previous:iter_children() do - if v == 'name' then - return tsu.get_node_text(i)[1] or nil - end - end + for i, v in previous:iter_children() do if v == 'name' then return tsu.get_node_text(i)[1] or nil end end end end end M.getNameForClassDef = function(node) if node:type() == 'class_definition' then - for no, na in node:iter_children() do - if na == 'name' then - return tsu.get_node_text(no)[1] or nil - end - end + for no, na in node:iter_children() do if na == 'name' then return tsu.get_node_text(no)[1] or nil end end end end @@ -39,18 +26,14 @@ local function iter_tree(node, work, level) level = level or 1 for n in node:iter_children() do work(n, level) - if n:child_count() > 0 then - iter_tree(n, work, level + 1) - end + if n:child_count() > 0 then iter_tree(n, work, level + 1) end end end M.getMethodName = function(n) local node = n or tsu.get_node_at_cursor() while node do - if (node:type():find('function_body')) then - return M.getNameFromBody(node) - end + if (node:type():find('function_body')) then return M.getNameFromBody(node) end node = node:parent() end end @@ -69,17 +52,35 @@ M.treeFor = function(node) node = node:parent() end local reverse_out = {} - for i = #out, 1, -1 do - table.insert(reverse_out, out[i]) - end + for i = #out, 1, -1 do table.insert(reverse_out, out[i]) end return reverse_out end +local Region = {} +Region.__index = Region +function Region:from_lsp_range(lsp_range, bufnr) + bufnr = bufnr or vim.fn.bufnr() + return setmetatable({ + bufnr = vim.fn.bufnr(bufnr), + start_row = lsp_range.start.line + 1, + start_col = lsp_range.start.character, + end_row = lsp_range['end'].line + 1, + end_col = lsp_range['end'].character, + }, self) +end +function Region:to_lsp_range() + return { + ['start'] = {line = self.start_row - 1, character = self.start_col}, + ['end'] = {line = self.end_row - 1, character = self.end_col}, + } +end +function Region:to_lsp_text_edit(text) return {range = self:to_lsp_range(), newText = text} end + -- Add print with tree location inside this class M.print = function() local tree = M.treeFor() local bufnr = api.nvim_get_current_buf() - local r = range:from_lsp_range(vim.lsp.util.make_range_params().range, bufnr) + local r = Region:from_lsp_range(vim.lsp.util.make_range_params().range, bufnr) local string = string.format('print(\'%s\');\n', table.concat(tree, '.')) vim.lsp.util.apply_text_edits({r:to_lsp_text_edit(string)}, bufnr) api.nvim_feedkeys('==', 'n', false) @@ -91,9 +92,8 @@ M.func = function() iter_tree(root, function(node, level) local node_type = node:type() if node_type == 'function_body' then - api.nvim_buf_set_lines(0, node:start() + 1, node:start() + 1, true, { - string.format('print("%s");', string.rep(' ', level), M.getMethodName(node)), - }) + api.nvim_buf_set_lines(0, node:start() + 1, node:start() + 1, true, + {string.format('print("%s");', string.rep(' ', level), M.getMethodName(node))}) api.nvim_feedkeys('==', 'n', false) end end)