diff options
author | Georgi Kirilov <> | 2020-11-22 15:10:49 +0200 |
---|---|---|
committer | Georgi Kirilov <> | 2023-10-04 18:24:58 +0800 |
commit | 8d0c543453b671086480ed106df1378cf49cc384 (patch) | |
tree | 5f840e7e838e6ad5b529cc2c4113d141eb06a8bb /pairs.lua | |
parent | 096c115c6e9b5445f98e7aece7798ac22b7df2c9 (diff) | |
download | vis-pairs-8d0c543453b671086480ed106df1378cf49cc384.tar.gz |
Don't overwrite existing configuration
Diffstat (limited to 'pairs.lua')
-rw-r--r-- | pairs.lua | 25 |
1 files changed, 19 insertions, 6 deletions
@@ -187,13 +187,26 @@ vis.events.subscribe(vis.events.INIT, function() inner = new(vis.textobject, vis.textobject_register, M.prefix.inner, inner, "Delimited block (inner variant)"), outer = new(vis.textobject, vis.textobject_register, M.prefix.outer, outer, "Delimited block (outer variant)"), } + local tag = {"<" * l.Cg(l.C((l.S"_:" + l.R("az", "AZ")) * (l.R("az", "AZ", "09") + l.S"_:.-")^0), "t") * (1 - l.S"><")^0 * (">" - l.B"/"), l.Cmt("</" * l.Cb("t") * l.C((1 - l.P">")^1) * ">", function(_, _, c1, c2) return c1 == c2 end)} - M.map.html = {t = tag} - M.map.xml = {t = tag} - local any_paren = {l.Cg(l.C(l.S"([{"), "s"), l.Cmt(l.Cb("s") * l.C(1), function(_, _, c1, c2) return builtin_textobjects[c1][2] == c2 end)} - M.map.scheme = {b = any_paren} - M.map.lisp = {b = any_paren} - M.map.clojure = {b = any_paren} + local any_bracket = {l.Cg(l.C(l.S"([{"), "s"), l.Cmt(l.Cb("s") * l.C(1), function(_, _, c1, c2) return builtin_textobjects[c1][2] == c2 end)} + local presets = { + html = {t = tag}, + xml = {t = tag}, + scheme = {b = any_bracket}, + lisp = {b = any_bracket}, + clojure = {b = any_bracket}, + } + for syntax, bindings in pairs(presets) do + if not M.map[syntax] then + M.map[syntax] = bindings + else + for key, pattern in pairs(bindings) do + if not M.map[syntax][key] then M.map[syntax][key] = pattern end + end + end + end + end) M = { |