78 lines
2.1 KiB
Lua
78 lines
2.1 KiB
Lua
-- mod-version:2 -- lite-xl 2.0
|
|
local core = require "core"
|
|
local command = require "core.command"
|
|
local keymap = require "core.keymap"
|
|
local ContextMenu = require "core.contextmenu"
|
|
local RootView = require "core.rootview"
|
|
|
|
local menu = ContextMenu()
|
|
local on_view_mouse_pressed = RootView.on_view_mouse_pressed
|
|
local on_mouse_moved = RootView.on_mouse_moved
|
|
local root_view_update = RootView.update
|
|
local root_view_draw = RootView.draw
|
|
|
|
function RootView:on_mouse_moved(...)
|
|
if menu:on_mouse_moved(...) then return end
|
|
on_mouse_moved(self, ...)
|
|
end
|
|
|
|
function RootView.on_view_mouse_pressed(button, x, y, clicks)
|
|
-- We give the priority to the menu to process mouse pressed events.
|
|
local handled = menu:on_mouse_pressed(button, x, y, clicks)
|
|
return handled or on_view_mouse_pressed(button, x, y, clicks)
|
|
end
|
|
|
|
function RootView:update(...)
|
|
root_view_update(self, ...)
|
|
menu:update()
|
|
end
|
|
|
|
function RootView:draw(...)
|
|
root_view_draw(self, ...)
|
|
menu:draw()
|
|
end
|
|
|
|
command.add(nil, {
|
|
["context:show"] = function()
|
|
menu:show(core.active_view.position.x, core.active_view.position.y)
|
|
end
|
|
})
|
|
|
|
keymap.add {
|
|
["menu"] = "context:show"
|
|
}
|
|
|
|
local function copy_log()
|
|
local item = core.active_view.hovered_item
|
|
if item then
|
|
system.set_clipboard(core.get_log(item))
|
|
end
|
|
end
|
|
|
|
local function open_as_doc()
|
|
local doc = core.open_doc("logs.txt")
|
|
core.root_view:open_doc(doc)
|
|
doc:insert(1, 1, core.get_log())
|
|
end
|
|
|
|
menu:register("core.logview", {
|
|
{ text = "Copy entry", command = copy_log },
|
|
{ text = "Open as file", command = open_as_doc }
|
|
})
|
|
|
|
if require("plugins.scale") then
|
|
menu:register("core.docview", {
|
|
{ text = "Font +", command = "scale:increase" },
|
|
{ text = "Font -", command = "scale:decrease" },
|
|
{ text = "Font Reset", command = "scale:reset" },
|
|
ContextMenu.DIVIDER,
|
|
{ text = "Find", command = "find-replace:find" },
|
|
{ text = "Replace", command = "find-replace:replace" },
|
|
ContextMenu.DIVIDER,
|
|
{ text = "Find Pattern", command = "find-replace:find-pattern" },
|
|
{ text = "Replace Pattern", command = "find-replace:replace-pattern" },
|
|
})
|
|
end
|
|
|
|
return menu
|