{
  inputs,
  pkgs,
  scope,
  ...
}:
scope "user.programs.helix" {
  enable = true;
  package = inputs.helix.packages.${pkgs.system}.helix;
  settings = {
    theme = "nix-rice";
    editor = {
      bufferline = "multiple";
      cursorline = true;
      true-color = true;
      cursor-shape = {
        insert = "bar";
        normal = "block";
        select = "underline";
      };
      statusline.left = [
        "mode"
        "spinner"
        "version-control"
        "file-name"
        "file-modification-indicator"
      ];
      lsp.display-messages = true;
    };
  };

  languages = {
    language = [
      {
        name = "rust";
        language-servers = [ "rust-analyzer" ];
      }
      {
        name = "nix";
        language-servers = [ "nil" ];
        file-types = [ "nix" ];
        auto-format = true;
        formatter = {
          command = "nixfmt";
        };
      }
    ];

    language-server = {
      qmlls = {
        command = "qmlls";
        args = [ "-E" ];
      };

      nil = {
        command = "nil";
      };

      rust-analyzer = {
        config = {
          cargo.buildScripts.enable = true;
          procMacro.enable = true;
          check.command = "clippy";
        };
      };
    };
  };
}
