aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md4
-rw-r--r--plugins/ephemeraldocviews.lua45
-rw-r--r--plugins/language_bib.lua22
-rw-r--r--plugins/pdfview.lua45
-rw-r--r--plugins/texcompile.lua44
5 files changed, 160 insertions, 0 deletions
diff --git a/README.md b/README.md
index 1a00606..a31c13a 100644
--- a/README.md
+++ b/README.md
@@ -33,6 +33,7 @@ Plugin | Description
[`eofnewline`](https://github.com/bokunodev/lite_modules/blob/master/plugins/eofnewline-xl.lua?raw=1) | Make sure the file ends with one blank line.
[`eval`](plugins/eval.lua?raw=1) | Replaces selected Lua code with its evaluated result
[`exec`](plugins/exec.lua?raw=1) | Runs selected text through shell command and replaces with result
+[`ephemeraldocviews`](plugins/ephemeraldocviews.lua?raw=1) | Preview tabs. Opening a doc will replace the contents of the preview tab. Marks tabs as non-preview on any change.
[`fallbackfonts`](https://github.com/takase1121/lite-fallback-fonts)* | Adds support for fallback fonts *([gif](https://raw.githubusercontent.com/takase1121/lite-fallback-fonts/master/assets/Iw18fI57J0.gif))*
[`formatter`](https://github.com/vincens2005/lite-formatters)* | formatters for various languages
[`ghmarkdown`](plugins/ghmarkdown.lua?raw=1) | Opens a preview of the current markdown file in a browser window *([screenshot](https://user-images.githubusercontent.com/3920290/82754898-f7394600-9dc7-11ea-8278-2305363ed372.png))*
@@ -44,6 +45,7 @@ Plugin | Description
*[`indentguide`](plugins/indentguide.lua?raw=1)* | Adds indent guides *([screenshot](https://user-images.githubusercontent.com/3920290/79640716-f9860000-818a-11ea-9c3b-26d10dd0e0c0.png))*
[`language_angelscript`](plugins/language_angelscript.lua?raw=1) | Syntax for the [Angelscript](https://www.angelcode.com/angelscript/) programming language
[`language_batch`](plugins/language_batch.lua?raw=1) | Syntax for Windows [Batch Files](https://en.wikipedia.org/wiki/Batch_file)
+[`language_bib`](plugins/language_bib.lua?raw=1) | Syntax for [BibTex](https://en.wikipedia.org/wiki/BibTeX) files
[`language_cmake`](plugins/language_cmake.lua?raw=1) | Syntax for the CMake build system language
[`language_cpp`](plugins/language_cpp.lua?raw=1) | Syntax for the [C++](https://isocpp.org/) programming language
[`language_csharp`](plugins/language_csharp.lua?raw=1) | Syntax for the [C#](http://csharp.net) programming language
@@ -99,6 +101,7 @@ Plugin | Description
[`openfilelocation`](plugins/openfilelocation.lua?raw=1) | Opens the parent directory of the current file in the file manager
[`openselected`](plugins/openselected.lua?raw=1) | Opens the selected filename or url
~~[`projectmanager`](plugins/projectmanager.lua?raw=1)~~ | Integrated in lite-xl with improvements ~~Save projects and load/reload them quickly~~
+[`pdfview`](plugins/pdfview.lua?raw=1) | PDF preview for TeX files
[`rainbowparen`](plugins/rainbowparen.lua?raw=1) | Show nesting of parentheses with rainbow colours
[`restoretabs`](plugins/restoretabs.lua?raw=1) | Keep a list of recently closed tabs, and restore the tab in order on cntrl+shift+t.
[`regexreplaceplugin`](plugins/regexreplaceplugin.lua?raw=1) | Allows for you to write a regex and its replacement in one go, and live preview the results.
@@ -108,6 +111,7 @@ Plugin | Description
[`sort`](plugins/sort.lua?raw=1) | Sorts selected lines alphabetically
[`spellcheck`](plugins/spellcheck.lua?raw=1) | Underlines misspelt words *([screenshot](https://user-images.githubusercontent.com/3920290/79923973-9caa7400-842e-11ea-85d4-7a196a91ca50.png))* *— note: on Windows a [`words.txt`](https://github.com/dwyl/english-words/blob/master/words.txt) dictionary file must be placed beside the exe*
[`tabnumbers`](plugins/tabnumbers.lua?raw=1) | Displays tab numbers from 1–9 next to their names *([screenshot](https://user-images.githubusercontent.com/16415678/101285362-007a8500-37e5-11eb-869b-c10eb9d9d902.png))
+[`texcompile`](plugins/texcompile.lua?raw=1) | Compile Tex files into PDF
[`theme16`](https://github.com/monolifed/theme16)* | Theme manager with base16 themes
[`themescheduler`](https://github.com/BenStigsen/lite-config/blob/main/plugins/themescheduler.lua?raw=1) | Schedule themes to be used at certain times
[`themeselect`](plugins/themeselect.lua?raw=1) | Select a theme based on filename of active document
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
diff --git a/plugins/language_bib.lua b/plugins/language_bib.lua
new file mode 100644
index 0000000..08a5662
--- /dev/null
+++ b/plugins/language_bib.lua
@@ -0,0 +1,22 @@
+-- mod-version:1 -- lite-xl 1.16
+local syntax = require "core.syntax"
+
+syntax.add {
+ files = { "%.bib$" },
+ comment = "%%",
+ patterns = {
+ { pattern = {"%%", "\n"}, type = "comment" },
+ { pattern = "@%a+", type = "keyword" },
+ { pattern = "%a+%s=", type = "keyword2" },
+ },
+ symbols = {
+ ["author"] = "keyword",
+ ["doi"] = "keyword",
+ ["issue"] = "keyword",
+ ["journal"] = "keyword",
+ ["month"] = "keyword",
+ ["numpages"] = "keyword",
+ ["pages"] = "keyword",
+ ["publisher"] = "keyword",
+ }
+}
diff --git a/plugins/pdfview.lua b/plugins/pdfview.lua
new file mode 100644
index 0000000..743c6ec
--- /dev/null
+++ b/plugins/pdfview.lua
@@ -0,0 +1,45 @@
+-- mod-version:1 -- lite-xl 1.16
+local core = require "core"
+local command = require "core.command"
+local keymap = require "core.keymap"
+
+command.add("core.docview", {
+ ["pdfview:show-preview"] = function()
+ local av = core.active_view
+
+-- User's home directory
+ local homedir = ""
+
+ if PLATFORM == "Windows" then
+ homedir = os.getenv("USERPROFILE")
+ else
+ homedir = os.getenv("HOME")
+ end
+
+-- The current (La)TeX file
+ local texfile = av:get_filename()
+ texfile = string.gsub(texfile, '~', homedir)
+-- Construct the PDF file name out of the (La)Tex filename
+ local pdffile = "\"" .. string.gsub(texfile, ".tex", ".pdf") .. "\""
+-- PDF viewer - is there any provided by the environment
+ local pdfcmd = os.getenv("LITE_PDF_VIEWER")
+
+ core.log("Opening pdf preview for \"%s\"", texfile)
+
+ if pdfcmd ~= nil then
+ system.exec(pdfcmd .. " " .. pdffile)
+ elseif PLATFORM == "Windows" then
+ system.exec("start " .. pdffile)
+ else
+ system.exec(string.format("xdg-open %q", pdffile))
+ end
+
+-- core.add_thread(function()
+-- coroutine.yield(5)
+-- os.remove(htmlfile)
+-- end)
+ end
+})
+
+
+keymap.add { ["ctrl+shift+v"] = "pdfview:show-preview" }
diff --git a/plugins/texcompile.lua b/plugins/texcompile.lua
new file mode 100644
index 0000000..7a5fd6e
--- /dev/null
+++ b/plugins/texcompile.lua
@@ -0,0 +1,44 @@
+-- mod-version:1 -- lite-xl 1.16
+local core = require "core"
+local command = require "core.command"
+local keymap = require "core.keymap"
+
+command.add("core.docview", {
+ ["texcompile:tex-compile"] = function()
+ local av = core.active_view
+
+-- User's home directory
+ local homedir = ""
+
+ if PLATFORM == "Windows" then
+ homedir = os.getenv("USERPROFILE")
+ else
+ homedir = os.getenv("HOME")
+ end
+
+-- The current (La)TeX file and path
+ local texname = av:get_name()
+ local texpath = av:get_filename()
+ texpath = string.gsub(texpath, '~', homedir)
+ texpath = string.gsub(texpath, texname, '')
+
+-- LaTeX compiler - is there any provided by the environment
+ local texcmd = os.getenv("LITE_LATEX_COMPILER")
+
+ if texcmd == nil then
+ core.log("No LaTeX compiler found")
+ else
+ core.log("LaTeX compiler is %s, compiling %s", texcmd, texname)
+
+ system.exec(string.format("cd %q && %q %q", texpath, texcmd, texname))
+ end
+
+-- core.add_thread(function()
+-- coroutine.yield(5)
+-- os.remove(htmlfile)
+-- end)
+ end
+})
+
+
+keymap.add { ["ctrl+shift+t"] = "texcompile:tex-compile" }