aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancesco <francesco.bbt@gmail.com>2021-06-15 22:58:31 +0200
committerGitHub <noreply@github.com>2021-06-15 22:58:31 +0200
commitdc4448f9e3ca44ed175d0dabbc20486c9b7d92a8 (patch)
tree58e59bee047b9c6eeabd99fe7a17c59e2d2d768a
parent32b8d620b8b2aa07304ed76a2855d353faaa9ca0 (diff)
parent3d3c48f3215c1d663abafefd78a0ca595565df0e (diff)
downloadlite-xl-plugins-dc4448f9e3ca44ed175d0dabbc20486c9b7d92a8.tar.gz
lite-xl-plugins-dc4448f9e3ca44ed175d0dabbc20486c9b7d92a8.zip
Merge pull request #35 from ajalexei/master
Added syntax highlighting for BibTeX files, PDF preview for LaTeX files, compilation of LaTeX files into PDF
-rw-r--r--README.md3
-rw-r--r--plugins/language_bib.lua22
-rw-r--r--plugins/pdfview.lua45
-rw-r--r--plugins/texcompile.lua44
4 files changed, 114 insertions, 0 deletions
diff --git a/README.md b/README.md
index 48f9796..114f114 100644
--- a/README.md
+++ b/README.md
@@ -44,6 +44,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
@@ -98,6 +99,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.
@@ -107,6 +109,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/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..41e8ad0
--- /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" }