[
  {
    "bindings": {
      "ctrl-{": "pane::ActivatePreviousItem",
      "ctrl-}": "pane::ActivateNextItem",
      "ctrl-pageup": "pane::ActivatePreviousItem",
      "ctrl-pagedown": "pane::ActivateNextItem",
      "ctrl-1": ["workspace::ActivatePane", 0],
      "ctrl-2": ["workspace::ActivatePane", 1],
      "ctrl-3": ["workspace::ActivatePane", 2],
      "ctrl-4": ["workspace::ActivatePane", 3],
      "ctrl-5": ["workspace::ActivatePane", 4],
      "ctrl-6": ["workspace::ActivatePane", 5],
      "ctrl-7": ["workspace::ActivatePane", 6],
      "ctrl-8": ["workspace::ActivatePane", 7],
      "ctrl-9": ["workspace::ActivatePane", 8],
      "ctrl-!": ["workspace::MoveItemToPane", { "destination": 0, "focus": true }],
      "ctrl-@": ["workspace::MoveItemToPane", { "destination": 1 }],
      "ctrl-#": ["workspace::MoveItemToPane", { "destination": 2 }],
      "ctrl-$": ["workspace::MoveItemToPane", { "destination": 3 }],
      "ctrl-%": ["workspace::MoveItemToPane", { "destination": 4 }],
      "ctrl-^": ["workspace::MoveItemToPane", { "destination": 5 }],
      "ctrl-&": ["workspace::MoveItemToPane", { "destination": 6 }],
      "ctrl-*": ["workspace::MoveItemToPane", { "destination": 7 }],
      "ctrl-(": ["workspace::MoveItemToPane", { "destination": 8 }]
    }
  },
  {
    "context": "Editor",
    "bindings": {
      "ctrl-alt-up": "editor::AddSelectionAbove",
      "ctrl-alt-down": "editor::AddSelectionBelow",
      "ctrl-shift-up": "editor::MoveLineUp",
      "ctrl-shift-down": "editor::MoveLineDown",
      "ctrl-shift-m": "editor::SelectLargerSyntaxNode",
      "ctrl-shift-l": "editor::SplitSelectionIntoLines",
      "ctrl-shift-a": "editor::SelectLargerSyntaxNode",
      "ctrl-shift-d": "editor::DuplicateSelection",
      "alt-f3": "editor::SelectAllMatches", // find_all_under
      // "ctrl-f3": "", // find_under (cancels any selections)
      // "ctrl-alt-shift-g": "" // find_under_prev (cancels any selections)
      "f9": "editor::SortLinesCaseSensitive",
      "ctrl-f9": "editor::SortLinesCaseInsensitive",
      "f12": "editor::GoToDefinition",
      "ctrl-f12": "editor::GoToDefinitionSplit",
      "shift-f12": "editor::FindAllReferences",
      "ctrl-shift-f12": "editor::FindAllReferences",
      "ctrl-.": "editor::GoToHunk",
      "ctrl-,": "editor::GoToPreviousHunk",
      "ctrl-k ctrl-u": "editor::ConvertToUpperCase",
      "ctrl-k ctrl-l": "editor::ConvertToLowerCase",
      "shift-alt-m": "markdown::OpenPreviewToTheSide",
      "ctrl-backspace": "editor::DeleteToPreviousWordStart",
      "ctrl-delete": "editor::DeleteToNextWordEnd",
      "alt-right": "editor::MoveToNextSubwordEnd",
      "alt-left": "editor::MoveToPreviousSubwordStart",
      "alt-shift-right": "editor::SelectToNextSubwordEnd",
      "alt-shift-left": "editor::SelectToPreviousSubwordStart"
    }
  },
  {
    "context": "Editor && mode == full",
    "bindings": {
      "ctrl-r": "outline::Toggle"
    }
  },
  {
    "context": "Editor && !agent_diff",
    "bindings": {
      "ctrl-k ctrl-z": "git::Restore"
    }
  },
  {
    "context": "Pane",
    "bindings": {
      "f4": "search::SelectNextMatch",
      "shift-f4": "search::SelectPreviousMatch",
      "alt-1": ["pane::ActivateItem", 0],
      "alt-2": ["pane::ActivateItem", 1],
      "alt-3": ["pane::ActivateItem", 2],
      "alt-4": ["pane::ActivateItem", 3],
      "alt-5": ["pane::ActivateItem", 4],
      "alt-6": ["pane::ActivateItem", 5],
      "alt-7": ["pane::ActivateItem", 6],
      "alt-8": ["pane::ActivateItem", 7],
      "alt-9": "pane::ActivateLastItem"
    }
  },
  {
    "context": "Workspace",
    "bindings": {
      "ctrl-k ctrl-b": "workspace::ToggleLeftDock",
      // "ctrl-0": "project_panel::ToggleFocus", // normally resets zoom
      "shift-ctrl-r": "project_symbols::Toggle"
    }
  }
]
