Implement unicode character replacements

Useful to draw whitespaces with alternate characters and colors
without slowing down the text rendering.

A new API is implemented. A renderer.replacements object can be created
to list the replacements.

In turns the function renderer.draw_text and draw_text_subpixel now accept
two optional arguments for replacements.
This commit is contained in:
Francesco Abbate
2021-04-01 18:05:59 +02:00
parent ed6ba64542
commit 3b040aabc7
14 changed files with 212 additions and 33 deletions
+9
View File
@@ -345,6 +345,14 @@ function core.remove_project_directory(path)
end
local function whitespace_replacements()
local r = renderer.replacements.new()
r:add(" ", "·")
r:add("\t", "»")
return r
end
function core.init()
command = require "core.command"
keymap = require "core.keymap"
@@ -416,6 +424,7 @@ function core.init()
core.redraw = true
core.visited_files = {}
core.restart_request = false
core.replacements = whitespace_replacements()
core.root_view = RootView()
core.command_view = CommandView()