Skip to content

Fennel configurationλ︎

Practicalli uses Fennel to define all configuration for Neovim. Fennel is a LISP dialect and should quickly become comfortable to Clojure developers.

Lua is the defacto language to configuring Neovim and for plugin development and neovim packages written in lua are preferred over those in Vimscript, assuming a Fennel package is not available.

Although Neovim fully supports Vimscript, Practicalli encourages Fennel or Lua, as Vimscript is quite a niche language and quite complex syntax.

Fennel Overviewλ︎

Fennel Language logo

Fennel is a programming language that brings together the speed, simplicity, and reach of Lua with the flexibility of a lisp syntax and macro system.

  • Full Lua compatibility: Easily call any Lua function or library from Fennel and vice-versa.
  • Zero overhead: Compiled code should be just as efficient as hand-written Lua.
  • Compile-time macros: Ship compiled code with no runtime dependency on Fennel.
  • Embeddable: Fennel is a one-file library as well as an executable. Embed it in other programs to support runtime extensibility and interactive development.

Anywhere you can run Lua code, you can run Fennel code.

Translate Lua to Fennel

See Fennel is an online antifennel tool to convert Lua to Fennel or Fennel to Lua.

practicalli/neovim-config-redux configuration provides helper functions to minimise the translation required.

Fennel Packagesλ︎

The Conjure package which provides the Clojure REPL (and much more) is written in Fennel.

Runtime conversionλ︎

Fennel is converted to Lua using the aniseed package

Aniseed bridges the gap between Fennel (a Lisp that compiles to Lua) and Neovim. Allowing you to easily write plugins or configuration in a Clojure like Lisp with great runtime performance.

Development toolingλ︎

Neovim support

  • Anti-fennel - convert from Lua code to Fennel code.
  • aniseed - write plugins or configuration for Neovim with great runtime performance
  • hotpot - seamless Fennel inside Neovim

See Fennel is an online antifennel tool to convert between Lua and Fennel.

Emacs support:

Playing Gamesλ︎

TIC-80 is a simulated computer environment to to write code, design art, compose music and retro style game games.

LÖVE is a framework for making games with the Lua programming language, allows import from external resources and can use any resolution or memory resources required.

TIC-80 and LÖVE provide cross-platform support across Windows, Mac and Linux systems. TIC-80 games can also be played in the browser.


Last update: December 18, 2022