mirror of
https://github.com/hexedtech/codemp-nvim.git
synced 2024-11-22 15:34:53 +01:00
feat: distinct cursors, some different colors
This commit is contained in:
parent
b4ac11bade
commit
e526d874f9
1 changed files with 21 additions and 3 deletions
|
@ -111,6 +111,13 @@ local function multiline_highlight(buf, ns, group, start, fini)
|
||||||
end
|
end
|
||||||
|
|
||||||
local buffer_mappings = {}
|
local buffer_mappings = {}
|
||||||
|
local user_mappings = {}
|
||||||
|
local available_colors = {
|
||||||
|
"ErrorMsg",
|
||||||
|
"WarningMsg",
|
||||||
|
"MatchParen",
|
||||||
|
"SpecialMode",
|
||||||
|
}
|
||||||
|
|
||||||
vim.api.nvim_create_user_command(
|
vim.api.nvim_create_user_command(
|
||||||
"Connect",
|
"Connect",
|
||||||
|
@ -126,7 +133,6 @@ vim.api.nvim_create_user_command(
|
||||||
function (args)
|
function (args)
|
||||||
local controller = codemp.join(args.args)
|
local controller = codemp.join(args.args)
|
||||||
local buffer = vim.api.nvim_get_current_buf()
|
local buffer = vim.api.nvim_get_current_buf()
|
||||||
local ns = vim.api.nvim_create_namespace("codemp-cursors")
|
|
||||||
|
|
||||||
-- hook serverbound callbacks
|
-- hook serverbound callbacks
|
||||||
vim.api.nvim_create_autocmd({"CursorMoved", "CursorMovedI", "ModeChanged"}, {
|
vim.api.nvim_create_autocmd({"CursorMoved", "CursorMovedI", "ModeChanged"}, {
|
||||||
|
@ -142,8 +148,20 @@ vim.api.nvim_create_user_command(
|
||||||
|
|
||||||
-- hook clientbound callbacks
|
-- hook clientbound callbacks
|
||||||
register_controller_handler(nil, controller, function(event)
|
register_controller_handler(nil, controller, function(event)
|
||||||
vim.api.nvim_buf_clear_namespace(buffer, ns, 0, -1)
|
if user_mappings[event.user] == nil then
|
||||||
multiline_highlight(buffer, ns, "ErrorMsg", event.start, event.finish)
|
user_mappings[event.user] = {
|
||||||
|
ns = vim.api.nvim_create_namespace("codemp-cursor-" .. event.user),
|
||||||
|
hi = available_colors[ math.random( #available_colors ) ],
|
||||||
|
}
|
||||||
|
end
|
||||||
|
vim.api.nvim_buf_clear_namespace(buffer, user_mappings[event.user].ns, 0, -1)
|
||||||
|
multiline_highlight(
|
||||||
|
buffer,
|
||||||
|
user_mappings[event.user].ns,
|
||||||
|
user_mappings[event.user].hi,
|
||||||
|
event.start,
|
||||||
|
event.finish
|
||||||
|
)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
print(" ++ joined workspace " .. args.args)
|
print(" ++ joined workspace " .. args.args)
|
||||||
|
|
Loading…
Reference in a new issue