Merge branch 'lite-xl:master' into lite-xl-windows-dark-theme-title-bar-support
This commit is contained in:
commit
104314f2e8
|
@ -1,5 +1,10 @@
|
||||||
This files document the changes done in Lite XL for each release.
|
This files document the changes done in Lite XL for each release.
|
||||||
|
|
||||||
|
### 2.0.2
|
||||||
|
|
||||||
|
Change behavior of `ctrl+d` to add a multi-cursor selection to the next occurrence.
|
||||||
|
The old behavior to move the selection to the next occurrence is now done using the shortcut `ctrl+F3`.
|
||||||
|
|
||||||
### 2.0
|
### 2.0
|
||||||
|
|
||||||
The 2.0 version of lite contains *breaking changes* to lite, in terms of how plugin settings are structured;
|
The 2.0 version of lite contains *breaking changes* to lite, in terms of how plugin settings are structured;
|
||||||
|
|
|
@ -108,6 +108,20 @@ local function has_unique_selection()
|
||||||
return text ~= nil
|
return text ~= nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function is_in_selection(line, col, l1, c1, l2, c2)
|
||||||
|
if line < l1 or line > l2 then return false end
|
||||||
|
if line == l1 and col <= c1 then return false end
|
||||||
|
if line == l2 and col > c2 then return false end
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
local function is_in_any_selection(line, col)
|
||||||
|
for idx, l1, c1, l2, c2 in doc():get_selections(true, false) do
|
||||||
|
if is_in_selection(line, col, l1, c1, l2, c2) then return true end
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
local function select_next(all)
|
local function select_next(all)
|
||||||
local il1, ic1 = doc():get_selection(true)
|
local il1, ic1 = doc():get_selection(true)
|
||||||
for idx, l1, c1, l2, c2 in doc():get_selections(true, true) do
|
for idx, l1, c1, l2, c2 in doc():get_selections(true, true) do
|
||||||
|
@ -115,15 +129,27 @@ local function select_next(all)
|
||||||
repeat
|
repeat
|
||||||
l1, c1, l2, c2 = search.find(doc(), l2, c2, text, { wrap = true })
|
l1, c1, l2, c2 = search.find(doc(), l2, c2, text, { wrap = true })
|
||||||
if l1 == il1 and c1 == ic1 then break end
|
if l1 == il1 and c1 == ic1 then break end
|
||||||
if l2 then doc():add_selection(l2, c2, l1, c1) end
|
if l2 and (all or not is_in_any_selection(l2, c2)) then
|
||||||
|
doc():add_selection(l2, c2, l1, c1)
|
||||||
|
if not all then
|
||||||
|
core.active_view:scroll_to_make_visible(l2, c2)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
until not all or not l2
|
until not all or not l2
|
||||||
break
|
if all then break end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
command.add(has_unique_selection, {
|
command.add(has_unique_selection, {
|
||||||
["find-replace:select-next"] = function() select_next(false) end,
|
["find-replace:select-next"] = function()
|
||||||
["find-replace:select-all"] = function() select_next(true) end
|
local l1, c1, l2, c2 = doc():get_selection(true)
|
||||||
|
local text = doc():get_text(l1, c1, l2, c2)
|
||||||
|
l1, c1, l2, c2 = search.find(doc(), l2, c2, text, { wrap = true })
|
||||||
|
if l2 then doc():set_selection(l2, c2, l1, c1) end
|
||||||
|
end,
|
||||||
|
["find-replace:select-add-next"] = function() select_next(false) end,
|
||||||
|
["find-replace:select-add-all"] = function() select_next(true) end
|
||||||
})
|
})
|
||||||
|
|
||||||
command.add("core.docview", {
|
command.add("core.docview", {
|
||||||
|
|
|
@ -66,9 +66,10 @@ local function keymap_macos(keymap)
|
||||||
["cmd+shift+return"] = "doc:newline-above",
|
["cmd+shift+return"] = "doc:newline-above",
|
||||||
["cmd+j"] = "doc:join-lines",
|
["cmd+j"] = "doc:join-lines",
|
||||||
["cmd+a"] = "doc:select-all",
|
["cmd+a"] = "doc:select-all",
|
||||||
["cmd+d"] = { "find-replace:select-next", "doc:select-word" },
|
["cmd+d"] = { "find-replace:select-add-next", "doc:select-word" },
|
||||||
|
["cmd+f3"] = "find-replace:select-next",
|
||||||
["cmd+l"] = "doc:select-lines",
|
["cmd+l"] = "doc:select-lines",
|
||||||
["cmd+shift+l"] = { "find-replace:select-all", "doc:select-word" },
|
["cmd+shift+l"] = { "find-replace:select-add-all", "doc:select-word" },
|
||||||
["cmd+/"] = "doc:toggle-line-comments",
|
["cmd+/"] = "doc:toggle-line-comments",
|
||||||
["option+up"] = "doc:move-lines-up",
|
["option+up"] = "doc:move-lines-up",
|
||||||
["option+down"] = "doc:move-lines-down",
|
["option+down"] = "doc:move-lines-down",
|
||||||
|
|
|
@ -168,9 +168,10 @@ keymap.add_direct {
|
||||||
["ctrl+shift+return"] = "doc:newline-above",
|
["ctrl+shift+return"] = "doc:newline-above",
|
||||||
["ctrl+j"] = "doc:join-lines",
|
["ctrl+j"] = "doc:join-lines",
|
||||||
["ctrl+a"] = "doc:select-all",
|
["ctrl+a"] = "doc:select-all",
|
||||||
["ctrl+d"] = { "find-replace:select-next", "doc:select-word" },
|
["ctrl+d"] = { "find-replace:select-add-next", "doc:select-word" },
|
||||||
|
["ctrl+f3"] = "find-replace:select-next",
|
||||||
["ctrl+l"] = "doc:select-lines",
|
["ctrl+l"] = "doc:select-lines",
|
||||||
["ctrl+shift+l"] = { "find-replace:select-all", "doc:select-word" },
|
["ctrl+shift+l"] = { "find-replace:select-add-all", "doc:select-word" },
|
||||||
["ctrl+/"] = "doc:toggle-line-comments",
|
["ctrl+/"] = "doc:toggle-line-comments",
|
||||||
["ctrl+up"] = "doc:move-lines-up",
|
["ctrl+up"] = "doc:move-lines-up",
|
||||||
["ctrl+down"] = "doc:move-lines-down",
|
["ctrl+down"] = "doc:move-lines-down",
|
||||||
|
|
Loading…
Reference in New Issue