aboutsummaryrefslogtreecommitdiffhomepage
path: root/modules
diff options
context:
space:
mode:
authorGravatar mitchell <70453897+orbitalquark@users.noreply.github.com>2020-10-17 16:04:57 -0400
committerGravatar mitchell <70453897+orbitalquark@users.noreply.github.com>2020-10-17 16:04:57 -0400
commit034ff0cf3af7e616a5377e036852f937f485da32 (patch)
treefb8950803c3d71e9ba3ee5d5f76aa4dc5c23b406 /modules
parentc511448b28a5b5c1e60ab87518f65245d169ae5b (diff)
Fixed "Enclose as XML Tags" with multiple selections.
Diffstat (limited to 'modules')
-rw-r--r--modules/textadept/menu.lua10
1 files changed, 7 insertions, 3 deletions
diff --git a/modules/textadept/menu.lua b/modules/textadept/menu.lua
index 6f59b7ff..d684adc1 100644
--- a/modules/textadept/menu.lua
+++ b/modules/textadept/menu.lua
@@ -116,9 +116,13 @@ local default_menubar = {
{_L['Enclose as XML Tags'], function()
buffer:begin_undo_action()
enc('<', '>')
- local s, e = buffer.current_pos, buffer.current_pos
- while buffer.char_at[s - 1] ~= 60 do s = s - 1 end -- '<'
- buffer:insert_text(-1, '</' .. buffer:text_range(s, e))
+ for i = 1, buffer.selections do
+ local s, e = buffer.selection_n_start[i], buffer.selection_n_end[i]
+ while buffer.char_at[s - 1] ~= 60 do s = s - 1 end -- '<'
+ buffer:set_target_range(e, e)
+ buffer:replace_target('</' .. buffer:text_range(s, e))
+ buffer.selection_n_start[i], buffer.selection_n_end[i] = e, e
+ end
buffer:end_undo_action()
end},
{_L['Enclose as Single XML Tag'], function() enc('<', ' />') end},