diff options
author | Francesco <francesco.bbt@gmail.com> | 2021-06-15 23:18:20 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-15 23:18:20 +0200 |
commit | 081665d20f2ad1a9b8b516f24438fd73cd6324f3 (patch) | |
tree | 7ea2154be64d9d578e8a1e903e207df6ce30127a /plugins | |
parent | dc4448f9e3ca44ed175d0dabbc20486c9b7d92a8 (diff) | |
parent | def5ced2aecdba4239f56f1f512127484dec260a (diff) | |
download | lite-xl-plugins-081665d20f2ad1a9b8b516f24438fd73cd6324f3.tar.gz lite-xl-plugins-081665d20f2ad1a9b8b516f24438fd73cd6324f3.zip |
Merge pull request #32 from adamharrison/EphemeralTabs
Added in the ability to have ephemeral tabs.
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/ephemeraldocviews.lua | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/plugins/ephemeraldocviews.lua b/plugins/ephemeraldocviews.lua new file mode 100644 index 0000000..37b3a3b --- /dev/null +++ b/plugins/ephemeraldocviews.lua @@ -0,0 +1,45 @@ +-- 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 |