//! Command definitions organized by category.
//!
//! This module contains all command definitions, split into focused
//! sub-modules for better organization and maintainability.
//!
//! **Module Organization:**
//! - `staging.rs` - Staging/unstaging commands
//! - `git_operations.rs` - Commit, cherry-pick, revert, etc.
//! - `rebase.rs` - Rebase operations
//! - `reset.rs` - Reset operations
//! - `merge.rs` - Merge notifier commands
//! - `remote.rs` - Push, pull, remote management
//! - `conflicts.rs` - Conflict resolution commands
//! - `navigation.rs` - Pane navigation commands
//! - `file_operations.rs` - File editing commands
//! - `configuration.rs` - Configuration commands
//! - `log.rs` - Log viewing commands
//! - `autofetch.rs` - Auto-fetch commands
//! - `pr.rs` - Pull request commands

mod staging;
mod git_operations;
mod rebase;
mod reset;
mod merge;
mod remote;
mod conflicts;
mod navigation;
mod file_operations;
mod configuration;
mod log;
mod autofetch;
mod pr;

use super::command::CommandDef;

/// Collect all command definitions from all category modules.
pub fn all_commands() -> Vec<CommandDef> {
    let mut commands = Vec::new();
    
    commands.extend(staging::staging_commands());
    commands.extend(git_operations::git_operations_commands());
    commands.extend(rebase::rebase_commands());
    commands.extend(reset::reset_commands());
    commands.extend(merge::merge_commands());
    commands.extend(remote::remote_commands());
    commands.extend(conflicts::conflicts_commands());
    commands.extend(navigation::navigation_commands());
    commands.extend(file_operations::file_operations_commands());
    commands.extend(configuration::configuration_commands());
    commands.extend(log::log_commands());
    commands.extend(autofetch::autofetch_commands());
    commands.extend(pr::pr_commands());
    
    commands
}

