{ pkgs, ... }:
{
  home.packages = with pkgs; [
    gdb
    # lldb
    rust-analyzer
    nil
    nixpkgs-fmt
    tinymist
    clang-tools
    nodePackages.typescript-language-server
  ];
  programs.helix = {
    enable = true;

    languages = {
      language-server.nil = {
        command = "nil";
        config = { nil.formatting.command = [ "nixpkgs-fmt" ]; };
      };
      language = [
        {
          name = "nix";
          auto-format = true;
          language-servers = [ "nil" ];
        }
      ];
    };

    settings = {
      theme = "dracula";
      editor = {
        color-modes = true;
        line-number = "relative";
        cursor-shape.insert = "bar";
        completion-trigger-len = 0;
        end-of-line-diagnostics = "hint";
        inline-diagnostics.cursor-line = "error";
        lsp = {
          display-messages = true;
          display-inlay-hints = true;
        };
      };
    };
  };
}
