A Fennel compiler plugin for Neovim that lets you write your config and plugins in Fennel.
Hotpot.nvim is a Fennel compiler plugin for Neovim that enables developers to write their Neovim configuration and plugins in the Fennel programming language, a Lisp dialect that compiles to Lua. It provides ahead-of-time compilation, seamless integration with Neovim's runtime directories, and tools for managing Fennel code within the editor.
Neovim users who want to write their configuration and plugins in Fennel, particularly those who prefer Lisp syntax and functional programming paradigms for their editor customization.
Developers choose Hotpot.nvim because it provides a robust, context-aware bridge between Fennel and Neovim with ahead-of-time compilation that ensures compatibility with Neovim's runtime structure, while offering advanced features like independent compilation contexts and interactive commands for power users.
:stew: Carl Weathers #1 Neovim Plugin.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Compiles Fennel to Lua on save, ensuring output files are placed in Neovim's runtime directories like lsp/ and ftplugin/ for seamless integration, as outlined in the Usage section.
Supports independent compilation contexts via .hotpot.fnl files, allowing different directories or projects to have unique compiler settings and target locations, enhancing flexibility for multi-project setups.
Provides :Fnl and related commands for evaluating and compiling Fennel code directly in Neovim, similar to :lua, facilitating real-time testing and debugging without leaving the editor.
Exposes a Lua API for automating compilation, evaluation, and context management, enabling advanced workflows and integration with other Neovim plugins or scripts.
Version 2 introduces incompatible changes, such as mandating .fnlm for macro files and a new configuration schema, forcing existing users to update files and potentially break setups, as warned in the migration notes.
Installation with managers like Lazy.nvim requires non-trivial steps, such as loading Hotpot before Lazy and adjusting performance.rtp.paths, adding overhead compared to simpler plugins.
Previously available in-editor compiler warnings were removed in version 2, shifting reliance to external LSP servers like fennel-language-server, which adds setup dependencies and may not cover all use cases.