Don't indent empty lines in a selection

This commit is contained in:
Guldoman 2022-06-25 03:32:47 +02:00
parent 438ed6984a
commit d6ce9e1ac6
No known key found for this signature in database
GPG Key ID: EA928C8BDA1A8825
1 changed files with 6 additions and 4 deletions

View File

@ -563,10 +563,12 @@ function Doc:indent_text(unindent, line1, col1, line2, col2)
if unindent or has_selection or in_beginning_whitespace then if unindent or has_selection or in_beginning_whitespace then
local l1d, l2d = #self.lines[line1], #self.lines[line2] local l1d, l2d = #self.lines[line1], #self.lines[line2]
for line = line1, line2 do for line = line1, line2 do
local e, rnded = self:get_line_indent(self.lines[line], unindent) if not has_selection or #self.lines[line] > 1 then -- don't indent empty lines in a selection
self:remove(line, 1, line, (e or 0) + 1) local e, rnded = self:get_line_indent(self.lines[line], unindent)
self:insert(line, 1, self:remove(line, 1, line, (e or 0) + 1)
unindent and rnded:sub(1, #rnded - #text) or rnded .. text) self:insert(line, 1,
unindent and rnded:sub(1, #rnded - #text) or rnded .. text)
end
end end
l1d, l2d = #self.lines[line1] - l1d, #self.lines[line2] - l2d l1d, l2d = #self.lines[line1] - l1d, #self.lines[line2] - l2d
if (unindent or in_beginning_whitespace) and not has_selection then if (unindent or in_beginning_whitespace) and not has_selection then