Installation
Manual installation
To install from source on a unix system that has Lua installed:
$ git clone https://git.sr.ht/~xerool/fennel-ls
$ cd fennel-ls
$ makeThis build will create a fennel-ls executable for you using your default
system lua; use make LUA=luajit etc to use a different Lua version.
Run make install PREFIX=$HOME to put it in ~/bin or sudo make install for
a system wide install.
You may want to also install docsets for external libraries.
Packages
Arch Linux
I think fennel-ls and fennel-ls-git may be in the AUR.
NixOS
Included in nixpkgs
Debian/Ubuntu
Unofficial .deb packages are available at
https://apt.technomancy.us.
Editor integration
The following instructions assume you have installed fennel-ls as described
in the previous section.
Emacs
On Emacs 30+, eglot will use fennel-ls automatically if it can be found in your $PATH.
For older versions:
(with-eval-after-load 'eglot
(add-to-list 'eglot-server-programs '(fennel-mode . ("fennel-ls"))))This code tells eglot to connect fennel-ls to your fennel-mode buffers.
Neovim
If you're using neovim+lspconfig, use this snippet:
require("lspconfig").fennel_ls.setup({})If you're also using mason and you want to install fennel-ls that way, you can use mason-lspconfig to ensure fennel-ls is installed:
require("mason-lspconfig").setup {
ensure_installed = {"fennel_ls"}
}Sublime Text
Install the the [LSP package](https://packagecontrol.io/packages/LSP) from Package Control.
You can configure the LSP plugin to use fennel-ls directly by editing your
Packages/User/LSP.sublime-settings file, which can be opened via "Preferences
\> Package Settings \> LSP \> Settings" from the menu or with the Preferences: LSP
Settings command from the Command Palette.
You should add an entry to the top-level "clients" object (creating it if it
doesn't exist), with this configuration:
"clients": {
"fennel-ls": {
"enabled": true,
"selector": "source.fennel",
"command": ["fennel-ls"]
}
}If you run into problems, check the [LSP Client Configuration reference](https://lsp.sublimetext.io/client_configuration/) and double-check the location of fennel-ls on the $PATH is visible to Sublime Text.
Helix
Make sure fennel_ls is available in your $PATH and then add this to your
~/.config/helix/languages.toml file:
[language-server.fennel-ls]
command = "fennel-ls"
[[language]]
name = "fennel"
scope = "source.fennel"
file-types = ["fnl"]
language-servers = ["fennel-ls"]If you have fnlfmt you can also add this to the [[language]] section:
formatter = { command = "fnlfmt", args = ["-"]}Visual Studio Code
You need to install an extension in order to use it.
Other editors
It should be possible to set up for other text editors, but the instructions depend on which editor you use. Generally you need to tell your editor:
- "fennel-ls" is a language server program on the $PATH
- it should be run for fennel files.