Compare commits
2 commits
63bd48abf6
...
a90219e7cd
Author | SHA1 | Date | |
---|---|---|---|
a90219e7cd | |||
708e0fec3a |
|
@ -505,22 +505,6 @@ in
|
||||||
format = lspkind.cmp_format({
|
format = lspkind.cmp_format({
|
||||||
mode = 'symbol_text',
|
mode = 'symbol_text',
|
||||||
maxwidth = 50,
|
maxwidth = 50,
|
||||||
-- old format
|
|
||||||
-- format = function(entry, vim_item)
|
|
||||||
-- -- fancy icons and a name of kind
|
|
||||||
-- vim_item.kind = require("lspkind").presets.default[vim_item.kind] ..
|
|
||||||
-- " " .. vim_item.kind
|
|
||||||
-- -- set a name for each source
|
|
||||||
-- vim_item.menu = ({
|
|
||||||
-- buffer = "[Buffer]",
|
|
||||||
-- nvim_lsp = "[LSP]",
|
|
||||||
-- look = "[Look]",
|
|
||||||
-- path = "[Path]",
|
|
||||||
-- spell = "[Spell]",
|
|
||||||
-- calc = "[Calc]",
|
|
||||||
-- })[entry.source.name]
|
|
||||||
-- return vim_item
|
|
||||||
-- end
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
mapping = {
|
mapping = {
|
||||||
|
@ -625,11 +609,20 @@ in
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
capabilities = require('cmp_nvim_lsp').default_capabilities()
|
||||||
capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities)
|
|
||||||
|
|
||||||
|
-- fennel-ls is bleeding edge
|
||||||
local lspconfig = require('lspconfig')
|
local lspconfig = require('lspconfig')
|
||||||
local servers = { 'clojure_lsp', 'terraform_lsp', 'zls', 'pyright', 'rust_analyzer', 'tsserver', 'sumneko_lua' }
|
require("lspconfig.configs")["fennel-ls"] = {
|
||||||
|
default_config = {
|
||||||
|
cmd = {"fennel-ls"},
|
||||||
|
filetypes = {"fennel"},
|
||||||
|
root_dir = function(dir) return lspconfig.util.find_git_ancestor(dir) end,
|
||||||
|
settings = {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
local servers = { 'clojure_lsp', 'terraform_lsp', 'zls', 'pyright', 'rust_analyzer', 'tsserver', 'sumneko_lua'}
|
||||||
for _, lsp in ipairs(servers) do
|
for _, lsp in ipairs(servers) do
|
||||||
lspconfig[lsp].setup {
|
lspconfig[lsp].setup {
|
||||||
on_attach = function(client, bufnr)
|
on_attach = function(client, bufnr)
|
||||||
|
@ -640,12 +633,20 @@ in
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
-- rnix doesn't support gps
|
-- rnix doesn't support gps
|
||||||
require('lspconfig').rnix.setup {
|
lspconfig['rnix'].setup {
|
||||||
on_attach = function(client, bufnr)
|
on_attach = function(client, bufnr)
|
||||||
format.on_attach(client)
|
format.on_attach(client)
|
||||||
end,
|
end,
|
||||||
capabilities = capabilities,
|
capabilities = capabilities,
|
||||||
}
|
}
|
||||||
|
-- fennel-ls doesn't support gps
|
||||||
|
lspconfig['fennel-ls'].setup {
|
||||||
|
on_attach = function(client, bufnr)
|
||||||
|
format.on_attach(client)
|
||||||
|
end,
|
||||||
|
capabilities = capabilities,
|
||||||
|
}
|
||||||
|
|
||||||
-- deprecated pylsp
|
-- deprecated pylsp
|
||||||
-- require('lspconfig').pylsp.setup {
|
-- require('lspconfig').pylsp.setup {
|
||||||
-- on_attach = function(client, bufnr)
|
-- on_attach = function(client, bufnr)
|
||||||
|
@ -864,6 +865,7 @@ in
|
||||||
nodePackages.typescript
|
nodePackages.typescript
|
||||||
nodePackages.typescript-language-server
|
nodePackages.typescript-language-server
|
||||||
sumneko-lua-language-server
|
sumneko-lua-language-server
|
||||||
|
fennel-ls
|
||||||
];
|
];
|
||||||
|
|
||||||
plugins = with pkgs.vimPlugins // customPlugins; [
|
plugins = with pkgs.vimPlugins // customPlugins; [
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
{ pkgs ? (import ../nixpkgs.nix) { } }: {
|
{ pkgs ? (import ../nixpkgs.nix) { } }: {
|
||||||
plymouth-themes = pkgs.callPackage ./plymouth.nix { };
|
plymouth-themes = pkgs.callPackage ./plymouth.nix { };
|
||||||
tic-80 = pkgs.callPackage ./tic-80.nix { };
|
tic-80 = pkgs.callPackage ./tic-80.nix { };
|
||||||
|
fennel-ls = pkgs.callPackage ./fennel-ls.nix { };
|
||||||
}
|
}
|
||||||
|
|
31
pkgs/fennel-ls.nix
Normal file
31
pkgs/fennel-ls.nix
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
# Stolen from: https://gist.github.com/jjwatt/c83c02e6903c8ffaf546fe5eb27e7d25?permalink_comment_id=3305141#gistcomment-3305141
|
||||||
|
{ pkgs, ... }:
|
||||||
|
pkgs.stdenv.mkDerivation rec {
|
||||||
|
name = "fennel-ls";
|
||||||
|
src = pkgs.fetchgit {
|
||||||
|
url = "https://git.sr.ht/~xerool/fennel-ls";
|
||||||
|
rev = "70e434839fdf9fad7512118d3f72e38aa8d3ca9f";
|
||||||
|
sha256 = "mYOAlSCixlWzykPeLcGyTzWksDAJjblkYwI0k1GuYvE=";
|
||||||
|
};
|
||||||
|
buildInputs = with pkgs; [
|
||||||
|
lua
|
||||||
|
fennel
|
||||||
|
];
|
||||||
|
|
||||||
|
configurePhase = ''
|
||||||
|
echo [DIRECTORY] $(pwd)
|
||||||
|
sed -i 's/\.\/fennel/fennel/' Makefile
|
||||||
|
# cd build/
|
||||||
|
# cmake ..
|
||||||
|
'';
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
make -j4
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
chmod a+x fennel-ls
|
||||||
|
cp -v fennel-ls $out/bin
|
||||||
|
'';
|
||||||
|
}
|
Loading…
Reference in a new issue