Version 1.5.0

* Fix table concat bug
* Add `setup_buffer`
This commit is contained in:
Lukas Reineke
2022-01-06 00:03:49 +09:00
parent 7ea856fea0
commit 2296cb4ef6
3 changed files with 31 additions and 4 deletions
+10 -2
View File
@@ -1,3 +1,4 @@
local utils = require "virt-column.utils"
local ffi = require "ffi"
ffi.cdef "int curwin_col_off(void);"
@@ -7,6 +8,7 @@ local M = {
char = "",
virtcolumn = "",
},
buffer_config = {},
}
M.clear_buf = function(bufnr)
@@ -33,6 +35,11 @@ M.setup = function(config)
]]
end
M.setup_buffer = function(config)
M.buffer_config[vim.api.nvim_get_current_buf()] = config
M.refresh()
end
M.refresh = function()
local bufnr = vim.api.nvim_get_current_buf()
@@ -40,11 +47,12 @@ M.refresh = function()
return
end
local config = vim.tbl_deep_extend("force", M.config, M.buffer_config[bufnr] or {})
local winnr = vim.api.nvim_get_current_win()
local lines = vim.api.nvim_buf_get_lines(bufnr, 0, -1, false)
local width = vim.api.nvim_win_get_width(winnr) - ffi.C.curwin_col_off()
local textwidth = vim.opt.textwidth:get()
local colorcolumn = { unpack(vim.opt.colorcolumn:get()), unpack(vim.split(M.config.virtcolumn, ",")) }
local colorcolumn = utils.concat_table(vim.opt.colorcolumn:get(), vim.split(config.virtcolumn, ","))
for i, c in ipairs(colorcolumn) do
if vim.startswith(c, "+") then
@@ -67,7 +75,7 @@ M.refresh = function()
local line = lines[i]:gsub("\t", string.rep(" ", vim.opt.tabstop:get()))
if width > column and vim.api.nvim_strwidth(line) < column then
vim.api.nvim_buf_set_extmark(bufnr, M.namespace, i - 1, 0, {
virt_text = { { M.config.char, "VirtColumn" } },
virt_text = { { config.char, "VirtColumn" } },
virt_text_pos = "overlay",
hl_mode = "combine",
virt_text_win_col = column - 1,