Some weeks ago I asked if anyone was using Haxe to build Neovim plugins, and nobody seem to be doing that, so I opted to build it from scratch.
Below is the presentation I made on Discord, but I think it also belongs here:
NeoVim is great, and Lua is also great, but when you want to create complex NeoVim configurations in Lua, things are not so great.
Lot of guess-work and trial and error, stupid mistakes that translate to hard to understand runtime errors which could make your editor unusable, something nobody wants.
Haxe on the other hand, has a great type system, capable to express very complex systems with complex requirements and prevent you from doing those little silly mistakes.
Would’t be cool if we could use the power of Haxe to write more reliable NeoVim configurations and Plugins? Turns out that with some effort it is possible, and that has been my objective for the past weeks, and I finally decided to release the project.
Presenting Haxe NeoVim. A collection of automatically generated NeoVim extern definitions, coupled with hand-crafted ones and some handy utility helpers on top.
I’m currently dogfooding it for my personal configurations and personal NeoVim projects, so the real coding is happening in my personal dotfiles repository where the whole library lives. However, I want this to be used by more people if they have the need, so I setup a mirror repository where only Haxe NeoVim specific code is pushed automatically.
Here is the separate project repository:
The library code is inside
src/ , and if you are looking for examples, inside the kickstart folder you can find some advanced usage examples. That folder is a port of kickstart.nvim to Haxe using this library definitions.