{pkgs, ...}: {
plugins = {
lsp = {
enable = true;
inlayHints = true;
servers = {
gopls.enable = true;
html.enable = true;
htmx.enable = true;
nixd.enable = true;
protols = {
enable = true;
package = pkgs.protols;
};
basedpyright.enable = true;
qmlls = {
enable = true;
cmd = ["qmlls" "-E"];
};
rust_analyzer = {
enable = true;
installCargo = false;
installRustc = false;
settings = {
cargo = {
loadOutDirsFromCheck = true;
cfgs = [
"debug_assertions"
"!miri"
];
};
inlayHints = {
closureCaptureHints.enable = true;
closureReturnTypeHints.enable = "always";
implicitDrops.enable = true;
implicitSizedBoundHints.enable = true;
};
};
};
taplo.enable = true;
tailwindcss = {
enable = true;
filetypes = ["htmldjango" "html" "markdown" "rust" "templ"];
};
templ.enable = true;
yamlls.enable = true;
};
};
fidget.enable = true;
};
keymaps = [
{
action = "<cmd>lua vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled())<CR>";
key = "<leader>ti";
options.desc = "toggle inlay hints";
}
];
}