46 lines
1.2 KiB
Lua
Executable File
46 lines
1.2 KiB
Lua
Executable File
-- mod-version:1 -- lite-xl 1.16
|
|
local core = require "core"
|
|
local command = require "core.command"
|
|
local RootView = require "core.rootview"
|
|
local DocView = require "core.docview"
|
|
local Doc = require "core.doc"
|
|
|
|
local open_doc = RootView.open_doc
|
|
function RootView:open_doc(doc)
|
|
local node = self:get_active_node_default()
|
|
local ephemeral, existing_ephemeral = node.views, nil
|
|
for i, view in ipairs(node.views) do
|
|
if view.doc == doc then
|
|
ephemeral = false
|
|
end
|
|
if view.doc and view.doc.ephemeral then
|
|
existing_ephemeral = view
|
|
end
|
|
end
|
|
if ephemeral and existing_ephemeral then
|
|
node:close_view(self.root_node, existing_ephemeral)
|
|
end
|
|
local view = open_doc(self, doc)
|
|
if ephemeral then
|
|
view.doc.ephemeral = #node.views > 1
|
|
end
|
|
return view
|
|
end
|
|
|
|
local get_name = DocView.get_name
|
|
function DocView:get_name()
|
|
return self.doc and self.doc.ephemeral and ("-- " .. get_name(self) .. " --") or get_name(self)
|
|
end
|
|
|
|
local doc_insert = Doc.insert
|
|
function Doc:insert(...)
|
|
doc_insert(self, ...)
|
|
self.ephemeral = false
|
|
end
|
|
|
|
local doc_remove = Doc.remove
|
|
function Doc:remove(...)
|
|
doc_remove(self, ...)
|
|
self.ephemeral = false
|
|
end
|