From 146c1b62116e9a323c551ccba4f0c7cfa7f20548 Mon Sep 17 00:00:00 2001 From: Matheus Date: Mon, 12 Feb 2024 17:29:51 -0300 Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20create=20a=20toggle=20fu?= =?UTF-8?q?nction?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lua/live-server.lua | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/lua/live-server.lua b/lua/live-server.lua index 180deb6..1de2bc6 100644 --- a/lua/live-server.lua +++ b/lua/live-server.lua @@ -23,11 +23,26 @@ local function find_cached_dir(dir) return cur end +local function is_running(dir) + local cached_dir = find_cached_dir(dir) + return cached_dir and job_cache[cached_dir] +end + M.config = { -- 8080 default is commonly used args = { '--port=5555' }, } +M.toggle = function() + local dir = vim.fn.expand '%:p:h' + local running = is_running(dir) + if not running then + M.start() + return + end + M.stop() +end + M.setup = function(user_config) M.config = vim.tbl_deep_extend('force', M.config, user_config or {}) @@ -41,13 +56,14 @@ M.setup = function(user_config) vim.api.nvim_create_user_command('LiveServerStart', M.start, {}) vim.api.nvim_create_user_command('LiveServerStop', M.stop, {}) + vim.api.nvim_create_user_command('LiveServerToggle', M.toggle, {}) end M.start = function() local dir = vim.fn.expand '%:p:h' - local cached_dir = find_cached_dir(dir) + local running = is_running(dir) - if cached_dir then + if running then log('live-server already running', 'INFO') return end @@ -82,11 +98,15 @@ end M.stop = function() local dir = vim.fn.expand '%:p:h' - local cached_dir = find_cached_dir(dir) + local running = is_running(dir) - if cached_dir then - vim.fn.jobstop(job_cache[cached_dir]) - job_cache[cached_dir] = nil + if running then + local cached_dir = find_cached_dir(dir) + if cached_dir then + vim.fn.jobstop(job_cache[cached_dir]) + job_cache[cached_dir] = nil + log('live-server stopped', 'INFO') + end end end