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()
|
||||
end
|
||||
|
||||
function module.open()
|
||||
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('.'))
|
||||
|
||||
local function SetAutoCmd(augroup, server, bufnr)
|
||||
nvim_create_autocmd("BufWritePost", {
|
||||
group = augroup,
|
||||
buffer = bufnr,
|
||||
callback = function()
|
||||
server_connection:show(get_buf_content(bufnr))
|
||||
server:show(get_buf_content(bufnr))
|
||||
end,
|
||||
})
|
||||
|
||||
|
|
@ -44,12 +33,12 @@ function module.open()
|
|||
group = augroup,
|
||||
buffer = bufnr,
|
||||
callback = function()
|
||||
server_connection:scroll({vim.fn.line('.'), vim.fn.line('$')})
|
||||
server:scroll({vim.fn.line('.'), vim.fn.line('$')})
|
||||
end,
|
||||
})
|
||||
|
||||
local function show()
|
||||
server_connection:show(get_buf_content(bufnr))
|
||||
server:show(get_buf_content(bufnr))
|
||||
end
|
||||
|
||||
nvim_create_autocmd({"TextChanged", "TextChangedI", "TextChangedP" }, {
|
||||
|
|
@ -59,7 +48,52 @@ function module.open()
|
|||
throttle.run_fn(show)
|
||||
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
|
||||
|
||||
function module.close()
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user