Skip to content

Commit

Permalink
Only trigger reloading if an event in html/css/js file is detected
Browse files Browse the repository at this point in the history
  • Loading branch information
brianhuster committed Jan 19, 2025
1 parent 8504013 commit 13027c4
Showing 1 changed file with 19 additions and 9 deletions.
28 changes: 19 additions & 9 deletions lua/livepreview/server/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -102,17 +102,24 @@ end

--- Watch a directory for changes and trigger an event
function Server:watch_dir()
local callback = vim.schedule_wrap(function()
api.nvim_exec_autocmds("User", {
pattern = "LivePreviewDirChanged",
})
end)
local function on_change(err, filename, event)
local callback = vim.schedule_wrap(
---@param filename string
---@param events {change: boolean, rename: boolean}
function(filename, events)
api.nvim_exec_autocmds("User", {
pattern = "LivePreviewDirChanged",
data = {
filename = filename,
events = events,
},
})
end)
local function on_change(err, filename, events)
if err then
print("Watch error: " .. err)
return
end
callback()
callback(filename, events)
end
local function watch(path, recursive)
local handle = uv.new_fs_event()
Expand All @@ -129,7 +136,7 @@ function Server:watch_dir()
else
local watcherObj = fswatch.Watcher:new(self.webroot)
watcherObj:start(function(filename, events)
callback()
callback(filename, events)
end)
self._watcher = watcherObj
end
Expand All @@ -152,7 +159,10 @@ function Server:start(ip, port, opts)
api.nvim_create_autocmd("User", {
group = "LivePreview",
pattern = k,
callback = function()
callback = function(param)
if not param.data.filename:match('%.(html|css|js)$') then
return
end
for _, client in ipairs(M.connecting_clients) do
v(client)
end
Expand Down

0 comments on commit 13027c4

Please sign in to comment.