Enable language servers only on workstations

This commit is contained in:
Jakob Lechner 2023-02-18 23:13:19 +00:00
parent 71edfc6fe4
commit 2a76f31178
No known key found for this signature in database
GPG key ID: 996082EFB5906C10

View file

@ -1,4 +1,4 @@
{ config, pkgs, ... }:
{ lib, nixosConfig, config, pkgs, ... }:
{
home.sessionVariables = {
EDITOR = "nvim";
@ -82,80 +82,87 @@
];
};
xdg.configFile."nvim/lua/init.lua".text = ''
xdg.configFile."nvim/lua/init.lua".text = builtins.concatStringsSep "\n" (
[
''
-- init.lua
-- this configuration applies to servers and workstations
''
] ++ lib.optional nixosConfig.myConfig.workstation.enable ''
-- this configuration applies to workstations only
-- https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md
local lsp = require('lspconfig')
-- 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" },
}
-- 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" },
}
-- 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";
-- 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; };
};
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; };
};
};
};
}
}
-- Ruby
lsp.solargraph.setup {
on_attach = on_attach,
cmd = { "${pkgs.solargraph}/bin/solargraph", "stdio" },
}
-- Ruby
lsp.solargraph.setup {
on_attach = on_attach,
cmd = { "${pkgs.solargraph}/bin/solargraph", "stdio" },
}
-- Rust
lsp.rust_analyzer.setup {
on_attach = on_attach,
cmd = { "${pkgs.rust-analyzer}/bin/rust-analyzer" },
}
-- Rust
lsp.rust_analyzer.setup {
on_attach = on_attach,
cmd = { "${pkgs.rust-analyzer}/bin/rust-analyzer" },
}
-- Bash
lsp.bashls.setup {
on_attach = on_attach,
cmd = { "${pkgs.nodePackages.bash-language-server}/bin/bash-language-server", "start" },
}
-- Bash
lsp.bashls.setup {
on_attach = on_attach,
cmd = { "${pkgs.nodePackages.bash-language-server}/bin/bash-language-server", "start" },
}
-- Terraform
lsp.terraform_lsp.setup {
on_attach = on_attach,
cmd = { "${pkgs.terraform-lsp}/bin/terraform-lsp", "serve" },
}
-- Terraform
lsp.terraform_lsp.setup {
on_attach = on_attach,
cmd = { "${pkgs.terraform-lsp}/bin/terraform-lsp", "serve" },
}
-- YAML
lsp.yamlls.setup {
on_attach = on_attach,
cmd = { "${pkgs.nodePackages.yaml-language-server}/bin/yaml-language-server", "--stdio" },
}
'';
-- YAML
lsp.yamlls.setup {
on_attach = on_attach,
cmd = { "${pkgs.nodePackages.yaml-language-server}/bin/yaml-language-server", "--stdio" },
}
''
);
}