- Support reporting CWD context in checkhealth if relevant.
- Support following symlinks when finding files (via https://github.com/bandithedoge)
- Repeatedly attempt first-run config sync each time Neovim is run until it succeeds.
- After installation, on its first use, Hotpot will attempt to sync
$NVIM_CONFIG automatically. Previously if this failed due to compilation
errors, the errors would only be shown once, then subsequent instances of
Neovim may show configuration errors if expected modules do not exist,
requiring the user to realise what went wrong, and perform a a manual
Hotpot syncto see and fix any issues. Hotpot will now repeatedly attempt to sync $NVIM_CONFIG, and so will show any compilation errors each time until it succeeds, afterwhich we perform no syncing on boot.
- After installation, on its first use, Hotpot will attempt to sync
$NVIM_CONFIG automatically. Previously if this failed due to compilation
errors, the errors would only be shown once, then subsequent instances of
Neovim may show configuration errors if expected modules do not exist,
requiring the user to realise what went wrong, and perform a a manual
- Fix first-boot compiler errors not being shown to the user.
- Add additional
bootreason to possibleinvocation-meta.reasonvalues.
- Rename
sync-report-handlerinvocation-meta.sourcetoinvocation-meta.reasonto avoid confusion withcontextsource value.invocation-meta.sourcestill works with a deprecation notice.
- Adjust sync "clean" action dialog language to be more explicit.
- Add
sync-report-handlersetup option. - Support
%%placeholder replacement in:Hotpot locatecommand. - Support
:Hotpot locateresolvingcachepaths intoconfigpaths. - Add
metadata()function to APIcontextobject. - Fix
api.context(path)not supporting file paths.
- Fix missing "clean" file paths in LSP report.
- Updated "clean" behaviours:
- Never prompt when removing any lua files from cache directory.
- Never prompt when removing lua files from colocation if they are recognisably generated by Hotpot via a header comment.
- Always prompt when removing any other lua files.
vim.ui.selectreplacements such as MiniPick or Snacks.nvim are unable to effectively show multiline prompts like the default implementation does, so we now show an option to view the files targeted for removal in anothervim.ui.selectprompt -- selecting anything from this prompt returns to the previous "action" prompt.
- Updated report behaviours:
- Never shows
nvim_echoreport unlessverbose = true. - Never shows "owned" file clean messages in LSP report.
- Show LSP report when running
:Hotpot sync.
- Never shows
- Fix Neovim executing
config/plugin/*files twice, gh-issue#147.
- Disable strict global checking when compiling with
Fnl-for better ergonomics.
- Re-enable LSP progress messages.
- Added
:Fnl-and:Fnlfile-which compiles instead of evaluates, always outputs result. - Added
:FnlCompileand:FnlEvaluatecommands, aliases to:Fnl-and:Fnl=. - Added
:Hotpot locatecommand to find/open counterpart file.
- Fix
title is nilerrors when usingvim.lsp.status()and possibly other consumers by disabling LSP$/progressmessages while UX is explored.
- Prevent LSP
$/progressmessages from clearing prematurely in Neovim 0.12.
- Use correctly resolved path when performing nearest context lookups.
- Remove leftover
vim.printin command param parser.
- Fix hidden
nvim.notifymesages in Neovim 0.12. - Show Fennel compiler warnings (not errors) via
nvim.notify.
- Include missing lua files from 2.0.1.
- Fix hidden
:writeeventnvim_echoreport messages in Neovim 0.12.
- Ahead of Time compiler instead of Just in Time.
- Better support for future nvim directories such as
lsp/that can't effectively hook into therequireframework.
- Better support for future nvim directories such as
- Added
:Hotpotcommand with subcommands:watch: enable/disable autocmd that triggers the compiler.sync: accessContext.sync.fennel update|rollback|version: update fennel version from online.
- Emit
$/progressLSP messages when compiling for rendering by plugins such asfiget.nvim. - Macro files must use the extension
.fnlm .hotpot.fnlinstead of.hotpot.luaconfiguration file.- New format, different keys, largely the same functionality.
- Better support for working in different "contexts" with independent options.
- Reduced API with "context" aware functions.
- This is the modern Fennel way, no concessions are currently made to support
init-macros.fnlfilenames.
- This is the modern Fennel way, no concessions are currently made to support
- Removed diagnostics provider, instead use external LSP server.
- Removed
setup({...})options for.hotpot.fnl.- Provides a consistent single entrypoint to configuration.
- Removed
:Fnldocommand.
- No functional changes.
- Updated to Fennel 1.6.0, may contain unintended breaking changes from upstream, see Fennels own changelog.
- Support macro files with
.fnlmextension. - Enable default dot-hotpot support for
.fnlmmacro files.
- Disable fennel parser warnings, which are printed to stderr.
- Updated to Fennel 1.5.3, may contain unintended breaking changes from upstream, see Fennels own changelog.
- Fix
:checkhealth hotpotdisk usage report attempting tosize + nil.
- Improve
:checkhealth hotpotmodule seacher report when luarocks is present.
- Fix diagnostics.disable trying to detach from nil buffer.
- Disable Fennel's stderr output (configuration option bugged upstream) when it encounters compiler warnings.
- Updated to Fennel 1.5.1, may contain unintended breaking changes from upstream, see Fennels own changelog.
- Fix support for dashes in runtime plugin paths, eg:
plugin/my-plugin.fnl.
- Disable Fennel's stderr output (temporarily) when it encounters compiler warnings.
- Remove
provide_require_fenneloption, support forrequire("fennel")is now always provided. - Always enable diagnostics. Previously was enabled by default, but only if
you called
setup(), now enabled byrequire("hotpot"). - Add
./fnlpaths tofennel.pathandfennel.macro-pathwhen compiling.
- Improve Rocks.nvim compatibility.
- Updated to Fennel 1.5.0, may contain unintended breaking changes from upstream, see Fennels own changelog.
- Fix nvim 0.10.0 health report deprecation warnings.
vim.loader.enable()must be called before requiring hotpot if you are usingvim.loader.- Added
:checkhealth hotpot. - Added
{silent=true}option toapi.cache.clear-cache - Changed
api.cache.open-cacheto accept a callback which should accept the cache path as its first argument. If no callback is given, the cache path is opened in avsplit.
- Updated to Fennel 1.4.2, may contain unintended breaking changes from upstream, see Fennels own changelog.
- Updated to Fennel 1.4.1, may contain unintended breaking changes from upstream, see Fennels own changelog.
- Updated to Fennel 1.4.0, may contain unintended breaking changes from upstream, see Fennels own changelog.
- Fix diagnostics message match pattern to include "column -1".
- Fix clean key missing from sigil file whitelist.
- Fix detecting mod/init.fnl vs mod-init.fnl.
- Pass modname, modpath to compiler plugins, available under ... as per normal lua requires.
- Add
api.make.auto.build(path, ?opts)to manually trigger.hotpot.luasaving a file. - Add
colocation = truedeprecation message, recommendbuild = true.
- Add support for plugin/* after/* indent/*
- Fix recompilation behaviour with ftplugins.
- Fix
.hotpot.luaclean failing to run whenatomic = true
- Fix "is a macro" indicator passed to preprocessor.
- Both keys
macro?andmacroare supported, butmacrois currently the documented key as it works in both lua and fennel contexts.
- Both keys
- Clear Fennels
macros-loadedtable duringapi.makecompile calls to ensure macro changes are propagated.
- Fix ftplugin first-time loading bug
- Add support for
.hotpot.luafile.- Specify per-project compiler options, automate build-on-save, see
:h hotpot-cookbook-using-dot-hotpot.
- Specify per-project compiler options, automate build-on-save, see
- Previous
api.make.buildinterface has been deprecated, see:h hotpot.api.makefor details.- If you are using an
init.fnlfile, you should check the updated instructions in the COOKBOOK.
- If you are using an
api.make.checkhas been deprecated, seedryrunoption forapi.make.build.- Most
api.*function signatures have changed to acceptcompile-optionsas would be given tosetup(). - Removed some API cache lookup functions.
- Added
open-cache(how, opts)which opens the cache path in neovims directory explorer.
- Added
- Better support for ftplugins.
- Remove compile accidental logging.
- Writing macros in lua is no longer supported.
- Required Neovim version bumped to 0.9.
- Replaced internal bytecode-index loader with
vim.loaderbacked loader.- Lua files will only be cached by
vim.loaderif you enable caching viavim.loader.enable!
- Lua files will only be cached by
- Added support for lua colocation, compiling
dir/mod/fnlintodir/mod/lua. - Native support for
ftplugin/.
- Updated to Fennel 1.3.1, may contain unintended breaking changes from upstream, see Fennels own changelog.
- Updated to Fennel 1.3.0, may contain unintended breaking changes from upstream, see Fennels own changelog.
- Adjusted "file changed" tracking to use mtime + size for cache invalidation.
- Removed viml code from compiler code path so Hotpot has a better chance of running outside of neovims main thread. (Doing this requires nvim 0.8+).
- Fixed diagnostics inside "macro modules".
- Added
compiler.modules.pluginsandcompiler.macros.pluginsconfig options to support user specified fennel compiler plugins.
- Fixed
filenameoption persisting between someapi.compilefunction calls. - Added module name guessing to
api.make.buildcalls for relative-require support.
- Updated to Fennel 1.2.1, may contain unintended breaking changes from upstream, see Fennels own changelog.
- Added traceback wrapper to strip ANSI escape codes from fennel compiler output.
- Updated to Fennel 1.2.0, may contain unintended breaking changes from upstream, see Fennels own changelog.
- Fixed
detachspelling inhotpot.api.diagnosticsandhotpot.api.reflect - Updated
hotpot.api.make.buildandhotpot.api.make.checkto accept a directory or single file as the source argument. - Fixed passing compiler options to Make API.
- Added experimental optional
howargument tohotpot.api.diagnostics.set-options.
- Added 1.1.0 and 1.2.0 compatible diagnostic line detection.
- Fixed diagnostics failing to attach to additional buffers.
- Added
diagnostics.set-optionsto allow overriding compiler options for some buffers.
- Neovim 0.7 required
- Improved
x-selectionAPI selection accuracy.- Now uses
nvim_get_mode, sometimes bindings set bywhichkey.nvimincorrectly report the current mode, so this is potentially breaking if you use a non-standard way to set keys. Keymaps set viavim.keymap.setbehave correctly.
- Now uses
hotpot.api.evalfunctions now returntrue resultorfalse errorfor symmetry withhotpot.api.compile.- Moved
fnl,fnlfile,fnldo,eval-operatorandeval-operator-bangtohotpot.api.command. - Added in-editor diagnostics via
hotpot.api.diagnostics- Enabled automatically in Fennel files. See
:h hotpot.api.diagnosticsfor details and how to disable.
- Enabled automatically in Fennel files. See
- Added ahead of time compilation via
hotpot.api.make. - Added in-editor repl-like via
hotpot.api.reflect- Mark regions of your code and show the results of the compilation or
evaluation as you edit. See
:h hotpot.api.reflectfor details.
- Mark regions of your code and show the results of the compilation or
evaluation as you edit. See
- Fixed bootstrapping in read-only nix environments.
- Fixed windows bytecode cache loading.
- Updated to Fennel 1.1.0.
- Fixed kebab-case file loading.
- Loading performance improvement.
- Neovim 0.6 required.
0.1.0was the last Neovim 0.5 compatible release.
- Added lua bytecode cache.
- 🪟 Added windows support.
- Localised all
requirecalls for performance improvements.
- Updated to Fennel 1.0.0.
- ✨ Initial release.