mirror of
https://github.com/hexedtech/codemp-nvim.git
synced 2024-11-22 15:34:53 +01:00
chore: update usage with data structs
This commit is contained in:
parent
f5a5287065
commit
9e22411df8
2 changed files with 26 additions and 22 deletions
|
@ -139,9 +139,9 @@ local function attach(name, opts)
|
||||||
ticks[buffer] = vim.api.nvim_buf_get_changedtick(buffer)
|
ticks[buffer] = vim.api.nvim_buf_get_changedtick(buffer)
|
||||||
CODEMP.ignore_following_action = true
|
CODEMP.ignore_following_action = true
|
||||||
if CODEMP.config.debug then
|
if CODEMP.config.debug then
|
||||||
print(" ~~ applying change ~~ " .. event.start .. ".." .. event.finish .. "::[" .. event.content .. "]")
|
print(" ~~ applying change ~~ " .. event.change.start .. ".." .. event.change.finish .. "::[" .. event.change.content .. "]")
|
||||||
end
|
end
|
||||||
utils.buffer.set_content(buffer, event.content, event.start, event.finish)
|
utils.buffer.set_content(buffer, event.change.content, event.change.start, event.change.finish)
|
||||||
if event.hash ~= nil then
|
if event.hash ~= nil then
|
||||||
if CODEMP.native.hash(utils.buffer.get_content(buffer)) ~= event.hash then
|
if CODEMP.native.hash(utils.buffer.get_content(buffer)) ~= event.hash then
|
||||||
if CODEMP.config.auto_sync then
|
if CODEMP.config.auto_sync then
|
||||||
|
|
|
@ -59,16 +59,20 @@ local function register_cursor_callback(controller, name)
|
||||||
once = true
|
once = true
|
||||||
local _ = controller:send({
|
local _ = controller:send({
|
||||||
buffer = bufname,
|
buffer = bufname,
|
||||||
start = cur[1],
|
start_row = cur[1][1],
|
||||||
finish = cur[2],
|
start_col = cur[1][2],
|
||||||
|
end_row = cur[2][1],
|
||||||
|
end_col = cur[2][2],
|
||||||
}) -- no need to await here
|
}) -- no need to await here
|
||||||
else -- set ourselves "away" only once
|
else -- set ourselves "away" only once
|
||||||
bufname = ""
|
bufname = ""
|
||||||
if once then
|
if once then
|
||||||
local _ = controller:send({
|
local _ = controller:send({
|
||||||
buffer = bufname,
|
buffer = bufname,
|
||||||
start = { 0, 0 },
|
start_row = 0,
|
||||||
finish = { 0, 0 },
|
start_col = 0,
|
||||||
|
end_row = 1,
|
||||||
|
end_col = 0,
|
||||||
}) -- no need to await here
|
}) -- no need to await here
|
||||||
end
|
end
|
||||||
once = false
|
once = false
|
||||||
|
@ -98,7 +102,7 @@ local function register_cursor_handler(controller)
|
||||||
pos = { 0, 0 },
|
pos = { 0, 0 },
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
user_hl[user].pos = event.start
|
user_hl[user].pos = { event.sel.start_row, event.sel.start_col }
|
||||||
local old_buffer = buffers.users[event.user]
|
local old_buffer = buffers.users[event.user]
|
||||||
if old_buffer ~= nil then
|
if old_buffer ~= nil then
|
||||||
local old_buffer_id = buffers.map_rev[old_buffer]
|
local old_buffer_id = buffers.map_rev[old_buffer]
|
||||||
|
@ -106,23 +110,23 @@ local function register_cursor_handler(controller)
|
||||||
vim.api.nvim_buf_clear_namespace(old_buffer_id, user_hl[event.user].ns, 0, -1)
|
vim.api.nvim_buf_clear_namespace(old_buffer_id, user_hl[event.user].ns, 0, -1)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
buffers.users[event.user] = event.buffer
|
buffers.users[event.user] = event.sel.buffer
|
||||||
local buffer_id = buffers.map_rev[event.buffer]
|
local buffer_id = buffers.map_rev[event.sel.buffer]
|
||||||
if buffer_id ~= nil then
|
if buffer_id ~= nil then
|
||||||
local hi = user_hl[event.user].hi
|
local hi = user_hl[event.user].hi
|
||||||
local event_finish_2 = event.finish[2] -- TODO can't set the tuple field? need to copy out
|
local event_finish_2 = event.sel.end_col -- TODO can't set the tuple field? need to copy out
|
||||||
if event.start[1] == event.finish[1] and event.start[2] == event.finish[2] then
|
if event.sel.start_row == event.sel.end_row and event.sel.start_col == event.sel.end_col then
|
||||||
-- vim can't draw 0-width cursors, so we always expand them to at least 1 width
|
-- vim can't draw 0-width cursors, so we always expand them to at least 1 width
|
||||||
event_finish_2 = event.finish[2] + 1
|
event_finish_2 = event.sel.end_col + 1
|
||||||
end
|
end
|
||||||
user_hl[event.user].mark = vim.api.nvim_buf_set_extmark(
|
user_hl[event.user].mark = vim.api.nvim_buf_set_extmark(
|
||||||
buffer_id,
|
buffer_id,
|
||||||
user_hl[event.user].ns,
|
user_hl[event.user].ns,
|
||||||
event.start[1],
|
event.sel.start_row,
|
||||||
event.start[2],
|
event.sel.start_col,
|
||||||
{
|
{
|
||||||
id = user_hl[event.user].mark,
|
id = user_hl[event.user].mark,
|
||||||
end_row = event.finish[1],
|
end_row = event.sel.end_row,
|
||||||
end_col = event_finish_2,
|
end_col = event_finish_2,
|
||||||
hl_group = hi.bg,
|
hl_group = hi.bg,
|
||||||
virt_text_pos = "right_align",
|
virt_text_pos = "right_align",
|
||||||
|
@ -138,11 +142,11 @@ local function register_cursor_handler(controller)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
if old_buffer ~= event.buffer then
|
if old_buffer ~= event.sel.buffer then
|
||||||
require('codemp.window').update() -- redraw user positions
|
require('codemp.window').update() -- redraw user positions
|
||||||
end
|
end
|
||||||
if CODEMP.following ~= nil and CODEMP.following == event.user then
|
if CODEMP.following ~= nil and CODEMP.following == event.user then
|
||||||
local buf_id = buffers.map_rev[event.buffer]
|
local buf_id = buffers.map_rev[event.sel.buffer]
|
||||||
if buf_id ~= nil then
|
if buf_id ~= nil then
|
||||||
local win = vim.api.nvim_get_current_win()
|
local win = vim.api.nvim_get_current_win()
|
||||||
local curr_buf = vim.api.nvim_get_current_buf()
|
local curr_buf = vim.api.nvim_get_current_buf()
|
||||||
|
@ -151,12 +155,12 @@ local function register_cursor_handler(controller)
|
||||||
vim.api.nvim_win_set_buf(win, buf_id)
|
vim.api.nvim_win_set_buf(win, buf_id)
|
||||||
end
|
end
|
||||||
-- keep centered the cursor end that is currently being moved, but prefer start
|
-- keep centered the cursor end that is currently being moved, but prefer start
|
||||||
if event.start[1] == last_jump[1] and event.start[2] == last_jump[2] then
|
if event.sel.start_row == last_jump[1] and event.sel.start_col == last_jump[2] then
|
||||||
vim.api.nvim_win_set_cursor(win, { event.finish[1] + 1, event.finish[2] })
|
vim.api.nvim_win_set_cursor(win, { event.sel.end_row + 1, event.sel.end_col })
|
||||||
else
|
else
|
||||||
vim.api.nvim_win_set_cursor(win, { event.start[1] + 1, event.start[2] })
|
vim.api.nvim_win_set_cursor(win, { event.sel.start_row + 1, event.sel.start_col })
|
||||||
end
|
end
|
||||||
last_jump = event.start
|
last_jump = { event.sel.start_row, event.sel.start_col }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -192,7 +196,7 @@ local function join(workspace)
|
||||||
if CODEMP.client == nil then return nil end
|
if CODEMP.client == nil then return nil end
|
||||||
local wspace = CODEMP.client:get_workspace(ws_name)
|
local wspace = CODEMP.client:get_workspace(ws_name)
|
||||||
if wspace == nil then return nil end
|
if wspace == nil then return nil end
|
||||||
return wspace:event()
|
return wspace:recv()
|
||||||
end,
|
end,
|
||||||
function(event)
|
function(event)
|
||||||
if event.type == "leave" then
|
if event.type == "leave" then
|
||||||
|
|
Loading…
Reference in a new issue