feat: replace npm live-server with pure-Lua HTTP server (#29)

## Problem

The plugin requires users to install Node.js and the `live-server` npm
package globally. This is a heavyweight external dependency for what
amounts to a simple local dev-server workflow, and it creates friction
for users who don't otherwise need Node.js.

## Solution

Replace the npm shell-out with a pure-Lua HTTP server built on `vim.uv`
(libuv bindings), eliminating all external dependencies. The new server
supports static file serving, SSE-based live reload, CSS hot-swap
without full page reload, directory listings, and recursive file
watching with configurable debounce.

Minimum Neovim version is bumped to 0.10 for `vim.uv` and `vim.ui.open`.
The old `args`-based config is automatically migrated with a deprecation
warning.

Closes #28.
This commit is contained in:
Barrett Ruth 2026-03-02 23:16:35 -05:00 committed by GitHub
parent baeb211719
commit f42f958c24
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
17 changed files with 1097 additions and 298 deletions

24
vim.yaml Normal file
View file

@ -0,0 +1,24 @@
---
base: lua51
name: vim
lua_versions:
- luajit
globals:
vim:
any: true
jit:
any: true
assert:
any: true
describe:
any: true
it:
any: true
before_each:
any: true
after_each:
any: true
spy:
any: true
stub:
any: true