diff options
author | rxi <rxi@users.noreply.github.com> | 2020-04-29 10:46:37 +0100 |
---|---|---|
committer | rxi <rxi@users.noreply.github.com> | 2020-04-29 10:46:37 +0100 |
commit | 00008754892d8ece014fda5abce905eae64ae331 (patch) | |
tree | c169a0ae47204825d91e644fb36d8241dd954d2b /plugins/sort.lua | |
parent | 24ffdf7e545e157d768e3057ad2c9d892c188220 (diff) | |
download | lite-xl-plugins-00008754892d8ece014fda5abce905eae64ae331.tar.gz lite-xl-plugins-00008754892d8ece014fda5abce905eae64ae331.zip |
Made `sort` plugin automatically select to line edges
Diffstat (limited to 'plugins/sort.lua')
-rw-r--r-- | plugins/sort.lua | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/plugins/sort.lua b/plugins/sort.lua index ce899e9..2e865ab 100644 --- a/plugins/sort.lua +++ b/plugins/sort.lua @@ -1,5 +1,6 @@ local core = require "core" local command = require "core.command" +local translate = require "core.doc.translate" local function split_lines(text) local res = {} @@ -11,7 +12,14 @@ end command.add("core.docview", { ["sort:sort"] = function() - core.active_view.doc:replace(function(text) + local doc = core.active_view.doc + + local l1, c1, l2, c2, swap = doc:get_selection(true) + l1, c1 = translate.start_of_line(doc, l1, c1) + l2, c2 = translate.end_of_line(doc, l2, c2) + doc:set_selection(l1, c1, l2, c2, swap) + + doc:replace(function(text) local head, body, foot = text:match("(\n*)(.-)(\n*)$") local lines = split_lines(body) table.sort(lines, function(a, b) return a:lower() < b:lower() end) |