diff options
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/autosave.lua | 3 | ||||
-rw-r--r-- | plugins/language_lobster.lua | 66 | ||||
-rw-r--r-- | plugins/language_sass.lua | 2 | ||||
-rw-r--r-- | plugins/language_toml.lua | 32 | ||||
-rw-r--r-- | plugins/language_v.lua | 4 | ||||
-rw-r--r-- | plugins/language_zig.lua | 5 | ||||
-rw-r--r-- | plugins/lfautoinsert.lua | 1 | ||||
-rw-r--r-- | plugins/linenumbers.lua | 85 | ||||
-rw-r--r-- | plugins/smallclock.lua | 2 |
9 files changed, 194 insertions, 6 deletions
diff --git a/plugins/autosave.lua b/plugins/autosave.lua index e6fa21c..9518adf 100644 --- a/plugins/autosave.lua +++ b/plugins/autosave.lua @@ -2,7 +2,6 @@ local core = require "core" local config = require "core.config" local Doc = require "core.doc" -local DocView = require "core.docview" local command = require "core.command" -- this is used to detect the wait time local last_keypress = os.time() @@ -42,5 +41,5 @@ function Doc:on_text_change(type) if self.filename then updatepress() end - return on_text_change(type) + return on_text_change(self, type) end diff --git a/plugins/language_lobster.lua b/plugins/language_lobster.lua new file mode 100644 index 0000000..8b4d899 --- /dev/null +++ b/plugins/language_lobster.lua @@ -0,0 +1,66 @@ +-- mod-version:1 -- lite-xl 1.16 +local syntax = require "core.syntax" + +syntax.add { + files = "%.lobster$", + comment = "//", + patterns = { + { pattern = "//.-\n", type = "comment" }, + { pattern = { "/%*", "%*/" }, type = "comment" }, + + { pattern = "struct%s()[%a_][%w_]*", type = {"keyword", "keyword2"} }, + { pattern = "class%s()[%a_][%w_]*", type = {"keyword", "keyword2"} }, + { pattern = "import%s+from", type = "keyword" }, + + { pattern = { '"', '"', '\\' }, type = "string" }, + { pattern = { "'", "'", '\\' }, type = "string" }, + { pattern = { '"""', '"""' }, type = "string" }, + { pattern = "0x%x+", type = "number" }, + { pattern = "%d+[%d%.eE]*f?", type = "number" }, + { pattern = "%.?%d+f?", type = "number" }, + { pattern = "[%+%-=/%*%^%%<>!~|&]", type = "operator" }, + { pattern = "[%a_][%w_]*%f[(]", type = "function" }, + { pattern = "[%a_][%w_]*", type = "symbol" }, + }, + symbols = { + ["import"] = "keyword", + ["def"] = "keyword", + ["fn"] = "keyword", + ["return"] = "keyword", + ["program"] = "keyword", + ["private"] = "keyword", + ["resource"] = "keyword", + + -- not really keywords but provides control-flow constructs + ["if"] = "keyword", + ["for"] = "keyword", + ["while"] = "keyword", + ["else"] = "keyword", + + ["enum"] = "keyword", + ["enum_flags"] = "keyword", + + ["int"] = "keyword2", + ["float"] = "keyword2", + ["string"] = "keyword2", + ["any"] = "keyword2", + ["void"] = "keyword2", + + ["is"] = "keyword", + ["typeof"] = "keyword", + ["var"] = "keyword", + ["let"] = "keyword", + ["pakfile"] = "keyword", + ["switch"] = "keyword", + ["case"] = "keyword", + ["default"] = "keyword", + ["namespace"] = "keyword", + + ["not"] = "operator", + ["and"] = "operator", + ["or"] = "operator", + + ["nil"] = "literal", + }, +} + diff --git a/plugins/language_sass.lua b/plugins/language_sass.lua index 752f5b0..aa11637 100644 --- a/plugins/language_sass.lua +++ b/plugins/language_sass.lua @@ -2,7 +2,7 @@ local syntax = require "core.syntax" syntax.add { - files = { "%.sass$" }, + files = { "%.sass$" ,"%.scss$"}, comment = "//", patterns = { { pattern = "/[/%*].-\n", type = "comment" }, diff --git a/plugins/language_toml.lua b/plugins/language_toml.lua new file mode 100644 index 0000000..9de31f9 --- /dev/null +++ b/plugins/language_toml.lua @@ -0,0 +1,32 @@ +-- lite-xl 1.16 + +local syntax = require "core.syntax" + +syntax.add { + files = { "%.toml$" }, + comment = '#', + patterns = { + { pattern = "#.-\n", type = "comment" }, + { pattern = { '"""', '"""', '\\' }, type = "string" }, + { pattern = { '"', '"', '\\' }, type = "string" }, + { pattern = { "'''", "'''" }, type = "string" }, + { pattern = { "'", "'" }, type = "string" }, + { pattern = "[A-Za-z0-9_%.%-]+%s*%f[=]", type = "function" }, + { pattern = "%[[A-Za-z0-9_%.%- ]+%]", type = "keyword" }, + { pattern = "%[%[[A-Za-z0-9_%.%- ]+%]%]", type = "keyword" }, + { pattern = "[%-+]?[0-9_]+%.[0-9_]+[eE][%-+]?[0-9_]+", type = "number" }, + { pattern = "[%-+]?[0-9_]+%.[0-9_]+", type = "number" }, + { pattern = "[%-+]?[0-9_]+[eE][%-+]?[0-9_]+", type = "number" }, + { pattern = "[%-+]?[0-9_]+", type = "number" }, + { pattern = "[%-+]?0x[0-9a-fA-F_]+", type = "number" }, + { pattern = "[%-+]?0o[0-7_]+", type = "number" }, + { pattern = "[%-+]?0b[01_]+", type = "number" }, + { pattern = "[%-+]?nan", type = "number" }, + { pattern = "[%-+]?inf", type = "number" }, + { pattern = "[a-z]+", type = "symbol" }, + }, + symbols = { + ["true"] = "literal", + ["false"] = "literal", + }, +} diff --git a/plugins/language_v.lua b/plugins/language_v.lua index 526002f..774617a 100644 --- a/plugins/language_v.lua +++ b/plugins/language_v.lua @@ -45,8 +45,8 @@ syntax.add { ["match"] = "keyword", ["module"] = "keyword", ["mut"] = "keyword2", - ["none"] = "keyword", ["or"] = "keyword", + ["pub"] = "keyword", ["return"] = "keyword", ["rlock"] = "keyword", ["select"] = "keyword", @@ -63,7 +63,7 @@ syntax.add { ["true"] = "literal", ["false"] = "literal", - ["pub"] = "literal", + ["none"] = "literal", }, } diff --git a/plugins/language_zig.lua b/plugins/language_zig.lua index 3c4f6fa..4629e89 100644 --- a/plugins/language_zig.lua +++ b/plugins/language_zig.lua @@ -39,6 +39,7 @@ syntax.add { ["while"] = "keyword", ["var"] = "keyword", ["anytype"] = "keyword", + ["anyframe"] = "keyword", ["const"] = "keyword", ["test"] = "keyword", ["packed"] = "keyword", @@ -76,6 +77,10 @@ syntax.add { ["enum"] = "keyword", ["union"] = "keyword", ["opaque"] = "keyword", + ["inline"] = "keyword", + ["allowzero"] = "keyword", + ["noalias"] = "keyword", + ["nosuspend"] = "keyword", -- types ["f16"] = "keyword2", diff --git a/plugins/lfautoinsert.lua b/plugins/lfautoinsert.lua index ddbec5e..5f4148b 100644 --- a/plugins/lfautoinsert.lua +++ b/plugins/lfautoinsert.lua @@ -13,6 +13,7 @@ config.plugins.lfautoinsert = { map = { [":%s*\n"] = false, ["->%s*\n"] = false, ["^%s*<([^/][^%s>]*)[^>]*>%s*\n"] = "</$TEXT>", + ["^%s*{{#([^/][^%s}]*)[^}]*}}%s*\n"] = "{{/$TEXT}}", ["/%*%s*\n"] = "*/", ["c/c++"] = { file_patterns = { diff --git a/plugins/linenumbers.lua b/plugins/linenumbers.lua new file mode 100644 index 0000000..fde0a08 --- /dev/null +++ b/plugins/linenumbers.lua @@ -0,0 +1,85 @@ +-- mod-version:1 -- lite-xl 1.16 +local config = require "core.config" +local style = require "core.style" +local DocView = require "core.docview" +local common = require "core.common" +local command = require "core.command" + +local draw = DocView.draw_line_gutter +local get_width = DocView.get_gutter_width + +function DocView:draw_line_gutter(idx, x, y, width) + if not config.line_numbers and not config.relative_line_numbers then + return + end + + if config.relative_line_numbers then + + local color = style.line_number + local local_idx = idx + local align = "right" + + local l1 = self.doc:get_selection(false) + if idx == l1 then + color = style.line_number2 + if config.line_numbers then + align = "center" + else + local_idx = 0 + end + else + local_idx = math.abs(idx - l1) + end + + -- Fix for old version (<=1.16) + if width == nil then + local gpad = style.padding.x * 2 + local gw = self:get_font():get_width(#self.doc.lines) + gpad + width = gpad and gw - gpad or gw + end + + common.draw_text( + self:get_font(), + color, local_idx, align, + x + style.padding.x, + y + self:get_line_text_y_offset(), + width, self:get_line_height() + ) + else + draw(self, idx, x, y, width) + end +end + +function DocView:get_gutter_width(...) + if not config.line_numbers and not config.relative_line_numbers then + return style.padding.x + else + return get_width(self, ...) + end +end + +command.add(nil, { + ["line-numbers:toggle"] = function() + config.line_numbers = not config.line_numbers + end, + + ["line-numbers:disable"] = function() + config.line_numbers = false + end, + + ["line-numbers:enable"] = function() + config.line_numbers = true + end, + + ["relative-line-numbers:toggle"] = function() + config.relative_line_numbers = not config.relative_line_numbers + end, + + ["relative-line-numbers:enable"] = function() + config.relative_line_numbers = true + end, + + ["relative-line-numbers:disable"] = function() + config.relative_line_numbers = false + end +}) diff --git a/plugins/smallclock.lua b/plugins/smallclock.lua index 3ab9e4a..b22bc71 100644 --- a/plugins/smallclock.lua +++ b/plugins/smallclock.lua @@ -9,7 +9,7 @@ core.add_thread(function() while true do local t = os.date("*t") time = string.format("%02d:%02d", t.hour, t.min) - coroutine.yield() + coroutine.yield(1) end end) |