From 39e8b23289f943489eee7e8ead6eb986e4a37428 Mon Sep 17 00:00:00 2001
From: Stevan Freeborn <65925598+StevanFreeborn@users.noreply.github.com>
Date: Sun, 12 Jul 2026 19:14:04 -0500
Subject: [PATCH] posts: add explainer about watchexec.nvim
---
.../how-i-built-a-neovim-plugin/index.md | 49 ++++++++++++++++++
.../how-i-built-a-neovim-plugin/og-image.png | Bin 0 -> 967613 bytes
2 files changed, 49 insertions(+)
create mode 100644 src/Blog/wwwroot/posts/how-i-built-a-neovim-plugin/index.md
create mode 100644 src/Blog/wwwroot/posts/how-i-built-a-neovim-plugin/og-image.png
diff --git a/src/Blog/wwwroot/posts/how-i-built-a-neovim-plugin/index.md b/src/Blog/wwwroot/posts/how-i-built-a-neovim-plugin/index.md
new file mode 100644
index 0000000..988f2bf
--- /dev/null
+++ b/src/Blog/wwwroot/posts/how-i-built-a-neovim-plugin/index.md
@@ -0,0 +1,49 @@
+```json meta
+{
+ "title": "How I Built A Neovim Plugin",
+ "lead": "I got tired of clunky terminal splits and constantly breaking my focus just to check test runs. Here is the story of how and why I built a native, async Neovim wrapper for the watchexec CLI.",
+ "isPublished": true,
+ "publishedAt": "2026-07-12",
+ "openGraphImage": "posts/how-i-built-a-neovim-plugin/og-image.png"
+}
+```
+
+
+
+If you spend some time writing code, it doesn't take long before you become pretty particular about your workflow. I think a lot of it comes down to minimizing as much friction and context management as possible. Basically, anything to keep you in that flow state for just a few minutes longer. For me, a really productive workflow looks something like: write a test, save the file, watch the tests run, see the result, and fix the code. The quicker and smoother that happens, the more I'm likely to get done in any given chunk of time. Recently, I've come to really enjoy using this handy little CLI (written in Rust, btw) called [watchexec](https://github.com/watchexec/watchexec). It is a fantastic, fast CLI tool for triggering commands when files change. It is really flexible and works within just about any development context.
+
+But I've been struggling with a way to use it the way I want without having to break my focus and switch contexts outside of Neovim. I tried a few different things, but for the most part, I had just settled on running it in a separate terminal pane and then either having that pane open on a separate monitor if I was at my desk, or just flipping back and forth between tabs in Windows Terminal. It wasn't terrible, but then I wondered how difficult it might be to build my own wrapper for it so I could just keep all the context and my focus within Neovim. It is really similar to how I've migrated to using [lazygit](https://github.com/jesseduffield/lazygit) through a [plugin](https://github.com/kdheepak/lazygit.nvim) versus running it in a separate terminal pane.
+
+So I decided to take the plunge and try to build my first Neovim plugin, and man, did I learn a lot. It is actually kind of insane how extensible and rich the Neovim API is. Here’s a look at why I wanted to tackle it, and what I figured out along the way.
+
+> [!NOTE]
+> The project is fully open-source, and I’d love for you to try it out, break it, or check out the code. If you want to add it to your setup via `lazy.nvim`, you can find everything right [here](https://github.com/StevanFreeborn/watchexec.nvim).
+
+## Trying to fix my own workflow
+
+To be fair, there are plenty of ways to run tasks in Neovim, but I kept running into minor frustrations with my setup. Using a basic blocking shell command like `:!` was not feasible because it freezes the whole editor until the command finishes. On the flip side, opening a standard native `:terminal` split often felt a bit clunky to manage, stole my cursor focus, and left me staring at raw, unparsed ANSI color escape codes that made some outputs harder to read.
+
+I didn't want a massive, all-singing, all-dancing plugin. I just wanted to see if I could build a focused tool that checked a few specific boxes for my own UX. The watcher needed to run quietly in the background without making my editor stutter. I wanted to strip out those raw ANSI sequences and map test failures or successes to some native Neovim diagnostic highlights. If I closed the main log window to get screen space back, I still wanted some sort of non-intrusive indicator to let me know if things were currently passing or failing in the background. And I wanted the minimum amount of work for having to tell Neovim about where the `watchexec` binary lives, whether I was working on Linux, Windows, or in a WSL environment.
+
+## Breaking down the architecture
+
+When I first sat down to write this, I realized fairly quickly that a monolithic Lua file wasn't going to be a good idea. I decided to separate the logic into distinct modules to keep myself sane. I mapped out `init.lua` to act as the entryway for the plugin's setup and commands, while `config.lua` handled all the default user options and deep-merging configurations. The core of the plugin lives in `runner.lua`, which is where I spent a lot of time figuring out how to manage process lifecycles and background jobs. I isolated all the tedious math for drawing buffers, adjusting window sizes, and toggling visibility into `window.lua`, and then threw the state tracking for that minimal background status window into `indicator.lua`. I admit I am far from a Lua expert (in fact, this plugin is by far the most Lua I've ever written) but it was really helpful to look at other Neovim plugins and draw a lot of inspiration from them.
+
+## The technical challenges
+
+As most of us who write code know, it’s one thing to have an idea, but a whole other thing to actually implement it. The async experience I wanted meant I had to do a fair bit of learning and reading about the Neovim API. I still have some skepticism about whether I did it all correctly. But hey, it works on my machine. In order to make sure the background process didn’t lock up my cursor, I relied on `vim.fn.jobstart` to pipe `stdout` and `stderr` asynchronously. One tricky piece I had to figure out was cleanup: if a user manually forces a rerun, the plugin needs to cleanly kill the existing job before starting a new one. I also had to hook into the `VimLeavePre` autocommand so that if I abruptly closed my editor, I wouldn't leave a bunch of zombie processes running in the background. This was probably the thing I was most concerned with, so I tended to keep Task Manager open while I was developing and testing to make sure I caught whenever I produced an orphaned process.
+
+Raw terminal text is also incredibly messy. I spent some quality time writing regex patterns (read: talking to Gemini about what I wanted) to strip out raw ANSI codes so the output looked clean. Once the text was sanitized, I set up basic string matchers to scan for words like `ERROR`, `FAIL`, or `PASSED` so I could attach them directly to Neovim’s native `DiagnosticError` and `DiagnosticOk` highlight groups.
+
+Probably most important to me was the ability to hide the output window to focus on coding but still receive feedback. I ended up configuring the plugin to scan the live text stream for status changes, like `[Running]` or `[Command was successful]`. If the main log split is closed, it triggers a tiny, non-focusable floating window in the corner of the screen to give me a subtle heads-up on the status without getting in my way. I also wanted to make sure this worked well regardless of the OS, so I wrote a `find_binary()` helper that dynamically scans the user's path, appends `.exe` on Windows, checks Homebrew locations on macOS, and routes through `wsl.exe --exec` if it detects it's running inside a Windows host environment.
+
+## Automated testing for a plugin
+
+I'd be a pretty big hypocrite if I built a project like this and didn't test it given what I do for a living, but I hate manually testing things that can almost certainly be automated. Lucky for me, someone else obviously has somewhat similar feelings in the Neovim community because they've got this awesome, though unfortunately unmaintained, utility called [Plenary](https://github.com/nvim-lua/plenary.nvim) that makes it easy to build and run your [Busted](https://lunarmodules.github.io/busted/) unit tests. Because dealing with system binaries and floating windows involves a lot of live side-effects, I relied heavily on stubbing via `luassert.stub` to keep the tests predictable. I know, I know... some of you are going to have some strong feelings about that, but it's my project, so stub I will. This let me test more complex, async UX pieces, like making sure the log window automatically drops the oldest lines when it hits a `max_lines` limit, or ensuring layouts recalculate gracefully when a `VimResized` event occurs.
+
+For local peace of mind, I put together a quick PowerShell script called `run_checks.ps1` to run formatting and linting. In CI, I set up an automated workflow to guarantee `StyLua` formatting stays consistent and the language server doesn't complain on new pull requests.
+
+## Conclusion
+
+In this "build a project in a day with AI" world, it was a lot of fun to sit down and dig into a new area of development in a language I know very little about. It was also a great reminder that oftentimes the difference between a frustrating tool and a satisfying one comes down to the tiniest details. From an end-user perspective, having the ability to address those details in the way that best suits you is incredibly delightful. At the end of the day, there’s no magic happening inside `watchexec.nvim`. It’s just the result of combining a great CLI tool with a bit of async orchestration and some layout management. But in my experience, it is additions like this that make your workflow your own. Plus, who doesn't like being able to change the way their editor works with a bit of code?
+
diff --git a/src/Blog/wwwroot/posts/how-i-built-a-neovim-plugin/og-image.png b/src/Blog/wwwroot/posts/how-i-built-a-neovim-plugin/og-image.png
new file mode 100644
index 0000000000000000000000000000000000000000..8dc259e2778718da39a040e4c67b2da6008acd37
GIT binary patch
literal 967613
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