{ pkgs, ... }:
{
  programs.nixvim = {
    diagnostic.settings = {
      virtual_text = true;
    };

    plugins = {
      lsp = {
        enable = true;
        inlayHints = true;

        servers = {
          bashls.enable = true;
          pyright.enable = true;
          clangd.package = pkgs.clang-tools;
          qmlls.enable = true;
          clangd.enable = true;
          clangd.cmd = [
            "clangd"
            "--background-index"
            "--query-driver=${pkgs.clang}/bin/clang++"
            "--query-driver=${pkgs.clang}/bin/clang"
          ];
          nixd.enable = true;
        };
      };

      conform-nvim = {
        enable = true;
        settings = {
          formatters_by_ft = {
            lua = [ "stylua" ];
            nix = [ "nixfmt" ];
            c = [ "clang-format" ];
            cpp = [ "clang-format" ];
            python = [ "black" ];
          };
        };
      };
      blink-cmp = {
        enable = true;
      };
    };

  };
}
