diff --git a/lua/codemp/init.lua b/lua/codemp/init.lua index 06d3791..518eb33 100644 --- a/lua/codemp/init.lua +++ b/lua/codemp/init.lua @@ -12,51 +12,49 @@ if CODEMP == nil then }, setup = function (opts) CODEMP.config = vim.tbl_extend('force', CODEMP.config, opts) - - if CODEMP.native == nil then - CODEMP.native = require('codemp.loader').load() -- make sure we can load the native library correctly, otherwise no point going forward - --CODEMP.native.logger(function (msg) - -- vim.schedule(function () print(msg) end) - --end, true) - end - - if CODEMP.session == nil then - CODEMP.session = require('codemp.session') - end - - if CODEMP.rt == nil then - CODEMP.rt = CODEMP.native.spawn_runtime_driver() -- spawn thread to drive tokio runtime - vim.api.nvim_create_autocmd( - {"ExitPre"}, - { - callback = function (_ev) - if CODEMP.session.client ~= nil then - print(" xx disconnecting codemp client") - CODEMP.session.client = nil - end - CODEMP.rt:stop() - end - } - ) - end - - if CODEMP.timer == nil then - CODEMP.timer = vim.loop.new_timer() - CODEMP.timer:start(CODEMP.config.timer_interval, CODEMP.config.timer_interval, function() - while true do - local cb = CODEMP.native.poll_callback() - if cb == nil then break end - cb() - end - end) - - require('codemp.command') -- not really related but should only happen once - end - - - return CODEMP - end, + end } end +if CODEMP.native == nil then + CODEMP.native = require('codemp.loader').load() -- make sure we can load the native library correctly, otherwise no point going forward + --CODEMP.native.logger(function (msg) + -- vim.schedule(function () print(msg) end) + --end, true) +end + +if CODEMP.session == nil then + CODEMP.session = require('codemp.session') +end + +if CODEMP.rt == nil then + CODEMP.rt = CODEMP.native.spawn_runtime_driver() -- spawn thread to drive tokio runtime + vim.api.nvim_create_autocmd( + {"ExitPre"}, + { + callback = function (_ev) + if CODEMP.session.client ~= nil then + print(" xx disconnecting codemp client") + CODEMP.session.client = nil + end + CODEMP.rt:stop() + end + } + ) +end + +if CODEMP.timer == nil then + CODEMP.timer = vim.loop.new_timer() + CODEMP.timer:start(CODEMP.config.timer_interval, CODEMP.config.timer_interval, function() + while true do + local cb = CODEMP.native.poll_callback() + if cb == nil then break end + cb() + end + end) + + require('codemp.command') -- not really related but should only happen once +end + + return CODEMP