summaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
authorelianiva <dicha.arkana03@gmail.com>2021-02-26 20:17:47 +0700
committerGitHub <noreply@github.com>2021-02-26 20:17:47 +0700
commitd37dc88eab1be7dc853af212537fdeb9fe2542a7 (patch)
tree42954b7ee4346214ad50a366e9447b48d4dce0fd /lua
parente2696d694a6e6fb9f2abfdb238a477b654e0aa77 (diff)
fix: proper multibytes chars alignment (#560)
I am 100% did not spoil anything, I swear
Diffstat (limited to 'lua')
-rw-r--r--lua/telescope/pickers/entry_display.lua7
-rw-r--r--lua/telescope/utils.lua7
2 files changed, 10 insertions, 4 deletions
diff --git a/lua/telescope/pickers/entry_display.lua b/lua/telescope/pickers/entry_display.lua
index 7e38ac8..991c9bc 100644
--- a/lua/telescope/pickers/entry_display.lua
+++ b/lua/telescope/pickers/entry_display.lua
@@ -28,13 +28,12 @@ entry_display.create = function(configuration)
local generator = {}
for _, v in ipairs(configuration.items) do
if v.width then
- local justify = not v.right_justify and "-" or ""
- local format_str = "%" .. justify .. v.width .. "s"
+ local justify = v.right_justify
table.insert(generator, function(item)
if type(item) == 'table' then
- return string.format(format_str, entry_display.truncate(item[1], v.width)), item[2]
+ return utils.align_str(entry_display.truncate(item[1], v.width), v.width, justify), item[2]
else
- return string.format(format_str, entry_display.truncate(item, v.width))
+ return utils.align_str(entry_display.truncate(item, v.width), v.width, justify)
end
end)
else
diff --git a/lua/telescope/utils.lua b/lua/telescope/utils.lua
index 4606e19..ecd7fd4 100644
--- a/lua/telescope/utils.lua
+++ b/lua/telescope/utils.lua
@@ -284,4 +284,11 @@ function utils.strcharpart(str, nchar, charlen)
return str:sub(nbyte + 1, nbyte + len)
end
+utils.align_str = function(string, width, right_justify)
+ local str_len = utils.strdisplaywidth(string)
+ return right_justify
+ and string.rep(" ", width - str_len)..string
+ or string..string.rep(" ", width - str_len)
+end
+
return utils