plugin drawwhitespace: added config spec
This commit is contained in:
parent
59a5839ac9
commit
4157dd867c
|
@ -6,6 +6,7 @@ local common = require "core.common"
|
||||||
local config = require "core.config"
|
local config = require "core.config"
|
||||||
|
|
||||||
config.plugins.drawwhitespace = common.merge({
|
config.plugins.drawwhitespace = common.merge({
|
||||||
|
enabled = true,
|
||||||
show_leading = true,
|
show_leading = true,
|
||||||
show_trailing = true,
|
show_trailing = true,
|
||||||
show_middle = true,
|
show_middle = true,
|
||||||
|
@ -31,6 +32,67 @@ config.plugins.drawwhitespace = common.merge({
|
||||||
sub = "»",
|
sub = "»",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
config_spec = {
|
||||||
|
name = "Draw Whitespace",
|
||||||
|
{
|
||||||
|
label = "Enabled",
|
||||||
|
description = "Disable or enable the drawing of white spaces.",
|
||||||
|
path = "enabled",
|
||||||
|
type = "toggle",
|
||||||
|
default = true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label = "Show Leading",
|
||||||
|
description = "Draw whitespaces starting at the beginning of a line.",
|
||||||
|
path = "show_leading",
|
||||||
|
type = "toggle",
|
||||||
|
default = true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label = "Show Middle",
|
||||||
|
description = "Draw whitespaces on the middle of a line.",
|
||||||
|
path = "show_middle",
|
||||||
|
type = "toggle",
|
||||||
|
default = true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label = "Show Trailing",
|
||||||
|
description = "Draw whitespaces on the end of a line.",
|
||||||
|
path = "show_trailing",
|
||||||
|
type = "toggle",
|
||||||
|
default = true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label = "Show Trailing as Error",
|
||||||
|
description = "Uses an error square to spot them easily, requires 'Show Trailing' enabled.",
|
||||||
|
path = "show_trailing_error",
|
||||||
|
type = "toggle",
|
||||||
|
default = false,
|
||||||
|
on_apply = function(enabled)
|
||||||
|
local found = nil
|
||||||
|
local substitutions = config.plugins.drawwhitespace.substitutions
|
||||||
|
for i, sub in ipairs(substitutions) do
|
||||||
|
if sub.trailing_error then
|
||||||
|
found = i
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if found == nil and enabled then
|
||||||
|
table.insert(substitutions, {
|
||||||
|
char = " ",
|
||||||
|
sub = "█",
|
||||||
|
show_leading = false,
|
||||||
|
show_middle = false,
|
||||||
|
show_trailing = true,
|
||||||
|
trailing_color = style.error,
|
||||||
|
trailing_error = true
|
||||||
|
})
|
||||||
|
elseif found ~= nil and not enabled then
|
||||||
|
table.remove(substitutions, found)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
}
|
||||||
|
}
|
||||||
}, config.plugins.drawwhitespace)
|
}, config.plugins.drawwhitespace)
|
||||||
|
|
||||||
local function get_option(substitution, option)
|
local function get_option(substitution, option)
|
||||||
|
@ -42,7 +104,14 @@ end
|
||||||
|
|
||||||
local draw_line_text = DocView.draw_line_text
|
local draw_line_text = DocView.draw_line_text
|
||||||
function DocView:draw_line_text(idx, x, y)
|
function DocView:draw_line_text(idx, x, y)
|
||||||
if getmetatable(self) ~= DocView then return draw_line_text(self, idx, x, y) end
|
if
|
||||||
|
not config.plugins.drawwhitespace.enabled
|
||||||
|
or
|
||||||
|
getmetatable(self) ~= DocView
|
||||||
|
then
|
||||||
|
return draw_line_text(self, idx, x, y)
|
||||||
|
end
|
||||||
|
|
||||||
local font = (self:get_font() or style.syntax_fonts["whitespace"] or style.syntax_fonts["comment"])
|
local font = (self:get_font() or style.syntax_fonts["whitespace"] or style.syntax_fonts["comment"])
|
||||||
local ty = y + self:get_line_text_y_offset()
|
local ty = y + self:get_line_text_y_offset()
|
||||||
local tx
|
local tx
|
||||||
|
|
Loading…
Reference in New Issue