rydesun / fennel-language-server

Fennel language server protocol (LSP) support.
MIT License
116 stars 8 forks source link
fennel language-server lsp-server neovim parser

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'.fennel_language_server = {
  default_config = {
    -- replace it with true path
    cmd = {'/PATH/TO/BINFILE'},
    filetypes = {'fennel'},
    single_file_support = true,
    -- source code resides in directory `fnl/`
    root_dir = lspconfig.util.root_pattern("fnl"),
    settings = {
      fennel = {
        workspace = {
          -- If you are using hotpot.nvim or aniseed,
          -- make the server aware of neovim runtime files.
          library = vim.api.nvim_list_runtime_paths(),
        },
        diagnostics = {
          globals = {'vim'},
        },
      },
    },
  },
}

lspconfig.fennel_language_server.setup{}

Status

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

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:

Also See

XeroOl fennel-ls written in pure fennel you may love

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