Use nix to configure language servers
This commit is contained in:
parent
603fbb786a
commit
98bcfeaa92
1 changed files with 71 additions and 70 deletions
|
|
@ -88,81 +88,82 @@
|
|||
-- init.lua
|
||||
-- this configuration applies to servers and workstations
|
||||
''
|
||||
] ++ lib.optional nixosConfig.jalr.workstation.enable ''
|
||||
-- this configuration applies to workstations only
|
||||
-- https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md
|
||||
local lsp = require('lspconfig')
|
||||
|
||||
-- C and C++
|
||||
lsp.ccls.setup {
|
||||
on_attach = on_attach,
|
||||
cmd = { "${pkgs.ccls}/bin/ccls" },
|
||||
}
|
||||
|
||||
-- Nix
|
||||
lsp.rnix.setup {
|
||||
on_attach = on_attach,
|
||||
cmd = { "${pkgs.rnix-lsp}/bin/rnix-lsp" },
|
||||
}
|
||||
|
||||
-- Python
|
||||
lsp.pylsp.setup {
|
||||
on_attach = on_attach,
|
||||
cmd = { "${pkgs.python310Packages.python-lsp-server}/bin/pylsp" },
|
||||
settings = {
|
||||
-- https://github.com/python-lsp/python-lsp-server/blob/develop/CONFIGURATION.md
|
||||
pylsp = {
|
||||
plugins = {
|
||||
flake8 = {
|
||||
enabled = true;
|
||||
executable = "${pkgs.python310Packages.flake8}/bin/flake8";
|
||||
};
|
||||
jedi_completion = { enabled = true; };
|
||||
jedi_definition = { enabled = true; };
|
||||
jedi_hover = { enabled = true; };
|
||||
jedi_references = { enabled = true; };
|
||||
jedi_signature_help = { enabled = true; };
|
||||
jedi_symbols = { enabled = true; };
|
||||
mccabe = { enabled = true; };
|
||||
preload = { enabled = true; };
|
||||
pycodestyle = { enabled = true; };
|
||||
pyflakes = { enabled = true; };
|
||||
rope_completion = { enabled = true; };
|
||||
yapf = { enabled = true; };
|
||||
] ++ lib.optional nixosConfig.jalr.workstation.enable (
|
||||
''
|
||||
-- this configuration applies to workstations only
|
||||
-- https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md
|
||||
local lsp = require('lspconfig')
|
||||
'' +
|
||||
builtins.concatStringsSep "\n" (
|
||||
lib.mapAttrsToList
|
||||
(
|
||||
lang: cfg: "lsp.${lang}.setup\n" + lib.generators.toLua { asBindings = false; indent = " "; } cfg
|
||||
)
|
||||
{
|
||||
# C and C++
|
||||
ccls = {
|
||||
cmd = [ "${pkgs.ccls}/bin/ccls" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
-- Ruby
|
||||
lsp.solargraph.setup {
|
||||
on_attach = on_attach,
|
||||
cmd = { "${pkgs.solargraph}/bin/solargraph", "stdio" },
|
||||
}
|
||||
# Nix
|
||||
rnix = {
|
||||
cmd = [ "${pkgs.rnix-lsp}/bin/rnix-lsp" ];
|
||||
};
|
||||
|
||||
-- Rust
|
||||
lsp.rust_analyzer.setup {
|
||||
on_attach = on_attach,
|
||||
cmd = { "${pkgs.rust-analyzer}/bin/rust-analyzer" },
|
||||
}
|
||||
# Python
|
||||
pylsp = {
|
||||
cmd = [ "${pkgs.python310Packages.python-lsp-server}/bin/pylsp" ];
|
||||
settings = {
|
||||
# https://github.com/python-lsp/python-lsp-server/blob/develop/CONFIGURATION.md
|
||||
pylsp = {
|
||||
plugins = {
|
||||
flake8 = {
|
||||
enabled = true;
|
||||
executable = "${pkgs.python310Packages.flake8}/bin/flake8";
|
||||
};
|
||||
jedi_completion = { enabled = true; };
|
||||
jedi_definition = { enabled = true; };
|
||||
jedi_hover = { enabled = true; };
|
||||
jedi_references = { enabled = true; };
|
||||
jedi_signature_help = { enabled = true; };
|
||||
jedi_symbols = { enabled = true; };
|
||||
mccabe = { enabled = true; };
|
||||
preload = { enabled = true; };
|
||||
pycodestyle = { enabled = true; };
|
||||
pyflakes = { enabled = true; };
|
||||
rope_completion = { enabled = true; };
|
||||
yapf = { enabled = true; };
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
-- Bash
|
||||
lsp.bashls.setup {
|
||||
on_attach = on_attach,
|
||||
cmd = { "${pkgs.nodePackages.bash-language-server}/bin/bash-language-server", "start" },
|
||||
}
|
||||
# Ruby
|
||||
solargraph = {
|
||||
cmd = [ "${pkgs.solargraph}/bin/solargraph" "stdio" ];
|
||||
};
|
||||
|
||||
-- Terraform
|
||||
lsp.terraform_lsp.setup {
|
||||
on_attach = on_attach,
|
||||
cmd = { "${pkgs.terraform-lsp}/bin/terraform-lsp", "serve" },
|
||||
}
|
||||
# Rust
|
||||
rust_analyzer = {
|
||||
cmd = [ "${pkgs.rust-analyzer}/bin/rust-analyzer" ];
|
||||
};
|
||||
|
||||
-- YAML
|
||||
lsp.yamlls.setup {
|
||||
on_attach = on_attach,
|
||||
cmd = { "${pkgs.nodePackages.yaml-language-server}/bin/yaml-language-server", "--stdio" },
|
||||
}
|
||||
''
|
||||
# Bash
|
||||
bashls = {
|
||||
cmd = [ "${pkgs.nodePackages.bash-language-server}/bin/bash-language-server" "start" ];
|
||||
};
|
||||
|
||||
# Terraform
|
||||
terraform_lsp = {
|
||||
cmd = [ "${pkgs.terraform-lsp}/bin/terraform-lsp" "serve" ];
|
||||
};
|
||||
|
||||
# YAML
|
||||
yamlls = {
|
||||
cmd = [ "${pkgs.nodePackages.yaml-language-server}/bin/yaml-language-server" "--stdio" ];
|
||||
};
|
||||
}
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue