75 lines
2.0 KiB
Nix
75 lines
2.0 KiB
Nix
{ osConfig , ... }:
|
|
let
|
|
hostname = osConfig.networking.hostName;
|
|
in
|
|
{
|
|
programs.nixvim.plugins = {
|
|
lsp = {
|
|
enable = true;
|
|
servers = {
|
|
lua-ls = {enable = true;};
|
|
nixd = {
|
|
enable = true;
|
|
cmd = ["nixd"];
|
|
settings = {
|
|
nixpkgs.expr = "import <nixpkgs> { }";
|
|
options = {
|
|
nixos.expr = "(builtins.getFlake \"/etc/nixos\").nixosConfigurations.${hostname}.options";
|
|
# TODO get home-manager options working when hm imported as submodule
|
|
# home_manager.expr = "(builtins.getFlake \"github:nix-community/home-manager\").homeConfigurations.${hostname}.options";
|
|
};
|
|
};
|
|
};
|
|
bashls = {enable = true;};
|
|
pyright = {enable = true;};
|
|
html = {enable = true;};
|
|
marksman = {enable = true;};
|
|
ccls = {enable = true;};
|
|
cssls = {enable = true;};
|
|
r-language-server = {enable = true;};
|
|
tsserver = {enable = true;};
|
|
};
|
|
keymaps = {
|
|
lspBuf = {
|
|
gd = {
|
|
action = "definition";
|
|
desc = "Goto Definition";
|
|
};
|
|
gr = {
|
|
action = "references";
|
|
desc = "Goto References";
|
|
};
|
|
gD = {
|
|
action = "declaration";
|
|
desc = "Goto Declaration";
|
|
};
|
|
gI = {
|
|
action = "implementation";
|
|
desc = "Goto Implementation";
|
|
};
|
|
gT = {
|
|
action = "type_definition";
|
|
desc = "Type Definition";
|
|
};
|
|
gK = {
|
|
action = "hover";
|
|
desc = "Hover";
|
|
};
|
|
"<leader>cw" = {
|
|
action = "workspace_symbol";
|
|
desc = "Workspace Symbol";
|
|
};
|
|
"<leader>cr" = {
|
|
action = "rename";
|
|
desc = "Rename";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
# TODO: enable otter.nvim when merged into nixvim stable
|
|
# otter = {
|
|
# enable = true;
|
|
# };
|
|
};
|
|
}
|