rydesun
fennel-language-server
Rust

Fennel language server protocol (LSP) support.

Last updated Jun 9, 2026
131
Stars
9
Forks
7
Issues
0
Stars/day
Attention Score
22
Language breakdown
Rust 100.0%
โ–ธ Files click to expand
README

fennel-language-server

Test License: MIT

Fennel language server protocol (LSP) support.

fennel-language-server is currently in a very early stage and unreliable. Use it just for an encouraging try.

Installation

Because it is written in pure Rust language, the server should be installed via cargo.

cargo install --git https://github.com/rydesun/fennel-language-server

No demand for the Fennel environment. You don't even need Fennel runtime! (It sounds a little weird but that's the truth)

Integration

NOTE: The executable file is now named fennel-language-server. The former name fennel-ls has been abandoned.

Neovim

For Nvim user to setup fennel-language-server with nvim-lspconfig, add the following code to your configuration.

local lspconfig = require 'lspconfig'
require 'lspconfig.configs'.fennellanguageserver = {
  default_config = {
    -- replace it with true path
    cmd = {'/PATH/TO/BINFILE'},
    filetypes = {'fennel'},
    singlefilesupport = true,
    -- source code resides in directory fnl/
    rootdir = lspconfig.util.rootpattern("fnl"),
    settings = {
      fennel = {
        workspace = {
          -- If you are using hotpot.nvim or aniseed,
          -- make the server aware of neovim runtime files.
          library = vim.api.nvimlistruntime_paths(),
        },
        diagnostics = {
          globals = {'vim'},
        },
      },
    },
  },
}

lspconfig.fennellanguageserver.setup{}

Status

There is a long way to go. Features are partially completed:

  • [x] Diagnostics: Be careful these are not fully provided!
  • [x] Goto Definition
  • [x] Code Completion
  • [x] References
  • [x] Hover
  • [x] Rename
  • [ ] Formatter
All features don't work properly on multi-symbols. It means that you cannot hover on the part after the dot, for example.

The following are also known issues:

  • Macro grammar support is very limited.
You may suffer from wrong diagnostics.
  • Type checking is very weak.
  • Lack of cross-file operation.
Such as require-macros still does not analyzed. You should use import-macros for a clear namespace.

Also See

XeroOl fennel-ls written in pure fennel you may love

https://git.sr.ht/~xerool/fennel-ls

๐Ÿ”— More in this category

ยฉ 2026 GitRepoTrend ยท rydesun/fennel-language-server ยท Updated daily from GitHub