A very simple plugin to demonstrate writing Neovim plugins in Fennel with nfnl.
The plugin only exposes one Lua module (nfnl-plugin-example) which exports one
function (setup). When loaded and executed it'll use the notify API to display
"Hello, World!" which means you'll either see it in your :messages area or in
a floating notification if you have a plugin for that.
We're embedding a copy of nfnl in this plugin to show you how that can be achieved. Here's a list of files you'll probably find interesting and worth looking at:
script/nfnlis responsible for cloning, updating and embedding nfnl intolua/nfnl-plugin-example/nfnl..gitattributestells GitHub which files are vendored from other repos and which are compiler output. This ensures your language report for your repository is accurate and correctly ignores files you didn't write..ignoreensures compiler output Lua files don't show up in command line and Neovim search interfaces..nfnl.fnlenables and configures nfnl for this directory, it's just relying on the defaults so it only contains{}.fnl/nfnl-plugin-example/init.fnlis the only code for this plugin and it's the main entry point.script/testexecutes the tests underfnl/specwith Plenary (you will need to install that separately for this to work)..github/workflows/test.yamlcreates a GitHub workflow that automatically runs your test suite on push.
If you add this plugin to your plugin manager you can load it with:
:lua require("nfnl-plugin-example").setup()Bear in mind, some plugin managers actually call this setup method for you
with a configuration table.
Feel free to fork / copy / steal / borrow / modify / mutate / scramble / fry / reticulate splines / incorporate this repository in any way you see fit. It can be an inspiration, reference or template. That's entirely up to you and what you need right now.
If you build something with nfnl let me know and I'll link to it from here as further examples of how to work with it.
Have fun!
Find the full Unlicense in the UNLICENSE file, but here's a
snippet.
This is free and unencumbered software released into the public domain.
Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.