diff options
| author | Takase <20792268+takase1121@users.noreply.github.com> | 2021-11-15 21:59:04 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-11-15 21:59:04 +0800 |
| commit | 285ea4f495d8992a73de75ff8497d8e3d48181c2 (patch) | |
| tree | 64e216dbd6f9ce4362f5fd2c9a30d362b0eb5548 /data/plugins | |
| parent | 5cc23348a1a7d106aaee36c0eb88b42ed2c9b725 (diff) | |
| parent | ca448c5fdbb6cb2d5f87d5955eabb9a3dfdd0e0b (diff) | |
| download | pragtical-285ea4f495d8992a73de75ff8497d8e3d48181c2.tar.gz pragtical-285ea4f495d8992a73de75ff8497d8e3d48181c2.zip | |
Merge branch 'master' into keymap-improvements
Diffstat (limited to 'data/plugins')
| -rw-r--r-- | data/plugins/autocomplete.lua | 7 | ||||
| -rw-r--r-- | data/plugins/drawwhitespace.lua | 32 | ||||
| -rw-r--r-- | data/plugins/language_md.lua | 45 | ||||
| -rw-r--r-- | data/plugins/language_python.lua | 2 | ||||
| -rw-r--r-- | data/plugins/lineguide.lua | 3 | ||||
| -rw-r--r-- | data/plugins/scale.lua | 23 | ||||
| -rw-r--r-- | data/plugins/treeview.lua | 3 |
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 |
