{ ... }:
{
  programs.helix.settings.keys = {
    normal = {
      space."=" = ":fmt";
      space.ret = "@[<space>]<space>";
      space.space = "@ms<space>";

      # smart tab++
      tab = "move_parent_node_end";
      S-tab = "move_parent_node_start";
      A-S = "@S[\\s]+<ret>";
      "'" = {
        D = "@<C-w>sgd";
        F = "@<C-w>sgy";
        d = "@<C-w>vgd";
        f = "@<C-w>vgy";
        h = ":toggle-option lsp.display-inlay-hints";
        t = ":pipe flip-bool";
      };
    };
    insert = {
      up = "no_op";
      down = "no_op";
      left = "no_op";
      right = "no_op";
      pageup = "no_op";
      pagedown = "no_op";
      home = "no_op";
      end = "no_op";

      # smart tab ++
      S-tab = "move_parent_node_start";
    };
    select = {
      # smart tab++
      tab = "extend_parent_node_end";
      S-tab = "extend_parent_node_start";
    };
  };
}
