aboutsummaryrefslogtreecommitdiff
path: root/data/plugins
diff options
context:
space:
mode:
authorTakase <20792268+takase1121@users.noreply.github.com>2021-11-15 21:59:04 +0800
committerGitHub <noreply@github.com>2021-11-15 21:59:04 +0800
commit285ea4f495d8992a73de75ff8497d8e3d48181c2 (patch)
tree64e216dbd6f9ce4362f5fd2c9a30d362b0eb5548 /data/plugins
parent5cc23348a1a7d106aaee36c0eb88b42ed2c9b725 (diff)
parentca448c5fdbb6cb2d5f87d5955eabb9a3dfdd0e0b (diff)
downloadpragtical-285ea4f495d8992a73de75ff8497d8e3d48181c2.tar.gz
pragtical-285ea4f495d8992a73de75ff8497d8e3d48181c2.zip
Merge branch 'master' into keymap-improvements
Diffstat (limited to 'data/plugins')
-rw-r--r--data/plugins/autocomplete.lua7
-rw-r--r--data/plugins/drawwhitespace.lua32
-rw-r--r--data/plugins/language_md.lua45
-rw-r--r--data/plugins/language_python.lua2
-rw-r--r--data/plugins/lineguide.lua3
-rw-r--r--data/plugins/scale.lua23
-rw-r--r--data/plugins/treeview.lua3
7 files changed, 83 insertions, 32 deletions
diff --git a/data/plugins/autocomplete.lua b/data/plugins/autocomplete.lua
index 484199a9..fde9487e 100644
--- a/data/plugins/autocomplete.lua
+++ b/data/plugins/autocomplete.lua
@@ -10,7 +10,7 @@ local RootView = require "core.rootview"
local DocView = require "core.docview"
local Doc = require "core.doc"
-config.plugins.autocomplete = {
+config.plugins.autocomplete = {
-- Amount of characters that need to be written for autocomplete
min_len = 3,
-- The max amount of visible items
@@ -502,6 +502,11 @@ command.add(predicate, {
suggestions_idx = math.min(suggestions_idx + 1, #suggestions)
end,
+ ["autocomplete:cycle"] = function()
+ local newidx = suggestions_idx + 1
+ suggestions_idx = newidx > #suggestions and 1 or newidx
+ end,
+
["autocomplete:cancel"] = function()
reset_suggestions()
end,
diff --git a/data/plugins/drawwhitespace.lua b/data/plugins/drawwhitespace.lua
new file mode 100644
index 00000000..da9d1b12
--- /dev/null
+++ b/data/plugins/drawwhitespace.lua
@@ -0,0 +1,32 @@
+-- mod-version:2 -- lite-xl 2.0
+
+local style = require "core.style"
+local DocView = require "core.docview"
+local common = require "core.common"
+
+local draw_line_text = DocView.draw_line_text
+
+function DocView:draw_line_text(idx, x, y)
+ local font = (self:get_font() or style.syntax_fonts["comment"])
+ local color = style.syntax.comment
+ local ty, tx = y + self:get_line_text_y_offset()
+ local text, offset, s, e = self.doc.lines[idx], 1
+ while true do
+ s, e = text:find(" +", offset)
+ if not s then break end
+ tx = self:get_col_x_offset(idx, s) + x
+ renderer.draw_text(font, string.rep("·", e - s + 1), tx, ty, color)
+ offset = e + 1
+ end
+ offset = 1
+ while true do
+ s, e = text:find("\t", offset)
+ if not s then break end
+ tx = self:get_col_x_offset(idx, s) + x
+ renderer.draw_text(font, "»", tx, ty, color)
+ offset = e + 1
+ end
+ draw_line_text(self, idx, x, y)
+end
+
+
diff --git a/data/plugins/language_md.lua b/data/plugins/language_md.lua
index 6e6e4255..3c1c329a 100644
--- a/data/plugins/language_md.lua
+++ b/data/plugins/language_md.lua
@@ -1,22 +1,41 @@
-- mod-version:2 -- lite-xl 2.0
local syntax = require "core.syntax"
+
+
syntax.add {
files = { "%.md$", "%.markdown$" },
patterns = {
- { pattern = "\\.", type = "normal" },
- { pattern = { "<!%-%-", "%-%->" }, type = "comment" },
- { pattern = { "```", "```" }, type = "string" },
- { pattern = { "``", "``", "\\" }, type = "string" },
- { pattern = { "`", "`", "\\" }, type = "string" },
- { pattern = { "~~", "~~", "\\" }, type = "keyword2" },
- { pattern = "%-%-%-+", type = "comment" },
- { pattern = "%*%s+", type = "operator" },
- { pattern = { "%*", "[%*\n]", "\\" }, type = "operator" },
- { pattern = { "%_", "[%_\n]", "\\" }, type = "keyword2" },
- { pattern = "#.-\n", type = "keyword" },
- { pattern = "!?%[.-%]%(.-%)", type = "function" },
- { pattern = "https?://%S+", type = "function" },
+ { pattern = "\\.", type = "normal" },
+ { pattern = { "<!%-%-", "%-%->" }, type = "comment" },
+ { pattern = { "```c", "```" }, type = "string", syntax = ".c" },
+ { pattern = { "```c++", "```" }, type = "string", syntax = ".cpp" },
+ { pattern = { "```python", "```" }, type = "string", syntax = ".py" },
+ { pattern = { "```ruby", "```" }, type = "string", syntax = ".rb" },
+ { pattern = { "```perl", "```" }, type = "string", syntax = ".pl" },
+ { pattern = { "```php", "```" }, type = "string", syntax = ".php" },
+ { pattern = { "```javascript", "```" }, type = "string", syntax = ".js" },
+ { pattern = { "```html", "```" }, type = "string", syntax = ".html" },
+ { pattern = { "```xml", "```" }, type = "string", syntax = ".xml" },
+ { pattern = { "```css", "```" }, type = "string", syntax = ".css" },
+ { pattern = { "```lua", "```" }, type = "string", syntax = ".lua" },
+ { pattern = { "```bash", "```" }, type = "string", syntax = ".sh" },
+ { pattern = { "```java", "```" }, type = "string", syntax = ".java" },
+ { pattern = { "```c#", "```" }, type = "string", syntax = ".cs" },
+ { pattern = { "```cmake", "```" }, type = "string", syntax = ".cmake" },
+ { pattern = { "```d", "```" }, type = "string", syntax = ".d" },
+ { pattern = { "```glsl", "```" }, type = "string", syntax = ".glsl" },
+ { pattern = { "```", "```" }, type = "string" },
+ { pattern = { "``", "``", "\\" }, type = "string" },
+ { pattern = { "`", "`", "\\" }, type = "string" },
+ { pattern = { "~~", "~~", "\\" }, type = "keyword2" },
+ { pattern = "%-%-%-+", type = "comment" },
+ { pattern = "%*%s+", type = "operator" },
+ { pattern = { "%*", "[%*\n]", "\\" }, type = "operator" },
+ { pattern = { "%_", "[%_\n]", "\\" }, type = "keyword2" },
+ { pattern = "#.-\n", type = "keyword" },
+ { pattern = "!?%[.-%]%(.-%)", type = "function" },
+ { pattern = "https?://%S+", type = "function" },
},
symbols = { },
}
diff --git a/data/plugins/language_python.lua b/data/plugins/language_python.lua
index e19caa63..252a0d14 100644
--- a/data/plugins/language_python.lua
+++ b/data/plugins/language_python.lua
@@ -2,7 +2,7 @@
local syntax = require "core.syntax"
syntax.add {
- files = { "%.py$", "%.pyw$" },
+ files = { "%.py$", "%.pyw$", "%.rpy$" },
headers = "^#!.*[ /]python",
comment = "#",
patterns = {
diff --git a/data/plugins/lineguide.lua b/data/plugins/lineguide.lua
index 61debbff..5a17c8ca 100644
--- a/data/plugins/lineguide.lua
+++ b/data/plugins/lineguide.lua
@@ -7,8 +7,7 @@ local draw_overlay = DocView.draw_overlay
function DocView:draw_overlay(...)
local ns = ("n"):rep(config.line_limit)
- local ss = self:get_font():subpixel_scale()
- local offset = self:get_font():get_width_subpixel(ns) / ss
+ local offset = self:get_font():get_width(ns)
local x = self:get_line_screen_position(1) + offset
local y = self.position.y
local w = math.ceil(SCALE * 1)
diff --git a/data/plugins/scale.lua b/data/plugins/scale.lua
index 8d16304b..b8384609 100644
--- a/data/plugins/scale.lua
+++ b/data/plugins/scale.lua
@@ -13,9 +13,6 @@ config.plugins.scale = {
use_mousewheel = true
}
-local MINIMUM_SCALE = 0.25;
-
-local scale_level = 0
local scale_steps = 0.05
local current_scale = SCALE
@@ -36,9 +33,6 @@ local function set_scale(scale)
local s = scale / current_scale
current_scale = scale
- -- we set scale_level in case this was called by user
- scale_level = (scale - default_scale) / scale_steps
-
if config.plugins.scale.mode == "ui" then
SCALE = scale
@@ -50,10 +44,14 @@ local function set_scale(scale)
style.tab_width = style.tab_width * s
for _, name in ipairs {"font", "big_font", "icon_font", "icon_big_font", "code_font"} do
- renderer.font.set_size(style[name], s * style[name]:get_size())
+ style[name] = renderer.font.copy(style[name], s * style[name]:get_size())
end
else
- renderer.font.set_size(style.code_font, s * style.code_font:get_size())
+ style.code_font = renderer.font.copy(style.code_font, s * style.code_font:get_size())
+ end
+
+ for _, font in pairs(style.syntax_fonts) do
+ renderer.font.set_size(font, s * font:get_size())
end
-- restore scroll positions
@@ -81,18 +79,15 @@ function RootView:on_mouse_wheel(d, ...)
end
local function res_scale()
- scale_level = 0
set_scale(default_scale)
end
local function inc_scale()
- scale_level = scale_level + 1
- set_scale(default_scale + scale_level * scale_steps)
+ set_scale(current_scale + scale_steps)
end
-local function dec_scale()
- scale_level = scale_level - 1
- set_scale(math.max(default_scale + scale_level * scale_steps), MINIMUM_SCALE)
+local function dec_scale()
+ set_scale(current_scale - scale_steps)
end
diff --git a/data/plugins/treeview.lua b/data/plugins/treeview.lua
index 84d5dd28..fa3ab53a 100644
--- a/data/plugins/treeview.lua
+++ b/data/plugins/treeview.lua
@@ -243,7 +243,7 @@ function TreeView:on_mouse_pressed(button, x, y, clicks)
end
else
core.try(function()
- local doc_filename = common.relative_path(core.project_dir, hovered_item.abs_filename)
+ local doc_filename = core.normalize_to_project_dir(hovered_item.abs_filename)
core.root_view:open_doc(core.open_doc(doc_filename))
end)
end
@@ -453,6 +453,7 @@ command.add(function() return view.hovered_item ~= nil end, {
for _, doc in ipairs(core.docs) do
if doc.abs_filename and old_abs_filename == doc.abs_filename then
doc:set_filename(filename, abs_filename) -- make doc point to the new filename
+ doc:reset_syntax()
break -- only first needed
end
end