From c0663f0501aa6b1743757c59620276601f632f22 Mon Sep 17 00:00:00 2001 From: Georgi Kirilov <> Date: Sat, 31 Oct 2020 11:50:50 +0200 Subject: [PATCH] refactor cycle_wrap rewrap() could be used in refmt_list() to fix wrong bracket kinds. --- edit.lua | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/edit.lua b/edit.lua index 3889681..02cd86c 100644 --- a/edit.lua +++ b/edit.lua @@ -285,16 +285,20 @@ function M.new(parser, walker, fmt, write, delete) return refmt_at(parentng, range) end - local function cycle_wrap(range, pos) - local _, parent = walker.sexp_at(range) - if not parent or not parent.is_list then return end + local function rewrap(parent, kind) local pstart = parent.start + #((parent.p or '')..parent.d) - 1 - local next_kind = {["("] = "[", ["["] = "{", ["{"] = "("} delete(parent.finish, 1) - write(parent.finish, parser.opposite[next_kind[parent.d]]) + write(parent.finish, parser.opposite[kind]) delete(pstart, #parent.d) - write(pstart, next_kind[parent.d]) + write(pstart, kind) parser.tree.rewind(parent.start) + end + + local function cycle_wrap(range, pos) + local _, parent = walker.sexp_at(range) + if not parent or not parent.is_list then return end + local next_kind = {["("] = "[", ["["] = "{", ["{"] = "("} + rewrap(parent, next_kind[parent.d]) return pos end -- 2.11.4.GIT