add buffer change event callback
This commit is contained in:
parent
c495c3384c
commit
ed3f218dfb
|
|
@ -20,23 +20,12 @@ function module.setup()
|
||||||
server_connection = client.setup()
|
server_connection = client.setup()
|
||||||
end
|
end
|
||||||
|
|
||||||
function module.open()
|
local function SetAutoCmd(augroup, server, bufnr)
|
||||||
augroup = nvim_create_augroup("MarkdownPreviewActiveAugroup", {clear = true})
|
|
||||||
|
|
||||||
server_connection:init(function()
|
|
||||||
augroup = nvim_del_augroup_by_id(augroup)
|
|
||||||
end)
|
|
||||||
|
|
||||||
local bufnr = vim.api.nvim_get_current_buf()
|
|
||||||
server_connection:base(vim.fn.fnamemodify(vim.uri_to_fname(vim.uri_from_bufnr(bufnr)), 'p:h'))
|
|
||||||
server_connection:show(get_buf_content(bufnr))
|
|
||||||
server_connection:scroll(vim.fn.line('.'))
|
|
||||||
|
|
||||||
nvim_create_autocmd("BufWritePost", {
|
nvim_create_autocmd("BufWritePost", {
|
||||||
group = augroup,
|
group = augroup,
|
||||||
buffer = bufnr,
|
buffer = bufnr,
|
||||||
callback = function()
|
callback = function()
|
||||||
server_connection:show(get_buf_content(bufnr))
|
server:show(get_buf_content(bufnr))
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
@ -44,12 +33,12 @@ function module.open()
|
||||||
group = augroup,
|
group = augroup,
|
||||||
buffer = bufnr,
|
buffer = bufnr,
|
||||||
callback = function()
|
callback = function()
|
||||||
server_connection:scroll({vim.fn.line('.'), vim.fn.line('$')})
|
server:scroll({vim.fn.line('.'), vim.fn.line('$')})
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
local function show()
|
local function show()
|
||||||
server_connection:show(get_buf_content(bufnr))
|
server:show(get_buf_content(bufnr))
|
||||||
end
|
end
|
||||||
|
|
||||||
nvim_create_autocmd({"TextChanged", "TextChangedI", "TextChangedP" }, {
|
nvim_create_autocmd({"TextChanged", "TextChangedI", "TextChangedP" }, {
|
||||||
|
|
@ -59,7 +48,52 @@ function module.open()
|
||||||
throttle.run_fn(show)
|
throttle.run_fn(show)
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
local function FirstSend(server, bufnr)
|
||||||
|
print("Sending data to server from buffer " .. bufnr)
|
||||||
|
server:base(vim.fn.fnamemodify(vim.uri_to_fname(vim.uri_from_bufnr(bufnr)), 'p:h'))
|
||||||
|
server:show(get_buf_content(bufnr))
|
||||||
|
server:scroll(vim.fn.line('.'))
|
||||||
|
end
|
||||||
|
|
||||||
|
function module.open()
|
||||||
|
augroup = nvim_create_augroup("MarkdownPreviewActiveAugroup", {clear = true})
|
||||||
|
chgbuffergroup = nvim_create_augroup("MarkdownChangeBufferActiveAugroup", {clear = true})
|
||||||
|
|
||||||
|
server_connection:init(function()
|
||||||
|
if augroup then
|
||||||
|
augroup = nvim_del_augroup_by_id(augroup)
|
||||||
|
end
|
||||||
|
|
||||||
|
if chgbuffergroup then
|
||||||
|
chgbuffergroup = nvim_del_augroup_by_id(chgbuffergroup)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
local bufnr = vim.api.nvim_get_current_buf()
|
||||||
|
FirstSend(server_connection, bufnr)
|
||||||
|
SetAutoCmd(augroup, server_connection, bufnr)
|
||||||
|
|
||||||
|
nvim_create_autocmd("BufEnter", {
|
||||||
|
group = chgbuffergroup,
|
||||||
|
callback = function()
|
||||||
|
local new_buf_nr = vim.api.nvim_get_current_buf()
|
||||||
|
local ft = vim.api.nvim_buf_get_option(new_buf_nr, "filetype")
|
||||||
|
if ft == "markdown" then
|
||||||
|
print("filetype new buffer: " .. ft)
|
||||||
|
FirstSend(server_connection, new_buf_nr)
|
||||||
|
if augroup then
|
||||||
|
augroup = nvim_del_augroup_by_id(augroup)
|
||||||
|
end
|
||||||
|
augroup = nvim_create_augroup("MarkdownPreviewActiveAugroup", {clear = True})
|
||||||
|
SetAutoCmd(augroup, server_connection, new_buf_nr)
|
||||||
|
else
|
||||||
|
print("Not a markdown buffer")
|
||||||
|
augroup = nvim_del_augroup_by_id(augroup)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
function module.close()
|
function module.close()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user